File indexing completed on 2025-09-13 12:07:40 UTC
view on githubraw file Latest commit 11d365ac on 2025-06-05 16:41:12 UTC
8fbfd1f382 Oliv*0001 #include "DARWIN_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE DARWIN_MONITOR(
0009 I myTime, myIter, myThid )
0010
0011
0012
0013
0014
0015 IMPLICIT NONE
0016 #include "SIZE.h"
0017 #include "EEPARAMS.h"
0018 #include "PARAMS.h"
0019 #include "GRID.h"
0020 #include "EXF_PARAM.h"
0021 #include "DARWIN_SIZE.h"
0022 #include "DARWIN_EXF_FIELDS.h"
0023 #ifdef ALLOW_MONITOR
0024 # include "MONITOR.h"
0025 #endif
0026 #ifdef ALLOW_MNC
0027 # include "MNC_PARAMS.h"
0028 #endif
0029
0030
0031 _RL myTime
0032 INTEGER myIter
0033 INTEGER myThid
0034
0035
0036 #ifdef ALLOW_MONITOR
0037
0038
0039 LOGICAL DIFFERENT_MULTIPLE
0040 EXTERNAL DIFFERENT_MULTIPLE
0041 LOGICAL MASTER_CPU_IO
0042 EXTERNAL MASTER_CPU_IO
0043
0044
0045 _RL dummyRL(6)
0046 CHARACTER*(MAX_LEN_MBUF) msgBuf
0047 CHARACTER*(MAX_LEN_MBUF) suff
0048 INTEGER l
0049 #ifdef ALLOW_MNC
0050 INTEGER k
0051 #endif
0052 LOGICAL computed
0053
0054 #ifdef ALLOW_BULKFORMULAE
0055 computed = .TRUE.
0056 #else
0057 computed = .FALSE.
0058 #endif
0059
0060 IF ( DIFFERENT_MULTIPLE(exf_monFreq,myTime,deltaTClock)
0061 & ) THEN
0062
0063 IF ( MASTER_CPU_IO(myThid) ) THEN
0064
0065
0066
0067 IF (monitor_stdio) THEN
0068 mon_write_stdout = .TRUE.
0069 ELSE
0070 mon_write_stdout = .FALSE.
0071 ENDIF
0072 mon_write_mnc = .FALSE.
0073 #ifdef ALLOW_MNC
0074 IF (useMNC .AND. monitor_mnc) THEN
0075 DO k = 1,MAX_LEN_MBUF
0076 mon_fname(k:k) = ' '
0077 ENDDO
0078 mon_fname(1:11) = 'monitor_darwin'
0079 CALL MNC_CW_APPEND_VNAME(
0080 & 'T', '-_-_--__-__t', 0,0, myThid)
0081 CALL MNC_CW_SET_UDIM(mon_fname, -1, myThid)
0082 CALL MNC_CW_RL_W_S(
0083 & 'D',mon_fname,1,1,'T', myTime, myThid)
0084 CALL MNC_CW_SET_UDIM(mon_fname, 0, myThid)
0085 mon_write_mnc = .TRUE.
0086 ENDIF
0087 #endif /* ALLOW_MNC */
0088
0089 IF ( mon_write_stdout ) THEN
0090 WRITE(msgBuf,'(2A)') '// ===========================',
0091 & '============================'
0092 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0093 WRITE(msgBuf,'(A)') '// Begin MONITOR DARWIN statistics'
0094 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0095 WRITE(msgBuf,'(2A)') '// ===========================',
0096 & '============================'
0097 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0098 ENDIF
0099
0100
0101 ENDIF
0102
0103 CALL MON_SET_PREF('darwin_',myThid)
0104 CALL MON_OUT_I ('tsnumber', myIter,mon_string_none,myThid)
0105 CALL MON_OUT_RL('time_sec', myTime,mon_string_none,myThid)
0106
0107
0108
0109 CALL MON_WRITESTATS_RL( 1, surfPAR, 'surfPAR',
0110 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0111
0112 CALL MON_WRITESTATS_RL( 1, inputFe, 'inputFe',
0113 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0114
0115 CALL MON_WRITESTATS_RL( 1, iceFrac, 'iceFrac',
0116 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0117
0118 CALL MON_WRITESTATS_RL( 1, windSpeed, 'windSpeed',
0119 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0120
0121 CALL MON_WRITESTATS_RL( 1, atmospCO2, 'atmospCO2',
0122 & maskInC, maskInC, rA , drF, dummyRL, myThid )
e79020cc6e Oliv*0123
6ed0cf4850 Oliv*0124 CALL MON_WRITESTATS_RL( 1, ventHe3, 'ventHe3',
0125 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0126
e79020cc6e Oliv*0127 CALL MON_WRITESTATS_RL( 1, DOCrunoff, 'DOCrunoff',
0128 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0129
0130 CALL MON_WRITESTATS_RL( 1, DONrunoff, 'DONrunoff',
0131 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0132
0133 CALL MON_WRITESTATS_RL( 1, DOPrunoff, 'DOPrunoff',
0134 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0135
0136 CALL MON_WRITESTATS_RL( 1, DINrunoff, 'DINrunoff',
0137 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0138
11d365acff Oliv*0139 CALL MON_WRITESTATS_RL( 1, NO3runoff, 'NO3runoff',
0140 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0141
0142 CALL MON_WRITESTATS_RL( 1, NO2runoff, 'NO2runoff',
0143 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0144
0145 CALL MON_WRITESTATS_RL( 1, NH4runoff, 'NH4runoff',
0146 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0147
e79020cc6e Oliv*0148 CALL MON_WRITESTATS_RL( 1, IPrunoff, 'IPrunoff',
0149 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0150
0151 CALL MON_WRITESTATS_RL( 1, DSirunoff, 'DSirunoff',
0152 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0153
0154 CALL MON_WRITESTATS_RL( 1, POCrunoff, 'POCrunoff',
0155 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0156
0157 CALL MON_WRITESTATS_RL( 1, POPrunoff, 'POPrunoff',
0158 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0159
0160 CALL MON_WRITESTATS_RL( 1, PONrunoff, 'PONrunoff',
0161 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0162
0163 CALL MON_WRITESTATS_RL( 1, DICrunoff, 'DICrunoff',
0164 & maskInC, maskInC, rA , drF, dummyRL, myThid )
8fbfd1f382 Oliv*0165
0166 IF ( MASTER_CPU_IO(myThid) ) THEN
0167
0168
0169
0170 IF ( mon_write_stdout ) THEN
0171 WRITE(msgBuf,'(2A)') '// ===========================',
0172 & '============================'
0173 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0174 WRITE(msgBuf,'(A)') '// End MONITOR DARWIN statistics'
0175 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0176 WRITE(msgBuf,'(2A)') '// ===========================',
0177 & '============================'
0178 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0179 ENDIF
0180
0181 mon_write_stdout = .FALSE.
0182 mon_write_mnc = .FALSE.
0183
0184
0185 ENDIF
0186
0187
0188 ENDIF
0189
0190 #endif /* ALLOW_MONITOR */
0191
0192 RETURN
0193 END