File indexing completed on 2023-08-04 05:10:48 UTC
view on githubraw file Latest commit 45315406 on 2023-08-03 16:50:12 UTC
fb247706a7 Patr*0001 #include "SEAICE_OPTIONS.h"
772b2ed80e Gael*0002 #ifdef ALLOW_AUTODIFF
0003 # include "AUTODIFF_OPTIONS.h"
0004 #endif
fb247706a7 Patr*0005
0006
0007
0008
0009
0010
0011 SUBROUTINE ADSEAICE_MONITOR(
0012 I myTime, myIter, myThid )
0013
0014
0015
0016
0017
0018 IMPLICIT NONE
0019 #include "SIZE.h"
0020 #include "EEPARAMS.h"
0021 #include "PARAMS.h"
0022 #include "GRID.h"
0023 #include "SEAICE_SIZE.h"
0024 #include "SEAICE_PARAMS.h"
0025 #include "SEAICE.h"
0026 #include "SEAICE_TRACER.h"
0027 #ifdef ALLOW_MONITOR
0028 # include "MONITOR.h"
0029 #endif
0030 #ifdef ALLOW_AUTODIFF
0031 # ifdef ALLOW_AUTODIFF_MONITOR
0032 # include "adcommon.h"
0033 # endif
0034 #endif
0035
0036
0037 INTEGER myIter
0038 _RL myTime
0039 INTEGER myThid
0040
0041
14275b5e70 Patr*0042 #if ( defined (ALLOW_MONITOR) && defined (ALLOW_AUTODIFF_MONITOR) )
0043
fb247706a7 Patr*0044
0045 LOGICAL DIFFERENT_MULTIPLE
0046 EXTERNAL DIFFERENT_MULTIPLE
0047 LOGICAL MASTER_CPU_IO
0048 EXTERNAL MASTER_CPU_IO
0049
0050
0051 CHARACTER*(MAX_LEN_MBUF) msgBuf
e54fe3e1f9 Gael*0052 #ifdef ALLOW_SITRACER
fb247706a7 Patr*0053 INTEGER iTracer
0054 CHARACTER*(MAX_LEN_MBUF) suff
0055 #endif
0056 #ifdef ALLOW_MNC
0057 INTEGER i
0058 #endif /* ALLOW_MNC */
0059 _RL dummyRL(6)
0060
0061 IF ( DIFFERENT_MULTIPLE(adjmonitorFreq,myTime,deltaTClock)
0062 & ) THEN
0063
0064 IF ( MASTER_CPU_IO(myThid) ) THEN
0065
0066
0067
0068 IF (SEAICE_mon_stdio) THEN
0069 mon_write_stdout = .TRUE.
0070 ELSE
0071 mon_write_stdout = .FALSE.
0072 ENDIF
0073 mon_write_mnc = .FALSE.
0074 #ifdef ALLOW_MNC
0075 IF (useMNC .AND. SEAICE_mon_mnc) THEN
0076 DO i = 1,MAX_LEN_MBUF
0077 mon_fname(i:i) = ' '
0078 ENDDO
0079 mon_fname(1:14) = 'admonitor_seaice'
0080 CALL MNC_CW_APPEND_VNAME(
0081 & 'T', '-_-_--__-__t', 0,0, myThid)
0082 CALL MNC_CW_SET_UDIM(mon_fname, -1, myThid)
0083 CALL MNC_CW_RL_W_S(
0084 & 'D',mon_fname,1,1,'T', myTime, myThid)
0085 CALL MNC_CW_SET_UDIM(mon_fname, 0, myThid)
0086 mon_write_mnc = .TRUE.
0087 ENDIF
0088 #endif /* ALLOW_MNC */
0089
0090 IF ( mon_write_stdout ) THEN
0091 WRITE(msgBuf,'(2A)') '// ===========================',
0092 & '============================'
0093 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0094 WRITE(msgBuf,'(A)') '// Begin AD_MONITOR SEAICE statistics'
0095 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0096 WRITE(msgBuf,'(2A)') '// ===========================',
0097 & '============================'
0098 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0099 ENDIF
0100
0101
0102 ENDIF
0103
0104 CALL MON_SET_PREF('ad_seaice',myThid)
0105 CALL MON_OUT_I ('_tsnumber', myIter,mon_string_none,myThid)
0106 CALL MON_OUT_RL('_time_sec', myTime,mon_string_none,myThid)
0107
0108
0109 #ifdef SEAICE_CGRID
0110 CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice',
0111 & maskInW, maskInW, rAw, drF, dummyRL, myThid )
0112 CALL MON_WRITESTATS_RL( 1, ADVICE, '_advice',
0113 & maskInS, maskInS, rAs, drF, dummyRL, myThid )
45315406aa Mart*0114 #endif
0115 #ifdef SEAICE_BGRID_DYNAMICS
0116 CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice',
0117 & UVM, UVM, rAz, drF, dummyRL, myThid )
fb247706a7 Patr*0118 CALL MON_WRITESTATS_RL( 1, ADVICE, '_advice',
0119 & UVM, UVM, rAz, drF, dummyRL, myThid )
0120 #endif
0121 CALL MON_WRITESTATS_RL( 1, ADAREA, '_adarea',
0122 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0123 CALL MON_WRITESTATS_RL( 1, ADHEFF, '_adheff',
0124 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0125 CALL MON_WRITESTATS_RL( 1, ADHSNOW,'_adhsnow',
0126 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0127 #ifdef SEAICE_VARIABLE_SALINITY
0128 CALL MON_WRITESTATS_RL( 1, ADHSALT,'_adhsalt',
0129 & maskInC, maskInC, rA , drF, dummyRL, myThid )
0130 #endif /* SEAICE_VARIABLE_SALINITY */
0131
0132 IF ( MASTER_CPU_IO(myThid) ) THEN
0133
0134
0135
0136 IF ( mon_write_stdout ) THEN
0137 WRITE(msgBuf,'(2A)') '// ===========================',
0138 & '============================'
0139 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0140 WRITE(msgBuf,'(A)') '// End AD_MONITOR SEAICE statistics'
0141 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0142 WRITE(msgBuf,'(2A)') '// ===========================',
0143 & '============================'
0144 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
0145 ENDIF
0146
0147 mon_write_stdout = .FALSE.
0148 mon_write_mnc = .FALSE.
0149
0150
0151 ENDIF
0152
0153
0154 ENDIF
0155
0156 #endif /* ALLOW_MONITOR */
0157
0158 RETURN
0159 END