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

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

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

revision 1.1 by molod, Wed Mar 17 22:06:02 2004 UTC revision 1.9 by jmc, Thu Jul 1 18:40:40 2004 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5    #include "CPP_OPTIONS.h"
6    
7         subroutine diagnostics_fill_state(myThid)         subroutine diagnostics_fill_state(myThid)
8           implicit none
9  #include "SIZE.h"  #include "SIZE.h"
10  #include "EEPARAMS.h"  #include "EEPARAMS.h"
11  #include "GRID.h"  #include "GRID.h"
12  #include "DYNVARS.h"  #include "DYNVARS.h"
 # ifdef ALLOW_PTRACERS  
 #  include "PTRACERS.h"  
 # endif  
13    
14        integer myThid        integer myThid
       _RL dummy(1-OLx:sNx+Olx,1-Oly:sNy+Oly,Nr,Nsx,Nsy)  
       integer i,j,K,bi,bj  
15    
16  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
17         if(usediagnostics)then        _RL dummy(1-OLx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
18          _RL dummys(1-OLx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
19          integer i,j,K,bi,bj
20          integer km1
21    
22          call fill_diagnostics(myThid,'ETAN    ',0,1,0,1,1,etaN)          call fill_diagnostics(myThid,'ETAN    ',0,1,0,1,1,etaN)
23    
24          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
25          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
26            do j = 1-OLy,sNy+Oly            do j = 1,sNy
27            do i = 1-OLx,sNx+Olx            do i = 1,sNx
28             dummy(i,j,K,bi,bj) = etaN(i,j,bi,bj)*etaN(i,j,bi,bj)             dummys(i,j,bi,bj) = etaN(i,j,bi,bj)*etaN(i,j,bi,bj)
29            enddo            enddo
30            enddo            enddo
31          enddo          enddo
32          enddo          enddo
33          call fill_diagnostics(myThid,'ETANSQ  ',0,1,0,1,1,etaN)          call fill_diagnostics(myThid,'ETANSQ  ',0,1,0,1,1,dummys)
34    
35          call fill_diagnostics(myThid,'UVEL    ',0,Nr,0,1,1,uVel)          call fill_diagnostics(myThid,'UVEL    ',0,Nr,0,1,1,uVel)
36          call fill_diagnostics(myThid,'VVEL    ',0,Nr,0,1,1,vVel)          call fill_diagnostics(myThid,'VVEL    ',0,Nr,0,1,1,vVel)
# Line 35  Line 41 
41          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
42          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
43           do K=1,Nr           do K=1,Nr
44            do j = 1-OLy,sNy+Oly            do j = 1,sNy
45            do i = 1-OLx,sNx+Olx            do i = 1,sNx
46             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*uVel(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*uVel(i,j,K,bi,bj)
47            enddo            enddo
48            enddo            enddo
49           enddo           enddo
50          enddo          enddo
51          enddo          enddo
52          call fill_diagnostics(myThid,'UVELSQ  ',0,Nr,0,1,1,uVel)          call fill_diagnostics(myThid,'UVELSQ  ',0,Nr,0,1,1,dummy)
53    
54          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
55          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
56           do K=1,Nr           do K=1,Nr
57            do j = 1-OLy,sNy+Oly            do j = 1,sNy
58            do i = 1-OLx,sNx+Olx            do i = 1,sNx
59             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)
60            enddo            enddo
61            enddo            enddo
62           enddo           enddo
63          enddo          enddo
64          enddo          enddo
65          call fill_diagnostics(myThid,'VVELSQ  ',0,Nr,0,1,1,vVel)          call fill_diagnostics(myThid,'VVELSQ  ',0,Nr,0,1,1,dummy)
66    
67          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
68          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
69           do K=1,Nr           do K=1,Nr
70            do j = 1-OLy,sNy+Oly            do j = 1,sNy
71            do i = 1-OLx,sNx+Olx            do i = 1,sNx
72             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*wVel(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*wVel(i,j,K,bi,bj)
73            enddo            enddo
74            enddo            enddo
75           enddo           enddo
76          enddo          enddo
77          enddo          enddo
78          call fill_diagnostics(myThid,'WVELSQ  ',0,Nr,0,1,1,wVel)          call fill_diagnostics(myThid,'WVELSQ  ',0,Nr,0,1,1,dummy)
79    
80          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
81          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
82           do K=1,Nr           do K=1,Nr
83            do j = 1-OLy,sNy+Oly            do j = 1,sNy
84            do i = 1-OLx,sNx+Olx            do i = 1,sNx
85             dummy(i,j,K,bi,bj) = theta(i,j,K,bi,bj)*theta(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = theta(i,j,K,bi,bj)*theta(i,j,K,bi,bj)
86            enddo            enddo
87            enddo            enddo
88           enddo           enddo
89          enddo          enddo
90          enddo          enddo
91          call fill_diagnostics(myThid,'THETASQ ',0,Nr,0,1,1,theta)          call fill_diagnostics(myThid,'THETASQ ',0,Nr,0,1,1,dummy)
92    
93          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
94          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
95           do K=1,Nr           do K=1,Nr
96            do j = 1-OLy,sNy+Oly            do j = 1,sNy
97            do i = 1-OLx,sNx+Olx            do i = 1,sNx
98             dummy(i,j,K,bi,bj) = salt(i,j,K,bi,bj)*salt(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = salt(i,j,K,bi,bj)*salt(i,j,K,bi,bj)
99            enddo            enddo
100            enddo            enddo
101           enddo           enddo
102          enddo          enddo
103          enddo          enddo
104          call fill_diagnostics(myThid,'SALTSQ  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'SALTSQ  ',0,Nr,0,1,1,dummy)
105    
106          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
107          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
108           do K=1,Nr           do K=1,Nr
109            do j = 1-OLy,sNy+Oly            do j = 1,sNy
110            do i = 1-OLx,sNx+Olx            do i = 1,sNx
111             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*vVel(i,j,K,bi,bj)
112            enddo            enddo
113            enddo            enddo
114           enddo           enddo
115          enddo          enddo
116          enddo          enddo
117          call fill_diagnostics(myThid,'UVELVVEL',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELVVEL',0,Nr,0,1,1,dummy)
118    
119          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
120          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
121           do K=1,Nr           do K=1,Nr
122            do j = 1-OLy,sNy+Oly            do j = 1,sNy
123            do i = 1-OLx,sNx+Olx            do i = 1,sNx
124             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*theta(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
125         &         0.5*(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
126            enddo            enddo
127            enddo            enddo
128           enddo           enddo
129          enddo          enddo
130          enddo          enddo
131          call fill_diagnostics(myThid,'UVELTH  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELTH  ',0,Nr,0,1,1,dummy)
132    
133          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
134          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
135           do K=1,Nr           do K=1,Nr
136            do j = 1-OLy,sNy+Oly            do j = 1,sNy
137            do i = 1-OLx,sNx+Olx            do i = 1,sNx
138             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*theta(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
139         &         0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
140            enddo            enddo
141            enddo            enddo
142           enddo           enddo
143          enddo          enddo
144          enddo          enddo
145          call fill_diagnostics(myThid,'VVELTH  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VVELTH  ',0,Nr,0,1,1,dummy)
146    
147          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
148          do bi = myBxLo(myThid), myBxHi(myThid)           do bi = myBxLo(myThid), myBxHi(myThid)
149           do K=1,Nr            do K=1,Nr
150            do j = 1-OLy,sNy+Oly             km1 = MAX(k-1,1)
151            do i = 1-OLx,sNx+Olx             do j = 1,sNy
152             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*theta(i,j,K,bi,bj)              do i = 1,sNx
153            enddo               dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*
154         &                 (theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
155                enddo
156               enddo
157            enddo            enddo
158           enddo           enddo
159          enddo          enddo
160          enddo          call fill_diagnostics(myThid,'WVELTH  ',0,Nr,0,1,1,dummy)
         call fill_diagnostics(myThid,'WVELTH  ',0,Nr,0,1,1,salt)  
161    
162          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
163          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
164           do K=1,Nr           do K=1,Nr
165            do j = 1-OLy,sNy+Oly            do j = 1,sNy
166            do i = 1-OLx,sNx+Olx            do i = 1,sNx
167             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*salt(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
168         &         0.5*(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
169            enddo            enddo
170            enddo            enddo
171           enddo           enddo
172          enddo          enddo
173          enddo          enddo
174          call fill_diagnostics(myThid,'UVELSLT ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELSLT ',0,Nr,0,1,1,dummy)
175    
176          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
177          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
178           do K=1,Nr           do K=1,Nr
179            do j = 1-OLy,sNy+Oly            do j = 1,sNy
180            do i = 1-OLx,sNx+Olx            do i = 1,sNx
181             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*salt(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
182         &         0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
183            enddo            enddo
184            enddo            enddo
185           enddo           enddo
186          enddo          enddo
187          enddo          enddo
188          call fill_diagnostics(myThid,'VVELSLT ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VVELSLT ',0,Nr,0,1,1,dummy)
189    
190          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
191          do bi = myBxLo(myThid), myBxHi(myThid)           do bi = myBxLo(myThid), myBxHi(myThid)
192           do K=1,Nr            do K=1,Nr
193            do j = 1-OLy,sNy+Oly             km1 = MAX(k-1,1)
194            do i = 1-OLx,sNx+Olx             do j = 1,sNy
195             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*salt(i,j,K,bi,bj)              do i = 1,sNx
196            enddo               dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*
197         &                 (salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
198                enddo
199               enddo
200            enddo            enddo
201           enddo           enddo
202          enddo          enddo
203          enddo          call fill_diagnostics(myThid,'WVELSLT ',0,Nr,0,1,1,dummy)
         call fill_diagnostics(myThid,'WVELSLT ',0,Nr,0,1,1,salt)  
204    
205          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
206          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
207           do K=1,Nr           do K=1,Nr
208            do j = 1-OLy,sNy+Oly            do j = 1,sNy
209            do i = 1-OLx,sNx+Olx            do i = 1,sNx
210             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
211            enddo            enddo
212            enddo            enddo
213           enddo           enddo
214          enddo          enddo
215          enddo          enddo
216          call fill_diagnostics(myThid,'UVELMASS',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELMASS',0,Nr,0,1,1,dummy)
217    
218          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
219          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
220           do K=1,Nr           do K=1,Nr
221            do j = 1-OLy,sNy+Oly            do j = 1,sNy
222            do i = 1-OLx,sNx+Olx            do i = 1,sNx
223             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
224            enddo            enddo
225            enddo            enddo
226           enddo           enddo
227          enddo          enddo
228          enddo          enddo
229          call fill_diagnostics(myThid,'VVELMASS',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VVELMASS',0,Nr,0,1,1,dummy)
230    
231          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
232          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
233           do K=1,Nr           do K=1,Nr
234            do j = 1-OLy,sNy+Oly            do j = 1,sNy
235            do i = 1-OLx,sNx+Olx            do i = 1,sNx
236             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*theta(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
237         .         0.5*(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
238       .                                * hFacW(i,j,K,bi,bj)       .                                * hFacW(i,j,K,bi,bj)
239            enddo            enddo
240            enddo            enddo
241           enddo           enddo
242          enddo          enddo
243          enddo          enddo
244          call fill_diagnostics(myThid,'UTHMASS ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UTHMASS ',0,Nr,0,1,1,dummy)
245    
246          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
247          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
248           do K=1,Nr           do K=1,Nr
249            do j = 1-OLy,sNy+Oly            do j = 1,sNy
250            do i = 1-OLx,sNx+Olx            do i = 1,sNx
251             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*theta(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
252       .                                * hFacW(i,j,K,bi,bj)       .         0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
253         .                                * hFacS(i,j,K,bi,bj)
254            enddo            enddo
255            enddo            enddo
256           enddo           enddo
257          enddo          enddo
258          enddo          enddo
259          call fill_diagnostics(myThid,'VTHMASS ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VTHMASS ',0,Nr,0,1,1,dummy)
260    
261          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
262          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
263           do K=1,Nr           do K=1,Nr
264            do j = 1-OLy,sNy+Oly            do j = 1,sNy
265            do i = 1-OLx,sNx+Olx            do i = 1,sNx
266             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*salt(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*
267         .         0.5*(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
268       .                                * hFacW(i,j,K,bi,bj)       .                                * hFacW(i,j,K,bi,bj)
269            enddo            enddo
270            enddo            enddo
271           enddo           enddo
272          enddo          enddo
273          enddo          enddo
274          call fill_diagnostics(myThid,'USLTMASS',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'USLTMASS',0,Nr,0,1,1,dummy)
275    
276          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
277          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
278           do K=1,Nr           do K=1,Nr
279            do j = 1-OLy,sNy+Oly            do j = 1,sNy
280            do i = 1-OLx,sNx+Olx            do i = 1,sNx
281             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*salt(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*
282       .                                * hFacW(i,j,K,bi,bj)       .         0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
283         .                                * hFacS(i,j,K,bi,bj)
284            enddo            enddo
285            enddo            enddo
286           enddo           enddo
287          enddo          enddo
288          enddo          enddo
289          call fill_diagnostics(myThid,'VSLTMASS',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VSLTMASS',0,Nr,0,1,1,dummy)
290    
291    
292         endif  #endif /* ALLOW_DIAGNOSTICS */
 #endif  
293    
294        return        return
295        end        end

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22