/[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.15 by jmc, Fri Jan 28 01:05:02 2005 UTC revision 1.20 by molod, Fri Jun 17 01:03:56 2005 UTC
# Line 40  C     == Local variables == Line 40  C     == Local variables ==
40        LOGICAL  DIAGNOSTICS_IS_ON        LOGICAL  DIAGNOSTICS_IS_ON
41        EXTERNAL DIAGNOSTICS_IS_ON        EXTERNAL DIAGNOSTICS_IS_ON
42        _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
43          _RL tmpMk1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy)
44        _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
45        INTEGER i,j,K,bi,bj        INTEGER i,j,K,bi,bj
46        INTEGER km1        INTEGER km1
# Line 81  C--   fill momentum state-var diagnostic Line 82  C--   fill momentum state-var diagnostic
82          CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)
83          CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)
84                
85            IF ( DIAGNOSTICS_IS_ON('UVEL_k2 ',myThid) ) THEN
86             DO bj = myByLo(myThid), myByHi(myThid)
87              DO bi = myBxLo(myThid), myBxHi(myThid)
88               DO j = 1,sNy
89                DO i = 1,sNx
90                  tmp1k(i,j,bi,bj) = UVEL(i,j,2,bi,bj)
91                ENDDO
92               ENDDO
93              ENDDO
94             ENDDO
95             CALL DIAGNOSTICS_FILL(tmp1k,'UVEL_k2 ',0,1,0,1,1,myThid)
96            ENDIF
97          
98            IF ( DIAGNOSTICS_IS_ON('VVEL_k2 ',myThid) ) THEN
99             DO bj = myByLo(myThid), myByHi(myThid)
100              DO bi = myBxLo(myThid), myBxHi(myThid)
101               DO j = 1,sNy
102                DO i = 1,sNx
103                  tmp1k(i,j,bi,bj) = VVEL(i,j,2,bi,bj)
104                ENDDO
105               ENDDO
106              ENDDO
107             ENDDO
108             CALL DIAGNOSTICS_FILL(tmp1k,'VVEL_k2 ',0,1,0,1,1,myThid)
109            ENDIF
110          
111          IF ( DIAGNOSTICS_IS_ON('UVELSQ  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELSQ  ',myThid) ) THEN
112           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
113            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 162  C---+----1----+----2----+----3----+----4 Line 189  C---+----1----+----2----+----3----+----4
189           CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)
190          ENDIF          ENDIF
191                
192            IF ( DIAGNOSTICS_IS_ON('WU_VEL  ',myThid) ) THEN
193             DO bj = myByLo(myThid), myByHi(myThid)
194              DO bi = myBxLo(myThid), myBxHi(myThid)
195               DO K=1,Nr
196                km1 = MAX(k-1,1)
197                DO j = 1,sNy
198                 DO i = 1,sNx+1
199                  tmpMk(i,j,K,bi,bj) = 0.25 _d 0
200         &           *(uVel(i,j,km1,bi,bj)+uVel(i,j,K,bi,bj))
201         &           *(wVel(i-1,j,K,bi,bj)*rA(i-1,j,bi,bj)
202         &            +wVel( i ,j,K,bi,bj)*rA( i ,j,bi,bj)
203         &            )*recip_rAw(i,j,bi,bj)
204                 ENDDO
205                ENDDO
206               ENDDO
207              ENDDO
208             ENDDO
209             CALL DIAGNOSTICS_FILL(tmpMk,'WU_VEL  ',0,Nr,0,1,1,myThid)
210            ENDIF
211    
212            IF ( DIAGNOSTICS_IS_ON('WV_VEL  ',myThid) ) THEN
213             DO bj = myByLo(myThid), myByHi(myThid)
214              DO bi = myBxLo(myThid), myBxHi(myThid)
215               DO K=1,Nr
216                km1 = MAX(k-1,1)
217                DO j = 1,sNy+1
218                 DO i = 1,sNx
219                  tmpMk(i,j,K,bi,bj) = 0.25 _d 0
220         &           *(vVel(i,j,km1,bi,bj)+vVel(i,j,K,bi,bj))
221         &           *(wVel(i,j-1,K,bi,bj)*rA(i,j-1,bi,bj)
222         &            +wVel(i, j ,K,bi,bj)*rA(i, j ,bi,bj)
223         &            )*recip_rAs(i,j,bi,bj)
224                 ENDDO
225                ENDDO
226               ENDDO
227              ENDDO
228             ENDDO
229             CALL DIAGNOSTICS_FILL(tmpMk,'WV_VEL  ',0,Nr,0,1,1,myThid)
230            ENDIF
231    
232  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
233    
234          IF ( DIAGNOSTICS_IS_ON('UVELTH  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELTH  ',myThid) ) THEN
# Line 262  C---+----1----+----2----+----3----+----4 Line 329  C---+----1----+----2----+----3----+----4
329           CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
330          ENDIF          ENDIF
331                
332            IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN
333             DO bj = myByLo(myThid), myByHi(myThid)
334              DO bi = myBxLo(myThid), myBxHi(myThid)
335               do j = 1,sNy
336               do i = 1,sNx
337                do K = 1,Nr
338                 tmpMk1(i,j,K,bi,bj) = 0.
339                enddo
340               enddo
341               enddo
342               do j = 1,sNy
343               do i = 1,sNx
344                if(ksurfC(i,j,bi,bj).ne.0.)
345         .          tmpMk1(i,j,ksurfC(i,j,bi,bj),bi,bj) =
346         .                            (Ro_surf(i,j,bi,bj) + etaH(i,j,bi,bj))
347               enddo
348               enddo
349               do j = 1,sNy
350               do i = 1,sNx
351                do K = ksurfC(i,j,bi,bj)+1,Nr+1
352                 tmpMk1(i,j,K,bi,bj) = tmpMk1(i,j,K-1,bi,bj) -
353         .                        drF(K-1)*hfacC(i,j,K-1,bi,bj)
354                enddo
355                do K = 1,Nr
356                 tmpMk(i,j,K,bi,bj) =
357         .           (tmpMk1(i,j,K,bi,bj) + tmpMk1(i,j,K+1,bi,bj)) /2.
358                enddo
359               enddo
360               enddo
361              ENDDO
362             ENDDO
363             CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid)
364            ENDIF
365    
366  C--   fill momentum state-var diagnostics: end  C--   fill momentum state-var diagnostics: end
367        ENDIF        ENDIF
368    
# Line 272  C--   fill tracer state-var diagnostics: Line 373  C--   fill tracer state-var diagnostics:
373    
374          CALL DIAGNOSTICS_FILL(theta,'THETA   ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(theta,'THETA   ',0,Nr,0,1,1,myThid)
375          CALL DIAGNOSTICS_FILL(salt, 'SALT    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(salt, 'SALT    ',0,Nr,0,1,1,myThid)
376          
377            IF ( DIAGNOSTICS_IS_ON('SST     ',myThid) ) THEN
378             DO bj = myByLo(myThid), myByHi(myThid)
379              DO bi = myBxLo(myThid), myBxHi(myThid)
380               DO j = 1,sNy
381                DO i = 1,sNx
382                  tmp1k(i,j,bi,bj) = THETA(i,j,1,bi,bj)
383                ENDDO
384               ENDDO
385              ENDDO
386             ENDDO
387             CALL DIAGNOSTICS_FILL(tmp1k,'SST     ',0,1,0,1,1,myThid)
388            ENDIF
389          
390            IF ( DIAGNOSTICS_IS_ON('SSS     ',myThid) ) THEN
391             DO bj = myByLo(myThid), myByHi(myThid)
392              DO bi = myBxLo(myThid), myBxHi(myThid)
393               DO j = 1,sNy
394                DO i = 1,sNx
395                  tmp1k(i,j,bi,bj) = SALT(i,j,1,bi,bj)
396                ENDDO
397               ENDDO
398              ENDDO
399             ENDDO
400             CALL DIAGNOSTICS_FILL(tmp1k,'SSS     ',0,1,0,1,1,myThid)
401            ENDIF
402    
403          IF ( DIAGNOSTICS_IS_ON('THETASQ ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('THETASQ ',myThid) ) THEN
404           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
# Line 304  C--   fill tracer state-var diagnostics: Line 431  C--   fill tracer state-var diagnostics:
431           CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQ  ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQ  ',0,Nr,0,1,1,myThid)
432          ENDIF          ENDIF
433                
434            IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN
435             DO bj = myByLo(myThid), myByHi(myThid)
436              DO bi = myBxLo(myThid), myBxHi(myThid)
437               DO K=1,Nr
438                DO j = 1,sNy
439                 DO i = 1,sNx
440                   tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)-35
441                 ENDDO
442                ENDDO
443               ENDDO
444              ENDDO
445             ENDDO
446             CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
447            ENDIF
448          
449            IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN
450             DO bj = myByLo(myThid), myByHi(myThid)
451              DO bi = myBxLo(myThid), myBxHi(myThid)
452               DO K=1,Nr
453                DO j = 1,sNy
454                 DO i = 1,sNx
455                   tmpMk(i,j,K,bi,bj) =
456         &               (salt(i,j,K,bi,bj)-35)*(salt(i,j,K,bi,bj)-35)
457                 ENDDO
458                ENDDO
459               ENDDO
460              ENDDO
461             ENDDO
462             CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid)
463            ENDIF
464          
465  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
466    
467          IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.22