/[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.41 by jmc, Wed Nov 30 20:59:40 2011 UTC revision 1.42 by jmc, Tue Dec 10 22:24:29 2013 UTC
# Line 61  C     == Local variables == Line 61  C     == Local variables ==
61        INTEGER i,j,k,bi,bj        INTEGER i,j,k,bi,bj
62        INTEGER km1        INTEGER km1
63    
       tmpFac = 1. _d 0  
   
64        IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN        IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN
65  C--   fill momentum state-var diagnostics:  C--   fill momentum state-var diagnostics:
66    
# Line 81  C--   fill momentum state-var diagnostic Line 79  C--   fill momentum state-var diagnostic
79           CALL DIAGNOSTICS_FILL(tmp1k,'RSURF   ',0,1,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmp1k,'RSURF   ',0,1,0,1,1,myThid)
80          ENDIF          ENDIF
81    
82          CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( etaN, oneRL, 2,
83       &                              'ETANSQ  ',0, 1,0,1,1,myThid)       &                              'ETANSQ  ',0, 1,0,1,1,myThid)
84    
85  #ifdef EXACT_CONSERV  #ifdef EXACT_CONSERV
86          CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( dEtaHdt, oneRL, 2,
87       &                              'DETADT2 ',0, 1,0,1,1,myThid)       &                              'DETADT2 ',0, 1,0,1,1,myThid)
88  #endif  #endif
89  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
# Line 98  C--   fill momentum state-var diagnostic Line 96  C--   fill momentum state-var diagnostic
96          CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)
97          CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)
98    
99          CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( uVel, oneRL, 2,
100       &                              'UVELSQ  ',0,Nr,0,1,1,myThid)       &                              'UVELSQ  ',0,Nr,0,1,1,myThid)
101          CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( vVel, oneRL, 2,
102       &                              'VVELSQ  ',0,Nr,0,1,1,myThid)       &                              'VVELSQ  ',0,Nr,0,1,1,myThid)
103          CALL DIAGNOSTICS_SCALE_FILL(wVel,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( wVel, oneRL, 2,
104       &                              'WVELSQ  ',0,Nr,0,1,1,myThid)       &                              'WVELSQ  ',0,Nr,0,1,1,myThid)
105    
106  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
# Line 352  C First fill sequence for state variable Line 350  C First fill sequence for state variable
350  C NOTE: send a '0' for the bibjflag and allow counter to be incremented  C NOTE: send a '0' for the bibjflag and allow counter to be incremented
351  C     (next fill for these diagnostics will NOT allow counter to be incremented)  C     (next fill for these diagnostics will NOT allow counter to be incremented)
352    
353          IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN          tmpFac = -86400. _d 0/deltaTMom
354           DO bj = myByLo(myThid), myByHi(myThid)          CALL DIAGNOSTICS_SCALE_FILL( uVel, tmpFac, 1,
355            DO bi = myBxLo(myThid), myBxHi(myThid)       &                              'TOTUTEND',0,Nr,0,1,1,myThid )
356             DO k=1,Nr          CALL DIAGNOSTICS_SCALE_FILL( vVel, tmpFac, 1,
357              DO j = 1,sNy       &                              'TOTVTEND',0,Nr,0,1,1,myThid )
              DO i = 1,sNx+1  
                tmpMk(i,j,k,bi,bj) = -uVel(i,j,k,bi,bj)  
      .                    *86400./dTtracerLev(1)  
              ENDDO  
             ENDDO  
            ENDDO  
           ENDDO  
          ENDDO  
          CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,0,1,1,myThid)  
         ENDIF  
   
         IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN  
          DO bj = myByLo(myThid), myByHi(myThid)  
           DO bi = myBxLo(myThid), myBxHi(myThid)  
            DO k=1,Nr  
             DO j = 1,sNy+1  
              DO i = 1,sNx  
                tmpMk(i,j,k,bi,bj) = -vVel(i,j,k,bi,bj)  
      .                    *86400./dTtracerLev(1)  
              ENDDO  
             ENDDO  
            ENDDO  
           ENDDO  
          ENDDO  
          CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,0,1,1,myThid)  
         ENDIF  
358    
359          IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN
360           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
361            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
362             DO k=1,Nr             DO k=1,Nr
363                tmpFac = -86400. _d 0/dTtracerLev(k)
364              DO j = 1,sNy              DO j = 1,sNy
365               DO i = 1,sNx               DO i = 1,sNx
366                 tmpMk(i,j,k,bi,bj) = -theta(i,j,k,bi,bj)                 tmpMk(i,j,k,bi,bj) = tmpFac*theta(i,j,k,bi,bj)
      .                    *86400./dTtracerLev(1)  
367               ENDDO               ENDDO
368              ENDDO              ENDDO
369             ENDDO             ENDDO
# Line 404  C     (next fill for these diagnostics w Line 376  C     (next fill for these diagnostics w
376           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
377            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
378             DO k=1,Nr             DO k=1,Nr
379                tmpFac = -86400. _d 0/dTtracerLev(k)
380              DO j = 1,sNy              DO j = 1,sNy
381               DO i = 1,sNx               DO i = 1,sNx
382                 tmpMk(i,j,k,bi,bj) = -salt(i,j,k,bi,bj)                 tmpMk(i,j,k,bi,bj) = tmpFac*salt(i,j,k,bi,bj)
      .                    *86400./dTtracerLev(1)  
