File indexing completed on 2024-12-17 18:37:26 UTC
view on githubraw file Latest commit 87dd4f7d on 2024-01-17 18:17:24 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
0002
0003
0004
0005
0006
0007 SUBROUTINE OASIM_MONITOR(
0008 I myTime, myIter, myThid )
0009
0010
0011
0012
0013
0014 IMPLICIT NONE
0015 #include "SIZE.h"
0016 #include "EEPARAMS.h"
0017 #include "PARAMS.h"
0018 #include "GRID.h"
0019 #include "OASIM_SIZE.h"
0020 #include "OASIM_PARAMS.h"
0021 #include "OASIM_FIELDS.h"
0022 #ifdef ALLOW_MONITOR
0023 #include "MONITOR.h"
0024 #endif
0025
0026
0027
0028
0029
0030 _RL myTime
0031 INTEGER myIter
0032 INTEGER myThid
0033
0034
0035 LOGICAL DIFFERENT_MULTIPLE
0036 EXTERNAL DIFFERENT_MULTIPLE
0037 LOGICAL MASTER_CPU_IO
0038 EXTERNAL MASTER_CPU_IO
0039
0040 #ifdef ALLOW_OASIM
0041 #ifdef ALLOW_MONITOR
0042
0043
0044 CHARACTER*(MAX_LEN_MBUF) msgBuf
0045 CHARACTER*(MAX_LEN_MBUF) suff
0046 INTEGER l,i,j,bi,bj
0047 _RL dummyRL(6)
0048 _RS onearr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0049
0050
0051 IF ( DIFFERENT_MULTIPLE( oasim_monitorFreq,myTime,deltaTClock )
0052 & ) THEN
0053
0054
0055
0056
0057 IF ( MASTER_CPU_IO(myThid) ) THEN
0058
0059
0060
0061 IF (monitor_stdio) THEN
0062 mon_write_stdout = .TRUE.
0063 ELSE
0064 mon_write_stdout = .FALSE.
0065 ENDIF
0066 mon_write_mnc = .FALSE.
0067
0068 IF ( mon_write_stdout ) THEN
0069 WRITE(msgBuf,'(2A)') '// ==========================',
0070 & '============================='
0071 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1)
0072 WRITE(msgBuf,'(A)')
0073 & '// Begin MONITOR oasim field statistics'
0074 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1)
0075 WRITE(msgBuf,'(2A)') '// ==========================',
0076 & '============================='
0077 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1)
0078 ENDIF
0079
0080
0081 ENDIF
0082
0083 DO bj=myByLo(myThid),myByHi(myThid)
0084 DO bi=myBxLo(myThid),myBxHi(myThid)
0085 DO j=1-OLy,sNy+OLy
0086 DO i=1-OLx,sNx+OLx
0087 onearr(i,j,bi,bj) = oneRS
0088 ENDDO
0089 ENDDO
0090 ENDDO
0091 ENDDO
0092
0093
0094 IF ( OASIM_monitorFreq .NE. monitorFreq ) THEN
0095
0096
0097
0098 CALL MON_SET_PREF('oasim',myThid)
0099 CALL MON_OUT_I( '_tsnumber', myIter,mon_string_none,myThid)
0100 CALL MON_OUT_RL('_secondsf', myTime,mon_string_none,myThid)
0101 ENDIF
0102 CALL MON_SET_PREF('OASIM_',myThid)
0103
0104
0105 CALL MON_WRITESTATS_RL( 1, ccov, 'ccov',
0106 & onearr, onearr, rA , drF, dummyRL, myThid )
0107
0108 CALL MON_WRITESTATS_RL( 1, rlwp, 'rlwp',
0109 & onearr, onearr, rA , drF, dummyRL, myThid )
0110
0111 CALL MON_WRITESTATS_RL( 1, cdre, 'cdre',
0112 & onearr, onearr, rA , drF, dummyRL, myThid )
0113
0114 CALL MON_WRITESTATS_RL( 1, slp, 'slp',
0115 & onearr, onearr, rA , drF, dummyRL, myThid )
0116
0117 CALL MON_WRITESTATS_RL( 1, wsm, 'wsm',
0118 & onearr, onearr, rA , drF, dummyRL, myThid )
0119
0120 CALL MON_WRITESTATS_RL( 1, rh, 'rh',
0121 & onearr, onearr, rA , drF, dummyRL, myThid )
0122
0123 CALL MON_WRITESTATS_RL( 1, oz, 'oz',
0124 & onearr, onearr, rA , drF, dummyRL, myThid )
0125
0126 CALL MON_WRITESTATS_RL( 1, wv, 'wv',
0127 & onearr, onearr, rA , drF, dummyRL, myThid )
0128
0129 DO l = 1, nlt
0130 WRITE(suff,'(A7,I3.3)') 'taua',l
0131 CALL MON_WRITESTATS_RL(
0132 & 1, taua(1-OLx,1-OLy,1,1,l), suff,
0133 & onearr, onearr, rA ,drF, dummyRL, myThid )
0134 ENDDO
0135
0136 DO l = 1, nlt
0137 WRITE(suff,'(A7,I3.3)') 'asymp',l
0138 CALL MON_WRITESTATS_RL(
0139 & 1, asymp(1-OLx,1-OLy,1,1,l), suff,
0140 & onearr, onearr, rA ,drF, dummyRL, myThid )
0141 ENDDO
0142
0143 DO l = 1, nlt
0144 WRITE(suff,'(A7,I3.3)') 'ssalb',l
0145 CALL MON_WRITESTATS_RL(
0146 & 1, ssalb(1-OLx,1-OLy,1,1,l), suff,
0147 & onearr, onearr, rA ,drF, dummyRL, myThid )
0148 ENDDO
0149
0150
0151 DO l = 1, nlt
0152 WRITE(suff,'(A7,I2.2)') 'Edabove',l
0153 CALL MON_WRITESTATS_RL(
0154 & 1, OASIM_Edabove(1-OLx,1-OLy,1,1,l), suff,
0155 & onearr, onearr, rA ,drF, dummyRL, myThid )
0156 ENDDO
0157
0158 DO l = 1, nlt
0159 WRITE(suff,'(A7,I2.2)') 'Esabove',l
0160 CALL MON_WRITESTATS_RL(
0161 & 1, OASIM_Esabove(1-OLx,1-OLy,1,1,l), suff,
0162 & onearr, onearr, rA ,drF, dummyRL, myThid )
0163 ENDDO
0164
0165 DO l = 1, nlt
0166 WRITE(suff,'(A7,I2.2)') 'Edbelow',l
0167 CALL MON_WRITESTATS_RL(
0168 & 1, OASIM_Edbelow(1-OLx,1-OLy,1,1,l), suff,
0169 & maskInC, maskInC, rA ,drF, dummyRL, myThid )
0170 ENDDO
0171
0172 DO l = 1, nlt
0173 WRITE(suff,'(A7,I2.2)') 'Esbelow',l
0174 CALL MON_WRITESTATS_RL(
0175 & 1, OASIM_Esbelow(1-OLx,1-OLy,1,1,l), suff,
0176 & maskInC, maskInC, rA ,drF, dummyRL, myThid )
0177 ENDDO
0178
0179 CALL MON_WRITESTATS_RL(
0180 & 1, OASIM_solz(1-OLx,1-OLy,1,1), 'solz',
0181 & onearr, onearr, rA ,drF, dummyRL, myThid )
0182
0183 CALL MON_WRITESTATS_RL(
0184 & 1, OASIM_rmud(1-OLx,1-OLy,1,1), 'rmud',
0185 & maskInC, maskInC, rA ,drF, dummyRL, myThid )
0186
0187
0188 IF ( MASTER_CPU_IO(myThid) ) THEN
0189
0190
0191
0192 IF ( mon_write_stdout ) THEN
0193 WRITE(msgBuf,'(2A)') '// ==========================',
0194 & '============================='
0195 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1)
0196 WRITE(msgBuf,'(A)')
0197 & '// End MONITOR OASIM field statistics'
0198 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1)
0199 WRITE(msgBuf,'(2A)') '// ==========================',
0200 & '============================='
0201 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1)
0202 ENDIF
0203
0204 mon_write_stdout = .FALSE.
0205 mon_write_mnc = .FALSE.
0206
0207
0208 ENDIF
0209
0210
0211
0212
0213 ENDIF
0214
0215 #endif /* ALLOW_MONITOR */
0216 #endif /* ALLOW_OASIM */
0217
0218 RETURN
0219 END