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

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

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


Revision 1.45 - (hide 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 jmc 1.45 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.44 2015/01/20 15:00:55 dgoldberg Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6    
7 edhill 1.6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8 jmc 1.23 C files.
9    
10 jmc 1.1 CBOP
11     C !ROUTINE: PACKAGES_WRITE_PICKUP
12 edhill 1.6
13 jmc 1.1 C !INTERFACE:
14 jmc 1.22 SUBROUTINE PACKAGES_WRITE_PICKUP(
15 jmc 1.45 I permPickup, suffix,
16 jmc 1.23 I myTime, myIter, myThid )
17 edhill 1.6
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 jmc 1.23 C "rolling-pickup" files (ckptA,ckptB) and permanent pickup.
23 jmc 1.1
24 jmc 1.43 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 jmc 1.1 C !USES:
68     IMPLICIT NONE
69     #include "SIZE.h"
70     #include "EEPARAMS.h"
71     #include "PARAMS.h"
72 jmc 1.27 #include "RESTART.h"
73 jmc 1.1
74     C !INPUT/OUTPUT PARAMETERS:
75 jmc 1.23 C permPickup :: Is or is not a permanent pickup.
76 jmc 1.45 C suffix :: pickup-name suffix
77 jmc 1.23 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 jmc 1.45 CHARACTER*(*) suffix
82 jmc 1.22 _RL myTime
83     INTEGER myIter
84 edhill 1.6 INTEGER myThid
85 jmc 1.1
86 edhill 1.6 C !LOCAL VARIABLES:
87     CEOP
88 jmc 1.1
89 edhill 1.6 C Going to really do some IO. Make everyone except master thread wait.
90 jmc 1.36 C this is done within IO routines => no longer needed
91     c _BARRIER
92 edhill 1.6
93 jmc 1.25 #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 jmc 1.26 I suffix, myTime, myIter, myThid )
98 jmc 1.25 ENDIF
99     #endif /* ALLOW_GENERIC_ADVDIFF */
100    
101 jmc 1.1 #ifdef ALLOW_CD_CODE
102 edhill 1.6 IF (useCDscheme) THEN
103 jmc 1.26 CALL CD_CODE_WRITE_PICKUP( permPickup,
104     I suffix, myTime, myIter, myThid )
105 edhill 1.6 ENDIF
106 jmc 1.1 #endif /* ALLOW_CD_CODE */
107    
108     #ifdef ALLOW_OBCS
109 jmc 1.38 IF (useOBCS) THEN
110     CALL OBCS_WRITE_PICKUP(
111     & suffix, myTime, myIter, myThid )
112     ENDIF
113 jmc 1.1 #endif /* ALLOW_OBCS */
114 jmc 1.22
115 jmc 1.40 #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 dimitri 1.39 #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 jmc 1.40 #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 jmc 1.3 #ifdef ALLOW_SEAICE
162 edhill 1.6 IF ( useSEAICE ) THEN
163 jmc 1.26 CALL SEAICE_WRITE_PICKUP( permPickup,
164     I suffix, myTime, myIter, myThid )
165 edhill 1.6 ENDIF
166 jmc 1.3 #endif /* ALLOW_SEAICE */
167 jmc 1.1
168 jmc 1.42 #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 dgoldberg 1.44 #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 jmc 1.1 #ifdef ALLOW_THSICE
183 edhill 1.6 IF (useThSIce) THEN
184 jmc 1.26 CALL THSICE_WRITE_PICKUP( permPickup,
185     I suffix, myTime, myIter, myThid )
186 edhill 1.6 ENDIF
187 jmc 1.1 #endif /* ALLOW_THSICE */
188 jmc 1.2
189 jmc 1.1 #ifdef ALLOW_LAND
190 edhill 1.17 C Write pickup file for Land package:
191 edhill 1.6 IF (useLand) THEN
192 jmc 1.26 CALL LAND_WRITE_PICKUP( permPickup,
193     & suffix, myTime, myIter, myThid )
194 edhill 1.6 ENDIF
195 jmc 1.1 #endif
196 molod 1.4
197 jmc 1.40 #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 molod 1.4 #ifdef ALLOW_FIZHI
205 edhill 1.6 C Write pickup file for fizhi package
206     IF (usefizhi) THEN
207 jmc 1.26 CALL FIZHI_WRITE_PICKUP(suffix,myTime,myIter,myThid)
208     CALL FIZHI_WRITE_VEGTILES(suffix,0,myTime,myIter,myThid)
209 molod 1.10 CALL FIZHI_WRITE_DATETIME(myTime,myIter,myThid)
210 edhill 1.6 ENDIF
211 molod 1.4 #endif
212    
213 edhill 1.11 #ifdef ALLOW_DIAGNOSTICS
214     C Write pickup file for diagnostics package
215     IF (useDiagnostics) THEN
216 jmc 1.26 CALL DIAGNOSTICS_WRITE_PICKUP( permPickup,
217     I suffix, myTime, myIter, myThid )
218 edhill 1.11 ENDIF
219     #endif
220    
221 m_bates 1.41 #ifdef ALLOW_GMREDI
222 jmc 1.43 IF ( useGMRedi ) THEN
223     CALL GMREDI_WRITE_PICKUP( permPickup,
224     I suffix, myTime, myIter, myThid )
225     ENDIF
226 m_bates 1.41 #endif
227    
228 jmc 1.40 #ifdef COMPONENT_MODULE
229     IF (useCoupler) THEN
230     CALL CPL_WRITE_PICKUP(
231     & suffix, myTime, myIter, myThid )
232 mlosch 1.9 ENDIF
233 jmc 1.40 #endif /* COMPONENT_MODULE */
234 jmc 1.34
235 jmc 1.29 #ifdef ALLOW_MYPACKAGE
236     IF (useMYPACKAGE) THEN
237     CALL MYPACKAGE_WRITE_PICKUP( permPickup,
238 jmc 1.31 I suffix, myTime, myIter, myThid )
239 jmc 1.29 ENDIF
240     #endif /* ALLOW_MYPACKAGE */
241    
242 jmc 1.23 C-- Every one else must wait until writing is done.
243 jmc 1.36 C this is done within IO routines => no longer needed
244     c _BARRIER
245 jmc 1.22
246 jmc 1.1 RETURN
247     END
248 edhill 1.6
249     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22