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

Annotation 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 - (hide 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 czaja 1.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