/[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.2 by jmc, Mon Nov 5 18:49:21 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,N
37        CHARACTER*8 diagname        CHARACTER*8 diagName
38        INTEGER km1        INTEGER km1
39          
40        diagname = '        '        diagName = '        '
41          
42  c     DO N = 1,PTRACERS_numInUse  c     DO N = 1,PTRACERS_numInUse
43  C-    due to format (I2) and diagnostics name limitation,  C-    due to format (I2) and diagnostics name limitation,
44  C      => do not go beyong 99 tracers  C      => do not go beyong 99 tracers
45        DO N = 1,MIN(99,PTRACERS_numInUse)        DO N = 1,MIN(99,PTRACERS_numInUse)
46            
47          diagname = '        '          diagName = '        '
48          WRITE(diagname,'(A4,I2.2)') 'TRAC',N          WRITE(diagName,'(A4,I2.2)') 'TRAC',N
49          CALL DIAGNOSTICS_FILL( ptracer(1-Olx,1-Oly,1,1,1,N), diagname,          CALL DIAGNOSTICS_FILL( pTracer(1-Olx,1-Oly,1,1,1,N), diagName,
50       &                         0,Nr,0,1,1,myThid )       &                         0,Nr,0,1,1,myThid )
51            
52          diagname = '        '          diagName = '        '
53          WRITE(diagname,'(A5,I2.2)') 'UTRAC',N          WRITE(diagName,'(A5,I2.2)') 'UTRAC',N
54          IF ( DIAGNOSTICS_IS_ON(diagname,myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
55           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
56            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
57              DO K=1,Nr              DO k=1,Nr
58                DO j = 1,sNy                DO j = 1,sNy
59                  DO i = 1,sNx                  DO i = 1,sNx+1
60                    dummy(i,j,K,bi,bj) =                    dummy(i,j,k,bi,bj) =
61       &                 uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj) *       &                 uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj) *
62       &                 0.5 _d 0*(ptracer(i,j,K,bi,bj,N)       &                 0.5 _d 0*(pTracer(i,j,k,bi,bj,N)
63       &                       + ptracer(i-1,j,K,bi,bj,N))       &                       + pTracer(i-1,j,k,bi,bj,N))
64                  ENDDO                  ENDDO
65                ENDDO                ENDDO
66              ENDDO              ENDDO
67            ENDDO            ENDDO
68           ENDDO           ENDDO
69           CALL DIAGNOSTICS_FILL( dummy, diagname, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
70          ENDIF          ENDIF
71            
72          diagname = '        '          diagName = '        '
73          WRITE(diagname,'(A5,I2.2)') 'VTRAC',N          WRITE(diagName,'(A5,I2.2)') 'VTRAC',N
74          IF ( DIAGNOSTICS_IS_ON(diagname,myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
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,sNy                DO j = 1,sNy+1
79                  DO i = 1,sNx                  DO i = 1,sNx
80                    dummy(i,j,K,bi,bj) =                    dummy(i,j,k,bi,bj) =
81       &                 vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj) *       &                 vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj) *
82       &                 0.5 _d 0*(ptracer(i,j,K,bi,bj,N)       &                 0.5 _d 0*(pTracer(i,j,k,bi,bj,N)
83       &                       + ptracer(i,j-1,K,bi,bj,N))       &                       + pTracer(i,j-1,k,bi,bj,N))
84                  ENDDO                  ENDDO
85                ENDDO                ENDDO
86              ENDDO              ENDDO
87            ENDDO            ENDDO
88           ENDDO           ENDDO
89           CALL DIAGNOSTICS_FILL( dummy, diagname, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
90          ENDIF          ENDIF
91            
92          diagname = '        '          diagName = '        '
93          WRITE(diagname,'(A5,I2.2)') 'WTRAC',N          WRITE(diagName,'(A5,I2.2)') 'WTRAC',N
94          IF ( DIAGNOSTICS_IS_ON(diagname,myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
95           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
96            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
97              DO K=1,Nr              DO k=1,Nr
98                km1 = MAX(K-1,1)                km1 = MAX(k-1,1)
99                DO j = 1,sNy                DO j = 1,sNy
100                  DO i = 1,sNx                  DO i = 1,sNx
101                    dummy(i,j,K,bi,bj) = wVel(i,j,K,bi,bj) *                    dummy(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) *
102       &                 0.5 _d 0*(ptracer(i,j,K,bi,bj,N)       &                 0.5 _d 0*(pTracer(i,j,k,bi,bj,N)
103       &                       + ptracer(i,j,km1,bi,bj,N))       &                       + pTracer(i,j,km1,bi,bj,N))
104                  ENDDO                  ENDDO
105                ENDDO                ENDDO
106              ENDDO              ENDDO
107            ENDDO            ENDDO
108           ENDDO           ENDDO
109           CALL DIAGNOSTICS_FILL( dummy, diagname, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
110          ENDIF          ENDIF
111            
112        ENDDO        ENDDO
113    
114  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
115    
116        RETURN        RETURN
117        END        END
118    
119  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.2

  ViewVC Help
Powered by ViewVC 1.1.22