File indexing completed on 2018-03-02 18:41:33 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
d8d1486ca1 Jean*0001 #include "KL10_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE KL10_OUTPUT( myTime, myIter, myThid )
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 IMPLICIT NONE
0040
0041 #include "SIZE.h"
0042 #include "EEPARAMS.h"
0043 #include "PARAMS.h"
0044 #include "KL10.h"
0045 #include "KL10_TAVE.h"
0046
0047
0048
0049
0050
0051
0052 _RL myTime
0053 INTEGER myIter
0054 INTEGER myThid
0055
0056 #ifdef ALLOW_KL10
0057
0058
0059 LOGICAL DIFFERENT_MULTIPLE
0060 EXTERNAL DIFFERENT_MULTIPLE
0061
0062
0063
df5a9764ba Jean*0064 CHARACTER*(10) suff
d8d1486ca1 Jean*0065 #ifdef ALLOW_TIMEAVE
0066 INTEGER bi, bj
0067 _RL DDTT
0068 #endif
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078 IF ( myIter.NE.nIter0 .AND.
0079 & DIFFERENT_MULTIPLE( KLdumpFreq, myTime, deltaTClock )
0080 & ) THEN
0081
0082 IF (KLwriteState) THEN
0083
df5a9764ba Jean*0084 IF ( rwSuffixType.EQ.0 ) THEN
0085 WRITE(suff,'(I10.10)') myIter
0086 ELSE
0087 CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
0088 ENDIF
d8d1486ca1 Jean*0089 CALL WRITE_FLD_XYZ_RL('KLviscAr.',suff,KLviscAr,
0090 & myIter,myThid)
0091 CALL WRITE_FLD_XYZ_RL('KLeps.',suff,KLeps,
0092 & myIter,myThid)
0093 ENDIF
0094
0095 ENDIF
0096
0097
0098
0099
0100
0101 #ifdef ALLOW_TIMEAVE
0102 IF ( KLtaveFreq.GT.0. _d 0 ) THEN
0103
0104 IF ( myIter.EQ.nIter0 ) THEN
0105
0106 DO bj = myByLo(myThid), myByHi(myThid)
0107 DO bi = myBxLo(myThid), myBxHi(myThid)
0108 CALL TIMEAVE_RESET( KLviscArtave, Nr, bi, bj, myThid )
0109 CALL TIMEAVE_RESET( KLdiffKrtave, Nr, bi, bj, myThid )
0110 KL_timeAve(bi,bj) = 0.
0111 ENDDO
0112 ENDDO
0113
0114 ELSE
0115
0116 DDTT=deltaTClock
0117 DO bj = myByLo(myThid), myByHi(myThid)
0118 DO bi = myBxLo(myThid), myBxHi(myThid)
0119 CALL TIMEAVE_CUMULATE( KLviscArtave, KLviscAr,
0120 & Nr, DDTT, bi, bj, myThid )
0121 CALL TIMEAVE_CUMULATE( KLdiffKrtave, KLeps,
0122 & Nr, DDTT, bi, bj, myThid )
0123
0124 KL_timeAve(bi,bj) = KL_timeAve(bi,bj)+DDTT
0125 ENDDO
0126 ENDDO
0127 ENDIF
0128
0129
0130 IF ( myIter.NE.nIter0 .AND.
0131 & DIFFERENT_MULTIPLE( KLtaveFreq, myTime, deltaTClock )
0132 & ) THEN
0133
0134
0135 DO bj = myByLo(myThid), myByHi(myThid)
0136 DO bi = myBxLo(myThid), myBxHi(myThid)
0137 CALL TIMEAVE_NORMALIZE( KLviscArtave,
0138 & KL_timeAve, Nr, bi, bj, myThid )
0139 CALL TIMEAVE_NORMALIZE( KLdiffKrtave,
0140 & KL_timeAve, Nr, bi, bj, myThid )
0141 ENDDO
0142 ENDDO
0143
0144
df5a9764ba Jean*0145 IF ( rwSuffixType.EQ.0 ) THEN
0146 WRITE(suff,'(I10.10)') myIter
0147 ELSE
0148 CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
0149 ENDIF
d8d1486ca1 Jean*0150 CALL WRITE_FLD_XYZ_RL( 'KLviscAr-T.', suff,
0151 & KLviscArTave, myIter, myThid )
0152 CALL WRITE_FLD_XYZ_RL( 'KLeps-T.', suff,
0153 & KLdiffKrTave, myIter, myThid )
0154
0155
0156 DO bj = myByLo(myThid), myByHi(myThid)
0157 DO bi = myBxLo(myThid), myBxHi(myThid)
0158 CALL TIMEAVE_RESET( KLviscArtave, Nr, bi, bj, myThid )
0159 CALL TIMEAVE_RESET( KLdiffKrtave, Nr, bi, bj, myThid )
0160 KL_timeAve(bi,bj) = 0.
0161 ENDDO
0162 ENDDO
0163
0164
0165 ENDIF
0166
0167
0168 ENDIF
0169 #endif /* ALLOW_TIMEAVE */
0170
0171 #ifdef ALLOW_DIAGNOSTICS
0172 IF ( useDiagnostics .AND. myIter.NE.nIter0 ) THEN
0173 CALL DIAGNOSTICS_FILL(KLviscAr,'KLviscAr',0,Nr,0,1,1,myThid)
0174 CALL DIAGNOSTICS_FILL(KLdiffKr,'KLdiffKr',0,Nr,0,1,1,myThid)
0175 CALL DIAGNOSTICS_FILL(KLeps, 'KLeps ',0,Nr,0,1,1,myThid)
0176 ENDIF
0177 #endif /* ALLOW_DIAGNOSTICS */
0178
0179 #endif /* ALLOW_KL10 */
0180
0181 RETURN
0182 END