/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_init_early.F
ViewVC logotype

Annotation of /MITgcm/pkg/diagnostics/diagnostics_init_early.F

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


Revision 1.13 - (hide annotations) (download)
Tue Feb 5 15:13:01 2008 UTC (16 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59o, checkpoint59n, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a
Changes since 1.12: +5 -3 lines
In order to deal with large number of diagnostics (happens with large number
of tracers), store diagnostic mate number in dedicate array "hdiag":
- new version of S/R DIAGNOSTICS_ADD2LIST : DIAGNOSTICS_ADDTOLIST
  with 1 more argument (mate number).
- change old version of DIAGNOSTICS_ADD2LIST to extract mate number
  from parsing code and then call DIAGNOSTICS_ADDTOLIST
- modify setting, filling & output to use "hdiag" instead of reading
  mate number from gdiag.

1 jmc 1.13 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_init_early.F,v 1.12 2006/07/30 01:19:18 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "DIAG_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7     CBOP 0
8     C !ROUTINE: DIAGNOSTICS_INIT_EARLY
9    
10     C !INTERFACE:
11     SUBROUTINE DIAGNOSTICS_INIT_EARLY( myThid )
12    
13     C !DESCRIPTION:
14     C Initialize available diagnostics list: set the following attributes:
15     C name (=cdiag), parsing code (=gdiag), units (=udiag), and title (=tdiag)
16 jmc 1.11 C Note: 1) diagnostics defined here are not presently filled. To use
17     C one of them, one just needs to add a call to S/R DIAGNOSTICS_FILL
18     C with the diagnostic name 'SDIAG...' or 'UDIAG...'
19 jmc 1.1 C 2) GDIAG is defined as character*16 and can be to character*1
20     C parse(16) with the following codes currently defined:
21    
22     C \begin{center}
23     C \begin{tabular}[h]{|c|c|}\hline
24     C \textbf{Positions} & \textbf{Characters}
25     C & \textbf{Meanings} \\\hline
26     C parse(1) & S & scalar \\
27 jmc 1.3 C & U & vector component in X direction \\
28     C & V & vector component in Y direction \\
29     C & W & vector component in vertical direction \\
30 jmc 1.1 C parse(2) & U & C-grid U-Point \\
31     C & V & C-grid V-Point \\
32     C & M & C-grid Mass Point \\
33     C & Z & C-grid Corner Point \\
34     C parse(3) & -- & --Unused-- \\
35     C parse(4) & P & positive definite \\
36     C parse(5 ) & C & with counter array \\
37     C & D & disable an array for output \\
38     C parse(6--8) & '123' & 3-digit mate number \\
39     C parse(9) & U & model-level plus 1/2 \\
40     C & M & model-level middle \\
41     C & L & model-level minus 1/2 \\
42     C parse(10) & 0 & levels = 0 \\
43     C & 1 & levels = 1 \\
44     C & R & levels = Nr \\
45     C & L & levels = MAX(Nr,NrPhys) \\
46     C & M & levels = MAX(Nr,NrPhys) - 1 \\
47 jmc 1.7 C & G & levels = Ground_level Number \\
48     C & I & levels = sea-Ice_level Number \\
49 jmc 1.1 C \end{tabular}
50     C \end{center}
51    
52     C !USES:
53 jmc 1.12 IMPLICIT NONE
54 jmc 1.1 #include "SIZE.h"
55     #include "EEPARAMS.h"
56     #include "PARAMS.h"
57     #include "DIAGNOSTICS_SIZE.h"
58     #include "DIAGNOSTICS.h"
59    
60     C !INPUT PARAMETERS:
61 jmc 1.12 INTEGER myThid
62 jmc 1.1 CEOP
63    
64 jmc 1.12 C !LOCAL VARIABLES:
65     INTEGER n
66 jmc 1.1
67 jmc 1.12 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
68    
69     _BEGIN_MASTER( myThid )
70    
71     DO n=1,ndiagMax
72 jmc 1.1 kdiag(n) = 0
73 jmc 1.13 hdiag(n) = 0
74 jmc 1.1 cdiag(n) = ' '
75     gdiag(n) = ' '
76     udiag(n) = ' '
77     tdiag(n) = ' '
78 jmc 1.12 ENDDO
79 jmc 1.1
80     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
81     C For each output variable,
82 jmc 1.11 C specify Name (cdiag, 8c), Descriptions (tdiag, *c), Units (udiag, 16c)
83 jmc 1.1 C and parsing code (location on C grid, 2D/3D, ...) (gdiag, 16c)
84     C----------------------------------------------------------------------
85 molod 1.10 cdiag( 1) = 'SDIAG1 '
86     tdiag( 1) = 'User-Defined Surface Diagnostic #1'
87     udiag( 1) = 'user-defined '
88     gdiag( 1) = 'SM L1 '
89    
90     cdiag( 2) = 'SDIAG2 '
91     tdiag( 2) = 'User-Defined Surface Diagnostic #2'
92     udiag( 2) = 'user-defined '
93     gdiag( 2) = 'SM L1 '
94    
95     cdiag( 3) = 'SDIAG3 '
96     tdiag( 3) = 'User-Defined Surface Diagnostic #3 '
97     udiag( 3) = 'user-defined '
98     gdiag( 3) = 'SM L1 '
99    
100     cdiag( 4) = 'SDIAG4 '
101     tdiag( 4) = 'User-Defined Surface Diagnostic #4 '
102     udiag( 4) = 'user-defined '
103     gdiag( 4) = 'SM L1 '
104    
105     cdiag( 5) = 'SDIAG5 '
106     tdiag( 5) = 'User-Defined Surface Diagnostic #5 '
107     udiag( 5) = 'user-defined '
108     gdiag( 5) = 'SM L1 '
109    
110     cdiag( 6) = 'SDIAG6 '
111     tdiag( 6) = 'User-Defined Surface Diagnostic #6 '
112     udiag( 6) = 'user-defined '
113     gdiag( 6) = 'SM L1 '
114    
115     cdiag( 7) = 'SDIAG7 '
116     tdiag( 7) = 'User-Defined Surface Diagnostic #7 '
117     udiag( 7) = 'user-defined '
118     gdiag( 7) = 'SM L1 '
119    
120     cdiag( 8) = 'SDIAG8 '
121     tdiag( 8) = 'User-Defined Surface Diagnostic #8 '
122     udiag( 8) = 'user-defined '
123     gdiag( 8) = 'SM L1 '
124    
125     cdiag( 9) = 'SDIAG9 '
126     tdiag( 9) = 'User-Defined Surface Diagnostic #9 '
127     udiag( 9) = 'user-defined '
128     gdiag( 9) = 'SM L1 '
129    
130     cdiag(10) = 'SDIAG10 '
131     tdiag(10) = 'User-Defined Surface Diagnostic #10 '
132     udiag(10) = 'user-defined '
133     gdiag(10) = 'SM L1 '
134    
135     cdiag(11) = 'UDIAG1 '
136     tdiag(11) = 'User-Defined Upper-Air Diagnostic #1'
137     udiag(11) = 'user-defined '
138     gdiag(11) = 'SM ML '
139    
140     cdiag(12) = 'UDIAG2 '
141     tdiag(12) = 'User-Defined Upper-Air Diagnostic #2'
142     udiag(12) = 'user-defined '
143     gdiag(12) = 'SM ML '
144    
145     cdiag(13) = 'UDIAG3 '
146     tdiag(13) = 'User-Defined Upper-Air Diagnostic #3 '
147     udiag(13) = 'user-defined '
148     gdiag(13) = 'SM ML '
149    
150     cdiag(14) = 'UDIAG4 '
151     tdiag(14) = 'User-Defined Upper-Air Diagnostic #4 '
152     udiag(14) = 'user-defined '
153     gdiag(14) = 'SM ML '
154    
155     cdiag(15) = 'UDIAG5 '
156     tdiag(15) = 'User-Defined Upper-Air Diagnostic #5 '
157     udiag(15) = 'user-defined '
158     gdiag(15) = 'SM ML '
159    
160     cdiag(16) = 'UDIAG6 '
161     tdiag(16) = 'User-Defined Upper-Air Diagnostic #6 '
162     udiag(16) = 'user-defined '
163     gdiag(16) = 'SM ML '
164    
165     cdiag(17) = 'UDIAG7 '
166     tdiag(17) = 'User-Defined Upper-Air Diagnostic #7 '
167     udiag(17) = 'user-defined '
168     gdiag(17) = 'SM ML '
169    
170     cdiag(18) = 'UDIAG8 '
171     tdiag(18) = 'User-Defined Upper-Air Diagnostic #8 '
172     udiag(18) = 'user-defined '
173     gdiag(18) = 'SM ML '
174    
175     cdiag(19) = 'UDIAG9 '
176     tdiag(19) = 'User-Defined Upper-Air Diagnostic #9 '
177     udiag(19) = 'user-defined '
178     gdiag(19) = 'SM ML '
179    
180     cdiag(20) = 'UDIAG10 '
181     tdiag(20) = 'User-Defined Upper-Air Diagnostic #10 '
182     udiag(20) = 'user-defined '
183     gdiag(20) = 'SM ML '
184    
185     cdiag(21) = 'SDIAGC '
186     tdiag(21) = 'User-Defined Counted Surface Diagnostic '
187     udiag(21) = 'user-defined '
188 jmc 1.13 gdiag(21) = 'SM C L1 '
189     hdiag(21) = 22
190 molod 1.10
191     cdiag(22) = 'SDIAGCC '
192     tdiag(22) = 'User-Defined Counted Surface Diagnostic Counter'
193     udiag(22) = 'count '
194 jmc 1.13 gdiag(22) = 'SM L1 '
195 molod 1.9
196 jmc 1.12 C- set the total number of available diagnostics
197 molod 1.10 ndiagt = 22
198 jmc 1.1
199 jmc 1.12 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
200    
201     _END_MASTER( myThid )
202     _BARRIER
203 jmc 1.1
204     RETURN
205     END

  ViewVC Help
Powered by ViewVC 1.1.22