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

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

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

revision 1.6 by jmc, Sat Nov 10 22:10:19 2007 UTC revision 1.7 by jmc, Tue Feb 12 20:26:02 2008 UTC
# Line 25  C     myThid   :: My Thread Id. number Line 25  C     myThid   :: My Thread Id. number
25  CEOP  CEOP
26    
27  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
28    C     ! FUNCTIONS:
29          CHARACTER*4  GAD_DIAG_SUFX
30          CHARACTER*16 DIAGS_MK_UNITS
31          CHARACTER*80 DIAGS_MK_TITLE
32    c     EXTERNAL     GAD_DIAG_SUFX
33          EXTERNAL     DIAGS_MK_UNITS
34          EXTERNAL     DIAGS_MK_TITLE
35    
36  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
37  C     === Local variables ===  C     === Local variables ===
38  C     msgBuf   :: Informational/error meesage buffer  C     msgBuf   :: Informational/error meesage buffer
39  c     CHARACTER*(MAX_LEN_MBUF) msgBuf  c     CHARACTER*(MAX_LEN_MBUF) msgBuf
40    
41        INTEGER       diagNum        INTEGER        diagNum
42        CHARACTER*8   diagName        INTEGER        diagMate
43        CHARACTER*16  diagCode        CHARACTER*8    diagName
44        CHARACTER*16  diagUnits        CHARACTER*16   diagCode
45          CHARACTER*16   diagUnits
46        CHARACTER*(80) diagTitle        CHARACTER*(80) diagTitle
47    
48        CHARACTER*10  flxUnits        CHARACTER*10  flxUnits, trUnits
49        CHARACTER*12  locName        CHARACTER*12  locName
50        CHARACTER*4 GAD_DIAG_SUFX, diagSufx        CHARACTER*4   diagSufx
 c     EXTERNAL    GAD_DIAG_SUFX  
