/[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.3 by jmc, Sat Nov 10 22:09:32 2007 UTC revision 1.4 by jahn, Fri Jun 26 23:10:10 2009 UTC
# Line 8  CBOP 1 Line 8  CBOP 1
8  C     !ROUTINE: PTRACERS_DIAGNOSTICS_STATE  C     !ROUTINE: PTRACERS_DIAGNOSTICS_STATE
9    
10  C     !INTERFACE:  C     !INTERFACE:
11        SUBROUTINE PTRACERS_DIAGNOSTICS_STATE(myThid)        SUBROUTINE PTRACERS_DIAGNOSTICS_STATE(myTime, myIter, myThid)
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
# Line 17  C     !USES: Line 17  C     !USES:
17        IMPLICIT NONE        IMPLICIT NONE
18  #include "SIZE.h"  #include "SIZE.h"
19  #include "EEPARAMS.h"  #include "EEPARAMS.h"
20    #include "PARAMS.h"
21  #include "GRID.h"  #include "GRID.h"
22  #include "DYNVARS.h"  #include "DYNVARS.h"
23  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
24  #include "PTRACERS_PARAMS.h"  #include "PTRACERS_PARAMS.h"
25  #include "PTRACERS_FIELDS.h"  #include "PTRACERS_FIELDS.h"
26    #ifdef ALLOW_LONGSTEP
27    #include "LONGSTEP.h"
28    #endif
29    
30  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
31          _RL     myTime
32          INTEGER myIter
33        INTEGER myThid        INTEGER myThid
34  CEOP  CEOP
35    
# Line 36  C     !LOCAL VARIABLES: Line 42  C     !LOCAL VARIABLES:
42        INTEGER i,j,k,bi,bj,iTr        INTEGER i,j,k,bi,bj,iTr
43        CHARACTER*8 diagName        CHARACTER*8 diagName
44        INTEGER km1        INTEGER km1
45          INTEGER trIter
46    
47        diagName = '        '  #ifdef ALLOW_LONGSTEP
48    C     fill only once every long time step
49    C     have to treat first time step by hand...
50    C     trIter=0 when this routine is called the first time
51          IF ( staggerTimeStep ) THEN
52            trIter = myIter-1
53          ELSE
54            trIter = myIter
55          ENDIF
56          IF ( LS_doTimeStep .OR. trIter.EQ.nIter0 ) THEN
57    #else
58          IF ( .TRUE. ) THEN
59    #endif
60    
61        DO iTr = 1,PTRACERS_numInUse         diagName = '        '
62    
63           DO iTr = 1,PTRACERS_numInUse
64    
65          diagName = '        '          diagName = '        '
66          WRITE(diagName,'(A4,A2)') 'TRAC',PTRACERS_ioLabel(iTr)          WRITE(diagName,'(A4,A2)') 'TRAC',PTRACERS_ioLabel(iTr)
# Line 54  C     !LOCAL VARIABLES: Line 75  C     !LOCAL VARIABLES:
75              DO k=1,Nr              DO k=1,Nr
76                DO j = 1,sNy                DO j = 1,sNy
77                  DO i = 1,sNx+1                  DO i = 1,sNx+1
78    #ifdef ALLOW_LONGSTEP
79    C     at first timestep we don't have averaged velocities yet -
80    C     use initial velocities instead
81                     IF ( trIter.GT.nIter0 ) THEN
82                      dummy(i,j,k,bi,bj) =
83         &                 LS_uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj) *
84         &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
85         &                          + pTracer(i-1,j,k,bi,bj,iTr) )
86                     ELSE
87    #else
88                     IF (.TRUE.) THEN
89    #endif
90                    dummy(i,j,k,bi,bj) =                    dummy(i,j,k,bi,bj) =
91       &                 uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj) *       &                 uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj) *
92       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
93       &                          + pTracer(i-1,j,k,bi,bj,iTr) )       &                          + pTracer(i-1,j,k,bi,bj,iTr) )
94                     ENDIF
95                  ENDDO                  ENDDO
96                ENDDO                ENDDO
97              ENDDO              ENDDO
# Line 74  C     !LOCAL VARIABLES: Line 108  C     !LOCAL VARIABLES:
108              DO k=1,Nr              DO k=1,Nr
109                DO j = 1,sNy+1                DO j = 1,sNy+1
110                  DO i = 1,sNx                  DO i = 1,sNx
111    #ifdef ALLOW_LONGSTEP
112    C     at first timestep we don't have averaged velocities yet -
113    C     use initial velocities instead
114                     IF ( trIter.GT.nIter0 ) THEN
115                      dummy(i,j,k,bi,bj) =
116         &                 LS_vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj) *
117         &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
118         &                          + pTracer(i,j-1,k,bi,bj,iTr) )
119                     ELSE
120    #else
121                     IF (.TRUE.) THEN
122    #endif
123                    dummy(i,j,k,bi,bj) =                    dummy(i,j,k,bi,bj) =
124       &                 vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj) *       &                 vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj) *
125       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
126       &                          + pTracer(i,j-1,k,bi,bj,iTr) )       &                          + pTracer(i,j-1,k,bi,bj,iTr) )
127                     ENDIF
128                  ENDDO                  ENDDO
129                ENDDO                ENDDO
130              ENDDO              ENDDO
# Line 95  C     !LOCAL VARIABLES: Line 142  C     !LOCAL VARIABLES:
142                km1 = MAX(k-1,1)                km1 = MAX(k-1,1)
143                DO j = 1,sNy                DO j = 1,sNy
144                  DO i = 1,sNx                  DO i = 1,sNx
145    #ifdef ALLOW_LONGSTEP
146    C     at first timestep we don't have averaged velocities yet -
147    C     use initial velocities instead
148                     IF ( trIter.GT.nIter0 ) THEN
149                      dummy(i,j,k,bi,bj) = LS_wVel(i,j,k,bi,bj) *
150         &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
151         &                          + pTracer(i,j,km1,bi,bj,iTr) )
152                     ELSE
153    #else
154                     IF (.TRUE.) THEN
155    #endif
156                    dummy(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) *                    dummy(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) *
157       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)       &                 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
158       &                          + pTracer(i,j,km1,bi,bj,iTr) )       &                          + pTracer(i,j,km1,bi,bj,iTr) )
159                     ENDIF
160                  ENDDO                  ENDDO
161                ENDDO                ENDDO
162              ENDDO              ENDDO
# Line 106  C     !LOCAL VARIABLES: Line 165  C     !LOCAL VARIABLES:
165           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )           CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
166          ENDIF          ENDIF
167    
168        ENDDO         ENDDO
169    
170    C     LS_doTimeStep
171          ENDIF
172    
173  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
174    

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

  ViewVC Help
Powered by ViewVC 1.1.22