/[MITgcm]/MITgcm_contrib/AITCZ/code/mitphys_calc_diags.F
ViewVC logotype

Contents of /MITgcm_contrib/AITCZ/code/mitphys_calc_diags.F

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


Revision 1.1 - (show annotations) (download)
Wed Aug 20 15:24:59 2003 UTC (21 years, 11 months ago) by czaja
Branch: MAIN
CVS Tags: HEAD
Initial creation of Arnaud's simple coupled simulation.

1 C $Header: /u/gcmpack/models/MITgcmUV/pkg/mitphys/mitphys_calc_diags.F,v 1.3.2.1 2001/05/02 14:58:41 sb Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CStartOfInterFace
7 SUBROUTINE MITPHYS_CALC_DIAGS( bi, bj, myTime, myThid )
8 C /==========================================================\
9 C | SUBROUTINE MITPHYS_CALC_DIAGS |
10 C | o Calculate MITPHYS diagnostics |
11 C \==========================================================/
12
13 C === Global variables ===
14 #include "SIZE.h"
15 #include "EEPARAMS.h"
16 #include "PARAMS.h"
17 #include "MITPHYS_DIAGS.h"
18
19 #ifdef ALLOW_MITPHYS
20 #include "atparam0.h"
21 #include "atparam1.h"
22 INTEGER NGP
23 INTEGER NLON
24 INTEGER NLAT
25 INTEGER NLEV
26 PARAMETER ( NLON=IX, NLAT=IL, NLEV=KX, NGP=NLON*NLAT )
27 #include "com_mitphysvar.h"
28 #include "com_forcing1.h"
29 #endif /* ALLOW_MITPHYS */
30
31 LOGICAL DIFFERENT_MULTIPLE
32 EXTERNAL DIFFERENT_MULTIPLE
33
34 C == Routine arguments ==
35 C myTime - Current time of simulation ( s )
36 C myThid - Number of this instance of the routine
37 C bi,bj - Tile index
38 _RL myTime
39 INTEGER myThid
40 INTEGER bi, bj
41 CEndOfInterface
42
43 #ifdef ALLOW_MITPHYS
44
45 C == Local variables ==
46 INTEGER I,J,I2
47 INTEGER K
48 _RL DDTT
49
50 #ifdef ALLOW_TIMEAVE
51
52 DDTT = deltaTclock
53
54 DO J=1,sNy
55 DO I=1,sNx
56 I2 = sNx*(J-1)+I
57 TSWtave(i,j,bi,bj) = TSWtave(i,j,bi,bj) + TSW(I2)*DDTT
58 TLWtave(i,j,bi,bj) = TLWtave(i,j,bi,bj) + TLW(I2)*DDTT
59 SSWtave(i,j,bi,bj) = SSWtave(i,j,bi,bj) + SSW(I2)*DDTT
60 SLWtave(i,j,bi,bj) = SLWtave(i,j,bi,bj) + SLW(I2)*DDTT
61 SINStave(i,j,bi,bj)= SINStave(i,j,bi,bj)+ SINS(I2)*DDTT
62 BKTtave(i,j,bi,bj) = BKTtave(i,j,bi,bj) + BUCKET(I2)*DDTT
63 SHFtave(i,j,bi,bj) = SHFtave(i,j,bi,bj) + SHF(I2)*DDTT
64 LHFtave(i,j,bi,bj) = LHFtave(i,j,bi,bj) + LHF(I2)*DDTT
65 USTRtave(i,j,bi,bj) = USTRtave(i,j,bi,bj) + USTR(I2)*DDTT
66 VSTRtave(i,j,bi,bj) = VSTRtave(i,j,bi,bj) + VSTR(I2)*DDTT
67 PRECNVtave(i,j,bi,bj) = PRECNVtave(i,j,bi,bj)
68 : + PRECNV(I2)*DDTT
69 PRECLStave(i,j,bi,bj) = PRECLStave(i,j,bi,bj)
70 : + PRECLS(I2)*DDTT
71 CLOUDCtave(i,j,bi,bj) = CLOUDCtave(i,j,bi,bj)
72 : + CLDT1(I2)*DDTT
73 SSTtave(i,j,bi,bj) = SSTtave(i,j,bi,bj)
74 : + TS1(I2)*DDTT
75 QFLUXtave(i,j,bi,bj) = QFLUXtave(i,j,bi,bj)
76 : + QFLUX(I2)*DDTT
77 PRWtave(i,j,bi,bj) = PRWtave(i,j,bi,bj)
78 : + PRW1(I2)*DDTT
79 TSW0tave(i,j,bi,bj) = TSW0tave(i,j,bi,bj) + TSW0(I2)*DDTT
80 TLW0tave(i,j,bi,bj) = TLW0tave(i,j,bi,bj) + TLW0(I2)*DDTT
81 CBMFtave(i,j,bi,bj) = CBMFtave(i,j,bi,bj) + CBMFG1(I2)*DDTT
82 PLCLtave(i,j,bi,bj) = PLCLtave(i,j,bi,bj) + PLCLG1(I2)*DDTT
83
84 DO K=1,Nr
85 RHtave(i,j,K,bi,bj) = RHtave(i,j,K,bi,bj) + RH1(I2,K)*DDTT
86 CLDFtave(i,j,K,bi,bj) = CLDFtave(i,j,K,bi,bj) + CLDF1(I2,K)*DDTT
87 CLDQtave(i,j,K,bi,bj) = CLDQtave(i,j,K,bi,bj) + CLDQ1(I2,K)*DDTT
88 CLDQCtave(i,j,K,bi,bj)= CLDQCtave(i,j,K,bi,bj)+ CLDQC1(I2,K)*DDTT
89 RCtave(i,j,K,bi,bj) = RCtave(i,j,K,bi,bj) + RC1(I2,K)*DDTT
90 CRLWtave(i,j,K,bi,bj) = CRLWtave(i,j,K,bi,bj) + CRLW1(I2,K)*DDTT
91 CRSWtave(i,j,K,bi,bj) = CRSWtave(i,j,K,bi,bj) + CRSW1(I2,K)*DDTT
92 MUPtave(i,j,K,bi,bj) = MUPtave(i,j,K,bi,bj) + MUP1(I2,K)*DDTT
93 MDNtave(i,j,K,bi,bj) = MDNtave(i,j,K,bi,bj) + MDOWN1(I2,K)*DDTT
94 MDN0tave(i,j,K,bi,bj) = MDN0tave(i,j,K,bi,bj) + MP1(I2,K)*DDTT
95 ENTtave(i,j,K,bi,bj) = ENTtave(i,j,K,bi,bj) + ENT1(I2,K)*DDTT
96 DETtave(i,j,K,bi,bj) = DETtave(i,j,K,bi,bj) + DET1(I2,K)*DDTT
97 Utave(i,j,K,bi,bj) = Utave(i,j,K,bi,bj) + UGW(I2,K)*DDTT
98 Vtave(i,j,K,bi,bj) = Vtave(i,j,K,bi,bj) + VGS(I2,K)*DDTT
99 Wtave(i,j,K,bi,bj) = Wtave(i,j,K,bi,bj) + WG1(I2,K)*DDTT
100 Ttave(i,j,K,bi,bj) = Ttave(i,j,K,bi,bj) + TG1(I2,K)*DDTT
101 Qtave(i,j,K,bi,bj) = Qtave(i,j,K,bi,bj) + QG1(I2,K)*DDTT
102 CC(acz) PHItave(i,j,K,bi,bj) = PHItave(i,j,K,bi,bj) + PHIG1(I2,K)*DDTT
103 sxtave(i,j,K,bi,bj) = sxtave(i,j,K,bi,bj) + SXG1(I2,K)*DDTT
104 hxtave(i,j,K,bi,bj) = hxtave(i,j,K,bi,bj) + HXG1(I2,K)*DDTT
105 DTCNVtave(i,j,K,bi,bj)= DTCNVtave(i,j,K,bi,bj)
106 : + TT_CNV(I2,K)*DDTT*86400.
107 DQCNVtave(i,j,K,bi,bj)= DQCNVtave(i,j,K,bi,bj)
108 : + QT_CNV(I2,K)*DDTT*86400.
109 DTLSCtave(i,j,K,bi,bj)= DTLSCtave(i,j,K,bi,bj)
110 : + TT_LSC(I2,K)*DDTT*86400.
111 DTPBLtave(i,j,K,bi,bj)= DTPBLtave(i,j,K,bi,bj)
112 : + TT_PBL(I2,K)*DDTT*86400.
113 UT_PBLtave(i,j,K,bi,bj)= UT_PBLtave(i,j,K,bi,bj)
114 : + UT_PBL_W(I2,K)*DDTT*86400.
115 C UT_PBLtave(i+1,j,K,bi,bj)= UT_PBLtave(i,j,K,bi,bj)
116 : + UT_PBL_E(I2,K)*DDTT*86400.
117 VT_PBLtave(i,j,K,bi,bj)= VT_PBLtave(i,j,K,bi,bj)
118 : + VT_PBL_S(I2,K)*DDTT*86400.
119 C VT_PBLtave(i,j+1,K,bi,bj)= VT_PBLtave(i,j,K,bi,bj)
120 : + VT_PBL_N(I2,K)*DDTT*86400.
121 UT_CNVtave(i,j,K,bi,bj)= UT_CNVtave(i,j,K,bi,bj)
122 : + UT_CNV(I2,K)*DDTT*86400.
123 VT_CNVtave(i,j,K,bi,bj)= VT_CNVtave(i,j,K,bi,bj)
124 : + VT_CNV(I2,K)*DDTT*86400.
125 UT_ADJtave(i,j,K,bi,bj)= UT_ADJtave(i,j,K,bi,bj)
126 : + UT_ADJ(I2,K)*DDTT*86400.
127 VT_ADJtave(i,j,K,bi,bj)= VT_ADJtave(i,j,K,bi,bj)
128 : + VT_ADJ(I2,K)*DDTT*86400.
129 TT_ADJtave(i,j,K,bi,bj)= TT_ADJtave(i,j,K,bi,bj)
130 : + TT_ADJ(I2,K)*DDTT*86400.
131 QT_ADJtave(i,j,K,bi,bj)= QT_ADJtave(i,j,K,bi,bj)
132 : + QT_ADJ(I2,K)*DDTT*86400.
133
134 ENDDO
135
136 ENDDO
137 ENDDO
138
139
140 C omp: 12-28-01
141 C Zonal averages
142
143
144
145 do i = 1,sNx
146 do j = 1,sNy
147 I2 = sNx*(J-1)+I
148 do k = 1,Nr
149 Uzav(j,K,bi,bj) = Uzav(j,K,bi,bj) + UGW(I2,K)*DDTT
150 Vzav(j,K,bi,bj) = Vzav(j,K,bi,bj) + VGS(I2,K)*DDTT
151 Wzav(j,K,bi,bj) = Wzav(j,K,bi,bj) + WG1(I2,K)*DDTT
152 Tzav(j,K,bi,bj) = Tzav(j,K,bi,bj) + TG1(I2,K)*DDTT
153 Qzav(j,K,bi,bj) = Qzav(j,K,bi,bj) + QG1(I2,K)*DDTT
154 RHzav(j,K,bi,bj) = RHzav(j,K,bi,bj)+ RH1(I2,K)*DDTT
155
156 UVzav(j,K,bi,bj) = UVzav(j,K,bi,bj) + 0.25*DDTT *
157 & (UGW(I2,K) + UGE(I2,K)) * (VGN(I2,K)+VGS(I2,K))
158 VTzav(j,K,bi,bj) = VTzav(j,K,bi,bj) + 0.5*DDTT *
159 & (TG1(I2,K) * (VGN(I2,K)+VGS(I2,K)))
160 VQzav(j,K,bi,bj) = VQzav(j,K,bi,bj) + 0.5*DDTT *
161 & (QG1(I2,K) * (VGN(I2,K)+VGS(I2,K)))
162
163 CLDFzav(j,K,bi,bj) = CLDFzav(j,K,bi,bj) + CLDF1(I2,K)*DDTT
164 CLDQzav(j,K,bi,bj) = CLDQzav(j,K,bi,bj) + CLDQ1(I2,K)*DDTT
165 CLDQCzav(j,K,bi,bj)= CLDQCzav(j,K,bi,bj)+ CLDQC1(I2,K)*DDTT
166 RCzav(j,K,bi,bj) = RCzav(j,K,bi,bj) + RC1(I2,K)*DDTT
167
168 DTCNVzav(j,K,bi,bj)= DTCNVzav(j,K,bi,bj)
169 : + TT_CNV(I2,K)*DDTT*86400.
170 DQCNVzav(j,K,bi,bj)= DQCNVzav(j,K,bi,bj)
171 : + QT_CNV(I2,K)*DDTT*86400.
172 DTLSCzav(j,K,bi,bj)= DTLSCzav(j,K,bi,bj)
173 : + TT_LSC(I2,K)*DDTT*86400.
174 DTPBLzav(j,K,bi,bj)= DTPBLzav(j,K,bi,bj)
175 : + TT_PBL(I2,K)*DDTT*86400.
176 UT_PBLzav(j,K,bi,bj)= UT_PBLzav(j,K,bi,bj)
177 : + UT_PBL_W(I2,K)*DDTT*86400.
178 C UT_PBLzav(i+1,j,K,bi,bj)= UT_PBLzav(j,K,bi,bj)
179 : + UT_PBL_E(I2,K)*DDTT*86400.
180 VT_PBLzav(j,K,bi,bj)= VT_PBLzav(j,K,bi,bj)
181 : + VT_PBL_S(I2,K)*DDTT*86400.
182 C VT_PBLzav(j+1,K,bi,bj)= VT_PBLzav(j,K,bi,bj)
183 : + VT_PBL_N(I2,K)*DDTT*86400.
184 UT_CNVzav(j,K,bi,bj)= UT_CNVzav(j,K,bi,bj)
185 : + UT_CNV(I2,K)*DDTT*86400.
186 VT_CNVzav(j,K,bi,bj)= VT_CNVzav(j,K,bi,bj)
187 : + VT_CNV(I2,K)*DDTT*86400.
188 UT_ADJzav(j,K,bi,bj)= UT_ADJzav(j,K,bi,bj)
189 : + UT_ADJ(I2,K)*DDTT*86400.
190 VT_ADJzav(j,K,bi,bj)= VT_ADJzav(j,K,bi,bj)
191 : + VT_ADJ(I2,K)*DDTT*86400.
192 TT_ADJzav(j,K,bi,bj)= TT_ADJzav(j,K,bi,bj)
193 : + TT_ADJ(I2,K)*DDTT*86400.
194 QT_ADJzav(j,K,bi,bj)= QT_ADJzav(j,K,bi,bj)
195 : + QT_ADJ(I2,K)*DDTT*86400.
196 CC (acz) PHIzav(j,K,bi,bj) = PHIzav(j,K,bi,bj) + PHIG1(I2,K)*DDTT
197
198 end do
199 UWzav(j,1,bi,bj) = 0;
200 WTzav(j,1,bi,bj) = 0;
201 WQzav(j,1,bi,bj) = 0;
202 DO K = 2,NR
203 UWzav(j,K,bi,bj) = UWzav(j,K,bi,bj) + 0.25*DDTT *
204 & (UGW(I2,K) + UGE(I2,K) + UGW(I2,K-1) + UGE(I2,K-1))
205 & * (WG1(I2,K))
206 WTzav(j,K,bi,bj) = WTzav(j,K,bi,bj) + DDTT * 0.5 *
207 & ( (TG1(I2,K)+ TG1(I2,K-1)) * WG1(I2,K))
208 WQzav(j,K,bi,bj) = WQzav(j,K,bi,bj) + DDTT * 0.5 *
209 & ( (QG1(I2,K)+ QG1(I2,K-1)) * WG1(I2,K))
210 END DO
211
212 end do
213 end do
214
215
216 C- Keep record of how much time has been integrated over
217 DO K=1,Nr
218 MITPHYS_TimeAve(k,bi,bj)=MITPHYS_TimeAve(k,bi,bj)+DDTT
219 ENDDO
220
221
222 #endif /* ALLOW_TIMEAVE */
223
224 #endif /* ALLOW_MITPHYS */
225
226 RETURN
227 END
228

  ViewVC Help
Powered by ViewVC 1.1.22