/[MITgcm]/MITgcm/pkg/exf/exf_monitor.F
ViewVC logotype

Contents of /MITgcm/pkg/exf/exf_monitor.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.19 - (show annotations) (download)
Tue Mar 3 14:05:25 2009 UTC (15 years, 3 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.18: +3 -3 lines
make coordinate variable T really model time in seconds as promised by units

1 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_monitor.F,v 1.18 2008/06/11 18:55:10 gforget Exp $
2 C $Name: $
3
4 #include "EXF_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: EXF_MONITOR
9
10 C !INTERFACE:
11 SUBROUTINE EXF_MONITOR(
12 I myTime, myIter, myThid )
13
14 C !DESCRIPTION:
15 C Print some statistics about input forcing fields.
16
17 C !USES:
18 IMPLICIT NONE
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23 #include "EXF_PARAM.h"
24 #include "EXF_FIELDS.h"
25 #ifdef ALLOW_MONITOR
26 # include "MONITOR.h"
27 #endif
28 #ifdef ALLOW_MNC
29 # include "MNC_PARAMS.h"
30 #endif
31
32 C !INPUT PARAMETERS:
33 INTEGER myIter
34 _RL myTime
35 INTEGER myThid
36 CEOP
37
38 #ifdef ALLOW_MONITOR
39
40 C === Functions ====
41 LOGICAL DIFFERENT_MULTIPLE
42 EXTERNAL DIFFERENT_MULTIPLE
43 LOGICAL MASTER_CPU_IO
44 EXTERNAL MASTER_CPU_IO
45
46 C == Local variables ==
47 CHARACTER*(MAX_LEN_MBUF) msgBuf
48 #ifdef ALLOW_MNC
49 INTEGER k
50 #endif
51
52 IF ( DIFFERENT_MULTIPLE(exf_monFreq,myTime,deltaTClock)
53 & ) THEN
54
55 IF ( MASTER_CPU_IO(myThid) ) THEN
56 C-- only the master thread is allowed to switch On/Off mon_write_stdout
57 C & mon_write_mnc (since it's the only thread that uses those flags):
58
59 IF (monitor_stdio) THEN
60 mon_write_stdout = .TRUE.
61 ELSE
62 mon_write_stdout = .FALSE.
63 ENDIF
64 mon_write_mnc = .FALSE.
65 #ifdef ALLOW_MNC
66 IF (useMNC .AND. monitor_mnc) THEN
67 DO k = 1,MAX_LEN_MBUF
68 mon_fname(k:k) = ' '
69 ENDDO
70 mon_fname(1:11) = 'monitor_exf'
71 CALL MNC_CW_APPEND_VNAME(
72 & 'T', '-_-_--__-__t', 0,0, myThid)
73 CALL MNC_CW_SET_UDIM(mon_fname, -1, myThid)
74 CALL MNC_CW_RL_W_S(
75 & 'D',mon_fname,1,1,'T', myTime, myThid)
76 CALL MNC_CW_SET_UDIM(mon_fname, 0, myThid)
77 mon_write_mnc = .TRUE.
78 ENDIF
79 #endif /* ALLOW_MNC */
80
81 IF ( mon_write_stdout ) THEN
82 WRITE(msgBuf,'(2A)') '// ===========================',
83 & '============================'
84 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
85 WRITE(msgBuf,'(A)') '// Begin MONITOR EXF statistics'
86 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
87 WRITE(msgBuf,'(2A)') '// ===========================',
88 & '============================'
89 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
90 ENDIF
91
92 C-- endif master cpu io
93 ENDIF
94
95 CALL MON_SET_PREF('exf',myThid)
96 CALL MON_OUT_I ('_tsnumber', myIter,mon_string_none,myThid)
97 CALL MON_OUT_RL('_time_sec', myTime,mon_string_none,myThid)
98
99 C Print some statistics about input forcing fields
100 CALL MON_PRINTSTATS_RL(1,ustress,'_ustress',
101 & maskH,maskH,rAw,drF,myThid)
102 CALL MON_PRINTSTATS_RL(1,vstress,'_vstress',
103 & maskH,maskH,rAs,drF,myThid)
104 CALL MON_PRINTSTATS_RL(1,hflux,'_hflux',
105 & maskH,maskH,rA ,drF,myThid)
106 CALL MON_PRINTSTATS_RL(1,sflux,'_sflux',
107 & maskH,maskH,rA ,drF,myThid)
108 #ifdef ALLOW_ATM_WIND
109 CALL MON_PRINTSTATS_RL(1,uwind,'_uwind',
110 & maskH,maskH,rA ,drF,myThid)
111 CALL MON_PRINTSTATS_RL(1,vwind,'_vwind',
112 & maskH,maskH,rA ,drF,myThid)
113 #endif /* ALLOW_ATM_WIND */
114 CALL MON_PRINTSTATS_RL(1,wspeed,'_wspeed',
115 & maskH,maskH,rA ,drF,myThid)
116 #ifdef ALLOW_ATM_TEMP
117 CALL MON_PRINTSTATS_RL(1,atemp,'_atemp',
118 & maskH,maskH,rA ,drF,myThid)
119 CALL MON_PRINTSTATS_RL(1,aqh,'_aqh',
120 & maskH,maskH,rA ,drF,myThid)
121 CALL MON_PRINTSTATS_RL(1,lwflux,'_lwflux',
122 & maskH,maskH,rA ,drF,myThid)
123 CALL MON_PRINTSTATS_RL(1,precip,'_precip',
124 & maskH,maskH,rA ,drF,myThid)
125 CALL MON_PRINTSTATS_RL(1,snowprecip,'_snowprecip',
126 & maskH,maskH,rA ,drF,myThid)
127 #endif /* ALLOW_ATM_TEMP */
128 #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
129 CALL MON_PRINTSTATS_RL(1,swflux,'_swflux',
130 & maskH,maskH,rA ,drF,myThid)
131 #endif
132 #if defined(ALLOW_ATM_TEMP) || defined(EXF_READ_EVAP)
133 CALL MON_PRINTSTATS_RL(1,evap,'_evap',
134 & maskH,maskH,rA ,drF,myThid)
135 #endif
136 #ifdef ALLOW_DOWNWARD_RADIATION
137 CALL MON_PRINTSTATS_RL(1,swdown,'_swdown',
138 & maskH,maskH,rA ,drF,myThid)
139 CALL MON_PRINTSTATS_RL(1,lwdown,'_lwdown',
140 & maskH,maskH,rA ,drF,myThid)
141 #endif
142 #ifdef ATMOSPHERIC_LOADING
143 CALL MON_PRINTSTATS_RL(1,apressure,'_apressure',
144 & maskH,maskH,rA ,drF,myThid)
145 #endif
146 #ifdef ALLOW_RUNOFF
147 CALL MON_PRINTSTATS_RL(1,runoff,'_runoff',
148 & maskH,maskH,rA ,drF,myThid)
149 #endif
150 #ifdef ALLOW_ICE_AREAMASK
151 CALL MON_PRINTSTATS_RL(1,areamask,'_areamask',
152 & maskH,maskH,rA ,drF,myThid)
153 #endif
154 #ifdef ALLOW_CLIMSST_RELAXATION
155 CALL MON_PRINTSTATS_RL(1,climsst,'_climsst',
156 & maskH,maskH,rA ,drF,myThid)
157 #endif
158 #ifdef ALLOW_CLIMSSS_RELAXATION
159 CALL MON_PRINTSTATS_RL(1,climsss,'_climsss',
160 & maskH,maskH,rA ,drF,myThid)
161 #endif
162
163 IF ( MASTER_CPU_IO(myThid) ) THEN
164 C-- only the master thread is allowed to switch On/Off mon_write_stdout
165 C & mon_write_mnc (since it's the only thread that uses those flags):
166
167 IF ( mon_write_stdout ) THEN
168 WRITE(msgBuf,'(2A)') '// ===========================',
169 & '============================'
170 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
171 WRITE(msgBuf,'(A)') '// End MONITOR EXF statistics'
172 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
173 WRITE(msgBuf,'(2A)') '// ===========================',
174 & '============================'
175 CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1)
176 ENDIF
177
178 mon_write_stdout = .FALSE.
179 mon_write_mnc = .FALSE.
180
181 C-- endif master cpu io
182 ENDIF
183
184 C endif different multiple
185 ENDIF
186
187 #endif /* ALLOW_MONITOR */
188
189 RETURN
190 END

  ViewVC Help
Powered by ViewVC 1.1.22