/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_diagnostics_init.F
ViewVC logotype

Annotation of /MITgcm/pkg/generic_advdiff/gad_diagnostics_init.F

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


Revision 1.3 - (hide annotations) (download)
Sun Nov 19 22:04:10 2006 UTC (17 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: mitgcm_mapl_00, checkpoint58u_post, checkpoint58w_post, checkpoint58x_post, checkpoint58t_post, checkpoint58v_post, checkpoint58s_post
Changes since 1.2: +5 -5 lines
rename some diagnostics:
s/DIFx/DFxE/g
s/DIFy/DFyE/g

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_diagnostics_init.F,v 1.2 2006/06/05 17:17:31 molod Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "GAD_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: GAD_INIT
8     C !INTERFACE:
9     SUBROUTINE GAD_DIAGNOSTICS_INIT( myThid )
10     C !DESCRIPTION:
11     C Routine to initialize Generic Advection/Diffusion diagnostics
12    
13     C !USES:
14     IMPLICIT NONE
15     C === Global variables ===
16     #include "SIZE.h"
17     #include "EEPARAMS.h"
18     #include "PARAMS.h"
19     #include "GAD.h"
20    
21     C !INPUT/OUTPUT PARAMETERS:
22     C === Routine arguments ===
23     C myThid - Number of this instance of GAD_INIT
24     INTEGER myThid
25     CEOP
26    
27     #ifdef ALLOW_DIAGNOSTICS
28     C !LOCAL VARIABLES:
29     C === Local variables ===
30     C msgBuf - Informational/error meesage buffer
31     c CHARACTER*(MAX_LEN_MBUF) msgBuf
32    
33     INTEGER diagNum
34     CHARACTER*8 diagName
35     CHARACTER*16 diagCode
36     CHARACTER*16 diagUnits
37     CHARACTER*(80) diagTitle
38    
39     CHARACTER*10 flxUnits
40     CHARACTER*12 locName
41     CHARACTER*4 GAD_DIAG_SUFX, diagSufx
42     c EXTERNAL GAD_DIAG_SUFX
43    
44     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
45    
46     C-- Add diagnostics to the (long) list
47     IF ( usingPCoords ) THEN
48     flxUnits = '.Pa.m^2/s '
49     ELSE
50     flxUnits = '.m^3/s '
51     ENDIF
52    
53     C- add diagnostics of advective & diffusive flux of Temp :
54     IF ( fluidIsAir ) THEN
55     WRITE(diagUnits,'(2A)') 'K',flxUnits
56     ELSE
57     WRITE(diagUnits,'(2A)') 'degC',flxUnits
58     ENDIF
59     diagSufx = GAD_DIAG_SUFX( GAD_TEMPERATURE, myThid )
60    
61     C- Advective flux:
62     diagName = 'ADVr'//diagSufx
63     diagTitle = 'Vertical Advective Flux of Pot.Temperature'
64     diagCode = 'WM LR '
65     CALL DIAGNOSTICS_ADD2LIST( diagNum,
66     I diagName, diagCode, diagUnits, diagTitle, myThid )
67     diagName = 'ADVx'//diagSufx
68     diagTitle = 'Zonal Advective Flux of Pot.Temperature'
69     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
70     CALL DIAGNOSTICS_ADD2LIST( diagNum,
71     I diagName, diagCode, diagUnits, diagTitle, myThid )
72     diagName = 'ADVy'//diagSufx
73     diagTitle = 'Meridional Advective Flux of Pot.Temperature'
74     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
75     CALL DIAGNOSTICS_ADD2LIST( diagNum,
76     I diagName, diagCode, diagUnits, diagTitle, myThid )
77     C- Diffusive flux:
78     diagName = 'DFrE'//diagSufx
79     diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'
80     & //' (Explicit part)'
81     diagCode = 'WM LR '
82     CALL DIAGNOSTICS_ADD2LIST( diagNum,
83     I diagName, diagCode, diagUnits, diagTitle, myThid )
84 jmc 1.3 diagName = 'DFxE'//diagSufx
85 jmc 1.1 diagTitle = 'Zonal Diffusive Flux of Pot.Temperature'
86     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
87     CALL DIAGNOSTICS_ADD2LIST( diagNum,
88     I diagName, diagCode, diagUnits, diagTitle, myThid )
89 jmc 1.3 diagName = 'DFyE'//diagSufx
90 jmc 1.1 diagTitle = 'Meridional Diffusive Flux of Pot.Temperature'
91     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
92     CALL DIAGNOSTICS_ADD2LIST( diagNum,
93     I diagName, diagCode, diagUnits, diagTitle, myThid )
94    
95     diagName = 'DFrI'//diagSufx
96     diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'
97     & //' (Implicit part)'
98     diagCode = 'WM LR '
99     CALL DIAGNOSTICS_ADD2LIST( diagNum,
100     I diagName, diagCode, diagUnits, diagTitle, myThid )
101    
102     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
103    
104     C- add diagnostics of advective & diffusive flux of Salt :
105     IF ( fluidIsAir ) THEN
106     locName = ' Water-Vapor'
107     WRITE(diagUnits,'(2A)') 'g/kg',flxUnits
108 molod 1.2 #ifdef ALLOW_FIZHI
109     IF(useFIZHI)THEN
110     WRITE(diagUnits,'(2A)') 'kg/kg',flxUnits
111     ENDIF
112     #endif /* ALLOW_FIZHI */
113 jmc 1.1 ELSE
114     locName = ' Salinity '
115     WRITE(diagUnits,'(2A)') 'psu',flxUnits
116     ENDIF
117     diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid )
118    
119     C- Advective flux:
120     diagName = 'ADVr'//diagSufx
121     diagTitle = 'Vertical Advective Flux of'//locName
122     diagCode = 'WM LR '
123     CALL DIAGNOSTICS_ADD2LIST( diagNum,
124     I diagName, diagCode, diagUnits, diagTitle, myThid )
125     diagName = 'ADVx'//diagSufx
126     diagTitle = 'Zonal Advective Flux of'//locName
127     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
128     CALL DIAGNOSTICS_ADD2LIST( diagNum,
129     I diagName, diagCode, diagUnits, diagTitle, myThid )
130     diagName = 'ADVy'//diagSufx
131     diagTitle = 'Meridional Advective Flux of'//locName
132     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
133     CALL DIAGNOSTICS_ADD2LIST( diagNum,
134     I diagName, diagCode, diagUnits, diagTitle, myThid )
135     C- Diffusive flux:
136     diagName = 'DFrE'//diagSufx
137     diagTitle = 'Vertical Diffusive Flux of'//locName
138     & // ' (Explicit part)'
139     diagCode = 'WM LR '
140     CALL DIAGNOSTICS_ADD2LIST( diagNum,
141     I diagName, diagCode, diagUnits, diagTitle, myThid )
142 jmc 1.3 diagName = 'DFxE'//diagSufx
143 jmc 1.1 diagTitle = 'Zonal Diffusive Flux of'//locName
144     WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
145     CALL DIAGNOSTICS_ADD2LIST( diagNum,
146     I diagName, diagCode, diagUnits, diagTitle, myThid )
147 jmc 1.3 diagName = 'DFyE'//diagSufx
148 jmc 1.1 diagTitle = 'Meridional Diffusive Flux of'//locName
149     WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
150     CALL DIAGNOSTICS_ADD2LIST( diagNum,
151     I diagName, diagCode, diagUnits, diagTitle, myThid )
152    
153     diagName = 'DFrI'//diagSufx
154     diagTitle = 'Vertical Diffusive Flux of'//locName
155     & //' (Implicit part)'
156     diagCode = 'WM LR '
157     CALL DIAGNOSTICS_ADD2LIST( diagNum,
158     I diagName, diagCode, diagUnits, diagTitle, myThid )
159    
160 molod 1.2 diagName = 'SALTFILL'
161     diagTitle = 'Filling of Negative Values of'//locName
162     diagCode = 'SM MR '
163     CALL DIAGNOSTICS_ADD2LIST( diagNum,
164     I diagName, diagCode, diagUnits, diagTitle, myThid )
165    
166 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
167    
168     #endif /* ALLOW_DIAGNOSTICS */
169    
170     RETURN
171     END
172    
173     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
174    
175     CBOP 0
176     C !ROUTINE: GAD_DIAG_SUFX
177    
178     C !INTERFACE:
179     CHARACTER*4 FUNCTION GAD_DIAG_SUFX( tracerId, myThid )
180    
181     C !DESCRIPTION:
182     C *==========================================================*
183     C | FUNCTION GAD_DIAG_SUFX
184     C | o Return diagnostic suffix (4 character long) for the
185     C | "tracerId" tracer (used to build diagnostic names).
186     C *==========================================================*
187    
188     C !USES:
189     IMPLICIT NONE
190     #include "EEPARAMS.h"
191     #include "GAD.h"
192    
193     C !INPUT PARAMETERS:
194     C tracerId :: tracer identifier
195     C myThid :: my thread Id number
196     INTEGER tracerId
197     INTEGER myThid
198     CEOP
199    
200     C !LOCAL VARIABLES:
201    
202     C-- Set diagnostic suffix (4 character long) for the "tracerId" tracer
203     IF ( tracerId.EQ.GAD_TEMPERATURE ) THEN
204     GAD_DIAG_SUFX = '_TH '
205     ELSEIF( tracerId.EQ.GAD_SALINITY ) THEN
206     GAD_DIAG_SUFX = '_SLT'
207     ELSEIF( tracerId.GE.GAD_TR1
208     & .AND. tracerId.LT.100 ) THEN
209     WRITE(GAD_DIAG_SUFX,'(A,I2.2)') 'Tr',tracerId + 1-GAD_TR1
210     ELSE
211     GAD_DIAG_SUFX = 'aaaa'
212     ENDIF
213    
214     RETURN
215     END

  ViewVC Help
Powered by ViewVC 1.1.22