/[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.26 - (show annotations) (download)
Fri Oct 19 03:23:34 2007 UTC (16 years, 7 months ago) by jmc
Branch: MAIN
Changes since 1.25: +24 -28 lines
more stantard interface to {PKG}_WRITE_PICKUP:
- change argument list (pass pickup suffix, declared as CHARACTER*(*) ).

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

  ViewVC Help
Powered by ViewVC 1.1.22