/[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.1 - (hide annotations) (download)
Sun Dec 19 00:02:47 2004 UTC (19 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58l_post, checkpoint57t_post, checkpoint57o_post, checkpoint58e_post, checkpoint57v_post, checkpoint57m_post, checkpoint57s_post, checkpoint57k_post, checkpoint57d_post, checkpoint57g_post, checkpoint57b_post, checkpoint57c_pre, checkpoint58r_post, checkpoint57i_post, checkpoint57y_post, checkpoint57e_post, checkpoint58n_post, checkpoint57g_pre, checkpoint58h_post, checkpoint57y_pre, checkpoint57f_pre, checkpoint58q_post, checkpoint58j_post, checkpoint57r_post, checkpoint58, eckpoint57e_pre, checkpoint57h_done, checkpoint58f_post, checkpoint57x_post, checkpoint57n_post, checkpoint58d_post, checkpoint58c_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint57f_post, checkpoint58a_post, checkpoint58i_post, checkpoint57q_post, checkpoint58g_post, checkpoint58o_post, checkpoint57z_post, checkpoint57c_post, checkpoint58k_post, checkpoint58p_post, checkpoint57j_post, checkpoint58b_post, checkpoint57h_pre, checkpoint58m_post, checkpoint57l_post, checkpoint57h_post
move out off EQUIVALENCE all diagnostics that fizhi does not use ;
 NOTE: change diagnostics name: use 2 digits to work with more than 9 tracers

1 jmc 1.1 C $Header: $
2     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     #include "PTRACERS.h"
21     #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     DO iTrc=1,MIN(99,PTRACERS_num)
65     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
66     C-- Set default name & tracer Units:
67     WRITE(locName,'(A,I2,A)') 'Tracer ',iTrc
68     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     WRITE(diagName,'(A,I2.2,A)') 'TRAC',iTrc,' '
90     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     WRITE(diagName,'(A,I2.2,A)') 'UTRAC',iTrc,' '
97     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     WRITE(diagName,'(A,I2.2,A)') 'VTRAC',iTrc,' '
105     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     WRITE(diagName,'(A,I2.2,A)') 'WTRAC',iTrc,' '
113     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     I diagName, diagCode, diagUnits, diagTitle, myThid )
133     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     I diagName, diagCode, diagUnits, diagTitle, myThid )
139     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     I diagName, diagCode, diagUnits, diagTitle, myThid )
145     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     I diagName, diagCode, diagUnits, diagTitle, myThid )
152     diagName = 'DIFx'//diagSufx
153     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     I diagName, diagCode, diagUnits, diagTitle, myThid )
158     diagName = 'DIFy'//diagSufx
159     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     I diagName, diagCode, diagUnits, diagTitle, myThid )
164    
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     I diagName, diagCode, diagUnits, diagTitle, myThid )
171    
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