34 |
EXTERNAL DIFFERENT_MULTIPLE |
EXTERNAL DIFFERENT_MULTIPLE |
35 |
INTEGER i, j, k, bi, bj |
INTEGER i, j, k, bi, bj |
36 |
_RS arr(1-oLx:sNx+oLx,1-oLy:sNy+oLy,nSx,nSy) |
_RS arr(1-oLx:sNx+oLx,1-oLy:sNy+oLy,nSx,nSy) |
37 |
|
INTEGER thisdate(4), prevdate(4) |
38 |
|
LOGICAL dumpFiles |
39 |
|
|
40 |
IF (SEAICEwriteState) THEN |
IF (SEAICEwriteState) THEN |
41 |
|
|
191 |
ENDDO |
ENDDO |
192 |
|
|
193 |
C Dump files and restart average computation if needed |
C Dump files and restart average computation if needed |
194 |
IF ( myIter.NE.nIter0 .AND. |
dumpFiles = .FALSE. |
195 |
& DIFFERENT_MULTIPLE(SEAICE_taveFreq,myTime,myTime-deltaTClock) |
IF ( myIter .NE. nIter0 ) THEN |
196 |
& ) THEN |
IF (DIFFERENT_MULTIPLE(SEAICE_taveFreq,myTime,myTime-deltaTClock)) |
197 |
|
& dumpFiles = .TRUE. |
198 |
|
#ifdef ALLOW_CAL |
199 |
|
IF ( calendarDumps .AND. ( |
200 |
|
& (SEAICE_taveFreq.GE. 2592000.AND.SEAICE_taveFreq.LE. 2678400).OR. |
201 |
|
& (SEAICE_taveFreq.GE.31104000.AND.SEAICE_taveFreq.LE.31968000))) |
202 |
|
& THEN |
203 |
|
C-- Convert approximate months (30-31 days) and years (360-372 days) |
204 |
|
C to exact calendar months and years. |
205 |
|
C- First determine calendar dates for this and previous time step. |
206 |
|
call cal_GetDate( myiter ,mytime ,thisdate,mythid ) |
207 |
|
call cal_GetDate( myiter-1,mytime-deltaTClock,prevdate,mythid ) |
208 |
|
dumpFiles = .FALSE. |
209 |
|
C- Monthly SEAICE_taveFreq: |
210 |
|
IF( SEAICE_taveFreq.GE. 2592000 .AND. SEAICE_taveFreq.LE. 2678400 |
211 |
|
& .AND. (thisdate(1)-prevdate(1)).GT.50 ) dumpFiles = .TRUE. |
212 |
|
C- Yearly SEAICE_taveFreq: |
213 |
|
IF( SEAICE_taveFreq.GE.31104000 .AND. SEAICE_taveFreq.LE.31968000 |
214 |
|
& .AND. (thisdate(1)-prevdate(1)).GT.5000 ) dumpFiles = .TRUE. |
215 |
|
ENDIF |
216 |
|
#endif |
217 |
|
ENDIF |
218 |
|
|
219 |
|
IF (dumpFiles) THEN |
220 |
C Normalize by integrated time |
C Normalize by integrated time |
221 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
222 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |