1 |
jmc |
1.11 |
C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_init_early.F,v 1.10 2005/06/30 23:09:08 molod 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 |
|
|
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 |
|
|
integer n |
65 |
|
|
|
66 |
|
|
do n=1,ndiagMax |
67 |
|
|
kdiag(n) = 0 |
68 |
|
|
cdiag(n) = ' ' |
69 |
|
|
gdiag(n) = ' ' |
70 |
|
|
udiag(n) = ' ' |
71 |
|
|
tdiag(n) = ' ' |
72 |
|
|
enddo |
73 |
|
|
|
74 |
|
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
75 |
|
|
C For each output variable, |
76 |
jmc |
1.11 |
C specify Name (cdiag, 8c), Descriptions (tdiag, *c), Units (udiag, 16c) |
77 |
jmc |
1.1 |
C and parsing code (location on C grid, 2D/3D, ...) (gdiag, 16c) |
78 |
|
|
C---------------------------------------------------------------------- |
79 |
molod |
1.10 |
cdiag( 1) = 'SDIAG1 ' |
80 |
|
|
tdiag( 1) = 'User-Defined Surface Diagnostic #1' |
81 |
|
|
udiag( 1) = 'user-defined ' |
82 |
|
|
gdiag( 1) = 'SM L1 ' |
83 |
|
|
|
84 |
|
|
cdiag( 2) = 'SDIAG2 ' |
85 |
|
|
tdiag( 2) = 'User-Defined Surface Diagnostic #2' |
86 |
|
|
udiag( 2) = 'user-defined ' |
87 |
|
|
gdiag( 2) = 'SM L1 ' |
88 |
|
|
|
89 |
|
|
cdiag( 3) = 'SDIAG3 ' |
90 |
|
|
tdiag( 3) = 'User-Defined Surface Diagnostic #3 ' |
91 |
|
|
udiag( 3) = 'user-defined ' |
92 |
|
|
gdiag( 3) = 'SM L1 ' |
93 |
|
|
|
94 |
|
|
cdiag( 4) = 'SDIAG4 ' |
95 |
|
|
tdiag( 4) = 'User-Defined Surface Diagnostic #4 ' |
96 |
|
|
udiag( 4) = 'user-defined ' |
97 |
|
|
gdiag( 4) = 'SM L1 ' |
98 |
|
|
|
99 |
|
|
cdiag( 5) = 'SDIAG5 ' |
100 |
|
|
tdiag( 5) = 'User-Defined Surface Diagnostic #5 ' |
101 |
|
|
udiag( 5) = 'user-defined ' |
102 |
|
|
gdiag( 5) = 'SM L1 ' |
103 |
|
|
|
104 |
|
|
cdiag( 6) = 'SDIAG6 ' |
105 |
|
|
tdiag( 6) = 'User-Defined Surface Diagnostic #6 ' |
106 |
|
|
udiag( 6) = 'user-defined ' |
107 |
|
|
gdiag( 6) = 'SM L1 ' |
108 |
|
|
|
109 |
|
|
cdiag( 7) = 'SDIAG7 ' |
110 |
|
|
tdiag( 7) = 'User-Defined Surface Diagnostic #7 ' |
111 |
|
|
udiag( 7) = 'user-defined ' |
112 |
|
|
gdiag( 7) = 'SM L1 ' |
113 |
|
|
|
114 |
|
|
cdiag( 8) = 'SDIAG8 ' |
115 |
|
|
tdiag( 8) = 'User-Defined Surface Diagnostic #8 ' |
116 |
|
|
udiag( 8) = 'user-defined ' |
117 |
|
|
gdiag( 8) = 'SM L1 ' |
118 |
|
|
|
119 |
|
|
cdiag( 9) = 'SDIAG9 ' |
120 |
|
|
tdiag( 9) = 'User-Defined Surface Diagnostic #9 ' |
121 |
|
|
udiag( 9) = 'user-defined ' |
122 |
|
|
gdiag( 9) = 'SM L1 ' |
123 |
|
|
|
124 |
|
|
cdiag(10) = 'SDIAG10 ' |
125 |
|
|
tdiag(10) = 'User-Defined Surface Diagnostic #10 ' |
126 |
|
|
udiag(10) = 'user-defined ' |
127 |
|
|
gdiag(10) = 'SM L1 ' |
128 |
|
|
|
129 |
|
|
cdiag(11) = 'UDIAG1 ' |
130 |
|
|
tdiag(11) = 'User-Defined Upper-Air Diagnostic #1' |
131 |
|
|
udiag(11) = 'user-defined ' |
132 |
|
|
gdiag(11) = 'SM ML ' |
133 |
|
|
|
134 |
|
|
cdiag(12) = 'UDIAG2 ' |
135 |
|
|
tdiag(12) = 'User-Defined Upper-Air Diagnostic #2' |
136 |
|
|
udiag(12) = 'user-defined ' |
137 |
|
|
gdiag(12) = 'SM ML ' |
138 |
|
|
|
139 |
|
|
cdiag(13) = 'UDIAG3 ' |
140 |
|
|
tdiag(13) = 'User-Defined Upper-Air Diagnostic #3 ' |
141 |
|
|
udiag(13) = 'user-defined ' |
142 |
|
|
gdiag(13) = 'SM ML ' |
143 |
|
|
|
144 |
|
|
cdiag(14) = 'UDIAG4 ' |
145 |
|
|
tdiag(14) = 'User-Defined Upper-Air Diagnostic #4 ' |
146 |
|
|
udiag(14) = 'user-defined ' |
147 |
|
|
gdiag(14) = 'SM ML ' |
148 |
|
|
|
149 |
|
|
cdiag(15) = 'UDIAG5 ' |
150 |
|
|
tdiag(15) = 'User-Defined Upper-Air Diagnostic #5 ' |
151 |
|
|
udiag(15) = 'user-defined ' |
152 |
|
|
gdiag(15) = 'SM ML ' |
153 |
|
|
|
154 |
|
|
cdiag(16) = 'UDIAG6 ' |
155 |
|
|
tdiag(16) = 'User-Defined Upper-Air Diagnostic #6 ' |
156 |
|
|
udiag(16) = 'user-defined ' |
157 |
|
|
gdiag(16) = 'SM ML ' |
158 |
|
|
|
159 |
|
|
cdiag(17) = 'UDIAG7 ' |
160 |
|
|
tdiag(17) = 'User-Defined Upper-Air Diagnostic #7 ' |
161 |
|
|
udiag(17) = 'user-defined ' |
162 |
|
|
gdiag(17) = 'SM ML ' |
163 |
|
|
|
164 |
|
|
cdiag(18) = 'UDIAG8 ' |
165 |
|
|
tdiag(18) = 'User-Defined Upper-Air Diagnostic #8 ' |
166 |
|
|
udiag(18) = 'user-defined ' |
167 |
|
|
gdiag(18) = 'SM ML ' |
168 |
|
|
|
169 |
|
|
cdiag(19) = 'UDIAG9 ' |
170 |
|
|
tdiag(19) = 'User-Defined Upper-Air Diagnostic #9 ' |
171 |
|
|
udiag(19) = 'user-defined ' |
172 |
|
|
gdiag(19) = 'SM ML ' |
173 |
|
|
|
174 |
|
|
cdiag(20) = 'UDIAG10 ' |
175 |
|
|
tdiag(20) = 'User-Defined Upper-Air Diagnostic #10 ' |
176 |
|
|
udiag(20) = 'user-defined ' |
177 |
|
|
gdiag(20) = 'SM ML ' |
178 |
|
|
|
179 |
|
|
cdiag(21) = 'SDIAGC ' |
180 |
|
|
tdiag(21) = 'User-Defined Counted Surface Diagnostic ' |
181 |
|
|
udiag(21) = 'user-defined ' |
182 |
jmc |
1.11 |
gdiag(21) = 'SM C022L1 ' |
183 |
molod |
1.10 |
|
184 |
|
|
cdiag(22) = 'SDIAGCC ' |
185 |
|
|
tdiag(22) = 'User-Defined Counted Surface Diagnostic Counter' |
186 |
|
|
udiag(22) = 'count ' |
187 |
|
|
gdiag(22) = 'SM D L1 ' |
188 |
molod |
1.9 |
|
189 |
jmc |
1.11 |
c- set the total number of available diagnostics |
190 |
molod |
1.10 |
ndiagt = 22 |
191 |
jmc |
1.1 |
|
192 |
jmc |
1.2 |
c---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
193 |
jmc |
1.1 |
|
194 |
|
|
RETURN |
195 |
|
|
END |