/[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.4 - (hide annotations) (download)
Sat Nov 10 22:09:32 2007 UTC (16 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59m, checkpoint59l, checkpoint59k
Changes since 1.3: +7 -7 lines
use a 2 characters string ioLabel to identify tracers (if more than 99 tracers)

1 jmc 1.4 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_diagnostics_init.F,v 1.3 2007/11/05 18:48:04 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     CHARACTER*8 diagName
37     CHARACTER*16 diagCode
38     CHARACTER*16 diagUnits
39     CHARACTER*(80) diagTitle
40    
41     INTEGER iTrc, ilnb, tracerId
42     CHARACTER*7 trcUnits
43     CHARACTER*9 flxUnits, wUnits
44     CHARACTER*30 locName
45     CHARACTER*4 diagSufx
46     C Functions ::
47     INTEGER ILNBLNK
48     EXTERNAL ILNBLNK
49     CHARACTER*4 GAD_DIAG_SUFX
50     EXTERNAL GAD_DIAG_SUFX
51    
52     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
53    
54     C-- Add diagnostics to the (long) list
55    
56     IF ( usingPCoords ) THEN
57     flxUnits = '.Pa.m^2/s'
58     wUnits = '.Pa/s '
59     ELSE
60     flxUnits = '.m^3/s '
61     wUnits = '.m/s '
62     ENDIF
63    
64 jmc 1.4 DO iTrc=1,PTRACERS_num
65 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
66     C-- Set default name & tracer Units:
67 jmc 1.4 WRITE(locName,'(A,I4,A)') 'Tracer ',iTrc
68 jmc 1.1 trcUnits = '(kg/kg)'
69     C- use name & units from data.ptracers :
70     ilnb = ILNBLNK(PTRACERS_units(iTrc))
71     IF ( ilnb.GE.1 ) THEN
72     ilnb = LEN(trcUnits)
73     trcUnits = PTRACERS_units(iTrc)(1:ilnb)
74     ENDIF
75     ilnb = ILNBLNK(PTRACERS_long_names(iTrc))
76     IF ( ilnb.GE.1 ) THEN
77     ilnb = MIN(LEN(locName),ilnb)
78     WRITE(locName,'(A)') PTRACERS_long_names(iTrc)(1:ilnb)
79     ELSE
80     ilnb = ILNBLNK(PTRACERS_names(iTrc))
81     IF ( ilnb.GE.1 ) THEN
82     ilnb = MIN(LEN(locName),ilnb)
83     WRITE(locName,'(A)') PTRACERS_names(iTrc)(1:ilnb)
84     ENDIF
85     ENDIF
86     ilnb = MAX(ILNBLNK(locName),1)
87    
88     C-- Add diagnostics of Tracer concentration & u,v,w Transport
89 jmc 1.4 WRITE(diagName,'(A4,A2,A2)') 'TRAC',PTRACERS_ioLabel(iTrc),' '
90 jmc 1.1 WRITE(diagTitle,'(2A)') 'Mass-Weighted ', locName(1:ilnb)
91     diagUnits = trcUnits//' '
92     diagCode = 'SM P MR '
93     CALL DIAGNOSTICS_ADD2LIST( diagNum,
94     I diagName, diagCode, diagUnits, diagTitle, myThid )
95    
96 jmc 1.4 WRITE(diagName,'(A5,A2,A1)') 'UTRAC',PTRACERS_ioLabel(iTrc),' '
97 jmc 1.1 WRITE(diagTitle,'(2A)') 'Zonal Mass-Weighted Transp of ',
98     & locName(1:ilnb)
99     diagUnits = trcUnits//'.m/s '
100     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
101     CALL DIAGNOSTICS_ADD2LIST( diagNum,
102     I diagName, diagCode, diagUnits, diagTitle, myThid )
103    
104 jmc 1.4 WRITE(diagName,'(A5,A2,A1)') 'VTRAC',PTRACERS_ioLabel(iTrc),' '
105 jmc 1.1 WRITE(diagTitle,'(2A)') 'Merid Mass-Weighted Transp of ',
106     & locName(1:ilnb)
107     diagUnits = trcUnits//'.m/s '
108     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
109     CALL DIAGNOSTICS_ADD2LIST( diagNum,
110     I diagName, diagCode, diagUnits, diagTitle, myThid )
111    
112 jmc 1.4 WRITE(diagName,'(A5,A2,A1)') 'WTRAC',PTRACERS_ioLabel(iTrc),' '
113 jmc 1.1 WRITE(diagTitle,'(2A)') 'Vert Mass-Weighted Transp of ',
114     & locName(1:ilnb)
115     diagUnits = trcUnits//wUnits
116     diagCode = 'WM MR '
117     CALL DIAGNOSTICS_ADD2LIST( diagNum,
118     I diagName, diagCode, diagUnits, diagTitle, myThid )
119    
120     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
121     C-- add diagnostics of advective & diffusive flux:
122     diagUnits = trcUnits//flxUnits
123     tracerId = iTrc + GAD_TR1 - 1
124     diagSufx = GAD_DIAG_SUFX( tracerId, myThid )
125    
126     C- Advective flux:
127     diagName = 'ADVr'//diagSufx
128     WRITE(diagTitle,'(2A)') 'Vertical Advective Flux of ',
129     & locName(1:ilnb)
130     diagCode = 'WM LR '
131     CALL DIAGNOSTICS_ADD2LIST( diagNum,
132 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
133 jmc 1.1 diagName = 'ADVx'//diagSufx
134     WRITE(diagTitle,'(2A)') 'Zonal Advective Flux of ',
135     & locName(1:ilnb)
136     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
137     CALL DIAGNOSTICS_ADD2LIST( diagNum,
138 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
139 jmc 1.1 diagName = 'ADVy'//diagSufx
140     WRITE(diagTitle,'(2A)') 'Meridional Advective Flux of ',
141     & locName(1:ilnb)
142     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
143     CALL DIAGNOSTICS_ADD2LIST( diagNum,
144 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
145 jmc 1.1 C- Diffusive flux:
146     diagName = 'DFrE'//diagSufx
147     WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
148     & locName(1:ilnb)//' (Explicit part)'
149     diagCode = 'WM LR '
150     CALL DIAGNOSTICS_ADD2LIST( diagNum,
151 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
152 jmc 1.2 diagName = 'DFxE'//diagSufx
153 jmc 1.1 WRITE(diagTitle,'(2A)') 'Zonal Diffusive Flux of ',
154     & locName(1:ilnb)
155     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
156     CALL DIAGNOSTICS_ADD2LIST( diagNum,
157 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
158 jmc 1.2 diagName = 'DFyE'//diagSufx
159 jmc 1.1 WRITE(diagTitle,'(2A)') 'Meridional Diffusive Flux of ',
160     & locName(1:ilnb)
161     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
162     CALL DIAGNOSTICS_ADD2LIST( diagNum,
163 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
164 jmc 1.1
165     diagName = 'DFrI'//diagSufx
166     WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
167     & locName(1:ilnb)//' (Implicit part)'
168     diagCode = 'WM LR '
169     CALL DIAGNOSTICS_ADD2LIST( diagNum,
170 jmc 1.3 I diagName, diagCode, diagUnits, diagTitle, myThid )
171 jmc 1.1
172     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
173     ENDDO
174    
175     #endif /* ALLOW_DIAGNOSTICS */
176    
177     RETURN
178     END

  ViewVC Help
Powered by ViewVC 1.1.22