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

  ViewVC Help
Powered by ViewVC 1.1.22