3 |
|
|
4 |
#include "DIAG_OPTIONS.h" |
#include "DIAG_OPTIONS.h" |
5 |
|
|
6 |
SUBROUTINE DIAGNOSTICS_WRITE ( myTime, myIter, myThid ) |
SUBROUTINE DIAGNOSTICS_WRITE ( |
7 |
|
I modelEnd, |
8 |
|
I myTime, myIter, myThid ) |
9 |
C*********************************************************************** |
C*********************************************************************** |
10 |
C Purpose |
C Purpose |
11 |
C ------- |
C ------- |
13 |
C |
C |
14 |
C Arguments Description |
C Arguments Description |
15 |
C ---------------------- |
C ---------------------- |
16 |
C myTime :: Current time of simulation ( s ) |
C modelEnd :: true if call at end of model run. |
17 |
C myIter :: Current Iteration Number |
C myTime :: Current time of simulation ( s ) |
18 |
C myThid :: my Thread Id number |
C myIter :: Current Iteration Number |
19 |
|
C myThid :: my Thread Id number |
20 |
C*********************************************************************** |
C*********************************************************************** |
21 |
IMPLICIT NONE |
IMPLICIT NONE |
22 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
26 |
#include "DIAGNOSTICS.h" |
#include "DIAGNOSTICS.h" |
27 |
|
|
28 |
C !INPUT PARAMETERS: |
C !INPUT PARAMETERS: |
29 |
|
LOGICAL modelEnd |
30 |
_RL myTime |
_RL myTime |
31 |
INTEGER myIter, myThid |
INTEGER myIter, myThid |
32 |
|
|
37 |
LOGICAL dump2fileNow, write2file |
LOGICAL dump2fileNow, write2file |
38 |
_RL phiSec, freqSec, wrTime |
_RL phiSec, freqSec, wrTime |
39 |
#ifdef ALLOW_FIZHI |
#ifdef ALLOW_FIZHI |
40 |
logical alarm2 |
LOGICAL alarm2 |
41 |
character *9 tagname |
CHARACTER *9 tagname |
42 |
#endif |
#endif |
43 |
|
|
44 |
LOGICAL DIFF_PHASE_MULTIPLE |
LOGICAL DIFF_PHASE_MULTIPLE |
48 |
myItM1 = myIter - 1 |
myItM1 = myIter - 1 |
49 |
|
|
50 |
C*********************************************************************** |
C*********************************************************************** |
51 |
C*** Check to see IF its time for Diagnostic Output *** |
C*** Check to see if its time for Diagnostic Output *** |
52 |
C*********************************************************************** |
C*********************************************************************** |
53 |
|
|
54 |
write2file = .FALSE. |
write2file = .FALSE. |
72 |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
73 |
& wrTime, deltaTclock ) |
& wrTime, deltaTclock ) |
74 |
#ifdef ALLOW_FIZHI |
#ifdef ALLOW_FIZHI |
75 |
IF( useFIZHI) THEN |
IF ( useFIZHI ) THEN |
76 |
write(tagname,'(A,I2.2)')'diagtag',n |
WRITE(tagname,'(A,I2.2)')'diagtag',n |
77 |
dump2fileNow = alarm2(tagname) |
dump2fileNow = alarm2(tagname) |
78 |
ENDIF |
ENDIF |
79 |
#endif |
#endif |
84 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
85 |
ENDIF |
ENDIF |
86 |
#endif /* ALLOW_CAL */ |
#endif /* ALLOW_CAL */ |
87 |
IF ( dump2fileNow .OR. |
IF ( dumpAtLast .AND. modelEnd |
88 |
& (myTime.EQ.endTime .AND. dumpatlast) ) THEN |
& .AND. freqSec.GE.0. ) dump2fileNow = .TRUE. |
89 |
|
IF ( dump2fileNow ) THEN |
90 |
write2file = .TRUE. |
write2file = .TRUE. |
91 |
CALL DIAGNOSTICS_OUT(n,wrIter,wrTime,myThid) |
CALL DIAGNOSTICS_OUT(n,wrIter,wrTime,myThid) |
92 |
ENDIF |
ENDIF |
93 |
ENDDO |
ENDDO |
94 |
|
|
95 |
C--- Check to see IF its time for Statistics Diag. Output |
C--- Check to see if its time for Statistics Diag. Output |
96 |
|
|
97 |
DO n = 1,diagSt_nbLists |
DO n = 1,diagSt_nbLists |
98 |
freqSec = diagSt_freq(n) |
freqSec = diagSt_freq(n) |
114 |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
115 |
& wrTime, deltaTclock ) |
& wrTime, deltaTclock ) |
116 |
#ifdef ALLOW_FIZHI |
#ifdef ALLOW_FIZHI |
117 |
IF( useFIZHI) THEN |
IF ( useFIZHI ) THEN |
118 |
write(tagname,'(A,I2.2)')'diagStg',n |
WRITE(tagname,'(A,I2.2)')'diagStg',n |
119 |
dump2fileNow = alarm2(tagname) |
dump2fileNow = alarm2(tagname) |
120 |
ENDIF |
ENDIF |
121 |
#endif |
#endif |
122 |
IF ( dump2fileNow .OR. |
IF ( dumpAtLast .AND. modelEnd |
123 |
& (myTime.EQ.endTime .AND. dumpatlast) ) THEN |
& .AND. freqSec.GE.0. ) dump2fileNow = .TRUE. |
124 |
|
IF ( dump2fileNow ) THEN |
125 |
write2file = .TRUE. |
write2file = .TRUE. |
126 |
CALL DIAGSTATS_OUTPUT(n,wrTime,wrIter,myThid) |
CALL DIAGSTATS_OUTPUT(n,wrTime,wrIter,myThid) |
127 |
ENDIF |
ENDIF |
148 |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
149 |
& wrTime, deltaTclock ) |
& wrTime, deltaTclock ) |
150 |
#ifdef ALLOW_FIZHI |
#ifdef ALLOW_FIZHI |
151 |
IF( useFIZHI) THEN |
IF ( useFIZHI ) THEN |
152 |
write(tagname,'(A,I2.2)')'diagtag',n |
WRITE(tagname,'(A,I2.2)')'diagtag',n |
153 |
dump2fileNow = alarm2(tagname) |
dump2fileNow = alarm2(tagname) |
154 |
ENDIF |
ENDIF |
155 |
#endif |
#endif |
160 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
161 |
ENDIF |
ENDIF |
162 |
#endif /* ALLOW_CAL */ |
#endif /* ALLOW_CAL */ |
163 |
IF ( dump2fileNow .OR. |
IF ( dumpAtLast .AND. modelEnd |
164 |
& (myTime.EQ.endTime .AND. dumpatlast) |
& .AND. freqSec.GE.0. ) dump2fileNow = .TRUE. |
165 |
& ) CALL DIAGNOSTICS_CLEAR(n,myThid) |
IF ( dump2fileNow ) CALL DIAGNOSTICS_CLEAR(n,myThid) |
166 |
ENDDO |
ENDDO |
167 |
|
|
168 |
DO n = 1,diagSt_nbLists |
DO n = 1,diagSt_nbLists |
173 |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
dump2fileNow = DIFF_PHASE_MULTIPLE( phiSec, freqSec, |
174 |
& wrTime, deltaTclock ) |
& wrTime, deltaTclock ) |
175 |
#ifdef ALLOW_FIZHI |
#ifdef ALLOW_FIZHI |
176 |
IF( useFIZHI) THEN |
IF ( useFIZHI ) THEN |
177 |
write(tagname,'(A,I2.2)')'diagStg',n |
WRITE(tagname,'(A,I2.2)')'diagStg',n |
178 |
dump2fileNow = alarm2(tagname) |
dump2fileNow = alarm2(tagname) |
179 |
ENDIF |
ENDIF |
180 |
#endif |
#endif |
181 |
IF ( dump2fileNow .OR. |
IF ( dumpAtLast .AND. modelEnd |
182 |
& (myTime.EQ.endTime .AND. dumpatlast) |
& .AND. freqSec.GE.0. ) dump2fileNow = .TRUE. |
183 |
& ) CALL DIAGSTATS_CLEAR( n, myThid ) |
IF ( dump2fileNow ) CALL DIAGSTATS_CLEAR( n, myThid ) |
184 |
ENDDO |
ENDDO |
185 |
|
|
186 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |