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

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

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


Revision 1.14 - (hide 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 jmc 1.14 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_fill_state.F,v 1.13 2004/12/13 21:55:48 jmc Exp $
2 edhill 1.6 C $Name: $
3    
4 edhill 1.10 #include "DIAG_OPTIONS.h"
5 jmc 1.7
6 jmc 1.13 SUBROUTINE DIAGNOSTICS_FILL_STATE( myThid )
7 edhill 1.10
8 jmc 1.13 IMPLICIT NONE
9 molod 1.1 #include "SIZE.h"
10     #include "EEPARAMS.h"
11     #include "GRID.h"
12     #include "DYNVARS.h"
13 jmc 1.12 #include "SURFACE.h"
14 molod 1.1
15 jmc 1.13 INTEGER myThid
16 jmc 1.7
17     #ifdef ALLOW_DIAGNOSTICS
18 jmc 1.13 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 edhill 1.11
40 jmc 1.14 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 jmc 1.12 #ifdef EXACT_CONSERV
57 jmc 1.13 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 jmc 1.12 #endif
70    
71 jmc 1.14 CALL DIAGNOSTICS_FILL(totPhihyd,'PHIHYD ',0,Nr,0,1,1,myThid)
72 jmc 1.13 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 edhill 1.11 & = theta(i,j,K,bi,bj)*theta(i,j,K,bi,bj)
131 jmc 1.13 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 edhill 1.11 km1 = MAX(k-1,1)
206 jmc 1.13 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 edhill 1.11 km1 = MAX(k-1,1)
255 jmc 1.13 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 edhill 1.11 & = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
275 jmc 1.13 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 edhill 1.11 & = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
291 jmc 1.13 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 edhill 1.11
367    
368 jmc 1.7 #endif /* ALLOW_DIAGNOSTICS */
369 edhill 1.11
370 jmc 1.13 RETURN
371     END

  ViewVC Help
Powered by ViewVC 1.1.22