/[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.37 - (show annotations) (download)
Tue Sep 1 19:42:39 2009 UTC (14 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint61v
Changes since 1.36: +3 -10 lines
clean-up OBCS pickup (in case we want to fixed the Orlanski restart); but
 still commented out for now.

1 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.36 2009/06/14 21:45:12 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 suffix :: pickup-name suffix
44 CHARACTER*(10) suffix
45 CEOP
46
47 C Going to really do some IO. Make everyone except master thread wait.
48 C this is done within IO routines => no longer needed
49 c _BARRIER
50
51 C Create suffix to pass on to package pickup routines
52 IF ( permPickup ) THEN
53 WRITE(suffix,'(I10.10)') myIter
54 ELSE
55 WRITE(suffix,'(A)') checkPtSuff(nCheckLev)
56 ENDIF
57
58 #ifdef ALLOW_GENERIC_ADVDIFF
59 C Write restart file for 2nd-Order moment (active) Tracers
60 IF ( useGAD ) THEN
61 CALL GAD_WRITE_PICKUP(
62 I suffix, myTime, myIter, myThid )
63 ENDIF
64 #endif /* ALLOW_GENERIC_ADVDIFF */
65
66 #ifdef ALLOW_CD_CODE
67 IF (useCDscheme) THEN
68 CALL CD_CODE_WRITE_PICKUP( permPickup,
69 I suffix, myTime, myIter, myThid )
70 ENDIF
71 #endif /* ALLOW_CD_CODE */
72
73 #ifdef ALLOW_OBCS
74 C SPK 4/9/01: Open boundary checkpointing
75 c IF (useOBCS) THEN
76 c CALL OBCS_WRITE_PICKUP(
77 c & suffix, myTime, myIter, myThid )
78 c ENDIF
79 #endif /* ALLOW_OBCS */
80
81 #ifdef ALLOW_SEAICE
82 IF ( useSEAICE ) THEN
83 CALL SEAICE_WRITE_PICKUP( permPickup,
84 I suffix, myTime, myIter, myThid )
85 ENDIF
86 #endif /* ALLOW_SEAICE */
87
88 #ifdef ALLOW_THSICE
89 IF (useThSIce) THEN
90 CALL THSICE_WRITE_PICKUP( permPickup,
91 I suffix, myTime, myIter, myThid )
92 ENDIF
93 #endif /* ALLOW_THSICE */
94
95 #ifdef COMPONENT_MODULE
96 IF (useCoupler) THEN
97 CALL CPL_WRITE_PICKUP(
98 & suffix, myTime, myIter, myThid )
99 ENDIF
100 #endif /* COMPONENT_MODULE */
101
102 #ifdef ALLOW_FLT
103 C Write restart file for floats
104 IF (useFLT) THEN
105 CALL FLT_WRITE_PICKUP(
106 & suffix, 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,
114 & suffix, 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(suffix,myTime,myIter,myThid)
122 CALL FIZHI_WRITE_VEGTILES(suffix,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 I suffix, myTime, myIter, myThid )
132 ENDIF
133 #endif
134
135 #ifdef ALLOW_GGL90
136 IF ( useGGL90 ) THEN
137 CALL GGL90_WRITE_PICKUP( permPickup,
138 I suffix, myTime, 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_PICKUP( permPickup,
146 I suffix, myTime, myIter, myThid )
147 ENDIF
148 #endif /* ALLOW_PTRACERS */
149
150 #ifdef ALLOW_GCHEM
151 C Write restart file for GCHEM pkg & GCHEM sub-packages
152 IF ( useGCHEM ) THEN
153 CALL GCHEM_WRITE_PICKUP( permPickup,
154 I suffix, myTime, myIter, myThid )
155 ENDIF
156 #endif
157
158 #ifdef ALLOW_CHEAPAML
159 C Write restart file for CHEAPAML pkg
160 IF ( useCheapAML ) THEN
161 CALL CHEAPAML_WRITE_PICKUP( permPickup,
162 I suffix, myTime, myIter, myThid)
163 ENDIF
164 #endif /* ALLOW_CHEAPAML */
165
166 #ifdef ALLOW_MYPACKAGE
167 IF (useMYPACKAGE) THEN
168 CALL MYPACKAGE_WRITE_PICKUP( permPickup,
169 I suffix, myTime, myIter, myThid )
170 ENDIF
171 #endif /* ALLOW_MYPACKAGE */
172
173 C-- Every one else must wait until writing is done.
174 C this is done within IO routines => no longer needed
175 c _BARRIER
176
177 RETURN
178 END
179
180 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22