/[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.35 - (show annotations) (download)
Sun Jan 4 01:00:19 2009 UTC (15 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61p
Changes since 1.34: +3 -2 lines
- clean-up flt package interface

1 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.34 2008/08/05 22:02:23 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 _BARRIER
53
54 prec = precFloat64
55 lgf = globalFiles
56
57 C Create suffix to pass on to package pickup routines
58 IF ( permPickup ) THEN
59 WRITE(suffix,'(I10.10)') myIter
60 ELSE
61 WRITE(suffix,'(A)') checkPtSuff(nCheckLev)
62 ENDIF
63
64 #ifdef ALLOW_GENERIC_ADVDIFF
65 C Write restart file for 2nd-Order moment (active) Tracers
66 IF ( useGAD ) THEN
67 CALL GAD_WRITE_PICKUP(
68 I suffix, myTime, myIter, myThid )
69 ENDIF
70 #endif /* ALLOW_GENERIC_ADVDIFF */
71
72 #ifdef ALLOW_CD_CODE
73 IF (useCDscheme) THEN
74 CALL CD_CODE_WRITE_PICKUP( permPickup,
75 I suffix, myTime, myIter, myThid )
76 ENDIF
77 #endif /* ALLOW_CD_CODE */
78
79 #ifdef ALLOW_OBCS
80 C SPK 4/9/01: Open boundary checkpointing
81 c IF (useOBCS) THEN
82 c CALL OBCS_WRITE_CHECKPOINT(
83 c & prec, lgf, permPickup, myIter, myThid)
84 c ENDIF
85 #endif /* ALLOW_OBCS */
86
87 #ifdef ALLOW_SEAICE
88 IF ( useSEAICE ) THEN
89 CALL SEAICE_WRITE_PICKUP( permPickup,
90 I suffix, myTime, myIter, myThid )
91 ENDIF
92 #endif /* ALLOW_SEAICE */
93
94 #ifdef ALLOW_THSICE
95 IF (useThSIce) THEN
96 CALL THSICE_WRITE_PICKUP( permPickup,
97 I suffix, myTime, myIter, myThid )
98 ENDIF
99 #endif /* ALLOW_THSICE */
100
101 #ifdef COMPONENT_MODULE
102 IF (useCoupler) THEN
103 CALL CPL_WRITE_PICKUP(
104 & suffix, myTime, myIter, myThid )
105 ENDIF
106 #endif /* COMPONENT_MODULE */
107
108 #ifdef ALLOW_FLT
109 C Write restart file for floats
110 IF (useFLT) THEN
111 CALL FLT_WRITE_PICKUP(
112 & suffix, myTime, myIter, myThid )
113 ENDIF
114 #endif
115
116 #ifdef ALLOW_LAND
117 C Write pickup file for Land package:
118 IF (useLand) THEN
119 CALL LAND_WRITE_PICKUP( permPickup,
120 & suffix, myTime, myIter, myThid )
121 ENDIF
122 #endif
123
124 #ifdef ALLOW_FIZHI
125 C Write pickup file for fizhi package
126 IF (usefizhi) THEN
127 CALL FIZHI_WRITE_PICKUP(suffix,myTime,myIter,myThid)
128 CALL FIZHI_WRITE_VEGTILES(suffix,0,myTime,myIter,myThid)
129 CALL FIZHI_WRITE_DATETIME(myTime,myIter,myThid)
130 ENDIF
131 #endif
132
133 #ifdef ALLOW_DIAGNOSTICS
134 C Write pickup file for diagnostics package
135 IF (useDiagnostics) THEN
136 CALL DIAGNOSTICS_WRITE_PICKUP( permPickup,
137 I suffix, myTime, myIter, myThid )
138 ENDIF
139 #endif
140
141 #ifdef ALLOW_GGL90
142 IF ( useGGL90 ) THEN
143 CALL GGL90_WRITE_PICKUP( permPickup,
144 I suffix, myTime, myIter, myThid )
145 ENDIF
146 #endif /* ALLOW_GGL90 */
147
148 #ifdef ALLOW_PTRACERS
149 C Write restart file for passive tracers
150 IF (usePTRACERS) THEN
151 CALL PTRACERS_WRITE_PICKUP( permPickup,
152 I suffix, myTime, myIter, myThid )
153 ENDIF
154 #endif /* ALLOW_PTRACERS */
155
156 #ifdef ALLOW_GCHEM
157 C Write restart file for GCHEM pkg & GCHEM sub-packages
158 IF ( useGCHEM ) THEN
159 CALL GCHEM_WRITE_PICKUP( permPickup,
160 I suffix, myTime, myIter, myThid )
161 ENDIF
162 #endif
163
164 #ifdef ALLOW_CHEAPAML
165 C Write restart file for CHEAPAML pkg
166 IF ( useCheapAML ) THEN
167 CALL CHEAPAML_WRITE_PICKUP( permPickup,
168 I suffix, myTime, myIter, myThid)
169 ENDIF
170 #endif /* ALLOW_CHEAPAML */
171
172 #ifdef ALLOW_MYPACKAGE
173 IF (useMYPACKAGE) THEN
174 CALL MYPACKAGE_WRITE_PICKUP( permPickup,
175 I suffix, myTime, myIter, myThid )
176 ENDIF
177 #endif /* ALLOW_MYPACKAGE */
178
179 C-- Every one else must wait until writing is done.
180 _BARRIER
181
182 RETURN
183 END
184
185 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22