383               ENDDO               ENDDO
384              ENDDO              ENDDO
385             ENDDO             ENDDO
# Line 449  C--   fill tracer state-var diagnostics: Line 421  C--   fill tracer state-var diagnostics:
421        ENDIF        ENDIF
422  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
423    
424          CALL DIAGNOSTICS_SCALE_FILL(theta,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( theta, oneRL, 2,
425       &                              'THETASQ ',0,Nr,0,1,1,myThid)       &                              'THETASQ ',0,Nr,0,1,1,myThid)
426          CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL( salt, oneRL, 2,
427       &                              'SALTSQ  ',0,Nr,0,1,1,myThid)       &                              'SALTSQ  ',0,Nr,0,1,1,myThid)
428    
429  #ifdef ALLOW_GENERIC_ADVDIFF  #ifdef ALLOW_GENERIC_ADVDIFF
# Line 518  c       ENDIF Line 490  c       ENDIF
490            ENDDO            ENDDO
491           ENDDO           ENDDO
492           CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
493           CALL DIAGNOSTICS_SCALE_FILL(tmpMk,tmpFac,2,           CALL DIAGNOSTICS_SCALE_FILL( tmpMk, oneRL, 2,
494       &                                'SALTSQan',0,Nr,0,1,1,myThid)       &                                'SALTSQan',0,Nr,0,1,1,myThid)
495          ENDIF          ENDIF
496    
# Line 666  C--   fill tracer state-var diagnostics: Line 638  C--   fill tracer state-var diagnostics:
638        IF ( selectVars.EQ.4 ) THEN        IF ( selectVars.EQ.4 ) THEN
639  C Second fill sequence for state variable tendency diagnostics: add state variable  C Second fill sequence for state variable tendency diagnostics: add state variable
640  C NOTE: send a '-1' for the bibjflag and do not increment counter  C NOTE: send a '-1' for the bibjflag and do not increment counter
641  C     (next fill for these diagnostics WILL allow counter to be incremented)  C     (previous fill for these diagnostics DID allow counter to be incremented)
642    
643          IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN          tmpFac = 86400. _d 0/deltaTMom
644           DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
645            DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
646             DO k=1,Nr            CALL DIAGNOSTICS_SCALE_FILL( uVel, tmpFac, 1,
647              DO j = 1,sNy       &                           'TOTUTEND',0,Nr,-1,bi,bj,myThid )
648               DO i = 1,sNx+1            CALL DIAGNOSTICS_SCALE_FILL( vVel, tmpFac, 1,
649                 tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)       &                           'TOTVTEND',0,Nr,-1,bi,bj,myThid )
      .                    *86400./dTtracerLev(1)  
              ENDDO  
             ENDDO  
            ENDDO  
            CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,-1,bi,bj,myThid)  
           ENDDO  
650           ENDDO           ENDDO
651          ENDIF          ENDDO
   
         IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN  
          DO bj = myByLo(myThid), myByHi(myThid)  
           DO bi = myBxLo(myThid), myBxHi(myThid)  
            DO k=1,Nr  
             DO j = 1,sNy+1  
              DO i = 1,sNx  
                tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)  
      .                    *86400./dTtracerLev(1)  
              ENDDO  
             ENDDO  
            ENDDO  
            CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,-1,bi,bj,myThid)  
           ENDDO  
          ENDDO  
         ENDIF  
652    
653          IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN
654           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
655            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
656             DO k=1,Nr             DO k=1,Nr
657                tmpFac = 86400. _d 0/dTtracerLev(k)
658              DO j = 1,sNy              DO j = 1,sNy
659               DO i = 1,sNx               DO i = 1,sNx
660                 tmpMk(i,j,k,bi,bj) = theta(i,j,k,bi,bj)                 tmpMk(i,j,k,bi,bj) = tmpFac*theta(i,j,k,bi,bj)
      .                    *86400./dTtracerLev(1)  
661               ENDDO               ENDDO
662              ENDDO              ENDDO
663             ENDDO             ENDDO
# Line 720  C     (next fill for these diagnostics W Line 670  C     (next fill for these diagnostics W
670           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
671            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
672             DO k=1,Nr             DO k=1,Nr
673                tmpFac = 86400. _d 0/dTtracerLev(k)
674              DO j = 1,sNy              DO j = 1,sNy
675               DO i = 1,sNx               DO i = 1,sNx
676                 tmpMk(i,j,k,bi,bj) = salt(i,j,k,bi,bj)                 tmpMk(i,j,k,bi,bj) = tmpFac*salt(i,j,k,bi,bj)
      .                    *86400./dTtracerLev(1)  
677               ENDDO               ENDDO
678              ENDDO              ENDDO
679             ENDDO             ENDDO

Legend:
Removed from v.1.41  
changed lines
  Added in v.1.42

  ViewVC Help
Powered by ViewVC 1.1.22