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

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

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


Revision 1.4 - (hide annotations) (download)
Fri Jun 26 23:10:10 2009 UTC (14 years, 11 months ago) by jahn
Branch: MAIN
CVS Tags: checkpoint62, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61s, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.3: +67 -5 lines
add package longstep

1 jahn 1.4 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_diagnostics_state.F,v 1.3 2007/11/10 22:09:32 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7     CBOP 1
8     C !ROUTINE: PTRACERS_DIAGNOSTICS_STATE
9    
10     C !INTERFACE:
11 jahn 1.4 SUBROUTINE PTRACERS_DIAGNOSTICS_STATE(myTime, myIter, myThid)
12 jmc 1.1
13     C !DESCRIPTION:
14     C Fill-in the diagnostics array for PTRACERS state variables
15 jmc 1.2
16 jmc 1.1 C !USES:
17     IMPLICIT NONE
18     #include "SIZE.h"
19     #include "EEPARAMS.h"
20 jahn 1.4 #include "PARAMS.h"
21 jmc 1.1 #include "GRID.h"
22     #include "DYNVARS.h"
23     #include "PTRACERS_SIZE.h"
24 jmc 1.2 #include "PTRACERS_PARAMS.h"
25     #include "PTRACERS_FIELDS.h"
26 jahn 1.4 #ifdef ALLOW_LONGSTEP
27     #include "LONGSTEP.h"
28     #endif
29 jmc 1.1
30     C !INPUT PARAMETERS:
31 jahn 1.4 _RL myTime
32     INTEGER myIter
33 jmc 1.2 INTEGER myThid
34 jmc 1.1 CEOP
35    
36     #ifdef ALLOW_DIAGNOSTICS
37    
38     C !LOCAL VARIABLES:
39     LOGICAL DIAGNOSTICS_IS_ON
40     EXTERNAL DIAGNOSTICS_IS_ON
41 jmc 1.2 _RL dummy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
42 jmc 1.3 INTEGER i,j,k,bi,bj,iTr
43 jmc 1.2 CHARACTER*8 diagName
44 jmc 1.1 INTEGER km1
45 jahn 1.4 INTEGER trIter
46 jmc 1.2
47 jahn 1.4 #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 jmc 1.2
61 jahn 1.4 diagName = ' '
62    
63     DO iTr = 1,PTRACERS_numInUse
64 jmc 1.2
65     diagName = ' '
66 jmc 1.3 WRITE(diagName,'(A4,A2)') 'TRAC',PTRACERS_ioLabel(iTr)
67     CALL DIAGNOSTICS_FILL( pTracer(1-Olx,1-Oly,1,1,1,iTr), diagName,
68 jmc 1.1 & 0,Nr,0,1,1,myThid )
69 jmc 1.2
70     diagName = ' '
71 jmc 1.3 WRITE(diagName,'(A5,A2)') 'UTRAC',PTRACERS_ioLabel(iTr)
72 jmc 1.2 IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
73 jmc 1.1 DO bj = myByLo(myThid), myByHi(myThid)
74     DO bi = myBxLo(myThid), myBxHi(myThid)
75 jmc 1.2 DO k=1,Nr
76 jmc 1.1 DO j = 1,sNy
77 jmc 1.2 DO i = 1,sNx+1
78 jahn 1.4 #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 jmc 1.2 dummy(i,j,k,bi,bj) =
91     & uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj) *
92 jmc 1.3 & 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
93     & + pTracer(i-1,j,k,bi,bj,iTr) )
94 jahn 1.4 ENDIF
95 jmc 1.1 ENDDO
96     ENDDO
97     ENDDO
98     ENDDO
99     ENDDO
100 jmc 1.2 CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
101 jmc 1.1 ENDIF
102 jmc 1.2
103     diagName = ' '
104 jmc 1.3 WRITE(diagName,'(A5,A2)') 'VTRAC',PTRACERS_ioLabel(iTr)
105 jmc 1.2 IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
106 jmc 1.1 DO bj = myByLo(myThid), myByHi(myThid)
107     DO bi = myBxLo(myThid), myBxHi(myThid)
108 jmc 1.2 DO k=1,Nr
109     DO j = 1,sNy+1
110 jmc 1.1 DO i = 1,sNx
111 jahn 1.4 #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 jmc 1.2 dummy(i,j,k,bi,bj) =
124     & vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj) *
125 jmc 1.3 & 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
126     & + pTracer(i,j-1,k,bi,bj,iTr) )
127 jahn 1.4 ENDIF
128 jmc 1.1 ENDDO
129     ENDDO
130     ENDDO
131     ENDDO
132     ENDDO
133 jmc 1.2 CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
134 jmc 1.1 ENDIF
135 jmc 1.2
136     diagName = ' '
137 jmc 1.3 WRITE(diagName,'(A5,A2)') 'WTRAC',PTRACERS_ioLabel(iTr)
138 jmc 1.2 IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN
139 jmc 1.1 DO bj = myByLo(myThid), myByHi(myThid)
140     DO bi = myBxLo(myThid), myBxHi(myThid)
141 jmc 1.2 DO k=1,Nr
142     km1 = MAX(k-1,1)
143 jmc 1.1 DO j = 1,sNy
144     DO i = 1,sNx
145 jahn 1.4 #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 jmc 1.2 dummy(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) *
157 jmc 1.3 & 0.5 _d 0*( pTracer(i,j,k,bi,bj,iTr)
158     & + pTracer(i,j,km1,bi,bj,iTr) )
159 jahn 1.4 ENDIF
160 jmc 1.1 ENDDO
161     ENDDO
162     ENDDO
163     ENDDO
164     ENDDO
165 jmc 1.2 CALL DIAGNOSTICS_FILL( dummy, diagName, 0,Nr,0,1,1,myThid )
166 jmc 1.1 ENDIF
167 jmc 1.2
168 jahn 1.4 ENDDO
169    
170     C LS_doTimeStep
171     ENDIF
172 jmc 1.1
173     #endif /* ALLOW_DIAGNOSTICS */
174    
175 jmc 1.2 RETURN
176 jmc 1.1 END
177    
178     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22