/[MITgcm]/MITgcm/model/src/packages_write_pickup.F
ViewVC logotype

Contents of /MITgcm/model/src/packages_write_pickup.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.23 - (show annotations) (download)
Thu Aug 24 01:10:35 2006 UTC (17 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58q_post, checkpoint58o_post, checkpoint58p_post
Changes since 1.22: +23 -119 lines
keep only the 2nd S/R (PACKAGES_WRITE_PICKUP_NOW) and rename it:
  PACKAGES_WRITE_PICKUP (=> match the file name)

1 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.22 2006/08/09 02:23:13 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8 C files.
9
10 CBOP
11 C !ROUTINE: PACKAGES_WRITE_PICKUP
12
13 C !INTERFACE:
14 SUBROUTINE PACKAGES_WRITE_PICKUP(
15 I permPickup,
16 I myTime, myIter, myThid )
17
18 C !DESCRIPTION:
19 C Write pickup files for each package which needs it to restart.
20 C This routine (S/R PACKAGES_WRITE_PICKUP) calls per-package
21 C write-pickup (or checkpoint) routines. It writes both
22 C "rolling-pickup" files (ckptA,ckptB) and permanent pickup.
23
24 C !USES:
25 IMPLICIT NONE
26 #include "SIZE.h"
27 #include "EEPARAMS.h"
28 #include "PARAMS.h"
29
30 C !INPUT/OUTPUT PARAMETERS:
31 C permPickup :: Is or is not a permanent pickup.
32 C myTime :: Current time of simulation ( s )
33 C myIter :: Iteration number
34 C myThid :: Thread number for this instance of the routine.
35 LOGICAL permPickup
36 _RL myTime
37 INTEGER myIter
38 INTEGER myThid
39
40 C == Common blocks ==
41 COMMON /PCKP_GBLFLS/ globalFile
42 LOGICAL globalFile
43
44 C !LOCAL VARIABLES:
45 C == Local variables ==
46 C prec :: file precision
47 C fn :: Temp. for building file name string.
48 C lgf :: Flag to indicate whether to use global file mode.
49 CHARACTER*(MAX_LEN_FNAM) fn
50 INTEGER prec
51 LOGICAL lgf
52 CEOP
53
54 C Going to really do some IO. Make everyone except master thread wait.
55 _BARRIER
56
57 prec = precFloat64
58 lgf = globalFile
59
60 C Create suffix to pass on to package pickup routines
61 IF ( permPickup ) THEN
62 WRITE(fn,'(I10.10)') myIter
63 ELSE
64 WRITE(fn,'(A)') checkPtSuff(nCheckLev)
65 ENDIF
66
67 #ifdef ALLOW_CD_CODE
68 IF (useCDscheme) THEN
69 CALL CD_CODE_WRITE_CHECKPOINT(
70 & prec, lgf, permPickup, myIter, myThid)
71 ENDIF
72 #endif /* ALLOW_CD_CODE */
73
74 #ifdef ALLOW_OBCS
75 C SPK 4/9/01: Open boundary checkpointing
76 IF (useOBCS) THEN
77 CALL OBCS_WRITE_CHECKPOINT(
78 & prec, lgf, permPickup, myIter, myThid)
79 ENDIF
80 #endif /* ALLOW_OBCS */
81
82 #ifdef ALLOW_SEAICE
83 IF ( useSEAICE ) THEN
84 CALL SEAICE_WRITE_PICKUP(
85 & prec, lgf, permPickup, myIter, myThid)
86 ENDIF
87 #endif /* ALLOW_SEAICE */
88
89 #ifdef ALLOW_THSICE
90 IF (useThSIce) THEN
91 CALL THSICE_WRITE_PICKUP(
92 & prec, lgf, permPickup, myIter, myThid)
93 ENDIF
94 #endif /* ALLOW_THSICE */
95
96 #ifdef COMPONENT_MODULE
97 IF (useCoupler) THEN
98 CALL CPL_WRITE_PICKUP(
99 & prec, lgf, permPickup, myIter, myThid)
100 ENDIF
101 #endif /* COMPONENT_MODULE */
102
103 #ifdef ALLOW_FLT
104 C Write restart file for floats
105 IF (useFLT) THEN
106 CALL FLT_RESTART(myTime, myIter, myThid)
107 ENDIF
108 #endif
109
110 #ifdef ALLOW_LAND
111 C Write pickup file for Land package:
112 IF (useLand) THEN
113 CALL LAND_WRITE_PICKUP(permPickup,fn,
114 & myTime,myIter,myThid)
115 ENDIF
116 #endif
117
118 #ifdef ALLOW_FIZHI
119 C Write pickup file for fizhi package
120 IF (usefizhi) THEN
121 CALL FIZHI_WRITE_PICKUP(fn,myTime,myIter,myThid)
122 CALL FIZHI_WRITE_VEGTILES(fn,0,myTime,myIter,myThid)
123 CALL FIZHI_WRITE_DATETIME(myTime,myIter,myThid)
124 ENDIF
125 #endif
126
127 #ifdef ALLOW_DIAGNOSTICS
128 C Write pickup file for diagnostics package
129 IF (useDiagnostics) THEN
130 CALL DIAGNOSTICS_WRITE_PICKUP(permPickup,
131 & fn,myTime,myIter,myThid)
132 ENDIF
133 #endif
134
135 #ifdef ALLOW_GGL90
136 IF ( useGGL90 ) THEN
137 CALL GGL90_WRITE_CHECKPOINT(
138 & prec, lgf, permPickup, myIter, myThid)
139 ENDIF
140 #endif /* ALLOW_GGL90 */
141
142 #ifdef ALLOW_PTRACERS
143 C Write restart file for passive tracers
144 IF (usePTRACERS) THEN
145 CALL PTRACERS_WRITE_CHECKPOINT(permPickup,
146 & fn,myIter,myTime,myThid)
147 ENDIF
148 #endif /* ALLOW_PTRACERS */
149
150 C-- Every one else must wait until writing is done.
151 _BARRIER
152
153 RETURN
154 END
155
156 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22