/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_fill_state.F
ViewVC logotype

Contents of /MITgcm/pkg/diagnostics/diagnostics_fill_state.F

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


Revision 1.14 - (show annotations) (download)
Wed Dec 15 00:20:37 2004 UTC (19 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57b_post, checkpoint57c_pre, checkpoint57c_post
Changes since 1.13: +18 -1 lines
add 3 diagnostics: Total PhiHyd, Bottom Pressure & Sq of Bot.Pressure

1 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_fill_state.F,v 1.13 2004/12/13 21:55:48 jmc Exp $
2 C $Name: $
3
4 #include "DIAG_OPTIONS.h"
5
6 SUBROUTINE DIAGNOSTICS_FILL_STATE( myThid )
7
8 IMPLICIT NONE
9 #include "SIZE.h"
10 #include "EEPARAMS.h"
11 #include "GRID.h"
12 #include "DYNVARS.h"
13 #include "SURFACE.h"
14
15 INTEGER myThid
16
17 #ifdef ALLOW_DIAGNOSTICS
18 LOGICAL DIAGNOSTICS_IS_ON
19 EXTERNAL DIAGNOSTICS_IS_ON
20 _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
21 _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
22 INTEGER i,j,K,bi,bj
23 INTEGER km1
24
25 CALL DIAGNOSTICS_FILL(etaN,'ETAN ',0,1,0,1,1,myThid)
26
27 IF ( DIAGNOSTICS_IS_ON('ETANSQ ',myThid) ) THEN
28 DO bj = myByLo(myThid), myByHi(myThid)
29 DO bi = myBxLo(myThid), myBxHi(myThid)
30 DO j = 1,sNy
31 DO i = 1,sNx
32 tmp1k(i,j,bi,bj) = etaN(i,j,bi,bj)*etaN(i,j,bi,bj)
33 ENDDO
34 ENDDO
35 ENDDO
36 ENDDO
37 CALL DIAGNOSTICS_FILL(tmp1k,'ETANSQ ',0,1,0,1,1,myThid)
38 ENDIF
39
40 CALL DIAGNOSTICS_FILL(phiHydLow,'PHIBOT ',0,1,0,1,1,myThid)
41
42 IF ( DIAGNOSTICS_IS_ON('PHIBOTSQ',myThid) ) THEN
43 DO bj = myByLo(myThid), myByHi(myThid)
44 DO bi = myBxLo(myThid), myBxHi(myThid)
45 DO j = 1,sNy
46 DO i = 1,sNx
47 tmp1k(i,j,bi,bj) = phiHydLow(i,j,bi,bj)
48 & *phiHydLow(i,j,bi,bj)
49 ENDDO
50 ENDDO
51 ENDDO
52 ENDDO
53 CALL DIAGNOSTICS_FILL(tmp1k,'PHIBOTSQ',0,1,0,1,1,myThid)
54 ENDIF
55
56 #ifdef EXACT_CONSERV
57 IF ( DIAGNOSTICS_IS_ON('DETADT2 ',myThid) ) THEN
58 DO bj = myByLo(myThid), myByHi(myThid)
59 DO bi = myBxLo(myThid), myBxHi(myThid)
60 DO j = 1,sNy
61 DO i = 1,sNx
62 tmp1k(i,j,bi,bj) = dEtaHdt(i,j,bi,bj)*dEtaHdt(i,j,bi,bj)
63 ENDDO
64 ENDDO
65 ENDDO
66 ENDDO
67 CALL DIAGNOSTICS_FILL(tmp1k,'DETADT2 ',0,1,0,1,1,myThid)
68 ENDIF
69 #endif
70
71 CALL DIAGNOSTICS_FILL(totPhihyd,'PHIHYD ',0,Nr,0,1,1,myThid)
72 CALL DIAGNOSTICS_FILL(uVel, 'UVEL ',0,Nr,0,1,1,myThid)
73 CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid)
74 CALL DIAGNOSTICS_FILL(wVel, 'WVEL ',0,Nr,0,1,1,myThid)
75 CALL DIAGNOSTICS_FILL(theta,'THETA ',0,Nr,0,1,1,myThid)
76 CALL DIAGNOSTICS_FILL(salt, 'SALT ',0,Nr,0,1,1,myThid)
77
78 IF ( DIAGNOSTICS_IS_ON('UVELSQ ',myThid) ) THEN
79 DO bj = myByLo(myThid), myByHi(myThid)
80 DO bi = myBxLo(myThid), myBxHi(myThid)
81 DO K=1,Nr
82 DO j = 1,sNy
83 DO i = 1,sNx
84 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*uVel(i,j,K,bi,bj)
85 ENDDO
86 ENDDO
87 ENDDO
88 ENDDO
89 ENDDO
90 CALL DIAGNOSTICS_FILL(tmpMk,'UVELSQ ',0,Nr,0,1,1,myThid)
91 ENDIF
92
93 IF ( DIAGNOSTICS_IS_ON('VVELSQ ',myThid) ) THEN
94 DO bj = myByLo(myThid), myByHi(myThid)
95 DO bi = myBxLo(myThid), myBxHi(myThid)
96 DO K=1,Nr
97 DO j = 1,sNy
98 DO i = 1,sNx
99 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)
100 ENDDO
101 ENDDO
102 ENDDO
103 ENDDO
104 ENDDO
105 CALL DIAGNOSTICS_FILL(tmpMk,'VVELSQ ',0,Nr,0,1,1,myThid)
106 ENDIF
107
108 IF ( DIAGNOSTICS_IS_ON('WVELSQ ',myThid) ) THEN
109 DO bj = myByLo(myThid), myByHi(myThid)
110 DO bi = myBxLo(myThid), myBxHi(myThid)
111 DO K=1,Nr
112 DO j = 1,sNy
113 DO i = 1,sNx
114 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*wVel(i,j,K,bi,bj)
115 ENDDO
116 ENDDO
117 ENDDO
118 ENDDO
119 ENDDO
120 CALL DIAGNOSTICS_FILL(tmpMk,'WVELSQ ',0,Nr,0,1,1,myThid)
121 ENDIF
122
123 IF ( DIAGNOSTICS_IS_ON('THETASQ ',myThid) ) THEN
124 DO bj = myByLo(myThid), myByHi(myThid)
125 DO bi = myBxLo(myThid), myBxHi(myThid)
126 DO K=1,Nr
127 DO j = 1,sNy
128 DO i = 1,sNx
129 tmpMk(i,j,K,bi,bj)
130 & = theta(i,j,K,bi,bj)*theta(i,j,K,bi,bj)
131 ENDDO
132 ENDDO
133 ENDDO
134 ENDDO
135 ENDDO
136 CALL DIAGNOSTICS_FILL(tmpMk,'THETASQ ',0,Nr,0,1,1,myThid)
137 ENDIF
138
139 IF ( DIAGNOSTICS_IS_ON('SALTSQ ',myThid) ) THEN
140 DO bj = myByLo(myThid), myByHi(myThid)
141 DO bi = myBxLo(myThid), myBxHi(myThid)
142 DO K=1,Nr
143 DO j = 1,sNy
144 DO i = 1,sNx
145 tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)*salt(i,j,K,bi,bj)
146 ENDDO
147 ENDDO
148 ENDDO
149 ENDDO
150 ENDDO
151 CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQ ',0,Nr,0,1,1,myThid)
152 ENDIF
153
154 IF ( DIAGNOSTICS_IS_ON('UVELVVEL',myThid) ) THEN
155 DO bj = myByLo(myThid), myByHi(myThid)
156 DO bi = myBxLo(myThid), myBxHi(myThid)
157 DO K=1,Nr
158 DO j = 1,sNy
159 DO i = 1,sNx
160 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)
161 ENDDO
162 ENDDO
163 ENDDO
164 ENDDO
165 ENDDO
166 CALL DIAGNOSTICS_FILL(tmpMk,'UVELVVEL',0,Nr,0,1,1,myThid)
167 ENDIF
168
169 IF ( DIAGNOSTICS_IS_ON('UVELTH ',myThid) ) THEN
170 DO bj = myByLo(myThid), myByHi(myThid)
171 DO bi = myBxLo(myThid), myBxHi(myThid)
172 DO K=1,Nr
173 DO j = 1,sNy
174 DO i = 1,sNx
175 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
176 & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
177 ENDDO
178 ENDDO
179 ENDDO
180 ENDDO
181 ENDDO
182 CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH ',0,Nr,0,1,1,myThid)
183 ENDIF
184
185 IF ( DIAGNOSTICS_IS_ON('VVELTH ',myThid) ) THEN
186 DO bj = myByLo(myThid), myByHi(myThid)
187 DO bi = myBxLo(myThid), myBxHi(myThid)
188 DO K=1,Nr
189 DO j = 1,sNy
190 DO i = 1,sNx
191 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
192 & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
193 ENDDO
194 ENDDO
195 ENDDO
196 ENDDO
197 ENDDO
198 CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH ',0,Nr,0,1,1,myThid)
199 ENDIF
200
201 IF ( DIAGNOSTICS_IS_ON('WVELTH ',myThid) ) THEN
202 DO bj = myByLo(myThid), myByHi(myThid)
203 DO bi = myBxLo(myThid), myBxHi(myThid)
204 DO K=1,Nr
205 km1 = MAX(k-1,1)
206 DO j = 1,sNy
207 DO i = 1,sNx
208 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
209 & *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
210 ENDDO
211 ENDDO
212 ENDDO
213 ENDDO
214 ENDDO
215 CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH ',0,Nr,0,1,1,myThid)
216 ENDIF
217
218 IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN
219 DO bj = myByLo(myThid), myByHi(myThid)
220 DO bi = myBxLo(myThid), myBxHi(myThid)
221 DO K=1,Nr
222 DO j = 1,sNy
223 DO i = 1,sNx
224 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
225 & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
226 ENDDO
227 ENDDO
228 ENDDO
229 ENDDO
230 ENDDO
231 CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid)
232 ENDIF
233
234 IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN
235 DO bj = myByLo(myThid), myByHi(myThid)
236 DO bi = myBxLo(myThid), myBxHi(myThid)
237 DO K=1,Nr
238 DO j = 1,sNy
239 DO i = 1,sNx
240 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
241 & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
242 ENDDO
243 ENDDO
244 ENDDO
245 ENDDO
246 ENDDO
247 CALL DIAGNOSTICS_FILL(tmpMk,'VVELSLT ',0,Nr,0,1,1,myThid)
248 ENDIF
249
250 IF ( DIAGNOSTICS_IS_ON('WVELSLT ',myThid) ) THEN
251 DO bj = myByLo(myThid), myByHi(myThid)
252 DO bi = myBxLo(myThid), myBxHi(myThid)
253 DO K=1,Nr
254 km1 = MAX(k-1,1)
255 DO j = 1,sNy
256 DO i = 1,sNx
257 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
258 & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
259 ENDDO
260 ENDDO
261 ENDDO
262 ENDDO
263 ENDDO
264 CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
265 ENDIF
266
267 IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
268 DO bj = myByLo(myThid), myByHi(myThid)
269 DO bi = myBxLo(myThid), myBxHi(myThid)
270 DO K=1,Nr
271 DO j = 1,sNy
272 DO i = 1,sNx
273 tmpMk(i,j,K,bi,bj)
274 & = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
275 ENDDO
276 ENDDO
277 ENDDO
278 ENDDO
279 ENDDO
280 CALL DIAGNOSTICS_FILL(tmpMk,'UVELMASS',0,Nr,0,1,1,myThid)
281 ENDIF
282
283 IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
284 DO bj = myByLo(myThid), myByHi(myThid)
285 DO bi = myBxLo(myThid), myBxHi(myThid)
286 DO K=1,Nr
287 DO j = 1,sNy
288 DO i = 1,sNx
289 tmpMk(i,j,K,bi,bj)
290 & = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
291 ENDDO
292 ENDDO
293 ENDDO
294 ENDDO
295 ENDDO
296 CALL DIAGNOSTICS_FILL(tmpMk,'VVELMASS',0,Nr,0,1,1,myThid)
297 ENDIF
298
299 IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
300 DO bj = myByLo(myThid), myByHi(myThid)
301 DO bi = myBxLo(myThid), myBxHi(myThid)
302 DO K=1,Nr
303 DO j = 1,sNy
304 DO i = 1,sNx
305 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
306 & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
307 & * hFacW(i,j,K,bi,bj)
308 ENDDO
309 ENDDO
310 ENDDO
311 ENDDO
312 ENDDO
313 CALL DIAGNOSTICS_FILL(tmpMk,'UTHMASS ',0,Nr,0,1,1,myThid)
314 ENDIF
315
316 IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
317 DO bj = myByLo(myThid), myByHi(myThid)
318 DO bi = myBxLo(myThid), myBxHi(myThid)
319 DO K=1,Nr
320 DO j = 1,sNy
321 DO i = 1,sNx
322 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
323 & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
324 & * hFacS(i,j,K,bi,bj)
325 ENDDO
326 ENDDO
327 ENDDO
328 ENDDO
329 ENDDO
330 CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
331 ENDIF
332
333 IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
334 DO bj = myByLo(myThid), myByHi(myThid)
335 DO bi = myBxLo(myThid), myBxHi(myThid)
336 DO K=1,Nr
337 DO j = 1,sNy
338 DO i = 1,sNx
339 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
340 & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
341 & * hFacW(i,j,K,bi,bj)
342 ENDDO
343 ENDDO
344 ENDDO
345 ENDDO
346 ENDDO
347 CALL DIAGNOSTICS_FILL(tmpMk,'USLTMASS',0,Nr,0,1,1,myThid)
348 ENDIF
349
350 IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
351 DO bj = myByLo(myThid), myByHi(myThid)
352 DO bi = myBxLo(myThid), myBxHi(myThid)
353 DO K=1,Nr
354 DO j = 1,sNy
355 DO i = 1,sNx
356 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
357 & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
358 & * hFacS(i,j,K,bi,bj)
359 ENDDO
360 ENDDO
361 ENDDO
362 ENDDO
363 ENDDO
364 CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
365 ENDIF
366
367
368 #endif /* ALLOW_DIAGNOSTICS */
369
370 RETURN
371 END

  ViewVC Help
Powered by ViewVC 1.1.22