1 |
C $Header: /u/gcmpack/models/MITgcmUV/pkg/mitphys/mitphys_write_diags.F,v 1.4.2.2 2001/05/02 19:01:51 sb Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "CPP_OPTIONS.h" |
5 |
|
6 |
CStartOfInterFace |
7 |
SUBROUTINE MITPHYS_WRITE_DIAGS( myTime, myIter, myThid ) |
8 |
C /==========================================================\ |
9 |
C | SUBROUTINE MITPHYS_WRITE_DIAGS | |
10 |
C | o Write out MITPHYS diagnostic output | |
11 |
C \==========================================================/ |
12 |
IMPLICIT NONE |
13 |
|
14 |
C === Global variables === |
15 |
#include "SIZE.h" |
16 |
#include "EEPARAMS.h" |
17 |
#include "PARAMS.h" |
18 |
#include "MITPHYS_DIAGS.h" |
19 |
LOGICAL DIFFERENT_MULTIPLE |
20 |
EXTERNAL DIFFERENT_MULTIPLE |
21 |
|
22 |
C Common (shared with RD_WR_FLD routines in read_write_fld.F) |
23 |
LOGICAL globalFile ! sb |
24 |
COMMON /RD_WR_FLD/ globalFile |
25 |
c sb LOGICAL globalFile |
26 |
|
27 |
C == Routine arguments == |
28 |
C myTime - Current time of simulation ( s ) |
29 |
C myIter - Iteration number |
30 |
C myThid - Number of this instance of the routine |
31 |
_RL myTime, zonal_time_ave |
32 |
INTEGER myIter |
33 |
INTEGER myThid |
34 |
CEndOfInterface |
35 |
|
36 |
#ifdef ALLOW_MITPHYS |
37 |
|
38 |
C == Local variables == |
39 |
INTEGER bi, bj, K |
40 |
CHARACTER*(MAX_LEN_MBUF) fn |
41 |
LOGICAL gf, OMP_WRITE |
42 |
|
43 |
_RL AUX2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) ! sb |
44 |
integer i,j |
45 |
INTEGER nno ! sb |
46 |
SAVE nno ! sb |
47 |
data nno /0/ !omp |
48 |
|
49 |
c_jmc gf = .TRUE. |
50 |
gf = globalFile |
51 |
|
52 |
|
53 |
#ifdef ALLOW_TIMEAVE |
54 |
|
55 |
C Dump files and restart average computation if needed |
56 |
IF ( myIter.NE.nIter0 .AND. |
57 |
& DIFFERENT_MULTIPLE(taveFreq,myTime, |
58 |
& myTime-deltaTClock) |
59 |
& ) THEN |
60 |
|
61 |
C Normalize by integrated time |
62 |
|
63 |
DO bj = myByLo(myThid), myByHi(myThid) |
64 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
65 |
CALL TIMEAVE_NORMALIZ(TSWtave,MITPHYS_timeave,1,bi,bj,myThid) |
66 |
CALL TIMEAVE_NORMALIZ(TLWtave,MITPHYS_timeave,1,bi,bj,myThid) |
67 |
CALL TIMEAVE_NORMALIZ(SSWtave,MITPHYS_timeave,1,bi,bj,myThid) |
68 |
CALL TIMEAVE_NORMALIZ(SLWtave,MITPHYS_timeave,1,bi,bj,myThid) |
69 |
CALL TIMEAVE_NORMALIZ(SINStave,MITPHYS_timeave,1,bi,bj,myThid) |
70 |
CALL TIMEAVE_NORMALIZ(BKTtave,MITPHYS_timeave,1,bi,bj,myThid) |
71 |
CALL TIMEAVE_NORMALIZ(SHFtave,MITPHYS_timeave,1,bi,bj,myThid) |
72 |
CALL TIMEAVE_NORMALIZ(LHFtave,MITPHYS_timeave,1,bi,bj,myThid) |
73 |
CALL TIMEAVE_NORMALIZ(USTRtave,MITPHYS_timeave,1,bi,bj,myThid) |
74 |
CALL TIMEAVE_NORMALIZ(VSTRtave,MITPHYS_timeave,1,bi,bj,myThid) |
75 |
CALL TIMEAVE_NORMALIZ(PRECNVtave,MITPHYS_timeave,1,bi,bj,myThid) |
76 |
CALL TIMEAVE_NORMALIZ(PRECLStave,MITPHYS_timeave,1,bi,bj,myThid) |
77 |
CALL TIMEAVE_NORMALIZ(CLOUDCtave,MITPHYS_timeave,1,bi,bj,myThid) |
78 |
CALL TIMEAVE_NORMALIZ(SSTtave,MITPHYS_timeave,1,bi,bj,myThid) |
79 |
CALL TIMEAVE_NORMALIZ(QFLUXtave,MITPHYS_timeave,1,bi,bj,myThid) |
80 |
CALL TIMEAVE_NORMALIZ(PRWtave,MITPHYS_timeave,1,bi,bj,myThid) |
81 |
CALL TIMEAVE_NORMALIZ(TSW0tave,MITPHYS_timeave,1,bi,bj,myThid) |
82 |
CALL TIMEAVE_NORMALIZ(TLW0tave,MITPHYS_timeave,1,bi,bj,myThid) |
83 |
CALL TIMEAVE_NORMALIZ(CBMFtave,MITPHYS_timeave,1,bi,bj,myThid) |
84 |
CALL TIMEAVE_NORMALIZ(PLCLtave,MITPHYS_timeave,1,bi,bj,myThid) |
85 |
|
86 |
CALL TIMEAVE_NORMALIZ(RHtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
87 |
CALL TIMEAVE_NORMALIZ(CLDFtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
88 |
CALL TIMEAVE_NORMALIZ(CLDQtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
89 |
CALL TIMEAVE_NORMALIZ(CLDQCtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
90 |
CALL TIMEAVE_NORMALIZ(RCtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
91 |
CALL TIMEAVE_NORMALIZ(CRLWtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
92 |
CALL TIMEAVE_NORMALIZ(CRSWtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
93 |
CALL TIMEAVE_NORMALIZ(MUPtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
94 |
CALL TIMEAVE_NORMALIZ(MDNtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
95 |
CALL TIMEAVE_NORMALIZ(MDN0tave,MITPHYS_timeave,Nr,bi,bj,myThid) |
96 |
CALL TIMEAVE_NORMALIZ(ENTtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
97 |
CALL TIMEAVE_NORMALIZ(DETtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
98 |
CALL TIMEAVE_NORMALIZ(Utave,MITPHYS_timeave,Nr,bi,bj,myThid) |
99 |
CALL TIMEAVE_NORMALIZ(Vtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
100 |
CALL TIMEAVE_NORMALIZ(Wtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
101 |
CALL TIMEAVE_NORMALIZ(Ttave,MITPHYS_timeave,Nr,bi,bj,myThid) |
102 |
CALL TIMEAVE_NORMALIZ(Qtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
103 |
CC(acz) CALL TIMEAVE_NORMALIZ(PHItave,MITPHYS_timeave,Nr,bi,bj,myThid) |
104 |
CALL TIMEAVE_NORMALIZ(SXtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
105 |
CALL TIMEAVE_NORMALIZ(HXtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
106 |
CALL TIMEAVE_NORMALIZ(DTCNVtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
107 |
CALL TIMEAVE_NORMALIZ(DQCNVtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
108 |
CALL TIMEAVE_NORMALIZ(DTLSCtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
109 |
CALL TIMEAVE_NORMALIZ(DTPBLtave,MITPHYS_timeave,Nr,bi,bj,myThid) |
110 |
CALL TIMEAVE_NORMALIZ(UT_PBLtave,MITPHYS_timeave, |
111 |
& Nr,bi,bj,myThid) |
112 |
CALL TIMEAVE_NORMALIZ(VT_PBLtave,MITPHYS_timeave, |
113 |
& Nr,bi,bj,myThid) |
114 |
CALL TIMEAVE_NORMALIZ(UT_CNVtave,MITPHYS_timeave, |
115 |
& Nr,bi,bj,myThid) |
116 |
CALL TIMEAVE_NORMALIZ(VT_CNVtave,MITPHYS_timeave, |
117 |
& Nr,bi,bj,myThid) |
118 |
CALL TIMEAVE_NORMALIZ(UT_ADJtave,MITPHYS_timeave, |
119 |
& Nr,bi,bj,myThid) |
120 |
CALL TIMEAVE_NORMALIZ(VT_ADJtave,MITPHYS_timeave, |
121 |
& Nr,bi,bj,myThid) |
122 |
CALL TIMEAVE_NORMALIZ(TT_ADJtave,MITPHYS_timeave, |
123 |
& Nr,bi,bj,myThid) |
124 |
CALL TIMEAVE_NORMALIZ(QT_ADJtave,MITPHYS_timeave, |
125 |
& Nr,bi,bj,myThid) |
126 |
|
127 |
C normalize the zonal mean |
128 |
zonal_time_ave = 1.0 / sNx / MITPHYS_timeave (1,bi,bj) |
129 |
do j = 1,sNy |
130 |
do k = 1,Nr |
131 |
Uzav(j,K,bi,bj) = Uzav(j,K,bi,bj) * zonal_time_ave |
132 |
Vzav(j,K,bi,bj) = Vzav(j,K,bi,bj) * zonal_time_ave |
133 |
Wzav(j,K,bi,bj) = Wzav(j,K,bi,bj) * zonal_time_ave |
134 |
Tzav(j,K,bi,bj) = Tzav(j,K,bi,bj) * zonal_time_ave |
135 |
Qzav(j,K,bi,bj) = Qzav(j,K,bi,bj) * zonal_time_ave |
136 |
RHzav(j,K,bi,bj) = RHzav(j,K,bi,bj)* zonal_time_ave |
137 |
|
138 |
UVzav(j,K,bi,bj) = UVzav(j,K,bi,bj) * zonal_time_ave |
139 |
VTzav(j,K,bi,bj) = VTzav(j,K,bi,bj) * zonal_time_ave |
140 |
VQzav(j,K,bi,bj) = VQzav(j,K,bi,bj) * zonal_time_ave |
141 |
|
142 |
UWzav(j,K,bi,bj) = UWzav(j,K,bi,bj) * zonal_time_ave |
143 |
WTzav(j,K,bi,bj) = WTzav(j,K,bi,bj) * zonal_time_ave |
144 |
WQzav(j,K,bi,bj) = WQzav(j,K,bi,bj) * zonal_time_ave |
145 |
|
146 |
CLDFzav(j,K,bi,bj) = CLDFzav(j,K,bi,bj) * zonal_time_ave |
147 |
CLDQzav(j,K,bi,bj) = CLDQzav(j,K,bi,bj) * zonal_time_ave |
148 |
CLDQCzav(j,K,bi,bj)= CLDQCzav(j,K,bi,bj)* zonal_time_ave |
149 |
RCzav(j,K,bi,bj) = RCzav(j,K,bi,bj) * zonal_time_ave |
150 |
DTCNVzav(j,K,bi,bj)= DTCNVzav(j,K,bi,bj) |
151 |
: * zonal_time_ave |
152 |
DQCNVzav(j,K,bi,bj)= DQCNVzav(j,K,bi,bj) |
153 |
: * zonal_time_ave |
154 |
DTLSCzav(j,K,bi,bj)= DTLSCzav(j,K,bi,bj) |
155 |
: * zonal_time_ave |
156 |
DTPBLzav(j,K,bi,bj)= DTPBLzav(j,K,bi,bj) |
157 |
: * zonal_time_ave |
158 |
UT_PBLzav(j,K,bi,bj)= UT_PBLzav(j,K,bi,bj) |
159 |
: * zonal_time_ave |
160 |
VT_PBLzav(j,K,bi,bj)= VT_PBLzav(j,K,bi,bj) |
161 |
: * zonal_time_ave |
162 |
UT_CNVzav(j,K,bi,bj)= UT_CNVzav(j,K,bi,bj) |
163 |
: * zonal_time_ave |
164 |
VT_CNVzav(j,K,bi,bj)= VT_CNVzav(j,K,bi,bj) |
165 |
: * zonal_time_ave |
166 |
UT_ADJzav(j,K,bi,bj)= UT_ADJzav(j,K,bi,bj) |
167 |
: * zonal_time_ave |
168 |
VT_ADJzav(j,K,bi,bj)= VT_ADJzav(j,K,bi,bj) |
169 |
: * zonal_time_ave |
170 |
TT_ADJzav(j,K,bi,bj)= TT_ADJzav(j,K,bi,bj) |
171 |
: * zonal_time_ave |
172 |
QT_ADJzav(j,K,bi,bj)= QT_ADJzav(j,K,bi,bj) |
173 |
: * zonal_time_ave |
174 |
PHIzav(j,K,bi,bj) = PHIzav(j,K,bi,bj) * zonal_time_ave |
175 |
end do |
176 |
end do |
177 |
|
178 |
ENDDO |
179 |
ENDDO |
180 |
|
181 |
|
182 |
_BARRIER |
183 |
_BEGIN_MASTER( myThid ) |
184 |
|
185 |
ccc WRITE(fn,'(A,I10.10)') 'aimphyvars.',myIter |
186 |
|
187 |
C modif omp: change the output. Each output file contains a single field. |
188 |
C Notice that some variables are not written in the output anymore. |
189 |
OMP_WRITE = .TRUE. |
190 |
IF (OMP_WRITE) THEN |
191 |
nno = nno +1 |
192 |
|
193 |
C 2D fields |
194 |
|
195 |
CC CALL MDSWRITEFIELD('TSW.tav',precFloat32,globalFile,'RL',1 |
196 |
CC & ,TSWtave, nno,myIter,myThid) |
197 |
CC CALL MDSWRITEFIELD('TLW.tav',precFloat32,globalFile,'RL',1 |
198 |
CC & ,TLWtave, nno,myIter,myThid) |
199 |
CC CALL MDSWRITEFIELD('SSW.tav',precFloat32,globalFile,'RL',1 |
200 |
CC & ,SSWtave, nno,myIter,myThid) |
201 |
CC CALL MDSWRITEFIELD('SLW.tav',precFloat32,globalFile,'RL',1 |
202 |
CC & ,SLWtave, nno,myIter,myThid) |
203 |
CC CALL MDSWRITEFIELD('SINS.tav',precFloat32,globalFile,'RL',1 |
204 |
CC & ,SINStave, nno,myIter,myThid) |
205 |
CALL MDSWRITEFIELD('BKT.tav',precFloat32,globalFile,'RL',1 |
206 |
& ,BKTtave, nno,myIter,myThid) |
207 |
CALL MDSWRITEFIELD('SHF.tav',precFloat32,globalFile,'RL',1 |
208 |
& ,SHFtave, nno,myIter,myThid) |
209 |
CALL MDSWRITEFIELD('LHF.tav',precFloat32,globalFile,'RL',1 |
210 |
& ,LHFtave, nno,myIter,myThid) |
211 |
CALL MDSWRITEFIELD('USTR.tav',precFloat32,globalFile,'RL',1 |
212 |
& ,USTRtave, nno,myIter,myThid) |
213 |
CALL MDSWRITEFIELD('VSTR.tav',precFloat32,globalFile,'RL',1 |
214 |
& ,VSTRtave, nno,myIter,myThid) |
215 |
CALL MDSWRITEFIELD('PreCNV.tav',precFloat32,globalFile,'RL',1 |
216 |
& ,PRECNVtave, nno,myIter,myThid) |
217 |
CALL MDSWRITEFIELD('PrecLS.tav',precFloat32,globalFile,'RL',1 |
218 |
& ,PRECLStave, nno,myIter,myThid) |
219 |
CC CALL MDSWRITEFIELD('CLOUDC.tav',precFloat32,globalFile,'RL',1 |
220 |
CC & ,CLOUDCtave, nno,myIter,myThid) |
221 |
CC CALL MDSWRITEFIELD('PRW.tav',precFloat32,globalFile,'RL',1 |
222 |
CC & ,PRWtave, nno,myIter,myThid) |
223 |
CC CALL MDSWRITEFIELD('TSW0.tav',precFloat32,globalFile,'RL',1 |
224 |
CC & ,TSW0tave, nno,myIter,myThid) |
225 |
CC CALL MDSWRITEFIELD('TLW0.tav',precFloat32,globalFile,'RL',1 |
226 |
CC & ,TLW0tave, nno,myIter,myThid) |
227 |
CC CALL MDSWRITEFIELD('CBMF.tav',precFloat32,globalFile,'RL',1 |
228 |
CC & ,CBMFtave, nno,myIter,myThid) |
229 |
CC CALL MDSWRITEFIELD('PLCL.tav',precFloat32,globalFile,'RL',1 |
230 |
CC & ,PLCLtave, nno,myIter,myThid) |
231 |
CALL MDSWRITEFIELD('SST.tav',precFloat32,globalFile,'RL',1 |
232 |
& ,SSTtave, nno,myIter,myThid) |
233 |
CALL MDSWRITEFIELD('QFLUX.tav',precFloat32,globalFile,'RL',1 |
234 |
& ,QFLUXtave, nno,myIter,myThid) |
235 |
|
236 |
C 3D fields |
237 |
|
238 |
CALL MDSWRITEFIELD('RH.tav',precFloat32,globalFile,'RL',Nr |
239 |
& ,RHtave, nno,myIter,myThid) |
240 |
CC CALL MDSWRITEFIELD('CLDF.tav',precFloat32,globalFile,'RL',Nr |
241 |
CC & ,CLDFtave, nno,myIter,myThid) |
242 |
CC CALL MDSWRITEFIELD('CLDQ.tav',precFloat32,globalFile,'RL',Nr |
243 |
CC & ,CLDQtave, nno,myIter,myThid) |
244 |
CC CALL MDSWRITEFIELD('CLDQC.tav',precFloat32,globalFile,'RL',Nr |
245 |
CC & ,CLDQCtave, nno,myIter,myThid) |
246 |
CALL MDSWRITEFIELD('U.tav',precFloat32,globalFile,'RL',Nr |
247 |
& ,Utave, nno,myIter,myThid) |
248 |
CALL MDSWRITEFIELD('V.tav',precFloat32,globalFile,'RL',Nr |
249 |
& ,Vtave, nno,myIter,myThid) |
250 |
CALL MDSWRITEFIELD('W.tav',precFloat32,globalFile,'RL',Nr |
251 |
& ,Wtave, nno,myIter,myThid) |
252 |
CALL MDSWRITEFIELD('Q.tav',precFloat32,globalFile,'RL',Nr |
253 |
& ,Qtave, nno,myIter,myThid) |
254 |
CALL MDSWRITEFIELD('T.tav',precFloat32,globalFile,'RL',Nr |
255 |
& ,Ttave, nno,myIter,myThid) |
256 |
c CALL MDSWRITEFIELD('GEOP.tav',precFloat32,globalFile,'RL',Nr |
257 |
c(acz) & ,Phitave, nno,myIter,myThid) |
258 |
CALL MDSWRITEFIELD('DTCNV.tav',precFloat32,globalFile,'RL',Nr |
259 |
& ,DTCNVtave, nno,myIter,myThid) |
260 |
CC CALL MDSWRITEFIELD('DQCNV.tav',precFloat32,globalFile,'RL',Nr |
261 |
CC & ,DQCNVtave, nno,myIter,myThid) |
262 |
CC CALL MDSWRITEFIELD('DTPBL.tav',precFloat32,globalFile,'RL',Nr |
263 |
CC & ,DTPBLtave, nno,myIter,myThid) |
264 |
CC CALL MDSWRITEFIELD('UT_PBL.tav',precFloat32,globalFile,'RL',Nr |
265 |
CC & ,UT_PBLtave, nno,myIter,myThid) |
266 |
CC CALL MDSWRITEFIELD('VT_PBL.tav',precFloat32,globalFile,'RL',Nr |
267 |
CC & ,VT_PBLtave, nno,myIter,myThid) |
268 |
CC CALL MDSWRITEFIELD('UT_CNV.tav',precFloat32,globalFile,'RL',Nr |
269 |
CC & ,UT_CNVtave, nno,myIter,myThid) |
270 |
CC CALL MDSWRITEFIELD('VT_CNV.tav',precFloat32,globalFile,'RL',Nr |
271 |
CC & ,VT_CNVtave, nno,myIter,myThid) |
272 |
CC CALL MDSWRITEFIELD('UT_ADJ.tav',precFloat32,globalFile,'RL',Nr |
273 |
CC & ,UT_ADJtave, nno,myIter,myThid) |
274 |
CC CALL MDSWRITEFIELD('VT_ADJ.tav',precFloat32,globalFile,'RL',Nr |
275 |
CC & ,VT_ADJtave, nno,myIter,myThid) |
276 |
CC CALL MDSWRITEFIELD('TT_ADJ.tav',precFloat32,globalFile,'RL',Nr |
277 |
CC & ,TT_ADJtave, nno,myIter,myThid) |
278 |
CC CALL MDSWRITEFIELD('QT_ADJ.tav',precFloat32,globalFile,'RL',Nr |
279 |
CC & ,QT_ADJtave, nno,myIter,myThid) |
280 |
CALL MDSWRITEFIELD('DTLSC.tav',precFloat32,globalFile,'RL',Nr |
281 |
& ,DTLSCtave, nno,myIter,myThid) |
282 |
CALL MDSWRITEFIELD('DTRC.tav',precFloat32,globalFile,'RL',Nr |
283 |
& ,RCtave, nno,myIter,myThid) |
284 |
|
285 |
|
286 |
C OMP. 12-28-01 Zonally averaged fields. |
287 |
|
288 |
|
289 |
|
290 |
c$$$ CALL MDSWRITEFIELDYZ('RHzav.tav',precFloat32,globalFile, |
291 |
c$$$ & 'RL',Nr,RHzav, nno,myIter,myThid) |
292 |
c$$$ CALL MDSWRITEFIELDYZ('CLDFzav.tav',precFloat32,globalFile, |
293 |
c$$$ & 'RL',Nr,CLDFzav, nno,myIter,myThid) |
294 |
c$$$ CALL MDSWRITEFIELDYZ('CLDQzav.tav',precFloat32,globalFile, |
295 |
c$$$ & 'RL',Nr,CLDQzav, nno,myIter,myThid) |
296 |
c$$$ CALL MDSWRITEFIELDYZ('CLDQCzav.tav',precFloat32,globalFile, |
297 |
c$$$ & 'RL',Nr ,CLDQCzav, nno,myIter,myThid) |
298 |
c$$$ CALL MDSWRITEFIELDYZ('Uzav.tav',precFloat32,globalFile, |
299 |
c$$$ & 'RL',Nr ,Uzav, nno,myIter,myThid) |
300 |
c$$$ CALL MDSWRITEFIELDYZ('Vzav.tav',precFloat32,globalFile, |
301 |
c$$$ & 'RL',Nr ,Vzav, nno,myIter,myThid) |
302 |
c$$$ CALL MDSWRITEFIELDYZ('Wzav.tav',precFloat32,globalFile, |
303 |
c$$$ & 'RL',Nr ,Wzav, nno,myIter,myThid) |
304 |
c$$$ CALL MDSWRITEFIELDYZ('Qzav.tav',precFloat32,globalFile, |
305 |
c$$$ & 'RL',Nr ,Qzav, nno,myIter,myThid) |
306 |
c$$$ CALL MDSWRITEFIELDYZ('Tzav.tav',precFloat32,globalFile, |
307 |
c$$$ & 'RL',Nr ,Tzav, nno,myIter,myThid) |
308 |
c$$$ CALL MDSWRITEFIELDYZ('GEOPzav.tav',precFloat32,globalFile, |
309 |
c$$$ & 'RL',Nr ,Phizav, nno,myIter,myThid) |
310 |
c$$$ CALL MDSWRITEFIELDYZ('DTCNVzav.tav',precFloat32,globalFile, |
311 |
c$$$ & 'RL',Nr ,DTCNVzav, nno,myIter,myThid) |
312 |
c$$$ CALL MDSWRITEFIELDYZ('DQCNVzav.tav',precFloat32,globalFile, |
313 |
c$$$ & 'RL',Nr ,DQCNVzav, nno,myIter,myThid) |
314 |
c$$$ CALL MDSWRITEFIELDYZ('DTPBLzav.tav',precFloat32,globalFile, |
315 |
c$$$ & 'RL',Nr ,DTPBLzav, nno,myIter,myThid) |
316 |
c$$$ CALL MDSWRITEFIELDYZ('UT_PBLzav.tav',precFloat32,globalFile, |
317 |
c$$$ & 'RL',Nr ,UT_PBLzav, nno,myIter,myThid) |
318 |
c$$$ CALL MDSWRITEFIELDYZ('VT_PBLzav.tav',precFloat32,globalFile, |
319 |
c$$$ & 'RL',Nr ,VT_PBLzav, nno,myIter,myThid) |
320 |
c$$$ CALL MDSWRITEFIELDYZ('UT_CNVzav.tav',precFloat32,globalFile, |
321 |
c$$$ & 'RL',Nr ,UT_CNVzav, nno,myIter,myThid) |
322 |
c$$$ CALL MDSWRITEFIELDYZ('VT_CNVzav.tav',precFloat32,globalFile, |
323 |
c$$$ & 'RL',Nr ,VT_CNVzav, nno,myIter,myThid) |
324 |
c$$$ CALL MDSWRITEFIELDYZ('UT_ADJzav.tav',precFloat32,globalFile, |
325 |
c$$$ & 'RL',Nr ,UT_ADJzav, nno,myIter,myThid) |
326 |
c$$$ CALL MDSWRITEFIELDYZ('VT_ADJzav.tav',precFloat32,globalFile, |
327 |
c$$$ & 'RL',Nr ,VT_ADJzav, nno,myIter,myThid) |
328 |
c$$$ CALL MDSWRITEFIELDYZ('TT_ADJzav.tav',precFloat32,globalFile, |
329 |
c$$$ & 'RL',Nr ,TT_ADJzav, nno,myIter,myThid) |
330 |
c$$$ CALL MDSWRITEFIELDYZ('QT_ADJzav.tav',precFloat32,globalFile, |
331 |
c$$$ & 'RL',Nr ,QT_ADJzav, nno,myIter,myThid) |
332 |
c$$$ CALL MDSWRITEFIELDYZ('DTLSCzav.tav',precFloat32,globalFile, |
333 |
c$$$ & 'RL',Nr ,DTLSCzav, nno,myIter,myThid) |
334 |
c$$$ CALL MDSWRITEFIELDYZ('DTRCzav.tav',precFloat32,globalFile, |
335 |
c$$$ & 'RL',Nr ,RCzav, nno,myIter,myThid) |
336 |
c$$$ |
337 |
|
338 |
CC CALL MDSWRITEFIELDYZ('UVzav.tav',precFloat32,globalFile,'RL',Nr |
339 |
CC & ,uvzav,nno,myIter,myThid) |
340 |
CC CALL MDSWRITEFIELDYZ('VTzav.tav',precFloat32,globalFile,'RL',Nr |
341 |
CC & ,vtzav,nno,myIter,myThid) |
342 |
CC CALL MDSWRITEFIELDYZ('VQzav.tav',precFloat32,globalFile,'RL',Nr |
343 |
CC & ,vqzav,nno,myIter,myThid) |
344 |
CC CALL MDSWRITEFIELDYZ('UWzav.tav',precFloat32,globalFile,'RL',Nr |
345 |
CC & ,uwzav,nno,myIter,myThid) |
346 |
CC CALL MDSWRITEFIELDYZ('WTzav.tav',precFloat32,globalFile,'RL',Nr |
347 |
CC & ,wtzav,nno,myIter,myThid) |
348 |
CC CALL MDSWRITEFIELDYZ('WQzav.tav',precFloat32,globalFile,'RL',Nr |
349 |
CC & ,wqzav,nno,myIter,myThid) |
350 |
|
351 |
|
352 |
|
353 |
|
354 |
ELSE |
355 |
WRITE(fn,'(A,I10.10)') '/scratch0/omp/mit3d/mitphyvars' !only one file in output |
356 |
nno = nno + 1 ! record number |
357 |
c write(*,*)'nyIter, nno, fn = ',myIter,nno,fn |
358 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
359 |
& 'RL',1,TSWtave,nno,myIter,myThid) |
360 |
nno = nno + 1 |
361 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
362 |
& 'RL',1,TLWtave,nno,myIter,myThid) |
363 |
nno = nno + 1 |
364 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
365 |
& 'RL',1,SSWtave,nno,myIter,myThid) |
366 |
nno = nno + 1 |
367 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
368 |
& 'RL',1,SLWtave,nno,myIter,myThid) |
369 |
nno = nno + 1 |
370 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
371 |
& 'RL',1,SINStave,nno,myIter,myThid) |
372 |
nno = nno + 1 |
373 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
374 |
& 'RL',1,BKTtave,nno,myIter,myThid) |
375 |
nno = nno + 1 |
376 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
377 |
& 'RL',1,SHFtave,nno,myIter,myThid) |
378 |
nno = nno + 1 |
379 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
380 |
& 'RL',1,LHFtave,nno,myIter,myThid) |
381 |
nno = nno + 1 |
382 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
383 |
& 'RL',1,USTRtave,nno,myIter,myThid) |
384 |
nno = nno + 1 |
385 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
386 |
& 'RL',1,VSTRtave,nno,myIter,myThid) |
387 |
nno = nno + 1 |
388 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
389 |
& 'RL',1,PRECNVtave,nno,myIter,myThid) |
390 |
nno = nno + 1 |
391 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
392 |
& 'RL',1,PRECLStave,nno,myIter,myThid) |
393 |
nno = nno + 1 |
394 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
395 |
& 'RL',1,CLOUDCtave,nno,myIter,myThid) |
396 |
nno = nno + 1 |
397 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
398 |
& 'RL',1,SSTtave,nno,myIter,myThid) |
399 |
nno = nno + 1 |
400 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
401 |
& 'RL',1,QFLUXtave,nno,myIter,myThid) |
402 |
nno = nno + 1 |
403 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
404 |
& 'RL',1,PRWtave,nno,myIter,myThid) |
405 |
nno = nno + 1 |
406 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
407 |
& 'RL',1,TSW0tave,nno,myIter,myThid) |
408 |
nno = nno + 1 |
409 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
410 |
& 'RL',1,TLW0tave,nno,myIter,myThid) |
411 |
nno = nno + 1 |
412 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
413 |
& 'RL',1,CBMFtave,nno,myIter,myThid) |
414 |
nno = nno + 1 |
415 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
416 |
& 'RL',1,PLCLtave,nno,myIter,myThid) |
417 |
|
418 |
DO K = 1, Nr |
419 |
nno = nno + 1 |
420 |
CALL FROM3DTO2D(RHtave,K,AUX2D,myThid) |
421 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
422 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
423 |
ENDDO |
424 |
DO K = 1, Nr |
425 |
nno = nno + 1 |
426 |
CALL FROM3DTO2D(CLDFtave,K,AUX2D,myThid) |
427 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
428 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
429 |
ENDDO |
430 |
DO K = 1, Nr |
431 |
nno = nno + 1 |
432 |
CALL FROM3DTO2D(CLDQtave,K,AUX2D,myThid) |
433 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
434 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
435 |
ENDDO |
436 |
DO K = 1, Nr |
437 |
nno = nno + 1 |
438 |
CALL FROM3DTO2D(CLDQCtave,K,AUX2D,myThid) |
439 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
440 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
441 |
ENDDO |
442 |
DO K = 1, Nr |
443 |
nno = nno + 1 |
444 |
CALL FROM3DTO2D(RCtave,K,AUX2D,myThid) |
445 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
446 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
447 |
ENDDO |
448 |
DO K = 1, Nr |
449 |
nno = nno + 1 |
450 |
CALL FROM3DTO2D(CRLWtave,K,AUX2D,myThid) |
451 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
452 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
453 |
ENDDO |
454 |
DO K = 1, Nr |
455 |
nno = nno + 1 |
456 |
CALL FROM3DTO2D(CRSWtave,K,AUX2D,myThid) |
457 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
458 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
459 |
ENDDO |
460 |
DO K = 1, Nr |
461 |
nno = nno + 1 |
462 |
CALL FROM3DTO2D(MUPtave,K,AUX2D,myThid) |
463 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
464 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
465 |
ENDDO |
466 |
DO K = 1, Nr |
467 |
nno = nno + 1 |
468 |
CALL FROM3DTO2D(MDNtave,K,AUX2D,myThid) |
469 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
470 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
471 |
ENDDO |
472 |
DO K = 1, Nr |
473 |
nno = nno + 1 |
474 |
CALL FROM3DTO2D(MDN0tave,K,AUX2D,myThid) |
475 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
476 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
477 |
ENDDO |
478 |
DO K = 1, Nr |
479 |
nno = nno + 1 |
480 |
CALL FROM3DTO2D(ENTtave,K,AUX2D,myThid) |
481 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
482 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
483 |
ENDDO |
484 |
DO K = 1, Nr |
485 |
nno = nno + 1 |
486 |
CALL FROM3DTO2D(DETtave,K,AUX2D,myThid) |
487 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
488 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
489 |
ENDDO |
490 |
DO K = 1, Nr |
491 |
nno = nno + 1 |
492 |
CALL FROM3DTO2D(Utave,K,AUX2D,myThid) |
493 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
494 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
495 |
ENDDO |
496 |
DO K = 1, Nr |
497 |
nno = nno + 1 |
498 |
CALL FROM3DTO2D(Vtave,K,AUX2D,myThid) |
499 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
500 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
501 |
ENDDO |
502 |
DO K = 1, Nr |
503 |
nno = nno + 1 |
504 |
CALL FROM3DTO2D(Wtave,K,AUX2D,myThid) |
505 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
506 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
507 |
ENDDO |
508 |
DO K = 1, Nr |
509 |
nno = nno + 1 |
510 |
CALL FROM3DTO2D(Ttave,K,AUX2D,myThid) |
511 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
512 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
513 |
ENDDO |
514 |
DO K = 1, Nr |
515 |
nno = nno + 1 |
516 |
CALL FROM3DTO2D(Qtave,K,AUX2D,myThid) |
517 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
518 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
519 |
ENDDO |
520 |
DO K = 1, Nr |
521 |
nno = nno + 1 |
522 |
CALL FROM3DTO2D(SXtave,K,AUX2D,myThid) |
523 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
524 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
525 |
ENDDO |
526 |
DO K = 1, Nr |
527 |
nno = nno + 1 |
528 |
CALL FROM3DTO2D(HXtave,K,AUX2D,myThid) |
529 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
530 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
531 |
ENDDO |
532 |
DO K = 1, Nr |
533 |
nno = nno + 1 |
534 |
CALL FROM3DTO2D(DTCNVtave,K,AUX2D,myThid) |
535 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
536 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
537 |
ENDDO |
538 |
DO K = 1, Nr |
539 |
nno = nno + 1 |
540 |
CALL FROM3DTO2D(DTLSCtave,K,AUX2D,myThid) |
541 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
542 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
543 |
ENDDO |
544 |
DO K = 1, Nr |
545 |
nno = nno + 1 |
546 |
CALL FROM3DTO2D(DTPBLtave,K,AUX2D,myThid) |
547 |
CALL MDSWRITEFIELD(fn,precFloat32,gf, |
548 |
& 'RL',1,AUX2D,nno,myIter,myThid) |
549 |
ENDDO |
550 |
|
551 |
END IF |
552 |
|
553 |
_END_MASTER( myThid ) |
554 |
_BARRIER |
555 |
|
556 |
C Reset averages to zero |
557 |
DO bj = myByLo(myThid), myByHi(myThid) |
558 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
559 |
CALL TIMEAVE_RESET(TSWtave, 1, bi, bj, myThid) |
560 |
CALL TIMEAVE_RESET(TLWtave, 1, bi, bj, myThid) |
561 |
CALL TIMEAVE_RESET(SSWtave, 1, bi, bj, myThid) |
562 |
CALL TIMEAVE_RESET(SLWtave, 1, bi, bj, myThid) |
563 |
CALL TIMEAVE_RESET(SINStave, 1, bi, bj, myThid) |
564 |
CALL TIMEAVE_RESET(BKTtave, 1, bi, bj, myThid) |
565 |
CALL TIMEAVE_RESET(SHFtave, 1, bi, bj, myThid) |
566 |
CALL TIMEAVE_RESET(LHFtave, 1, bi, bj, myThid) |
567 |
CALL TIMEAVE_RESET(USTRtave, 1, bi, bj, myThid) |
568 |
CALL TIMEAVE_RESET(VSTRtave, 1, bi, bj, myThid) |
569 |
CALL TIMEAVE_RESET(PRECNVtave, 1, bi, bj, myThid) |
570 |
CALL TIMEAVE_RESET(PRECLStave, 1, bi, bj, myThid) |
571 |
CALL TIMEAVE_RESET(CLOUDCtave, 1, bi, bj, myThid) |
572 |
CALL TIMEAVE_RESET(SSTtave, 1, bi, bj, myThid) |
573 |
CALL TIMEAVE_RESET(QFLUXtave, 1, bi, bj, myThid) |
574 |
CALL TIMEAVE_RESET(PRWtave, 1, bi, bj, myThid) |
575 |
CALL TIMEAVE_RESET(TSW0tave, 1, bi, bj, myThid) |
576 |
CALL TIMEAVE_RESET(TLW0tave, 1, bi, bj, myThid) |
577 |
CALL TIMEAVE_RESET(CBMFtave, 1, bi, bj, myThid) |
578 |
CALL TIMEAVE_RESET(PLCLtave, 1, bi, bj, myThid) |
579 |
|
580 |
CALL TIMEAVE_RESET(RHtave, Nr, bi, bj, myThid) |
581 |
CALL TIMEAVE_RESET(CLDFtave, Nr, bi, bj, myThid) |
582 |
CALL TIMEAVE_RESET(CLDQtave, Nr, bi, bj, myThid) |
583 |
CALL TIMEAVE_RESET(CLDQCtave, Nr, bi, bj, myThid) |
584 |
CALL TIMEAVE_RESET(RCtave, Nr, bi, bj, myThid) |
585 |
CALL TIMEAVE_RESET(CRLWtave, Nr, bi, bj, myThid) |
586 |
CALL TIMEAVE_RESET(CRSWtave, Nr, bi, bj, myThid) |
587 |
CALL TIMEAVE_RESET(MUPtave, Nr, bi, bj, myThid) |
588 |
CALL TIMEAVE_RESET(MDNtave, Nr, bi, bj, myThid) |
589 |
CALL TIMEAVE_RESET(MDN0tave, Nr, bi, bj, myThid) |
590 |
CALL TIMEAVE_RESET(ENTtave, Nr, bi, bj, myThid) |
591 |
CALL TIMEAVE_RESET(DETtave, Nr, bi, bj, myThid) |
592 |
CALL TIMEAVE_RESET(Utave, Nr, bi, bj, myThid) |
593 |
CALL TIMEAVE_RESET(Vtave, Nr, bi, bj, myThid) |
594 |
CALL TIMEAVE_RESET(Wtave, Nr, bi, bj, myThid) |
595 |
CALL TIMEAVE_RESET(Ttave, Nr, bi, bj, myThid) |
596 |
CALL TIMEAVE_RESET(Qtave, Nr, bi, bj, myThid) |
597 |
CC(acz) CALL TIMEAVE_RESET(PHItave, Nr, bi, bj, myThid) |
598 |
CALL TIMEAVE_RESET(SXtave, Nr, bi, bj, myThid) |
599 |
CALL TIMEAVE_RESET(HXtave, Nr, bi, bj, myThid) |
600 |
CALL TIMEAVE_RESET(DTCNVtave, Nr, bi, bj, myThid) |
601 |
CALL TIMEAVE_RESET(DQCNVtave, Nr, bi, bj, myThid) |
602 |
CALL TIMEAVE_RESET(DTLSCtave, Nr, bi, bj, myThid) |
603 |
CALL TIMEAVE_RESET(DTPBLtave, Nr, bi, bj, myThid) |
604 |
CALL TIMEAVE_RESET(UT_PBLtave, Nr, bi, bj, myThid) |
605 |
CALL TIMEAVE_RESET(VT_PBLtave, Nr, bi, bj, myThid) |
606 |
|
607 |
|
608 |
C normalize the zonal mean |
609 |
zonal_time_ave = 0.0 |
610 |
do j = 1,sNy |
611 |
do k = 1,Nr |
612 |
Uzav(j,K,bi,bj) = 0. |
613 |
Vzav(j,K,bi,bj) = 0. |
614 |
Wzav(j,K,bi,bj) = 0. |
615 |
Tzav(j,K,bi,bj) = 0. |
616 |
Qzav(j,K,bi,bj) = 0. |
617 |
RHzav(j,K,bi,bj) = 0. |
618 |
|
619 |
UVzav(j,K,bi,bj) = 0. |
620 |
VTzav(j,K,bi,bj) = 0. |
621 |
VQzav(j,K,bi,bj) = 0. |
622 |
|
623 |
UWzav(j,K,bi,bj) = 0. |
624 |
WTzav(j,K,bi,bj) = 0. |
625 |
WQzav(j,K,bi,bj) = 0. |
626 |
|
627 |
CLDFzav(j,K,bi,bj) = 0. |
628 |
CLDQzav(j,K,bi,bj) = 0. |
629 |
CLDQCzav(j,K,bi,bj)= 0. |
630 |
RCzav(j,K,bi,bj) = 0. |
631 |
DTCNVzav(j,K,bi,bj)= 0. |
632 |
DQCNVzav(j,K,bi,bj)= 0. |
633 |
DTLSCzav(j,K,bi,bj)= 0. |
634 |
DTPBLzav(j,K,bi,bj)= 0. |
635 |
UT_PBLzav(j,K,bi,bj)= 0. |
636 |
VT_PBLzav(j,K,bi,bj)= 0. |
637 |
UT_CNVzav(j,K,bi,bj)= 0. |
638 |
VT_CNVzav(j,K,bi,bj)= 0. |
639 |
UT_ADJzav(j,K,bi,bj)= 0. |
640 |
VT_ADJzav(j,K,bi,bj)= 0. |
641 |
TT_ADJzav(j,K,bi,bj)= 0. |
642 |
QT_ADJzav(j,K,bi,bj)= 0. |
643 |
PHIzav(j,K,bi,bj) = 0. |
644 |
end do |
645 |
end do |
646 |
|
647 |
|
648 |
|
649 |
DO k=1,Nr |
650 |
MITPHYS_TimeAve(k,bi,bj)=0. |
651 |
ENDDO |
652 |
ENDDO |
653 |
ENDDO |
654 |
|
655 |
ENDIF |
656 |
|
657 |
|
658 |
#endif /* ALLOW_TIMEAVE */ |
659 |
|
660 |
#endif /* ALLOW_MITPHYS */ |
661 |
|
662 |
RETURN |
663 |
END |