/[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.5 by molod, Fri Apr 16 17:50:43 2004 UTC
# Line 1  Line 1 
1         subroutine diagnostics_fill_state(myThid)         subroutine diagnostics_fill_state(myThid)
2           implicit none
3    #include "PACKAGES_CONFIG.h"
4  #include "SIZE.h"  #include "SIZE.h"
5  #include "EEPARAMS.h"  #include "EEPARAMS.h"
6    #include "CPP_OPTIONS.h"
7  #include "GRID.h"  #include "GRID.h"
8  #include "DYNVARS.h"  #include "DYNVARS.h"
9  # ifdef ALLOW_PTRACERS  # ifdef ALLOW_PTRACERS
# Line 11  Line 14 
14        _RL dummy(1-OLx:sNx+Olx,1-Oly:sNy+Oly,Nr,Nsx,Nsy)        _RL dummy(1-OLx:sNx+Olx,1-Oly:sNy+Oly,Nr,Nsx,Nsy)
15        integer i,j,K,bi,bj        integer i,j,K,bi,bj
16    
 #ifdef ALLOW_DIAGNOSTICS  
        if(usediagnostics)then  
17          call fill_diagnostics(myThid,'ETAN    ',0,1,0,1,1,etaN)          call fill_diagnostics(myThid,'ETAN    ',0,1,0,1,1,etaN)
18    
19          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
20          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
21            do j = 1-OLy,sNy+Oly            do j = 1,sNy
22            do i = 1-OLx,sNx+Olx            do i = 1,sNx
23             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)
24            enddo            enddo
25            enddo            enddo
26          enddo          enddo
27          enddo          enddo
28          call fill_diagnostics(myThid,'ETANSQ  ',0,1,0,1,1,etaN)          call fill_diagnostics(myThid,'ETANSQ  ',0,1,0,1,1,dummy)
29    
30          call fill_diagnostics(myThid,'UVEL    ',0,Nr,0,1,1,uVel)          call fill_diagnostics(myThid,'UVEL    ',0,Nr,0,1,1,uVel)
31          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 36 
36          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
37          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
38           do K=1,Nr           do K=1,Nr
39            do j = 1-OLy,sNy+Oly            do j = 1,sNy
40            do i = 1-OLx,sNx+Olx            do i = 1,sNx
41             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)
42            enddo            enddo
43            enddo            enddo
44           enddo           enddo
45          enddo          enddo
46          enddo          enddo
47          call fill_diagnostics(myThid,'UVELSQ  ',0,Nr,0,1,1,uVel)          call fill_diagnostics(myThid,'UVELSQ  ',0,Nr,0,1,1,dummy)
48    
49          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
50          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
51           do K=1,Nr           do K=1,Nr
52            do j = 1-OLy,sNy+Oly            do j = 1,sNy
53            do i = 1-OLx,sNx+Olx            do i = 1,sNx
54             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)
55            enddo            enddo
56            enddo            enddo
57           enddo           enddo
58          enddo          enddo
59          enddo          enddo
60          call fill_diagnostics(myThid,'VVELSQ  ',0,Nr,0,1,1,vVel)          call fill_diagnostics(myThid,'VVELSQ  ',0,Nr,0,1,1,dummy)
61    
62          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
63          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
64           do K=1,Nr           do K=1,Nr
65            do j = 1-OLy,sNy+Oly            do j = 1,sNy
66            do i = 1-OLx,sNx+Olx            do i = 1,sNx
67             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)
68            enddo            enddo
69            enddo            enddo
70           enddo           enddo
71          enddo          enddo
72          enddo          enddo
73          call fill_diagnostics(myThid,'WVELSQ  ',0,Nr,0,1,1,wVel)          call fill_diagnostics(myThid,'WVELSQ  ',0,Nr,0,1,1,dummy)
74    
75          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
76          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
77           do K=1,Nr           do K=1,Nr
78            do j = 1-OLy,sNy+Oly            do j = 1,sNy
79            do i = 1-OLx,sNx+Olx            do i = 1,sNx
80             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)
81            enddo            enddo
82            enddo            enddo
83           enddo           enddo
84          enddo          enddo
85          enddo          enddo
86          call fill_diagnostics(myThid,'THETASQ ',0,Nr,0,1,1,theta)          call fill_diagnostics(myThid,'THETASQ ',0,Nr,0,1,1,dummy)
87    
88          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
89          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
90           do K=1,Nr           do K=1,Nr
91            do j = 1-OLy,sNy+Oly            do j = 1,sNy
92            do i = 1-OLx,sNx+Olx            do i = 1,sNx
93             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)
94            enddo            enddo
95            enddo            enddo
96           enddo           enddo
97          enddo          enddo
98          enddo          enddo
99          call fill_diagnostics(myThid,'SALTSQ  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'SALTSQ  ',0,Nr,0,1,1,dummy)
100    
101          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
102          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
103           do K=1,Nr           do K=1,Nr
104            do j = 1-OLy,sNy+Oly            do j = 1,sNy
105            do i = 1-OLx,sNx+Olx            do i = 1,sNx
106             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)
107            enddo            enddo
108            enddo            enddo
109           enddo           enddo
110          enddo          enddo
111          enddo          enddo
112          call fill_diagnostics(myThid,'UVELVVEL',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELVVEL',0,Nr,0,1,1,dummy)
113    
114          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
115          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
116           do K=1,Nr           do K=1,Nr
117            do j = 1-OLy,sNy+Oly            do j = 1,sNy
118            do i = 1-OLx,sNx+Olx            do i = 1,sNx
119             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)*theta(i,j,K,bi,bj)
120            enddo            enddo
121            enddo            enddo
122           enddo           enddo
123          enddo          enddo
124          enddo          enddo
125          call fill_diagnostics(myThid,'UVELTH  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELTH  ',0,Nr,0,1,1,dummy)
126    
127          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
128          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
129           do K=1,Nr           do K=1,Nr
130            do j = 1-OLy,sNy+Oly            do j = 1,sNy
131            do i = 1-OLx,sNx+Olx            do i = 1,sNx
132             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)*theta(i,j,K,bi,bj)
133            enddo            enddo
134            enddo            enddo
135           enddo           enddo
136          enddo          enddo
137          enddo          enddo
138          call fill_diagnostics(myThid,'VVELTH  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VVELTH  ',0,Nr,0,1,1,dummy)
139    
140          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
141          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
142           do K=1,Nr           do K=2,Nr
143            do j = 1-OLy,sNy+Oly            do j = 1,sNy
144            do i = 1-OLx,sNx+Olx            do i = 1,sNx
145             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*theta(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = 0.
146              enddo
147              enddo
148             enddo
149            enddo
150            enddo
151            do bj = myByLo(myThid), myByHi(myThid)
152            do bi = myBxLo(myThid), myBxHi(myThid)
153             do K=2,Nr
154              do j = 1,sNy
155              do i = 1,sNx
156               dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*
157         .                 (theta(i,j,K,bi,bj)+theta(i,j,K-1,bi,bj))
158            enddo            enddo
159            enddo            enddo
160           enddo           enddo
161          enddo          enddo
162          enddo          enddo
163          call fill_diagnostics(myThid,'WVELTH  ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'WVELTH  ',0,Nr,0,1,1,dummy)
164    
165          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
166          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
167           do K=1,Nr           do K=1,Nr
168            do j = 1-OLy,sNy+Oly            do j = 1,sNy
169            do i = 1-OLx,sNx+Olx            do i = 1,sNx
170             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)*salt(i,j,K,bi,bj)
171            enddo            enddo
172            enddo            enddo
173           enddo           enddo
174          enddo          enddo
175          enddo          enddo
176          call fill_diagnostics(myThid,'UVELSLT ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'UVELSLT ',0,Nr,0,1,1,dummy)
177    
178          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
179          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
180           do K=1,Nr           do K=1,Nr
181            do j = 1-OLy,sNy+Oly            do j = 1,sNy
182            do i = 1-OLx,sNx+Olx            do i = 1,sNx
183             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)*salt(i,j,K,bi,bj)
184            enddo            enddo
185            enddo            enddo
186           enddo           enddo
187          enddo          enddo
188          enddo          enddo
189          call fill_diagnostics(myThid,'VVELSLT ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'VVELSLT ',0,Nr,0,1,1,dummy)
190    
191          do bj = myByLo(myThid), myByHi(myThid)          do bj = myByLo(myThid), myByHi(myThid)
192          do bi = myBxLo(myThid), myBxHi(myThid)          do bi = myBxLo(myThid), myBxHi(myThid)
193           do K=1,Nr           do K=1,Nr
194            do j = 1-OLy,sNy+Oly            do j = 1,sNy
195            do i = 1-OLx,sNx+Olx            do i = 1,sNx
196             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*salt(i,j,K,bi,bj)             dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5*
197         .                 (salt(i,j,K,bi,bj)+salt(i,j,K-1,bi,bj))
198            enddo            enddo
199            enddo            enddo
200           enddo           enddo
201          enddo          enddo
202          enddo          enddo
203          call fill_diagnostics(myThid,'WVELSLT ',0,Nr,0,1,1,salt)          call fill_diagnostics(myThid,'WVELSLT ',0,Nr,0,1,1,dummy)
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
# Line 204  Line 218 
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         .         0.5*(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
253       .                                * hFacW(i,j,K,bi,bj)       .                                * hFacW(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         .         0.5*(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
283       .                                * hFacW(i,j,K,bi,bj)       .                                * hFacW(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    
        endif  
 #endif  
291    
292        return        return
293        end        end

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

  ViewVC Help
Powered by ViewVC 1.1.22