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

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

  ViewVC Help
Powered by ViewVC 1.1.22