/[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.36 - (show annotations) (download)
Sun Jun 14 21:45:12 2009 UTC (14 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61q
Changes since 1.35: +5 -3 lines
remove unnecessary BARRIER

1 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.35 2009/01/04 01:00:19 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 #include "RESTART.h"
30
31 C !INPUT/OUTPUT PARAMETERS:
32 C permPickup :: Is or is not a permanent pickup.
33 C myTime :: Current time of simulation ( s )
34 C myIter :: Iteration number
35 C myThid :: Thread number for this instance of the routine.
36 LOGICAL permPickup
37 _RL myTime
38 INTEGER myIter
39 INTEGER myThid
40
41 C !LOCAL VARIABLES:
42 C == Local variables ==
43 C prec :: file precision
44 C suffix :: pickup-name suffix
45 C lgf :: Flag to indicate whether to use global file mode.
46 CHARACTER*(10) suffix
47 INTEGER prec
48 LOGICAL lgf
49 CEOP
50
51 C Going to really do some IO. Make everyone except master thread wait.
52 C this is done within IO routines => no longer needed
53 c _BARRIER
54
55 prec = precFloat64
56 lgf = globalFiles
57
58 C Create suffix to pass on to package pickup routines
59 IF ( permPickup ) THEN
60 WRITE(suffix,'(I10.10)') myIter
61 ELSE
62 WRITE(suffix,'(A)') checkPtSuff(nCheckLev)
63 ENDIF
64
65 #ifdef ALLOW_GENERIC_ADVDIFF
66 C Write restart file for 2nd-Order moment (active) Tracers
67 IF ( useGAD ) THEN
68 CALL GAD_WRITE_PICKUP(
69 I suffix, myTime, myIter, myThid )
70 ENDIF
71 #endif /* ALLOW_GENERIC_ADVDIFF */
72
73 #ifdef ALLOW_CD_CODE
74 IF (useCDscheme) THEN
75 CALL CD_CODE_WRITE_PICKUP( permPickup,
76 I suffix, myTime, myIter, myThid )
77 ENDIF
78 #endif /* ALLOW_CD_CODE */
79
80 #ifdef ALLOW_OBCS
81 C SPK 4/9/01: Open boundary checkpointing
82 c IF (useOBCS) THEN
83 c CALL OBCS_WRITE_CHECKPOINT(
84 c & prec, lgf, permPickup, myIter, myThid)
85 c ENDIF
86 #endif /* ALLOW_OBCS */
87
88 #ifdef ALLOW_SEAICE
89 IF ( useSEAICE ) THEN
90 CALL SEAICE_WRITE_PICKUP( permPickup,
91 I suffix, myTime, myIter, myThid )
92 ENDIF
93 #endif /* ALLOW_SEAICE */
94
95 #ifdef ALLOW_THSICE
96 IF (useThSIce) THEN
97 CALL THSICE_WRITE_PICKUP( permPickup,
98 I suffix, myTime, myIter, myThid )
99 ENDIF
100 #endif /* ALLOW_THSICE */
101
102 #ifdef COMPONENT_MODULE
103 IF (useCoupler) THEN
104 CALL CPL_WRITE_PICKUP(
105 & suffix, myTime, myIter, myThid )
106 ENDIF
107 #endif /* COMPONENT_MODULE */
108
109 #ifdef ALLOW_FLT
110 C Write restart file for floats
111 IF (useFLT) THEN
112 CALL FLT_WRITE_PICKUP(
113 & suffix, myTime, myIter, myThid )
114 ENDIF
115 #endif
116
117 #ifdef ALLOW_LAND
118 C Write pickup file for Land package:
119 IF (useLand) THEN
120 CALL LAND_WRITE_PICKUP( permPickup,
121 & suffix, myTime, myIter, myThid )
122 ENDIF
123 #endif
124
125 #ifdef ALLOW_FIZHI
126 C Write pickup file for fizhi package
127 IF (usefizhi) THEN
128 CALL FIZHI_WRITE_PICKUP(suffix,myTime,myIter,myThid)
129 CALL FIZHI_WRITE_VEGTILES(suffix,0,myTime,myIter,myThid)
130 CALL FIZHI_WRITE_DATETIME(myTime,myIter,myThid)
131 ENDIF
132 #endif
133
134 #ifdef ALLOW_DIAGNOSTICS
135 C Write pickup file for diagnostics package
136 IF (useDiagnostics) THEN
137 CALL DIAGNOSTICS_WRITE_PICKUP( permPickup,
138 I suffix, myTime, myIter, myThid )
139 ENDIF
140 #endif
141
142 #ifdef ALLOW_GGL90
143 IF ( useGGL90 ) THEN
144 CALL GGL90_WRITE_PICKUP( permPickup,
145 I suffix, myTime, myIter, myThid )
146 ENDIF
147 #endif /* ALLOW_GGL90 */
148
149 #ifdef ALLOW_PTRACERS
150 C Write restart file for passive tracers
151 IF (usePTRACERS) THEN
152 CALL PTRACERS_WRITE_PICKUP( permPickup,
153 I suffix, myTime, myIter, myThid )
154 ENDIF
155 #endif /* ALLOW_PTRACERS */
156
157 #ifdef ALLOW_GCHEM
158 C Write restart file for GCHEM pkg & GCHEM sub-packages
159 IF ( useGCHEM ) THEN
160 CALL GCHEM_WRITE_PICKUP( permPickup,
161 I suffix, myTime, myIter, myThid )
162 ENDIF
163 #endif
164
165 #ifdef ALLOW_CHEAPAML
166 C Write restart file for CHEAPAML pkg
167 IF ( useCheapAML ) THEN
168 CALL CHEAPAML_WRITE_PICKUP( permPickup,
169 I suffix, myTime, myIter, myThid)
170 ENDIF
171 #endif /* ALLOW_CHEAPAML */
172
173 #ifdef ALLOW_MYPACKAGE
174 IF (useMYPACKAGE) THEN
175 CALL MYPACKAGE_WRITE_PICKUP( permPickup,
176 I suffix, myTime, myIter, myThid )
177 ENDIF
178 #endif /* ALLOW_MYPACKAGE */
179
180 C-- Every one else must wait until writing is done.
181 C this is done within IO routines => no longer needed
182 c _BARRIER
183
184 RETURN
185 END
186
187 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22