1 |
C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_init_early.F,v 1.10 2005/06/30 23:09:08 molod 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 |
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 |
C specify Name (cdiag, 8c), Descriptions (tdiag, *c), Units (udiag, 16c) |
77 |
C and parsing code (location on C grid, 2D/3D, ...) (gdiag, 16c) |
78 |
C---------------------------------------------------------------------- |
79 |
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 |
gdiag(21) = 'SM C022L1 ' |
183 |
|
184 |
cdiag(22) = 'SDIAGCC ' |
185 |
tdiag(22) = 'User-Defined Counted Surface Diagnostic Counter' |
186 |
udiag(22) = 'count ' |
187 |
gdiag(22) = 'SM D L1 ' |
188 |
|
189 |
c- set the total number of available diagnostics |
190 |
ndiagt = 22 |
191 |
|
192 |
c---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
193 |
|
194 |
RETURN |
195 |
END |