/[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.45 - (show annotations) (download)
Fri Mar 24 23:26:10 2017 UTC (7 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.44: +4 -12 lines
- set pickup suffix in S/R DO_WRITE_PICKUP and pass it (as new argument)
  to S/R WRITE_PICKUP and S/R PACKAGES_WRITE_PICKUP
- use new S/R to get file suffix (according to "rwSuffixType")

1 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.44 2015/01/20 15:00:55 dgoldberg 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, suffix,
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 !CALLING SEQUENCE:
25 C PACKAGES_WRITE_PICKUP
26 C |
27 C |-- GAD_WRITE_PICKUP
28 C |
29 C |-- CD_CODE_WRITE_PICKUP
30 C |
31 C |-- OBCS_WRITE_PICKUP
32 C |
33 C |-- GGL90_WRITE_PICKUP
34 C |
35 C |-- BBL_WRITE_PICKUP
36 C |
37 C |-- CHEAPAML_WRITE_PICKUP
38 C |
39 C |-- FLT_WRITE_PICKUP
40 C |
41 C |-- PTRACERS_WRITE_PICKUP
42 C |
43 C |-- GCHEM_WRITE_PICKUP
44 C |
45 C |-- SEAICE_WRITE_PICKUP
46 C |
47 C |-- STREAMICE_WRITE_PICKUP
48 C |
49 C |-- THSICE_WRITE_PICKUP
50 C |
51 C |-- LAND_WRITE_PICKUP
52 C |
53 C |-- ATM_PHYS_WRITE_PICKUP
54 C |
55 C |-- FIZHI_WRITE_PICKUP
56 C |-- FIZHI_WRITE_VEGTILES
57 C |-- FIZHI_WRITE_DATETIME
58 C |
59 C |-- DIAGNOSTICS_WRITE_PICKUP
60 C |
61 C |-- GMREDI_WRITE_PICKUP
62 C |
63 C |-- CPL_WRITE_PICKUP
64 C |
65 C |-- MYPACKAGE_WRITE_PICKUP
66
67 C !USES:
68 IMPLICIT NONE
69 #include "SIZE.h"
70 #include "EEPARAMS.h"
71 #include "PARAMS.h"
72 #include "RESTART.h"
73
74 C !INPUT/OUTPUT PARAMETERS:
75 C permPickup :: Is or is not a permanent pickup.
76 C suffix :: pickup-name suffix
77 C myTime :: Current time of simulation ( s )
78 C myIter :: Iteration number
79 C myThid :: Thread number for this instance of the routine.
80 LOGICAL permPickup
81 CHARACTER*(*) suffix
82 _RL myTime
83 INTEGER myIter
84 INTEGER myThid
85
86 C !LOCAL VARIABLES:
87 CEOP
88
89 C Going to really do some IO. Make everyone except master thread wait.
90 C this is done within IO routines => no longer needed
91 c _BARRIER
92
93 #ifdef ALLOW_GENERIC_ADVDIFF
94 C Write restart file for 2nd-Order moment (active) Tracers
95 IF ( useGAD ) THEN
96 CALL GAD_WRITE_PICKUP(
97 I suffix, myTime, myIter, myThid )
98 ENDIF
99 #endif /* ALLOW_GENERIC_ADVDIFF */
100
101 #ifdef ALLOW_CD_CODE
102 IF (useCDscheme) THEN
103 CALL CD_CODE_WRITE_PICKUP( permPickup,
104 I suffix, myTime, myIter, myThid )
105 ENDIF
106 #endif /* ALLOW_CD_CODE */
107
108 #ifdef ALLOW_OBCS
109 IF (useOBCS) THEN
110 CALL OBCS_WRITE_PICKUP(
111 & suffix, myTime, myIter, myThid )
112 ENDIF
113 #endif /* ALLOW_OBCS */
114
115 #ifdef ALLOW_GGL90
116 IF ( useGGL90 ) THEN
117 CALL GGL90_WRITE_PICKUP( permPickup,
118 I suffix, myTime, myIter, myThid )
119 ENDIF
120 #endif /* ALLOW_GGL90 */
121
122 #ifdef ALLOW_BBL
123 IF (useBBL) THEN
124 CALL BBL_WRITE_PICKUP( permPickup,
125 I suffix, myTime, myIter, myThid )
126 ENDIF
127 #endif /* ALLOW_MYPACKAGE */
128
129 #ifdef ALLOW_CHEAPAML
130 C Write restart file for CHEAPAML pkg
131 IF ( useCheapAML ) THEN
132 CALL CHEAPAML_WRITE_PICKUP( permPickup,
133 I suffix, myTime, myIter, myThid)
134 ENDIF
135 #endif /* ALLOW_CHEAPAML */
136
137 #ifdef ALLOW_FLT
138 C Write restart file for floats
139 IF (useFLT) THEN
140 CALL FLT_WRITE_PICKUP(
141 & suffix, myTime, myIter, myThid )
142 ENDIF
143 #endif
144
145 #ifdef ALLOW_PTRACERS
146 C Write restart file for passive tracers
147 IF (usePTRACERS) THEN
148 CALL PTRACERS_WRITE_PICKUP( permPickup,
149 I suffix, myTime, myIter, myThid )
150 ENDIF
151 #endif /* ALLOW_PTRACERS */
152
153 #ifdef ALLOW_GCHEM
154 C Write restart file for GCHEM pkg & GCHEM sub-packages
155 IF ( useGCHEM ) THEN
156 CALL GCHEM_WRITE_PICKUP( permPickup,
157 I suffix, myTime, myIter, myThid )
158 ENDIF
159 #endif
160
161 #ifdef ALLOW_SEAICE
162 IF ( useSEAICE ) THEN
163 CALL SEAICE_WRITE_PICKUP( permPickup,
164 I suffix, myTime, myIter, myThid )
165 ENDIF
166 #endif /* ALLOW_SEAICE */
167
168 #ifdef ALLOW_STREAMICE
169 IF (useStreamIce) THEN
170 CALL STREAMICE_WRITE_PICKUP( permPickup,
171 I suffix, myTime, myIter, myThid )
172 ENDIF
173 #endif
174
175 #ifdef ALLOW_SHELFICE
176 IF (useShelfIce) THEN
177 CALL SHELFICE_WRITE_PICKUP( permPickup,
178 I suffix, myTime, myIter, myThid )
179 ENDIF
180 #endif
181
182 #ifdef ALLOW_THSICE
183 IF (useThSIce) THEN
184 CALL THSICE_WRITE_PICKUP( permPickup,
185 I suffix, myTime, myIter, myThid )
186 ENDIF
187 #endif /* ALLOW_THSICE */
188
189 #ifdef ALLOW_LAND
190 C Write pickup file for Land package:
191 IF (useLand) THEN
192 CALL LAND_WRITE_PICKUP( permPickup,
193 & suffix, myTime, myIter, myThid )
194 ENDIF
195 #endif
196
197 #ifdef ALLOW_ATM_PHYS
198 IF ( useAtm_Phys ) THEN
199 CALL ATM_PHYS_WRITE_PICKUP( permPickup,
200 I suffix, myTime, myIter, myThid )
201 ENDIF
202 #endif /* ALLOW_ATM_PHYS */
203
204 #ifdef ALLOW_FIZHI
205 C Write pickup file for fizhi package
206 IF (usefizhi) THEN
207 CALL FIZHI_WRITE_PICKUP(suffix,myTime,myIter,myThid)
208 CALL FIZHI_WRITE_VEGTILES(suffix,0,myTime,myIter,myThid)
209 CALL FIZHI_WRITE_DATETIME(myTime,myIter,myThid)
210 ENDIF
211 #endif
212
213 #ifdef ALLOW_DIAGNOSTICS
214 C Write pickup file for diagnostics package
215 IF (useDiagnostics) THEN
216 CALL DIAGNOSTICS_WRITE_PICKUP( permPickup,
217 I suffix, myTime, myIter, myThid )
218 ENDIF
219 #endif
220
221 #ifdef ALLOW_GMREDI
222 IF ( useGMRedi ) THEN
223 CALL GMREDI_WRITE_PICKUP( permPickup,
224 I suffix, myTime, myIter, myThid )
225 ENDIF
226 #endif
227
228 #ifdef COMPONENT_MODULE
229 IF (useCoupler) THEN
230 CALL CPL_WRITE_PICKUP(
231 & suffix, myTime, myIter, myThid )
232 ENDIF
233 #endif /* COMPONENT_MODULE */
234
235 #ifdef ALLOW_MYPACKAGE
236 IF (useMYPACKAGE) THEN
237 CALL MYPACKAGE_WRITE_PICKUP( permPickup,
238 I suffix, myTime, myIter, myThid )
239 ENDIF
240 #endif /* ALLOW_MYPACKAGE */
241
242 C-- Every one else must wait until writing is done.
243 C this is done within IO routines => no longer needed
244 c _BARRIER
245
246 RETURN
247 END
248
249 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22