NCEPLIBS-w3emc  2.11.0
w3fi52.f
Go to the documentation of this file.
1 C> @file
2 C> @brief Computes scaling constants used by grdprt().
3 C> @author John Stackpole @date 1980-06-15
4 
5 C> Computes the four scaling constants used by grdprt(), w3fp03(),
6 C> or w3fp05() from the 1st 5 identifier words in office note 84 format.
7 C>
8 C> Program history log:
9 C> - John Stackpole 1980-06-15
10 C> - Ralph Jones 1985-12-03 Made subroutine in genout into this subr.
11 C> - Ralph Jones 1989-07-07 Convert to microsoft fortran 4.10
12 C> - Ralph Jones 1990-02-03 Convert to cray cft77 fortran
13 C>
14 C> @param[in] IDENT First 5 id's in office note 84 format.
15 C> @param[out] CNST 4 constant's used by grdprtO(), w3fp05(), or w3fp03()
16 C> @param[out] IER
17 C> - 0 = normal return.
18 C> - 1 = ID'S IN IDENT ARE NOT IN O.N. 84 FORMAT
19 C>
20 C> @author John Stackpole @date 1980-06-15
21  SUBROUTINE w3fi52(IDENT,CNST,IER)
22 C
23 CC SET DEFAULT VALUES FOR NMC FIELDS GRIDPRINTING
24 C
25  REAL CNST(4)
26 C
27  INTEGER IDENT(4)
28  INTEGER LABUNP(27)
29  INTEGER Q
30 C
31 C UPACK 8 OFFICE NOTE 84 ID'S INTO 27 PARTS
32 C
33  CALL w3fi33(ident,labunp)
34 C
35  itypeq = labunp(1)
36  q = itypeq
37  itypes = labunp(2)
38  itypec = labunp(5)
39  isc = labunp(6)
40  ier = 0
41  xlvl = itypec
42  IF (isc) 10,30,20
43 C
44  10 CONTINUE
45  isc = -isc
46 C
47 C DIVIDE BY WHOLE NUMBER RATHER THAN MULTIPLY BY FRACTION TO
48 C TO AVOID ROUND OF ERROR
49 C
50  xlvl = xlvl / (10.**isc)
51  GO TO 30
52 C
53  20 CONTINUE
54  xlvl = xlvl * (10.**isc)
55 C
56  30 CONTINUE
57  ilvl = xlvl
58  IF (q.NE.1.AND.q.NE.2) GO TO 40
59 C
60 C*** GEOPOTENTIAL METERS ............
61 C
62  cnst(3) = 60.
63  IF (ilvl .LT. 500) cnst(3) = 120.
64  IF ((itypes .EQ. 129) .OR. (itypes .EQ. 130)) cnst(3) = 500.
65  cnst(1) = 0.
66  cnst(2) = 1.
67  cnst(4) = 0.
68  IF (cnst(3) .EQ. 500.) cnst(4) = 2.
69  RETURN
70 C
71  40 CONTINUE
72  IF (q.NE.8) GO TO 50
73 C
74 C*** PRESSURE, MILLIBARS ...............
75 C
76  cnst(1) = 0.
77  cnst(2) = 1.
78  cnst(3) = 4.
79  cnst(4) = 0.
80 C
81 C*** IF SFC OR TROPOPAUSE PRESSURE ..
82 C
83  IF ((itypes .EQ. 129) .OR. (itypes .EQ. 130)) cnst(3) = 25.
84  RETURN
85 C
86  50 CONTINUE
87  DO 60 i = 16,21
88  IF (q.EQ.i) GO TO 70
89  60 CONTINUE
90  GO TO 80
91 C
92  70 CONTINUE
93 C
94 C*** TEMPERATURES (DEG K) CONVERT TO DEG C, EXCEPT FOR POTENTIAL TEMP.
95 C
96  cnst(1) = -273.15
97  cnst(2) = 1.
98  cnst(3) = 5.
99  cnst(4) = 0.
100  IF (itypeq .EQ. 19) cnst(1) = 0.
101  RETURN
102 C
103  80 CONTINUE
104  IF (q.NE.40) GO TO 90
105 C
106 C*** VERTICAL VELOCITY (MB/SEC) TO MICROBARS/SEC
107 C*** SIGN CHANGED SUCH THAT POSITIVE VALUES INDICATE UPWARD MOTION.
108 C
109  cnst(1) = 0.
110  cnst(2) = -1.e3
111  cnst(3) = 2.
112  cnst(4) = 0.
113  RETURN
114 C
115  90 CONTINUE
116  IF (q.NE.41) GO TO 100
117 C
118 C*** NET VERTICAL DISPLACEMENT ... MILLIBARS
119 C
120  cnst(1) = 0.
121  cnst(2) = 1.
122  cnst(3) = 10.
123  cnst(4) = 0.
124  RETURN
125 C
126  100 CONTINUE
127  DO 110 i = 48,51
128  IF (q.EQ.i) GO TO 120
129  110 CONTINUE
130  GO TO 130
131 C
132  120 CONTINUE
133 C
134 C*** WIND SPEEDS M/SEC
135 C
136  cnst(1) = 0.
137  cnst(2) = 1.
138  cnst(3) = 10.
139  cnst(4) = 0.
140  RETURN
141 C
142  130 CONTINUE
143  IF (q.NE.52) GO TO 140
144 C
145 C*** VERTICAL SPEED SHEAR(/ SEC)... TO BE CONVERTED TO KNOTS/1000 FT
146 C
147  cnst(1) = 0.
148  cnst(2) = 592.086
149  cnst(3) = 2.
150  cnst(4) = 0.
151  RETURN
152 C
153  140 CONTINUE
154  IF (q.NE.53.AND.q.NE.54) GO TO 150
155 C
156 C*** DIVERGENT U AND V COMPONENTS M/SEC
157 C
158  cnst(1) = 0.
159  cnst(2) = 1.
160  cnst(3) = 2.
161  cnst(4) = 0.
162  RETURN
163 C
164  150 CONTINUE
165  IF (q.NE.72.AND.q.NE.73) GO TO 160
166 C
167 C*** VORTICITY (APPROX 10**-5) TIMES 10**6 /SEC
168 C
169  cnst(1) = 0.
170  cnst(2) = 1.e6
171  cnst(3) = 40.
172  cnst(4) = 0.
173  RETURN
174 C
175  160 CONTINUE
176  IF (q.NE.74) GO TO 170
177 C
178 C*** DIVERGENCE (/SEC) TIMES 10**6
179 C
180  cnst(1) = 0.
181  cnst(2) = 1.e6
182  cnst(3) = 20.
183  cnst(4) = 0.
184  RETURN
185 C
186  170 CONTINUE
187  IF (q.NE.80.AND.q.NE.81) GO TO 180
188 C
189 C*** STREAM FUNCTION OR VELOCITY POTENTIAL (M*M/SEC) CONVERTED TO M.
190 C*** CONVERT TO METERS. (M*M/SEC * FOG)
191 C
192  cnst(1) = 0.
193  cnst(2) = 1.03125e-4 / 9.8
194  cnst(3) = 60.
195  cnst(4) = 0.
196  IF ((ilvl.LT.500) .AND. (itypec .EQ. 0)) cnst(3) = 120.
197  RETURN
198 C
199  180 CONTINUE
200  IF (q.NE.88) GO TO 190
201 C
202 C*** RELATIVE HUMIDITY ... PERCENT
203 C
204  cnst(1) = 0.
205  cnst(2) = 1.
206  cnst(3) = 10.
207  cnst(4) = 0.
208  RETURN
209 C
210  190 CONTINUE
211  IF (q.NE.89) GO TO 200
212 C
213 C*** PRECIPITABLE WATER (KG/M*M) OR .1 GRAM/CM*CM OR MILLIMETERS/CM*CM
214 C*** CHANGE TO CENTI-INCHES/CM*CM
215 C
216  cnst(1) = 0.
217  cnst(2) = 3.937
218  cnst(3) = 5.
219  cnst(4) = 0.
220  RETURN
221 C
222  200 CONTINUE
223  IF (q.NE.90) GO TO 210
224 C
225 C*** ACCUMULATED PRECIPITATION (METERS) TO CENTI-INCHES, AT 1/2 IN.
226 C
227  cnst(1) = 0.
228  cnst(2) = 3937.
229  cnst(3) = 50.
230  cnst(4) = 0.
231  RETURN
232 C
233  210 CONTINUE
234  IF (q.NE.91.AND.q.NE.92) GO TO 220
235 C
236 C*** PROBABILITY ... PERCENT
237 C
238  cnst(1) = 0.
239  cnst(2) = 1.
240  cnst(3) = 10.
241  cnst(4) = 0.
242  RETURN
243 C
244  220 CONTINUE
245  IF (q.NE.93) GO TO 230
246 C
247 C*** SNOW DEPTH (METERS) TO INCHES, AT INTERVALS OF 6 INCHES
248 C
249  cnst(1) = 0.
250  cnst(2) = 39.37
251  cnst(3) = 6.
252  cnst(4) = 0.
253  RETURN
254 C
255  230 CONTINUE
256  IF (q.NE.112) GO TO 240
257 C
258 C*** LIFTED INDEX ..(DEG K) TO DEG C.
259 C
260  cnst(1) = -273.15
261  cnst(2) = 1.
262  cnst(3) = 2.
263  cnst(4) = 0.
264  RETURN
265 C
266  240 CONTINUE
267  IF (q.NE.120.AND.q.NE.121) GO TO 250
268 C
269 C*** WAVE COMPONENT OF GEOPOTENTIAL (GEOP M)
270 C
271  cnst(1) = 0.
272  cnst(2) = 1.
273  cnst(3) = 10.
274  cnst(4) = 0.
275  RETURN
276 C
277  250 CONTINUE
278  IF (q.NE.160) GO TO 260
279 C
280 C*** DRAG COEFFICIENT DIMENSIONLESS TIMES 10**5
281 C
282  cnst(1) = 0.
283  cnst(2) = 1.e5
284  cnst(3) = 100.
285  cnst(4) = 0.
286  RETURN
287 C
288  260 CONTINUE
289  IF (q.NE.161) GO TO 270
290 C
291 C*** LAND/SEA DIMENSIONLESS
292 C
293  cnst(1) = 0.
294  cnst(2) = 1.
295  cnst(3) = 1.
296  cnst(4) = .5
297  RETURN
298 C
299  270 CONTINUE
300  IF (q.NE.169) GO TO 280
301 C
302 C ALBIDO * 100. (DIMENSIONLESS)
303 C
304  cnst(1) = 0.
305  cnst(2) = 100.
306  cnst(3) = 5.
307  cnst(4) = 0.
308  RETURN
309 C
310  280 CONTINUE
311  IF (itypeq .EQ. 384) GO TO 290
312  IF ((itypeq .GE. 385) .AND. (itypeq .LE. 387)) GO TO 300
313 C
314 C*** NONE OF THE ABOVE ....
315 C
316  ier = 1
317  RETURN
318 C
319 C*** OCEAN WATER TEMPERATURE (DEGREES K)
320 C
321  290 CONTINUE
322  cnst(1) = 0.
323  cnst(2) = 1.
324  cnst(3) = 5.
325  cnst(4) = 0.
326  RETURN
327 C
328 C*** HEIGHT OF WIND DRIVEN OCEAN WAVES, SEA SWELLS, OR COMBINATION
329 C
330  300 CONTINUE
331  cnst(1) = 0.
332  cnst(2) = 1.
333  cnst(3) = 2.
334  cnst(4) = 0.
335  RETURN
336  END
subroutine w3fi52(IDENT, CNST, IER)
Computes the four scaling constants used by grdprt(), w3fp03(), or w3fp05() from the 1st 5 identifier...
Definition: w3fi52.f:22