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

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

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


Revision 1.2 - (show annotations) (download)
Mon Nov 5 18:49:21 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59j
Changes since 1.1: +50 -49 lines
split PTRACERS.h in 2 header files: PTRACERS_FIELDS.h & PTRACERS_PARAMS.h
fix loop range indices (sNx+1 for U transport, sNy+1 for V transport)

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

  ViewVC Help
Powered by ViewVC 1.1.22