-------
APPENDIX D
METPRO TEST CASES
80
-------
APPENDIX D
METPRO TEST CASES
Four test cases are provided here, one for each of the four execution
modes of METPRO. The "observed" mixed layer heights provided in the
"SURF1" files are not actual measurements, but were created here for
illustration purposes. The sequence and numbers of hours used in modes
0, 1, and 2 were chosen at random; any period of length (even with
noncontiguous hours) is acceptable for modes 0, 1, and 2. Entire blocks
of days must be used with mode 3. The input and output files included
in this appendix are listed below.
Execution
Mode Filename Content
0 OPTIONS Input options and site data
0 PROFILE Input on-site tower data
0 SURF1 Input on-site surface data
0 OUTPUT Verification listing of
input options and site data
0 SURFACE Output surface boundary layer
variables used by CTDtf
1 OPTIONS Input options and site data
1 PROFILE Input on-site tower data
1 SURF1 Input on-site surface data
1 OUTPUT Verification listing of input
1 SURFACE Output surface boundary layer
variables used by CTDM
2 OPTIONS Input options and site data
2 PROFILE Inpu£ on-site tower data
2 SURF1 Input on-site surface data
2 SURF2 Input off-site surface data
2 OUTPUT Verification listing of input
options and site data
2 SURFACE Output surface boundary layer
variables used by CTDM
3 OPTIONS Input options and site data
3 PROFILE Input on-site tower data
3 SURF1 Input on-site surface data
3 SURF2 Input off-site surface data
3 RAWIN Input processed upper air data
3 OUTPUT Verification listing of input
options and site data
3 SURFACE Output surface boundary layer
variables used by CTDM
Reference
Figure D-l
Figure D-2
Figure D-3
Figure D-4
Figure D-5
Figure D-6
Figure D-7
Figure D-8
Figure D-9
Figure D-10
Figure D-ll
Figure D-7
Figure D-12
Figure D-13
Figure D-14
Figure D-15
Figure D-16
Figure D-l7
Figure D-18
Figure D-19
Figure D-20
Figure D-21
Figure D-22
81
-------
0
39.5915 89.4885 6 0.15 0.18 2.00
Figure D-l. Input options and site data; METPRO execution mode 0 test
case ("OPTIONS").
82
-------
80
80
80
80
80
80
80
80
80
80
80
80
80
80
6
6
6
6
6
6
6
6
6
6
6
6
6
6
26
26
26
26
26
26
26
26
26
26
26
26
26
26
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
0
1
0
1
0
1
0
1
0
1
0
1
0
1
200
200
185
185
196
196
186
186
189
189
180
180
175
175
•
•
•
•
•
•
•
•
•
•
•
,
•
•
.6
3.5
1.3
2.4
1.0
3.1
1.1
3.8
2.1
4.2
2.2
3.2
2.2
2.6
298
298
298
298
298
298
297
297
298
298
298
298
298
298
.8
.8
.6
.6
.1
.1
.9
.9
.0
.0
.1
.1
.2
.2
6.3
6.3
5.3
5.3
3.5
3.5
4.3
4.3
4.5
4.5
7.9
7.9
13.9
13.9
.01 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.02 -999.9
.02 -999.9
.04 -999.9
.04 -999.9
.08 -999.9
.08 -999.9
.19 -999.9
.19 -999.9
.39 -999.9
.39 -999.9
Figure D-2. Input tower data used for METPRO execution mode 0 test case
("PROFILE").
83
-------
80 6 26 3 .0 -40.8 82.0 777 2
80 6 26 4 .0 -34.7 86.0 777 1
80 6 26 5 .0 -27.2 76.0 777 2
80 6 26 6 79.0 30.4 76.0 777 1
80 6 26 7 -999.0 -999.0 76.0 777 0
80 6 26 8 -999.0 -999.0 -999.0 777 0
80 6 26 9 583.0 391.8 -999.0 777 1
Figure D-3. Input on-site surface parameters used in METPRO execution
mode 0 test case ("SURF1").
-------
CTDM MET PRE-PROCESSOR PROGRAM (METPRO)
PROGRAM OPTIONS:
VERSION 2.1
LEVEL 871022
MODE - 0 IF 0, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
ASSUME CONSTANT SITE CHARACTERISTICS
IF 1, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
BUT ASSUME VARIABLE SITE CHARACTERISTICS
IF 2, READ NWS SURFACE DATA, BUT NOT UPPER AIR DATA
IF 3, READ NWS SURFACE DATA AND UPPER AIR DATA
LATITUDE (DEG NORTH) - 39.59, LONGITUDE (DEG WEST) - 89.49
TIME ZONE (HOURS AFTER GMT) • 6.0
FIXED VALUES OF SURFACE CHARACTERISTICS:
ZO - .1500M, ALBEDO - .18, BOWEN RATIO * 2.00
WARNING: CONVECTTVE MIXED LAYER HEIGHTS ARE NOT COMPUTED IN THIS MODE;
MISSING VALUES WILL BE WRITTEN TO THE SURFACE FILE FOR UNSTABLE CONDITIONS.
Figure D-4.
Ouput verification of options and site data for METPRO
execution mode 0 test case ("OUTPUT").
85
-------
80 6 26 178 3 82. 21. 0.029 11.2 0.150E+00
80 6 26 178 4 86. 33. 0.064 11.9 0.150E+00
80 6 26 178 5 76. 27. 0.048 11.2 0.150E+00
80 6 26 178 6 76. -999. 0.136 -12.5 0.150E+00
80 6 26 178 7 76. -999. 0.247. -18.5 0.150E+00
80 6 26 178 8 -999. -999. 0.275 -11.6 0.150E+00
80 6 26 178 9 -999. -999* 0.285 -8.9 0.150E+00
Figure D-5. Output file of surface boundary layer variables used by
CTDH; METPRO execution mode 0 test case ("SURFACE").
86
-------
1
39.5915
4
46
61
121
251
0.05
0.33
0.55
0.09
0.56
0.91
0.10
0.61
1.00
0.09
0.56
0.91
89.
60
120
250
45
0.05
0.29
0.55
0.09
0.50
0.91
0.10
0.54
1.00
0.09
0.50
0.91
4885
0.05
0.24
0.30
0.09
0.40
0.46
0.10
0.44
0.50
0.09
0.40
0.46
6
0.05
0.12
1.05
0.09
0.17
1.81
0.10
0.19
2.00
0.09
0.17
1.81
0.06
0.10
1.05
0.11
0.14
1.81
0.12
0.16
2.00
0.11
0.14
1.81
0.07
0.11
1.05
0.14
0.16
1.81
0.15
0.18
2.00
0.14
0.16
1.81
0.07
0.14
2.05
0.14
0.21
3.61
0.15
0.23
'4.00
0.14
0.21
3.61
0.07
0.14
2.05
0.14
0.21
3.61
0.15
0.23
4.00
0.14
0.21
3.61
0.07
0.14
0.50
0.14
0.21
0.82
0.15
0.23
0.90
0.14
0.21
0.82
0.07
0.14
0.55
0.14
0.21
0.91
0.15
0.23
1.00
0.14
0.21
0.91
0.05
0.22
0.55
0.09
0.36
0.91
0.10
0.40
1.00
0.09
0.36
0.91
0.05
0.30
0.55
0.09
0.50
0.91
0.10
0.56
1.00
0.09
0.50
0.91
Figure D-6. Input options and site data; METPRO execution mode 1 test
case ("OPTIONS).
87
-------
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
3
3
4
4
5
5
6
6
7
7
8
8
9
9
22
22
23
23
24
24
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
22
22
23
23
24
24
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
200.
200.
185.
185.
196.
196.
186.
186.
189.
189.
180.
180.
175.
175.
175.
175.
209.
209.
179.
179.
189.
189.
194.
194.
200.
200.
185.
185.
196.
196.
186.
186.
189.
189.
180.
180.
175.
175.
175,
175.
-999.
-999.
179.
179.
.6
3.5
1.3
2.4
1.0
3.1
1.1
3.8
2.1
4.2
2.2
3.2
2.2
2.6
2.2
2.6
2.2
2.5
2.3
2.5
1.2
3.9
1.1
3.8
.6
3.5
1.3
2.4
1.0
3.1
1.1
3.8
2.1
4.2
2.2
3.2
2.2
2.6
2.2
2.6
-9.9
-9.9
2.3
2.5
298
298
298
298
298
298
297
297
298
298
298
298
298
298
298
298
299
299
300
300
299
299
299
299
298
298
298
298
298
298
297
297
298
298
298
298
298
298
298
298
-999
-999
300
300
.8
.8
.6
.6
.1
.1
.9
.9
.0
.0
.1
.1
.2
.2
.2
.2
.4
.4
.1
.1
.3
.3
.2
.2
.8
.8
.6
.6
.1
.1
.9
.9
.0
.0
.1
.1
.2
.2
.2
.2
.9
.9
.1
."l
6
6
5
5
3
3
4
4
4
4
7
7
13
13
13
13
13
13
14
14
1
1
2
2
6
6
5
5
3
3
4
4
4
4
7
7
13
13
13
13
-99
-99
14
14
.3
.3
.3
.3
.5
.5
.3
.3
.5
.5
.9
.9
.9
.9
.9
.9
.6
.6
.6
.6
.0
.0
.6
.6
.3
.3
.3
.3
.5
.5
.3
.3
.5
.5
.9
.9
.9
.9
.9
.9
.9
.9
.6
.6
.01 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.02 -999.9
.02 -999.9
.04 -999.9
.04 -999.9
.08 -999.9
.08 -999.9
.19 -999.9
.19 -999.9
.39 -999.9
.39 -999.9
.39 -999.9
.39 -999.9
.49 -999.9
.49 -999.9
.47 -999.9
.47 -999.9
.03 -999.9
.03 -999.9
.02 -999.9
.02 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.02 -999.9
.02 -999.9
.04 -999.9
.04 -999.9
.08 -999.9
.08 -999.9
.19 -999.9
.19 -999.9
.39 -999.9
.39 -999.9
.39 -999.9
.39 -999.9
-9.9 -999.9
-9.9 -999.9
.47 -999.9
.47 -999.9
Figure D-7.
Input bower data used for METPRO execution modes 1 and 2
test cases ("PROFILE").
38
-------
80 6 26 3
80 6 26 4
80 6 26 5
80 6 26 6
80 6 26 7
80 6 26 8
80 6 26 9
80 6 26 22
80 6 26 23
80 6 26 24
80 6 27 1
80 6 27 2
80 6 27 3
80 6 27 4
80 6 27 5
80 6 27 6
80 6 27 7
80 6 27 8
80 6 27 9
80 6 27 22
80 6 27 23
80 6 27 24
.0
.0
.0
79.0
999.0
999.0
583.0
999.0
999.0
999.0
•999.0 •
•999.0
•999.0
•999.0
999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
-40.8
-34.7
-27.2
30.4
-999.0
-999.0
391.8
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
82.0
86.0
76.0
76.0
76.0
-999.0
-999.0
76.0
, 79.0
79.0
82.0
102.0
95.0
102.0
102.0
135.0
144.0
. -999.0
-999.0
233.0
259.0
239.0
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
2
1
2
1
0
0
1
0
0
0
0
0
0
0
1
2
2
0
0
5
3
3
Figure D-8. Input on-site surface paramenters used in METPRO execution
mode 1 test case ("SURF1").
89
-------
CTDM MET PRE-PROCESSOR PROGRAM (METPRO) VERSION 2.1 LEVEL 871022
PROGRAM OPTIONS:
MODE - 1 IF 0, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
ASSUME CONSTANT SITE CHARACTERISTICS
IF 1, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
BUT ASSUME VARIABLE SITE CHARACTERISTICS
IF 2, READ NWS SURFACE DATA, BUT NOT UPPER AIR DATA
IF 3, READ NWS SURFACE DATA AND UPPER AIR DATA
LATITUDE (DEG NORTH)- 39.59, LONGITUDE (DEG WEST) «• 89.49
TIME ZONE (HOURS AFTER GMT) - 6*0
I OF WIND DIRECTION SECTORS FOR SPECIFYING SURFACE CHARACTERISTICS - 4
WIND DIRECTION SECTORS AND ANGLE RANGES:
1: 46- 60
2: 61-120
3: 121-250
4: 251- 45
SECTOR VALUES FOR SURFACE ROUGHNESS (M), ALBEDO, AND BOWEN RATIO:
VARIABLE" JAN FEB MAR APR MAY . JUN JUL AUG SEP OCT NOV DEC
ZO: 0.050 0.050 0.050 0.050 0.060 0.070 0.070 0.070 0.070 0.070 0.050 0.050
ALBEDO: 0.330 0.290 0.240 0.120 0.100 0.110 0.140 0.140 0.140 0.140 0.220 0.300
BOWEN: 0.550 0.550 0.300 1.050,1.050 1.050 2.050 2.050 0.500 0.550 0.550 0.550
(SECTOR 1)
ZO: 0.090 0.090 0.090 0.090 0.110 0.140 0.140 0.140 0.140 0.140 0.090 0.090
ALBEDO: 0.560 0.500 0.400 0.170 0.140 0.160 0.210 0.210 0.210 0.210 0.360 0.500
BOWEN: 0.910 0.910 0.460 1.810 1.810 1.810 3.610 3.610 0.820 0.910 0.910 0.910
(SECTOR 2)
ZO: 0.100 0.100 0.100 0.100 0.120 0.150 0.150 0.150 0.150 0.150 0.100 0.100
ALBEDO: 0.610 0.540 0.440 0.190 0.160 0.180 0.230 0.230 0.230 0.230 0.400 0.560
BOWEN: 1.000 1.000 0.500 2.000 2.000 2.000 4.000 4.000 0.900 1.000 1.000 1.000
(SECTOR 3)
ZO: 0.090* 0.090 0.090 0.090 0.110 0.140*0.140 0.140 0.140 0.140 0.090 0.090
ALBEDO: 0.560 0.500 0.400 0.170 0.140 0.160 0.210 0.210 0.210 0.210 0.360 0.500
BOWEN: 0.910 0.910 0.460 1.810 1.810 1.810 3.610 3.610 0.320 0.910 0.910 0.910
(SECTOR 4)
WARNING: CONVECTTVE MIXED LAYER HEIGHTS ARE NOT COMPUTED IN THIS MODE;
MISSING VALUES WILL BE WRITTEN TO THE SURFACE FILE FOR UNSTABLE CONDITIONS.
MISSING WIND AND/OR TEMPERATURE DATA FOR
(MM DD YY HH): 80 6 27 23; MISSING DATA WRITTEN TO "SURFACE"
Figure D-9. Output verification of options and site data for METPRO
execution 1 test case ("OUTPUT").
90
-------
80 6 26 178 3 82. 21. 0.029 11.2 0.150E+00
80 6 26 178 4 86. 33. 0.064 11.9 0.150E+00
80 6 26 178 5 76. 27. 0.048 11.2 0.150E+00
80 6 26 178 6 76. -999. 0.136 -12.5 0.150E+00
80 6 26 178 7 76. -999. 0.247 -18.5 0.150E+00
80 6 26 178 8 -999. -999. 0.275 ' -I1.6 0.150E+00
80 6 26 178 9 -999. -999. 0.285 -8.9 0.150E+00
80 6 26 178 22 . . 76. 42. 0.105 11.2 0.150E+00
80 6 26 178. 23 79. 42. 0.105 11.2 0.150E+00
80 6 26 178 24 79. 43. 0.110 11.2 0.150E-I-00
80 6 27 179 1 82. 30. 0.057 11.2 0.150E-I-00
80 6 27 179 2 102. 29. 0.052 11.2 0.150E+00
80 6 27 179 3 95. 21. 0.029 11.2 0.150E+00
80 6 27 179 4 102. 33. 0.064 11.9 0.150E+00
80 6 27 179 5 102. 27. 0.048 11.2 0.150E+00
80 6 27 179 6 135. 29. 0.052 11.2 0.150E+00
80 6 27 179 7 144. -999. 0.248 -17.5 0.150E+00
80 6 27 179 8 -999. -999.° ' 0.275 -11.6 0.150E+00
80 6 27 179 9 -999. -999. 0.285 -8.8 0.150E+00
80 6 27 179 22 233. 42. 0.105 11.2 0.150E+00
80 6 27 179 23 -9999. -9999. -999.999 -9999.9 -.999E+03
80 6 27 179 24 239. 43. 0.110 11.2 0.150E-I-00
Figure D-10. Output file of surface boundary Layer variables used by
CTDM; METPRO execution mode 1 test case ("SURFACE").
91
-------
2
39.5915
4
46
61
121
251
0.05
0.33
0.55
0.09
0.56
0.91
0.10
0.61
1.00
39.
60
120
250
45
0.05
0.29
0.55
0.09
0.50
0.91
0.10
0.54
1.00
4885
0.05
0.24
0.30
0.09
0.40
0.46
0.10
0.44
0.50
6
0.05
0.12
1.05
0.09
0.17
1.81
0.10
0.19
2.00
0.06
0.10
1.05
0.11
0.14
1.81
0.12
0.16
2.00
0.07
0.11
1.05
0.14
0.16
1.81
0.15
0.18
2.00
0.07
0.14
2.05
0.14
0.21
3.61
0.15
0.23
4.00
0.07
0.14
2.05
0.14
. 0.21
3.61
0.15
0.23
4.00
0.07
0.14
0.50
0.14
0.21
0.82
0.15
0.23
0.90
0.07
0.14
0.55
0.14
0.21
0.91
0.15
0.23
1.00
0.05
0.22
0.55
0.09
0.36
0.91
0.10
0.40
1.00
0.05
0.30
0.55
0.09
0.50
0.91
0.10
0.56
1.00
0.09 0.09 0.09 0.09 0.11 0.14 0.14 0.14 0.14 0.14 0.09 0.09
0.56 0.50 0.40 0.17 0.14 0.16 0.21 0.21 0.21 0.21 0.36 0.50
0.91 0.91 0.46 1.81 1.81 1.81 3.61 3.61 0.82 0.91 0.91 0.91
Figure D-ll. Input options an diste data; METPRO execution mode 2 test
case ("OPTIONS").
92
-------
80 6 26 3
80 6 26 4
80 6 26 5
80 6 26 6
80 6 26 7
80 6 26 8
80 6 26 9
80 6 26 22
80 6 26 23
80 6 26 24
80 6 27 1
80 6 27 2
80 6 27 3
80 6 27 4
80 6 27 5
80 6 27 6
80 6 27 7
80 6 27 8
80 6 27 9
80 6 27 22
80 6 27 23
80 6 27 24
.0
.0
.0
79.0
999.0
999.0
583.0
999.0
999.0
999.0
999.0
•999.0
•999.0
999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
999.0
•999.0
-40.8
-34.7
-27.2
30.4
-999.0
-999.0
391.8
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
82.0
86.0
76.0
76.0
76.0
-999.0
-999.0
76.0
79.0
79.0
82.0
102.0
95.0
102.0
102.0
135.0
144.0
-999.0
-999.0
233.0
259.0
239.0
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
Figure D-12. Input on-site surface parameters used in METPRO execution
mode 2 test case ("SURF1").
93
-------
9382280 626 2 6811 42991 69 2
9382280 626 3 6813 42991 68 1
9382280 626 4 6614 42994 67 2
9382280 626 5 7012 42994 72 1
9382280 626 6 7122 42994 78 0
9382280 626 7 7218 82994 82 0
9382280 626 8 7119 82994 85 1
9382280 62621 7219 32991 81 0
9382280 62622 7119 22991 78 0
9382280 62623 7218 22991 79 0
9382280 627 0 72 0 02988 78 0
9382280 627 1 71 0 02991 76 0
9382280 627 2 7119 52988 77 0
9382280 627 3 7119 42988 76 0
9382280 627 4 7218 32988 77 1
9382280 627 5 72 0 02991 77 ' 2
9382280 627 6 7322 42994 80 2
9382280 627 7 7419 62991 84 0
9382280 627 8 7519 82991 88 0
9382280 62721250 7318102977 86 5
9382280 62722 7319122974 84 3
9382280 62723 7419122974 83 3
Figure D-13. Input off-site surface data for METPRO execution mode 2
test case ("SURF2").
-------
CTDM MET PRE-PROCESSOR PROGRAM (METPRO) VERSION 2.1 LEVEL 871022
PROGRAM OPTIONS:
MODE - 2 IF 0, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
ASSUME CONSTANT SITE CHARACTERISTICS
IF 1, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
BUT ASSUME VARIABLE SITE CHARACTERISTICS
IF 2, READ NWS SURFACE DATA, BUT NOT UPPER AIR DATA
IF 3, READ NWS SURFACE DATA AND UPPER AIR DATA
LATITUDE (DEG NORTH) - 39.59, LONGITUDE (DEG WEST) - 89.49
TIME ZONE THOURS AFTER GMT) - 6.0
f OF WIND DIRECTION SECTORS FOR SPECIFYING SURFACE CHARACTERISTICS -
WIND DIRECTION SECTORS AND ANGLE RANGES:
1: 46- 60
2: 61-120
3: 121-250
4: 251- 45
SECTOR VALUES FOR SURFACE ROUGHNESS (M), ALBEDO, AND BOWEN RATIO:
VARIABLE JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
ZO: 0.050 0.050 0.050 0.050 0.060 0.070 0.070 0.070 0.070 0.070 0.050 0.050
ALBEDO: 0.330 0.290 0.240 0.120 0.100 0.110 0.140 0.140 0.140 0.140 0.220 0.300
BOWEN: 0.550 0.550 0.300 1.050 1.050 1.050 2.050 2.050 0.500 0.550 0.550 0.550
(SECTOR 1)
ZO: 0.090 0.090 0.090 0.090 0.110 0.140 0.140 0.140 0.140 0.140 0.090 0.090
ALBEDO: 0.560 0.500 0.400 0.170 0.140 0.160 0.210- 0.210 0.210 0.210 0.360 0.500
BOWEN: 0.910 0.910 0.460 1.810 1.810 1.810 3.610 3.610 0.820 0.910 0.910 0.910
(SECTOR 2)
•
ZO: 0.100 0.100 0.100 0.100 0.120 0.150 0.150 0.150 0.150 0.150 0.100 0.100
ALBEDO: 0.610 0.540 0.440 0.190 0.160 0.180 0.230 0.230 0.230 0.230 0.400 0.560
BOWEN: 1.000 1.000 0.500 2.000 2.000 2.000 4.000 4.000 0.900 1.000 1.000 1.000
(SECTOR 3)
ZO: 0.090 0.090 0.090 0.090 0.110 0.140 0.140 0.140 0.140 0.140 0.090 0.090
ALBEDO: 0.560 0.500 0.400 0.170 0.140 0.160 0.210 0.210 0.210 0.210 0.360 0.500
BOWEN: 0.910 0.910 0.460 1.810 1.810 1.810 3.610 3.610 0.820 0.910 0.910 0.910
(SECTOR 4)
WARNING: CONVECTIVE MIXED LAYER HEIGHTS ARE NOT COMPUTED IN THIS MODE;
MISSING VALUES WILL BE WRITTEN TO THE SURFACE FILE FOR UNSTABLE CONDITIONS.
MISSING WIND AND/OR TEMPERATURE DATA FOR
(MM DD YY HH): 80 6 27 23; MISSING DATA WRITTEN TO "SURFACE"
Figure D-14. Output verification of options and site data foe METPRO
execution mode 2 test case ("OUTPUT").
95
-------
80 6 26 178 3 82. 21. 0.029 11.2 0.150E+00
80 6 26 178 4 86. 33. 0.064 11.9 0.150E+00
80 6 26 178 5 76. 27. 0.048 11.2 0.150E+00
80 6 26 178 6 76. -999. 0.136 -12,. 5 0.150E+00
80 6 26 178 7 76. -999. 0.247 -18.5 0.150E+00
80 6 26 178- 8 • -999. -999. 0.275 -11.6 0.150E+00
80 6 26 178 9 -999. -999. 0.285 -8.9 0.150E+00
80 6 26 178 22 76. 42. 0.105 11.2 0.150E+00
80 6 26 178 23 79. 42. 0.105 11.2 0.150E+00
80 6 26 178 24 79. 43. 0.110 11.2 0.150E+00
80 6 27 179 1 82. 30. 0.057 11.2 0.150E+00
80 6 27^179 2 102. 29. 0.052 11.2 0.150E+00
80 6 27 179 3 95. 21. 0.029 11.2 0.150E+00
80 6 27 179 4 102. 33. 0.064 11.9 0.150E+00
80 6 27 179 5 102. 27. 0.048 11.2 0.150E+00
80 6 27 179 6 135. 29. 0.052 11.2 0.150E+00
80 6 27 179 7 144. -999. 0.248 -17.5 0.150E+00
80 6 27 179 8 -999. -999. 0.275 -11.6 0.150E+00
80 6 27 179 9 -999. -999, 0.285 -8.8 0.150E+00
80 6 27 179 22 233. 42. 0.105 11.2 0.150E+00
80 6 27 179 23 -9999. -9999, -999.999 -9999.9 -.999E+03
80 6 27 179 24 239. 43, 0.110 11.2 0.150E+00
Figure D-15. Output file of surface boundary layer vai.ables used by
CTDM; METPRO execution mode 2 test case ("SURFACE").
-------
3
39.5915
4
46
61
121
251
0.05
0.33
0.55
0.09
0.56
0.91
0.10
0.61
89.
60
120
250
45
0.05
0.29
0.55
0.09
0.50
0.91
0.10
0.54
4885
0.05
0.24
0.30
0.09
0.40
0.46
0.10
0.44
6
0.05
0.12
1.05
0.09
0.17
1.81
0.10
0.19
0.06
0.10
1.05
0.11
0.14
1.81
0.12
0.16
0.07
0.11
1.05
0.14
0.16
1.81
0.15
0.18
0.07
0.14
2.05
0.14
0.21
3.61
0.15
0.23
0.07
0.14
2.05
0.14
0.21
3.61
0.15
0.23
0.07
0.14
0.50
0.14
0.21
0.82
0.15
0.23
0.07
0.14
0.55
0.14
0.21
0.91
0.15
0.23
0.05
0.22
0.55
0.09
0.36
0.91
0.10
0.40
0.05
0.30
0.55
0.09
0.50
0.91
0.10
0.56
1.00 1.00 0.50 2.00 2.00 2.00 4.00 4.00 0.90 1.00 1.00 1.00
0.09 0.09 0.09 0.09 0.11 0.14 0.14 0.14 0.14 0.14 0.09 0.09
0.56 0.50 0.40 0.17 0.14 0.16 0.21 0.21 0.21 0.21 0.36 0.50
0.91 0.91 0.46 1.81 1.81 1.81 3.61 3.61 0.82 0.91 0.91 0.91
Figure 0-16. Input options and site data; METPRO execution mode 3 test
case ("OPTIONS").
97
-------
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
1
1
2
2
3
3
4
4
5
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
100.
10.
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
189.
189.
194.
194.
200.
200.
185.
185.
196.
196.
186.
186.
189.
189.
180.
180.
175.
175.
209.
209*
179.
179.
200.
200.
189.
189.
189.
189.
194.
194.
200.
200.
185.
185.
196.
196.
186.
186.
189.
189.
180.
180.
175.
175.
209.
209.
179.
179.
189.
189.
194.
194.
200.
200.
185.
185.
196.
1.
3.
1.
3.
•
3.
1.
2.
1.
3.
1.
3.
2.
4.
2.
3.
2.
2.
2.
2.
2.
2.
2.
3.
2.
2.
1.
3.
1.
3.
•
3.
1.
2.
1.
3.
1.
3.
2.
4.
2.
3.
2.
2.
2.
2.
2.
2.
1.
3.
1.
3.
•
3.
1.
2.
1.
2
9
1
8
6
5
3
4
0
1
1
8
1
2
2
2
2
6
2
5
3
5
4
0
1
5
2
9
1
8
6
5
3
4
0
1
1
8
1
2
2
2
2
6
2
5
3
5
2
9
1
8
6
5
3
4
0
299
299
299
299
298
298
298
298
298
298
297
297
298
298
298
298
298
298
299
299
300
300
300
300
301
301
299
299
299
299
298
298
298
298
298
298
297
297
298
298
298
298
298
298
299
299
300
300
299
299
299
299
298
298
298
298
298
.3
.3
.2
.2
.8
.8
.6
.6
.1
.1
.9
.9
.0
.0
.1
.1
.2
.2
.4
.4
.1
.1
.7
.7
.3
.3
.3
.3
.2
.2
.8
.8
.6
.6
.1
.1
.9
.9
.0
.0
.1
.1
.2
.2
.4
.4
; 1
.1
.3
.3
.2
.2
.8
.8
.6
.6
.1
1.0
1.0
2.6
2.6
6.3
6.3
5.3
5.3
3.5
3.5
4.3
4.3
4.5
4.5
7.9
7.9
13.9
13.9
13 o 6
13.6
14.6
14.6
17.0
17.0
14.9
14.9
1.0
1.0
2.6
2.6
6.3
6.3
5.3
5.3
3.5
3.5
4.3
4.3
4.5
4.5
7.9
7.9
13.9
13.9
13.6
13.6
14.6
14.6
1.0
1.0
2.6
2.6
6.3
6.3
5.3
5.3
3.5
.03 -999.9
.03 -999.9
.02 -999.9
.02 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.02 -999.9
.02 -999.9
.04 -999.9
.04 -999.9
.08 -999.9
.08 -999.9
.19 -999.9
.19 -999.9
.39 -999.9
.39 -999.9
.49 -999.9
.49 -999.9
.47 -999.9
.47 -999.9
.53 -999.9
.53 -999.9
.53 -999.9
.53 -999.9
.03 -999.9
.03 -999.9
.02 -999.9
.02 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.02 -999.9
.02 -999.9
.04 -999.9
.04 -999.9
.08 -999.9
.08 -999.9
.19 -999.9
.19 -999.9
.39 -999.9
.39 -999.9
.49 -999.9
.49 -999.9
.47 -999.9
.47 -999.9
.03 -999.9
.03 -999.9
.02 -999.9
.02 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.01 -999.9
.02 -999.9
Figure D-17.
Input tower data used for METPRO execution mode 3 test case
("PROFILE").
-------
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
10
100
•
•
•
•
•
»
•
•
•
•
*
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
*
•
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
196
186
186
189
189
180
180
175
175
-999
-999
179
179
200
200
189
189
189
189
194
194
200
200
185
185
196
196
186
186
189
189
180
180
175
175
-999
-999
179
179
3.1
1.1
3.8
2.1
4.2
2.2
3.2
2.2
2.6
9.9
9.9
2.3
2.5
2.4
3.0
2.1
2.5
1.'2
3.9
1.1
3.8
.6
3.5
1.3
2.4
1.0
3.1
1.1
3.8
2.1
4.2
2.2
3.2
2.2
2.6
•9.9
•9.9
2.3
2.5
298.1
297.9
297.9
298.0
298.0
298.1
298.1
298.2
298.2
-999.9
-999.9
300.1
300.1
300.7
300.7
301.3
301.3
299.3
299.3
299.2
299.2
298.8
298.8
298.6
298.6
298.1
298.1
297.9
297.9
298.0
298.0
298.1
298.1
298.2
298.2
-999.9
-999.9
300.1
300.1
3.5
4.3
4.3
4.5
4.5
7.9
7.9
13.9
13.9
-99.9
-99.9
14.6
14.6
17.0
17.0
14.9
14.9
1.0
1.0
2.6
2.6
6.3
6.3
5.3
5.3
3.5
3.5
4.3
4.3
4.5
4.5
7.9
7.9
13.9
13.9
-99.9
-99.9
14.6
14.6
.02
.04
.04
.08
.08
.19
.19
.39
.39
-9.9
-9.9
.47
.47
.53
.53
.53
.53
.03
.03
.02
.02
.01
.01
.01
.01
.02
.02
.04
.04
.08
.08
.19
.19
.39
.39
-9.9
-9.9
.47
.47
-999 . 9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
-999.9
Figure D-17. (Continued)
99
-------
80 6 26 1
80 6 26 2
80 6 26 3
80 6 26 4
80 6 26 5
80 6 26 6
80 6 26 7
80 6 26 8
80 6 26 9
80 6 26 10
80 6 26 11
80 6 26 12
80 6 26 13
80 6 26 14
80 6 26 15
80 6 26 16
80 6 26 17
80 6 26 18
80 6 26 19
80 6 26 20
80 6. 26 21
80 6 26 22
80 6 26 23
80 6 26 24
80 6 27 1
80 6 27 2
80 6 27 3
80 6 27 4
80 6 27 5
80 6 27 6
80 6 27 7
80 6 27 8
80 6 27 9
80 6 27 10
80 6 27 11
80 6 27 12
80 6 27 13
80 6 27 14
80 6 27 15
80 6 27 16
80 6 27 17
80 6 27 18
80 6 27 19
80 6 27 20
80 6 27 21
80 6 27 22
80 6 27 23
SO 6 27 24
Figure 0-18. Input on-site surface parameters used in METPRO execution
mode 3 test case ("SURF1").
100
.0
.0
.0
.0
.0
79.0
999.0
999.0
583.0
739.1
862.4
799.5
925.8
999.0
999.0
•999.0
•999.0
-999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
-999,0
-999.0
-999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•999.0
•995.0
•999.0
-999.0
•999.0
-999.0
•999 cO
•999.0
•999.0
•999.0
-43.8
-42.3
-40.8
-34.7
-27.2
30.4
-999.0
-999.0
391.8
516.0
604.7
576.3
659.4
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999 . 0
-999 . 0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0.
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
92.0
79.0
82.0
86.0
76.0
76.0
76.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
121.0
86.0
76.0
79.0
79.0
82.0
102.0
95.0
102.0
102.0
135.0
144.0
-999.0
-999.0
-999.0
-999 . 0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
-999.0
177 . 0
206.0
233.0
259.0
239.0
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-9
-------
9382280
9382230
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
9382280
626 0
626 1
626 2
626 3
626 4
626 5
626 6
626 7
626 8
626 9
62610
62611 45
62612
62613
62614
62615
62616
62617
62618—-
62619
62620
62621
62622
62623
627 0
627 1
627 2
627 3
627 4
627 5
627 6
627 7
627 8
627 9
62710
62711
62712
62713
62714
62715
62716
62717
62718
62719
62720250
62721250
62722 .
62723
6815 42991 70
69 0 02991 70
6811 42991 69
6813 42991 68
6614 42994 67
7012 42994 72
7122 42994 78
7218 82994 82
7119 82994 85
7018 62994 86
7125 62994 90
7125 82994 92
7125 82991 92
7123 82988 93
7121 82988 94
7024 82988 94
7023 62988 93
7119 62988 92
7219 42988 89
7219 42988 85
7218 32991 83
7219 32991 81
7119 22991 78
7218 22991 79
72 0 02988 78
71 0 02991 76
7119 52988 77
7119 42988 76
7218 32988 77
72 0 02991 77
7322 42994 80
7419 62991 84
7519 82991 88
7320102991 90
7418122988 92
7319142985 95
7319142982 95
7416142979 96
7216162977 96
7217172977 96
7218162977 95
7218162974 92
7318122974 90
7317142974 88
7315102974 86
7318102977 86
7319122974 84
7419122974 83
0
2
2
1
2
1
0
0
1
1
4
6
4
0
0
0
0
0
0
0
0
0
0'
0
0
0
0
0
1
2
2
0
0
0
2
0
0
0
0
0
0
0
1
2
6
5
3
3
Figure D-19.
Input off-site surface data for METPRO execution mode 3
test case ("SURF2").
101
-------
5600 14842 80 625 0
990. 7/ 200./299.2/160/ 2
900. 0/1037. /291.3/167/ 4
788. 0/2165. /285.7/130/ 4
700. 0/3158. /284.0/ 50/ 4
5600 14842 80 62512
991. 6/ 200./292.0/ 60/ 1
914. O/ 908./292.6/162/ 3
800. 0/2047. /287.5/165/ 2
726. 0/2865. /2S5.9/ 29/ 1
5600 14842 80 626 0
990. 7/ 200./302.5/170/ 2
850. 0/1538. /290.0/199/ 2
788. 0/2183. /2S9.6/ 28/ 1
5600 14842 80 62612
991. 3/ 200./292.0/ O/ 0
900. 0/1041. /293.1/268/ 2
800. 0/2059. /294.2/32S/ 3
5600 14842 80 627 0
990. 5/ 200./304.8/240/ 3
889. 0/1157. /294.S/224/ 5
800. 0/2070. /293.3/333/ 3
5600 14842 80 62712
990. 7/ 200./294.8/190/ 2
900. 0/1043. /294.8/184/ 7
800. 0/2063. /293.0/219/ 4
700. 0/3197. /285.0/259/ 6
5600 14842 80 628 0
986. I/ 200./305.9/180/ 6
850. 0/1514. /293.5/191/ 11
786. 0/2193. /29S.3/233/ 11
5600 14842 80 62812
986. 6/ 200./293.7/170/ 3
892. 0/1081. /295.9/214/ 7
800. 0/2026. /291.3/291/ 7
725. 0/2863. /2S6.2/295/ 10
50
986. O/ 242./298.4/155/ 2
889. 0/1142. /290.3/168/ 5
764. 0/2425. /285.9/120/ 4
65
976. O/ 338./295.0/142/ 1
900. 0/1041. /292.1/161/ 3
787. 0/2185. /287.6/123/ 1
700. 0/3171. /285.3/3S8/ 2
43
978. O/ 315./300.8/173/ 2
839. 0/1649. /289.4/194/ 2
750. 0/2604. /290.6/ ll/ 3
46
976, O/ 335.V297.1/235/ 1
880. 0/1236. /291.6/266/ 2
750. 0/2612. /289.S/ I/ 5
49
973. O/ 360./302.5/244/ 3
868. 0/1365. /293.7/231/ 5
755. 0/2566. /290.7/300/ 5
57
968. O/ 404./298.7/200/ 6
895. 0/1092. /294.3/179/ 6
777. 0/2313. /291.9/223/ 5
56
972. O/ 330./303.9/182/ 8
839. 0/1627. /292.9/201/ 11
750. 0/2598. /292.S/239/ 12
54
950. O/ 529./295.9/157/ 13
872. 0/1279. /29S.2/246/ 8
782. 0/2221. /290.8/308/ 6
700. 0/3158. /2S6.6/292/ 13
13
950. O/ 569./29S.3/
850. 0/1525. /288.0/
750. 0/2581. /2S5.6/
14
955. O/ 528./294.1/
850. 0/1531. /2S9.9/
7S2. 0/2458. /287.6/
12
950. O/ 573./29S.6/
821. 0/1834. /2S8.4/
749. 0/2615. /290.7/
11
959. O/ 489./297.1/
870. 0/1334. /293.1/
700. 0/3194. /2S4.9/
12
950. O/ 574./300.5/
8 50. 0/1546. /294. I/
750. 0/2623. /290.3/
13
953. O/ S42./298.9/
878. 0/1258. /294.7/
750. 0/2615. /2S9.7/
11
950. O/ 536./302.2/
826. 0/1762. /29S.3/
700. 0/3186. /2S8.3/
14
929. O/ 72S./297.3/
850. 0/1502. /293.7/
753. 0/2543. /2S7.9/
Figure D-20.
Input upper air data (processed by READ62) used by METPRO
execution mode 3 ("RAWIN").
102
-------
CTDM MET PRE-PROCESSOR PROGRAM (METPRO) VERSION 2.1 LEVEL 871022
PROGRAM OPTIONS:
MODE - 3 IF 0, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
ASSUME CONSTANT SITE CHARACTERISTICS
IF 1, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
BUT ASSUME VARIABLE SITE CHARACTERISTICS
IF 2, READ NWS SURFACE DATA, BUT NOT UPPER AIR DATA
IF 3, READ NWS SURFACE DATA AND UPPER AIR DATA
LATITUDE (DEG NORTH) - 39.59, LONGITUDE (DEG WEST) - 89.49
TIME ZONE (HOURS AFTER GMT) - 6.0
f OF WIND DIRECTION SECTORS FOR SPECIFYING SURFACE CHARACTERISTICS -
WIND DIRECTION SECTORS AND ANGLE RANGES:
1: 46- 60
2: 61-120
3: 121-250
4: 251- 45
SECTOR VALUES FOR SURFACE ROUGHNESS (M), ALBEDO, AND BOWEN RATIO:
VARIABLE JAN FEB MAR. APR MAY JUN JUL AUG SEP OCT NOV DEC
ZO: 0.050 0.050 0.050 0.050 0.060 0.070 0.070 0.070 0.070 0.070 0.050 0.050
ALBEDO: 0.330 0'.290 0.240 0.120 0.100 0.110 0.140 0.140 0.140 0.140 0.220 0.300
BOWEN: 0.550 0.550 0.300 1.050 1.050 1.050 2.050 2.050 0.500 0.550 0.550 0.550
(SECTOR 1)
ZO: 0.090 0.090 0.090 0.090 0.110 0.140 0.140 0.140 0.140 0.140 0.090 0.090
ALBEDO: 0.560 0.500 0.400 0.170 0.140 0.160 0.210 0.210 0.210 0.210 0.360 0.500
BOWEN: 0.910 0.910 0.460 1.810 1.810 1.810 3.610 3.610 0.820 0.910 0.910 0.910
(SECTOR 2)
ZO: 0.100 0.100 0.100 0.100 0.120 0.150 0.150 0.150 0.150 0.150 0.100 0.100
ALBEDO: 0.610 0.540 0.440 0.190 0.160 0.180 0.230 0.230 0.230 0.230 0.400 0.560
BOWEN: 1.000 1.000 0.500 2.000 2.000 2.000 4.000 4.000 0.900 1.000 1.000 1.000
(SECTOR 3)
ZO: 0.090 0.090 0.090 0.090 0.110 0.140 0.140 0.140 0.140 0.140 0.090 0.090
ALBEDO: 0.560 0.500 0.400 0.170 0.140 0.160 0.210 0.210 0.210 0.210 0.360 0.500
BOWEN: 0.910 0.910 0.460 1.310 1.810 1.810 3.610 3.610 0.820 0.910 0.910 0.910
(SECTOR 4)
MISSING WIND AND/OR TEMPERATURE DATA FOR
(MM DO YY HH) :• 80 6 27 10; MISSING DATA WRITTEN TO "SURFACE"
MISSING WIND AND/OR TEMPERATURE DATA FOR
(MM DD YY HH): 80 6 27 23; MISSING DATA WRITTEN TO "SURFACE"
Figure D-21. Output verification of options and site data for METPRO
execution mode 3 ("OUTPUT").
103
-------
80
80
80
80
80
80
80
80
80
80
80
80
80
80
30
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
30
80
80
30
80
80
80
80
80
80
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
1
2
3
4
5
6
7
8
9
10
11
12
13
•14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
92.
79.
82.
86.
76.
76.
76.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
121.
86.
76.
79.
79.
32.
102.
95.
102.
102.
135.
144.
-999.
-999.
•9999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
-999.
177.
206.
233.
•9999.
239.
30.
29.
21.
33.
27.
24.
121.
335.
708.
1242.
1283.
1332.
. 1406.
1470.
1526.
1581.
1621.
1641.
1643.
1643.
42.
42.
42.
43.
30.
29.
21.
33.
27.
29.
114,
347.
632.
-9999.
1247.
1340.
1432.
1519.
1630.
1728.
1798.
1835.
1840.
1840.
48.
42.
-9999.
43.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
• 0
0
0
0
0
0
0
0
-999
0
0
0
0
0
0
0
0
0
0
0
0
-999
0
.057
.052
.029
.064
.048
.136
.247
.275
.285
.293
.307
.315
.293
.201
.187
.126
.194
.152
.127
.100
.105
.105
.105
.110
.057
.052
.029
.064
.048
.052
.248
.275 .
.285
.999
.306
.316
.290
.201
.187
.126
.194
.152
.131
.100
.115
.105
.999
.110
11
11
11
11
11
-12
-18
-11
-8
-7
-7
-8
-5
-2
-2
-1
-3
-3
-21
11
11
11
11
11
11
11
11
11
11
11
-17
-11
-8
-9999
-7
-7
-6
-2
-2
-1
-3
-3
-16
11
13
11
-9999
11
.,2
..2
.2
,.9
..2
,.5
..5
,6
.9
.4
.2
.2
.7
.1
.0
.0
.8
.5
.0
.2
.2
.2
.2
.2
.2
.2
.2
.9
.2
.2
.5
.6
.8
.9
.5
.9
.1
.1
,0
.0
.8
.5
.6
.2
.7
.2
.9
.2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
0
0
0
0
0
0
0
0
0
0
0
0
-
0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
*
•
•
•
»
•
*
•
•
*
•
«
•
•
«
»
•
•
e
•
•
•
•
•
«
•
•
*
•
•
150E+00
150E+00
150E-I-00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E-I-00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E-f-00
150E+00
150E-I-00
150E+00
150E+00
150E+00
150E+00
999E+03
150E-I-00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
150E+00
999E+03
150E+00
Figure D-22.
Output file of surface boundary layer variables used by
CTDM; METPRO execution mode 3 test case("SURFACE").
104
-------
APPENDIX E
READ62 CODE LISTINGS
105
-------
READ62 - PREPROCESSOR FOR UPPER AIR DATA
THIS PROGRAM READS A TD-6201 UPPER AIR FILE, EXTRACTS DATA
FOR PRESSURE LEVELS REQUESTED, AND CREATES A FORMATTED FILE
FOR EDITING AND INPUT TO THE HPDM MET PREPROCESSOR
NOTE:
FORMAT ASSUMED IS FIXED BLOCK RECORDS OF 2876 BYTES
EACH (79 LEVELS PER RECORD)
UNIT 0 - CONSOLE OUTPUT (WRITES CURRENT SOUNDING BEING READ)
UNIT 5 - CARPj-IMAGE INPUT DATA: 'OPT62'
UNIT 6 - PRINTER OUTPUT: 'OUTPUT'
UNIT 8 - INPUT TD-6201 (UPPER AIR) DATA FILE: 'TD62011
UNIT 9 - OUTPUT FORMATTED UPPER AIR DATA FILE: 'RAWIN'
C
c
C
c
c
c
c
c
c
c
C I/O:
C
c
c
c
c
c
c
C DETAILS OF CARD-IMAGE INPUT DATA (FREE FORMAT):
C
C
C
C
C
c
c
c
c
c
c
c
c
c
c
c
c
c
C DETAILS OF TD-6201 CONTENT:
C
C HEADER INFORMATION FOR EACH SOUNDING TIME:
C
C
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
FIRST LINE:
IBYR, IBDAY, IBHR:
IEYR, IEDAY, IEHR:
PSTOP:
SECOND LINE:
LHT,LTEMP,LWD,LWS:
************R6200010
R6200020
R6200030
R6200040
R62000SO
R6200060
R6200070
R6200080
R6200090
R6200100
R6200110
R6200120
R6200130
R6200140
R6200150
R6200160
R6200170
R6200180
R6200190
R6200200
R6200210
R6200220
R6200230
R6200240
R6200250
R6200260
YEAR, JULIAN DAY, AND HOUR (GMT) TO BEGIN
EXTRACTING DATA FROM INPUT TD-6201 FILE
YEAR, JULIAN DAY, AND HOUR (GMT) AFTER WHICH R6200270
TO STOP EXTRACTING DATA FROM INPUT TD-6201R6200230
FILE
LOWEST PRESSURE FOR WHICH INFORMATION IS TO
BE EXTRACTED
CORRESPONDS TO HEIGHT, TEMPERATURE, WIND
DIRECTION AND WIND SPEED DATA: IF THE VALUE
IS MISSING, DISCARD THE DATA LEVEL IF THE
SWITCH IS 1, DO NOT DISCARD IF THE SWITCH IS
STNID
LAT
LON
STATION IDENTIFICATION
LATITUDE — THE STATION LATITUDE IN DEG AND MIN,
FOLLOWED BY 'N1 OR 'S'
LONGITUDE— THE STATION LONGITUDE IN DEG .AND MIN,
FOLLOWED BY 'E' OR 'W'
YEAR, MONTH, DAY, HOUR — THE SCHEDULED TIME OF THE OBSERVATION R6200430
NUMLEV NUMBER OF REPEATING GROUPS — THIS REPRESENTS R6200490
THE NUMBER OF DATA LEVELS FOUND IN THE CURRENT
OBSERVATION (79 IS THE MAXIMUM NUMBER STORED)
R6200290
R6200300
R6200310
R6200320
R6200330
R6200340
R6200350
R6200360
OR6200370
R6200380
R6200390
R6200400
R6200410
R6200420
R6200430
R6200440
R6200450
R6200460
R6200470
R6200500
R6200510
R6200S20
R6200530
R6200540
LEVEL-QUALITY-INDICATOR — DENOTES THE: RESULTS OF R6200550
ANY QUALITY CONTROLS APPLIED TO THIS LEVEL (THISR6200560
IS USED IN THIS PROGRAM) R6200570
THE ELAPSED TIME SINCE THE RELEASE OF THE SOUNDINGR6200580
IN MINUTES AND TENTHS (IGNORED HERE) R6200590
ATMOSPHERIC PRESSURE AT THE CURRENT LEVEL (READ INR6200600
DATA FOR EACH NUMLEV PRESSURE LEVEL:
QIND
ETIME
PRES
106
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
AS MILLIBARS) R6200610
HGT GEOPOTENTIAL HEIGHT OF THE CURRENT LEVEL IN METERSR6200620
TEMP THE FREE AIR TEMPERATURE 'AT THE CURRENT LEVEL IN R6200630
DEGREES AND TENTHS CELSIUS.
RH THE RELATIVE HUMIDITY AT THE CURRENT LEVEL IN %
WD ' ' DIRECTION OF THE WIND AT THE CURRENT LEVEL IN DEC
WS SPEED OF THE WIND IN WHOLE METERS PER SECOND;
TIMEF,PRESF,HGTF,TEMPF,RHF,WINDF — QUALITY CONTROL FLAGS
(USED HERE)
TYPLEV TYPE OF LEVEL FLAG (IGNORED HERE)
EXTERNAL FUNCTION: GOOD (INTEGER)
R6200640
R6200650
R6200660
R6200670
R6200680
R6200690
R6200700
R6200710
R6200720
R6200730
R6200740
REAL HEIGHT(79),HIGHT(79),ETIME
REAL APRES(79),ATEMP(79),PRES(79),TEMP(79)
INTEGER MON(12),LMON(12),YEAR,MONTH,DAY,HOUR,GOOD
INTEGER WS(79),AWS(79),WD(79),AWD(79),RH
INTEGER LHT,LTEMP,LWD,LWS
CHARACTER*! LATA,LONA,QIND(79),TIMEF(79),PRESF(79),
1 HGTF(79),TEMPF(79),RHF,WINDF(79),TYPLEV
CHARACTER*5 STNID
CHARACTER*32 JUNK
DATA MON/0,31,59,90,120,151,181,212,243,273,304,334/
DATA LMON/0,31,60,91,121,152,182,213,244,274,305,335/
C -OPEN
C
FILES
C***********************************************************************R6200750
C R6200760
R6200770
R6200780
R6200790
R6200800
R6200810
R6200820
R6200830
R6200840
R6200850
R6200860
R6200870
R6200880
R6200890
R6200900
R6200910
R6200920
R6200930
R6200940
R6200950
R6200960
R6200970
' R6200980
R6200990
R6201000
R6201010
R6201020
R6201030
R6201040
R6201050
R6201060
R6201070
R6201080
R6201090
R6201100
R6201110
R6201120
R6201130
R6201140
R6201150
R6201160
R6201170
R6201180
R6201190
R6201200
C
C—
c
c
c
c
c—
IN - 5
IOUT - 6
ITD - 8
' IRAWIN » 9
OPEN(IN,FILE-'OPT62',STATUS-'OLD')
OPEN(IOUT,FILE-'OUTPUT',STATUS-'UNKNOWN')
OPEN(ITD,FILE-'TD6201',STATUS-'OLD',FORM-'FORMATTED')
OPEN(IRAWIN,FILE-'RAWIN',STATUS-'UNKNOWN') t
WRITE(IOUT,6010)
READ CARD-IMAGE INPUTS FROM UNIT 5 (FREE FORMAT)
READ(IN,*)IBYR,IBDAY,IBHR,IEYR,IEDAY,IEHR,PSTOP
WRITE(IOUT,6020)IBYR,IEYR,IBDAY,IEDAY,IBHR,IEHR
WRITE(IOUT,6030)PSTOP
READ(IN,*)LHT,LTEMP,LWD,LWS
WRITE(IOUT,6040)LHT,LTEMP,LWD,LWS
WRITE(IOUT,6050)
INITIALIZE PREVIOUS GOOD SOUNDING TIME
IF(IBHR.EQ.O)GO TO 100
STARTING HOUR » 12
JDAY2-IBDAY
ISAV2-0
GO TO 200
107
-------
100 CONTINUE
C STARTING HOUR - 00
JDAY2-IBDAY-1
ISAV2-12
200 CONTINUE
C
1000 CONTINUE
C
C READ TD-6201 SOUNDING FROM UNIT ITD
C
READ(ITD,6100,END-2000) STNID,LAT,LATA,LON,LONA,YEAR,MONTH
1 DAY,HOUR,NUMLEV,(QIND(I),ETIME,PRES(I),HEIGHT(I),
2 TEMP(I),RH,WD(I),WS(I),TIMEF(I),PRESF(I),HGTF(I),TEMPF(I),
3 RHF,WINDF(I),TYPLEV,1-1,79)
HRITE(0,6220) MONTH, DAY, HOUR
ALAT - IAT/100 + (LAT-(LAT/100*100))/60.
ALON - LON/100 + (LON-(LON/100*100))/60.
C
C
C
1050
IF CONTINUATION OF LAST SOUNDING, IGNORE AND READ NEXT SOUNDING
IF(NUMLEV.LE.79) GO TO 1100
READ(ITD,6150,END-2000) JUNK
NUMLEV * MAX(NUMLEV-79,79)
GO TO 1050
1100 CONTINUE
C
C*******ROUTINE TO CONVERT DATES TO JULIAN
C
JOAY-MON(MONTH)+DAY
IF(MOD(YEAR,4).EQ.O)JDAY-LMON(MONTH)+DAY
C
C
C
IP(HOUR.NE.O .AND. HOUR.NE.12) GO TO 1000
CHECK FOR BEGINNING AND ENDING TIMES
IF(YEAR.LT.IBYR) GO TO 1000
IF(YEAR.GT.IEYR) GO TO 5000
IF(YEAR.EQ.IBYR.AND.JDAY.LT.IBDAY)
IF(YEAR.EQ.IEYR.AND.JDAY.GT
IF(YEAR.EQ.IBYR.AND.JDAY.EQ,
GO TO 1000
IEDAY> GO TO 5000
IBDAY.AND.HOUR.LT.IBHR)
C
C
C
IF(YEAR.EQ.IEYR.AND.JDAY.EQ.IEDAY.AND.HOUR.GT.IEHR)
COMPRESS ARRAYS IF MISSING VALUES ARE FOUND
KK-0
DO 1200 JJ-1,NUMLEV
IF(GOOD(QIND(JJ)).EQ.O) GO TO 1200
IF(LHT.EQ.l .AND. (HEIGHT(JJ).GE.9999.9 .OR. GOOD(HGTF).EQ.O))
1 GO TO 1200
IF(LTEMP.EQ.l .AND. (ABS(TEMP(JJ)).GE.99.9 .OR.
1 GO TO 1200
R6201210
R6201220
R6201230
R6201240
R6201250
R6201260
R6201270
R6201280
R6201290
R6201300
R6201310
R6201320
R6201330
R6201340
R
R6201360
R6201370
R6201330
R6201390
R6201400
R6201410
R6201420
R6201430
R6201440
R6201450
R6201460
R6201470.
R6201480
R6201490
R6201500
R6201510
R6201520
R6201530
R6201540
R6201550
R6201560
R6201570
R6201S80
R6201590
R6201600
R6201610
R6201620
R6201630
R6201640
R6201650
R6201660
R6201670
R6201680
R6201690
GOOD(TEMPF).EQ.O))R6201700
R6201710
GO
GO
TO
TO
1000
5000
1200
IF(LWD.EQ.l .AND.
IF(LWS.EQ.l .AND.
KK-KK+1
AFRES(KK)-PRES(JJ)
ATEMP(KK)-TEMP(JJ)
AWS(KK)-WS(JJ)
AWD(KK)-WD(JJ)
HIGHT(KK)-HEIGHT(JJ)
CONTINUE
(WD(JJ).GE.999
(WS(JJ).GE.999
.OR. GOOT(WINDF) .EQ.O))GO TO 1200R6201720
.OR. GOOD(WINDF) .EQ.O))<3O TO 1200R6201730
R6201740
R6201750
R6201760
R6201770
R6201780
R6201790
R6201800
108
-------
NLEV-KK R6201810
DO 1300 LL-1,NLEV . R6201820
PRES(LL)-APRES(LL) R6201830
TEMP(LL)-ATEMP(LL) R6201840
WD(LL)-AWD(LL) R6201850
WS(LL)-AWS(LL) R6201360
HEIGHT(LL)-HIGHT(LL) . R6201870
1300 CONTINUE R6201880
C R6201890
C DETERMINE LEVELS UP TO PSTOP R6201900
C R6201910
KSTOP - 0 R6201920
DO 1500 I - 1,NLEV R6201930
IF(PRES(I).LE.PSTOP) THEN R6201940
ISTOP « I R6201950
GO TO 1600 R6201960
ENDIF R6201970
1500 CONTINUE R6201980
. ISTOP - NLEV R6201990
IF(ABS(PRES(NLEV)-PSTOP).GT.1.0) KSTOP- 1 R6202000
CONTINUE R6202010
R6202020
—WRITE TO LINE PRINTER AND UPPER AIR OUTPUT FILE R6202030
R6202040
IF(KSTOP.EQ.O) THEN ' R6202050
WRITE(IOUT,6060)YEAR,MONTH,DAY,JDAY,HOUR,ISTOP R6202060
WRITE(IRAWIN,6200) STNID,YEAR,MONTH,DAY,HOUR,NLEV,ISTOP R6202070
ELSE R6202080
WRITE(IOUT,6065)YEAR,MONTH,DAY,JDAY,HOUR,ISTOP,PSTOP R6202090
WRITE(IRAWIN,6205) STNID,YEAR,MONTH,DAY,HOUR,NLEV,ISTOP,PSTOP R6202100
ENDIF R6202110
WRITE(IRAWIN,6210) (PRES(I),HEIGHT(I),TEMP(I)+273.2,WD(I),WS(I), R6202120
1 1-1,ISTOP) R6202130
C R6202140
C CHECK FOR MISSING DAYS R6202150
C R6202160
IF(JDAY.EQ.JDAY2) GO TO 1700 R6202170
JDAY1-JDAY2 R6202180
JDAY2-JDAY R6202190
IF(JDAY1.EQ.(JDAY2-1)) GO TO 1700 R6202200
WRITE(IOUT,6070) R6202210
WRITE(IRAWIN,6070) R6202220
1700 CONTINUE R6202230
C R6202240
C CHECK FOR MISSING/DUPLICATE SOUNDINGS R6202250
C R6202260
ISAV1-ISAV2 • R6202270
ISAV2-HOUR R6202280
IF(ISAVl.EQ.O) GO TO 1800 R6202290
IF(ISAV1.EQ.12.AND.ISAV2.EQ.O) GO TO 1900 ' R6202300
WRITE(IOUT,6080) R6202310
WRITE(IRAWIN,6080) ' R6202320
GO TO 1900 R6202330
1800 CONTINUE R6202340
IF(ISAV2.EQ.12)GO TO 1900 . R6202350
WRITE(IOUT,6080) R6202360
WRITE(IRAWIN,6080) R6202370
1900 CONTINUE . R6202380
C - R6202390
GO TO 1000 R6202400
109
-------
2000
C
5000
C
C
C
6010
6020
6030
6040
6050
6060
6065
6070
6080
6090
6100
6150
6200
6205
6210
6220
WRITE(IOUT,6090)YEAR,JDAY
CONTINUE
STOP
FORMAT STATEMENTS
FORMAT('!',2OX,'READ62',3X,'VERSION 2.0 LEVEL 870731',//)
FORMATCO','STARTING DATE:',16X,'ENDING DATE: '/ '0', 15X, 'YEAR -
1 I4,18X,'YEAR - ',I4/10X,'JULIAN DAY - ',13,12X, 'JULIAN DAY -
2 I3/16X,'HOUR - ',X3,18X,'HOUR - ',13)
FORMAT(/'O1,'PRESSURE LEVELS EXTRACTED:'/'0',20X,'SURFACE',
1 ' TO ',F5.0,' MB')
FORMAT(/,'0','SWITCHES FOR DISCARDING PRESSURE LEVELS: 0-NO, '
1 '1-YES',/,'0','DATA LEVEL ELIMINATED IF HEIGHT MISSING ? ',8X
1 /,'0','DATA LEVEL ELIMINATED IF TEMPERATURE MISSING ? «,3X,I1
2 '0','DATA LEVEL ELIMINATED IF WIND DIRECTION MISSING ? ',!!,/
3 '0','DATA LEVEL ELIMINATED IF WIND SPEED MISSING ? C,4X,I1,/)
FORMAT(/'O','THE FOLLOWING SOUNDINGS HAVE BEEN PROCESSED:1/
1 '0',6X,'YEAR',3X,'MONTH',3X,'DAY',3X,'JULIAN DAY',3X,
2 'HOUR (GMT)',3X,'NO. LEVELS EXTRACTED'/)
FORMAT(8X,I2,5X,I2,6X,I2,7X,I3,9X,I2,15X,I4)
FORMAT(8X,I2,5X,I2,6X,I2,7X,I3,9X,I2,15X,I4,/,10X,' TOP OF ',
1 'SOUNDING LISTED ABOVE IS BELOW THE ',F6.1,'-MB LEVEL ')
FORMAT(IX,'->->->MISSIN6 DAY(S)')
FORMAT(IX,'->->->MISSING/DUPLICATE SOUNDING1)
FORMAT(20X,'EOF ON INPUT',/,20X,'LAST DAY READ - ',12,13)
FORMAT(3X,AS,14,Al,15,Al,2X,4(12),13,
1 (79(A1,F4.1,F5.1,F6.0,F4.1,3(I3),7A1)))
FORMAT(A32,79(36X))
FORMAT(3X,'6201',5X,A5,5X,4I2,5X,I2,T69,I2)
FORMAT(3X,'6201',5X,A5,5X,4I2,5X,I2,T69,I2,/,'TOP OF SOUNDING
1 'BELOW ',F6.1,'-MB LEVEL ')
FORMAT(4(3X,F6.1,'/',F5.0,'/',F5.1,'/',I3,V',I3))
FORMATC MONTH - ',12,', DAY • ',12,', HOUR - • ,12)
END
R6202410
R6202420
R6202430
R6202440
R6202450
R6202460
R6202470
R6202480
', R6202490
', R6202500
R6202510
R6202520
R6202530
,. R6202540
,I1,R6202550
,/, R6202560
, R6202570
R6202580
R6202590
R6202600
R6202610
R6202620
R6202630
R6202640
R6202650
R6202660
R6202670
R6202680
R6202690
R6202700
R6202710
1, R6202720
R6202730
R6202740
R6202750
R6202760
R6202770
110
-------
C INTEGER FUNCTION GOOD(IQUAL)
C
C PURPOSE: CHECKS QUALITY INDICATOR TO DETERMINE WHETHER OR NOT TO
C ACCEPT THE UPPER AIR OBSERVATION AS VALID
C
C ASSUMPTIONS: TDF6201 FORMAT
C
C LIMITATIONS: NMC INDICATORS A-Z ARE NOT TESTED FOR BAD DATA
C
C ARGUMENTS
C PASSED:
C IQUAL CHAR QUALITY INDICATOR: 0-9 OR A-Z
C
C RETURNED:
C FUNCTION GOOD: 0 IF BAD DATA; 1 IF GOOD DATA
C
C MEANING OF QUALITY INDICATORS FOR TDF6201 DATA:
C
C 0 ORIGINAL VALUES ARE CORRECT
C 1 ORIGINAL VALUES ARE MISSING
C 2 ORIGINAL VALUES ARE DOUBTFUL, A CORRECTED LEVEL FOLLOWS
C 3 ORIGINAL VALUES ARE DOUBTFUL, UNCORRECTED
C 4 ORIGINAL VALUES ARE IN -ERROR, A CORRECTED LEVEL FOLLOWS
C 5 ORIGINAL VALUES ARE IN ERROR, UNCORRECTED
C 6 CORRRECTED LEVEL
C 9 LEVEL NOT CHECKED
C A-Z SUPPLIED BY NMC, HAVE CHANGED MANY TIMES OVER THE YEARS
C
C GOOD RETURNS 0 IF CODE IS 1, 2, 3, 4, OR 5; 1 OTHERWISE
C
C
C CALLING ROUTINES: READ62
C
C*«*«»«»««MVWMMWW«»M«W«WM»W«»W«WWmMW««B «• W«W«*W«M*M«M«MW WWMWMMM •«•
C
INTEGER FUNCTION GOOD (IQUAL)
CHARACTER*! IQUAL
C
GOOD - 1
IF ( IQUAL. EQ. '!' .OR. IQUAL. EQ. '2' .OR. IQUAL. EQ. '3' .OR.
1 IQUAL. EQ. '4' .OR. IQUAL.EQ. '5' } GOOD- 0
RETURN
END
™ laUUUUUJLU
GOO00020
GOO00030
GOO00040
GOO00050
GOO00060
GOO00070
G0000080
GO000090
GOO00100
GOO00110
GOO00120
GOO00130
G0000140
G0000150
GO000160
GOO00170
GOO001SO
G0000190
G0000200
GOO00210
G0000220
GOO00230
G0000240
G0000250
GO000260
GO000270
GOO00280
GOO00290
GOO00300
GO000310
GO000320
GOO00330
GO000340
/^rtrtrt A 1 CE rt
•— (jOOOOJSU
GOO00360
GOO00370
GOO003SO
GOO00390
GOO00400
GOO00410
GOO00420
GOO00430
GOO00440
111
-------
APPENDIX F
METPRO CODE LISTINGS
112
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
MAIN PROGRAM: METPRO
PURPOSE: PROGRAM CREATES THE FILE "SURFACE" FOR USE IN CTDM
METHODS: DURING THE DAY, COMPUTES USTAR AND L USING THE HOLTSLAG-VAN
ULDEN METHOD AND ZI USING 1) THE CARSON METHOD IF UPPER AIR
DATA ARE PROVIDED FOR AN CONTIGUOUS HOUR RUN, OR 2) USER-
PROVIDED VALUES OF MIXED LAYER HEIGHT FOR A RUN OF SELECTED
HOURS. AT NIGHT, COMPUTES USTAR AND L USING THE VENKATRAM
METHOD AND MIXING HEIGHT USING THE ZILITINKEVICH METHOD.
I/O: UNIT 5 INPUT OPTIONS (PROGRAM OPTIONS)
UNIT 6 OUTPUT OUTPUT (LIST OF PROGRAM OPTIONS USED)
UNIT 7 OUTPUT SURFACE (INPUT FILE TO CTDM)
UNIT 9 INPUT RAWIN (UPPER AIR DATA)
UNIT 10 INPUT SURF1 (ONSITE MET DATA)
UNIT 11 INPUT SURF2 (NWS SURFACE DATA)
UNIT 12 INPUT PROFILE (ONSITE MET PROFILE)
COMMON: PTEMP XSUMI WIND US RNET MONIN CVR TEMP
NCC HMI INIT ZILIT THS IO
EXTERNAL ROUTINES: DEFAUL HOUR HV HVNET INITT MINUTE
SENSE SUMHH SUMI SUMW TT ZZI
HDAYUS TOTAL SUN WNUS JULIAN RHOO
ZILL
INTRINSIC FUNCTIONS: SIN SQRT MIN EXP
-
GLOSSARY OF IMPORTANT VARIABLES (MRS SYSTEM USED FOR UNITS)
CH: CLOUD HEIGHT
CC: CLOUD COVER
NLEV: NUMBER OF SOUNDING LEVELS
WDSEC: WIND DIRECTION BOUNDARIES OF UPWIND FETCH SECTORS
WD: HOURLY WIND DIRECTION (NEAR 10 M) USED TO GET UPWIND
CHARACTERISTICS
RN: NET RADIATION
QR: TOTAL INCOMING RADIATION
THSTAR: THETA-STAR, THE TEMPERATURE SCALE FOR PROFILING
VONK: VON KARMAN CONSTANT
ZIOBS: OBSERVED (MEASURED) MIXED LAYER HEIGHT
ZO: SURFACE ROUGHNESS LENGTH
ALB: SURFACE ALBEDO
BOW: BOWEN RATIO
SAI: AREA UNDER Z-THETA CURVE (LEFT SIDE OF EQN 27 IN
USER GUIDE)
SAI2: AREA UNDER Z**2-THETA CURVE (LEFT SIDE OF EQN 28
IN USER GUIDE)
L: MONIN-OBUKHOV LENGTH
USTAR: SURFACE FRICTION VELOCITY
ZIL: COMPUTED (ESTIMATED) MIXED LAYER HEIGHT
T: AMBIENT TEMPERATURE (NEAR 10 METERS)
WSL: WIND SPEED AT 10 METERS
ZODAY: HOURLY SURFACE ROUGHNESS LENGTH VALUES
ZHR: HEIGHTS OF DATA FROM FILE "PROFILE"
WDHR: WIND DIRECTION VALUES FROM FILE "PROFILE"
ndiuuuxu-
MET00020
MET00030
MET00040
MET00050
MET00060
MET00070
MET00080
MET00090
MET00100
MET00110
MET00120
MET00130
MET00140
MET00150
MET00160
MET00170
MET00180
MET00190
MET00200
MET00210
MET00220
MET00230
MET00240
MET00250
MET00260
MET00270
MET00280
MET00290
MET00300
MET00320
MET00330
MET00340
MET00350
MET00360
MET00370
MET00380
MET00390
MET00400
MET00410
MET00420
MET00430
MET00440
MET00450
MET00460
MET00470
MET00480
MET00490
MET00500
MET00510
MET00520
MET00530
MET00540
MET00550
MET00560
MET00570
MET00580
MET00590
MET00600
113
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
WSHR:
TAHR:
PRS:
TMP:
PTMP:
HT:
AI:
AI2:
WIND SPEED VALUES FROM FILE "PROFILE"
AMBIENT TEMPERATURE VALUES FROM FILE "PROFILE"
PRESSURE VALUES AT SOUNDING LEVELS
AMBIENT TEMPERATURE VALUES AT SOUNDING LEVELS
POTENTIAL TEMPERATURE (THETA) VALUES AT SOUNDING
GEOPOTENTIAL HEIGHTS AT SOUNDING LEVELS
SUM OVER TIME OF AREA UNDER Z-
15-MINUTE PORTION
THETA CURVE
15-MINUTE PORTION
THETA CURVE
OF
OF SUM OVER TIME OF AREA UNDER Z**2-
C
C
c
CHARACTER*! NWSCC
INTEGER Y,M,D,JUL,H,I,YUP,Y1,M1,D1,H1
INTEGER CH(24),IHR,CC,MUP,DOT,ITIME,NLEV
INTEGER MODE,Y2,M2,D2,H2
INTEGER WDSEC(8,2),IDIFF,MISS(24)
REAL WD(24),RN,RHOCP,QR,THSTAR,VONK
REAL LAT,LONG,ZONE,RHO
REAL ZIOBS(24) ,ZO(12,8) ,ALB(12,8) ,BOW(12,8) ,SAI,SAI:2,L,,USTAR
REAL.ZIL,T,WSL,ZODAY(24)
REAL ZHR(51),WDHR(51),WSHR(51),TAHR(51)
COMMON/PTEMP/PRS(80),TMP(80),PTMP(30)
COMMON/XSUMX/HT(30),AI(80),AI2(80)
COMMON/WIND/WSL(24),A(24)
COMMON/US/USTAR(24)
COMMON/RNET/RN(24),QS(24)
COMMON/MONIN/L(24)
COMMON/CVR/CC(24)
COMMON/TEMP/T(24)
COMMON/NCC/NWSCC(24)
COMMON/HM1/SAI(80),SAI2(SO)
COMMON/INIT/QR(24)
COMMON/ZILIT/ZIL(24)
COMMON/THS/THSTAR(24)
COMMON/IO/IOPT,IOUT,ISURF,IRAWIN,ISURF1,ISURF2
COMMON/SOLANG/ANGLE(24)
ASSIGN VALUES OF WIND, TEMP IN CASE OF MISSING DATA FOR HOUR
WD(24) - 360.
WSL(24) - 5.0
T(24) - 293.
ASSIGN PROGRAM CONSTANTS (MRS UNITS)
CP - SPECIFIC HEAT OF AIR AT CONSTANT PRESSURE
G - ACCELERATION DUE TO GRAVITY
Al AND B - CONSTANTS USED IN THE MODIFIED CARSON MODEL
DEGRAD - CONSTANT TO CONVERT FROM DEGREES TO RADIANS
CP-1004.
G-9.80655
Al-0.2
B-2.5
DEGRAD-57.29578
PRES - 1013.25
OPEN INPUT FILES
IOPT - 5
MET00610
MET00620
MET00630
MET00640
LEVELSMET00650
MET00660
MET00670
MET00680
MET00690
MET00700
MET00710
MET00720
MET00730
MET00740
MET00750
MET00760
MET00770
MET00780
MET00790
MET00800
MET00810
MET00820
MET00830
MET00840
MET00850
MET00860
MET00870
MET00880
MET00890
MET00900
MET00910
MET00920
MET00930
MET00940
MET00950
MET00960
MET00970
MET00980
MET00990
MET01000
MET01010
MET01020
MET01030
MET01040
MET01050
MET01060
MET01070
MET01080
MET01090
MET01100
MET01110
MET01120
MET01130
MET01140
MET01150
MET01160
MET01170
MET01180
MET01190
MET01200
114
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
IOUT - 6
ISURF - '
IRAWIN -
ISURF1 -
ISURF2 -
INPROF »
9
10
11
12
OPEN(ISURF1,FILE-'SURF1•,STATUS-'OLD')
OPEN(IOPT,FILE-•OPTIONS',STATUS-'OLD')
OPEN(INPROF,FILE-'PROFILE•,STATUS-'OLD')
OPEN OUTPUT FILES; ASSIGN DEFAULT I/O UNIT NUMBERS
OPEN(ISURF,FILE-'SURFACE',STATUS-'UNKNOWN')
OPEN(IOUT,FILE-'OUTPUT',STATUS-'UNKNOWN•}
READ IN OPTIONS.
MODE: IF 0, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
ASSUME CONSTANT SITE CHARACTERISTICS.
IF 1, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA,
BUT ASSUME VARIABLE SITE CHARACTERISTICS.
IF 2, READ NWS SURFACE DATA, BUT NOT UPPER AIR DATA.
IF 3, READ NWS SURFACE DATA AND UPPER AIR DATA.
READ(IOPT,*) MODE
WRITE(IOUT,8010) MODE
IF(MODE.GT.l) THEN
OPEN(ISURF2,FILE-'SURF2',STATUS-'OLD')
ENDIF
IF (MODE. CT. 2)
OPEN(IRAWIN,FILE-'RAWIN',STATUS-'OLD')
READ ADDITIONAL SITE-SPECIFIC INFORMATION (IF MODE-0, INPUT
' PROVIDED IS LESS DETAILED):
1) LATITUDE, LONGITUDE, TIME ZONE
TIME ZONES: 5 EASTERN, 6-CENTRAL, 7-MOUNTAIN, 8-PACIFIC
FOR STANDARD TIME (SUBTRACT 1 HOUR FOR DAYLIGHT SAVINGS)
2) NUMBER OF WIND DIRECTION SECTORS FOR SURFACE CHARACTERISTICS
3) DEFINITION OF THE SECTORS (IF MORE THAN ONE)
4) SURFACE CHARACTERISTICS (MONTHLY VALUES FOR EACH SECTOR):
SURFACE ROUGHNESS LENGTHS
ALBEDO
BOWEN RATIO
MET01210
MET01220
MET01230
MET01240
MET01250
MET01260
MET01270
MET01280
MET01290
MET01300
MET01310
MET01320
MET01330
MET01340
MET01350
MET01360
MET01370
MET01380
MET01390
MET01400
MET01410
MET01420
MET01430
MET01440
MET01450
MET01460
MET01470
MET01480
MET01490
MET01500
MET01510
MET01520
MET01530
MET01540
MET01550
MET01560
MET01S70
MET01S80
MET01S90
MET01600
MET01610
MET01620
MET01630
MET01640
C
90
MET01650
NOTE: INPUT DATA FOR WIND DIRECTION SECTORS USES THE CONVENTION MET01660
THAT THE WIND DIRECTION IS THAT FROM WHICH THE WIND IS MET01670
BLOWING, AND THE UPWIND CHARACTERISTICS ARE THAT WHICH AREMET01680
IMPORTANT. FOR EXAMPLE, CHARACTERISTICS TO THE SOUTH OF A MET01S90
STACK WOULD BE ASSOCIATED WITH A SOUTHERLY WIND. MET01700
MET01710
IF(MODE.GT.O) GO TO 90 ' MET01720
READ(IOPT,*) LAT,LONG,ZONE,ZOCASE,ALBD,BOWEN MET01730
WRITE(IOUT,8015) LAT,LONG,ZONE,ZOCASE,ALBD,BOWEN MET01740
WRITE(IOUT,8082) MET01750
LAT - LAT/DEGRAD MET01760
GO TO 104 MET01770
MET01780
MET01790
MET01800
READ(IOPT,*) LAT,LONG,ZONE
WRITE(IOUT,8020) LAT,LONG,ZONE
115
-------
c
c
c
100
READ DATA FOR DIRECTION SECTORS (SITE CHARACTERISTICS)
READ(IOPT,*) NSEC
IF(NSEC.GT.8 .OR.NSEC.LT.l) THEN
WRITE(IOOT,7095) NSEC
STOP
ENDIF
WRITE(IOOT,8090) NSEC
IF(NSEC.GT.l) THEN
DO 100 I - 1,NSEC
READ(IOPT,*) WDSEC(I,1),WDSEC(I,2)
IF(I.EQ.l) GO TO 100
IDIFF - WDSEC(I,1) - WDSEC(I-1,2)
IF(IDIFF.LT.O) IDIFF - IDIFF + 360
IF(IDIFF.NE.l) THEN
WRITE(IOOT,7110)
STOP
ENDIF
IF(I.EQ.NSEC) THEN
IDIFF - WDSEC(1,1) - WDSEC(NSEC,2)
IF(IDIFF.LT.O) IDIFF - IDIFF + 360
IF(IDIFF.NE.l) THEN
WRITE(IOOT,7110)
STOP
ENDIF
ENDIF
CONTINOE
ELSE
WDSEC(1,1) - 1
WDSEC(1,2} - 360
ENDIF
WRITE(IOOT,8100)
WRITE(IOOT,8110)
DO 102 J - 1,NSEC
• READ(IOPT,*) (ZO(I,J),1-1,12)
READ(IOPT,*) (ALB(I,J),1-1,12)
READ(IOPT,*) (BOW(I,J),1-1,12)
WRITE(IOOT,8080) (20(1,J),1-1,12),(ALB(I,J),1-1,12),
(J,WDSEC(J,1),WDSEC(J,2),J-1,NSEC)
102
C
C
c
104
C
c
c
c
c
105
C
c
c
c
c
CONTINUE
IF(MODE.LT.3) WRITE(IOOT,8082)
WRITE(IOOT,8085)
CONVERT LAT FROM DEGREES TO RADIANS
LAT-LAT/DEGRAD
CONTINOE
START HOOR LOOP.
CHECK FOR DATE CONSISTENCY BETWEEN ONSITE AND OFFSITE DATA IF
MODE > 1.
H - 1
CONTINOE
READ FROM SURF1: YEAR, MONTH, DAY, HOOR, TOTAL INCOMING SOLAR
RADIATION, NET RADIATION, OBSERVED MIXED LAYER HT (M), CLOOD
HEIGHT (100'S OF FEET), CLOOD COVER (TENTHS)
MET01810
MET01320
MET01830
MET01340
MET01850
MET01360
MET01870
MET01880
MET01890
MET01900
MET01910
MET01920
MET01930
MET01940
MET01950
MET01960
MET01970
MET01980
MET01990
MET02000
MET02010
MET02020
MET02030
MET02040
MET02050
MET02060
MET02070
MET02080
MET02090
MET02100
MET02110
MET02120
MET02130
MET02140
MET02150
MET02160
MET02170
MET02180
MET02190
MET02200
MET02210
MET02220
MET02230
MET02240
MET02250
MET02260
MET02270
MET02280
MET02290
MET02300
MET02310
MET02320
MET02330
MET02340
MET02350
MET02360
MET02370
MET02380
MET02390
MET02400
116
-------
c
c
c
c
c
c
1
1
c
c
c
c
c
c
c
c
c
c
c
c
READ(ISURF1,*,END-900) Y,M,D,IHR,QRHR,RNHR,ZIOHR,CHHR,CCHR
IF(MODE.GT.2 .AND. IHR.NE.H) THEN
WRITE(IOUT,7135) Y,M,D,IHR,H
STOP
ENDIF
MISS(IHR) • 0
QR(IHR) - QRHR
RN(IHR) - RNHR
ZIOBS(IHR) - ZIOHR
CH (CLOUD HT) IS READ BUT NOT USED IN THIS VERSION OF METPRO
CH(IHR) - CHHR
CC(IHR) - CCHR
IF(NODE.EQ.O) THEN
ZODAY(IHR) - ZOCASE
IF(CC(IHR).LT.O) THEN
WRITE(IOUT,714S) Y,M,D,IHR
STOP
ENDIF
ENDIF
READ PROFILE TO GET WD, WS, T FROM 10 METERS
WD(IHR) - -999.
WSL(IHR) - -999.
T(IHR) - -999.
WDB10 —999.
WSB10 —999.
TAB10 «-999.
DO 110 IHT - 1,51
READ(INPROF, *) Y1,M1,D1,H1,ZHR(IHT),JFLAG,
HDHR(IBT),WSHR(IHT),TAHR(IHT)
IF(Y.NB.Yl.OR.M.NE.Ml.OR.D.NE.Dl.OR.IHR.NE.Hl)
THEN
WRITE(IOUT,7125) Y,M,D,IHR,Y1,M1,D1,H1
STOP
ENDIF
SEARCH FOR 10-M VALUES OF:
WIND DIRECTION TO ASSIGN SURFCE ROUGHNESS LENGTH (FUNCTION OF
DIRECTION) FOR THIS HOUR;
WIND SPEED FOR COMPUTING L, U*;
TEMPERATURE TO ASSIGN "SURFACE" AMBIENT TEMPERATURE
USE INTERPOLATION WHERE POSSIBLE
IF(ZHR(IHT) .LT. 10.0 .AND. JFLAG .LT. 1) GO TO 108
NOW HAVE FOUND THE 10-M LEVEL OR THE FIRST LEVEL ABOVE 10 M
IF(WDHR(IHT).GT.O.O .AND. WD(IHR).LT.0.0) THEN
IF(ABS(ZHR(IHT) - 10.0) .LT. 0.5) THEN
WD(IHR) • WDHR(IHT)
ELSE IF(WDB10 .LT. 0.0) THEN
WD(IHR) - WDHR(IHT)
ELSE
FRAC - (10. - WDB10H)/(ZHR(IHT) - WDB10H)
WD(IHR) » (1.0-FRAC) * WDB10 + FRAC * WDHR(IHT)
ENDIF
MET02410
MET02420
MET02430
MET02440
MET02450
MET02460
MET02470
MET02480
MET02490
MET02500
MET02510
MET02520
MET02530
MET02540
MET02550
MET02560
MET02570
MET02580
MET02590
MET02600
MET02610
MET02620
MET02630
MET02640
MET02650
MET02660
MET02670
MET02680
MET02690
MET02700
MET02710
MET02720
MET02730
MET02740
MET02750
MET02760
MET02770
MET02780
MET02790
MET02800
MET02310
MET02820
MET02830
MET02840
MET02850
MET0286Q
MET02870
MET02880
MET02890
MET02900
MET02910
MET02920
MET02930
HET02940
MET02950
MET02960
MET02970
MET02980
MET02990
MET03000
117
-------
108
C
c
C
110
112
C
c
c
c
ENDIF
IF(WSHR(IHT).GT.OiO .AND. WSL(IHR).LT.0.0) THEN
IF(ABS(ZHR(IHT) - 10.0) .LT. 0.5) THEN
WSL(IHR) • WSHR(IHT)
ANEM - 10.0
ELSE IF(WSB10 .LT. 0*0) THEN
WSL(IHR) - WSHR(IHT)
ANEM - ZHR(IHT)
ELSE
FRAC - (10. - WSB10H)/(ZHR(IHT) - WSB10H)
WSL(IHR) - (1.0-FRAC) * WSBLO + FRAC * WSHR(IHT)
ANEM - 10.0
ENDIF
ENDIF
IF(TAHR(IHT).CT.0.0 .AND. T(IHR).LT.0.0) THEN
IF(ABS(ZHR(IHT) - 10.0) .LT. 0.5) THEN
T(IHR) - TAHR(IHT)
ELSE. IF(TAB10 .LT. 0.0) THEN
T(IHR) - TAHR(IHT)
ELSE
FRAC - (10. - TAB10H)/(ZHR(IHT) - TAB10H)
T(IHR) - (1.0-FRAC) * TAB10 +• FRAC * TAHR(IHT)
ENDIF
ENDIF
IF(JFLAG.EQ.l) GO TO 112
IF BELOW 10 METERS, STORE VALUES FOR POSSIBLE INTERPOLATION
IF(WDHR(IHT) .OT. 0.0) THEN
WDB10 • WDHR(IHT)
WDB10H - ZHR(IHT)
ENDIF
IF(WSHR(IHT) .GE. 0.0} THEN
WSB10 - WSHR(IHT)
WSB10H • ZHR(IHT)
ENDIF
IF(TAHR(IHT) .GT. 0.0) THEN
TAB10 - TAHR(IHT)
TAB10H - ZHR(IHT)
ENDIF
CONTINUE
IF(MODE.GE.2) THEN
READ(ISURF2,7030) Y2,M2,D2,H2,NWSCC(IHR)
IF(Y.NE.Y2.0R.M.NE.M2.0R.D.NE.D2.0R.IHR.NE.H2+1)
1 THEN
WRITE(IOUT,7130) Y,M,D,IHR,Y2,M2,D2,H2+1
STOP
ENDIF
ENDIF
IF MISSING DATA, PREPARE TO WRITE NEGATIVE VALUES IN SURFACE;
PERSIST WIND DIRECTION TO GET SITE CHARACTERISTICS FOR MODE 3
IF(WD(IHR).LT.0.0 .OR. WSL(IHR).LT.0.0 .OR. T(IHR).LT.0.0) THEN
WRITE(IOOT,7140) Y,M,D,IHR
IF(MODE .LE. 2) THEN
WRITE(ISURF,6020) Y,M,D,JUL,IHR
GO TO 105
ELSE
MET03010
MET03020
MET03030
MET03-040
MET03050
MET03060
MET03070
MET03080
MET03090
MET03100
MET03110
MET03120
MET03130
MET03140
MET03150
MET03160
MET03170
MET03180
MET03190
MET03200
MET03210
MET03220
MET03230
MET03240
MET03250
MET03260
MET03270
METO-3280
MET03290
MET03300
MET03310
MET03320
MET03330
MET03340
MET03350
MET03360
MET03370
MET03380
MET03390
MET03400
MET03410
MET03420
MET03430
MET03440
MET03450
MET03460
MET03470
MET03480
MET03490
MET03500
MET03510
MET03520
MET03S30
MET03540
MET03550
MET03560
MET03570
MET03580
MET03590-
MET03600
118
-------
c
c
c
c
c
c
c
c
c
c
c
115
120
125
C
c
c
c
128
C
c
c
c
c
c
STORE DATA FOR 24 HOURS BEFORE PRINTING FOR MODE 3
• MISS(IHR) • 1
IF(IHR.EQ.l) THEN
LHR - 24
ELSE
LHR - IHR-1
ENDIF
1F(WD(IHR).LT.0.0) WD(IHR) - WD(LHR)
IF(WSL(IHR).LT.0.0) WSL(IHR) - WSL(LHR)
IF(T(IHR).LT.0.0) T(IHR) - T(LHR)
ENDIF
ENDIF
INITIALIZE SENSIBLE HEAT FLUX TO ZERO FOR MODE 3
QS(IHR)-0.0
IF(IHR.GT.l .AND. MODE.GT.2) GO TO 115
CALL JULIAN(Y,M,D,JUL)
JD - JUL
IF(JD.EQ.366) JD - 1
CALCULATE SOLAR ELEVATION ANGLES
CALL SUN(LAT,LONG,ZONE,JD,TSR,TSS)
FOR MODE 0, ALREADY HAVE HOURLY SITE CHARACTERISTICS
IF(MODE.EQ.O) GO TO 128
DO 120 J - 1,NSEC
IF(WD(IHR) .LT.WDSEC(J,2)+0.1.AND.WD(IHR) .GT.WDSEC(J, 1) -0.1)
1 GO TO 125
IF(WD(IHR).LT.WDSEC(J,2)+0.1.AND.WDSEC(J,1).GT.WDSEC(J,2))
1 GO TO 135
IF(WD(IHR).GT.WDSEC(J,1)-0.1.AND.WDSEC(J,1).GT.WDSEC(J,2))
1 GO TO 125
CONTINUE
ISEC • MIN(J,NSEC)
ZODAY(IHR) - 20(M,ISEC)
CALCULATE ALBEDO FOR THIS HOUR, ACCOUNTING FOR SOLAR
ELEVATION ANGLE
ALBO - ALB(M,ISEC)
C - 1.0 - ALBD
BB - -0.5 * C*C
ANG - ANGLE(IHR) * 57.29578
IF(ANG.LE.O.O) THEN
ALBEDO -1.0
ELSE
«
EQN 7 FROM USERS GUIDE
ALBEDO - ALBD + C*EXP(-0.1*ANG + BB)
ENDIF
SUBSTITUTE NWS CLOUD COVER IF NECESSARY AND COMPUTE HEAT FLUX
CALL DEFAUL(MODE,M,D,Y,IHR,ALBEDO)
MET03610
MET03620
MET03630
MET03640
MET03650
MET03660
MET03670
MET03680
MET03690
MET03700
MET03710
MET03720
MET03730
MET03740
MET03750
MET03760
MET03770
MET03780
MET03790
MET03800
MET03810
MET03820
MET03830
MET03840
MET03850
MET03360
MET03870
MET03880
MET03890
MET03900
MET03910
MET03920
MET03930
MET03940
MET03950
MET03960
MET03970
MET03980
MET03990
MET04000
MET04010
MET04020
MET04030
MET04040
MET04050
MET04060
MET04070
MET04080
MET04090
MET04100
MET04110
MET04120
MET04130
MET04140
MET04150
MET04160
MET04170
MET04180
MET04190
MET04200
119
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
CALCULATE THE DENSITY OF AIR FOR THE HOUR IN KG/M**3
CALL RHOO(PRES,T(IHR),RHO)
MET04210
MET04220
MET04230
HET04240
MET04250
MET04260
MET04270
MET04280
MET04290
MET04300
MET04310
DO NIGHTTIME OR DAYTIME TASKS:
COMPUTE NIGHTTIME USTAR & L VALUES USING THE VENKATRAM METHOD.
OTHERWISE, COMPUTE NET RADIATION IF DERIVED FROM TOTAL INCOMING
SOLAR RADIATION. COMPUTE THE SENSIBLE HEAT FLUX FROM THE NET
RADIATION. QR IS THE NET RADIATION, QS THE SENSIBLE HEAT FLUX.
IF NIGHTTIME, SENSIBLE HEAT FLUX IS NOT NEEDED TO COMPUTE ZO,L.
COMPUTE DAYTIME USTAR 6 L VALUES USING HOLTSLAG-VAN 0LDEN METHODMET04320
MET04330
IF(RN(IHR).LE.O .OR. IHR.GT.TSS+1. .OR. IHR.LT.TSR) THEN
CALL WNUS(IHR,ANEM,ZODAY(IHR))
ELSE
IF(MODE .GT. 0) BOWEN - BOW(M,ISEC)
CALL HV(IHR,PRES,BOWEN)
IF(QS(IHR).LE.0.0) THEN
CALL WNUS(IHR,ANEM,ZODAY(IHR))
ELSE
CALL HDAYUS(IHR,RHO,ANEM,ZODAY(IHR))
ENDIF
ENDIF •
CHECK FOR L VALUES EXCEEDING THE RANGE OF THE FORMAT FIELD
L(IHR)»9999.
L(IHR)—999.
0) THEN
L(IHR)—1.
1
2
C
C
C
C
c
c
c
150
IF(L(IHR).GT.9999.)
IF(L(IHR).LT.-999.)
IF(ABS(L(IHR)).LT.l
IF(L(IHR).LT.O)
IP(L(IHR).GT.O)
ENDIF
COMPUTE ZILITINKEVICH SURFACE LAYER HEIGHTS
CALL ZILL(LAT,IHR)
H f H + 1
IF(H.EQ.2S) H - 1
IF(H.EQ.l .AND. MODE.GT.2) GO TO 150
IF(MODE.LE.2)
WRITE(ISURF,6010) Y,M,D,JUL,IHR,ZIOBS(IHR),ZIL(IHR),USTAR(IHR)
L(IHR),ZODAY(IHR)
GO TO 105
END HOUR LOOP; READ IN UPPER AIR DATA AND COMPUTE CONVECTIVE
MIXED LAYER HEIGHTS ONLY IF DOING A CONTIGUOUS HOUR RUN
READ IN UPPER AIR SOUNDING FOR 12Z; COMPUTE MODIFIED
MIXED LAYER HEIGHTS FOR APPLICABLE HOURS
READ(IRAWIN,7040) YUP,MOP,DUP,ITIME,NLEV '
READ(IRAWIN,7050) (PRS(I),HT(I),TMP(I),I-1,NLEV)
IF(ITIME.NE.12) GO TO 150
ISOATE - Y*10000 + M*100 + D
IUDATE - YUP*10000 + MUP*100 + DUP
IF(ISDATE.GT.IUDATE) GO TO 150
IF(ISDATE.LT.IUDATE) THEN
WRITE(IOUT,7160) Y,M,D,YUP,MUP,DUP
CARSON
MET04340
MET04350
MET04360
MET04370
MET04380
MET04390
MET04400
MET04410
MET04420
MET04430
MET04440
MET04450
MET04460
MET04470
MET04480
MET04490
MET04500
METQ4510
MET04520
MET04530
MET04540
MET04550
MET04560
MET04570
MET04580
MET04590
MET04600
MET04610
MET04620
MET04630
MET04640
MET04650
MET04660
MET04670
MET04680
MET04690
MET04700
MET04710
MET04720
MET04730
MET04740
MET04750
MET04760
MET04770
MET04780
MET04790
MET04800
120
-------
c
c
c
160
C
C
C
c
c
c
c
c
c
c
170
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
STOP
ENDIF
CALCULATE POTENTIAL TEMPERATURE PROFILE
DO 160 ILEV-1,NLEV
PTMP(ILEV)-TMP(ILEV)*(1000./PRS(ILEV))**0. 285714
HT ( ILEV) -HT( ILEV) -HT(1)
CONTINUE
CONVERT SOUNDING TIME (HH) TO (HHMM)
ITIME-ITIME*100
PTMPM-PTMP(l)
MET04810
MET04820
MET04830
MET04840
MET04850
MET04860
MET04870
MET04880
MET04890
MET04900
MET04910
MET04920
MET04930
MET04940
MET04950
MET04960
MET04970
MET04980
MET04990
MET05000
MET05010
MET05020
MET05030
MET05040
METOS050
MET05060
MET05070
MET05080
MET05090
MET05100
MET05110
I MINUTES FROM MIDNIGHT TO TIME OF "INITIAL TEMP PROFILEMET05120
AI2(1)-0.0
SAI(1)-0.0
SAI2(1)-0.0
COMPUTE POT TEMP INTEGRALS FOR MODIFIED CARSON MIXED LAYER HTS
DO 170 ILVLS-2,NLEV
CALL SUMI(ILVLS,PTMPM)
COMPUTE INTEGRAL OF Z WRT THETA(POT TEMP) FOR ENTIRE PROFILE
SAI CILVLS) -AI (ILVLS) +SAI (ILVLS-1)
COMPUTE INTEGRAL OF Z**2 WRT THETA FOR ENTIRE PROFILE
SAI2 (ILVLS)-AI2 (1LVLS) -t-SAI2 (ILVLS-1)
CONTINUE
COMPUTE
DETERMINE SFC TEMP (K) AT START TIME
DETERMINE MINUTES FROM MIDNIGHT OF LAST HOUR, ITLST
SET TIME INCREMENT FOR ZI CALCULATIONS
CALL MINUTE(ITIMB, ITIMM)
CALL INITTCITFST,ITLST,ITIMM)
CALL TT(ITIMM,TO)
CALL MINUTE(ITLST*100,ITLSTM)
INTEGRATE IN 15-MINUTE INCREMENTS
IN015
ITM-ITIMM
OLDHEAT-0.
DO 210 11-1,100
ITM-ITM-UNC
IF(ITM.GT.ITLSTM) GO TO 220
DETERMINE INTEGRATED SENSIBLE HEAT FLUX, HEAT (J/M**2)
COMPUTE AREA UNDER USTAR**3 CURVE WRT TIME, USTR3 (M**3/S**2)
CALL SUMHH(ITM,HEAT,OLDHEAT)
CALL SUMW(ITIMM,ITM,USTR3)
CONVERT FROM J/M**2 TO CAL/M**2
CONVERT RHO TIMES CP TO CAL/(M**3
HEAT-HEAT/4.187
K)
MET05130
MET05140
MET05150
MET05160
MET05170
MET05180
MET05190
MET05200
MET05210
MET05220
METOS230
MET05240
MET05250
MET05260
MET05270
MET05230
MET05290
METOS300
MET05310
MET05320
MET05330
MET05340
MET05350
MET05360
MET05370
MET05380
MET05390
MET05400
121
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
190
210
220
C
c
c
230
C
900
C
6010
6020
7030
7040
7050
7095
7110
7125
1
2
RHOCP-(RHO*CP)/4.187
EQUATIONS 27 AND 28 FROM USER'S GUIDE
XAI-HEAT/(RHOCP)*(1.+2.*A1)
XAI2-2.*B*TO/G*USTR3
DETERMINE HEIGHTS (M) CORRESPONDING TO GIVEN AREAS IfNDER
POTENTIAL TEMP PROFILE; DETERMINE HOURS FROM MINUTES
CALL ZZI(NLEV,XAI,XAI2,ZI,ZI2)
UPDATE ZIL ARRAY IF AT THE END OF AN HOUR
CALL HOUR(ITM,KHR)
DO 190 IHOR-1,24
IHOUR-IHOR*100
IF(KHR.EQ.IHOUR) THEN
DETERMINE WHETHER-ZI PREDICTED IS CONVECTIVE OR NEUTRAL
VALUE (WHICHEVER IS GREATER)
IF(ZIL(IHOR).LT.AMAX1(ZI,ZI2)) THEN
IF(ZI.GE.ZI2) THEN
ZIL(IHOR)-ZI
ELSE
ZIL(IHOR)-ZI2
ENDIF
ENDIF
ENDIF
CONTINUE
CONTINUE
CONTINUE
WRITE 24 HOURS OF DATA TO OUTPUT FILE
DO 230 IHOR-1,24
IF(MISS(IHOR).EQ.0) THEN
WRITE(ISURF,6010) Y,M,D,JUL,IHOR,ZIOBS(IHOR),ZIL(IHOR) ,
USTAR(IHOR),L(IHOR),ZODAY(IHOR)
ELSE
WRITE(ISURF,6020) Y,M,D, JUL,IHOR
ENDIF
CONTINUE
GO TO 105
STOP
FORMAT(3(12,IX),13,IX,12,5X,2F10.0,F10.3,F10.1,E10.3)
FORMAT(3(12,IX),13,IX,12,5X,2(4X,'-9999.'),' -999.999',
' -9999.9',' -.999E+031)
FORMAT(T6,12,T8,12,T10,12,T12,12,T79,Al)
FORMAT(22X,4(12),38X,I2)
FORMAT(4(3X,F6.1,1X,F5.0,1X,F5.1,8X))
FORMAT(//,10X,'NUMBER OF WIND DIRECTION SECTORS FOR SPECIFYING1
/,10X,' SURFACE CHARACTERISTICS IS OUT OF BOUNDS: ',14)
FORMAT(//,10X,'ERROR IN WIND DIRECTION SECTOR SPECIFICATION')
FORMAT(//,10X,'DATE INCONSISTENCY BETWEEN ONSITE AND PROFILE ',
'DATA,',/,10X,' OR HOUR IS OUT OF SEQUENCE FOR THIS DAY:1,//,
15X,'ONSITE DATE (YYMMDDHH) IS ',412,'; PROFILE DATE ',
MET05410
MET05420
MET05430
MET05440
MET05450
MET05460
MET05470
MET05480
MET05490
MET05500
MET05510
MET05520
MET05530
MET05540
MET05550
MET05560
MET05570
MET05580
MET05590
MET05600
MET0561Q
MET05620
MET05630
MET05640
MET05650
MET05660
MET05670
MET05680
MET05690
MET05700
MET05710
MET05720
MET05730
MET05740
MET05750
MET05760
MET05770
MET05780
MET05790
MET05300
MET05310
MET05820
MET05830
MET05340
MET05350
METOS360
MET05370
MET05380
METQ5390
MET05900
MET05910
MET05920
MET05930
MET05940
,MET05950
MET05960
MET05970
MET05980
MET05990
MET06000
122
-------
7130
1
2
3
7135
7140
7145
7160
8010
8015.
1
2
1
2
3
4
5
6
7
8
1
2
3
8020
8080
8082
1
2
8085
8090
8100
8110
1
2
3
'(YYMMDDHH) IS ',412)
FORMAT (//,10X, 'DATE INCONSISTENCY BETWEEN ONSITE AND OFFSITE '
•DATA, ',/,10X, ' OR HOUR IS OUT OF SEQUENCE FOR THIS DAY:1,//
15X, 'ONSITE DATE (YYMMDDHH) IS ',412, '; OFFSITE DATE ',
'(YYMMDDHH) IS ',412)
FORMAT (//,10X, 'HOUR OUT OF SEQUENCE FOR THIS DAY: ' ,//,15X,
'ONSITE DATE (YYMMDDHH) IS ',412,'; HOUR EXPECTED IS ',12)
FORMAT(/,10X, 'MISSING WIND AND/OR TEMPERATURE DATA FOR ',/,15X
'(MM DD YY HH) :',4(1X,I2), '; MISSING DATA WRITTEN TO "SURFACE"
FORMAT (//,10X, 'MISSING CLOUD COVER DATA: ' ,//,15X,
'DATE (YYMMDDHH) IS ',412)
FORMAT (//,10X, 'DATE INCONSISTENCY BETWEEN SURFACE AND UPPER ',
'AIR DATA :',//,15X, 'SURFACE DATE (YYMMDD) IS ',312,
'; UPPER AIR DATE (YYMMDD) IS ',312)
FORMAT (//, IX, 'CTDM MET PRE-PROCESSOR PROGRAM (METPRO) ',
' VERSION 2.1 LEVEL 871022 ',//,
10X,' PROGRAM OPTIONS: ' ,//,15X, 'MODE - ',11,
' IF 0, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA/',/,
23X, ' ASSUME CONSTANT SITE CHARACTERISTICS ' ,/,23X,
' IF 1, DO NOT READ NWS SURFACE DATA NOR UPPER AIR DATA, ',/,
23X, ' BUT ASSUME VARIABLE SITE CHARACTERISTICS' ,/, 2 3X,
1 IF 2, READ NWS SURFACE DATA, BUT NOT UPPER AIR DATA',/,23X,
' IF 3, READ NWS SURFACE DATA AND UPPER AIR DATA1,//)
FORMAT (10X, 'LATITUDE (DEG NORTH) - ',F6.2,', LONGITUDE (DEG ',
•WEST) - »,F7.2,/,10X, 'TIME ZONE (HOURS AFTER GMT) - ',F5.1,/,
10X, 'FIXED VALUES OF SURFACE CHARACTERISTICS: ',/, 2 OX, '20 - ',
F6.4,'M, ALBEDO - ',F4.2,', BOWEN RATIO - ',F5.2,//)
FORMAT (10X, 'LATITUDE (DEG NORTH) - ',F6.2,', LONGITUDE (DEG WE
•ST) - «,F7.2,/,10X, 'TIME ZONE (HOURS AFTER GMT) - ',F5.1,//)
FORMAT(1X, *ZO: ' ,T9,12F6.3,/,1X, 'ALBEDO: ' ,12F6.3,/,
IX, 'BOWEN: «,12F6.3,/,1X, '(SECTOR ',11, ')',/)
FORMAT (/, IX, 'WARNING: CONVECTTVE MIXED LAYER HEIGHTS ARE NOT
'COMPUTED IN THIS MODE; ',/, IX, 'MISSING VALUES WILL BE ',
•WRITTEN TO THE SURFACE FILE FOR UNSTABLE CONDITIONS.')
FORMAT (//)
FORMAT (10X, 'f OF WIND DIRECTION SECTORS FOR SPECIFYING',
' SURFACE CHARACTERISTICS - «,I1,//)
FORMAT (/,15X, 'WIND DIRECTION SECTORS AND ANGLE RANGES:',//,
FORMAT (//,10X, 'SECTOR VALUES FOR ',
•SURFACE ROUGHNESS (M) , ALBEDO, AND BOWEN RATIO:1,//,
IX, 'VARIABLE JAN FEB MAR APR MAY JUN ',
•JUL AUG SEP OCT NOV DEC1,/)
END
MET06010
MET06020
MET06030
MET06040
MET06050
MET06060
MET06070
MET06080
)MET06090
MET06100
MET06110
MET06120
MET06130
MET06140
MET06150
MET06160
MET06170
MET06180
MET06190
MET06200
MET06210
MET06220
MET06230
MET06240
MET06250
MET06260
MET06270
,MET06280
MET06290
MET06300
MET06310
MET06320
MET06330
MET06340
MET06350
MET06360
MET06370
MET06380
MET06390
MET06400
MET06410
MET06420
MET06430
MET06440
MET06450
123
-------
C SUBROUTINE: CUBIC
C
C PURPOSE: SOLVES A CUBIC EQUATION: 2**3 + A*Z**2 + B*Z + C - 0
C
C ARGUMENTS
C PASSED:
C A REAL COEFFICIENT OF Z**2
C B REAL COEFFICIENT OF Z**l
C C -REAL COEFFICIENT OF Z**0
C
C RETURNED:
C Z REAL SOLUTION OF CUBIC EQUATION
C
C INTRINSIC FUNCTIONS: DSQRT, DSIGN, DABS,, DACOS, DCOS
C
C
SUBROUTINE CUBIC(A, B,C,Z)
C
C SOLVES FOR ONE ROOT OF THE CUBIC EQUATION:
C Z**3 + A*Z**2 + B*Z + C - 0
C
IMPLICIT DOUBLE PRECISION (A-H,0-Z)
REAL A,B,C,Z
DATA ONE/1.0/
A3-A/3.
AP»B-A*A3
BP-2.*A3**3-A3*B+C
AP3-AP/3 .
BP2-BP/2.
TROOT-BP2 *BP2+AP3 *AP3 *AP3
IF(TROOT.LE.O.O)GO TO 50
TR-DSQRT (TROOT)
APP- ( -BP2+TR) **0 . 3 3 3 3 3 3
BSV—BP2-TR
IF(BSV.EQ.O.O)GO TO 45
SGN-DSIGN (ONE , BSV)
- BPP-SGN* (DABS (BSV) ) **0. 333333
Z-APP+BPP-A3
RETURN
45 CONTINUE
C BSV (& BPP) - 0.0
Z-APP-A3
RETURN
50 CM-2 . *DSQRT ( -AP3 }
ALPHA-DACOS (BP/ ( APS *CM) ) /3 .
Z»CM*DCOS (ALPHA) -A3
RETURN
END
CUB00020
CUB00030
CUB00040
CUB00050
CUB00060
CUB00070
CUB00080
CUB00090
CUB00100
CUB00110
CUB00120
CUB00130
CUB00140
CUB00150
CUB00160
CUB00180
CUB00190
CUB00200
CUB00210
CUB00220
CUB00230
CUB00240
CUB00250
CUB00260
CUB00270
CUB00280
CUB00290
CUB00300
CUB00310
CUB00320
CUB00330
CUB00340
CUB00350
CUB00360
CUB00370
CUB00330
CUB00390
CUB00400
CUB00410
CUB00420
CUB00430
CUB00440
CUB00450
CUB00460
CUB00470
CUB00480
CUB00490
CUB00500
CUB00510
124
-------
C SUBROUTINE: DEFAUL
C
C PURPOSE: CHECK FOR MISSING DATA
C
C METHOD: SUBSTITUTE NWS DATA FROM SURF2 IF ON-SITE DATA FROM SURF1 IS
C MISSING. FLAG OR PERSIST WHERE NWS DATA IS CALM.
C
C ARGUMENTS PASSED: MODE INTEGER EXECUTION MODE (0, 1, 2, OR
C M ' INTEGER MONTH
C D INTEGER DAY
C Y INTEGER YEAR
C IHR INTEGER HOUR
C ALBEDO REAL ALBEDO FOR THIS HOUR
C
C I/O: UNIT IOUT OUTPUT FOR WARNING OF MISSING CLOUD COVER DATA
C
C COMMON: TEMP WIND INIT NCC RNET CVR IO
C
C CALLING ROUTINES: MAIN PROGRAM
C
C EXTERNAL ROUTINES: HVNET TOTAL
SUBROUTINE DEFAUL (MODE , M , D , Y , IHR , ALBEDO )
C
CHARACTER*! NWSCC
INTEGER IHR, M,D,Y,CC, MODE
C
COMMON/TEMP/T (24)
COMMON/ WIND/WSL( 24) ,A(24)
COMMON/ INIT/QR ( 2 4 )
COMMON/NCC/NWSCC ( 24 )
COMMON/RNET/RN ( 2 4 ) , QS ( 2 4 )
COMMON/CVR/CC (24)
COMMON/IO/IOPT, IOUT, ISURF, IRAWIN, ISURF1, ISURF2
C
C CHECK FOR NWS CLOUD COVER DATA IF MODE - 2 OR 3
C IF MODE - 0 OR 1, CLOUD COVER IS PROVIDED IN "SURF1"
c
IF(MODE.LE.l) GO TO 100
I?(CC(IHR) .LT.O) THEN
C CHECK FOR MISSING NWS CLOUD COVER
IF (NWSCC ( IHR) .EQ.' ') THEN
WRITE (IOUT, 7 000) M,D,Y,IHR
CC(IHR) « 0
END IF
IF(NWSCC(IHR) .EQ.1-1) THEN
CC(IHR) - 10
ELSE
READ (NWSCC (IHR) ,7010) CC(IHR)
END IF
ENDIF
C
C IF NET RADIATION IS MISSING, BUT TOTAL INCOMING SOLAR RADIATION
C NOT MISSING, USE TOTAL INCOMING RADIATION TO COMPUTE THE NET.
C IF BOTH NET AND TOTAL INCOMING SOLAR RADIATION ARE MISSING,
C CALCULATE FROM THE CLOUD COVER AND SOLAR ELEVATION ANGLE
C USING THE HOLTSLAG METHOD.
C IF INCOMING SOLAR RADIATION IS MISSING, CALCULATE FROM THE CLOUD
C COVER AND SOLAR ELEVATION ANGLE USING THE HOLTSLAG METHOD.
DEF00020
DEF00030
DEF00040
DEF00050
DEF00060
DEF00070
DEFOOOSO
3)DEF00090
DEF00100
DEF00110
DEF00120
DEF00130
DEF00140
DEF00150
DEF00160
DEF00170
DEF00180
DEF00190
DEF00200
DEF00210
DEF00220
DEF00240
DEF00250
DEF00260
DEF00270
DEF00280
DEF00290
DEF00300
DEF00310
DEF00320
DEF00330
DEF00340
DEF00350
DEF00360
DEF00370
DEF00380
DEF00390
DEF00400
DEF00410
DEF00420
DEF00430
DEF00440
DEF00450
DEF00460
DEF00470
DEF00430
DEF00490
DEFOOSOO
DEF00510
DEF00520
DEF00530
ISDEF00540
DEF00550
DEF00560
DEF00570
DEF00530
DEF00590
DEF00600
125
-------
C • DEF00610
100 IF(QR(IHR) .LT.-900.) CALL TOTAL (IHR). DEF00620
IF(RN(IHR).LT.-900.) CALL HVNET(IHR,ALBEDO) DEF00630
RETURN ' DEF00640
C DEF006SO
7000 FORMAT(/,10X,'MISSING NWS CLOUD COVER ON (MM DD YY HH):•,4(IX,12),DEF00660
1 //,10X,'**CLOUD COVER SET TO 0 IN ORDER TO CONTINUE EXECUTION**',DEF00670
2 //,10X,'IF NECESSARY, PLEASE EDIT SURF2 MANUALLY AND RERUN',/) DEF006SO
7010 FORMAT(II) ' DEF00690
C ^ DEF00700
END DEF00710
126
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
1<
c
c
c
c
c
c
c
c
c
SUBROUTINE: HDAYUS
PURPOSE: THIS ROUTINE CALCULATES USTAR AND L FOR THE UNSTABLE CASES
(L < 0) USING THE HOLTSLAG-VAN ULDEN TECHNIQUE
METHODS: ITERATE OVER USTAR AND L
ASSUMPTIONS: CONVERGENCE IS REACHED WHEN TWO CONSECUTIVE ESTIMATES OF
L ARE WITHIN 1%
ARGUMENTS PASSED: I INTEGER HOUR
RHO REAL RHO
ANEM REAL ANEMOMETER HEIGHT
ZO REAL ROUGHNESS LENGTH
COMMON: SUMV US RNET WIND THS TEMP
INTRINSIC FUNCTIONS: ABS ALOG ATAN
SUBROUTINE HDAYUS (I, RHO, ANEM, 20)
INTEGER I,ITER
REAL PSIZL, PSIZOL, RHO, EPS , VONK, ANEM, ZO , L, X, XO , LASTL, CP
COMMON/US/USTAR (24)
COMMON/RNET/RN(24) ,QS(24)
COMMON/MONIN/L( 24 )
COMMON/TEMP/T ( 24 )
COMMON/WIND/WSL(24) ,A(24)
COMMON/THS/THSTAR ( 24 )
INITIALIZE VARIABLES AND PSI VALUES'
DATA CP/1004./, PI/3. 14159/,G/9.8065S/, EPS/0. Ol/, VONK/0.4/
PSIZL-0.0
PSIZOL-0 . 0
ITER-1
BEGIN ITERATION LOOP OVER MONIN-OBUKHOV LENGTH AND USTAR
USTAR IS USED IN EQN 14 OF USER'S GUIDE
L IS USED IN EQN 1 OF USER'S GUIDE
)0 USTAR(I)-VONK*WSL(I)/(ALOG(ANEM/ZO)-PSIZL+PSIZOL)
L(I)-(-RHO*CP*T(I) *USTAR(I) **3)/(VONK*G*QS(I) )
ITERATION LOOP CHECK: STOP WHEN WITHIN 1% OF PRECEDING VALUE
IF(ITER.NE.l) THEN
IF (ABS (L(I) -LASTL) .LT. ABS (EPS*L(I) ) ) GOTO 110
END IF
«
EQN 18 OF USER'S GUIDE:
X-(1.-15.*(ANEM/L(I)))**0.2S
XO-(1.-15.*(ZO/L(I)))**0.25
EQN 16 OF USER'S GUIDE
PSIZL-2 . *ALOG ( ( 1 . +X) /2 . ) +ALOG ( ( 1 . +X*X) /2 . ) -2 . *ATAN (X) +PI/2 .
•nuxuuuxu
HDY00020
HDY00030
HDY00040
HDY00050
HDY00060
HDY00070
HDY00080
HDY00090
HDY00100
HDY00110
HDY00120
HDY00130
HDY00140
HDY00150
HDY00160
HDY00170
HDY00180
HDY00190
• HTW n n i n f\
•nux uu*uu
HDY00210
HDY00220
HDY00230
HDY00240
HDY00250
HDY00260
HDY00270
HDY00280
HDY00290
HDY00300
HDY00310
HDY00320
HDY00330
HDY00340
HDY00350
HDY00360
HDY00370
HDY00380
HDY00390
HDY00400
HDY00410
HDY00420
HDY00430
HDY00440
HDY00450
HDY00460
HDY00470
HDY00480
HDY00490
HDY00500
HDY00510
HDY00520
HDY00530
HDY00540
HDY00550
HDY00560
HDY00570
HDY00580
HDY00590
HDY00600
127
-------
PSIZOI^2.*AMG((l.+XO)/2O+ALOG((l.+XO*XO)/2.)-2.*ATAN(XO)+PI/2.HDY00610
LASTL-L(I) HDY00620
ITER-ITER+1 HDY00630
GO TO 100 HDY00640
110 CONTINUE HDY00650
C HDY00660
C EQN 24 OF USER'S GUIDE HDY00670
C HDY00680
THSTAR(I)-QS(I)/(-RHO*CP*USTAR(I)) HDY00690
RETURN HDY00700
END HDY00710
128
-------
C HORO 0 010
C SUBROUTINE: HOUR HORO0020
C ' HOR00030
C PURPOSE: CONVERTS MINUTES FROM MIDNIGHT TO HHMM HOR00040
C HOR00050
C ARGUMENTS PASSED: KMIN' 'INTEGER MINUTES FROM MIDNIGHT HOR00060
C • KHR INTEGER HOURS AND MINUTES HHMM HOR00070
C* »»«»"—^—^"**»——•«•••••••••»••«»•••• •• M* •••••« ww« ••••*•••** ••••••I «*».••«_.. «*_*4» ~HOROOOSO
SUBROUTINE HOUR(KMIN,KHR) HOR00090
C HOR00100
C CONVERT MINUTES FROM MIDNIGHT TO HHMM HOR00110
C HOR00120
KHR-KMIN/60*100+(KMIN-KMIN/60*60) HOR00130
RETURN HOR00140
END HOR00150
129
-------
C SUBROUTINE: HV
C
C PURPOSE: COMPUTES THE SENSIBLE HEAT
C
C METHOD: HOLTSLAG-VAN ULOEN
C
C ARGUMENTS PASSED: I INTEGER
C P REAL
C BOWEN REAL
C
C COMMON: TEMP RNET
C
C INTRINSIC FUNCTIONS: ALOG10
FLUX FROM THE NET RADIATION
HOUR
PRESSURE
BOWEN RATIO FOR THIS HOUR
HW00020
HW00030
HW00040
HW00050
HW00060
HW00070
HW00080
HW00090
HWOOl'OO
HW00110
HW00120
HW00130
HW00140
SUBROUTINE HV(I,P,BOWEN) HW00160
C HW00170
REAL PRESS HWOOI30
COMMON/TEMP/T(24) HW00190
COMMON/RNET/RN(24),QS(24) HW00200
C HW00210
C SET UP CONSTANTS HW00220
C HW00230
C XLV IS LATENT HEAT OF VAPORIZATION FOR WATER (J/KG) HW00240
C RV IS THE SPECIFIC GAS CONSTANT FOR WATER VAPOR (J/KG-K) HW00250
C EPI IS RATIO OF DRY AIR AND WATER VAPOR GAS CONSTANTS HW00260
C GAMMA IS SPECIFIC HEAT (CP) DIVIDED BY LATENT HEAT OF VAPORIZATIONHW00270
C CG IS THE FRACTION OF NET RADIATION LOST TO THE SOIL HW00280
C HW00290
DATA XLV/2.501E6/ HW00300
DATA RV/461.51/ HW00310
DATA EPI/0.622/ HW00320
DATA GAMMA/4.01808E-4/ HW00330
DATA CG/0.1/ HW00340
DATA BETAP/20./ HW00350
C HWQ0360
C CONVERT PRESSURE TO PASCALS HW00370
C COMPUTE SATURATION VAPOR PRESS (PASCALS) AT TEMP T (K) HW00380
C COMPUTE SLOPE OF SATURATION VAPOR PRESS CURVE (CLAUS1US-CLAPEYRON)HW.00390
C (FROM STANDARD TEXTS ON METEOROLOGY SUCH AS HESS, 1959: HW00400
C INTRODUCTION TO THEORETICAL METEOROLOGY, P 94. HW00410
C HW00420
PRESS-P*100. HW00430
ES-100. *10. ** (-2937.4/T(I) -4 . 9283*ALOG10 (T(I) ) +23 . S518) HW00440
DESDT»XLV*ES/RV/T(I)**2 HW00450
S-(PRESS*EPI*OESDT)/(PRESS-ES) **2 HW00460
C . HW00470
C COMPUTE ALPHA FROM BOWEN RATIO, GAMMA/S, CG, AND RN HW00430
C HW00490
Z • 1.0 + GAMMA/S HW00500
QUP - (1.0 - CG) * RN(I) HW00510
C ' HW00520
C ALPHA IS USED IN EQN 11 OF USER'S GUIDE HW00530
C HW00540
ALPHA - (Z*QUP)/((1.0+BOWEN) * (QUP + BETAP*Z)) HW00550
C HW00560
C SEE EQN 8 OF USER'S GUIDE FOR EQUATIONS LISTED BELOW HW00570
C HW00580
BETA - ALPHA*BETAP HW00590
C HW00600
130
-------
C COMPUTE SENSIBLE HEAT FLUX HW00610
C . HW00620
QS(I) - (Z-ALPHA)/Z * QUP - BETA HW00630
RETURN HW00640
END HW00650
131
-------
C SUBROUTINE: HVNET
C
C PURPOSE: COMPUTES NET RADIATION FROM TOTAL INCOMING SOLAR RADIATION
C
C METHOD: HOLTSLAG-VAN ULDEN
C
C ARGUMENTS PASSED: I INTEGER HOUR
C ALBEQp REAL SURFACE ALBEDO FOR THIS HOUR
C
C COMMON: TEMP INIT CVR RNET
SUBROUTINE HVNET (I, ALBEDO)
C
INTEGER I,CC
REAL ALBEDO
COMMON/TEMP/T (24)
COMMON/INIT/QR(24)
COMMON/CVR/CC (24)
COMMON/RNET/RN ( 2 4 ) , QS ( 2 4 )
C
C SET CONSTANTS: Cl, C2, AND C3 FROM HOLTSLAG - VAN ULDEN
C SB - STEFAN-BOLTZMANN CONSTANT
C
DATA C1/5.31E-13/
DATA C2/60./
DATA C3/0.12/
DATA SB/5.67E-3/
C
C COMPUTE NET RAD (WATTS/M**2) FROM ALBEDO, SOLAR INSOLATION
C SFC TEMP (JC) AND SKY COVER (TENTHS)
C
C EQN 6 FROM USER'S GUIDE
C
RN(I)-((1. -ALBEDO) *QR(I)+C1*T(I) **6-SB*T(I) **4+C2*(CC(I)/10. ) )/
. * (1.+C3)
RETURN
END
HVN00020
HVN00030
HVN00040
HVN00050
HVN00060
HVN00070
HVN00080
HVN00090
HVN00100
HVN00110
HVN00130
HVN00140
HVN00150
HVN00160
HVN00170
HVN00180
HVN00190
HVN00200
HVN00210
HVN00220
HVN00230
HVN00240
HVN00250
HVN00260
HVN00270
HVN00230
HVN00290
HVN00300
HVN00310
HVN00320
HVN00330
HVN00340
HVN00350
HVN00360
HVN00370
HVN00380
132
-------
c-
c
c
c
c
c
c
c
c
c
c
c
c
c
c
10
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
13
SUBROUTINE: INITT
PURPOSE: COMPUTES INTEGRATED SENSIBLE HEAT FLUX, JOULES/M**2
(RIGHT SIDE OF EQN 27 IN USER'S GUIDE)
ARGUMENTS PASSED: ITFST INTEGER FIRST INSOLATION HOUR
ITLST INTEGER LAST INSOLATION HOUR
ITIMM INTEGER TIME 0
EXTERNAL ROUTINES: SENSE
SUBROUTINE INITT ( ITFST , ITLST , ITIMM)
REAL QST(24)
COMMON/RNET/RN(24) ,QS(24)
COMMON/US/USTAR (24)
COMMON/ SUMH/SQR (24)
COMMON/INIT/QR(24)
COMMON/WIND/WSL ( 2 4 ) , A ( 2 4 )
ITFST-9999
CONVERT QS FROM W/M**2 TO LY/MIN
DO 100 IHR-1,24
QST(IHR)-QS(IHR)/697.8
0 CONTINUE
DEFINE ITFST AS FIRST INSOLATION HOUR (I.E., HOUR BEFORE HOUR
THAT QS.GT. 0.001 LY/HR)
DEFINE ITLST AS LAST INSOLATION HOUR (I.E., HOUR AFTER ITFST
WHEN QS.LT. 0.001 LY/HR FOR 2 CONSECUTIVE HOURS)
DO 110 IHR-2,24
IF(QST(IHR) .GT. 0.001. AND. QST(IHR-l) .LT. 0.001) ITFST-IHR-1
IF(IHR.GT. ITFST. AND. (QST(IHR).LT. 0.001. AND. QST(IHR-l) .LT. 0.001)
* GO TO 120
COMPUTE AREA UNDER US**3 CURVE WRT TIME (M**3/S**2) FOR EACH
HOUR USING TRAPEZOIDS
A(IHR-1)-1800.*(USTAR(IHR-1) **3+USTAR(IHR) **3)
110 CONTINUE
120 ITLST-IHR-1
DETERMINE TIME (IN MINUTES FROM MIDNIGHT) WHEN SENSIBLE HEAT
FLUX FIRST BECOMES POSITIVE.
THIS TIME IS T-0 FOR ALL TIME INTEGRATIONS.
GET WHOLE HOUR OF START TIME
•
CALL SENSE (ITIMM)
ISTART-ITIMM/60+1
COMPUTE INTEGRATED SENSIBLE HEAT FLUX (JOULES/M**2)
MULTIPLY LY/MIN. TIMES 697.8 * 3600. - 2512080. TO GET J/M**2
DO 130 IHR-1, ITLST
IF(IHR.LT.ISTART) SQR(IHR)-0.
IF(IHR.EQ.ISTART) SQR(IHR)-QST(IHR) *2512080.
IF(IHR.GT.ISTART) SQR(IHR)-QST(IHR) *2512080.+SQR(IHR-1)
0 CONTINUE
RETURN
END
INI00020
INI00030
INI00040
INI00050
INI00060
INI00070
INI00080
INI00090
INI00100
INI00110
INI00130
INI00140
INI00150
INI00160
INI00170
INI00180
INI00190
INI00200
INI00210
INI00220
INI00230
INI00240
INI00250
INI00260
INI00270
INI00280
INI00290
INI00300
INI00310
INI00320
INI00330
INI00340
INI00350
)INI00360
INI00370
INI00380
INI00390
INI00400
INI00410
INI00420
INI00430
INI00440
INI00450
INI00460
INI00470
INI00480
INI00490
INI00500
INI00510
INIOOS20
INI00530
INI00540
INI00550
INI00560
INI00570
INI00580
INI00590
INI00600
INI00610
INI00620
INI00630
133
-------
c-
c
c
c
c
c
c
c
c
c
c
c-
SUBROUTINE: JULIAN
PURPOSE: COMPUTES JULIAN DAY FROM THE DATE
ARGUMENTS PASSED: YEAR INTEGER YEAR
MONTH INTEGER MONTH
DAY INTEGER DAY
JUL INTEGER JULIAN DAY
INTRINSIC FUNCTIONS: MOD
SUBROUTINE JULIAN(YEAR,MONTH,DAY,JUL)
INTEGER YEAR,MONTH,DAY,JUL
DIMENSION NDAY(12)
DATA NDAY/0,31,59,90,120,151,181,212,243,273,304,334/
JUL - NDAY (MONTH) +• DAY
IF(MONTH.LE.2) RETURN
IF(MOD (YEAR, 4).EQ.O) JUL - JUL + 1
RETURN
END
~JUL00010
JUL00020
JUL00030
JUL00040
JUL00050
JUL00060
JUL00070
JUL00080
JUL00090
JUL00100
JUL00110
—JUL00120
JUL00130
JUL00140
JUL00150
JUL00160
JUL00170
JUL00180
JUL00190
JUL00200
JUL00210
JUL00220
JUL00230
134
-------
C MIN00010
C SUBROUTINE: MINUTE MIN00020
C MIN00030
C PURPOSE: COMPUTES MINUTES FROM MIDNIGHT MIN00040
C MIN00050
C ARGUMENTS PASSED: KTIME INTEGER TIME IN HOURS: 100, 200, ETC MIN00060
C KMIN INTEGER TIME IN MIUTES FROM MIDNIGHT MIN00070
C MINO 0080
SUBROUTINE MINUTE(KTIME,KMIN) MIN00090
C ' MIN00100
C COMPUTE MINUTES FROM MIDNIGHT FROM HHMM MIN00110
C MIN00120
KMIN-KTIME/100*60+(KTIME-KTIME/100*100) MIN00130
RETURN MIN00140
END MIN00150
135
-------
C . . — --RHO00010
C SUBROUTINE: RHOO RHO00020
C RHO00030
C PURPOSE: THIS ROUTINE COMPUTES AIR DENSITY USING THE IDEAL GAS LAW RHOO0040
C RH000050
C METHODS: GAS LAW RH000060
C RH000070
C ARGUMENTS PASSED: P REAL PRESSURE (MB) INPUT RHO00080
C T REAL TEMPERATURE (K) INPUT RHOO0090
C RHO REAL DENSITY (KG/M**3) RETURNED RH000100
£————w——————>•••*• • W«»MMM«
-------
c
c
c
c
c
SUBROUTINE: SENSE
PURPOSE: DETERMINES FIRST HOUR WHERE SENSIBLE HEAT FLUX IS POSITIVE
FOR MODIFIED CARSON MIXING HEIGHT CODE
ARGUMENTS PASSED: ITIMM INTEGER TIME 0
COMMON: INIT
RNET ~
EXTERNAL ROUTINES: MINUTE
SUBROUTINE SENSE(ITIMM)
COMMON/RNET/RN(24),QS(24)
CHECK WHEN SENSIBLE HEAT FLUX IS POSITIVE
DO 100 IH-1,24
IF(QS(IH).GT.O.) GO TO 110
100 CONTINUE
SET ITIM AS HOUR WHEN SENSIBLE HEAT FLUX FIRST GOES POSITIVE
CONVERT HOUR TO TOTAL MINUTES FROM MIDNIGHT
SUBTRACT OFF 30 MXNS TO GET TO CENTER OF EACH HOUR
110 ITXM-IH
CALL MINUTE(ITIM*100,ITIMM)
ITIMM-ITIMM-30
RETURN
END
-SEN00010
SEN00020
SEN00030
SEN00040
SEN00050
SEN00060
SEN00070
SEN00080
SEN00090
SEN00100
SEN00110
SEN00120
-SEN00130
SEN00140
SEN00150
SEN00160
SEN00170
SEN00130
SEN00190
SEN00200
SEN00210
SEN00220
SEN00230
SEN00240
SEN002SO
SEN00260
SEN00270
SEN00280
SEN00290
SEN00300
SEN00310
SEN00320
137
-------
c
c
c
SUBROUTINE: SUMHH
PURPOSE: INTERPOLATE INTEGRATED SENSIBLE HEAT FLUX
ASSUMPTIONS: INTEGRATED HEAT FLUX NOT ALLOWED TO DECREASE
ARGUMENTS PASSED: IT INTEGER
H REAL
OLDH REAL
TIME IN MINUTES
INTEGRATED SENSIBLE HEAT FLUX
LAST INTEGRATED SENSIBLE HEAT
FLUX
COMMON: SUMH
INTRINSIC FUNCTIONS: FLOAT
SUBROUTINE SUMHH(IT,H,OLDH)
COMMON/SUMH/SQR(24)
INTERPOLATE INTEGRATED SENSIBLE HEAT FLUX, H (LY)
IT1-IT/60
IT2-IT1+1
IF(ITl.EQ.O) IT1 - 1
H-SQR(IT1)+(SQR(IT2)-SQR(IT1))/60.0*(FLOAT(IT)-IT1*60.;
INTEGRATED SENSIBLE HEAT FLUX NOT ALLOWED TO DECREASE
IF(R.LE.OLDH) H-OLDH
OLDH-H
RETURN
END
-SMH00010
SMH00020
SMH00030
SMH00040
SMH00050
SMH00060
SMH00070
SMH00080
SMH00090
SMH00100
SMH00110
SMH00120
SMH00130
SMH00140
SMH00150
-SMH00160
SMH00170
SMH00180
SMH00190
SMH00200
SMH00210
SMH00220
SMH00230
SMH00240
SMH00250
SMH00260
SMH00270
SMH00280
SMH00290
SMH00300
SMH00310
SMH00320
SMH00330
138
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE : SUMI
PURPOSE: COMPUTES POTENTIAL TEMPERATURE INTEGRALS
ASSUMPTIONS: POTENTIAL TEMPERATURE DOES NOT DECREASE WITH HEIGHT
ARGUMENTS PASSED: ILVLS INTEGER RAWINSONDE LEVEL
PTMPM REAL * POTENTIAL TEMPERATURE
COMMON: PTEMP XSUMI
SUBROUTINE SUMI ( ILVLS , PTMPM)
COMMON/PTEMP/PRS(80) ,TMP(80) ,PTMP(80)
COMMON/XSUMI/HT(80) ,AI(80) ,AI2(80)
ASSUME POT TEMP INCREASES (OR STAYS CONSTANT) WITH Z.
COMPUTE AREA UNDER POT TEMP PROFILE FOR THE INTERVAL
ILVLS-1 TO ILVLS USING TRAPEZOIDS.
IF (PTMP( ILVLS ) .LT. PTMPM) GO TO 100
INTEGRAL OF Z WRT THETA (K-M) (LEFT SIDE OF EQN 27 IN USER'S
AI(ILVLS)-0.5*(PTMP(ILVLS)-PTMP(ILVLS-1)) *
1 (HT(ILVLS)+HT(ILVLS-1))
INTEGRAL OF Z**2 WRT THETA (K-M**2) (LEFT SIDE OF EQN 28)
AI2(ILVLS)-0.5*(PTMP(ILVLS)-PTMP(ILVLS-1)) *
1 (HT(ILVLS)**2+HT(ILVLS-1)**2)
KEEP TRACK OF LOCAL POT TEMP MAX
PTMPM-AMAX1(PTMP( ILVLS) , PTMPM)
GO TO 110
IF POT TEMP DOES NOT INCREASE WITH HEIGHT, SET AREA
UNDER CURVE EQUAL TO ZERO FOR THAT INTERVAL AND SET POT TEMP
EQUAL TO LAST MAX POT' TEMP
100 AI (ILVLS) -0.0
AI2( ILVLS) -0.0
PTMP ( ILVLS ) -PTMPM
110 CONTINUE
RETURN
END
SMI00020
SMI00030
SMI00040
SMI00050
' SMI00060
SMI00070
SMI00080
SMI00090
SMI00100
SMI00110
SMI00130
SMI00140
SMI001SO
SMI00160
SMI00170
SMI00180
SMI00190
SMI00200
SMI00210
SMI00220
SMI00230
GUIDESMI00240
SMI00250
SMI00260
SMI00270
SMI00280
SMI00290
SMI00300
SMI00310
SMI00320
SMI00330
SMI00340
SMI00350
SMI00360
SMI00370
SMI00380
SMI00390
SMI00400
SMI00410
SMI00420
SMI00430
SMI00440
SMI004SO
SMI00460
SMI00470
SMI00480
139
-------
c*
c
c
c
c
c
c
c
c
c
c
c
c
c
c-
c
c
c
SUBROUTINE: SUMW
PURPOSE: CALCULATES THE AREA UNDER THE USTAR**3 CURVE WITH RESPECT TO
TIME FROM START (RIGHT SIDE OF EQN 28)
ARGUMENTS PASSED:
ITIMEM
IT
USTR3
INTEGER
INTEGER
REAL
TIME IN MINUTES
TIME IN MINUTES
AREA UNDER USTAR»*3
CURVE
COMMON:
WIND
US
INTRINSIC FUNCTIONS: FLOAT
100
110
SUBROUTINE SUMW (ITIMEM, IT, USTR3)
CQMMON/WIND/WSL(24),A(24)
COMMON/US/USTAR(24)
COMPUTE AREA UNDER USTAR**3 CURVE WRT TIME FROM START TO TIME IT
ITI1-ITIMEM/60
ITI2-ITI1+1
IF(ITIl.EQ.O) ITI1 - 1
ITF1-IT/60
ITF2«ITF1+1
IF(ITFl.EQ.O) ITF1 » 1
SPDI-USTAR(ITIl)**3+(USTAR(ITI2)**3-USTAR(ITIl)**3)/60.0*
1 (FLOAT(ITIMEM)-rril*60.0)
TOTA1-30.*(ITI2*60.-ITIMEM)*(SPDlVU3TAR(ITI2)**3)
SPDF-USTAR(ITFl) **3+ (USTAR(ITF2) **3-USTAR(ITFl) **3 )./60. 0*
1 (FLOAT(IT)-ITP1*60.0)
TOTA3-30.*(IT-ITF1*«0.)*(USTAR(ITFl)**3+SPDF)
IDELT-ITF1-ITI2
TOTA2»0.0
IF(IDELT.LE.O) GO TO 110
DO 100 J-1,IDELT
TOTA2-TOTA2-»-A (ITI2-KJ-1)
TOTA-TOTA1+TOTA2+TOTA3
IF(IDELT.LT.0) TOTA-TOTA-A(ITI1)
USTR3-TOTA
RETURN
END
•SMV00010
SMV00020
SMV00030
SMV00040
SMV00050
SMV00060
FROM MIDNIGHTSMV00070
SMV00080
SMV00090
SMV00100
SMV00110
SMV00120
SMV00130
SMV00140
SMV00150
SMV00160
SMV00170
SMV00180
SMV00190
SMV00200
SMV00210
SMV00220
SMV00230
SMV00240
SMV00250
SMV00260
SMV00270
SMV00280
SMV00290
SMV00300
SMV00310
SMV00320
SMV00330
SMV00340
SMV00350
SMV00360
SMV00370
SMV00380
SMV00390
SMV00400
SMV00410
SMV00420
SMV00430
SMV00440
140
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE: SUN
PURPOSE: THIS ROUTINE CALCULATES THE SOLAR ELEVATION ANGLE FOR EACH
HOUR OF THE DAY
ZONE
METHOD : CRSTER
FROM THE
DATE, LATITUDE, LONGITUDE, AND TIME
PREPROCESSOR
ARGUMENTS PASSED: LAT
COMMON BLOCKS:
LONG
ZONE
•JULIAN
TSR
TSS
SOLANG
INTRINSIC FUNCTIONS: SIN
• SUBROUTINE
REAL
REAL
REAL
INTEGER
REAL
REAL
COS
LATITUDE (IN RADIANS)
LONGITUDE (IN DEGREES)
TIME ZONE
JULIAN DAY
HOUR OF SUNRISE
HOUR OF SUNSET
FLOAT ASIN ACOS
SUN ( LAT , LONG , ZONE , JULIAN , TSR , TSS )
•3UHUUU.LU
SUN00020
SUN00030
SUN00040
SUN00050
SUN00060
SUN00070
SUN00080
SUN00090
SUN00100
SUN00110
S UNO 0120
SUN00130
SUN00140
SUN00150
SUN00160
SUN00170
SUN00130
SUN00190
SUN00210
C
c
c
c
c
c
c
c
c
c
c
c
c
c
100
c
REAL LAT,LONG,ZONE
INTEGER NDAYR,JULIAN
COMMON /SOLANG/ ANGLE(24)
DATA CONST /57.29S78/
ZONE
ZONE
ZONE
ZONE
05 -
06 -
07 -
08 -
EASTERN
CENTRAL
MOUNTAIN
PACIFIC
ALGORITHM FOR SOLAR ELEVATION IS OBTAINED FROM CRSTER
SINLAT-SIN(LAT)
COSLAT-COS(LAT)
NDAYR-JULIAN
D"(FLOAT(NDAYR)-1.)*360./365.242
SIND-SIN(D/CONST)
COSD-COS(D/CONST)
SIN2D-SIN(2.*D/CONST)
COS2D-COS(2.*D/CONST)
EM-12.+0.12357*SIND-0.004289*COSD+0.153809*SIN2D+0.060783*COS2D
SIGMA-279.9348+D+1.914827*SIND-0.079525*COSD+0.019938*SIN2D
1 -0.00162*COS2D
CAPD-ASIN(.39784989*SIN(SIGMA/CONST))
SINCD-SIN(CAPD)
COSCD-COS(CAPD)
HOUR USED IS AT THE BEGINNING OF EACH HOUR
DO 100 IHR-1,24
GMT-FLOAT (IHR) -1. -(-ZONE
SOLHA-15.*(GMT-EM)-LONG
ANGLE-SOLAR ELEVATION IN RADIANS
ANGLE(IHR)
CONTINUE
•ASIN(SINLAT*SINCD+COSLAT*COSCD*COS(SOLHA/CONST))
SUN00220
SUN00230
SUN00240
SUN00250
SUN00260
SUN00270
SUN00280
SUN00290
SUN00300
SUN00310
SUN00320
PREPROCESSORSUNO 0330
SUN00340
SUNO03SO
SUN00360
SUN00370
SUN00380
SUN00390
SUN00400
SUN00410
SUN00420
SUN00430
SUN00440
SUN00450
SUN00460
SUN00470
SUN004SO
SUN00490
SUN00500
SUN00510
SUN00520
SUN00530
SUN00540
SUN00550
SUN00560
SUN00570
SUN00580
SUN00590
SUN00600
141
-------
C STATEMENTS BELOW ARE USED TO COMPOTE LOCAL SUNRISE AND SUNSET SUN00610
C SUN00620
CAPH-ACOS(-SINLAT*SINCD/(COSLAT*COSCD))*CONST/15. SUN00630
TSR»( (LONG/15.+EM) -CAPH) -ZONE SUN00640
TSS-((LONG/15.+EM)+CAPH)-ZONE SUN00650
RETURN SUN00660
END SUN00670
142
-------
C SUBROUTINE: TOTAL
C
C PURPOSE: THIS ROUTINE CALCULATES TOTAL INCOMING SOLAR RADIATION FROM
C CLOUD COVER AND SOLAR ELEVATION ANGLE USING THE HOLTS LAG-
C VAN ULDEN TECHNIQUE
C
C METHODS: HOLTSLAG - VAN ULDEN TECHNIQUE
C
C ARGUMENTS PASSED: H INTEGER ' HOUR ENDING
C
C COMMON: CVR INIT SOLANG
C
C INTRINSIC FUNCTIONS: MOD
SUBROUTINE TOTAL (H)
C
INTEGER H.CC
REAL AVGANG
COMMON/INIT/QR (24)
COMMON/CVR/CC (24)
COMMON/SOLANG/ ANGLE ( 24 )
C
C COMPUTE AVERAGE OF THE SOLAR -ELEVATION ANGLES AT THE BEGINNING
C AND END OF THE HOUR
C
IF(H.LE.23) THEN
AVGANG - (ANGLE (H) +ANGLE (H+l) ) /2 . 0
ELSE
AVGANG - (ANGLE(24)+ANGLE(1))/2.0
ENDIF
C
C FOR DAYTIME HOURS, COMPUTE THE INCOMING SOLAR RADIATION
C (EQN 4 IN USER'S GUIDE)
C ' .
IF (AVGANG .GT. 0.) QR (H)-( 990. *SIN( AVGANG) ) -30.
C
C USE INTERPOLATION FORMULA FOR SOLAR ELEVATION ANGLES LESS THAN
C 10 DEGREES TO AVOID NEGATIVE VALUES. .
C NOTE: 141.91 WATTS/M**2 - RADIATION FOR 10-DEG ELEVATION ANGLE
C
IF (AVGANG .LT. 10.) QR(H)-141.91 * AVGANG*5. 729578
C
C HOLTSLAG CORRECTION FOR CLOUDS (EQN 5 IN USER'S GUIDE)
C
IF(CC(H) .GT.O) QR(H)-QR(H)*(1.0-0.7S*((CC(H)/10.)**3.4) )
RETURN
END
TOT00020
TOT00030
TOT00040
TOT00050
TOT00060
TOT00070
TOT00080
TOT00090
TOT00100
TOT00110
TOT00120
TOT00130
TOT00140
TOT00160
TOT00170
TOT00180
TOT00190
TOT00200
TOT00210
TOT00220
TOT00230
TOT00240
TOT00250
TOT00260
TOT00270
TOT00280
TOT00290
TOT00300
TOT00310
TOT00320
TOT00330
TOT00340
TOT00350
TOT00360
TOT00370
TOT00380
TOT00390
TOT00400
TOT00410
TOT00420
TOT00430
TOT00440
TOT00450
TOT00460
TOT00470
TOT00480
143
-------
C— — — — — — — — — — — — -- — — — --- — — — ----- ....... — .- — — — TTT00010
C SUBROUTINE: TT TTT00020
C . TTT00030
C PURPOSE: INTERPOLATE SURFACE TEMPERATURE AT THE START TIME! TTT00040
C TTT00050
C ARGUMENTS PASSED: ITIMEM INTEGER TIME IN MINUTES FROM MIDNIGHTTTT00060
C TO REAL TEMPERATURE AT START TIME (K)TTT00070
C TTT00080
C COMMON: TEMP TTT00090
C TTT00100
C INTRINSIC FUNCTIONS: FLOAT TTT00110
C TTT00120
SUBROUTINE TT f ITIMEM , TO ) TTT00140
C TTT00150
COMMON/TEMP/T(24) TTT00160
C TTT00170
C INTERPOLATE SFC TEMP AT START TIME TTT00180
C TTT00190
ITI-ITIMEM/60 TTT00200
ITF-ITI+1 TTT00210
IF(ITI.EQ.O) ITI - 1 TTT00220
TO-T(ITI)+(T(ITF)-T(ITI) )/60.0*(FLOAT(ITIMEM)-ITI*60.0) TTT00230
RETURN TTT00240
END TTT00250
144
-------
C SUBROUTINE: WNUS
C
C PURPOSE: THIS ROUTINE CALCULATES USTAR FOR THE STABLE CASES
C USING THE VENKATRAM TECHNIQUE
(L > 0)
C ARGUMENTS PASSED:
C
C
C
C COMMON: MONIN CVR
IHR
ANEM
ZO
US
ALOG
INTEGER
REAL
REAL
WIND
MIN
HOUR
ANEMOMETER HEIGHT (M)
ROUGHNESS LENGTH (M)
TEMP
THS
C INTRINSIC FUNCTIONS!
C
SUBROUTINE WNUS(IHR,ANEM,ZO)
C
INTEGER IHR CC
REAL THSl,THS2,CON,ANEM,ZO,UNOT,VONK,G,L
COMMON/US/USTAR(24)
COMMON/MONIN/L(24)
COMMON/CVR/CC(24)
COMMON/TEMP/T(24)
COMMON/WIND/WSL(2 4),A(2 4)
COMMON/THS/THSTAR(24)
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
-WNS00010
WNS00020
WNS00030
WNS00040
WNS00050
WNS00060
WNS00070
WNSOOOSO
WNS00090
WNS00100
WNS00110
WN500120
WNS00130
-WNS00140
WNS00150
WNS00160
WNS00170
WNS00180
WNS00190
WNS00200
HNS00210
WNS00220
WNS00230
WNS00240
WNS00250
WNS00260
WNS00270
WNS002SO
WNS00290
WNS00300
WNS00310
WNS00320
WNS00330
WNS00340
WNS00350
WNS00360
WNS00370
WNS00380
WNS00390
WNS00400
WNS00410
WNS00420
WNS00430
WNS00440
WNS00450
WNS00460
CHECK CRITERIA FOR CONVERGENCE: FIRST PART OF IF-THEN STATEMENT WNS00470
COVERS CONVERGENCE CASE, SECOND PART NONCONVERGENCE. FOR THE WNS00480
SECOND PART, UNOT IS SPECIFIED TO EFFECT CONVERGENCE JUST BARELYWNS00490
• WNS00500
IF STATEMENT IS EQN 26 OF USER'S GUIDE
USTAR IS IN EQN 25 OF USER'S GUIDE
L IS DERIVED FROM EQNS 1 AND 24 OF USER'S GUIDE
ASSIGN CONSTANTS: VON KARMAN CONSTANT AND GRAV. ACCEL.
DATA VONK/0.4/
DATA G/9.8065S/
CONST * MAXIMUM PRODUCT OF USTAR AND THETASTAR
BETA IS USED FOR PROFILE RELATATIONSHIPS IN STABLE CONDITIONS
CONST - 0.05
BETA « 4.7
THSl: EQN 22 OF USER'S GUIDE
CON AND THS2: EQN 23 OF USER'S GUIDE
UNOT: EQN 25 OF USER'S GUIDE
THS1-0.09*(1.-0.5*(CC(IHR)/10.)**2.)
CON-VONX/(ALOG(ANEM/ZO))
THS2»(T(IHR)*CDN*WSL(IHR)**2.)/(4.0*4.7*ANEM*G)
THSTAR(IHR)-MIN(THSl,THS2)
UNOT-SQRT((4.7*ANEM*G*THSTAR(IHR)
IF((2.*UNOT)/(SQRT(CDN)*WSL(IHR)).LE.1.0) THEN
USTAR(IHR)»(CDN*WSL(IHR)/2.)*(1.+SQRT(1.-((2.*UNOT)/
(SQRT(CDN)*WSL(IHR)))**2.))
L(IHR)-(T(IHR)*USTAR(IHR)**2.)/(VONK*G*THSTAR(IHR))
ELSE
UNOT-SQRT(CDN)*WSL(IHR)*0.5-0.0001
WNS00510
WNS00520
WNS00530
WNS00540
WNS00550
WNS00560
WNS00570
WNSOOSSO
WNS00590
WNS00600
145
-------
USTAR(IHR)-(CDN*WSL(IHR)/2.)*(l-+SQRT(l.-((2.*UNOT)/ WNS00610
1 (SQRT(CDN)*WSL(IHR)))**2.)) WNS00620
L(IHR)-(T(IHR)*USTAR(IHR)**2.)/(VONK*G*THSTAR(IHR)) WNS00630
ENDIF WNS00640
C WNS00650
C IN THIS SECTION, SOLVE EQN 25 IN USER'S GUIDE, BUT SUBSTITUTE WNS00660
C FOR THETA-STAR IN THE EXPRESSION FOR UNOT; GET CUBIC EQN IN U* WNS00670
C WNS00680
IF(USTAR(IHR) * THSTAR(IHR).GT.CONST) THEN WNS00690
AA - -CON * WSL(IHR) WNS00700
B - 0.0 WNS00710
C « BETA * ANEM * G * CONST * CON/T(IHR) WNS00720
CALL CUBIC(AA,B,C,USTAR(IHR)) WNS00730
THSTAR(IHR) - CONST/USTAR(IHR) WNS00740
L(IHR) » T(IHR)*USTAR(IHR)*USTAR(IHR)/(VONK*G*THSTA:R(IHR)) WNS00750
ENDIF WNS00760
RETURN WNS00770
END WNS007SO
146
-------
C SUBROUTINE: ZILL
C
C PURPOSE: ROUTINE CALCULATES THE NOCTURNAL BOUNDARY LAYER HEIGHT
C
C ARGUMENTS PASSED: LAT REAL LATITUDE IN RADIANS
C IHR INTEGER HOUR
C
C METHOD: NIEUWSTADT INTERPOLATION OF THE ZILITINKEVICH (1972) METHOD
C USING USTAR AND L VALUES
C REFERENCES: NIEUWSTADT, F.T.M. ,1981: THE STEADY-STATE HEIGHT
-6J.ljUUU.LU
ZIL00020
ZIL00030
ZIL00040
ZIL00050
ZIL00060
ZIL00070
ZIL00080
ZIL00090
ZIL00100
ZIL00110
C AND RESISTANCE LAWS OF THE NOCTURNAL BOUNDARYZIL00120
C LAYER: THEORY COMPARED WITH CABAUW
C OBSERVATIONS, BOUNDARY -LAYER METEOR. ,20, PP.
C 3-17.
C NIEUWSTADT, F.T.M. ,1984: SOME ASPECTS OF THE
C TURBULENT STABLE BOUNDARY LAYER, 29TH
C OHOLO CONFERENCE ON BOUNDARY -LAYER
C STRUCTURE - MODELLING AND APPLICATION TO
C AIR POLLUTION AND WIND ENERGY, 25-28 MARCH.
C ZILITINKEVICH, S.S,1972: ON THE DETERMINATION
C OF THE HEIGHT OF THE EKMAN BOUNDARY LAYER,
C BOUNDARY-LAYER METEOR., 3, PP 141-145.
C
C LIMITATIONS: L MUST BE POSITIVE OR ABS(L) > 100 M
C
C COMMON: US
C MONIN
C ZILIT
C
C. CALLING ROUTINES: MAIN
SUBROUTINE ZILL(LAT, IHR)
C
In^£(*£K IHR
REAL F,L,LAT
COMMON/US/USTAR (24)
COMMON/MONIN/L (24)
COMMON/ZILIT/ZIL(24)
C TENDEG - 10 DEGREES IN RADIANS
DATA TENDEG/0. 17453 3/
C
C CALCULATE CORIOLIS PARAMETER AND SOLVE QUADRATIC EQN
C
XLAT - ABS(LAT)
C
ZIL00130
ZIL00140
ZIL00150
ZIL00160
ZIL00170
ZIL00180
ZIL00190
ZIL00200
ZIL00210
ZIL00220
ZIL00230
ZIL00240
ZIL00250
ZIL00260
ZIL00270
ZIL00280
ZIL00290
ZIL00300
ZIL00310
f*TT nni*)f\
"uXLOuJZO
ZIL00330
ZIL00340
ZIL00350
ZIL00360
ZIL00370
ZIL00380
ZIL00390
ZIL00400
ZIL00410
ZIL00420
ZIL00430
ZIL00440
ZIL00450
ZIL00460
C
C
C
C
C
C
C
C
TO AVOID BLOWUP NEAR EQUATOR, SET LATITUDE TO MINIMUM OF 10 DEG ZIL00470
ZIL004SO
XLAT - AMAXKXLAT,TENDEG)
F-1.4584E-4 * SIN(XLAT)
I?(USTAR(IHR).GE.O.AND.L(IHR).GE.O) THEN
QUADRATIC SOLUTION, EQN 30 OF USER'S GUIDE
ZIL(IHR)-(-L(IHR) + SQRT(L(IHR)*L(IHR) + 2.28*USTAR(IHR)*
L(IHR)/F))/3.8
ELSE IF(ABS(L(IHR)).GT.100.) THEN
NEUTRAL APPROXIMATION
ZIL00490
ZIL00500
ZIL00510
ZIL00520
ZIL00530
ZIL00540
ZIL00550
ZIL00560
ZIL00570
ZIL00530
ZIL00590
ZIL00600
147
-------
ZIL(IHR) - 0.3*USTAR(IHR)/F ZIL00610
ELSE ZIL00620
ZIL(IHR)—999. ZIL00630
ENDIF ZIL00640
RETURN ZIL00650
END ZIL0066Q
148
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROUTINE: ZZI
PURPOSE: DETERMINE HEIGHT CORRESPONDING TO A GIVEN AREA UNDER THE
POTENTIAL TEMPERATURE PROFILE
ARGUMENTS PASSED: NLVLS INTEGER RAWINSONDE LEVEL
XAI REAL AREA UNDER THE POTENTIAL
TEMPERATURE CURVE
XAI2 REAL
ZI REAL CONVECTIVE MIXED LAYER HT
ZI2 REAL MECHANICAL MIXED LAYER HT
.
COMMON: XSUMX HMI
SUBROUTINE ZZI (NLVLS, XAI, XAI2 , ZI, 212)
COMMON/XSUMI/HT(30) ,AI(80) ,AI2(30)
COMMON/HM1/SAI (SO) ,SAI2 (80)
DETERMINE HEIGHT CORRESPONDING TO GIVEN AREA UNDER
•POTENTIAL TEMP PROFILE' (EQN 27 OF USER'S GUIDE)
XAI IS RIGHT SIDE OF EQN 27
SAI IS LEFT SIDE OF EQN 27
DO 100 ILVLS-2, NLVLS
IF(XAI.LT. SAI (ILVLS)) GO TO 110
100 CONTINUE
ZI-3000.
GO TO 120
110 IF(SAI(ILVLS) .EQ.SAI(ILVLS-l)) THEN
ZI • HT(ILVLS-l)
GO TO 120
ENDIF
ZI-HT (ILVLS-1) + (HT ( ILVLS) -HT ( ILVLS-1) ) /
1 (SAI (ILVLS) -SAI (ILVLS-1) ) * (XAI-SAI (ILVLS-1) )
ZI IS THE CONVECTIVE MIXED LAYER HEIGHT
SECTION BELOW HANDLES EQN 28 OF USER'S GUIDE
XAI2 IS RIGHT SIDE OF EQN 28
SAI2 IS LEFT SIDE OF EQN 28
120 DO 130 ILVLS-2, NLVLS
IF (XAI2.LT.SAI2( ILVLS)) GO TO 140
130 CONTINUE
212-3000.
GO TO 150
140 IF (SAI2 (ILVLS) .EQ.SAI2 (ILVLS-1)) THEN
ZI2 - HT( ILVLS-1)
GO TO 150
ENDIF
ZI2-HT(ILVLS-1)+(HT(ILVLS)-HT(ILVLS-1) )/
1 (SAI2 (ILVLS) -SAI2 (ILVLS-1) ) * (XAI2-SAI2 (ILVLS-1) )
150 CONTINUE
ZI2 IS THE MECHANICAL MIXED LAYER HEIGHT
RETURN
END
ZZI00020
ZZI00030
ZZI00040
ZZI00050
ZZI00060
ZZI00070
ZZI00080
ZZI00090
ZZI00100
(M) ZZI00110
(M) ZZI00120
ZZI00130
ZZI00140
ZZI00160
ZZI00170
ZZI00180
ZZI00190
ZZI00200
ZZI00210
ZZI00220
ZZI00230
ZZI00240
ZZI00250
ZZI00260
ZZI00270
ZZI00280
ZZI00290
ZZI00300
ZZI00310
ZZI00320
ZZI00330
ZZI00340
ZZI00350
ZZI00360
ZZI00370
ZZI00380
ZZI00390
ZZI00400
ZZI00410
ZZI00420
ZZI00430
ZZI00440
ZZI00450
ZZI00460
ZZI00470
ZZI00480
ZZI00490
ZZI00500
ZZI00510
ZZI00520
ZZI00530
ZZI00540
ZZI00550
ZZI00560
ZZI00570
ZZI00580
ZZI00590
ZZI00600
zziooeio
ZZI00620
149
-------