1 |
jmc |
1.18 |
C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_init_early.F,v 1.17 2011/06/21 18:01: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 |
jmc |
1.15 |
C parse(3) & & Used for Level Integrated output: cumulate levels \\ |
35 |
|
|
C & r & same but cumulate product by model level thickness \\ |
36 |
|
|
C & R & same but cumulate product by hFac & level thickness \\ |
37 |
jmc |
1.1 |
C parse(4) & P & positive definite \\ |
38 |
|
|
C parse(5 ) & C & with counter array \\ |
39 |
jmc |
1.17 |
C & P & post-processed (not filled up) from other diags \\ |
40 |
jmc |
1.1 |
C & D & disable an array for output \\ |
41 |
jmc |
1.15 |
C parse(6--8) & '123' & retired, formerly: 3-digit mate number \\ |
42 |
jmc |
1.1 |
C parse(9) & U & model-level plus 1/2 \\ |
43 |
|
|
C & M & model-level middle \\ |
44 |
|
|
C & L & model-level minus 1/2 \\ |
45 |
|
|
C parse(10) & 0 & levels = 0 \\ |
46 |
|
|
C & 1 & levels = 1 \\ |
47 |
|
|
C & R & levels = Nr \\ |
48 |
|
|
C & L & levels = MAX(Nr,NrPhys) \\ |
49 |
|
|
C & M & levels = MAX(Nr,NrPhys) - 1 \\ |
50 |
jmc |
1.7 |
C & G & levels = Ground_level Number \\ |
51 |
|
|
C & I & levels = sea-Ice_level Number \\ |
52 |
jmc |
1.16 |
C & X & free levels option (need to be set explicitly) \\ |
53 |
jmc |
1.1 |
C \end{tabular} |
54 |
|
|
C \end{center} |
55 |
|
|
|
56 |
|
|
C !USES: |
57 |
jmc |
1.12 |
IMPLICIT NONE |
58 |
jmc |
1.1 |
#include "SIZE.h" |
59 |
|
|
#include "EEPARAMS.h" |
60 |
|
|
#include "PARAMS.h" |
61 |
|
|
#include "DIAGNOSTICS_SIZE.h" |
62 |
|
|
#include "DIAGNOSTICS.h" |
63 |
|
|
|
64 |
|
|
C !INPUT PARAMETERS: |
65 |
jmc |
1.12 |
INTEGER myThid |
66 |
jmc |
1.1 |
CEOP |
67 |
|
|
|
68 |
jmc |
1.12 |
C !LOCAL VARIABLES: |
69 |
|
|
INTEGER n |
70 |
jmc |
1.1 |
|
71 |
jmc |
1.12 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
72 |
|
|
|
73 |
|
|
_BEGIN_MASTER( myThid ) |
74 |
|
|
|
75 |
|
|
DO n=1,ndiagMax |
76 |
jmc |
1.1 |
kdiag(n) = 0 |
77 |
jmc |
1.13 |
hdiag(n) = 0 |
78 |
jmc |
1.1 |
cdiag(n) = ' ' |
79 |
|
|
gdiag(n) = ' ' |
80 |
|
|
udiag(n) = ' ' |
81 |
|
|
tdiag(n) = ' ' |
82 |
jmc |
1.12 |
ENDDO |
83 |
jmc |
1.1 |
|
84 |
jmc |
1.16 |
C-- Diagnostics definition/setting starts here (can now add diags to list) |
85 |
jmc |
1.18 |
c IF ( diag_pkgStatus.NE.1 ) STOP |
86 |
|
|
diag_pkgStatus = ready2setDiags |
87 |
jmc |
1.16 |
|
88 |
jmc |
1.1 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
89 |
|
|
C For each output variable, |
90 |
jmc |
1.11 |
C specify Name (cdiag, 8c), Descriptions (tdiag, *c), Units (udiag, 16c) |
91 |
jmc |
1.1 |
C and parsing code (location on C grid, 2D/3D, ...) (gdiag, 16c) |
92 |
|
|
C---------------------------------------------------------------------- |
93 |
jmc |
1.15 |
cdiag( 1) = 'SDIAG1 ' |
94 |
|
|
tdiag( 1) = 'User-Defined Surface Diagnostic #1 ' |
95 |
|
|
udiag( 1) = 'user-defined ' |
96 |
|
|
gdiag( 1) = 'SM L1 ' |
97 |
|
|
|
98 |
|
|
cdiag( 2) = 'SDIAG2 ' |
99 |
|
|
tdiag( 2) = 'User-Defined Surface Diagnostic #2 ' |
100 |
|
|
udiag( 2) = 'user-defined ' |
101 |
|
|
gdiag( 2) = 'SM L1 ' |
102 |
molod |
1.10 |
|
103 |
|
|
cdiag( 3) = 'SDIAG3 ' |
104 |
jmc |
1.15 |
tdiag( 3) = 'User-Defined Surface Diagnostic #3 ' |
105 |
molod |
1.10 |
udiag( 3) = 'user-defined ' |
106 |
|
|
gdiag( 3) = 'SM L1 ' |
107 |
|
|
|
108 |
|
|
cdiag( 4) = 'SDIAG4 ' |
109 |
jmc |
1.15 |
tdiag( 4) = 'User-Defined Surface Diagnostic #4 ' |
110 |
molod |
1.10 |
udiag( 4) = 'user-defined ' |
111 |
|
|
gdiag( 4) = 'SM L1 ' |
112 |
|
|
|
113 |
|
|
cdiag( 5) = 'SDIAG5 ' |
114 |
jmc |
1.15 |
tdiag( 5) = 'User-Defined Surface Diagnostic #5 ' |
115 |
molod |
1.10 |
udiag( 5) = 'user-defined ' |
116 |
|
|
gdiag( 5) = 'SM L1 ' |
117 |
|
|
|
118 |
|
|
cdiag( 6) = 'SDIAG6 ' |
119 |
jmc |
1.15 |
tdiag( 6) = 'User-Defined Surface Diagnostic #6 ' |
120 |
molod |
1.10 |
udiag( 6) = 'user-defined ' |
121 |
|
|
gdiag( 6) = 'SM L1 ' |
122 |
|
|
|
123 |
|
|
cdiag( 7) = 'SDIAG7 ' |
124 |
jmc |
1.15 |
tdiag( 7) = 'User-Defined U.pt Surface Diagnostic #7 ' |
125 |
molod |
1.10 |
udiag( 7) = 'user-defined ' |
126 |
jmc |
1.15 |
gdiag( 7) = 'SU L1 ' |
127 |
molod |
1.10 |
|
128 |
|
|
cdiag( 8) = 'SDIAG8 ' |
129 |
jmc |
1.15 |
tdiag( 8) = 'User-Defined V.pt Surface Diagnostic #8 ' |
130 |
molod |
1.10 |
udiag( 8) = 'user-defined ' |
131 |
jmc |
1.15 |
gdiag( 8) = 'SV L1 ' |
132 |
molod |
1.10 |
|
133 |
|
|
cdiag( 9) = 'SDIAG9 ' |
134 |
jmc |
1.15 |
tdiag( 9) = 'User-Defined U.vector Surface Diag. #9 ' |
135 |
molod |
1.10 |
udiag( 9) = 'user-defined ' |
136 |
jmc |
1.15 |
gdiag( 9) = 'UU L1 ' |
137 |
|
|
hdiag( 9) = 10 |
138 |
molod |
1.10 |
|
139 |
|
|
cdiag(10) = 'SDIAG10 ' |
140 |
jmc |
1.15 |
tdiag(10) = 'User-Defined V.vector Surface Diag. #10 ' |
141 |
molod |
1.10 |
udiag(10) = 'user-defined ' |
142 |
jmc |
1.15 |
gdiag(10) = 'VV L1 ' |
143 |
|
|
hdiag(10) = 9 |
144 |
molod |
1.10 |
|
145 |
jmc |
1.14 |
cdiag(11) = 'UDIAG1 ' |
146 |
jmc |
1.15 |
tdiag(11) = 'User-Defined Model-Level Diagnostic #1 ' |
147 |
jmc |
1.14 |
udiag(11) = 'user-defined ' |
148 |
|
|
gdiag(11) = 'SM MR ' |
149 |
|
|
|
150 |
|
|
cdiag(12) = 'UDIAG2 ' |
151 |
jmc |
1.15 |
tdiag(12) = 'User-Defined Model-Level Diagnostic #2 ' |
152 |
jmc |
1.14 |
udiag(12) = 'user-defined ' |
153 |
|
|
gdiag(12) = 'SM MR ' |
154 |
molod |
1.10 |
|
155 |
|
|
cdiag(13) = 'UDIAG3 ' |
156 |
jmc |
1.15 |
tdiag(13) = 'User-Defined Model-Level Diagnostic #3 ' |
157 |
molod |
1.10 |
udiag(13) = 'user-defined ' |
158 |
jmc |
1.15 |
gdiag(13) = 'SMR MR ' |
159 |
molod |
1.10 |
|
160 |
|
|
cdiag(14) = 'UDIAG4 ' |
161 |
jmc |
1.15 |
tdiag(14) = 'User-Defined Model-Level Diagnostic #4 ' |
162 |
molod |
1.10 |
udiag(14) = 'user-defined ' |
163 |
jmc |
1.15 |
gdiag(14) = 'SMR MR ' |
164 |
molod |
1.10 |
|
165 |
|
|
cdiag(15) = 'UDIAG5 ' |
166 |
jmc |
1.15 |
tdiag(15) = 'User-Defined U.pt Model-Level Diag. #5 ' |
167 |
molod |
1.10 |
udiag(15) = 'user-defined ' |
168 |
jmc |
1.15 |
gdiag(15) = 'SU MR ' |
169 |
molod |
1.10 |
|
170 |
|
|
cdiag(16) = 'UDIAG6 ' |
171 |
jmc |
1.15 |
tdiag(16) = 'User-Defined V.pt Model-Level Diag. #6 ' |
172 |
molod |
1.10 |
udiag(16) = 'user-defined ' |
173 |
jmc |
1.15 |
gdiag(16) = 'SV MR ' |
174 |
molod |
1.10 |
|
175 |
|
|
cdiag(17) = 'UDIAG7 ' |
176 |
jmc |
1.15 |
tdiag(17) = 'User-Defined U.vector Model-Lev Diag.#7 ' |
177 |
molod |
1.10 |
udiag(17) = 'user-defined ' |
178 |
jmc |
1.15 |
gdiag(17) = 'UUR MR ' |
179 |
|
|
hdiag(17) = 18 |
180 |
molod |
1.10 |
|
181 |
|
|
cdiag(18) = 'UDIAG8 ' |
182 |
jmc |
1.15 |
tdiag(18) = 'User-Defined V.vector Model-Lev Diag.#8 ' |
183 |
molod |
1.10 |
udiag(18) = 'user-defined ' |
184 |
jmc |
1.15 |
gdiag(18) = 'VVR MR ' |
185 |
|
|
hdiag(18) = 17 |
186 |
molod |
1.10 |
|
187 |
|
|
cdiag(19) = 'UDIAG9 ' |
188 |
jmc |
1.15 |
tdiag(19) = 'User-Defined Phys-Level Diagnostic #9 ' |
189 |
molod |
1.10 |
udiag(19) = 'user-defined ' |
190 |
|
|
gdiag(19) = 'SM ML ' |
191 |
|
|
|
192 |
|
|
cdiag(20) = 'UDIAG10 ' |
193 |
jmc |
1.15 |
tdiag(20) = 'User-Defined Phys-Level Diagnostic #10 ' |
194 |
molod |
1.10 |
udiag(20) = 'user-defined ' |
195 |
|
|
gdiag(20) = 'SM ML ' |
196 |
|
|
|
197 |
|
|
cdiag(21) = 'SDIAGC ' |
198 |
jmc |
1.14 |
tdiag(21) = 'User-Defined Counted Surface Diagnostic ' |
199 |
molod |
1.10 |
udiag(21) = 'user-defined ' |
200 |
jmc |
1.13 |
gdiag(21) = 'SM C L1 ' |
201 |
|
|
hdiag(21) = 22 |
202 |
molod |
1.10 |
|
203 |
|
|
cdiag(22) = 'SDIAGCC ' |
204 |
jmc |
1.14 |
tdiag(22) = 'User-Defined Surface Diagnostic Counter ' |
205 |
molod |
1.10 |
udiag(22) = 'count ' |
206 |
jmc |
1.13 |
gdiag(22) = 'SM L1 ' |
207 |
molod |
1.9 |
|
208 |
jmc |
1.12 |
C- set the total number of available diagnostics |
209 |
molod |
1.10 |
ndiagt = 22 |
210 |
jmc |
1.1 |
|
211 |
jmc |
1.12 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
212 |
|
|
|
213 |
|
|
_END_MASTER( myThid ) |
214 |
|
|
_BARRIER |
215 |
jmc |
1.1 |
|
216 |
|
|
RETURN |
217 |
|
|
END |