/[MITgcm]/MITgcm/pkg/ptracers/ptracers_diagnostics_state.F
ViewVC logotype

Diff of /MITgcm/pkg/ptracers/ptracers_diagnostics_state.F

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

revision 1.1 by jmc, Thu Jun 21 00:32:21 2007 UTC revision 1.3 by jmc, Sat Nov 10 22:09:32 2007 UTC
# Line 12  C     !INTERFACE: Line 12  C     !INTERFACE:
12    
13  C     !DESCRIPTION:  C     !DESCRIPTION:
14  C     Fill-in the diagnostics array for PTRACERS state variables  C     Fill-in the diagnostics array for PTRACERS state variables
15          
16  C     !USES:  C     !USES:
17        IMPLICIT NONE        IMPLICIT NONE
18  #include "SIZE.h"  #include "SIZE.h"
# Line 20  C     !USES: Line 20  C     !USES:
20  #include "GRID.h"  #include "GRID.h"
21  #include "DYNVARS.h"  #include "DYNVARS.h"
22  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
23  #include "PTRACERS.h"  #include "PTRACERS_PARAMS.h"
24    #include "PTRACERS_FIELDS.h"
25    
26  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
27        INTEGER myThid        INTEGER myThid
28  CEOP  CEOP
29    
30  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
# Line 31  CEOP Line 32  CEOP
32  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
33        LOGICAL  DIAGNOSTICS_IS_ON        LOGICAL  DIAGNOSTICS_IS_ON
34        EXTERNAL DIAGNOSTICS_IS_ON        EXTERNAL DIAGNOSTICS_IS_ON
35        _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)
36        INTEGER i,j,K,N,bi,bj        INTEGER i,j,k,bi,bj,iTr
37        CHARACTER*8 diagname        CHARACTER*8 diagName
38        INTEGER km1        INTEGER km1
39          
40        diagname = '        '        diagName = '        '
41          
42  c     DO N = 1,PTRACERS_numInUse        DO iTr = 1,PTRACERS_numInUse
43  C-    due to format (I2) and diagnostics name limitation,  
44  C      => do not go beyong 99 tracers          diagName = '        '
45        DO N = 1,MIN(99,PTRACERS_numInUse)          WRITE(diagName,'(A4,A2)') 'TRAC',PTRACERS_ioLabel(iTr)
46                    CALL DIAGNOSTICS_FILL( pTracer(1-Olx,1-Oly,1,1,1,iTr), diagName,
         diagname = '        '  
         WRITE(diagname,'(A4,I2.2)') 'TRAC',N  
         CALL DIAGNOSTICS_FILL( ptracer(1-Olx,1-Oly,1,1,1,N), diagname,  
47       &                         0,Nr,0,1,1,myThid )       &                         0,Nr,0,1,1,myThid )
48            
49          diagname = '        '          diagName = '        '
50          WRITE(diagname,'(A5,I2.2)') 'UTRAC',N          WRITE(diagName,'(A5,A2)') 'UTRAC',PTRACERS_ioLabel(iTr)
51          IF ( DIAGNOSTICS_IS_ON(diagname,myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
52           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
53            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
54              DO K=1,Nr              DO k=1,Nr
55                DO j = 1,sNy                DO j = 1,sNy
56                  DO i = 1,sNx                  DO i = 1,sNx+1
57                    dummy(i,j,K,bi,bj) =                    dummy(i,j,k,bi,bj) =
58       &                 uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj) *       &                 uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj) *
59       &                 0.5 _d 0*(ptracer(i,j,K,bi,bj,N)       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
60       &                       + ptracer(i-1,j,K,bi,bj,N))       &                          + pTracer(i-1,j,k,bi,bj,iTr) )
61                  ENDDO                  ENDDO
62                ENDDO                ENDDO
63              ENDDO              ENDDO
64            ENDDO            ENDDO
65           ENDDO           ENDDO
66           CALL DIAGNOSTICS_FILL( dummy, diagname, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
67          ENDIF          ENDIF
68            
69          diagname = '        '          diagName = '        '
70          WRITE(diagname,'(A5,I2.2)') 'VTRAC',N          WRITE(diagName,'(A5,A2)') 'VTRAC',PTRACERS_ioLabel(iTr)
71          IF ( DIAGNOSTICS_IS_ON(diagname,myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
72           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
73            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
74              DO K=1,Nr              DO k=1,Nr
75                DO j = 1,sNy                DO j = 1,sNy+1
76                  DO i = 1,sNx                  DO i = 1,sNx
77                    dummy(i,j,K,bi,bj) =                    dummy(i,j,k,bi,bj) =
78       &                 vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj) *       &                 vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj) *
79       &                 0.5 _d 0*(ptracer(i,j,K,bi,bj,N)       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
80       &                       + ptracer(i,j-1,K,bi,bj,N))       &                          + pTracer(i,j-1,k,bi,bj,iTr) )
81                  ENDDO                  ENDDO
82                ENDDO                ENDDO
83              ENDDO              ENDDO
84            ENDDO            ENDDO
85           ENDDO           ENDDO
86           CALL DIAGNOSTICS_FILL( dummy, diagname, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
87          ENDIF          ENDIF
88            
89          diagname = '        '          diagName = '        '
90          WRITE(diagname,'(A5,I2.2)') 'WTRAC',N          WRITE(diagName,'(A5,A2)') 'WTRAC',PTRACERS_ioLabel(iTr)
91          IF ( DIAGNOSTICS_IS_ON(diagname,myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
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                km1 = MAX(K-1,1)                km1 = MAX(k-1,1)
96                DO j = 1,sNy                DO j = 1,sNy
97                  DO i = 1,sNx                  DO i = 1,sNx
98                    dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj) *                    dummy(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) *
99       &                 0.5 _d 0*(ptracer(i,j,K,bi,bj,N)       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
100       &                       + ptracer(i,j,km1,bi,bj,N))       &                          + pTracer(i,j,km1,bi,bj,iTr) )
101                  ENDDO                  ENDDO
102                ENDDO                ENDDO
103              ENDDO              ENDDO
104            ENDDO            ENDDO
105           ENDDO           ENDDO
106           CALL DIAGNOSTICS_FILL( dummy, diagname, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
107          ENDIF          ENDIF
108            
109        ENDDO        ENDDO
110    
111  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
112    
113        RETURN        RETURN
114        END        END
115    
116  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

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

  ViewVC Help
Powered by ViewVC 1.1.22