28 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
29 |
#include "PARAMS.h" |
#include "PARAMS.h" |
30 |
|
|
31 |
LOGICAL DIFF_BASE_MULTIPLE |
LOGICAL DIFFERENT_MULTIPLE |
32 |
EXTERNAL DIFF_BASE_MULTIPLE |
EXTERNAL DIFFERENT_MULTIPLE |
33 |
INTEGER IO_ERRCOUNT |
INTEGER IO_ERRCOUNT |
34 |
EXTERNAL IO_ERRCOUNT |
EXTERNAL IO_ERRCOUNT |
35 |
|
|
54 |
C fn :: Temp. for building file name string. |
C fn :: Temp. for building file name string. |
55 |
C lgf :: Flag to indicate whether to use global file mode. |
C lgf :: Flag to indicate whether to use global file mode. |
56 |
LOGICAL permCheckPoint, tempCheckPoint |
LOGICAL permCheckPoint, tempCheckPoint |
57 |
|
#ifdef ALLOW_CAL |
58 |
INTEGER thisdate(4), prevdate(4) |
INTEGER thisdate(4), prevdate(4) |
59 |
|
#endif |
60 |
CEOP |
CEOP |
61 |
|
|
62 |
permCheckPoint = .FALSE. |
permCheckPoint = .FALSE. |
63 |
tempCheckPoint = .FALSE. |
tempCheckPoint = .FALSE. |
64 |
permCheckPoint= |
permCheckPoint= |
65 |
& DIFF_BASE_MULTIPLE(baseTime,pChkptFreq,myTime,deltaTClock) |
& DIFFERENT_MULTIPLE(pChkptFreq,myTime,deltaTClock) |
66 |
tempCheckPoint= |
tempCheckPoint= |
67 |
& DIFF_BASE_MULTIPLE(baseTime, ChkptFreq,myTime,deltaTClock) |
& DIFFERENT_MULTIPLE( ChkptFreq,myTime,deltaTClock) |
68 |
|
|
69 |
#ifdef ALLOW_CAL |
#ifdef ALLOW_CAL |
70 |
IF ( calendarDumps ) THEN |
IF ( calendarDumps ) THEN |
159 |
|
|
160 |
C Going to really do some IO. Make everyone except master thread wait. |
C Going to really do some IO. Make everyone except master thread wait. |
161 |
_BARRIER |
_BARRIER |
162 |
_BEGIN_MASTER( myThid ) |
C _BEGIN_MASTER( myThid ) |
163 |
|
|
164 |
prec = precFloat64 |
prec = precFloat64 |
165 |
lgf = globalFile |
lgf = globalFile |
215 |
#endif |
#endif |
216 |
|
|
217 |
#ifdef ALLOW_LAND |
#ifdef ALLOW_LAND |
218 |
C Write pickup file for Lnad package: |
C Write pickup file for Land package: |
219 |
IF (useLand) THEN |
IF (useLand) THEN |
220 |
CALL LAND_WRITE_PICKUP(fn,myTime,myIter,myThid) |
CALL LAND_WRITE_PICKUP(permCheckPoint,fn, |
221 |
|
& myTime,myIter,myThid) |
222 |
ENDIF |
ENDIF |
223 |
#endif |
#endif |
224 |
|
|
234 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
235 |
C Write pickup file for diagnostics package |
C Write pickup file for diagnostics package |
236 |
IF (useDiagnostics) THEN |
IF (useDiagnostics) THEN |
237 |
CALL DIAGNOSTICS_WRITE_PICKUP(fn,myTime,myIter,myThid) |
CALL DIAGNOSTICS_WRITE_PICKUP(permCheckPoint, |
238 |
|
& fn,myTime,myIter,myThid) |
239 |
ENDIF |
ENDIF |
240 |
#endif |
#endif |
241 |
|
|
246 |
ENDIF |
ENDIF |
247 |
#endif /* ALLOW_GGL90 */ |
#endif /* ALLOW_GGL90 */ |
248 |
|
|
249 |
_END_MASTER( myThid ) |
C _END_MASTER( myThid ) |
250 |
_BARRIER |
_BARRIER |
251 |
|
|
252 |
#ifdef ALLOW_PTRACERS |
#ifdef ALLOW_PTRACERS |
253 |
C Write restart file for passive tracers |
C Write restart file for passive tracers |
254 |
IF (usePTRACERS) THEN |
IF (usePTRACERS) THEN |
255 |
CALL PTRACERS_WRITE_CHECKPOINT(fn,myIter,myTime,myThid) |
CALL PTRACERS_WRITE_CHECKPOINT(permCheckPoint, |
256 |
ENDIF |
& fn,myIter,myTime,myThid) |
257 |
|
ENDIF |
258 |
#endif /* ALLOW_PTRACERS */ |
#endif /* ALLOW_PTRACERS */ |
259 |
|
|
260 |
|
#ifdef ALLOW_OFFLINE |
261 |
|
C This is quick fix for A/B checkpoints since the main model |
262 |
|
C checkpoint routine will not be called in OFFLINE mode and will |
263 |
|
C thus not have the chance to set the alternating A/B suffix |
264 |
|
IF ( .NOT. permCheckPoint ) THEN |
265 |
|
nCheckLev = MOD(nCheckLev, maxNoChkptLev)+1 |
266 |
|
ENDIF |
267 |
|
#endif /* ALLOW_OFFLINE */ |
268 |
|
|
269 |
RETURN |
RETURN |
270 |
END |
END |
271 |
|
|