72 |
CEOP |
CEOP |
73 |
|
|
74 |
IF ( writeBinaryPrec .EQ. precFloat64 ) THEN |
IF ( writeBinaryPrec .EQ. precFloat64 ) THEN |
75 |
pf(1:1) = 'D' |
pf(1:1) = 'D' |
76 |
ELSE |
ELSE |
77 |
pf(1:1) = 'R' |
pf(1:1) = 'R' |
78 |
ENDIF |
ENDIF |
79 |
|
|
80 |
C---------------------------------------------------------------- |
C---------------------------------------------------------------- |
95 |
& Nr, myIter, myThid ) |
& Nr, myIter, myThid ) |
96 |
ENDIF |
ENDIF |
97 |
|
|
98 |
if (MYwriteState .AND. snapshot_mdsio) then |
IF (MYwriteState .AND. snapshot_mdsio) THEN |
99 |
#ifdef MULTIPLE_RECORD_MY82_STATE_FILES |
#ifdef MULTIPLE_RECORD_MY82_STATE_FILES |
100 |
C Write each snap-shot as a new record in one file per variable |
C Write each snap-shot as a new record in one file per variable |
101 |
C - creates relatively few files but these files can become huge |
C - creates relatively few files but these files can become huge |
117 |
CALL WRITE_FLD_XY_RL('MYhbl.',suff,MYhbl, |
CALL WRITE_FLD_XY_RL('MYhbl.',suff,MYhbl, |
118 |
& myIter,myThid) |
& myIter,myThid) |
119 |
#endif /* MULTIPLE_RECORD_MY82_STATE_FILES */ |
#endif /* MULTIPLE_RECORD_MY82_STATE_FILES */ |
120 |
endif |
ENDIF |
121 |
|
|
122 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
123 |
IF (MYwriteState .AND. useMNC .AND. snapshot_mnc ) THEN |
IF (MYwriteState .AND. useMNC .AND. snapshot_mnc ) THEN |
124 |
CALL MNC_CW_SET_UDIM('my_state', -1, myThid) |
CALL MNC_CW_SET_UDIM('my_state', -1, myThid) |
125 |
CALL MNC_CW_RL_W_S('D','my_state',0,0,'T',myTime,myThid) |
CALL MNC_CW_RL_W_S('D','my_state',0,0,'T',myCurrentTime,myThid) |
126 |
CALL MNC_CW_SET_UDIM('my_state', 0, myThid) |
CALL MNC_CW_SET_UDIM('my_state', 0, myThid) |
127 |
CALL MNC_CW_I_W_S('I','my_state',0,0,'iter',myIter,myThid) |
CALL MNC_CW_I_W_S('I','my_state',0,0,'iter',myIter,myThid) |
128 |
CALL MNC_CW_RL_W(pf,'my_state',0,0, |
CALL MNC_CW_RL_W(pf,'my_state',0,0, |
129 |
& 'MYviscAr', MYviscAr, myThid) |
& 'MYviscAr', MYviscAr, myThid) |
130 |
CALL MNC_CW_RL_W(pf,'my_state',0,0, |
CALL MNC_CW_RL_W(pf,'my_state',0,0, |
131 |
& 'MYdiffKr', MYdiffKr, myThid) |
& 'MYdiffKr', MYdiffKr, myThid) |
132 |
CALL MNC_CW_RL_W(pf,'my_state',0,0, |
print *, 'ml-hbl 1' |
133 |
& 'MYhbl', MYhbl, myThid) |
CALL MNC_CW_RL_W(pf,'my_state',0,0, |
134 |
ENDIF |
& 'MYhbl', MYhbl, myThid) |
135 |
|
print *, 'ml-hbl 2' |
136 |
|
ENDIF |
137 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
138 |
|
|
139 |
C-- Increment record counter |
C-- Increment record counter |
227 |
CALL WRITE_FLD_XY_RL('MYhbl-T.', suff,MYhblTave, |
CALL WRITE_FLD_XY_RL('MYhbl-T.', suff,MYhblTave, |
228 |
& myIter,myThid) |
& myIter,myThid) |
229 |
#endif /* MULTIPLE_RECORD_MY82_STATE_FILES */ |
#endif /* MULTIPLE_RECORD_MY82_STATE_FILES */ |
230 |
ENDIF |
ENDIF |
231 |
|
|
232 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
233 |
IF (MYwriteState .AND. useMNC .AND. timeave_mnc) THEN |
IF (MYwriteState .AND. useMNC .AND. timeave_mnc) THEN |
234 |
CALL MNC_CW_SET_UDIM('my_timeave', -1, myThid) |
CALL MNC_CW_SET_UDIM('my_timeave', -1, myThid) |
235 |
CALL MNC_CW_RL_W_S('D','my_timeave',0,0,'T',myTime,myThid) |
CALL MNC_CW_RL_W_S('D','my_timeave',0,0,'T',myCurrentTime,myThid) |
236 |
CALL MNC_CW_SET_UDIM('my_timeave', 0, myThid) |
CALL MNC_CW_SET_UDIM('my_timeave', 0, myThid) |
237 |
CALL MNC_CW_I_W_S('I','my_timeave',0,0,'iter',myIter,myThid) |
CALL MNC_CW_I_W_S('I','my_timeave',0,0,'iter',myIter,myThid) |
238 |
CALL MNC_CW_RL_W(pf,'my_timeave',0,0, |
CALL MNC_CW_RL_W(pf,'my_timeave',0,0, |
239 |
& 'MYviscAr', MYviscArTave, myThid) |
& 'MYviscAr', MYviscArTave, myThid) |
240 |
CALL MNC_CW_RL_W(pf,'my_timeave',0,0, |
CALL MNC_CW_RL_W(pf,'my_timeave',0,0, |
241 |
& 'MYdiffKr', MYdiffKrTave, myThid) |
& 'MYdiffKr', MYdiffKrTave, myThid) |
242 |
CALL MNC_CW_RL_W(pf,'my_timeave',0,0, |
CALL MNC_CW_RL_W(pf,'my_timeave',0,0, |
243 |
& 'MYhbl', MYhblTave, myThid) |
& 'MYhbl', MYhblTave, myThid) |
244 |
ENDIF |
ENDIF |
245 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
246 |
|
|
247 |
C Reset averages to zero |
C Reset averages to zero |
248 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
249 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
250 |
CALL TIMEAVE_RESET(MYviscArtave,Nr,bi,bj,myThid) |
CALL TIMEAVE_RESET(MYviscArtave,Nr,bi,bj,myThid) |
251 |
CALL TIMEAVE_RESET(MYdiffKrtave,Nr,bi,bj,myThid) |
CALL TIMEAVE_RESET(MYdiffKrtave,Nr,bi,bj,myThid) |
252 |
CALL TIMEAVE_RESET(MYhbltave, 1,bi,bj,myThid) |
CALL TIMEAVE_RESET(MYhbltave, 1,bi,bj,myThid) |
253 |
DO k=1,Nr |
DO k=1,Nr |
254 |
my_TimeAve(k,bi,bj)=0. |
my_TimeAve(k,bi,bj)=0. |
|
ENDDO |
|
255 |
ENDDO |
ENDDO |
256 |
ENDDO |
ENDDO |
257 |
|
ENDDO |
258 |
|
|
259 |
C Time Average MY fields |
C Time Average MY fields |
260 |
DDTT=0.5*deltaTclock |
DDTT=0.5*deltaTclock |
261 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
262 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
263 |
CALL TIMEAVE_CUMULATE( |
CALL TIMEAVE_CUMULATE( |
264 |
& MYviscArtave,MYviscAr,Nr,DDTT,bi,bj,myThid) |
& MYviscArtave,MYviscAr,Nr,DDTT,bi,bj,myThid) |
265 |
CALL TIMEAVE_CUMULATE( |
CALL TIMEAVE_CUMULATE( |
266 |
& MYdiffKrtave,MYdiffKr,Nr,DDTT,bi,bj,myThid) |
& MYdiffKrtave,MYdiffKr,Nr,DDTT,bi,bj,myThid) |
267 |
CALL TIMEAVE_CUMULATE( |
CALL TIMEAVE_CUMULATE( |
268 |
& MYhbltave, MYhbl, 1, DDTT,bi,bj,myThid) |
& MYhbltave, MYhbl, 1, DDTT,bi,bj,myThid) |
269 |
C Keep record of how much time has been integrated over |
C Keep record of how much time has been integrated over |
270 |
DO k=1,Nr |
DO k=1,Nr |
271 |
my_TimeAve(k,bi,bj)=my_TimeAve(k,bi,bj)+DDTT |
my_TimeAve(k,bi,bj)=my_TimeAve(k,bi,bj)+DDTT |
|
ENDDO |
|
272 |
ENDDO |
ENDDO |
273 |
ENDDO |
ENDDO |
274 |
|
ENDDO |
275 |
ENDIF |
ENDIF |
276 |
|
|
277 |
#endif /* ALLOW_TIMEAVE */ |
#endif /* ALLOW_TIMEAVE */ |
278 |
|
|
279 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
280 |
IF ( useDiagnostics ) THEN |
IF ( useDiagnostics ) THEN |
281 |
CALL DIAGNOSTICS_FILL(MYviscAz,'MYviscAr',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(MYviscAr,'MYVISCAR',0,Nr,0,1,1,myThid) |
282 |
CALL DIAGNOSTICS_FILL(MYdiffKr,'MYdiffKr',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(MYdiffKr,'MYDIFFKR',0,Nr,0,1,1,myThid) |
283 |
CALL DIAGNOSTICS_FILL(MYhbl ,'MYhbl ',0,1 ,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(MYhbl ,'MYHBL ',0,1 ,0,1,1,myThid) |
284 |
ENDIF |
ENDIF |
285 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
286 |
|
|