/[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.25 - (show annotations) (download)
Tue Jan 16 04:40:05 2007 UTC (17 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58w_post, checkpoint58x_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59h, checkpoint59, checkpoint58y_post, checkpoint58v_post
Changes since 1.24: +9 -1 lines
2nd-Order Moment Advection Scheme (Prather, 1986): first check-in
 - enable by setting #define GAD_ALLOW_SOM_ADVECT (in GAD_OPTIONS.h)
 - used without limiter (AdvScheme=80) or with Prather limiter (AdvScheme=81)

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

  ViewVC Help
Powered by ViewVC 1.1.22