/[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.37 - (hide 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 jmc 1.37 C $Header: /u/gcmpack/MITgcm/model/src/packages_write_pickup.F,v 1.36 2009/06/14 21:45:12 jmc 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.23 I permPickup,
16     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     C !USES:
25     IMPLICIT NONE
26     #include "SIZE.h"
27     #include "EEPARAMS.h"
28     #include "PARAMS.h"
29 jmc 1.27 #include "RESTART.h"
30 jmc 1.1
31     C !INPUT/OUTPUT PARAMETERS:
32 jmc 1.23 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 jmc 1.22 _RL myTime
38     INTEGER myIter
39 edhill 1.6 INTEGER myThid
40 jmc 1.1
41 edhill 1.6 C !LOCAL VARIABLES:
42     C == Local variables ==
43 jmc 1.26 C suffix :: pickup-name suffix
44     CHARACTER*(10) suffix
45 edhill 1.6 CEOP
46 jmc 1.1
47 edhill 1.6 C Going to really do some IO. Make everyone except master thread wait.
48 jmc 1.36 C this is done within IO routines => no longer needed
49     c _BARRIER
50 edhill 1.6
51     C Create suffix to pass on to package pickup routines
52 jmc 1.23 IF ( permPickup ) THEN
53 jmc 1.26 WRITE(suffix,'(I10.10)') myIter
54 edhill 1.6 ELSE
55 jmc 1.26 WRITE(suffix,'(A)') checkPtSuff(nCheckLev)
56 edhill 1.6 ENDIF
57 jmc 1.1
58 jmc 1.25 #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 jmc 1.26 I suffix, myTime, myIter, myThid )
63 jmc 1.25 ENDIF
64     #endif /* ALLOW_GENERIC_ADVDIFF */
65    
66 jmc 1.1 #ifdef ALLOW_CD_CODE
67 edhill 1.6 IF (useCDscheme) THEN
68 jmc 1.26 CALL CD_CODE_WRITE_PICKUP( permPickup,
69     I suffix, myTime, myIter, myThid )
70 edhill 1.6 ENDIF
71 jmc 1.1 #endif /* ALLOW_CD_CODE */
72    
73     #ifdef ALLOW_OBCS
74 edhill 1.6 C SPK 4/9/01: Open boundary checkpointing
75 dimitri 1.28 c IF (useOBCS) THEN
76 jmc 1.37 c CALL OBCS_WRITE_PICKUP(
77     c & suffix, myTime, myIter, myThid )
78 dimitri 1.28 c ENDIF
79 jmc 1.1 #endif /* ALLOW_OBCS */
80 jmc 1.22
81 jmc 1.3 #ifdef ALLOW_SEAICE
82 edhill 1.6 IF ( useSEAICE ) THEN
83 jmc 1.26 CALL SEAICE_WRITE_PICKUP( permPickup,
84     I suffix, myTime, myIter, myThid )
85 edhill 1.6 ENDIF
86 jmc 1.3 #endif /* ALLOW_SEAICE */
87 jmc 1.1
88     #ifdef ALLOW_THSICE
89 edhill 1.6 IF (useThSIce) THEN
90 jmc 1.26 CALL THSICE_WRITE_PICKUP( permPickup,
91     I suffix, myTime, myIter, myThid )
92 edhill 1.6 ENDIF
93 jmc 1.1 #endif /* ALLOW_THSICE */
94 jmc 1.2
95     #ifdef COMPONENT_MODULE
96 edhill 1.6 IF (useCoupler) THEN
97     CALL CPL_WRITE_PICKUP(
98 jmc 1.26 & suffix, myTime, myIter, myThid )
99 edhill 1.6 ENDIF
100 jmc 1.2 #endif /* COMPONENT_MODULE */
101 jmc 1.1
102     #ifdef ALLOW_FLT
103 edhill 1.6 C Write restart file for floats
104     IF (useFLT) THEN
105 jmc 1.35 CALL FLT_WRITE_PICKUP(
106     & suffix, myTime, myIter, myThid )
107 edhill 1.6 ENDIF
108 jmc 1.1 #endif
109    
110     #ifdef ALLOW_LAND
111 edhill 1.17 C Write pickup file for Land package:
112 edhill 1.6 IF (useLand) THEN
113 jmc 1.26 CALL LAND_WRITE_PICKUP( permPickup,
114     & suffix, myTime, myIter, myThid )
115 edhill 1.6 ENDIF
116 jmc 1.1 #endif
117 molod 1.4
118     #ifdef ALLOW_FIZHI
119 edhill 1.6 C Write pickup file for fizhi package
120     IF (usefizhi) THEN
121 jmc 1.26 CALL FIZHI_WRITE_PICKUP(suffix,myTime,myIter,myThid)
122     CALL FIZHI_WRITE_VEGTILES(suffix,0,myTime,myIter,myThid)
123 molod 1.10 CALL FIZHI_WRITE_DATETIME(myTime,myIter,myThid)
124 edhill 1.6 ENDIF
125 molod 1.4 #endif
126    
127 edhill 1.11 #ifdef ALLOW_DIAGNOSTICS
128     C Write pickup file for diagnostics package
129     IF (useDiagnostics) THEN
130 jmc 1.26 CALL DIAGNOSTICS_WRITE_PICKUP( permPickup,
131     I suffix, myTime, myIter, myThid )
132 edhill 1.11 ENDIF
133     #endif
134    
135 mlosch 1.9 #ifdef ALLOW_GGL90
136     IF ( useGGL90 ) THEN
137 jmc 1.26 CALL GGL90_WRITE_PICKUP( permPickup,
138 jmc 1.31 I suffix, myTime, myIter, myThid )
139 mlosch 1.9 ENDIF
140     #endif /* ALLOW_GGL90 */
141    
142 jmc 1.1 #ifdef ALLOW_PTRACERS
143 edhill 1.15 C Write restart file for passive tracers
144     IF (usePTRACERS) THEN
145 jmc 1.26 CALL PTRACERS_WRITE_PICKUP( permPickup,
146 jmc 1.31 I suffix, myTime, myIter, myThid )
147 edhill 1.15 ENDIF
148 jmc 1.1 #endif /* ALLOW_PTRACERS */
149    
150 jmc 1.32 #ifdef ALLOW_GCHEM
151     C Write restart file for GCHEM pkg & GCHEM sub-packages
152     IF ( useGCHEM ) THEN
153 jmc 1.33 CALL GCHEM_WRITE_PICKUP( permPickup,
154 jmc 1.32 I suffix, myTime, myIter, myThid )
155     ENDIF
156 dfer 1.30 #endif
157    
158 jmc 1.34 #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 jmc 1.29 #ifdef ALLOW_MYPACKAGE
167     IF (useMYPACKAGE) THEN
168     CALL MYPACKAGE_WRITE_PICKUP( permPickup,
169 jmc 1.31 I suffix, myTime, myIter, myThid )
170 jmc 1.29 ENDIF
171     #endif /* ALLOW_MYPACKAGE */
172    
173 jmc 1.23 C-- Every one else must wait until writing is done.
174 jmc 1.36 C this is done within IO routines => no longer needed
175     c _BARRIER
176 jmc 1.22
177 jmc 1.1 RETURN
178     END
179 edhill 1.6
180     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22