@@ -220,7 +220,7 @@ module grib2_all_tables_module
220
220
data table1_4(8 ) / type_of_data(' proc_rad_obs' ,7 )/
221
221
data table1_4(9 ) / type_of_data(' event_prob' ,8 )/
222
222
data table1_4(10 ) / type_of_data(' missing' ,255 )/
223
- data table1_4(11 ) / type_of_data(' experimental_products ' ,192 )/
223
+ data table1_4(11 ) / type_of_data(' experimental_product ' ,192 )/
224
224
!
225
225
!
226
226
type type_of_gen_proc
@@ -1172,7 +1172,7 @@ module grib2_all_tables_module
1172
1172
data on388_tablea(112 ) / gen_proc(' extra_trop_storm_surge_pacific' ,17 )/
1173
1173
data on388_tablea(113 ) / gen_proc(' prob_extra_trop_storm_surge' ,18 )/
1174
1174
data on388_tablea(114 ) / gen_proc(' linmit_fine_mesh_anal' ,19 )/
1175
- data on388_tablea(115 ) / gen_proc(' extra_trop_storm_surge_micronesia ' ,20 )/
1175
+ data on388_tablea(115 ) / gen_proc(' extra_trop_storm_surge_microne ' ,20 )/
1176
1176
data on388_tablea(116 ) / gen_proc(' hur_weather_res_and_fcst' ,71 )/
1177
1177
data on388_tablea(117 ) / gen_proc(' hur_non-hydro_multi' ,72 )/
1178
1178
!
@@ -1188,7 +1188,7 @@ module grib2_all_tables_module
1188
1188
!
1189
1189
data on388_tablea(120 ) / gen_proc(' extra_trop_storm_surge_atl_3d' ,21 )/
1190
1190
data on388_tablea(121 ) / gen_proc(' extra_trop_storm_surge_pac_3d' ,22 )/
1191
- data on388_tablea(122 ) / gen_proc(' extra_trop_storm_surge_micro_3d ' ,23 )/
1191
+ data on388_tablea(122 ) / gen_proc(' extra_trop_storm_surge_micro_3 ' ,23 )/
1192
1192
1193
1193
contains
1194
1194
!
@@ -1394,13 +1394,14 @@ end subroutine get_g2_unitoftimerange
1394
1394
! >
1395
1395
! > @param[in] key - GRIB2 character short key for fixed surface types from Table 4.5
1396
1396
! > @param[out] value - corresponding GRIB2 value from Table 4.5
1397
- ! > @param[out] ierr - error messages
1397
+ ! > @param[out] ierr - 0 for success, 9 if key not found
1398
1398
! >
1399
- ! > @author V. Krishna Kumar ORG: W/NP12 @date 2009-12-10
1399
+ ! > @author V. Krishna Kumar ORG: W/NP12 @date 2009-12-10
1400
1400
subroutine get_g2_fixedsurfacetypes (key , value , ierr )
1401
1401
character (len=* ) :: key
1402
1402
integer :: value, n, ierr
1403
1403
!
1404
+ ierr = 0
1404
1405
do n= 1 , MAXFIXEDSURFACETYPES
1405
1406
if (trim (table4_5(n)% fixedsurfacetypeskey).eq. trim (key)) then
1406
1407
value= table4_5(n)% fixedsurfacetypesval
@@ -1411,7 +1412,7 @@ subroutine get_g2_fixedsurfacetypes(key, value, ierr)
1411
1412
value= table4_5(66 )% fixedsurfacetypesval
1412
1413
! print *, 'get_g2_fixedsurfacetypes key: ', trim(key), value, &
1413
1414
! ' not found in table 4.5'
1414
- ! ierr=9
1415
+ ierr= 9
1415
1416
return
1416
1417
end subroutine get_g2_fixedsurfacetypes
1417
1418
! >
@@ -2034,9 +2035,9 @@ subroutine g2sec4_temp44(icatg, iparm, aer_type, typ_intvl_size, &
2034
2035
call get_g2_typeofintervals(typ_intvl_size, value, ierr)
2035
2036
ipdstmpl44(4 ) = value
2036
2037
ipdstmpl44(5 ) = scale_fac1_size
2037
- ipdstmpl44(6 ) = scale_val1_size
2038
+ ipdstmpl44(6 ) = int ( scale_val1_size)
2038
2039
ipdstmpl44(7 ) = scale_fac2_size
2039
- ipdstmpl44(8 ) = scale_val2_size
2040
+ ipdstmpl44(8 ) = int ( scale_val2_size)
2040
2041
!
2041
2042
call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
2042
2043
ipdstmpl44(9 ) = value
@@ -2066,11 +2067,14 @@ subroutine g2sec4_temp44(icatg, iparm, aer_type, typ_intvl_size, &
2066
2067
!
2067
2068
end subroutine g2sec4_temp44
2068
2069
! >
2069
- ! > This subroutine returns the Grib2 Section 4 Template 4.0 list for given keys
2070
- ! > PDT 4.46 - Average, accumulation, and/or extreme values or other
2071
- ! > statistically processed values at a horizontal level
2072
- ! > or in a horizontal layer in a continuous or
2073
- ! > non-continuous time interval for aerosol.
2070
+ ! > Returns the GRIB2 Section 4 Template 4.0 list.
2071
+ ! >
2072
+ ! > <pre>
2073
+ ! > PDT 4.46 - Average, accumulation, and/or extreme values or other
2074
+ ! > statistically processed values at a horizontal level
2075
+ ! > or in a horizontal layer in a continuous or
2076
+ ! > non-continuous time interval for aerosol.
2077
+ ! > </pre>
2074
2078
! >
2075
2079
! > @param[in] icatg - Parameter category (see Code table 4.1)
2076
2080
! > @param[in] iparm - Parameter number (see Code table 4.2)
@@ -2098,28 +2102,33 @@ end subroutine g2sec4_temp44
2098
2102
! > @param[in] hour_intvl - Hour Time of end of overall time interval
2099
2103
! > @param[in] min_intvl - Minute Time of end of overall time interval
2100
2104
! > @param[in] sec_intvl - Second Time of end of overall time interval
2101
- ! > @param[in] num_time_range - n number of time ranges specifications describing
2102
- ! > the time intervals used to calculate the
2103
- ! > statistically-processed field
2104
- ! > @param[in] stat_miss_val - Total number of data values missing in statistical process
2105
- ! > Specification of the outermost (or only) time range over
2106
- ! > which statistical processing is done
2107
- ! > @param[in] type_of_stat_proc - Statistical process used to calculate the processed
2108
- ! > field from the field at each time increment during the
2109
- ! > time range (see Code Table 4.10)
2110
- ! > @param[in] type_of_time_inc - Type of time increment between successive fields
2111
- ! > used in the statistical processing (see Code Table 4.11)
2112
- ! > @param[in] stat_unit_time_key - Indicator of unit of time for time range over which
2113
- ! > statistical processing is done (see Code Table 4.4)
2114
- ! > @param[in] leng_time_range_stat - Length of the time range over which statistical processing
2115
- ! > is done, in units defined by the previous octet
2116
- ! > @param[in] stat_unit_time_key_succ - Indicator of unit of time for the increment between the
2117
- ! > successive fields used (see Code table 4.4)
2118
- ! > @param[in] time_inc_betwn_succ_fld - Time increment between successive fields,
2119
- ! > in units defined by the previous octet (see Notes 3 & 4)
2105
+ ! > @param[in] num_time_range - n number of time ranges
2106
+ ! > specifications describing the time intervals used to calculate
2107
+ ! > the statistically-processed field
2108
+ ! > @param[in] stat_miss_val - Total number of data values missing in
2109
+ ! > statistical process Specification of the outermost (or only) time
2110
+ ! > range over which statistical processing is done
2111
+ ! > @param[in] type_of_stat_proc - Statistical process used to
2112
+ ! > calculate the processed field from the field at each time
2113
+ ! > increment during the time range (see Code Table 4.10)
2114
+ ! > @param[in] type_of_time_inc - Type of time increment between
2115
+ ! > successive fields used in the statistical processing (see Code
2116
+ ! > Table 4.11)
2117
+ ! > @param[in] stat_unit_time_key - Indicator of unit of time for
2118
+ ! > time range over which statistical processing is done (see Code
2119
+ ! > Table 4.4)
2120
+ ! > @param[in] leng_time_range_stat - Length of the time range over
2121
+ ! > which statistical processing is done, in units defined by the
2122
+ ! > previous octet
2123
+ ! > @param[in] stat_unit_time_key_succ - Indicator of unit of time
2124
+ ! > for the increment between the successive fields used (see Code
2125
+ ! > table 4.4)
2126
+ ! > @param[in] time_inc_betwn_succ_fld - Time increment between
2127
+ ! > successive fields, in units defined by the previous octet (see
2128
+ ! > Notes 3 & 4)
2120
2129
! > @param[out] ipdstmpl46 - GRIB2 PDS Template 4.46 listing
2121
2130
! >
2122
- ! > @author E. JAMES ORG: NOAA/GSL @date 2024-04-02
2131
+ ! > @author E. JAMES, NOAA/GSL @date 2024-04-02
2123
2132
subroutine g2sec4_temp46 (icatg , iparm , aer_type , typ_intvl_size , &
2124
2133
scale_fac1_size , scale_val1_size , scale_fac2_size , &
2125
2134
scale_val2_size , typ_gen_proc_key , gen_proc_or_mod_key , &
@@ -2409,7 +2418,6 @@ subroutine g2sec5_temp0(dec_scale_fac, bin_scale_fac, tlnumbits, ifield5)
2409
2418
integer (4 ), intent (in ) :: bin_scale_fac, dec_scale_fac, tlnumbits
2410
2419
integer (4 ), intent (out ) :: ifield5(5 )
2411
2420
! character(len=50) :: type_of_field
2412
- integer (4 ) :: value, ierr
2413
2421
!
2414
2422
ifield5(1 ) = 0 ! Any value. Will be later overwritten
2415
2423
ifield5(2 ) = bin_scale_fac
@@ -2439,8 +2447,6 @@ subroutine g2sec5_temp2(dec_scale_fac, bin_scale_fac, ifield5)
2439
2447
integer (4 ), intent (inout ) :: ifield5(16 )
2440
2448
integer (4 ), intent (in ) :: dec_scale_fac, bin_scale_fac
2441
2449
!
2442
- integer (4 ) :: value, ierr
2443
- !
2444
2450
ifield5= 0
2445
2451
ifield5(1 ) = 0 ! Any value. Will be later overwritten
2446
2452
ifield5(2 ) = bin_scale_fac
@@ -2519,8 +2525,6 @@ subroutine g2sec5_temp40(dec_scale_fac, bin_scale_fac, tlnumbits,
2519
2525
!- -- local variable
2520
2526
integer (4 ) :: value, ierr
2521
2527
integer , parameter :: MAX_NUMBIT= 16
2522
- integer ibm
2523
- integer , allocatable :: mg(:)
2524
2528
!
2525
2529
ifield5(1 ) = 0 ! Any value. Will be later overwritten
2526
2530
ifield5(2 ) = bin_scale_fac
0 commit comments