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

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

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


Revision 1.6 - (hide annotations) (download)
Sun Aug 17 02:09:36 2008 UTC (15 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61c, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.5: +13 -1 lines
new pkg "down_slope".

1 jmc 1.6 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_diagnostics_init.F,v 1.5 2008/02/05 15:34:57 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: PTRACERS_DIAGNOSTICS_INIT
8     C !INTERFACE:
9     SUBROUTINE PTRACERS_DIAGNOSTICS_INIT( myThid )
10     C !DESCRIPTION:
11     C Routine to initialize pTracers diagnostics
12    
13     C !USES:
14     IMPLICIT NONE
15     C === Global variables ===
16     #include "SIZE.h"
17     #include "PTRACERS_SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20 jmc 1.3 #include "PTRACERS_PARAMS.h"
21 jmc 1.1 #include "GAD.h"
22    
23     C !INPUT/OUTPUT PARAMETERS:
24     C === Routine arguments ===
25     C myThid - Number of this instance of PTRACERS_DIAGNOSTICS_INIT
26     INTEGER myThid
27     CEOP
28    
29     #ifdef ALLOW_DIAGNOSTICS
30     C !LOCAL VARIABLES:
31     C === Local variables ===
32     C msgBuf - Informational/error meesage buffer
33     c CHARACTER*(MAX_LEN_MBUF) msgBuf
34    
35     INTEGER diagNum
36 jmc 1.5 INTEGER diagMate
37 jmc 1.1 CHARACTER*8 diagName
38     CHARACTER*16 diagCode
39     CHARACTER*16 diagUnits
40     CHARACTER*(80) diagTitle
41    
42     INTEGER iTrc, ilnb, tracerId
43     CHARACTER*7 trcUnits
44     CHARACTER*9 flxUnits, wUnits
45     CHARACTER*30 locName
46     CHARACTER*4 diagSufx
47     C Functions ::
48     INTEGER ILNBLNK
49     EXTERNAL ILNBLNK
50     CHARACTER*4 GAD_DIAG_SUFX
51     EXTERNAL GAD_DIAG_SUFX
52    
53     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
54    
55     C-- Add diagnostics to the (long) list
56    
57     IF ( usingPCoords ) THEN
58     flxUnits = '.Pa.m^2/s'
59     wUnits = '.Pa/s '
60     ELSE
61     flxUnits = '.m^3/s '
62     wUnits = '.m/s '
63     ENDIF
64    
65 jmc 1.4 DO iTrc=1,PTRACERS_num
66 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
67     C-- Set default name & tracer Units:
68 jmc 1.4 WRITE(locName,'(A,I4,A)') 'Tracer ',iTrc
69 jmc 1.1 trcUnits = '(kg/kg)'
70     C- use name & units from data.ptracers :
71     ilnb = ILNBLNK(PTRACERS_units(iTrc))
72     IF ( ilnb.GE.1 ) THEN
73     ilnb = LEN(trcUnits)
74     trcUnits = PTRACERS_units(iTrc)(1:ilnb)
75     ENDIF
76     ilnb = ILNBLNK(PTRACERS_long_names(iTrc))
77     IF ( ilnb.GE.1 ) THEN
78     ilnb = MIN(LEN(locName),ilnb)
79     WRITE(locName,'(A)') PTRACERS_long_names(iTrc)(1:ilnb)
80     ELSE
81     ilnb = ILNBLNK(PTRACERS_names(iTrc))
82     IF ( ilnb.GE.1 ) THEN
83     ilnb = MIN(LEN(locName),ilnb)
84     WRITE(locName,'(A)') PTRACERS_names(iTrc)(1:ilnb)
85     ENDIF
86     ENDIF
87     ilnb = MAX(ILNBLNK(locName),1)
88    
89     C-- Add diagnostics of Tracer concentration & u,v,w Transport
90 jmc 1.4 WRITE(diagName,'(A4,A2,A2)') 'TRAC',PTRACERS_ioLabel(iTrc),' '
91 jmc 1.1 WRITE(diagTitle,'(2A)') 'Mass-Weighted ', locName(1:ilnb)
92     diagUnits = trcUnits//' '
93     diagCode = 'SM P MR '
94 jmc 1.5 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
95     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
96 jmc 1.1
97 jmc 1.4 WRITE(diagName,'(A5,A2,A1)') 'UTRAC',PTRACERS_ioLabel(iTrc),' '
98 jmc 1.1 WRITE(diagTitle,'(2A)') 'Zonal Mass-Weighted Transp of ',
99     & locName(1:ilnb)
100     diagUnits = trcUnits//'.m/s '
101 jmc 1.5 diagCode = 'UU MR '
102     diagMate = diagNum + 2
103     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
104     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
105 jmc 1.1
106 jmc 1.4 WRITE(diagName,'(A5,A2,A1)') 'VTRAC',PTRACERS_ioLabel(iTrc),' '
107 jmc 1.1 WRITE(diagTitle,'(2A)') 'Merid Mass-Weighted Transp of ',
108     & locName(1:ilnb)
109     diagUnits = trcUnits//'.m/s '
110 jmc 1.5 diagCode = 'VV MR '
111     diagMate = diagNum
112     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
113     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
114 jmc 1.1
115 jmc 1.4 WRITE(diagName,'(A5,A2,A1)') 'WTRAC',PTRACERS_ioLabel(iTrc),' '
116 jmc 1.1 WRITE(diagTitle,'(2A)') 'Vert Mass-Weighted Transp of ',
117     & locName(1:ilnb)
118     diagUnits = trcUnits//wUnits
119     diagCode = 'WM MR '
120 jmc 1.5 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
121     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
122 jmc 1.1
123     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
124     C-- add diagnostics of advective & diffusive flux:
125     diagUnits = trcUnits//flxUnits
126     tracerId = iTrc + GAD_TR1 - 1
127     diagSufx = GAD_DIAG_SUFX( tracerId, myThid )
128    
129     C- Advective flux:
130     diagName = 'ADVr'//diagSufx
131     WRITE(diagTitle,'(2A)') 'Vertical Advective Flux of ',
132     & locName(1:ilnb)
133     diagCode = 'WM LR '
134 jmc 1.5 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
135     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
136 jmc 1.1 diagName = 'ADVx'//diagSufx
137     WRITE(diagTitle,'(2A)') 'Zonal Advective Flux of ',
138     & locName(1:ilnb)
139 jmc 1.5 diagCode = 'UU MR '
140     diagMate = diagNum + 2
141     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
142     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
143 jmc 1.1 diagName = 'ADVy'//diagSufx
144     WRITE(diagTitle,'(2A)') 'Meridional Advective Flux of ',
145     & locName(1:ilnb)
146 jmc 1.5 diagCode = 'VV MR '
147     diagMate = diagNum
148     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
149     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
150    
151 jmc 1.1 C- Diffusive flux:
152     diagName = 'DFrE'//diagSufx
153     WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
154     & locName(1:ilnb)//' (Explicit part)'
155     diagCode = 'WM LR '
156 jmc 1.5 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
157     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
158 jmc 1.2 diagName = 'DFxE'//diagSufx
159 jmc 1.1 WRITE(diagTitle,'(2A)') 'Zonal Diffusive Flux of ',
160     & locName(1:ilnb)
161 jmc 1.5 diagCode = 'UU MR '
162     diagMate = diagNum + 2
163     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
164     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
165 jmc 1.2 diagName = 'DFyE'//diagSufx
166 jmc 1.1 WRITE(diagTitle,'(2A)') 'Meridional Diffusive Flux of ',
167     & locName(1:ilnb)
168 jmc 1.5 diagCode = 'VV MR '
169     diagMate = diagNum
170     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
171     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
172 jmc 1.1
173     diagName = 'DFrI'//diagSufx
174     WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
175     & locName(1:ilnb)//' (Implicit part)'
176     diagCode = 'WM LR '
177 jmc 1.5 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
178     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
179 jmc 1.1
180     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
181 jmc 1.6 C-- add diagnostics for other pkg contribution to ptracer solution
182     IF ( useDOWN_SLOPE ) THEN
183     diagName = 'DSLP'//diagSufx
184     WRITE(diagTitle,'(2A)') locName(1:ilnb),
185     & ' tendency from Down-Slope package'
186     diagCode = 'SM MR '
187     diagUnits = trcUnits//'/s '
188     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
189     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
190     ENDIF
191    
192     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
193 jmc 1.1 ENDDO
194    
195     #endif /* ALLOW_DIAGNOSTICS */
196    
197     RETURN
198     END

  ViewVC Help
Powered by ViewVC 1.1.22