51    
52  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
53    
# Line 52  C--   Add diagnostics to the (long) list Line 60  C--   Add diagnostics to the (long) list
60    
61  C-     add diagnostics of advective & diffusive flux of Temp :  C-     add diagnostics of advective & diffusive flux of Temp :
62         IF ( fluidIsAir ) THEN         IF ( fluidIsAir ) THEN
63           WRITE(diagUnits,'(2A)') 'K',flxUnits           trUnits = 'K'
64         ELSE         ELSE
65           WRITE(diagUnits,'(2A)') 'degC',flxUnits           trUnits = 'degC'
66         ENDIF         ENDIF
67           diagUnits = DIAGS_MK_UNITS( trUnits//flxUnits, myThid )
68         diagSufx = GAD_DIAG_SUFX( GAD_TEMPERATURE, myThid )         diagSufx = GAD_DIAG_SUFX( GAD_TEMPERATURE, myThid )
69    
70  C-     Advective flux:  C-     Advective flux:
71         diagName  = 'ADVr'//diagSufx         diagName  = 'ADVr'//diagSufx
72         diagTitle = 'Vertical   Advective Flux of Pot.Temperature'         diagTitle = 'Vertical   Advective Flux of Pot.Temperature'
73         diagCode  = 'WM      LR      '         diagCode  = 'WM      LR      '
74         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
75       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
76         diagName  = 'ADVx'//diagSufx         diagName  = 'ADVx'//diagSufx
77         diagTitle = 'Zonal      Advective Flux of Pot.Temperature'         diagTitle = 'Zonal      Advective Flux of Pot.Temperature'
78         WRITE(diagCode,'(A,I3.3,A)') 'UU   ',diagNum+2,'MR      '         diagCode  = 'UU      MR      '
79         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum + 2
80       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
81         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
82         diagName  = 'ADVy'//diagSufx         diagName  = 'ADVy'//diagSufx
83         diagTitle = 'Meridional Advective Flux of Pot.Temperature'         diagTitle = 'Meridional Advective Flux of Pot.Temperature'
84         WRITE(diagCode,'(A,I3.3,A)') 'VV   ',diagNum,'MR      '         diagCode  = 'VV      MR      '
85         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum
86       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
87         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
88  C-     Diffusive flux:  C-     Diffusive flux:
89         diagName  = 'DFrE'//diagSufx         diagName  = 'DFrE'//diagSufx
90         diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'         diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'
91       &           //' (Explicit part)'       &           //' (Explicit part)'
92         diagCode  = 'WM      LR      '         diagCode  = 'WM      LR      '
93         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
94       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
95         diagName  = 'DFxE'//diagSufx         diagName  = 'DFxE'//diagSufx
96         diagTitle = 'Zonal      Diffusive Flux of Pot.Temperature'         diagTitle = 'Zonal      Diffusive Flux of Pot.Temperature'
97         WRITE(diagCode,'(A,I3.3,A)') 'UU   ',diagNum+2,'MR      '         diagCode  = 'UU      MR      '
98         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum + 2
99       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
100         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
101         diagName  = 'DFyE'//diagSufx         diagName  = 'DFyE'//diagSufx
102         diagTitle = 'Meridional Diffusive Flux of Pot.Temperature'         diagTitle = 'Meridional Diffusive Flux of Pot.Temperature'
103         WRITE(diagCode,'(A,I3.3,A)') 'VV   ',diagNum,'MR      '         diagCode  = 'VV      MR      '
104         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum
105       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
106         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
107    
108         diagName  = 'DFrI'//diagSufx         diagName  = 'DFrI'//diagSufx
109         diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'         diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'
110       &           //' (Implicit part)'       &           //' (Implicit part)'
111         diagCode  = 'WM      LR      '         diagCode  = 'WM      LR      '
112         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
113       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
114    
115    #ifdef GAD_ALLOW_SOM_ADVECT
116           diagUnits = DIAGS_MK_UNITS( trUnits, myThid )
117    
118           diagName  = 'SM_x'//diagSufx
119           diagTitle = 'Pot.Temp.   1rst Order Moment Sx'
120           diagCode  = 'UM      MR      '
121           diagMate  = diagNum + 2
122           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
123         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
124           diagName  = 'SM_y'//diagSufx
125           diagTitle = 'Pot.Temp.   1rst Order Moment Sy'
126           diagCode  = 'VM      MR      '
127           diagMate  = diagNum
128           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
129         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
130           diagName  = 'SM_z'//diagSufx
131           diagTitle = 'Pot.Temp.   1rst Order Moment Sz'
132           diagCode  = 'SM      MR      '
133           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
134         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
135    
136           diagName  = 'SMxx'//diagSufx
137           diagTitle = 'Pot.Temp.   2nd Order Moment Sxx'
138           diagCode  = 'UM      MR      '
139           diagMate  = diagNum + 2
140           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
141         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
142           diagName  = 'SMyy'//diagSufx
143           diagTitle = 'Pot.Temp.   2nd Order Moment Syy'
144           diagCode  = 'VM      MR      '
145           diagMate  = diagNum
146           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
147         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
148           diagName  = 'SMzz'//diagSufx
149           diagTitle = 'Pot.Temp.   2nd Order Moment Szz'
150           diagCode  = 'SM      MR      '
151           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
152         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
153    
154           diagName  = 'SMxy'//diagSufx
155           diagTitle = 'Pot.Temp.   2nd Order Moment Sxy'
156           diagCode  = 'SM      MR      '
157           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
158         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
159           diagName  = 'SMxz'//diagSufx
160           diagTitle = 'Pot.Temp.   2nd Order Moment Sxz'
161           diagCode  = 'UM      MR      '
162           diagMate  = diagNum + 2
163           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
164         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
165           diagName  = 'SMyz'//diagSufx
166           diagTitle = 'Pot.Temp.   2nd Order Moment Syz'
167           diagCode  = 'VM      MR      '
168           diagMate  = diagNum
169           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
170         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
171    
172           diagUnits = DIAGS_MK_UNITS( '('//trUnits//')^2', myThid )
173           diagName  = 'SM_v'//diagSufx
174           diagTitle = 'Pot.Temp.   sub-grid variance'
175           diagCode  = 'SM P    MR      '
176           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
177         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
178    #endif /* GAD_ALLOW_SOM_ADVECT */
179    
180  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
181    
182  C-     add diagnostics of advective & diffusive flux of Salt :  C-     add diagnostics of advective & diffusive flux of Salt :
183         IF ( fluidIsAir ) THEN         IF ( fluidIsAir ) THEN
184           locName = ' Water-Vapor'           locName = 'Water-Vapor '
185           WRITE(diagUnits,'(2A)') 'g/kg',flxUnits           trUnits = 'g/kg'
186  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
187          IF(useFIZHI)THEN          IF ( useFIZHI ) trUnits = 'kg/kg'
          WRITE(diagUnits,'(2A)') 'kg/kg',flxUnits  
         ENDIF  
188  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
189         ELSE         ELSE
190           locName = ' Salinity   '           locName = 'Salinity    '
191           WRITE(diagUnits,'(2A)') 'psu',flxUnits           trUnits = 'psu'
192         ENDIF         ENDIF
193           diagUnits = DIAGS_MK_UNITS( trUnits//flxUnits, myThid )
194         diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid )         diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid )
195    
196  C-     Advective flux:  C-     Advective flux:
197         diagName  = 'ADVr'//diagSufx         diagName  = 'ADVr'//diagSufx
198         diagTitle = 'Vertical   Advective Flux of'//locName         diagTitle = 'Vertical   Advective Flux of '//locName
199         diagCode  = 'WM      LR      '         diagCode  = 'WM      LR      '
200         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
201       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
202         diagName  = 'ADVx'//diagSufx         diagName  = 'ADVx'//diagSufx
203         diagTitle = 'Zonal      Advective Flux of'//locName         diagTitle = 'Zonal      Advective Flux of '//locName
204         WRITE(diagCode,'(A,I3.3,A)') 'UU   ',diagNum+2,'MR      '         diagCode  = 'UU      MR      '
205         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum + 2
206       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
207         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
208         diagName  = 'ADVy'//diagSufx         diagName  = 'ADVy'//diagSufx
209         diagTitle = 'Meridional Advective Flux of'//locName         diagTitle = 'Meridional Advective Flux of '//locName
210         WRITE(diagCode,'(A,I3.3,A)') 'VV   ',diagNum,'MR      '         diagCode  = 'VV      MR      '
211         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum
212       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
213         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
214  C-     Diffusive flux:  C-     Diffusive flux:
215         diagName  = 'DFrE'//diagSufx         diagName  = 'DFrE'//diagSufx
216         diagTitle = 'Vertical Diffusive Flux of'//locName         diagTitle = 'Vertical Diffusive Flux of '//locName
217       &           // ' (Explicit part)'       &           // '(Explicit part)'
218         diagCode  = 'WM      LR      '         diagCode  = 'WM      LR      '
219         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
220       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
221         diagName  = 'DFxE'//diagSufx         diagName  = 'DFxE'//diagSufx
222         diagTitle = 'Zonal      Diffusive Flux of'//locName         diagTitle = 'Zonal      Diffusive Flux of '//locName
223         WRITE(diagCode,'(A,I3.3,A)') 'UU   ',diagNum+2,'MR      '         diagCode  = 'UU      MR      '
224         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum + 2
225       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
226         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
227         diagName  = 'DFyE'//diagSufx         diagName  = 'DFyE'//diagSufx
228         diagTitle = 'Meridional Diffusive Flux of'//locName         diagTitle = 'Meridional Diffusive Flux of '//locName
229         WRITE(diagCode,'(A,I3.3,A)') 'VV   ',diagNum,'MR      '         diagCode  = 'VV      MR      '
230         CALL DIAGNOSTICS_ADD2LIST( diagNum,         diagMate  = diagNum
231       I              diagName, diagCode, diagUnits, diagTitle, myThid )         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
232         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
233    
234         diagName  = 'DFrI'//diagSufx         diagName  = 'DFrI'//diagSufx
235         diagTitle = 'Vertical Diffusive Flux of'//locName         diagTitle = 'Vertical Diffusive Flux of '//locName
236       &           //' (Implicit part)'       &           //'(Implicit part)'
237         diagCode  = 'WM      LR      '         diagCode  = 'WM      LR      '
238         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
239       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
240    
241         diagName  = 'SALTFILL'         diagName  = 'SALTFILL'
242         diagTitle = 'Filling of Negative Values of'//locName         diagTitle = 'Filling of Negative Values of '//locName
243           diagCode  = 'SM      MR      '
244           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
245         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
246    
247    #ifdef GAD_ALLOW_SOM_ADVECT
248    
249           diagUnits = DIAGS_MK_UNITS( trUnits, myThid )
250    
251           diagName  = 'SM_x'//diagSufx
252           diagTitle = locName//'1rst Order Moment Sx'
253           diagCode  = 'UM      MR      '
254           diagMate  = diagNum + 2
255           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
256         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
257           diagName  = 'SM_y'//diagSufx
258           diagTitle = locName//'1rst Order Moment Sy'
259           diagCode  = 'VM      MR      '
260           diagMate  = diagNum
261           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
262         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
263           diagName  = 'SM_z'//diagSufx
264           diagTitle = locName//'1rst Order Moment Sz'
265           diagCode  = 'SM      MR      '
266           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
267         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
268    
269           diagName  = 'SMxx'//diagSufx
270           diagTitle = locName//'2nd Order Moment Sxx'
271           diagCode  = 'UM      MR      '
272           diagMate  = diagNum + 2
273           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
274         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
275           diagName  = 'SMyy'//diagSufx
276           diagTitle = locName//'2nd Order Moment Syy'
277           diagCode  = 'VM      MR      '
278           diagMate  = diagNum
279           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
280         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
281           diagName  = 'SMzz'//diagSufx
282           diagTitle = locName//'2nd Order Moment Szz'
283           diagCode  = 'SM      MR      '
284           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
285         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
286    
287           diagName  = 'SMxy'//diagSufx
288           diagTitle = locName//'2nd Order Moment Sxy'
289         diagCode  = 'SM      MR      '         diagCode  = 'SM      MR      '
290         CALL DIAGNOSTICS_ADD2LIST( diagNum,         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
291       I              diagName, diagCode, diagUnits, diagTitle, myThid )       I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
292           diagName  = 'SMxz'//diagSufx
293           diagTitle = locName//'2nd Order Moment Sxz'
294           diagCode  = 'UM      MR      '
295           diagMate  = diagNum + 2
296           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
297         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
298           diagName  = 'SMyz'//diagSufx
299           diagTitle = locName//'2nd Order Moment Syz'
300           diagCode  = 'VM      MR      '
301           diagMate  = diagNum
302           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
303         I      diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
304    
305           diagUnits = DIAGS_MK_UNITS( '('//trUnits//')^2', myThid )
306           diagName  = 'SM_v'//diagSufx
307           diagTitle = locName//'sub-grid variance'
308           diagCode  = 'SM P    MR      '
309           CALL DIAGNOSTICS_ADDTOLIST( diagNum,
310         I      diagName, diagCode, diagUnits, diagTitle, 0, myThid )
311    #endif /* GAD_ALLOW_SOM_ADVECT */
312    
313  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
314    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22