1 |
C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_init_early.F,v 1.13 2008/02/05 15:13:01 jmc Exp $ |
2 |
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 |
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 |
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 |
C & U & vector component in X direction \\ |
28 |
C & V & vector component in Y direction \\ |
29 |
C & W & vector component in vertical direction \\ |
30 |
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 |
C & G & levels = Ground_level Number \\ |
48 |
C & I & levels = sea-Ice_level Number \\ |
49 |
C \end{tabular} |
50 |
C \end{center} |
51 |
|
52 |
C !USES: |
53 |
IMPLICIT NONE |
54 |
#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 |
INTEGER myThid |
62 |
CEOP |
63 |
|
64 |
C !LOCAL VARIABLES: |
65 |
INTEGER n |
66 |
|
67 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
68 |
|
69 |
_BEGIN_MASTER( myThid ) |
70 |
|
71 |
DO n=1,ndiagMax |
72 |
kdiag(n) = 0 |
73 |
hdiag(n) = 0 |
74 |
cdiag(n) = ' ' |
75 |
gdiag(n) = ' ' |
76 |
udiag(n) = ' ' |
77 |
tdiag(n) = ' ' |
78 |
ENDDO |
79 |
|
80 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
81 |
C For each output variable, |
82 |
C specify Name (cdiag, 8c), Descriptions (tdiag, *c), Units (udiag, 16c) |
83 |
C and parsing code (location on C grid, 2D/3D, ...) (gdiag, 16c) |
84 |
C---------------------------------------------------------------------- |
85 |
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 Model-level Diagnostic #1 ' |
137 |
udiag(11) = 'user-defined ' |
138 |
gdiag(11) = 'SM MR ' |
139 |
|
140 |
cdiag(12) = 'UDIAG2 ' |
141 |
tdiag(12) = 'User-Defined Model-level Diagnostic #2 ' |
142 |
udiag(12) = 'user-defined ' |
143 |
gdiag(12) = 'SM MR ' |
144 |
|
145 |
cdiag(13) = 'UDIAG3 ' |
146 |
tdiag(13) = 'User-Defined Model-level Diagnostic #3 ' |
147 |
udiag(13) = 'user-defined ' |
148 |
gdiag(13) = 'SM MR ' |
149 |
|
150 |
cdiag(14) = 'UDIAG4 ' |
151 |
tdiag(14) = 'User-Defined Model-level Diagnostic #4 ' |
152 |
udiag(14) = 'user-defined ' |
153 |
gdiag(14) = 'SM MR ' |
154 |
|
155 |
cdiag(15) = 'UDIAG5 ' |
156 |
tdiag(15) = 'User-Defined Model-level Diagnostic #5 ' |
157 |
udiag(15) = 'user-defined ' |
158 |
gdiag(15) = 'SM MR ' |
159 |
|
160 |
cdiag(16) = 'UDIAG6 ' |
161 |
tdiag(16) = 'User-Defined Phys-level Diagnostic #6 ' |
162 |
udiag(16) = 'user-defined ' |
163 |
gdiag(16) = 'SM ML ' |
164 |
|
165 |
cdiag(17) = 'UDIAG7 ' |
166 |
tdiag(17) = 'User-Defined Phys-level Diagnostic #7 ' |
167 |
udiag(17) = 'user-defined ' |
168 |
gdiag(17) = 'SM ML ' |
169 |
|
170 |
cdiag(18) = 'UDIAG8 ' |
171 |
tdiag(18) = 'User-Defined Phys-level Diagnostic #8 ' |
172 |
udiag(18) = 'user-defined ' |
173 |
gdiag(18) = 'SM ML ' |
174 |
|
175 |
cdiag(19) = 'UDIAG9 ' |
176 |
tdiag(19) = 'User-Defined Phys-level Diagnostic #9 ' |
177 |
udiag(19) = 'user-defined ' |
178 |
gdiag(19) = 'SM ML ' |
179 |
|
180 |
cdiag(20) = 'UDIAG10 ' |
181 |
tdiag(20) = 'User-Defined Phys-level 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 |
gdiag(21) = 'SM C L1 ' |
189 |
hdiag(21) = 22 |
190 |
|
191 |
cdiag(22) = 'SDIAGCC ' |
192 |
tdiag(22) = 'User-Defined Surface Diagnostic Counter ' |
193 |
udiag(22) = 'count ' |
194 |
gdiag(22) = 'SM L1 ' |
195 |
|
196 |
C- set the total number of available diagnostics |
197 |
ndiagt = 22 |
198 |
|
199 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
200 |
|
201 |
_END_MASTER( myThid ) |
202 |
_BARRIER |
203 |
|
204 |
RETURN |
205 |
END |