Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
DART-WRF-delete_byApril
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DataAssimilation
DART-WRF-delete_byApril
Commits
04084847
Commit
04084847
authored
2 years ago
by
lkugler
Browse files
Options
Downloads
Patches
Plain Diff
.
parent
3aaa8113
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
config/obs_kind_mod.f90
+0
-2700
0 additions, 2700 deletions
config/obs_kind_mod.f90
config/obskind.py
+335
-0
335 additions, 0 deletions
config/obskind.py
dartwrf/create_obsseq.py
+1
-1
1 addition, 1 deletion
dartwrf/create_obsseq.py
dartwrf/workflows.py
+7
-4
7 additions, 4 deletions
dartwrf/workflows.py
with
343 additions
and
2705 deletions
config/obs_kind_mod.f90
deleted
100644 → 0
+
0
−
2700
View file @
3aaa8113
! DART software - Copyright UCAR. This open source software is provided
! by UCAR, "as is", without charge, subject to all terms of use at
! http://www.image.ucar.edu/DAReS/DART/DART_download
!----------------------------------------------------------------------
! WARNING!! The file obs_kind_mod.f90 is AUTOGENERATED by the
! 'preprocess' program. Any changes made to this file will be
! overwritten when it is regenerated. To make permanent changes in
! the code, edit DEFAULT_obs_kind_mod.F90, edit the observation
! specific obs_def_xxx_mod.f90 files, or edit the xxx_quantity.f90 files.
!----------------------------------------------------------------------
! FIXME: this should change to obs_qty_mod - but that is a large footprint,
! non-backwards compatible change. almost every other module in the system
! has a use statement for this module
! module obs_qty_mod
module
obs_kind_mod
use
types_mod
,
only
:
obstypelength
,
r8
,
MISSING_R8
use
utilities_mod
,
only
:
error_handler
,
E_ERR
,
E_WARN
,
&
logfileunit
,
find_namelist_in_file
,
log_it
,
&
check_namelist_read
,
do_output
,
ascii_file_format
,
&
string_to_real
implicit
none
private
public
::
get_name_for_type_of_obs
,
&
assimilate_this_type_of_obs
,
&
evaluate_this_type_of_obs
,
&
get_quantity_for_type_of_obs
,
&
get_index_for_type_of_obs
,
&
write_type_of_obs_table
,
&
read_type_of_obs_table
,
&
get_type_of_obs_from_menu
,
&
map_type_of_obs_table
,
&
use_ext_prior_this_type_of_obs
,
&
get_name_for_quantity
,
&
get_index_for_quantity
,
&
set_namevalue_for_quantity
,
&
get_num_items_for_quantity
,
&
get_itemname_for_quantity
,
&
get_itemvalue_for_quantity
,
&
has_bounds_for_quantity
public
::
get_num_types_of_obs
,
get_num_quantities
!----------------------------------------------------------------------------
! These lists are autogenerated by the 'preprocess' program.
!
! To add new observation types (e.g. AIRS_U_WIND_COMPONENT), edit the
! obs_def_xxx_mod.f90 files and add the filename to the 'obs_type_files' variable
! in the &preprocess_nml namelist of the model-specific work/input.nml file.
! There can be multiple filenames listed for 'obs_type_files'.
!
! To add a new fundamental quantity (e.g. QTY_TEMPERATURE), first examine
! all the xxx_quantities_mod.f90 files to be sure it does not already exist.
! If it really does not, add QTY_xxx to the most appropriate file and
! add xxx_quantities_mod.f90 to the 'quantity_files' variable in the &preprocess_nml
! namelist. There can be multiple filenames listed for 'quantity_files'.
!
! Add a descriptive comment along with expected units and any other
! helpful information. These quantities should be useable by any
! model of the same system to allow interoperability and comparisons
! between model results.
!
!---------------------------------------------------------------------------
! Integer definitions for DART QUANTITIES
integer
,
parameter
,
public
::
QTY_STATE_VARIABLE
=
0
integer
,
parameter
,
public
::
QTY_U_WIND_COMPONENT
=
1
integer
,
parameter
,
public
::
QTY_V_WIND_COMPONENT
=
2
integer
,
parameter
,
public
::
QTY_SURFACE_PRESSURE
=
3
integer
,
parameter
,
public
::
QTY_TEMPERATURE
=
4
integer
,
parameter
,
public
::
QTY_SPECIFIC_HUMIDITY
=
5
integer
,
parameter
,
public
::
QTY_PRESSURE
=
6
integer
,
parameter
,
public
::
QTY_VERTICAL_VELOCITY
=
7
integer
,
parameter
,
public
::
QTY_RAINWATER_MIXING_RATIO
=
8
integer
,
parameter
,
public
::
QTY_DEWPOINT
=
9
integer
,
parameter
,
public
::
QTY_DENSITY
=
10
integer
,
parameter
,
public
::
QTY_MEAN_SOURCE
=
11
integer
,
parameter
,
public
::
QTY_VELOCITY
=
12
integer
,
parameter
,
public
::
QTY_RADAR_REFLECTIVITY
=
13
integer
,
parameter
,
public
::
QTY_GRAUPEL_MIXING_RATIO
=
14
integer
,
parameter
,
public
::
QTY_SNOW_MIXING_RATIO
=
15
integer
,
parameter
,
public
::
QTY_GPSRO
=
16
integer
,
parameter
,
public
::
QTY_CLOUD_LIQUID_WATER
=
17
integer
,
parameter
,
public
::
QTY_CLOUD_ICE
=
18
integer
,
parameter
,
public
::
QTY_CONDENSATIONAL_HEATING
=
19
integer
,
parameter
,
public
::
QTY_VAPOR_MIXING_RATIO
=
20
integer
,
parameter
,
public
::
QTY_ICE_NUMBER_CONCENTRATION
=
21
integer
,
parameter
,
public
::
QTY_GEOPOTENTIAL_HEIGHT
=
22
integer
,
parameter
,
public
::
QTY_POTENTIAL_TEMPERATURE
=
23
integer
,
parameter
,
public
::
QTY_SOIL_MOISTURE
=
24
integer
,
parameter
,
public
::
QTY_SOURCE_PHASE
=
25
integer
,
parameter
,
public
::
QTY_SURFACE_ELEVATION
=
26
integer
,
parameter
,
public
::
QTY_GRAV_WAVE_DRAG_EFFIC
=
27
integer
,
parameter
,
public
::
QTY_GRAV_WAVE_STRESS_FRACTION
=
28
integer
,
parameter
,
public
::
QTY_POWER_WEIGHTED_FALL_SPEED
=
29
integer
,
parameter
,
public
::
QTY_CLOUDWATER_MIXING_RATIO
=
30
integer
,
parameter
,
public
::
QTY_ICE_MIXING_RATIO
=
31
integer
,
parameter
,
public
::
QTY_DROPLET_NUMBER_CONCENTR
=
32
integer
,
parameter
,
public
::
QTY_SNOW_NUMBER_CONCENTR
=
33
integer
,
parameter
,
public
::
QTY_RAIN_NUMBER_CONCENTR
=
34
integer
,
parameter
,
public
::
QTY_GRAUPEL_NUMBER_CONCENTR
=
35
integer
,
parameter
,
public
::
QTY_CLOUD_FRACTION
=
36
integer
,
parameter
,
public
::
QTY_ICE_FRACTION
=
37
integer
,
parameter
,
public
::
QTY_RELATIVE_HUMIDITY
=
38
integer
,
parameter
,
public
::
QTY_1D_PARAMETER
=
39
integer
,
parameter
,
public
::
QTY_2D_PARAMETER
=
40
integer
,
parameter
,
public
::
QTY_3D_PARAMETER
=
41
integer
,
parameter
,
public
::
QTY_ALTIMETER_TENDENCY
=
42
integer
,
parameter
,
public
::
QTY_PRECIPITABLE_WATER
=
43
integer
,
parameter
,
public
::
QTY_OCCULTATION_REFRACTIVITY
=
44
integer
,
parameter
,
public
::
QTY_OCCULTATION_EXCESSPHASE
=
45
integer
,
parameter
,
public
::
QTY_GEOMETRIC_HEIGHT
=
46
integer
,
parameter
,
public
::
QTY_INFRARED_RADIANCE
=
47
integer
,
parameter
,
public
::
QTY_INFRARED_BRIGHT_TEMP
=
48
integer
,
parameter
,
public
::
QTY_LANDMASK
=
49
integer
,
parameter
,
public
::
QTY_EDGE_NORMAL_SPEED
=
50
integer
,
parameter
,
public
::
QTY_CLW_PATH
=
51
integer
,
parameter
,
public
::
QTY_CWP_PATH
=
52
integer
,
parameter
,
public
::
QTY_CWP_PATH_ZERO
=
53
integer
,
parameter
,
public
::
QTY_WIND_TURBINE_POWER
=
54
integer
,
parameter
,
public
::
QTY_2M_SPECIFIC_HUMIDITY
=
55
integer
,
parameter
,
public
::
QTY_2M_TEMPERATURE
=
56
integer
,
parameter
,
public
::
QTY_10M_U_WIND_COMPONENT
=
57
integer
,
parameter
,
public
::
QTY_10M_V_WIND_COMPONENT
=
58
integer
,
parameter
,
public
::
QTY_SKIN_TEMPERATURE
=
59
integer
,
parameter
,
public
::
QTY_NADIR_RADIANCE
=
60
integer
,
parameter
,
public
::
QTY_TRACER_1_MIXING_RATIO
=
61
integer
,
parameter
,
public
::
QTY_TRACER_2_MIXING_RATIO
=
62
integer
,
parameter
,
public
::
QTY_TRACER_CONCENTRATION
=
63
integer
,
parameter
,
public
::
QTY_TRACER_SOURCE
=
64
integer
,
parameter
,
public
::
QTY_SOIL_TEMPERATURE
=
65
integer
,
parameter
,
public
::
QTY_SOIL_LIQUID_WATER
=
66
integer
,
parameter
,
public
::
QTY_VERTICAL_VORTICITY
=
67
integer
,
parameter
,
public
::
QTY_SURFACE_ALBEDO
=
68
integer
,
parameter
,
public
::
QTY_SURFACE_EMISSIVITY
=
69
integer
,
parameter
,
public
::
QTY_DUST_OPACITY_7MB
=
70
integer
,
parameter
,
public
::
QTY_THC
=
71
integer
,
parameter
,
public
::
QTY_VORTEX_LON
=
72
integer
,
parameter
,
public
::
QTY_VORTEX_LAT
=
73
integer
,
parameter
,
public
::
QTY_VORTEX_PMIN
=
74
integer
,
parameter
,
public
::
QTY_VORTEX_WMAX
=
75
integer
,
parameter
,
public
::
QTY_EXNER_FUNCTION
=
76
integer
,
parameter
,
public
::
QTY_TURBULENT_KINETIC_ENERGY
=
77
integer
,
parameter
,
public
::
QTY_TOTAL_PRECIPITABLE_WATER
=
78
integer
,
parameter
,
public
::
QTY_VERTLEVEL
=
79
integer
,
parameter
,
public
::
QTY_MICROWAVE_BRIGHT_TEMP
=
80
integer
,
parameter
,
public
::
QTY_INTEGRATED_SULFATE
=
81
integer
,
parameter
,
public
::
QTY_INTEGRATED_DUST
=
82
integer
,
parameter
,
public
::
QTY_INTEGRATED_SMOKE
=
83
integer
,
parameter
,
public
::
QTY_INTEGRATED_SEASALT
=
84
integer
,
parameter
,
public
::
QTY_INTEGRATED_AOD
=
85
integer
,
parameter
,
public
::
QTY_SO2
=
86
integer
,
parameter
,
public
::
QTY_SULFATE
=
87
integer
,
parameter
,
public
::
QTY_DUST
=
88
integer
,
parameter
,
public
::
QTY_SMOKE
=
89
integer
,
parameter
,
public
::
QTY_SEASALT
=
90
integer
,
parameter
,
public
::
QTY_HAIL_MIXING_RATIO
=
91
integer
,
parameter
,
public
::
QTY_HAIL_NUMBER_CONCENTR
=
92
integer
,
parameter
,
public
::
QTY_GRAUPEL_VOLUME
=
93
integer
,
parameter
,
public
::
QTY_HAIL_VOLUME
=
94
integer
,
parameter
,
public
::
QTY_DIFFERENTIAL_REFLECTIVITY
=
95
integer
,
parameter
,
public
::
QTY_SPECIFIC_DIFFERENTIAL_PHASE
=
96
integer
,
parameter
,
public
::
QTY_FLASH_RATE_2D
=
97
integer
,
parameter
,
public
::
QTY_RADIANCE
=
98
integer
,
parameter
,
public
::
QTY_BRIGHTNESS_TEMPERATURE
=
99
integer
,
parameter
,
public
::
QTY_BI_DIRECTIONAL_REFLECTANCE
=
100
integer
,
parameter
,
public
::
QTY_SURFACE_TYPE
=
101
integer
,
parameter
,
public
::
QTY_WIND_FETCH
=
102
integer
,
parameter
,
public
::
QTY_WATER_TYPE
=
103
integer
,
parameter
,
public
::
QTY_FOAM_FRAC
=
104
integer
,
parameter
,
public
::
QTY_INSOLUBLE_AER
=
105
integer
,
parameter
,
public
::
QTY_H2O_SOLUBLE_AER
=
106
integer
,
parameter
,
public
::
QTY_SOOT
=
107
integer
,
parameter
,
public
::
QTY_SEASALT_ACCUM
=
108
integer
,
parameter
,
public
::
QTY_SEASALT_COARSE
=
109
integer
,
parameter
,
public
::
QTY_MINERAL_NUCLEUS
=
110
integer
,
parameter
,
public
::
QTY_MINERAL_ACCUM
=
111
integer
,
parameter
,
public
::
QTY_MINERAL_COARSE
=
112
integer
,
parameter
,
public
::
QTY_MINERAL_TRANSPORTED
=
113
integer
,
parameter
,
public
::
QTY_SULPHATED_DROPS
=
114
integer
,
parameter
,
public
::
QTY_VOLCANIC_ASH
=
115
integer
,
parameter
,
public
::
QTY_NEW_VOLCANIC_ASH
=
116
integer
,
parameter
,
public
::
QTY_ASIAN_DUST
=
117
integer
,
parameter
,
public
::
QTY_BLACK_CARBON
=
118
integer
,
parameter
,
public
::
QTY_DUST_BIN1
=
119
integer
,
parameter
,
public
::
QTY_DUST_BIN2
=
120
integer
,
parameter
,
public
::
QTY_DUST_BIN3
=
121
integer
,
parameter
,
public
::
QTY_AMMONIUM_SULPHATE
=
122
integer
,
parameter
,
public
::
QTY_SEA_SALT_BIN1
=
123
integer
,
parameter
,
public
::
QTY_SEA_SALT_BIN2
=
124
integer
,
parameter
,
public
::
QTY_SEA_SALT_BIN3
=
125
integer
,
parameter
,
public
::
QTY_HYDROPHILIC_ORGANIC_MATTER
=
126
integer
,
parameter
,
public
::
QTY_CLOUDWATER_DE
=
127
integer
,
parameter
,
public
::
QTY_CLOUD_ICE_DE
=
128
integer
,
parameter
,
public
::
QTY_COLUMN_CLOUD_FRAC
=
129
integer
,
parameter
,
public
::
QTY_CLOUD_TOP_PRESSURE
=
130
integer
,
parameter
,
public
::
QTY_ABSOLUTE_HUMIDITY
=
131
integer
,
parameter
,
public
::
QTY_O3
=
132
integer
,
parameter
,
public
::
QTY_CO2
=
133
integer
,
parameter
,
public
::
QTY_N2O
=
134
integer
,
parameter
,
public
::
QTY_CH4
=
135
integer
,
parameter
,
public
::
QTY_CO
=
136
integer
,
parameter
,
public
::
QTY_SALINITY
=
137
integer
,
parameter
,
public
::
QTY_SNOWCOVER_FRAC
=
138
integer
,
parameter
,
public
::
MAX_DEFINED_QUANTITIES
=
138
!---------------------------------------------------------------------------
!---------------------------------------------------------------------------
! Integer definitions for DART OBS TYPES
integer
,
parameter
,
public
::
RADIOSONDE_U_WIND_COMPONENT
=
1
integer
,
parameter
,
public
::
RADIOSONDE_V_WIND_COMPONENT
=
2
integer
,
parameter
,
public
::
RADIOSONDE_GEOPOTENTIAL_HGT
=
3
integer
,
parameter
,
public
::
RADIOSONDE_SURFACE_PRESSURE
=
4
integer
,
parameter
,
public
::
RADIOSONDE_TEMPERATURE
=
5
integer
,
parameter
,
public
::
RADIOSONDE_SPECIFIC_HUMIDITY
=
6
integer
,
parameter
,
public
::
DROPSONDE_U_WIND_COMPONENT
=
7
integer
,
parameter
,
public
::
DROPSONDE_V_WIND_COMPONENT
=
8
integer
,
parameter
,
public
::
DROPSONDE_SURFACE_PRESSURE
=
9
integer
,
parameter
,
public
::
DROPSONDE_TEMPERATURE
=
10
integer
,
parameter
,
public
::
DROPSONDE_SPECIFIC_HUMIDITY
=
11
integer
,
parameter
,
public
::
AIRCRAFT_U_WIND_COMPONENT
=
12
integer
,
parameter
,
public
::
AIRCRAFT_V_WIND_COMPONENT
=
13
integer
,
parameter
,
public
::
AIRCRAFT_TEMPERATURE
=
14
integer
,
parameter
,
public
::
AIRCRAFT_SPECIFIC_HUMIDITY
=
15
integer
,
parameter
,
public
::
ACARS_U_WIND_COMPONENT
=
16
integer
,
parameter
,
public
::
ACARS_V_WIND_COMPONENT
=
17
integer
,
parameter
,
public
::
ACARS_TEMPERATURE
=
18
integer
,
parameter
,
public
::
ACARS_SPECIFIC_HUMIDITY
=
19
integer
,
parameter
,
public
::
MARINE_SFC_U_WIND_COMPONENT
=
20
integer
,
parameter
,
public
::
MARINE_SFC_V_WIND_COMPONENT
=
21
integer
,
parameter
,
public
::
MARINE_SFC_TEMPERATURE
=
22
integer
,
parameter
,
public
::
MARINE_SFC_SPECIFIC_HUMIDITY
=
23
integer
,
parameter
,
public
::
MARINE_SFC_PRESSURE
=
24
integer
,
parameter
,
public
::
LAND_SFC_U_WIND_COMPONENT
=
25
integer
,
parameter
,
public
::
LAND_SFC_V_WIND_COMPONENT
=
26
integer
,
parameter
,
public
::
LAND_SFC_TEMPERATURE
=
27
integer
,
parameter
,
public
::
LAND_SFC_SPECIFIC_HUMIDITY
=
28
integer
,
parameter
,
public
::
LAND_SFC_PRESSURE
=
29
integer
,
parameter
,
public
::
SAT_U_WIND_COMPONENT
=
30
integer
,
parameter
,
public
::
SAT_V_WIND_COMPONENT
=
31
integer
,
parameter
,
public
::
ATOV_TEMPERATURE
=
32
integer
,
parameter
,
public
::
AIRS_TEMPERATURE
=
33
integer
,
parameter
,
public
::
AIRS_SPECIFIC_HUMIDITY
=
34
integer
,
parameter
,
public
::
GPS_PRECIPITABLE_WATER
=
35
integer
,
parameter
,
public
::
VADWND_U_WIND_COMPONENT
=
36
integer
,
parameter
,
public
::
VADWND_V_WIND_COMPONENT
=
37
integer
,
parameter
,
public
::
CIMMS_AMV_U_WIND_COMPONENT
=
38
integer
,
parameter
,
public
::
CIMMS_AMV_V_WIND_COMPONENT
=
39
integer
,
parameter
,
public
::
DOPPLER_RADIAL_VELOCITY
=
40
integer
,
parameter
,
public
::
RADAR_REFLECTIVITY
=
41
integer
,
parameter
,
public
::
RADAR_CLEARAIR_REFLECTIVITY
=
42
integer
,
parameter
,
public
::
PRECIPITATION_FALL_SPEED
=
43
integer
,
parameter
,
public
::
METAR_U_10_METER_WIND
=
44
integer
,
parameter
,
public
::
METAR_V_10_METER_WIND
=
45
integer
,
parameter
,
public
::
METAR_TEMPERATURE_2_METER
=
46
integer
,
parameter
,
public
::
METAR_SPECIFIC_HUMIDITY_2_METER
=
47
integer
,
parameter
,
public
::
METAR_SURFACE_PRESSURE
=
48
integer
,
parameter
,
public
::
METAR_POT_TEMP_2_METER
=
49
integer
,
parameter
,
public
::
DEWPOINT
=
50
integer
,
parameter
,
public
::
DEWPOINT_2_METER
=
51
integer
,
parameter
,
public
::
BUOY_DEWPOINT
=
52
integer
,
parameter
,
public
::
SHIP_DEWPOINT
=
53
integer
,
parameter
,
public
::
SYNOP_DEWPOINT
=
54
integer
,
parameter
,
public
::
AIREP_DEWPOINT
=
55
integer
,
parameter
,
public
::
AMDAR_DEWPOINT
=
56
integer
,
parameter
,
public
::
PILOT_DEWPOINT
=
57
integer
,
parameter
,
public
::
BOGUS_DEWPOINT
=
58
integer
,
parameter
,
public
::
AIRS_DEWPOINT
=
59
integer
,
parameter
,
public
::
METAR_DEWPOINT_2_METER
=
60
integer
,
parameter
,
public
::
RADIOSONDE_DEWPOINT
=
61
integer
,
parameter
,
public
::
DROPSONDE_DEWPOINT
=
62
integer
,
parameter
,
public
::
AIRCRAFT_DEWPOINT
=
63
integer
,
parameter
,
public
::
ACARS_DEWPOINT
=
64
integer
,
parameter
,
public
::
MARINE_SFC_DEWPOINT
=
65
integer
,
parameter
,
public
::
LAND_SFC_DEWPOINT
=
66
integer
,
parameter
,
public
::
RADIOSONDE_RELATIVE_HUMIDITY
=
67
integer
,
parameter
,
public
::
DROPSONDE_RELATIVE_HUMIDITY
=
68
integer
,
parameter
,
public
::
AIRCRAFT_RELATIVE_HUMIDITY
=
69
integer
,
parameter
,
public
::
ACARS_RELATIVE_HUMIDITY
=
70
integer
,
parameter
,
public
::
MARINE_SFC_RELATIVE_HUMIDITY
=
71
integer
,
parameter
,
public
::
LAND_SFC_RELATIVE_HUMIDITY
=
72
integer
,
parameter
,
public
::
METAR_RELATIVE_HUMIDITY_2_METER
=
73
integer
,
parameter
,
public
::
AIRS_RELATIVE_HUMIDITY
=
74
integer
,
parameter
,
public
::
MESONET_RELATIVE_HUMIDITY
=
75
integer
,
parameter
,
public
::
RADIOSONDE_SURFACE_ALTIMETER
=
76
integer
,
parameter
,
public
::
DROPSONDE_SURFACE_ALTIMETER
=
77
integer
,
parameter
,
public
::
MARINE_SFC_ALTIMETER
=
78
integer
,
parameter
,
public
::
LAND_SFC_ALTIMETER
=
79
integer
,
parameter
,
public
::
METAR_ALTIMETER
=
80
integer
,
parameter
,
public
::
MESONET_SURFACE_ALTIMETER
=
81
integer
,
parameter
,
public
::
TEMPERATURE
=
82
integer
,
parameter
,
public
::
SPECIFIC_HUMIDITY
=
83
integer
,
parameter
,
public
::
PRESSURE
=
84
integer
,
parameter
,
public
::
GPSRO_REFRACTIVITY
=
85
integer
,
parameter
,
public
::
VORTEX_LAT
=
86
integer
,
parameter
,
public
::
VORTEX_LON
=
87
integer
,
parameter
,
public
::
VORTEX_PMIN
=
88
integer
,
parameter
,
public
::
VORTEX_WMAX
=
89
integer
,
parameter
,
public
::
BUOY_U_WIND_COMPONENT
=
90
integer
,
parameter
,
public
::
BUOY_V_WIND_COMPONENT
=
91
integer
,
parameter
,
public
::
BUOY_SURFACE_PRESSURE
=
92
integer
,
parameter
,
public
::
BUOY_TEMPERATURE
=
93
integer
,
parameter
,
public
::
SHIP_U_WIND_COMPONENT
=
94
integer
,
parameter
,
public
::
SHIP_V_WIND_COMPONENT
=
95
integer
,
parameter
,
public
::
SHIP_SURFACE_PRESSURE
=
96
integer
,
parameter
,
public
::
SHIP_TEMPERATURE
=
97
integer
,
parameter
,
public
::
SYNOP_U_WIND_COMPONENT
=
98
integer
,
parameter
,
public
::
SYNOP_V_WIND_COMPONENT
=
99
integer
,
parameter
,
public
::
SYNOP_SURFACE_PRESSURE
=
100
integer
,
parameter
,
public
::
SYNOP_SPECIFIC_HUMIDITY
=
101
integer
,
parameter
,
public
::
SYNOP_TEMPERATURE
=
102
integer
,
parameter
,
public
::
AIREP_U_WIND_COMPONENT
=
103
integer
,
parameter
,
public
::
AIREP_V_WIND_COMPONENT
=
104
integer
,
parameter
,
public
::
AIREP_PRESSURE
=
105
integer
,
parameter
,
public
::
AIREP_TEMPERATURE
=
106
integer
,
parameter
,
public
::
AMDAR_U_WIND_COMPONENT
=
107
integer
,
parameter
,
public
::
AMDAR_V_WIND_COMPONENT
=
108
integer
,
parameter
,
public
::
AMDAR_PRESSURE
=
109
integer
,
parameter
,
public
::
AMDAR_TEMPERATURE
=
110
integer
,
parameter
,
public
::
PILOT_U_WIND_COMPONENT
=
111
integer
,
parameter
,
public
::
PILOT_V_WIND_COMPONENT
=
112
integer
,
parameter
,
public
::
PILOT_PRESSURE
=
113
integer
,
parameter
,
public
::
PILOT_TEMPERATURE
=
114
integer
,
parameter
,
public
::
BOGUS_U_WIND_COMPONENT
=
115
integer
,
parameter
,
public
::
BOGUS_V_WIND_COMPONENT
=
116
integer
,
parameter
,
public
::
BOGUS_PRESSURE
=
117
integer
,
parameter
,
public
::
BOGUS_TEMPERATURE
=
118
integer
,
parameter
,
public
::
PROFILER_U_WIND_COMPONENT
=
119
integer
,
parameter
,
public
::
PROFILER_V_WIND_COMPONENT
=
120
integer
,
parameter
,
public
::
PROFILER_PRESSURE
=
121
integer
,
parameter
,
public
::
SATEM_THICKNESS
=
122
integer
,
parameter
,
public
::
NOAA_1_VTPR1_RADIANCE
=
123
integer
,
parameter
,
public
::
NOAA_2_VTPR1_RADIANCE
=
124
integer
,
parameter
,
public
::
NOAA_3_VTPR1_RADIANCE
=
125
integer
,
parameter
,
public
::
NOAA_4_VTPR1_RADIANCE
=
126
integer
,
parameter
,
public
::
NOAA_5_HIRS_RADIANCE
=
127
integer
,
parameter
,
public
::
NOAA_5_MSU_TB
=
128
integer
,
parameter
,
public
::
NOAA_5_AVHRR_RADIANCE
=
129
integer
,
parameter
,
public
::
NOAA_6_HIRS_RADIANCE
=
130
integer
,
parameter
,
public
::
NOAA_6_MSU_TB
=
131
integer
,
parameter
,
public
::
NOAA_6_AVHRR_RADIANCE
=
132
integer
,
parameter
,
public
::
NOAA_7_HIRS_RADIANCE
=
133
integer
,
parameter
,
public
::
NOAA_7_MSU_TB
=
134
integer
,
parameter
,
public
::
NOAA_7_AVHRR_RADIANCE
=
135
integer
,
parameter
,
public
::
NOAA_8_HIRS_RADIANCE
=
136
integer
,
parameter
,
public
::
NOAA_8_MSU_TB
=
137
integer
,
parameter
,
public
::
NOAA_8_AVHRR_RADIANCE
=
138
integer
,
parameter
,
public
::
NOAA_9_HIRS_RADIANCE
=
139
integer
,
parameter
,
public
::
NOAA_9_MSU_TB
=
140
integer
,
parameter
,
public
::
NOAA_9_AVHRR_RADIANCE
=
141
integer
,
parameter
,
public
::
NOAA_10_HIRS_RADIANCE
=
142
integer
,
parameter
,
public
::
NOAA_10_MSU_TB
=
143
integer
,
parameter
,
public
::
NOAA_10_AVHRR_RADIANCE
=
144
integer
,
parameter
,
public
::
NOAA_11_HIRS_RADIANCE
=
145
integer
,
parameter
,
public
::
NOAA_11_MSU_TB
=
146
integer
,
parameter
,
public
::
NOAA_11_AVHRR_RADIANCE
=
147
integer
,
parameter
,
public
::
NOAA_12_HIRS_RADIANCE
=
148
integer
,
parameter
,
public
::
NOAA_12_MSU_TB
=
149
integer
,
parameter
,
public
::
NOAA_12_AVHRR_RADIANCE
=
150
integer
,
parameter
,
public
::
NOAA_13_AVHRR_RADIANCE
=
151
integer
,
parameter
,
public
::
NOAA_14_HIRS_RADIANCE
=
152
integer
,
parameter
,
public
::
NOAA_14_MSU_TB
=
153
integer
,
parameter
,
public
::
NOAA_14_AVHRR_RADIANCE
=
154
integer
,
parameter
,
public
::
NOAA_15_HIRS_RADIANCE
=
155
integer
,
parameter
,
public
::
NOAA_15_AMSUA_TB
=
156
integer
,
parameter
,
public
::
NOAA_15_AMSUB_TB
=
157
integer
,
parameter
,
public
::
NOAA_15_AVHRR_RADIANCE
=
158
integer
,
parameter
,
public
::
NOAA_16_HIRS_RADIANCE
=
159
integer
,
parameter
,
public
::
NOAA_16_AMSUA_TB
=
160
integer
,
parameter
,
public
::
NOAA_16_AMSUB_TB
=
161
integer
,
parameter
,
public
::
NOAA_16_AVHRR_RADIANCE
=
162
integer
,
parameter
,
public
::
NOAA_17_HIRS_RADIANCE
=
163
integer
,
parameter
,
public
::
NOAA_17_AMSUA_TB
=
164
integer
,
parameter
,
public
::
NOAA_17_AMSUB_TB
=
165
integer
,
parameter
,
public
::
NOAA_17_AVHRR_RADIANCE
=
166
integer
,
parameter
,
public
::
NOAA_18_HIRS_RADIANCE
=
167
integer
,
parameter
,
public
::
NOAA_18_AMSUA_TB
=
168
integer
,
parameter
,
public
::
NOAA_18_AVHRR_RADIANCE
=
169
integer
,
parameter
,
public
::
NOAA_18_MHS_TB
=
170
integer
,
parameter
,
public
::
NOAA_19_HIRS_RADIANCE
=
171
integer
,
parameter
,
public
::
NOAA_19_AMSUA_TB
=
172
integer
,
parameter
,
public
::
NOAA_19_AVHRR_RADIANCE
=
173
integer
,
parameter
,
public
::
NOAA_19_MHS_TB
=
174
integer
,
parameter
,
public
::
NOAA_20_ATMS_TB
=
175
integer
,
parameter
,
public
::
NOAA_20_VIIRS_RADIANCE
=
176
integer
,
parameter
,
public
::
DMSP_8_SSMI_TB
=
177
integer
,
parameter
,
public
::
DMSP_9_SSMI_TB
=
178
integer
,
parameter
,
public
::
DMSP_10_SSMI_TB
=
179
integer
,
parameter
,
public
::
DMSP_11_SSMI_TB
=
180
integer
,
parameter
,
public
::
DMSP_11_SSMT2_TB
=
181
integer
,
parameter
,
public
::
DMSP_12_SSMI_TB
=
182
integer
,
parameter
,
public
::
DMSP_12_SSMT2_TB
=
183
integer
,
parameter
,
public
::
DMSP_13_SSMI_TB
=
184
integer
,
parameter
,
public
::
DMSP_14_SSMI_TB
=
185
integer
,
parameter
,
public
::
DMSP_14_SSMT2_TB
=
186
integer
,
parameter
,
public
::
DMSP_15_SSMI_TB
=
187
integer
,
parameter
,
public
::
DMSP_15_SSMT2_TB
=
188
integer
,
parameter
,
public
::
DMSP_16_SSMIS_TB
=
189
integer
,
parameter
,
public
::
DMSP_17_SSMIS_TB
=
190
integer
,
parameter
,
public
::
DMSP_18_SSMIS_TB
=
191
integer
,
parameter
,
public
::
DMSP_19_SSMIS_TB
=
192
integer
,
parameter
,
public
::
METEOSAT_1_MVIRI_RADIANCE
=
193
integer
,
parameter
,
public
::
METEOSAT_2_MVIRI_RADIANCE
=
194
integer
,
parameter
,
public
::
METEOSAT_3_MVIRI_RADIANCE
=
195
integer
,
parameter
,
public
::
METEOSAT_4_MVIRI_RADIANCE
=
196
integer
,
parameter
,
public
::
METEOSAT_5_MVIRI_RADIANCE
=
197
integer
,
parameter
,
public
::
METEOSAT_6_MVIRI_RADIANCE
=
198
integer
,
parameter
,
public
::
METEOSAT_7_MVIRI_RADIANCE
=
199
integer
,
parameter
,
public
::
GOES_4_SOUNDER_RADIANCE
=
200
integer
,
parameter
,
public
::
GOES_5_SOUNDER_RADIANCE
=
201
integer
,
parameter
,
public
::
GOES_6_SOUNDER_RADIANCE
=
202
integer
,
parameter
,
public
::
GOES_7_SOUNDER_RADIANCE
=
203
integer
,
parameter
,
public
::
GOES_8_IMAGER_RADIANCE
=
204
integer
,
parameter
,
public
::
GOES_8_SOUNDER_RADIANCE
=
205
integer
,
parameter
,
public
::
GOES_9_IMAGER_RADIANCE
=
206
integer
,
parameter
,
public
::
GOES_9_SOUNDER_RADIANCE
=
207
integer
,
parameter
,
public
::
GOES_10_IMAGER_RADIANCE
=
208
integer
,
parameter
,
public
::
GOES_10_SOUNDER_RADIANCE
=
209
integer
,
parameter
,
public
::
GOES_11_IMAGER_RADIANCE
=
210
integer
,
parameter
,
public
::
GOES_11_SOUNDER_RADIANCE
=
211
integer
,
parameter
,
public
::
GOES_12_IMAGER_RADIANCE
=
212
integer
,
parameter
,
public
::
GOES_12_SOUNDER_RADIANCE
=
213
integer
,
parameter
,
public
::
GOES_13_IMAGER_RADIANCE
=
214
integer
,
parameter
,
public
::
GOES_13_SOUNDER_RADIANCE
=
215
integer
,
parameter
,
public
::
GOES_14_IMAGER_RADIANCE
=
216
integer
,
parameter
,
public
::
GOES_14_SOUNDER_RADIANCE
=
217
integer
,
parameter
,
public
::
GOES_15_IMAGER_RADIANCE
=
218
integer
,
parameter
,
public
::
GOES_15_SOUNDER_RADIANCE
=
219
integer
,
parameter
,
public
::
GOES_16_ABI_RADIANCE
=
220
integer
,
parameter
,
public
::
GOES_17_ABI_RADIANCE
=
221
integer
,
parameter
,
public
::
GOES_18_ABI_RADIANCE
=
222
integer
,
parameter
,
public
::
GOES_19_ABI_RADIANCE
=
223
integer
,
parameter
,
public
::
GMS_1_IMAGER_RADIANCE
=
224
integer
,
parameter
,
public
::
GMS_2_IMAGER_RADIANCE
=
225
integer
,
parameter
,
public
::
GMS_3_IMAGER_RADIANCE
=
226
integer
,
parameter
,
public
::
GMS_4_IMAGER_RADIANCE
=
227
integer
,
parameter
,
public
::
GMS_5_IMAGER_RADIANCE
=
228
integer
,
parameter
,
public
::
FY2_2_VISSR_RADIANCE
=
229
integer
,
parameter
,
public
::
FY2_3_VISSR_RADIANCE
=
230
integer
,
parameter
,
public
::
FY2_4_VISSR_RADIANCE
=
231
integer
,
parameter
,
public
::
FY2_5_VISSR_RADIANCE
=
232
integer
,
parameter
,
public
::
FY2_7_VISSR_RADIANCE
=
233
integer
,
parameter
,
public
::
TRMM_1_TMI_TB
=
234
integer
,
parameter
,
public
::
ERS_1_ATSR_RADIANCE
=
235
integer
,
parameter
,
public
::
ERS_1_MWR_TB
=
236
integer
,
parameter
,
public
::
ERS_2_ATSR_RADIANCE
=
237
integer
,
parameter
,
public
::
ERS_2_MWR_TB
=
238
integer
,
parameter
,
public
::
EOS_1_MODIS_RADIANCE
=
239
integer
,
parameter
,
public
::
EOS_1_ASTER_RADIANCE
=
240
integer
,
parameter
,
public
::
EOS_2_AMSUA_TB
=
241
integer
,
parameter
,
public
::
EOS_2_AIRS_RADIANCE
=
242
integer
,
parameter
,
public
::
EOS_2_HSB_TB
=
243
integer
,
parameter
,
public
::
EOS_2_MODIS_RADIANCE
=
244
integer
,
parameter
,
public
::
EOS_2_AMSRE_TB
=
245
integer
,
parameter
,
public
::
METOP_1_HIRS_RADIANCE
=
246
integer
,
parameter
,
public
::
METOP_1_AMSUA_TB
=
247
integer
,
parameter
,
public
::
METOP_1_AVHRR_RADIANCE
=
248
integer
,
parameter
,
public
::
METOP_1_MHS_TB
=
249
integer
,
parameter
,
public
::
METOP_2_HIRS_RADIANCE
=
250
integer
,
parameter
,
public
::
METOP_2_AMSUA_TB
=
251
integer
,
parameter
,
public
::
METOP_2_AVHRR_RADIANCE
=
252
integer
,
parameter
,
public
::
METOP_2_MHS_TB
=
253
integer
,
parameter
,
public
::
METOP_3_AVHRR_RADIANCE
=
254
integer
,
parameter
,
public
::
ENVISAT_1_ATSR_RADIANCE
=
255
integer
,
parameter
,
public
::
ENVISAT_1_MWR_TB
=
256
integer
,
parameter
,
public
::
MSG_1_SEVIRI_RADIANCE
=
257
integer
,
parameter
,
public
::
MSG_2_SEVIRI_RADIANCE
=
258
integer
,
parameter
,
public
::
MSG_3_SEVIRI_RADIANCE
=
259
integer
,
parameter
,
public
::
MSG_4_SEVIRI_RADIANCE
=
260
integer
,
parameter
,
public
::
MSG_4_SEVIRI_TB
=
261
integer
,
parameter
,
public
::
MSG_4_SEVIRI_BDRF
=
262
integer
,
parameter
,
public
::
FY1_3_MVISR_RADIANCE
=
263
integer
,
parameter
,
public
::
FY1_4_MVISR_RADIANCE
=
264
integer
,
parameter
,
public
::
MTSAT_1_IMAGER_RADIANCE
=
265
integer
,
parameter
,
public
::
MTSAT_2_IMAGER_RADIANCE
=
266
integer
,
parameter
,
public
::
CORIOLIS_1_WINDSAT_TB
=
267
integer
,
parameter
,
public
::
JPSS_0_ATMS_TB
=
268
integer
,
parameter
,
public
::
JPSS_0_VIIRS_RADIANCE
=
269
integer
,
parameter
,
public
::
SENTINEL3_1_SLSTR_RADIANCE
=
270
integer
,
parameter
,
public
::
SENTINEL3_2_SLSTR_RADIANCE
=
271
integer
,
parameter
,
public
::
MEGHATR_1_SAPHIR_TB
=
272
integer
,
parameter
,
public
::
MEGHATR_1_MADRAS_TB
=
273
integer
,
parameter
,
public
::
FY3_1_MWTS_TB
=
274
integer
,
parameter
,
public
::
FY3_1_MWHS_TB
=
275
integer
,
parameter
,
public
::
FY3_1_IRAS_RADIANCE
=
276
integer
,
parameter
,
public
::
FY3_1_MWRI_TB
=
277
integer
,
parameter
,
public
::
FY3_2_MWTS_TB
=
278
integer
,
parameter
,
public
::
FY3_2_MWHS_TB
=
279
integer
,
parameter
,
public
::
FY3_2_MWRI_TB
=
280
integer
,
parameter
,
public
::
FY3_3_MWRI_TB
=
281
integer
,
parameter
,
public
::
FY3_3_MWTS2_TB
=
282
integer
,
parameter
,
public
::
FY3_3_MWHS2_TB
=
283
integer
,
parameter
,
public
::
FY3_3_MERSI1_RADIANCE
=
284
integer
,
parameter
,
public
::
FY3_4_MWRI_TB
=
285
integer
,
parameter
,
public
::
FY3_4_MWTS2_TB
=
286
integer
,
parameter
,
public
::
FY3_4_MWHS2_TB
=
287
integer
,
parameter
,
public
::
FY3_4_MERSI2_RADIANCE
=
288
integer
,
parameter
,
public
::
COMS_1_MI_RADIANCE
=
289
integer
,
parameter
,
public
::
METEOR_M_1_MSUMR_RADIANCE
=
290
integer
,
parameter
,
public
::
METEOR_M_2_MSUMR_RADIANCE
=
291
integer
,
parameter
,
public
::
METEOR_M_2_MTVZAGY_TB
=
292
integer
,
parameter
,
public
::
CALIPSO_1_IIR_RADIANCE
=
293
integer
,
parameter
,
public
::
GCOM_W_1_AMSR2_TB
=
294
integer
,
parameter
,
public
::
NIMBUS_3_MRIR_RADIANCE
=
295
integer
,
parameter
,
public
::
NIMBUS_4_THIR_RADIANCE
=
296
integer
,
parameter
,
public
::
NIMBUS_5_THIR_RADIANCE
=
297
integer
,
parameter
,
public
::
NIMBUS_6_HIRS_RADIANCE
=
298
integer
,
parameter
,
public
::
NIMBUS_6_SCAMS_TB
=
299
integer
,
parameter
,
public
::
NIMBUS_6_THIR_RADIANCE
=
300
integer
,
parameter
,
public
::
NIMBUS_7_SMMR_TB
=
301
integer
,
parameter
,
public
::
NIMBUS_7_THIR_RADIANCE
=
302
integer
,
parameter
,
public
::
HIMAWARI_8_AHI_RADIANCE
=
303
integer
,
parameter
,
public
::
HIMAWARI_9_AHI_RADIANCE
=
304
integer
,
parameter
,
public
::
MTG_1_FCI_RADIANCE
=
305
integer
,
parameter
,
public
::
SARAL_1_ALTIKA_TB
=
306
integer
,
parameter
,
public
::
METOPSG_1_ICI_TB
=
307
integer
,
parameter
,
public
::
METOPSG_1_METIMAGE_RADIANCE
=
308
integer
,
parameter
,
public
::
METOPSG_1_MWS_TB
=
309
integer
,
parameter
,
public
::
METOPSG_1_MWI_TB
=
310
integer
,
parameter
,
public
::
LANDSAT_4_TM_RADIANCE
=
311
integer
,
parameter
,
public
::
LANDSAT_5_TM_RADIANCE
=
312
integer
,
parameter
,
public
::
LANDSAT_7_TM_RADIANCE
=
313
integer
,
parameter
,
public
::
LANDSAT_8_TIRS_RADIANCE
=
314
integer
,
parameter
,
public
::
JASON_2_AMR_TB
=
315
integer
,
parameter
,
public
::
GPM_1_GMI_TB
=
316
integer
,
parameter
,
public
::
GPM_1_DPR_TB
=
317
integer
,
parameter
,
public
::
INSAT3_4_IMAGER_RADIANCE
=
318
integer
,
parameter
,
public
::
INSAT3_4_SOUNDER_RADIANCE
=
319
integer
,
parameter
,
public
::
INSAT3_5_IMAGER_RADIANCE
=
320
integer
,
parameter
,
public
::
INSAT3_5_SOUNDER_RADIANCE
=
321
integer
,
parameter
,
public
::
TICFIRE_1_MBFIRI_RADIANCE
=
322
integer
,
parameter
,
public
::
ISS_1_ECOSTRES_RADIANCE
=
323
integer
,
parameter
,
public
::
HJ1_2_IRMSS_RADIANCE
=
324
integer
,
parameter
,
public
::
GKOMPSAT2_1_AMI_RADIANCE
=
325
integer
,
parameter
,
public
::
GCOM_C_1_SGLI_RADIANCE
=
326
integer
,
parameter
,
public
::
SMOS_1_MIRAS_TB
=
327
integer
,
parameter
,
public
::
ORS_6_COWVR_TB
=
328
integer
,
parameter
,
public
::
FY4_1_AGRI_RADIANCE
=
329
integer
,
parameter
,
public
::
TROPICS_0_TROPICS_TB
=
330
integer
,
parameter
,
public
::
GF5_1_VIMS_RADIANCE
=
331
integer
,
parameter
,
public
::
HY2_1_MWRI_TB
=
332
integer
,
parameter
,
public
::
CLOUDSAT_1_CPR_TB
=
333
integer
,
parameter
,
public
::
MAX_DEFINED_TYPES_OF_OBS
=
333
!---------------------------------------------------------------------------
!----------------------------------------------------------------------------
character
(
len
=*
),
parameter
::
source
=
'DEFAULT_obs_def_mod.F90'
! integer, parameters: max_defined_types_of_obs, max_defined_quantities
! generated and inserted by preprocess.
logical
,
save
::
module_initialized
=
.false.
character
(
len
=
512
)
::
msg_string
,
msg_string1
! @todo FIXME: what is the right len for a units and
! other name/value pair strings?
integer
,
parameter
::
namelen
=
256
integer
,
parameter
::
valuelen
=
256
integer
::
num_types_assimilate
,
num_types_evaluate
integer
::
num_types_use_precomputed_FOs
! Map from values of type in a TOC (e.g. the start of an obs_seq file)
! to the type index in this module.
! Initially, these are undefined and have values -1.
! In each entry, the toc_type_index value is the index in the table of
! contents (usually an input obs_sequence file), and the mod_type_index
! is the current type value in this module.
type
toc_mod_type_map_type
integer
::
toc_type_index
(
max_defined_types_of_obs
)
=
-1
integer
::
mod_type_index
(
max_defined_types_of_obs
)
=
-1
end
type
toc_mod_type_map_type
type
(
toc_mod_type_map_type
)
::
toc_mod_type_map
! old:
!integer :: map(2, max_defined_types_of_obs) = -1
! An observation type links together a unique integer index,
! a character string which matches the integer parameter name,
! what quantity this type is associated with,
! and whether observations of this type should be assimilated,
! evaluated, or neither.
!
! Name lengths are limited to 32 characters by compiler
! restrictions on the length of parameter identifiers.
type
obs_type_type
integer
::
index
=
-1
character
(
len
=
obstypelength
)
::
name
=
''
integer
::
quantity
=
-1
logical
::
assimilate
=
.false.
logical
::
evaluate
=
.false.
logical
::
use_precomputed_FO
=
.false.
end
type
obs_type_type
type
(
obs_type_type
)
::
obs_type_info
(
max_defined_types_of_obs
)
! An observation quantity type stores a unique integer index,
! a character string which matches the integer parameter name,
! and name/value pairs of metadata for this quantity.
integer
,
parameter
::
MAX_ITEMS
=
50
type
obs_qty_type
integer
::
index
=
-1
character
(
len
=
obstypelength
)
::
name
=
''
integer
::
nitems
=
0
character
(
len
=
namelen
)
::
itemname
(
MAX_ITEMS
)
=
''
character
(
len
=
valuelen
)
::
itemvalue
(
MAX_ITEMS
)
=
''
end
type
obs_qty_type
! the raw quantity uses index 0, so this needs to match.
type
(
obs_qty_type
)
::
obs_qty_info
(
0
:
max_defined_quantities
)
! Namelist array to turn on any requested observation types
character
(
len
=
obstypelength
)
::
assimilate_these_obs_types
(
max_defined_types_of_obs
)
=
'null'
character
(
len
=
obstypelength
)
::
evaluate_these_obs_types
(
max_defined_types_of_obs
)
=
'null'
character
(
len
=
obstypelength
)
::
use_precomputed_FOs_these_obs_types
(
max_defined_types_of_obs
)
=
'null'
! namelist /obs_qty_nml/ ...
namelist
/
obs_kind_nml
/
assimilate_these_obs_types
,
&
evaluate_these_obs_types
,
&
use_precomputed_FOs_these_obs_types
contains
!----------------------------------------------------------------------------
subroutine
initialize_module
()
integer
::
iunit
,
io
,
i
,
j
character
(
len
=
169
)
::
err_string
character
(
len
=*
),
parameter
::
routine
=
'initialize_module'
module_initialized
=
.true.
! Read the namelist entry
call
find_namelist_in_file
(
"input.nml"
,
"obs_kind_nml"
,
iunit
)
read
(
iunit
,
nml
=
obs_kind_nml
,
iostat
=
io
)
call
check_namelist_read
(
iunit
,
io
,
"obs_kind_nml"
)
!----------------------------------------------------------------------------
! These lists are autogenerated by the 'preprocess' program.
!
! To add quantities, edit the appropriate xxx_quantity_mod.f90 files
! and then add them to the 'quantity_files' variable in the
! &preprocess_nml namelist in the input.nml file in the current directory.
!
! To add types, edit the obs_def_xxx_mod.f90 files and then add them
! to the 'obs_type_files' variable of the &preprocess_nml namelist
! in the input.nml file in the current directory.
!
! Associate integer parameter names with a string of the same name.
! Also associate types of obs with the quantity.
obs_qty_info
(
0
)
%
index
=
0
obs_qty_info
(
0
)
%
name
=
"QTY_STATE_VARIABLE"
obs_qty_info
(
0
)
%
nitems
=
1
obs_qty_info
(
0
)
%
itemname
(
1
)
=
"desc"
obs_qty_info
(
0
)
%
itemvalue
(
1
)
=
"basic item in a state"
obs_qty_info
(
1
)
%
index
=
1
obs_qty_info
(
1
)
%
name
=
"QTY_U_WIND_COMPONENT"
obs_qty_info
(
1
)
%
nitems
=
0
obs_qty_info
(
2
)
%
index
=
2
obs_qty_info
(
2
)
%
name
=
"QTY_V_WIND_COMPONENT"
obs_qty_info
(
2
)
%
nitems
=
0
obs_qty_info
(
3
)
%
index
=
3
obs_qty_info
(
3
)
%
name
=
"QTY_SURFACE_PRESSURE"
obs_qty_info
(
3
)
%
nitems
=
0
obs_qty_info
(
4
)
%
index
=
4
obs_qty_info
(
4
)
%
name
=
"QTY_TEMPERATURE"
obs_qty_info
(
4
)
%
nitems
=
0
obs_qty_info
(
5
)
%
index
=
5
obs_qty_info
(
5
)
%
name
=
"QTY_SPECIFIC_HUMIDITY"
obs_qty_info
(
5
)
%
nitems
=
0
obs_qty_info
(
6
)
%
index
=
6
obs_qty_info
(
6
)
%
name
=
"QTY_PRESSURE"
obs_qty_info
(
6
)
%
nitems
=
0
obs_qty_info
(
7
)
%
index
=
7
obs_qty_info
(
7
)
%
name
=
"QTY_VERTICAL_VELOCITY"
obs_qty_info
(
7
)
%
nitems
=
0
obs_qty_info
(
8
)
%
index
=
8
obs_qty_info
(
8
)
%
name
=
"QTY_RAINWATER_MIXING_RATIO"
obs_qty_info
(
8
)
%
nitems
=
0
obs_qty_info
(
9
)
%
index
=
9
obs_qty_info
(
9
)
%
name
=
"QTY_DEWPOINT"
obs_qty_info
(
9
)
%
nitems
=
0
obs_qty_info
(
10
)
%
index
=
10
obs_qty_info
(
10
)
%
name
=
"QTY_DENSITY"
obs_qty_info
(
10
)
%
nitems
=
0
obs_qty_info
(
11
)
%
index
=
11
obs_qty_info
(
11
)
%
name
=
"QTY_MEAN_SOURCE"
obs_qty_info
(
11
)
%
nitems
=
0
obs_qty_info
(
12
)
%
index
=
12
obs_qty_info
(
12
)
%
name
=
"QTY_VELOCITY"
obs_qty_info
(
12
)
%
nitems
=
0
obs_qty_info
(
13
)
%
index
=
13
obs_qty_info
(
13
)
%
name
=
"QTY_RADAR_REFLECTIVITY"
obs_qty_info
(
13
)
%
nitems
=
0
obs_qty_info
(
14
)
%
index
=
14
obs_qty_info
(
14
)
%
name
=
"QTY_GRAUPEL_MIXING_RATIO"
obs_qty_info
(
14
)
%
nitems
=
0
obs_qty_info
(
15
)
%
index
=
15
obs_qty_info
(
15
)
%
name
=
"QTY_SNOW_MIXING_RATIO"
obs_qty_info
(
15
)
%
nitems
=
0
obs_qty_info
(
16
)
%
index
=
16
obs_qty_info
(
16
)
%
name
=
"QTY_GPSRO"
obs_qty_info
(
16
)
%
nitems
=
0
obs_qty_info
(
17
)
%
index
=
17
obs_qty_info
(
17
)
%
name
=
"QTY_CLOUD_LIQUID_WATER"
obs_qty_info
(
17
)
%
nitems
=
0
obs_qty_info
(
18
)
%
index
=
18
obs_qty_info
(
18
)
%
name
=
"QTY_CLOUD_ICE"
obs_qty_info
(
18
)
%
nitems
=
0
obs_qty_info
(
19
)
%
index
=
19
obs_qty_info
(
19
)
%
name
=
"QTY_CONDENSATIONAL_HEATING"
obs_qty_info
(
19
)
%
nitems
=
0
obs_qty_info
(
20
)
%
index
=
20
obs_qty_info
(
20
)
%
name
=
"QTY_VAPOR_MIXING_RATIO"
obs_qty_info
(
20
)
%
nitems
=
0
obs_qty_info
(
21
)
%
index
=
21
obs_qty_info
(
21
)
%
name
=
"QTY_ICE_NUMBER_CONCENTRATION"
obs_qty_info
(
21
)
%
nitems
=
0
obs_qty_info
(
22
)
%
index
=
22
obs_qty_info
(
22
)
%
name
=
"QTY_GEOPOTENTIAL_HEIGHT"
obs_qty_info
(
22
)
%
nitems
=
0
obs_qty_info
(
23
)
%
index
=
23
obs_qty_info
(
23
)
%
name
=
"QTY_POTENTIAL_TEMPERATURE"
obs_qty_info
(
23
)
%
nitems
=
0
obs_qty_info
(
24
)
%
index
=
24
obs_qty_info
(
24
)
%
name
=
"QTY_SOIL_MOISTURE"
obs_qty_info
(
24
)
%
nitems
=
0
obs_qty_info
(
25
)
%
index
=
25
obs_qty_info
(
25
)
%
name
=
"QTY_SOURCE_PHASE"
obs_qty_info
(
25
)
%
nitems
=
0
obs_qty_info
(
26
)
%
index
=
26
obs_qty_info
(
26
)
%
name
=
"QTY_SURFACE_ELEVATION"
obs_qty_info
(
26
)
%
nitems
=
0
obs_qty_info
(
27
)
%
index
=
27
obs_qty_info
(
27
)
%
name
=
"QTY_GRAV_WAVE_DRAG_EFFIC"
obs_qty_info
(
27
)
%
nitems
=
0
obs_qty_info
(
28
)
%
index
=
28
obs_qty_info
(
28
)
%
name
=
"QTY_GRAV_WAVE_STRESS_FRACTION"
obs_qty_info
(
28
)
%
nitems
=
0
obs_qty_info
(
29
)
%
index
=
29
obs_qty_info
(
29
)
%
name
=
"QTY_POWER_WEIGHTED_FALL_SPEED"
obs_qty_info
(
29
)
%
nitems
=
0
obs_qty_info
(
30
)
%
index
=
30
obs_qty_info
(
30
)
%
name
=
"QTY_CLOUDWATER_MIXING_RATIO"
obs_qty_info
(
30
)
%
nitems
=
0
obs_qty_info
(
31
)
%
index
=
31
obs_qty_info
(
31
)
%
name
=
"QTY_ICE_MIXING_RATIO"
obs_qty_info
(
31
)
%
nitems
=
0
obs_qty_info
(
32
)
%
index
=
32
obs_qty_info
(
32
)
%
name
=
"QTY_DROPLET_NUMBER_CONCENTR"
obs_qty_info
(
32
)
%
nitems
=
0
obs_qty_info
(
33
)
%
index
=
33
obs_qty_info
(
33
)
%
name
=
"QTY_SNOW_NUMBER_CONCENTR"
obs_qty_info
(
33
)
%
nitems
=
0
obs_qty_info
(
34
)
%
index
=
34
obs_qty_info
(
34
)
%
name
=
"QTY_RAIN_NUMBER_CONCENTR"
obs_qty_info
(
34
)
%
nitems
=
0
obs_qty_info
(
35
)
%
index
=
35
obs_qty_info
(
35
)
%
name
=
"QTY_GRAUPEL_NUMBER_CONCENTR"
obs_qty_info
(
35
)
%
nitems
=
0
obs_qty_info
(
36
)
%
index
=
36
obs_qty_info
(
36
)
%
name
=
"QTY_CLOUD_FRACTION"
obs_qty_info
(
36
)
%
nitems
=
0
obs_qty_info
(
37
)
%
index
=
37
obs_qty_info
(
37
)
%
name
=
"QTY_ICE_FRACTION"
obs_qty_info
(
37
)
%
nitems
=
0
obs_qty_info
(
38
)
%
index
=
38
obs_qty_info
(
38
)
%
name
=
"QTY_RELATIVE_HUMIDITY"
obs_qty_info
(
38
)
%
nitems
=
0
obs_qty_info
(
39
)
%
index
=
39
obs_qty_info
(
39
)
%
name
=
"QTY_1D_PARAMETER"
obs_qty_info
(
39
)
%
nitems
=
0
obs_qty_info
(
40
)
%
index
=
40
obs_qty_info
(
40
)
%
name
=
"QTY_2D_PARAMETER"
obs_qty_info
(
40
)
%
nitems
=
0
obs_qty_info
(
41
)
%
index
=
41
obs_qty_info
(
41
)
%
name
=
"QTY_3D_PARAMETER"
obs_qty_info
(
41
)
%
nitems
=
0
obs_qty_info
(
42
)
%
index
=
42
obs_qty_info
(
42
)
%
name
=
"QTY_ALTIMETER_TENDENCY"
obs_qty_info
(
42
)
%
nitems
=
0
obs_qty_info
(
43
)
%
index
=
43
obs_qty_info
(
43
)
%
name
=
"QTY_PRECIPITABLE_WATER"
obs_qty_info
(
43
)
%
nitems
=
0
obs_qty_info
(
44
)
%
index
=
44
obs_qty_info
(
44
)
%
name
=
"QTY_OCCULTATION_REFRACTIVITY"
obs_qty_info
(
44
)
%
nitems
=
0
obs_qty_info
(
45
)
%
index
=
45
obs_qty_info
(
45
)
%
name
=
"QTY_OCCULTATION_EXCESSPHASE"
obs_qty_info
(
45
)
%
nitems
=
0
obs_qty_info
(
46
)
%
index
=
46
obs_qty_info
(
46
)
%
name
=
"QTY_GEOMETRIC_HEIGHT"
obs_qty_info
(
46
)
%
nitems
=
0
obs_qty_info
(
47
)
%
index
=
47
obs_qty_info
(
47
)
%
name
=
"QTY_INFRARED_RADIANCE"
obs_qty_info
(
47
)
%
nitems
=
0
obs_qty_info
(
48
)
%
index
=
48
obs_qty_info
(
48
)
%
name
=
"QTY_INFRARED_BRIGHT_TEMP"
obs_qty_info
(
48
)
%
nitems
=
0
obs_qty_info
(
49
)
%
index
=
49
obs_qty_info
(
49
)
%
name
=
"QTY_LANDMASK"
obs_qty_info
(
49
)
%
nitems
=
0
obs_qty_info
(
50
)
%
index
=
50
obs_qty_info
(
50
)
%
name
=
"QTY_EDGE_NORMAL_SPEED"
obs_qty_info
(
50
)
%
nitems
=
0
obs_qty_info
(
51
)
%
index
=
51
obs_qty_info
(
51
)
%
name
=
"QTY_CLW_PATH"
obs_qty_info
(
51
)
%
nitems
=
0
obs_qty_info
(
52
)
%
index
=
52
obs_qty_info
(
52
)
%
name
=
"QTY_CWP_PATH"
obs_qty_info
(
52
)
%
nitems
=
0
obs_qty_info
(
53
)
%
index
=
53
obs_qty_info
(
53
)
%
name
=
"QTY_CWP_PATH_ZERO"
obs_qty_info
(
53
)
%
nitems
=
0
obs_qty_info
(
54
)
%
index
=
54
obs_qty_info
(
54
)
%
name
=
"QTY_WIND_TURBINE_POWER"
obs_qty_info
(
54
)
%
nitems
=
0
obs_qty_info
(
55
)
%
index
=
55
obs_qty_info
(
55
)
%
name
=
"QTY_2M_SPECIFIC_HUMIDITY"
obs_qty_info
(
55
)
%
nitems
=
0
obs_qty_info
(
56
)
%
index
=
56
obs_qty_info
(
56
)
%
name
=
"QTY_2M_TEMPERATURE"
obs_qty_info
(
56
)
%
nitems
=
0
obs_qty_info
(
57
)
%
index
=
57
obs_qty_info
(
57
)
%
name
=
"QTY_10M_U_WIND_COMPONENT"
obs_qty_info
(
57
)
%
nitems
=
0
obs_qty_info
(
58
)
%
index
=
58
obs_qty_info
(
58
)
%
name
=
"QTY_10M_V_WIND_COMPONENT"
obs_qty_info
(
58
)
%
nitems
=
0
obs_qty_info
(
59
)
%
index
=
59
obs_qty_info
(
59
)
%
name
=
"QTY_SKIN_TEMPERATURE"
obs_qty_info
(
59
)
%
nitems
=
0
obs_qty_info
(
60
)
%
index
=
60
obs_qty_info
(
60
)
%
name
=
"QTY_NADIR_RADIANCE"
obs_qty_info
(
60
)
%
nitems
=
0
obs_qty_info
(
61
)
%
index
=
61
obs_qty_info
(
61
)
%
name
=
"QTY_TRACER_1_MIXING_RATIO"
obs_qty_info
(
61
)
%
nitems
=
0
obs_qty_info
(
62
)
%
index
=
62
obs_qty_info
(
62
)
%
name
=
"QTY_TRACER_2_MIXING_RATIO"
obs_qty_info
(
62
)
%
nitems
=
0
obs_qty_info
(
63
)
%
index
=
63
obs_qty_info
(
63
)
%
name
=
"QTY_TRACER_CONCENTRATION"
obs_qty_info
(
63
)
%
nitems
=
0
obs_qty_info
(
64
)
%
index
=
64
obs_qty_info
(
64
)
%
name
=
"QTY_TRACER_SOURCE"
obs_qty_info
(
64
)
%
nitems
=
0
obs_qty_info
(
65
)
%
index
=
65
obs_qty_info
(
65
)
%
name
=
"QTY_SOIL_TEMPERATURE"
obs_qty_info
(
65
)
%
nitems
=
0
obs_qty_info
(
66
)
%
index
=
66
obs_qty_info
(
66
)
%
name
=
"QTY_SOIL_LIQUID_WATER"
obs_qty_info
(
66
)
%
nitems
=
0
obs_qty_info
(
67
)
%
index
=
67
obs_qty_info
(
67
)
%
name
=
"QTY_VERTICAL_VORTICITY"
obs_qty_info
(
67
)
%
nitems
=
0
obs_qty_info
(
68
)
%
index
=
68
obs_qty_info
(
68
)
%
name
=
"QTY_SURFACE_ALBEDO"
obs_qty_info
(
68
)
%
nitems
=
0
obs_qty_info
(
69
)
%
index
=
69
obs_qty_info
(
69
)
%
name
=
"QTY_SURFACE_EMISSIVITY"
obs_qty_info
(
69
)
%
nitems
=
0
obs_qty_info
(
70
)
%
index
=
70
obs_qty_info
(
70
)
%
name
=
"QTY_DUST_OPACITY_7MB"
obs_qty_info
(
70
)
%
nitems
=
0
obs_qty_info
(
71
)
%
index
=
71
obs_qty_info
(
71
)
%
name
=
"QTY_THC"
obs_qty_info
(
71
)
%
nitems
=
0
obs_qty_info
(
72
)
%
index
=
72
obs_qty_info
(
72
)
%
name
=
"QTY_VORTEX_LON"
obs_qty_info
(
72
)
%
nitems
=
0
obs_qty_info
(
73
)
%
index
=
73
obs_qty_info
(
73
)
%
name
=
"QTY_VORTEX_LAT"
obs_qty_info
(
73
)
%
nitems
=
0
obs_qty_info
(
74
)
%
index
=
74
obs_qty_info
(
74
)
%
name
=
"QTY_VORTEX_PMIN"
obs_qty_info
(
74
)
%
nitems
=
0
obs_qty_info
(
75
)
%
index
=
75
obs_qty_info
(
75
)
%
name
=
"QTY_VORTEX_WMAX"
obs_qty_info
(
75
)
%
nitems
=
0
obs_qty_info
(
76
)
%
index
=
76
obs_qty_info
(
76
)
%
name
=
"QTY_EXNER_FUNCTION"
obs_qty_info
(
76
)
%
nitems
=
0
obs_qty_info
(
77
)
%
index
=
77
obs_qty_info
(
77
)
%
name
=
"QTY_TURBULENT_KINETIC_ENERGY"
obs_qty_info
(
77
)
%
nitems
=
0
obs_qty_info
(
78
)
%
index
=
78
obs_qty_info
(
78
)
%
name
=
"QTY_TOTAL_PRECIPITABLE_WATER"
obs_qty_info
(
78
)
%
nitems
=
0
obs_qty_info
(
79
)
%
index
=
79
obs_qty_info
(
79
)
%
name
=
"QTY_VERTLEVEL"
obs_qty_info
(
79
)
%
nitems
=
0
obs_qty_info
(
80
)
%
index
=
80
obs_qty_info
(
80
)
%
name
=
"QTY_MICROWAVE_BRIGHT_TEMP"
obs_qty_info
(
80
)
%
nitems
=
0
obs_qty_info
(
81
)
%
index
=
81
obs_qty_info
(
81
)
%
name
=
"QTY_INTEGRATED_SULFATE"
obs_qty_info
(
81
)
%
nitems
=
0
obs_qty_info
(
82
)
%
index
=
82
obs_qty_info
(
82
)
%
name
=
"QTY_INTEGRATED_DUST"
obs_qty_info
(
82
)
%
nitems
=
0
obs_qty_info
(
83
)
%
index
=
83
obs_qty_info
(
83
)
%
name
=
"QTY_INTEGRATED_SMOKE"
obs_qty_info
(
83
)
%
nitems
=
0
obs_qty_info
(
84
)
%
index
=
84
obs_qty_info
(
84
)
%
name
=
"QTY_INTEGRATED_SEASALT"
obs_qty_info
(
84
)
%
nitems
=
0
obs_qty_info
(
85
)
%
index
=
85
obs_qty_info
(
85
)
%
name
=
"QTY_INTEGRATED_AOD"
obs_qty_info
(
85
)
%
nitems
=
0
obs_qty_info
(
86
)
%
index
=
86
obs_qty_info
(
86
)
%
name
=
"QTY_SO2"
obs_qty_info
(
86
)
%
nitems
=
0
obs_qty_info
(
87
)
%
index
=
87
obs_qty_info
(
87
)
%
name
=
"QTY_SULFATE"
obs_qty_info
(
87
)
%
nitems
=
0
obs_qty_info
(
88
)
%
index
=
88
obs_qty_info
(
88
)
%
name
=
"QTY_DUST"
obs_qty_info
(
88
)
%
nitems
=
0
obs_qty_info
(
89
)
%
index
=
89
obs_qty_info
(
89
)
%
name
=
"QTY_SMOKE"
obs_qty_info
(
89
)
%
nitems
=
0
obs_qty_info
(
90
)
%
index
=
90
obs_qty_info
(
90
)
%
name
=
"QTY_SEASALT"
obs_qty_info
(
90
)
%
nitems
=
0
obs_qty_info
(
91
)
%
index
=
91
obs_qty_info
(
91
)
%
name
=
"QTY_HAIL_MIXING_RATIO"
obs_qty_info
(
91
)
%
nitems
=
0
obs_qty_info
(
92
)
%
index
=
92
obs_qty_info
(
92
)
%
name
=
"QTY_HAIL_NUMBER_CONCENTR"
obs_qty_info
(
92
)
%
nitems
=
0
obs_qty_info
(
93
)
%
index
=
93
obs_qty_info
(
93
)
%
name
=
"QTY_GRAUPEL_VOLUME"
obs_qty_info
(
93
)
%
nitems
=
0
obs_qty_info
(
94
)
%
index
=
94
obs_qty_info
(
94
)
%
name
=
"QTY_HAIL_VOLUME"
obs_qty_info
(
94
)
%
nitems
=
0
obs_qty_info
(
95
)
%
index
=
95
obs_qty_info
(
95
)
%
name
=
"QTY_DIFFERENTIAL_REFLECTIVITY"
obs_qty_info
(
95
)
%
nitems
=
0
obs_qty_info
(
96
)
%
index
=
96
obs_qty_info
(
96
)
%
name
=
"QTY_SPECIFIC_DIFFERENTIAL_PHASE"
obs_qty_info
(
96
)
%
nitems
=
0
obs_qty_info
(
97
)
%
index
=
97
obs_qty_info
(
97
)
%
name
=
"QTY_FLASH_RATE_2D"
obs_qty_info
(
97
)
%
nitems
=
0
obs_qty_info
(
98
)
%
index
=
98
obs_qty_info
(
98
)
%
name
=
"QTY_RADIANCE"
obs_qty_info
(
98
)
%
nitems
=
0
obs_qty_info
(
99
)
%
index
=
99
obs_qty_info
(
99
)
%
name
=
"QTY_BRIGHTNESS_TEMPERATURE"
obs_qty_info
(
99
)
%
nitems
=
0
obs_qty_info
(
100
)
%
index
=
100
obs_qty_info
(
100
)
%
name
=
"QTY_BI_DIRECTIONAL_REFLECTANCE"
obs_qty_info
(
100
)
%
nitems
=
0
obs_qty_info
(
101
)
%
index
=
101
obs_qty_info
(
101
)
%
name
=
"QTY_SURFACE_TYPE"
obs_qty_info
(
101
)
%
nitems
=
0
obs_qty_info
(
102
)
%
index
=
102
obs_qty_info
(
102
)
%
name
=
"QTY_WIND_FETCH"
obs_qty_info
(
102
)
%
nitems
=
0
obs_qty_info
(
103
)
%
index
=
103
obs_qty_info
(
103
)
%
name
=
"QTY_WATER_TYPE"
obs_qty_info
(
103
)
%
nitems
=
0
obs_qty_info
(
104
)
%
index
=
104
obs_qty_info
(
104
)
%
name
=
"QTY_FOAM_FRAC"
obs_qty_info
(
104
)
%
nitems
=
0
obs_qty_info
(
105
)
%
index
=
105
obs_qty_info
(
105
)
%
name
=
"QTY_INSOLUBLE_AER"
obs_qty_info
(
105
)
%
nitems
=
0
obs_qty_info
(
106
)
%
index
=
106
obs_qty_info
(
106
)
%
name
=
"QTY_H2O_SOLUBLE_AER"
obs_qty_info
(
106
)
%
nitems
=
0
obs_qty_info
(
107
)
%
index
=
107
obs_qty_info
(
107
)
%
name
=
"QTY_SOOT"
obs_qty_info
(
107
)
%
nitems
=
0
obs_qty_info
(
108
)
%
index
=
108
obs_qty_info
(
108
)
%
name
=
"QTY_SEASALT_ACCUM"
obs_qty_info
(
108
)
%
nitems
=
0
obs_qty_info
(
109
)
%
index
=
109
obs_qty_info
(
109
)
%
name
=
"QTY_SEASALT_COARSE"
obs_qty_info
(
109
)
%
nitems
=
0
obs_qty_info
(
110
)
%
index
=
110
obs_qty_info
(
110
)
%
name
=
"QTY_MINERAL_NUCLEUS"
obs_qty_info
(
110
)
%
nitems
=
0
obs_qty_info
(
111
)
%
index
=
111
obs_qty_info
(
111
)
%
name
=
"QTY_MINERAL_ACCUM"
obs_qty_info
(
111
)
%
nitems
=
0
obs_qty_info
(
112
)
%
index
=
112
obs_qty_info
(
112
)
%
name
=
"QTY_MINERAL_COARSE"
obs_qty_info
(
112
)
%
nitems
=
0
obs_qty_info
(
113
)
%
index
=
113
obs_qty_info
(
113
)
%
name
=
"QTY_MINERAL_TRANSPORTED"
obs_qty_info
(
113
)
%
nitems
=
0
obs_qty_info
(
114
)
%
index
=
114
obs_qty_info
(
114
)
%
name
=
"QTY_SULPHATED_DROPS"
obs_qty_info
(
114
)
%
nitems
=
0
obs_qty_info
(
115
)
%
index
=
115
obs_qty_info
(
115
)
%
name
=
"QTY_VOLCANIC_ASH"
obs_qty_info
(
115
)
%
nitems
=
0
obs_qty_info
(
116
)
%
index
=
116
obs_qty_info
(
116
)
%
name
=
"QTY_NEW_VOLCANIC_ASH"
obs_qty_info
(
116
)
%
nitems
=
0
obs_qty_info
(
117
)
%
index
=
117
obs_qty_info
(
117
)
%
name
=
"QTY_ASIAN_DUST"
obs_qty_info
(
117
)
%
nitems
=
0
obs_qty_info
(
118
)
%
index
=
118
obs_qty_info
(
118
)
%
name
=
"QTY_BLACK_CARBON"
obs_qty_info
(
118
)
%
nitems
=
0
obs_qty_info
(
119
)
%
index
=
119
obs_qty_info
(
119
)
%
name
=
"QTY_DUST_BIN1"
obs_qty_info
(
119
)
%
nitems
=
0
obs_qty_info
(
120
)
%
index
=
120
obs_qty_info
(
120
)
%
name
=
"QTY_DUST_BIN2"
obs_qty_info
(
120
)
%
nitems
=
0
obs_qty_info
(
121
)
%
index
=
121
obs_qty_info
(
121
)
%
name
=
"QTY_DUST_BIN3"
obs_qty_info
(
121
)
%
nitems
=
0
obs_qty_info
(
122
)
%
index
=
122
obs_qty_info
(
122
)
%
name
=
"QTY_AMMONIUM_SULPHATE"
obs_qty_info
(
122
)
%
nitems
=
0
obs_qty_info
(
123
)
%
index
=
123
obs_qty_info
(
123
)
%
name
=
"QTY_SEA_SALT_BIN1"
obs_qty_info
(
123
)
%
nitems
=
0
obs_qty_info
(
124
)
%
index
=
124
obs_qty_info
(
124
)
%
name
=
"QTY_SEA_SALT_BIN2"
obs_qty_info
(
124
)
%
nitems
=
0
obs_qty_info
(
125
)
%
index
=
125
obs_qty_info
(
125
)
%
name
=
"QTY_SEA_SALT_BIN3"
obs_qty_info
(
125
)
%
nitems
=
0
obs_qty_info
(
126
)
%
index
=
126
obs_qty_info
(
126
)
%
name
=
"QTY_HYDROPHILIC_ORGANIC_MATTER"
obs_qty_info
(
126
)
%
nitems
=
0
obs_qty_info
(
127
)
%
index
=
127
obs_qty_info
(
127
)
%
name
=
"QTY_CLOUDWATER_DE"
obs_qty_info
(
127
)
%
nitems
=
0
obs_qty_info
(
128
)
%
index
=
128
obs_qty_info
(
128
)
%
name
=
"QTY_CLOUD_ICE_DE"
obs_qty_info
(
128
)
%
nitems
=
0
obs_qty_info
(
129
)
%
index
=
129
obs_qty_info
(
129
)
%
name
=
"QTY_COLUMN_CLOUD_FRAC"
obs_qty_info
(
129
)
%
nitems
=
0
obs_qty_info
(
130
)
%
index
=
130
obs_qty_info
(
130
)
%
name
=
"QTY_CLOUD_TOP_PRESSURE"
obs_qty_info
(
130
)
%
nitems
=
0
obs_qty_info
(
131
)
%
index
=
131
obs_qty_info
(
131
)
%
name
=
"QTY_ABSOLUTE_HUMIDITY"
obs_qty_info
(
131
)
%
nitems
=
0
obs_qty_info
(
132
)
%
index
=
132
obs_qty_info
(
132
)
%
name
=
"QTY_O3"
obs_qty_info
(
132
)
%
nitems
=
0
obs_qty_info
(
133
)
%
index
=
133
obs_qty_info
(
133
)
%
name
=
"QTY_CO2"
obs_qty_info
(
133
)
%
nitems
=
0
obs_qty_info
(
134
)
%
index
=
134
obs_qty_info
(
134
)
%
name
=
"QTY_N2O"
obs_qty_info
(
134
)
%
nitems
=
0
obs_qty_info
(
135
)
%
index
=
135
obs_qty_info
(
135
)
%
name
=
"QTY_CH4"
obs_qty_info
(
135
)
%
nitems
=
0
obs_qty_info
(
136
)
%
index
=
136
obs_qty_info
(
136
)
%
name
=
"QTY_CO"
obs_qty_info
(
136
)
%
nitems
=
0
obs_qty_info
(
137
)
%
index
=
137
obs_qty_info
(
137
)
%
name
=
"QTY_SALINITY"
obs_qty_info
(
137
)
%
nitems
=
0
obs_qty_info
(
138
)
%
index
=
138
obs_qty_info
(
138
)
%
name
=
"QTY_SNOWCOVER_FRAC"
obs_qty_info
(
138
)
%
nitems
=
0
obs_type_info
(
1
)
=
obs_type_type
(
RADIOSONDE_U_WIND_COMPONENT
,
&
'RADIOSONDE_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
2
)
=
obs_type_type
(
RADIOSONDE_V_WIND_COMPONENT
,
&
'RADIOSONDE_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
3
)
=
obs_type_type
(
RADIOSONDE_GEOPOTENTIAL_HGT
,
&
'RADIOSONDE_GEOPOTENTIAL_HGT'
,
QTY_GEOPOTENTIAL_HEIGHT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
4
)
=
obs_type_type
(
RADIOSONDE_SURFACE_PRESSURE
,
&
'RADIOSONDE_SURFACE_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
5
)
=
obs_type_type
(
RADIOSONDE_TEMPERATURE
,
&
'RADIOSONDE_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
6
)
=
obs_type_type
(
RADIOSONDE_SPECIFIC_HUMIDITY
,
&
'RADIOSONDE_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
7
)
=
obs_type_type
(
DROPSONDE_U_WIND_COMPONENT
,
&
'DROPSONDE_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
8
)
=
obs_type_type
(
DROPSONDE_V_WIND_COMPONENT
,
&
'DROPSONDE_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
9
)
=
obs_type_type
(
DROPSONDE_SURFACE_PRESSURE
,
&
'DROPSONDE_SURFACE_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
10
)
=
obs_type_type
(
DROPSONDE_TEMPERATURE
,
&
'DROPSONDE_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
11
)
=
obs_type_type
(
DROPSONDE_SPECIFIC_HUMIDITY
,
&
'DROPSONDE_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
12
)
=
obs_type_type
(
AIRCRAFT_U_WIND_COMPONENT
,
&
'AIRCRAFT_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
13
)
=
obs_type_type
(
AIRCRAFT_V_WIND_COMPONENT
,
&
'AIRCRAFT_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
14
)
=
obs_type_type
(
AIRCRAFT_TEMPERATURE
,
&
'AIRCRAFT_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
15
)
=
obs_type_type
(
AIRCRAFT_SPECIFIC_HUMIDITY
,
&
'AIRCRAFT_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
16
)
=
obs_type_type
(
ACARS_U_WIND_COMPONENT
,
&
'ACARS_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
17
)
=
obs_type_type
(
ACARS_V_WIND_COMPONENT
,
&
'ACARS_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
18
)
=
obs_type_type
(
ACARS_TEMPERATURE
,
&
'ACARS_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
19
)
=
obs_type_type
(
ACARS_SPECIFIC_HUMIDITY
,
&
'ACARS_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
20
)
=
obs_type_type
(
MARINE_SFC_U_WIND_COMPONENT
,
&
'MARINE_SFC_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
21
)
=
obs_type_type
(
MARINE_SFC_V_WIND_COMPONENT
,
&
'MARINE_SFC_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
22
)
=
obs_type_type
(
MARINE_SFC_TEMPERATURE
,
&
'MARINE_SFC_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
23
)
=
obs_type_type
(
MARINE_SFC_SPECIFIC_HUMIDITY
,
&
'MARINE_SFC_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
24
)
=
obs_type_type
(
MARINE_SFC_PRESSURE
,
&
'MARINE_SFC_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
25
)
=
obs_type_type
(
LAND_SFC_U_WIND_COMPONENT
,
&
'LAND_SFC_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
26
)
=
obs_type_type
(
LAND_SFC_V_WIND_COMPONENT
,
&
'LAND_SFC_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
27
)
=
obs_type_type
(
LAND_SFC_TEMPERATURE
,
&
'LAND_SFC_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
28
)
=
obs_type_type
(
LAND_SFC_SPECIFIC_HUMIDITY
,
&
'LAND_SFC_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
29
)
=
obs_type_type
(
LAND_SFC_PRESSURE
,
&
'LAND_SFC_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
30
)
=
obs_type_type
(
SAT_U_WIND_COMPONENT
,
&
'SAT_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
31
)
=
obs_type_type
(
SAT_V_WIND_COMPONENT
,
&
'SAT_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
32
)
=
obs_type_type
(
ATOV_TEMPERATURE
,
&
'ATOV_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
33
)
=
obs_type_type
(
AIRS_TEMPERATURE
,
&
'AIRS_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
34
)
=
obs_type_type
(
AIRS_SPECIFIC_HUMIDITY
,
&
'AIRS_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
35
)
=
obs_type_type
(
GPS_PRECIPITABLE_WATER
,
&
'GPS_PRECIPITABLE_WATER'
,
QTY_PRECIPITABLE_WATER
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
36
)
=
obs_type_type
(
VADWND_U_WIND_COMPONENT
,
&
'VADWND_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
37
)
=
obs_type_type
(
VADWND_V_WIND_COMPONENT
,
&
'VADWND_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
38
)
=
obs_type_type
(
CIMMS_AMV_U_WIND_COMPONENT
,
&
'CIMMS_AMV_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
39
)
=
obs_type_type
(
CIMMS_AMV_V_WIND_COMPONENT
,
&
'CIMMS_AMV_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
40
)
=
obs_type_type
(
DOPPLER_RADIAL_VELOCITY
,
&
'DOPPLER_RADIAL_VELOCITY'
,
QTY_VELOCITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
41
)
=
obs_type_type
(
RADAR_REFLECTIVITY
,
&
'RADAR_REFLECTIVITY'
,
QTY_RADAR_REFLECTIVITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
42
)
=
obs_type_type
(
RADAR_CLEARAIR_REFLECTIVITY
,
&
'RADAR_CLEARAIR_REFLECTIVITY'
,
QTY_RADAR_REFLECTIVITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
43
)
=
obs_type_type
(
PRECIPITATION_FALL_SPEED
,
&
'PRECIPITATION_FALL_SPEED'
,
QTY_POWER_WEIGHTED_FALL_SPEED
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
44
)
=
obs_type_type
(
METAR_U_10_METER_WIND
,
&
'METAR_U_10_METER_WIND'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
45
)
=
obs_type_type
(
METAR_V_10_METER_WIND
,
&
'METAR_V_10_METER_WIND'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
46
)
=
obs_type_type
(
METAR_TEMPERATURE_2_METER
,
&
'METAR_TEMPERATURE_2_METER'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
47
)
=
obs_type_type
(
METAR_SPECIFIC_HUMIDITY_2_METER
,
&
'METAR_SPECIFIC_HUMIDITY_2_METER'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
48
)
=
obs_type_type
(
METAR_SURFACE_PRESSURE
,
&
'METAR_SURFACE_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
49
)
=
obs_type_type
(
METAR_POT_TEMP_2_METER
,
&
'METAR_POT_TEMP_2_METER'
,
QTY_POTENTIAL_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
50
)
=
obs_type_type
(
DEWPOINT
,
&
'DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
51
)
=
obs_type_type
(
DEWPOINT_2_METER
,
&
'DEWPOINT_2_METER'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
52
)
=
obs_type_type
(
BUOY_DEWPOINT
,
&
'BUOY_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
53
)
=
obs_type_type
(
SHIP_DEWPOINT
,
&
'SHIP_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
54
)
=
obs_type_type
(
SYNOP_DEWPOINT
,
&
'SYNOP_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
55
)
=
obs_type_type
(
AIREP_DEWPOINT
,
&
'AIREP_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
56
)
=
obs_type_type
(
AMDAR_DEWPOINT
,
&
'AMDAR_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
57
)
=
obs_type_type
(
PILOT_DEWPOINT
,
&
'PILOT_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
58
)
=
obs_type_type
(
BOGUS_DEWPOINT
,
&
'BOGUS_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
59
)
=
obs_type_type
(
AIRS_DEWPOINT
,
&
'AIRS_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
60
)
=
obs_type_type
(
METAR_DEWPOINT_2_METER
,
&
'METAR_DEWPOINT_2_METER'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
61
)
=
obs_type_type
(
RADIOSONDE_DEWPOINT
,
&
'RADIOSONDE_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
62
)
=
obs_type_type
(
DROPSONDE_DEWPOINT
,
&
'DROPSONDE_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
63
)
=
obs_type_type
(
AIRCRAFT_DEWPOINT
,
&
'AIRCRAFT_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
64
)
=
obs_type_type
(
ACARS_DEWPOINT
,
&
'ACARS_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
65
)
=
obs_type_type
(
MARINE_SFC_DEWPOINT
,
&
'MARINE_SFC_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
66
)
=
obs_type_type
(
LAND_SFC_DEWPOINT
,
&
'LAND_SFC_DEWPOINT'
,
QTY_DEWPOINT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
67
)
=
obs_type_type
(
RADIOSONDE_RELATIVE_HUMIDITY
,
&
'RADIOSONDE_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
68
)
=
obs_type_type
(
DROPSONDE_RELATIVE_HUMIDITY
,
&
'DROPSONDE_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
69
)
=
obs_type_type
(
AIRCRAFT_RELATIVE_HUMIDITY
,
&
'AIRCRAFT_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
70
)
=
obs_type_type
(
ACARS_RELATIVE_HUMIDITY
,
&
'ACARS_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
71
)
=
obs_type_type
(
MARINE_SFC_RELATIVE_HUMIDITY
,
&
'MARINE_SFC_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
72
)
=
obs_type_type
(
LAND_SFC_RELATIVE_HUMIDITY
,
&
'LAND_SFC_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
73
)
=
obs_type_type
(
METAR_RELATIVE_HUMIDITY_2_METER
,
&
'METAR_RELATIVE_HUMIDITY_2_METER'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
74
)
=
obs_type_type
(
AIRS_RELATIVE_HUMIDITY
,
&
'AIRS_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
75
)
=
obs_type_type
(
MESONET_RELATIVE_HUMIDITY
,
&
'MESONET_RELATIVE_HUMIDITY'
,
QTY_RELATIVE_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
76
)
=
obs_type_type
(
RADIOSONDE_SURFACE_ALTIMETER
,
&
'RADIOSONDE_SURFACE_ALTIMETER'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
77
)
=
obs_type_type
(
DROPSONDE_SURFACE_ALTIMETER
,
&
'DROPSONDE_SURFACE_ALTIMETER'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
78
)
=
obs_type_type
(
MARINE_SFC_ALTIMETER
,
&
'MARINE_SFC_ALTIMETER'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
79
)
=
obs_type_type
(
LAND_SFC_ALTIMETER
,
&
'LAND_SFC_ALTIMETER'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
80
)
=
obs_type_type
(
METAR_ALTIMETER
,
&
'METAR_ALTIMETER'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
81
)
=
obs_type_type
(
MESONET_SURFACE_ALTIMETER
,
&
'MESONET_SURFACE_ALTIMETER'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
82
)
=
obs_type_type
(
TEMPERATURE
,
&
'TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
83
)
=
obs_type_type
(
SPECIFIC_HUMIDITY
,
&
'SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
84
)
=
obs_type_type
(
PRESSURE
,
&
'PRESSURE'
,
QTY_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
85
)
=
obs_type_type
(
GPSRO_REFRACTIVITY
,
&
'GPSRO_REFRACTIVITY'
,
QTY_GPSRO
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
86
)
=
obs_type_type
(
VORTEX_LAT
,
&
'VORTEX_LAT'
,
QTY_VORTEX_LAT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
87
)
=
obs_type_type
(
VORTEX_LON
,
&
'VORTEX_LON'
,
QTY_VORTEX_LON
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
88
)
=
obs_type_type
(
VORTEX_PMIN
,
&
'VORTEX_PMIN'
,
QTY_VORTEX_PMIN
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
89
)
=
obs_type_type
(
VORTEX_WMAX
,
&
'VORTEX_WMAX'
,
QTY_VORTEX_WMAX
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
90
)
=
obs_type_type
(
BUOY_U_WIND_COMPONENT
,
&
'BUOY_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
91
)
=
obs_type_type
(
BUOY_V_WIND_COMPONENT
,
&
'BUOY_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
92
)
=
obs_type_type
(
BUOY_SURFACE_PRESSURE
,
&
'BUOY_SURFACE_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
93
)
=
obs_type_type
(
BUOY_TEMPERATURE
,
&
'BUOY_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
94
)
=
obs_type_type
(
SHIP_U_WIND_COMPONENT
,
&
'SHIP_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
95
)
=
obs_type_type
(
SHIP_V_WIND_COMPONENT
,
&
'SHIP_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
96
)
=
obs_type_type
(
SHIP_SURFACE_PRESSURE
,
&
'SHIP_SURFACE_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
97
)
=
obs_type_type
(
SHIP_TEMPERATURE
,
&
'SHIP_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
98
)
=
obs_type_type
(
SYNOP_U_WIND_COMPONENT
,
&
'SYNOP_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
99
)
=
obs_type_type
(
SYNOP_V_WIND_COMPONENT
,
&
'SYNOP_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
100
)
=
obs_type_type
(
SYNOP_SURFACE_PRESSURE
,
&
'SYNOP_SURFACE_PRESSURE'
,
QTY_SURFACE_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
101
)
=
obs_type_type
(
SYNOP_SPECIFIC_HUMIDITY
,
&
'SYNOP_SPECIFIC_HUMIDITY'
,
QTY_SPECIFIC_HUMIDITY
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
102
)
=
obs_type_type
(
SYNOP_TEMPERATURE
,
&
'SYNOP_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
103
)
=
obs_type_type
(
AIREP_U_WIND_COMPONENT
,
&
'AIREP_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
104
)
=
obs_type_type
(
AIREP_V_WIND_COMPONENT
,
&
'AIREP_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
105
)
=
obs_type_type
(
AIREP_PRESSURE
,
&
'AIREP_PRESSURE'
,
QTY_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
106
)
=
obs_type_type
(
AIREP_TEMPERATURE
,
&
'AIREP_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
107
)
=
obs_type_type
(
AMDAR_U_WIND_COMPONENT
,
&
'AMDAR_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
108
)
=
obs_type_type
(
AMDAR_V_WIND_COMPONENT
,
&
'AMDAR_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
109
)
=
obs_type_type
(
AMDAR_PRESSURE
,
&
'AMDAR_PRESSURE'
,
QTY_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
110
)
=
obs_type_type
(
AMDAR_TEMPERATURE
,
&
'AMDAR_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
111
)
=
obs_type_type
(
PILOT_U_WIND_COMPONENT
,
&
'PILOT_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
112
)
=
obs_type_type
(
PILOT_V_WIND_COMPONENT
,
&
'PILOT_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
113
)
=
obs_type_type
(
PILOT_PRESSURE
,
&
'PILOT_PRESSURE'
,
QTY_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
114
)
=
obs_type_type
(
PILOT_TEMPERATURE
,
&
'PILOT_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
115
)
=
obs_type_type
(
BOGUS_U_WIND_COMPONENT
,
&
'BOGUS_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
116
)
=
obs_type_type
(
BOGUS_V_WIND_COMPONENT
,
&
'BOGUS_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
117
)
=
obs_type_type
(
BOGUS_PRESSURE
,
&
'BOGUS_PRESSURE'
,
QTY_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
118
)
=
obs_type_type
(
BOGUS_TEMPERATURE
,
&
'BOGUS_TEMPERATURE'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
119
)
=
obs_type_type
(
PROFILER_U_WIND_COMPONENT
,
&
'PROFILER_U_WIND_COMPONENT'
,
QTY_U_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
120
)
=
obs_type_type
(
PROFILER_V_WIND_COMPONENT
,
&
'PROFILER_V_WIND_COMPONENT'
,
QTY_V_WIND_COMPONENT
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
121
)
=
obs_type_type
(
PROFILER_PRESSURE
,
&
'PROFILER_PRESSURE'
,
QTY_PRESSURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
122
)
=
obs_type_type
(
SATEM_THICKNESS
,
&
'SATEM_THICKNESS'
,
QTY_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
123
)
=
obs_type_type
(
NOAA_1_VTPR1_RADIANCE
,
&
'NOAA_1_VTPR1_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
124
)
=
obs_type_type
(
NOAA_2_VTPR1_RADIANCE
,
&
'NOAA_2_VTPR1_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
125
)
=
obs_type_type
(
NOAA_3_VTPR1_RADIANCE
,
&
'NOAA_3_VTPR1_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
126
)
=
obs_type_type
(
NOAA_4_VTPR1_RADIANCE
,
&
'NOAA_4_VTPR1_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
127
)
=
obs_type_type
(
NOAA_5_HIRS_RADIANCE
,
&
'NOAA_5_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
128
)
=
obs_type_type
(
NOAA_5_MSU_TB
,
&
'NOAA_5_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
129
)
=
obs_type_type
(
NOAA_5_AVHRR_RADIANCE
,
&
'NOAA_5_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
130
)
=
obs_type_type
(
NOAA_6_HIRS_RADIANCE
,
&
'NOAA_6_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
131
)
=
obs_type_type
(
NOAA_6_MSU_TB
,
&
'NOAA_6_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
132
)
=
obs_type_type
(
NOAA_6_AVHRR_RADIANCE
,
&
'NOAA_6_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
133
)
=
obs_type_type
(
NOAA_7_HIRS_RADIANCE
,
&
'NOAA_7_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
134
)
=
obs_type_type
(
NOAA_7_MSU_TB
,
&
'NOAA_7_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
135
)
=
obs_type_type
(
NOAA_7_AVHRR_RADIANCE
,
&
'NOAA_7_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
136
)
=
obs_type_type
(
NOAA_8_HIRS_RADIANCE
,
&
'NOAA_8_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
137
)
=
obs_type_type
(
NOAA_8_MSU_TB
,
&
'NOAA_8_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
138
)
=
obs_type_type
(
NOAA_8_AVHRR_RADIANCE
,
&
'NOAA_8_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
139
)
=
obs_type_type
(
NOAA_9_HIRS_RADIANCE
,
&
'NOAA_9_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
140
)
=
obs_type_type
(
NOAA_9_MSU_TB
,
&
'NOAA_9_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
141
)
=
obs_type_type
(
NOAA_9_AVHRR_RADIANCE
,
&
'NOAA_9_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
142
)
=
obs_type_type
(
NOAA_10_HIRS_RADIANCE
,
&
'NOAA_10_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
143
)
=
obs_type_type
(
NOAA_10_MSU_TB
,
&
'NOAA_10_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
144
)
=
obs_type_type
(
NOAA_10_AVHRR_RADIANCE
,
&
'NOAA_10_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
145
)
=
obs_type_type
(
NOAA_11_HIRS_RADIANCE
,
&
'NOAA_11_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
146
)
=
obs_type_type
(
NOAA_11_MSU_TB
,
&
'NOAA_11_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
147
)
=
obs_type_type
(
NOAA_11_AVHRR_RADIANCE
,
&
'NOAA_11_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
148
)
=
obs_type_type
(
NOAA_12_HIRS_RADIANCE
,
&
'NOAA_12_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
149
)
=
obs_type_type
(
NOAA_12_MSU_TB
,
&
'NOAA_12_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
150
)
=
obs_type_type
(
NOAA_12_AVHRR_RADIANCE
,
&
'NOAA_12_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
151
)
=
obs_type_type
(
NOAA_13_AVHRR_RADIANCE
,
&
'NOAA_13_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
152
)
=
obs_type_type
(
NOAA_14_HIRS_RADIANCE
,
&
'NOAA_14_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
153
)
=
obs_type_type
(
NOAA_14_MSU_TB
,
&
'NOAA_14_MSU_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
154
)
=
obs_type_type
(
NOAA_14_AVHRR_RADIANCE
,
&
'NOAA_14_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
155
)
=
obs_type_type
(
NOAA_15_HIRS_RADIANCE
,
&
'NOAA_15_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
156
)
=
obs_type_type
(
NOAA_15_AMSUA_TB
,
&
'NOAA_15_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
157
)
=
obs_type_type
(
NOAA_15_AMSUB_TB
,
&
'NOAA_15_AMSUB_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
158
)
=
obs_type_type
(
NOAA_15_AVHRR_RADIANCE
,
&
'NOAA_15_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
159
)
=
obs_type_type
(
NOAA_16_HIRS_RADIANCE
,
&
'NOAA_16_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
160
)
=
obs_type_type
(
NOAA_16_AMSUA_TB
,
&
'NOAA_16_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
161
)
=
obs_type_type
(
NOAA_16_AMSUB_TB
,
&
'NOAA_16_AMSUB_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
162
)
=
obs_type_type
(
NOAA_16_AVHRR_RADIANCE
,
&
'NOAA_16_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
163
)
=
obs_type_type
(
NOAA_17_HIRS_RADIANCE
,
&
'NOAA_17_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
164
)
=
obs_type_type
(
NOAA_17_AMSUA_TB
,
&
'NOAA_17_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
165
)
=
obs_type_type
(
NOAA_17_AMSUB_TB
,
&
'NOAA_17_AMSUB_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
166
)
=
obs_type_type
(
NOAA_17_AVHRR_RADIANCE
,
&
'NOAA_17_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
167
)
=
obs_type_type
(
NOAA_18_HIRS_RADIANCE
,
&
'NOAA_18_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
168
)
=
obs_type_type
(
NOAA_18_AMSUA_TB
,
&
'NOAA_18_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
169
)
=
obs_type_type
(
NOAA_18_AVHRR_RADIANCE
,
&
'NOAA_18_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
170
)
=
obs_type_type
(
NOAA_18_MHS_TB
,
&
'NOAA_18_MHS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
171
)
=
obs_type_type
(
NOAA_19_HIRS_RADIANCE
,
&
'NOAA_19_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
172
)
=
obs_type_type
(
NOAA_19_AMSUA_TB
,
&
'NOAA_19_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
173
)
=
obs_type_type
(
NOAA_19_AVHRR_RADIANCE
,
&
'NOAA_19_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
174
)
=
obs_type_type
(
NOAA_19_MHS_TB
,
&
'NOAA_19_MHS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
175
)
=
obs_type_type
(
NOAA_20_ATMS_TB
,
&
'NOAA_20_ATMS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
176
)
=
obs_type_type
(
NOAA_20_VIIRS_RADIANCE
,
&
'NOAA_20_VIIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
177
)
=
obs_type_type
(
DMSP_8_SSMI_TB
,
&
'DMSP_8_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
178
)
=
obs_type_type
(
DMSP_9_SSMI_TB
,
&
'DMSP_9_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
179
)
=
obs_type_type
(
DMSP_10_SSMI_TB
,
&
'DMSP_10_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
180
)
=
obs_type_type
(
DMSP_11_SSMI_TB
,
&
'DMSP_11_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
181
)
=
obs_type_type
(
DMSP_11_SSMT2_TB
,
&
'DMSP_11_SSMT2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
182
)
=
obs_type_type
(
DMSP_12_SSMI_TB
,
&
'DMSP_12_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
183
)
=
obs_type_type
(
DMSP_12_SSMT2_TB
,
&
'DMSP_12_SSMT2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
184
)
=
obs_type_type
(
DMSP_13_SSMI_TB
,
&
'DMSP_13_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
185
)
=
obs_type_type
(
DMSP_14_SSMI_TB
,
&
'DMSP_14_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
186
)
=
obs_type_type
(
DMSP_14_SSMT2_TB
,
&
'DMSP_14_SSMT2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
187
)
=
obs_type_type
(
DMSP_15_SSMI_TB
,
&
'DMSP_15_SSMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
188
)
=
obs_type_type
(
DMSP_15_SSMT2_TB
,
&
'DMSP_15_SSMT2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
189
)
=
obs_type_type
(
DMSP_16_SSMIS_TB
,
&
'DMSP_16_SSMIS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
190
)
=
obs_type_type
(
DMSP_17_SSMIS_TB
,
&
'DMSP_17_SSMIS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
191
)
=
obs_type_type
(
DMSP_18_SSMIS_TB
,
&
'DMSP_18_SSMIS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
192
)
=
obs_type_type
(
DMSP_19_SSMIS_TB
,
&
'DMSP_19_SSMIS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
193
)
=
obs_type_type
(
METEOSAT_1_MVIRI_RADIANCE
,
&
'METEOSAT_1_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
194
)
=
obs_type_type
(
METEOSAT_2_MVIRI_RADIANCE
,
&
'METEOSAT_2_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
195
)
=
obs_type_type
(
METEOSAT_3_MVIRI_RADIANCE
,
&
'METEOSAT_3_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
196
)
=
obs_type_type
(
METEOSAT_4_MVIRI_RADIANCE
,
&
'METEOSAT_4_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
197
)
=
obs_type_type
(
METEOSAT_5_MVIRI_RADIANCE
,
&
'METEOSAT_5_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
198
)
=
obs_type_type
(
METEOSAT_6_MVIRI_RADIANCE
,
&
'METEOSAT_6_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
199
)
=
obs_type_type
(
METEOSAT_7_MVIRI_RADIANCE
,
&
'METEOSAT_7_MVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
200
)
=
obs_type_type
(
GOES_4_SOUNDER_RADIANCE
,
&
'GOES_4_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
201
)
=
obs_type_type
(
GOES_5_SOUNDER_RADIANCE
,
&
'GOES_5_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
202
)
=
obs_type_type
(
GOES_6_SOUNDER_RADIANCE
,
&
'GOES_6_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
203
)
=
obs_type_type
(
GOES_7_SOUNDER_RADIANCE
,
&
'GOES_7_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
204
)
=
obs_type_type
(
GOES_8_IMAGER_RADIANCE
,
&
'GOES_8_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
205
)
=
obs_type_type
(
GOES_8_SOUNDER_RADIANCE
,
&
'GOES_8_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
206
)
=
obs_type_type
(
GOES_9_IMAGER_RADIANCE
,
&
'GOES_9_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
207
)
=
obs_type_type
(
GOES_9_SOUNDER_RADIANCE
,
&
'GOES_9_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
208
)
=
obs_type_type
(
GOES_10_IMAGER_RADIANCE
,
&
'GOES_10_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
209
)
=
obs_type_type
(
GOES_10_SOUNDER_RADIANCE
,
&
'GOES_10_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
210
)
=
obs_type_type
(
GOES_11_IMAGER_RADIANCE
,
&
'GOES_11_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
211
)
=
obs_type_type
(
GOES_11_SOUNDER_RADIANCE
,
&
'GOES_11_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
212
)
=
obs_type_type
(
GOES_12_IMAGER_RADIANCE
,
&
'GOES_12_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
213
)
=
obs_type_type
(
GOES_12_SOUNDER_RADIANCE
,
&
'GOES_12_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
214
)
=
obs_type_type
(
GOES_13_IMAGER_RADIANCE
,
&
'GOES_13_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
215
)
=
obs_type_type
(
GOES_13_SOUNDER_RADIANCE
,
&
'GOES_13_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
216
)
=
obs_type_type
(
GOES_14_IMAGER_RADIANCE
,
&
'GOES_14_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
217
)
=
obs_type_type
(
GOES_14_SOUNDER_RADIANCE
,
&
'GOES_14_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
218
)
=
obs_type_type
(
GOES_15_IMAGER_RADIANCE
,
&
'GOES_15_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
219
)
=
obs_type_type
(
GOES_15_SOUNDER_RADIANCE
,
&
'GOES_15_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
220
)
=
obs_type_type
(
GOES_16_ABI_RADIANCE
,
&
'GOES_16_ABI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
221
)
=
obs_type_type
(
GOES_17_ABI_RADIANCE
,
&
'GOES_17_ABI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
222
)
=
obs_type_type
(
GOES_18_ABI_RADIANCE
,
&
'GOES_18_ABI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
223
)
=
obs_type_type
(
GOES_19_ABI_RADIANCE
,
&
'GOES_19_ABI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
224
)
=
obs_type_type
(
GMS_1_IMAGER_RADIANCE
,
&
'GMS_1_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
225
)
=
obs_type_type
(
GMS_2_IMAGER_RADIANCE
,
&
'GMS_2_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
226
)
=
obs_type_type
(
GMS_3_IMAGER_RADIANCE
,
&
'GMS_3_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
227
)
=
obs_type_type
(
GMS_4_IMAGER_RADIANCE
,
&
'GMS_4_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
228
)
=
obs_type_type
(
GMS_5_IMAGER_RADIANCE
,
&
'GMS_5_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
229
)
=
obs_type_type
(
FY2_2_VISSR_RADIANCE
,
&
'FY2_2_VISSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
230
)
=
obs_type_type
(
FY2_3_VISSR_RADIANCE
,
&
'FY2_3_VISSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
231
)
=
obs_type_type
(
FY2_4_VISSR_RADIANCE
,
&
'FY2_4_VISSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
232
)
=
obs_type_type
(
FY2_5_VISSR_RADIANCE
,
&
'FY2_5_VISSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
233
)
=
obs_type_type
(
FY2_7_VISSR_RADIANCE
,
&
'FY2_7_VISSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
234
)
=
obs_type_type
(
TRMM_1_TMI_TB
,
&
'TRMM_1_TMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
235
)
=
obs_type_type
(
ERS_1_ATSR_RADIANCE
,
&
'ERS_1_ATSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
236
)
=
obs_type_type
(
ERS_1_MWR_TB
,
&
'ERS_1_MWR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
237
)
=
obs_type_type
(
ERS_2_ATSR_RADIANCE
,
&
'ERS_2_ATSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
238
)
=
obs_type_type
(
ERS_2_MWR_TB
,
&
'ERS_2_MWR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
239
)
=
obs_type_type
(
EOS_1_MODIS_RADIANCE
,
&
'EOS_1_MODIS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
240
)
=
obs_type_type
(
EOS_1_ASTER_RADIANCE
,
&
'EOS_1_ASTER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
241
)
=
obs_type_type
(
EOS_2_AMSUA_TB
,
&
'EOS_2_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
242
)
=
obs_type_type
(
EOS_2_AIRS_RADIANCE
,
&
'EOS_2_AIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
243
)
=
obs_type_type
(
EOS_2_HSB_TB
,
&
'EOS_2_HSB_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
244
)
=
obs_type_type
(
EOS_2_MODIS_RADIANCE
,
&
'EOS_2_MODIS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
245
)
=
obs_type_type
(
EOS_2_AMSRE_TB
,
&
'EOS_2_AMSRE_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
246
)
=
obs_type_type
(
METOP_1_HIRS_RADIANCE
,
&
'METOP_1_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
247
)
=
obs_type_type
(
METOP_1_AMSUA_TB
,
&
'METOP_1_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
248
)
=
obs_type_type
(
METOP_1_AVHRR_RADIANCE
,
&
'METOP_1_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
249
)
=
obs_type_type
(
METOP_1_MHS_TB
,
&
'METOP_1_MHS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
250
)
=
obs_type_type
(
METOP_2_HIRS_RADIANCE
,
&
'METOP_2_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
251
)
=
obs_type_type
(
METOP_2_AMSUA_TB
,
&
'METOP_2_AMSUA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
252
)
=
obs_type_type
(
METOP_2_AVHRR_RADIANCE
,
&
'METOP_2_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
253
)
=
obs_type_type
(
METOP_2_MHS_TB
,
&
'METOP_2_MHS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
254
)
=
obs_type_type
(
METOP_3_AVHRR_RADIANCE
,
&
'METOP_3_AVHRR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
255
)
=
obs_type_type
(
ENVISAT_1_ATSR_RADIANCE
,
&
'ENVISAT_1_ATSR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
256
)
=
obs_type_type
(
ENVISAT_1_MWR_TB
,
&
'ENVISAT_1_MWR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
257
)
=
obs_type_type
(
MSG_1_SEVIRI_RADIANCE
,
&
'MSG_1_SEVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
258
)
=
obs_type_type
(
MSG_2_SEVIRI_RADIANCE
,
&
'MSG_2_SEVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
259
)
=
obs_type_type
(
MSG_3_SEVIRI_RADIANCE
,
&
'MSG_3_SEVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
260
)
=
obs_type_type
(
MSG_4_SEVIRI_RADIANCE
,
&
'MSG_4_SEVIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
261
)
=
obs_type_type
(
MSG_4_SEVIRI_TB
,
&
'MSG_4_SEVIRI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
262
)
=
obs_type_type
(
MSG_4_SEVIRI_BDRF
,
&
'MSG_4_SEVIRI_BDRF'
,
QTY_BI_DIRECTIONAL_REFLECTANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
263
)
=
obs_type_type
(
FY1_3_MVISR_RADIANCE
,
&
'FY1_3_MVISR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
264
)
=
obs_type_type
(
FY1_4_MVISR_RADIANCE
,
&
'FY1_4_MVISR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
265
)
=
obs_type_type
(
MTSAT_1_IMAGER_RADIANCE
,
&
'MTSAT_1_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
266
)
=
obs_type_type
(
MTSAT_2_IMAGER_RADIANCE
,
&
'MTSAT_2_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
267
)
=
obs_type_type
(
CORIOLIS_1_WINDSAT_TB
,
&
'CORIOLIS_1_WINDSAT_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
268
)
=
obs_type_type
(
JPSS_0_ATMS_TB
,
&
'JPSS_0_ATMS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
269
)
=
obs_type_type
(
JPSS_0_VIIRS_RADIANCE
,
&
'JPSS_0_VIIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
270
)
=
obs_type_type
(
SENTINEL3_1_SLSTR_RADIANCE
,
&
'SENTINEL3_1_SLSTR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
271
)
=
obs_type_type
(
SENTINEL3_2_SLSTR_RADIANCE
,
&
'SENTINEL3_2_SLSTR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
272
)
=
obs_type_type
(
MEGHATR_1_SAPHIR_TB
,
&
'MEGHATR_1_SAPHIR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
273
)
=
obs_type_type
(
MEGHATR_1_MADRAS_TB
,
&
'MEGHATR_1_MADRAS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
274
)
=
obs_type_type
(
FY3_1_MWTS_TB
,
&
'FY3_1_MWTS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
275
)
=
obs_type_type
(
FY3_1_MWHS_TB
,
&
'FY3_1_MWHS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
276
)
=
obs_type_type
(
FY3_1_IRAS_RADIANCE
,
&
'FY3_1_IRAS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
277
)
=
obs_type_type
(
FY3_1_MWRI_TB
,
&
'FY3_1_MWRI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
278
)
=
obs_type_type
(
FY3_2_MWTS_TB
,
&
'FY3_2_MWTS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
279
)
=
obs_type_type
(
FY3_2_MWHS_TB
,
&
'FY3_2_MWHS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
280
)
=
obs_type_type
(
FY3_2_MWRI_TB
,
&
'FY3_2_MWRI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
281
)
=
obs_type_type
(
FY3_3_MWRI_TB
,
&
'FY3_3_MWRI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
282
)
=
obs_type_type
(
FY3_3_MWTS2_TB
,
&
'FY3_3_MWTS2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
283
)
=
obs_type_type
(
FY3_3_MWHS2_TB
,
&
'FY3_3_MWHS2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
284
)
=
obs_type_type
(
FY3_3_MERSI1_RADIANCE
,
&
'FY3_3_MERSI1_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
285
)
=
obs_type_type
(
FY3_4_MWRI_TB
,
&
'FY3_4_MWRI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
286
)
=
obs_type_type
(
FY3_4_MWTS2_TB
,
&
'FY3_4_MWTS2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
287
)
=
obs_type_type
(
FY3_4_MWHS2_TB
,
&
'FY3_4_MWHS2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
288
)
=
obs_type_type
(
FY3_4_MERSI2_RADIANCE
,
&
'FY3_4_MERSI2_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
289
)
=
obs_type_type
(
COMS_1_MI_RADIANCE
,
&
'COMS_1_MI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
290
)
=
obs_type_type
(
METEOR_M_1_MSUMR_RADIANCE
,
&
'METEOR_M_1_MSUMR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
291
)
=
obs_type_type
(
METEOR_M_2_MSUMR_RADIANCE
,
&
'METEOR_M_2_MSUMR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
292
)
=
obs_type_type
(
METEOR_M_2_MTVZAGY_TB
,
&
'METEOR_M_2_MTVZAGY_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
293
)
=
obs_type_type
(
CALIPSO_1_IIR_RADIANCE
,
&
'CALIPSO_1_IIR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
294
)
=
obs_type_type
(
GCOM_W_1_AMSR2_TB
,
&
'GCOM_W_1_AMSR2_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
295
)
=
obs_type_type
(
NIMBUS_3_MRIR_RADIANCE
,
&
'NIMBUS_3_MRIR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
296
)
=
obs_type_type
(
NIMBUS_4_THIR_RADIANCE
,
&
'NIMBUS_4_THIR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
297
)
=
obs_type_type
(
NIMBUS_5_THIR_RADIANCE
,
&
'NIMBUS_5_THIR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
298
)
=
obs_type_type
(
NIMBUS_6_HIRS_RADIANCE
,
&
'NIMBUS_6_HIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
299
)
=
obs_type_type
(
NIMBUS_6_SCAMS_TB
,
&
'NIMBUS_6_SCAMS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
300
)
=
obs_type_type
(
NIMBUS_6_THIR_RADIANCE
,
&
'NIMBUS_6_THIR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
301
)
=
obs_type_type
(
NIMBUS_7_SMMR_TB
,
&
'NIMBUS_7_SMMR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
302
)
=
obs_type_type
(
NIMBUS_7_THIR_RADIANCE
,
&
'NIMBUS_7_THIR_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
303
)
=
obs_type_type
(
HIMAWARI_8_AHI_RADIANCE
,
&
'HIMAWARI_8_AHI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
304
)
=
obs_type_type
(
HIMAWARI_9_AHI_RADIANCE
,
&
'HIMAWARI_9_AHI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
305
)
=
obs_type_type
(
MTG_1_FCI_RADIANCE
,
&
'MTG_1_FCI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
306
)
=
obs_type_type
(
SARAL_1_ALTIKA_TB
,
&
'SARAL_1_ALTIKA_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
307
)
=
obs_type_type
(
METOPSG_1_ICI_TB
,
&
'METOPSG_1_ICI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
308
)
=
obs_type_type
(
METOPSG_1_METIMAGE_RADIANCE
,
&
'METOPSG_1_METIMAGE_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
309
)
=
obs_type_type
(
METOPSG_1_MWS_TB
,
&
'METOPSG_1_MWS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
310
)
=
obs_type_type
(
METOPSG_1_MWI_TB
,
&
'METOPSG_1_MWI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
311
)
=
obs_type_type
(
LANDSAT_4_TM_RADIANCE
,
&
'LANDSAT_4_TM_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
312
)
=
obs_type_type
(
LANDSAT_5_TM_RADIANCE
,
&
'LANDSAT_5_TM_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
313
)
=
obs_type_type
(
LANDSAT_7_TM_RADIANCE
,
&
'LANDSAT_7_TM_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
314
)
=
obs_type_type
(
LANDSAT_8_TIRS_RADIANCE
,
&
'LANDSAT_8_TIRS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
315
)
=
obs_type_type
(
JASON_2_AMR_TB
,
&
'JASON_2_AMR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
316
)
=
obs_type_type
(
GPM_1_GMI_TB
,
&
'GPM_1_GMI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
317
)
=
obs_type_type
(
GPM_1_DPR_TB
,
&
'GPM_1_DPR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
318
)
=
obs_type_type
(
INSAT3_4_IMAGER_RADIANCE
,
&
'INSAT3_4_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
319
)
=
obs_type_type
(
INSAT3_4_SOUNDER_RADIANCE
,
&
'INSAT3_4_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
320
)
=
obs_type_type
(
INSAT3_5_IMAGER_RADIANCE
,
&
'INSAT3_5_IMAGER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
321
)
=
obs_type_type
(
INSAT3_5_SOUNDER_RADIANCE
,
&
'INSAT3_5_SOUNDER_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
322
)
=
obs_type_type
(
TICFIRE_1_MBFIRI_RADIANCE
,
&
'TICFIRE_1_MBFIRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
323
)
=
obs_type_type
(
ISS_1_ECOSTRES_RADIANCE
,
&
'ISS_1_ECOSTRES_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
324
)
=
obs_type_type
(
HJ1_2_IRMSS_RADIANCE
,
&
'HJ1_2_IRMSS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
325
)
=
obs_type_type
(
GKOMPSAT2_1_AMI_RADIANCE
,
&
'GKOMPSAT2_1_AMI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
326
)
=
obs_type_type
(
GCOM_C_1_SGLI_RADIANCE
,
&
'GCOM_C_1_SGLI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
327
)
=
obs_type_type
(
SMOS_1_MIRAS_TB
,
&
'SMOS_1_MIRAS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
328
)
=
obs_type_type
(
ORS_6_COWVR_TB
,
&
'ORS_6_COWVR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
329
)
=
obs_type_type
(
FY4_1_AGRI_RADIANCE
,
&
'FY4_1_AGRI_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
330
)
=
obs_type_type
(
TROPICS_0_TROPICS_TB
,
&
'TROPICS_0_TROPICS_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
331
)
=
obs_type_type
(
GF5_1_VIMS_RADIANCE
,
&
'GF5_1_VIMS_RADIANCE'
,
QTY_RADIANCE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
332
)
=
obs_type_type
(
HY2_1_MWRI_TB
,
&
'HY2_1_MWRI_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
obs_type_info
(
333
)
=
obs_type_type
(
CLOUDSAT_1_CPR_TB
,
&
'CLOUDSAT_1_CPR_TB'
,
QTY_BRIGHTNESS_TEMPERATURE
,
.false.
,
.false.
,
.false.
)
! Default for all obs is to not assimilate or evaluate.
! Count up number being assimilated and evaluated here.
num_types_assimilate
=
0
do
i
=
1
,
max_defined_types_of_obs
if
(
assimilate_these_obs_types
(
i
)
==
'null'
.or.
len_trim
(
assimilate_these_obs_types
(
i
))
==
0
)
exit
num_types_assimilate
=
i
end
do
num_types_evaluate
=
0
do
i
=
1
,
max_defined_types_of_obs
if
(
evaluate_these_obs_types
(
i
)
==
'null'
.or.
len_trim
(
evaluate_these_obs_types
(
i
))
==
0
)
exit
num_types_evaluate
=
i
end
do
! Special case when all obs_types should use precomputed_FOs
if
(
any
(
use_precomputed_FOs_these_obs_types
.eq.
'all'
)
)
then
num_types_use_precomputed_FOs
=
num_types_assimilate
+
num_types_evaluate
j
=
1
if
(
num_types_assimilate
>
0
)
then
use_precomputed_FOs_these_obs_types
(
j
:
num_types_assimilate
)
=
assimilate_these_obs_types
(
1
:
num_types_assimilate
)
j
=
j
+
num_types_assimilate
endif
if
(
num_types_evaluate
>
0
)
use_precomputed_FOs_these_obs_types
(
j
:
num_types_use_precomputed_FOs
)
=
evaluate_these_obs_types
(
1
:
num_types_evaluate
)
else
num_types_use_precomputed_FOs
=
0
do
i
=
1
,
max_defined_types_of_obs
if
(
use_precomputed_FOs_these_obs_types
(
i
)
==
'null'
.or.
len_trim
(
use_precomputed_FOs_these_obs_types
(
i
))
==
0
)
exit
num_types_use_precomputed_FOs
=
i
end
do
endif
if
(
do_output
()
.and.
(
num_types_assimilate
>
0
.or.
&
num_types_evaluate
>
0
.or.
&
num_types_use_precomputed_FOs
>
0
))
then
call
log_it
(
''
)
call
log_it
(
'Assimilate_these_obs_types:'
)
if
(
num_types_assimilate
<
1
)
then
call
log_it
(
' none'
)
else
do
i
=
1
,
num_types_assimilate
call
log_it
(
' '
//
trim
(
assimilate_these_obs_types
(
i
)))
enddo
endif
call
log_it
(
'Evaluate_these_obs_types:'
)
if
(
num_types_evaluate
<
1
)
then
call
log_it
(
' none'
)
else
do
i
=
1
,
num_types_evaluate
call
log_it
(
' '
//
trim
(
evaluate_these_obs_types
(
i
)))
enddo
endif
call
log_it
(
'Use the precomputed Prior Forward Operators for these obs types:'
)
if
(
num_types_use_precomputed_FOs
<
1
)
then
call
log_it
(
' none'
)
else
do
i
=
1
,
num_types_use_precomputed_FOs
call
log_it
(
' '
//
trim
(
use_precomputed_FOs_these_obs_types
(
i
)))
enddo
endif
call
log_it
(
''
)
endif
! Figure out which types are being used, look for errors
! Start by loading up types to assimilate
if
(
num_types_assimilate
>
0
)
then
do
i
=
1
,
num_types_assimilate
! Search for the matching string
do
j
=
1
,
max_defined_types_of_obs
if
(
assimilate_these_obs_types
(
i
)
==
obs_type_info
(
j
)
%
name
)
then
obs_type_info
(
j
)
%
assimilate
=
.true.
goto
44
endif
end
do
! Falling off the end is an error
write
(
err_string
,
*
)
'"'
,
trim
(
assimilate_these_obs_types
(
i
)),
&
'" from obs_kind_nml::assimilate_these_obs_types is not a legal observation type'
call
error_handler
(
E_ERR
,
routine
,
err_string
,
source
)
44
continue
end
do
endif
! Now look for types to evaluate
if
(
num_types_evaluate
>
0
)
then
do
i
=
1
,
num_types_evaluate
! Search for the matching string
do
j
=
1
,
max_defined_types_of_obs
if
(
evaluate_these_obs_types
(
i
)
==
obs_type_info
(
j
)
%
name
)
then
obs_type_info
(
j
)
%
evaluate
=
.true.
goto
55
endif
end
do
! Falling off the end is an error
write
(
err_string
,
*
)
'"'
,
trim
(
evaluate_these_obs_types
(
i
)),
&
'" from obs_kind_nml::evaluate_these_obs_types is not a legal observation type'
call
error_handler
(
E_ERR
,
routine
,
err_string
,
source
)
55
continue
end
do
endif
if
(
num_types_use_precomputed_FOs
>
0
)
then
do
i
=
1
,
num_types_use_precomputed_FOs
! Search for the matching string
do
j
=
1
,
max_defined_types_of_obs
if
(
use_precomputed_FOs_these_obs_types
(
i
)
==
obs_type_info
(
j
)
%
name
)
then
obs_type_info
(
j
)
%
use_precomputed_FO
=
.true.
goto
66
endif
end
do
! Falling off the end is an error
write
(
err_string
,
*
)
'"'
,
trim
(
use_precomputed_FOs_these_obs_types
(
i
)),
&
'" from obs_kind_nml::use_precomputed_FOs_these_obs_types is not a legal observation type'
call
error_handler
(
E_ERR
,
routine
,
err_string
,
source
)
66
continue
end
do
endif
! Make it an error to ask to assimilate AND evaluate the same obs kind
do
i
=
1
,
max_defined_types_of_obs
if
(
obs_type_info
(
i
)
%
evaluate
.and.
obs_type_info
(
i
)
%
assimilate
)
then
write
(
err_string
,
*
)
'Illegal to both evaluate and assimilate same type '
,
&
trim
(
obs_type_info
(
i
)
%
name
)
call
error_handler
(
E_ERR
,
routine
,
err_string
,
source
)
endif
end
do
end
subroutine
initialize_module
!---------------------------------------------------------------------------
function
map_type_of_obs_table
(
obs_def_index
)
! Argument is the index from the obs_def; needs to be mapped to the appropriate
! Integer storage index
integer
,
intent
(
in
)
::
obs_def_index
integer
::
map_type_of_obs_table
character
(
len
=
169
)
::
err_string
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
"map_type_of_obs_table"
if
(
.not.
module_initialized
)
call
initialize_module
! Need to search through the first map column to find this obs_def_index value
! Then return the index into table in this module from corresponding row in
! second column.
do
i
=
1
,
max_defined_types_of_obs
if
(
toc_mod_type_map
%
toc_type_index
(
i
)
==
obs_def_index
)
then
map_type_of_obs_table
=
toc_mod_type_map
%
mod_type_index
(
i
)
return
endif
end
do
! Error, didn't find this obs_def_index in the map
write
(
err_string
,
*
)
'Could not find obs type index '
,
obs_def_index
,
&
' in current type list compiled in this program'
call
error_handler
(
E_ERR
,
routine
,
err_string
,
source
)
end
function
map_type_of_obs_table
!----------------------------------------------------------------------------
function
get_name_for_type_of_obs
(
obs_type_ind
)
! Returns observation type name
integer
,
intent
(
in
)
::
obs_type_ind
character
(
len
=
obstypelength
)
::
get_name_for_type_of_obs
character
(
len
=*
),
parameter
::
routine
=
'get_name_for_type_of_obs'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_type_index
(
obs_type_ind
,
routine
)
get_name_for_type_of_obs
=
obs_type_info
(
obs_type_ind
)
%
name
end
function
get_name_for_type_of_obs
!----------------------------------------------------------------------------
! Added by TRW to handle matching RAW variable types to their strings
! as well as the derived types - this will make the restart file
! handling more readable.
function
get_name_for_quantity
(
obs_qty_ind
)
! Returns observation quantity name
integer
,
intent
(
in
)
::
obs_qty_ind
character
(
len
=
obstypelength
)
::
get_name_for_quantity
character
(
len
=*
),
parameter
::
routine
=
'get_name_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_qty_index
(
obs_qty_ind
,
routine
)
get_name_for_quantity
=
obs_qty_info
(
obs_qty_ind
)
%
name
end
function
get_name_for_quantity
!----------------------------------------------------------------------------
function
get_index_for_type_of_obs
(
obs_type_name
)
! Returns the integer index corresponding to an observation type string name
! Returns a -1 if this string is not in list
character
(
len
=
*
),
intent
(
in
)
::
obs_type_name
integer
::
get_index_for_type_of_obs
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
'get_index_for_type_of_obs'
if
(
.not.
module_initialized
)
call
initialize_module
!>@todo FIXME binary search on a sorted list?
do
i
=
1
,
max_defined_types_of_obs
if
(
obs_type_name
==
obs_type_info
(
i
)
%
name
)
then
get_index_for_type_of_obs
=
i
return
endif
end
do
get_index_for_type_of_obs
=
-1
end
function
get_index_for_type_of_obs
!----------------------------------------------------------------------------
! Added by TRW to handle matching RAW variable types to their strings
! as well as the derived types - this will make the restart file
! handling more readable.
function
get_index_for_quantity
(
obs_qty_name
)
! Returns the integer index corresponding to an observation quantity string name
! Returns a -1 if this string is not in list
character
(
len
=*
),
intent
(
in
)
::
obs_qty_name
integer
::
get_index_for_quantity
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
'get_index_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
do
i
=
0
,
max_defined_quantities
if
(
obs_qty_name
==
obs_qty_info
(
i
)
%
name
)
then
get_index_for_quantity
=
i
return
end
if
end
do
get_index_for_quantity
=
-1
end
function
get_index_for_quantity
!----------------------------------------------------------------------------
! Add a name/value pair to this quantity.
! Error if index out of range
!
! FIXME: find a better identifier than 'item' here? meta something?
subroutine
set_namevalue_for_quantity
(
obs_qty_ind
,
itemname
,
itemvalue
)
integer
,
intent
(
in
)
::
obs_qty_ind
character
(
len
=*
),
intent
(
in
)
::
itemname
character
(
len
=*
),
intent
(
in
)
::
itemvalue
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
'set_namevalue_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_qty_index
(
obs_qty_ind
,
routine
)
call
validate_metadata_strings
(
obs_qty_ind
,
itemname
,
itemvalue
)
! FIXME: are replicated names an error?
! they could replace existing value for that name; or error out.
do
i
=
1
,
obs_qty_info
(
obs_qty_ind
)
%
nitems
if
(
obs_qty_info
(
obs_qty_ind
)
%
itemname
(
i
)
==
itemname
)
then
! item already found - do what? replace
obs_qty_info
(
obs_qty_ind
)
%
itemvalue
(
i
)
=
itemvalue
! or error out?
! call error_handler()
return
endif
enddo
! add new entry
i
=
obs_qty_info
(
obs_qty_ind
)
%
nitems
+
1
obs_qty_info
(
obs_qty_ind
)
%
nitems
=
i
obs_qty_info
(
obs_qty_ind
)
%
itemname
(
i
)
=
itemname
obs_qty_info
(
obs_qty_ind
)
%
itemvalue
(
i
)
=
itemvalue
end
subroutine
set_namevalue_for_quantity
!----------------------------------------------------------------------------
! Get number of name/value items for quantity
! Error if qty index out of range
! (FIXME: terminology: metadata vs item vs ??)
function
get_num_items_for_quantity
(
obs_qty_ind
)
integer
,
intent
(
in
)
::
obs_qty_ind
integer
::
get_num_items_for_quantity
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
'get_num_items_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_qty_index
(
obs_qty_ind
,
routine
)
get_num_items_for_quantity
=
obs_qty_info
(
obs_qty_ind
)
%
nitems
end
function
get_num_items_for_quantity
!----------------------------------------------------------------------------
! Get string value for item name by index for quantity of name/value pair
! Error if qty index out of range
! Error if item index out of range
! (FIXME: terminology: metadata vs item vs ??)
function
get_itemname_for_quantity
(
obs_qty_ind
,
item_index
)
integer
,
intent
(
in
)
::
obs_qty_ind
integer
,
intent
(
in
)
::
item_index
character
(
len
=
namelen
)
::
get_itemname_for_quantity
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
'get_itemname_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
! this validates the quantity index first, then the item index.
! if it returns w/o error, both indices are safe to use.
call
validate_qty_item_index
(
obs_qty_ind
,
item_index
,
routine
)
get_itemname_for_quantity
=
obs_qty_info
(
obs_qty_ind
)
%
itemname
(
item_index
)
end
function
get_itemname_for_quantity
!----------------------------------------------------------------------------
! Get string value for quantity by (qty index, item name) of name/value pair
! Error if qty index out of range
! Returns '' if no item name match (or 'null'?)
! (FIXME: terminology: metadata vs item vs ??)
function
get_itemvalue_for_quantity
(
obs_qty_ind
,
itemname
)
integer
,
intent
(
in
)
::
obs_qty_ind
character
(
len
=*
),
intent
(
in
)
::
itemname
character
(
len
=
valuelen
)
::
get_itemvalue_for_quantity
integer
::
i
character
(
len
=*
),
parameter
::
routine
=
'get_itemvalue_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_qty_index
(
obs_qty_ind
,
routine
)
do
i
=
1
,
obs_qty_info
(
obs_qty_ind
)
%
nitems
if
(
obs_qty_info
(
obs_qty_ind
)
%
itemname
(
i
)
==
itemname
)
then
get_itemvalue_for_quantity
=
obs_qty_info
(
obs_qty_ind
)
%
itemvalue
(
i
)
return
endif
enddo
get_itemvalue_for_quantity
=
''
end
function
get_itemvalue_for_quantity
!----------------------------------------------------------------------------
! convenience routine, could also be queried using the generic name=value interface
! Get bounds values for quantity by index
! Returns .false. if both min and max are missing_r8
! A potential code shortcut for calling code if no bounds are present
function
has_bounds_for_quantity
(
obs_qty_ind
,
minbound
,
maxbound
)
integer
,
intent
(
in
)
::
obs_qty_ind
real
(
r8
),
intent
(
out
)
::
minbound
real
(
r8
),
intent
(
out
)
::
maxbound
logical
::
has_bounds_for_quantity
integer
::
i
character
(
len
=
valuelen
)
::
boundstring
character
(
len
=*
),
parameter
::
routine
=
'get_bounds_for_quantity'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_qty_index
(
obs_qty_ind
,
routine
)
minbound
=
MISSING_R8
maxbound
=
MISSING_R8
do
i
=
1
,
obs_qty_info
(
obs_qty_ind
)
%
nitems
if
(
obs_qty_info
(
obs_qty_ind
)
%
itemname
(
i
)
==
"minbound"
)
then
boundstring
=
obs_qty_info
(
obs_qty_ind
)
%
itemvalue
(
i
)
minbound
=
string_to_real
(
boundstring
)
endif
if
(
obs_qty_info
(
obs_qty_ind
)
%
itemname
(
i
)
==
"maxbound"
)
then
boundstring
=
obs_qty_info
(
obs_qty_ind
)
%
itemvalue
(
i
)
maxbound
=
string_to_real
(
boundstring
)
endif
enddo
has_bounds_for_quantity
=
.not.
(
minbound
==
MISSING_R8
.and.
maxbound
==
MISSING_R8
)
end
function
has_bounds_for_quantity
!----------------------------------------------------------------------------
!> Accessor function to return observation type count
function
get_num_types_of_obs
()
integer
::
get_num_types_of_obs
if
(
.not.
module_initialized
)
call
initialize_module
get_num_types_of_obs
=
max_defined_types_of_obs
end
function
get_num_types_of_obs
!----------------------------------------------------------------------------
!> Accessor function to return observation quantity count
function
get_num_quantities
()
integer
::
get_num_quantities
if
(
.not.
module_initialized
)
call
initialize_module
get_num_quantities
=
max_defined_quantities
end
function
get_num_quantities
!----------------------------------------------------------------------------
!> Returns true if this obs_type is being assimilated
function
assimilate_this_type_of_obs
(
obs_type_ind
)
logical
::
assimilate_this_type_of_obs
integer
,
intent
(
in
)
::
obs_type_ind
character
(
len
=*
),
parameter
::
routine
=
'assimilate_this_type_of_obs'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_type_index
(
obs_type_ind
,
routine
)
assimilate_this_type_of_obs
=
obs_type_info
(
obs_type_ind
)
%
assimilate
end
function
assimilate_this_type_of_obs
!----------------------------------------------------------------------------
!> Returns true if this obs_type is being evaluated
function
evaluate_this_type_of_obs
(
obs_type_ind
)
logical
::
evaluate_this_type_of_obs
integer
,
intent
(
in
)
::
obs_type_ind
character
(
len
=*
),
parameter
::
routine
=
'evaluate_this_type_of_obs'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_type_index
(
obs_type_ind
,
routine
)
evaluate_this_type_of_obs
=
obs_type_info
(
obs_type_ind
)
%
evaluate
end
function
evaluate_this_type_of_obs
!----------------------------------------------------------------------------
!> Returns true if this obs_type should use externally computed priors
function
use_ext_prior_this_type_of_obs
(
obs_type_ind
)
logical
::
use_ext_prior_this_type_of_obs
integer
,
intent
(
in
)
::
obs_type_ind
character
(
len
=*
),
parameter
::
routine
=
'use_ext_prior_this_type_of_obs'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_type_index
(
obs_type_ind
,
routine
)
use_ext_prior_this_type_of_obs
=
obs_type_info
(
obs_type_ind
)
%
use_precomputed_FO
end
function
use_ext_prior_this_type_of_obs
!----------------------------------------------------------------------------
!> Returns the associated generic quantity associated with the
!> specific type of this observation
function
get_quantity_for_type_of_obs
(
obs_type_ind
)
integer
,
intent
(
in
)
::
obs_type_ind
integer
::
get_quantity_for_type_of_obs
character
(
len
=*
),
parameter
::
routine
=
'get_quantity_for_type_of_obs'
if
(
.not.
module_initialized
)
call
initialize_module
call
validate_obs_type_index
(
obs_type_ind
,
routine
)
get_quantity_for_type_of_obs
=
obs_type_info
(
obs_type_ind
)
%
quantity
end
function
get_quantity_for_type_of_obs
!----------------------------------------------------------------------------
!> Writes out the observation type strings and corresponding integer
!> indices as a header for an obs_sequence file.
subroutine
write_type_of_obs_table
(
ifile
,
fform
,
use_list
)
integer
,
intent
(
in
)
::
ifile
character
(
len
=*
),
intent
(
in
),
optional
::
fform
integer
,
intent
(
in
),
optional
::
use_list
(:)
integer
::
i
,
ntypes
logical
::
is_ascii
,
restrict
character
(
len
=*
),
parameter
::
routine
=
'write_type_of_obs_table'
if
(
.not.
module_initialized
)
call
initialize_module
is_ascii
=
ascii_file_format
(
fform
)
! Write the 20 character identifier to indicate the start of a type table.
! To maintain complete backwards compatibility with the original read
! code this string must start in column 1.
! you cannot use: write(ifile, *) 'string' because the output string
! will start in col 2. the string either has to be part of the format
! argument to write(), or you have to use a separate format statement.
! FIXME: this needs to be obs_type_definitions for write. read has to
! accept either kind (now quantity and was incorrect for this table in
! any case) or type.
if
(
is_ascii
)
then
write
(
ifile
,
"('obs_type_definitions')"
)
! see note above!
else
write
(
ifile
)
'obs_type_definitions'
endif
! If this routine is called with a list of which types are actually
! being used, restrict the table of contents to only those.
! Otherwise, write all known types.
if
(
present
(
use_list
))
then
! make sure the list is the right length
if
(
size
(
use_list
)
/
=
max_defined_types_of_obs
)
then
call
error_handler
(
E_ERR
,
routine
,
&
'use_list(:) must be the same length as number of types'
,
source
)
endif
ntypes
=
count
(
use_list
(:)
>
0
)
restrict
=
.true.
else
ntypes
=
max_defined_types_of_obs
restrict
=
.false.
endif
if
(
is_ascii
)
then
write
(
ifile
,
*
)
ntypes
else
write
(
ifile
)
ntypes
endif
do
i
=
1
,
max_defined_types_of_obs
if
(
restrict
)
then
if
(
use_list
(
i
)
==
0
)
cycle
endif
if
(
is_ascii
)
then
write
(
ifile
,
*
)
obs_type_info
(
i
)
%
index
,
obs_type_info
(
i
)
%
name
else
write
(
ifile
)
obs_type_info
(
i
)
%
index
,
obs_type_info
(
i
)
%
name
endif
end
do
end
subroutine
write_type_of_obs_table
!----------------------------------------------------------------------------
!> Reads the observation type strings and corresponding integer
!> indices as a header for an obs_sequence file.
subroutine
read_type_of_obs_table
(
ifile
,
pre_I_format
,
fform
)
integer
,
intent
(
in
)
::
ifile
logical
,
intent
(
in
)
::
pre_I_format
character
(
len
=*
),
intent
(
in
),
optional
::
fform
character
(
len
=
20
)
::
header
character
(
len
=
obstypelength
)
::
o_name
integer
::
i
,
num_def_types
,
o_index
,
list_index
,
rc
logical
::
is_ascii
character
(
len
=*
),
parameter
::
routine
=
'read_type_of_obs_table'
if
(
.not.
module_initialized
)
call
initialize_module
! pre_I_format has been deprecated.
if
(
pre_I_format
)
then
call
error_handler
(
E_ERR
,
routine
,
'pre_I_format no longer supported'
,
source
)
endif
is_ascii
=
ascii_file_format
(
fform
)
! Read the 20 character identifier which identifies the start
! of the obstype number/name table for this sequence file.
if
(
is_ascii
)
then
read
(
ifile
,
*
,
iostat
=
rc
)
header
else
read
(
ifile
,
iostat
=
rc
)
header
endif
if
(
rc
/
=
0
.or.
(
header
/
=
'obs_type_definitions'
.and.
header
/
=
'obs_kind_definitions'
))
then
write
(
msg_string
,
*
)
'Did not find expected "obs_type_definitions" or "obs_kind_definitions" string at start of obs_seq file '
write
(
msg_string1
,
*
)
'Possible causes include: not an obs_seq file format, corrupted file, or wrong-endian binary file'
call
error_handler
(
E_ERR
,
routine
,
msg_string
,
source
,
text2
=
msg_string1
)
endif
! Loop through the list to read the integer indices and strings
! For all the defined observation types
! Set up the map from types in the obs_sequence file to those
! in the data structure in this module.
if
(
is_ascii
)
then
read
(
ifile
,
*
)
num_def_types
else
read
(
ifile
)
num_def_types
endif
do
i
=
1
,
num_def_types
if
(
is_ascii
)
then
read
(
ifile
,
*
)
o_index
,
o_name
else
read
(
ifile
)
o_index
,
o_name
endif
! What is the integer associated with this o_name in this module?
list_index
=
get_index_for_type_of_obs
(
o_name
)
! Check for error
if
(
list_index
==
-1
)
then
write
(
msg_string
,
*
)
'Did not find observation type "'
,
o_name
,
&
'" in current type list compiled in this program'
call
error_handler
(
E_ERR
,
routine
,
msg_string
,
source
)
endif
toc_mod_type_map
%
toc_type_index
(
i
)
=
o_index
toc_mod_type_map
%
mod_type_index
(
i
)
=
list_index
end
do
end
subroutine
read_type_of_obs_table
!----------------------------------------------------------------------------
!> Print a menu and read an obs type number
!> (Used for example in an interactive program)
function
get_type_of_obs_from_menu
()
integer
::
get_type_of_obs_from_menu
integer
::
i
,
ierr
character
(
len
=
obstypelength
)
::
in
character
(
len
=*
),
parameter
::
routine
=
'get_type_of_obs_from_menu'
if
(
.not.
module_initialized
)
call
initialize_module
! Should only do types that have been selected by preprocessor
! since those are being evaluated or assimilated.
21
continue
write
(
*
,
*
)
' '
,
'Input the name of the observation types from table below'
write
(
*
,
*
)
' '
,
'OR input (-1 * state variable index) for identity observations:'
do
i
=
1
,
max_defined_types_of_obs
if
(
assimilate_this_type_of_obs
(
i
)
.or.
evaluate_this_type_of_obs
(
i
))
&
write
(
*
,
*
)
' '
,
obs_type_info
(
i
)
%
index
,
trim
(
obs_type_info
(
i
)
%
name
)
end
do
! Read the input as a string, convert to integers as appropriate
read
(
*
,
'(A)'
)
in
! If string is a positive or negative number, convert it to integer
read
(
in
,
*
,
IOSTAT
=
ierr
)
get_type_of_obs_from_menu
if
(
ierr
/
=
0
)
then
get_type_of_obs_from_menu
=
get_index_for_type_of_obs
(
in
)
! If string isn't found, need to reprompt
if
(
get_type_of_obs_from_menu
==
-1
)
then
write
(
*
,
*
)
trim
(
in
)
//
' is not a supported type: Please try again.'
goto
21
endif
else
! Make sure that number entered isn't 0 or too larg
if
(
get_type_of_obs_from_menu
==
0
.or.
get_type_of_obs_from_menu
>
max_defined_types_of_obs
)
then
write
(
*
,
*
)
get_type_of_obs_from_menu
,
'is not a legal entry: Please try again.'
goto
21
endif
endif
! Make sure
end
function
get_type_of_obs_from_menu
!----------------------------------------------------------------------------
!> call this routine only where if an index is expected to be valid.
!> (it is a fatal error if not.) don't call this routine from code where
!> an out-of-range value is handled (e.g. it returns -1 instead).
subroutine
validate_obs_type_index
(
test_me
,
calling_routine
)
integer
,
intent
(
in
)
::
test_me
character
(
len
=*
),
intent
(
in
)
::
calling_routine
if
(
test_me
<
1
.or.
test_me
>
max_defined_types_of_obs
)
then
write
(
msg_string
,
'(A,I6,A,I6)'
)
'obs type number '
,
test_me
,
&
' must be between 1 and '
,
max_defined_types_of_obs
call
error_handler
(
E_ERR
,
calling_routine
,
msg_string
,
source
)
endif
end
subroutine
validate_obs_type_index
!----------------------------------------------------------------------------
!> call this routine only where if an index is expected to be valid.
!> (it is a fatal error if not.) don't call this routine from code where
!> an out-of-range value is handled (e.g. it returns -1 instead).
subroutine
validate_obs_qty_index
(
test_me
,
calling_routine
)
integer
,
intent
(
in
)
::
test_me
character
(
len
=*
),
intent
(
in
)
::
calling_routine
if
(
test_me
<
0
.or.
test_me
>
max_defined_quantities
)
then
write
(
msg_string
,
'(A,I6,A,I6)'
)
'obs quantity number '
,
test_me
,
&
' must be between 0 and '
,
max_defined_quantities
call
error_handler
(
E_ERR
,
calling_routine
,
msg_string
,
source
)
endif
end
subroutine
validate_obs_qty_index
!----------------------------------------------------------------------------
!> call this routine only where if an index is expected to be valid.
!> (it is a fatal error if not.) don't call this routine from code where
!> an out-of-range value is handled (e.g. it returns -1 instead).
subroutine
validate_qty_item_index
(
qty_index
,
test_me
,
calling_routine
)
integer
,
intent
(
in
)
::
qty_index
integer
,
intent
(
in
)
::
test_me
character
(
len
=*
),
intent
(
in
)
::
calling_routine
integer
::
nitems
! test before using index
call
validate_obs_qty_index
(
qty_index
,
calling_routine
)
nitems
=
obs_qty_info
(
qty_index
)
%
nitems
if
(
test_me
<
1
.or.
test_me
>
nitems
)
then
write
(
msg_string
,
'(3(A,I6))'
)
'item number '
,
test_me
,
' for obs quantity number '
,
qty_index
,
&
' ('
//
trim
(
obs_type_info
(
qty_index
)
%
name
)//
') must be between 1 and '
,
nitems
call
error_handler
(
E_ERR
,
calling_routine
,
msg_string
,
source
)
endif
end
subroutine
validate_qty_item_index
!----------------------------------------------------------------------------
subroutine
validate_metadata_strings
(
obs_qty_ind
,
itemname
,
itemvalue
)
integer
,
intent
(
in
)
::
obs_qty_ind
character
(
len
=*
),
intent
(
in
)
::
itemname
character
(
len
=*
),
intent
(
in
)
::
itemvalue
character
(
len
=*
),
parameter
::
routine
=
'validate_metadata_strings'
if
(
len_trim
(
itemname
)
>
namelen
)
then
write
(
msg_string
,
*
)
'quantity '
,
obs_qty_ind
,
' metadata name "'
//
trim
(
itemname
)//
'" must be shorter than'
,
namelen
write
(
msg_string1
,
*
)
'quantity '
,
obs_qty_ind
,
' is '
,
get_name_for_quantity
(
obs_qty_ind
)
call
error_handler
(
E_ERR
,
routine
,
msg_string
,
source
,
text2
=
msg_string1
)
endif
if
(
len_trim
(
itemvalue
)
>
valuelen
)
then
write
(
msg_string
,
*
)
'quantity '
,
obs_qty_ind
,
' metadata value "'
//
trim
(
itemvalue
)//
'" must be shorter than'
,
valuelen
write
(
msg_string1
,
*
)
'quantity '
,
obs_qty_ind
,
' is '
,
get_name_for_quantity
(
obs_qty_ind
)
call
error_handler
(
E_ERR
,
routine
,
msg_string
,
source
,
text2
=
msg_string1
)
endif
end
subroutine
validate_metadata_strings
!----------------------------------------------------------------------------
end
module
obs_kind_mod
!end module obs_qty_mod
This diff is collapsed.
Click to expand it.
config/obskind.py
0 → 100644
+
335
−
0
View file @
04084847
# this file is autogenerated
obs_kind_nrs
=
{
"
RADIOSONDE_U_WIND_COMPONENT
"
:
1
,
"
RADIOSONDE_V_WIND_COMPONENT
"
:
2
,
"
RADIOSONDE_GEOPOTENTIAL_HGT
"
:
3
,
"
RADIOSONDE_SURFACE_PRESSURE
"
:
4
,
"
RADIOSONDE_TEMPERATURE
"
:
5
,
"
RADIOSONDE_SPECIFIC_HUMIDITY
"
:
6
,
"
DROPSONDE_U_WIND_COMPONENT
"
:
7
,
"
DROPSONDE_V_WIND_COMPONENT
"
:
8
,
"
DROPSONDE_SURFACE_PRESSURE
"
:
9
,
"
DROPSONDE_TEMPERATURE
"
:
10
,
"
DROPSONDE_SPECIFIC_HUMIDITY
"
:
11
,
"
AIRCRAFT_U_WIND_COMPONENT
"
:
12
,
"
AIRCRAFT_V_WIND_COMPONENT
"
:
13
,
"
AIRCRAFT_TEMPERATURE
"
:
14
,
"
AIRCRAFT_SPECIFIC_HUMIDITY
"
:
15
,
"
ACARS_U_WIND_COMPONENT
"
:
16
,
"
ACARS_V_WIND_COMPONENT
"
:
17
,
"
ACARS_TEMPERATURE
"
:
18
,
"
ACARS_SPECIFIC_HUMIDITY
"
:
19
,
"
MARINE_SFC_U_WIND_COMPONENT
"
:
20
,
"
MARINE_SFC_V_WIND_COMPONENT
"
:
21
,
"
MARINE_SFC_TEMPERATURE
"
:
22
,
"
MARINE_SFC_SPECIFIC_HUMIDITY
"
:
23
,
"
MARINE_SFC_PRESSURE
"
:
24
,
"
LAND_SFC_U_WIND_COMPONENT
"
:
25
,
"
LAND_SFC_V_WIND_COMPONENT
"
:
26
,
"
LAND_SFC_TEMPERATURE
"
:
27
,
"
LAND_SFC_SPECIFIC_HUMIDITY
"
:
28
,
"
LAND_SFC_PRESSURE
"
:
29
,
"
SAT_U_WIND_COMPONENT
"
:
30
,
"
SAT_V_WIND_COMPONENT
"
:
31
,
"
ATOV_TEMPERATURE
"
:
32
,
"
AIRS_TEMPERATURE
"
:
33
,
"
AIRS_SPECIFIC_HUMIDITY
"
:
34
,
"
GPS_PRECIPITABLE_WATER
"
:
35
,
"
VADWND_U_WIND_COMPONENT
"
:
36
,
"
VADWND_V_WIND_COMPONENT
"
:
37
,
"
CIMMS_AMV_U_WIND_COMPONENT
"
:
38
,
"
CIMMS_AMV_V_WIND_COMPONENT
"
:
39
,
"
DOPPLER_RADIAL_VELOCITY
"
:
40
,
"
RADAR_REFLECTIVITY
"
:
41
,
"
RADAR_CLEARAIR_REFLECTIVITY
"
:
42
,
"
PRECIPITATION_FALL_SPEED
"
:
43
,
"
METAR_U_10_METER_WIND
"
:
44
,
"
METAR_V_10_METER_WIND
"
:
45
,
"
METAR_TEMPERATURE_2_METER
"
:
46
,
"
METAR_SPECIFIC_HUMIDITY_2_METER
"
:
47
,
"
METAR_SURFACE_PRESSURE
"
:
48
,
"
METAR_POT_TEMP_2_METER
"
:
49
,
"
DEWPOINT
"
:
50
,
"
DEWPOINT_2_METER
"
:
51
,
"
BUOY_DEWPOINT
"
:
52
,
"
SHIP_DEWPOINT
"
:
53
,
"
SYNOP_DEWPOINT
"
:
54
,
"
AIREP_DEWPOINT
"
:
55
,
"
AMDAR_DEWPOINT
"
:
56
,
"
PILOT_DEWPOINT
"
:
57
,
"
BOGUS_DEWPOINT
"
:
58
,
"
AIRS_DEWPOINT
"
:
59
,
"
METAR_DEWPOINT_2_METER
"
:
60
,
"
RADIOSONDE_DEWPOINT
"
:
61
,
"
DROPSONDE_DEWPOINT
"
:
62
,
"
AIRCRAFT_DEWPOINT
"
:
63
,
"
ACARS_DEWPOINT
"
:
64
,
"
MARINE_SFC_DEWPOINT
"
:
65
,
"
LAND_SFC_DEWPOINT
"
:
66
,
"
RADIOSONDE_RELATIVE_HUMIDITY
"
:
67
,
"
DROPSONDE_RELATIVE_HUMIDITY
"
:
68
,
"
AIRCRAFT_RELATIVE_HUMIDITY
"
:
69
,
"
ACARS_RELATIVE_HUMIDITY
"
:
70
,
"
MARINE_SFC_RELATIVE_HUMIDITY
"
:
71
,
"
LAND_SFC_RELATIVE_HUMIDITY
"
:
72
,
"
METAR_RELATIVE_HUMIDITY_2_METER
"
:
73
,
"
AIRS_RELATIVE_HUMIDITY
"
:
74
,
"
MESONET_RELATIVE_HUMIDITY
"
:
75
,
"
RADIOSONDE_SURFACE_ALTIMETER
"
:
76
,
"
DROPSONDE_SURFACE_ALTIMETER
"
:
77
,
"
MARINE_SFC_ALTIMETER
"
:
78
,
"
LAND_SFC_ALTIMETER
"
:
79
,
"
METAR_ALTIMETER
"
:
80
,
"
MESONET_SURFACE_ALTIMETER
"
:
81
,
"
TEMPERATURE
"
:
82
,
"
SPECIFIC_HUMIDITY
"
:
83
,
"
PRESSURE
"
:
84
,
"
GPSRO_REFRACTIVITY
"
:
85
,
"
VORTEX_LAT
"
:
86
,
"
VORTEX_LON
"
:
87
,
"
VORTEX_PMIN
"
:
88
,
"
VORTEX_WMAX
"
:
89
,
"
BUOY_U_WIND_COMPONENT
"
:
90
,
"
BUOY_V_WIND_COMPONENT
"
:
91
,
"
BUOY_SURFACE_PRESSURE
"
:
92
,
"
BUOY_TEMPERATURE
"
:
93
,
"
SHIP_U_WIND_COMPONENT
"
:
94
,
"
SHIP_V_WIND_COMPONENT
"
:
95
,
"
SHIP_SURFACE_PRESSURE
"
:
96
,
"
SHIP_TEMPERATURE
"
:
97
,
"
SYNOP_U_WIND_COMPONENT
"
:
98
,
"
SYNOP_V_WIND_COMPONENT
"
:
99
,
"
SYNOP_SURFACE_PRESSURE
"
:
100
,
"
SYNOP_SPECIFIC_HUMIDITY
"
:
101
,
"
SYNOP_TEMPERATURE
"
:
102
,
"
AIREP_U_WIND_COMPONENT
"
:
103
,
"
AIREP_V_WIND_COMPONENT
"
:
104
,
"
AIREP_PRESSURE
"
:
105
,
"
AIREP_TEMPERATURE
"
:
106
,
"
AMDAR_U_WIND_COMPONENT
"
:
107
,
"
AMDAR_V_WIND_COMPONENT
"
:
108
,
"
AMDAR_PRESSURE
"
:
109
,
"
AMDAR_TEMPERATURE
"
:
110
,
"
PILOT_U_WIND_COMPONENT
"
:
111
,
"
PILOT_V_WIND_COMPONENT
"
:
112
,
"
PILOT_PRESSURE
"
:
113
,
"
PILOT_TEMPERATURE
"
:
114
,
"
BOGUS_U_WIND_COMPONENT
"
:
115
,
"
BOGUS_V_WIND_COMPONENT
"
:
116
,
"
BOGUS_PRESSURE
"
:
117
,
"
BOGUS_TEMPERATURE
"
:
118
,
"
PROFILER_U_WIND_COMPONENT
"
:
119
,
"
PROFILER_V_WIND_COMPONENT
"
:
120
,
"
PROFILER_PRESSURE
"
:
121
,
"
SATEM_THICKNESS
"
:
122
,
"
NOAA_1_VTPR1_RADIANCE
"
:
123
,
"
NOAA_2_VTPR1_RADIANCE
"
:
124
,
"
NOAA_3_VTPR1_RADIANCE
"
:
125
,
"
NOAA_4_VTPR1_RADIANCE
"
:
126
,
"
NOAA_5_HIRS_RADIANCE
"
:
127
,
"
NOAA_5_MSU_TB
"
:
128
,
"
NOAA_5_AVHRR_RADIANCE
"
:
129
,
"
NOAA_6_HIRS_RADIANCE
"
:
130
,
"
NOAA_6_MSU_TB
"
:
131
,
"
NOAA_6_AVHRR_RADIANCE
"
:
132
,
"
NOAA_7_HIRS_RADIANCE
"
:
133
,
"
NOAA_7_MSU_TB
"
:
134
,
"
NOAA_7_AVHRR_RADIANCE
"
:
135
,
"
NOAA_8_HIRS_RADIANCE
"
:
136
,
"
NOAA_8_MSU_TB
"
:
137
,
"
NOAA_8_AVHRR_RADIANCE
"
:
138
,
"
NOAA_9_HIRS_RADIANCE
"
:
139
,
"
NOAA_9_MSU_TB
"
:
140
,
"
NOAA_9_AVHRR_RADIANCE
"
:
141
,
"
NOAA_10_HIRS_RADIANCE
"
:
142
,
"
NOAA_10_MSU_TB
"
:
143
,
"
NOAA_10_AVHRR_RADIANCE
"
:
144
,
"
NOAA_11_HIRS_RADIANCE
"
:
145
,
"
NOAA_11_MSU_TB
"
:
146
,
"
NOAA_11_AVHRR_RADIANCE
"
:
147
,
"
NOAA_12_HIRS_RADIANCE
"
:
148
,
"
NOAA_12_MSU_TB
"
:
149
,
"
NOAA_12_AVHRR_RADIANCE
"
:
150
,
"
NOAA_13_AVHRR_RADIANCE
"
:
151
,
"
NOAA_14_HIRS_RADIANCE
"
:
152
,
"
NOAA_14_MSU_TB
"
:
153
,
"
NOAA_14_AVHRR_RADIANCE
"
:
154
,
"
NOAA_15_HIRS_RADIANCE
"
:
155
,
"
NOAA_15_AMSUA_TB
"
:
156
,
"
NOAA_15_AMSUB_TB
"
:
157
,
"
NOAA_15_AVHRR_RADIANCE
"
:
158
,
"
NOAA_16_HIRS_RADIANCE
"
:
159
,
"
NOAA_16_AMSUA_TB
"
:
160
,
"
NOAA_16_AMSUB_TB
"
:
161
,
"
NOAA_16_AVHRR_RADIANCE
"
:
162
,
"
NOAA_17_HIRS_RADIANCE
"
:
163
,
"
NOAA_17_AMSUA_TB
"
:
164
,
"
NOAA_17_AMSUB_TB
"
:
165
,
"
NOAA_17_AVHRR_RADIANCE
"
:
166
,
"
NOAA_18_HIRS_RADIANCE
"
:
167
,
"
NOAA_18_AMSUA_TB
"
:
168
,
"
NOAA_18_AVHRR_RADIANCE
"
:
169
,
"
NOAA_18_MHS_TB
"
:
170
,
"
NOAA_19_HIRS_RADIANCE
"
:
171
,
"
NOAA_19_AMSUA_TB
"
:
172
,
"
NOAA_19_AVHRR_RADIANCE
"
:
173
,
"
NOAA_19_MHS_TB
"
:
174
,
"
NOAA_20_ATMS_TB
"
:
175
,
"
NOAA_20_VIIRS_RADIANCE
"
:
176
,
"
DMSP_8_SSMI_TB
"
:
177
,
"
DMSP_9_SSMI_TB
"
:
178
,
"
DMSP_10_SSMI_TB
"
:
179
,
"
DMSP_11_SSMI_TB
"
:
180
,
"
DMSP_11_SSMT2_TB
"
:
181
,
"
DMSP_12_SSMI_TB
"
:
182
,
"
DMSP_12_SSMT2_TB
"
:
183
,
"
DMSP_13_SSMI_TB
"
:
184
,
"
DMSP_14_SSMI_TB
"
:
185
,
"
DMSP_14_SSMT2_TB
"
:
186
,
"
DMSP_15_SSMI_TB
"
:
187
,
"
DMSP_15_SSMT2_TB
"
:
188
,
"
DMSP_16_SSMIS_TB
"
:
189
,
"
DMSP_17_SSMIS_TB
"
:
190
,
"
DMSP_18_SSMIS_TB
"
:
191
,
"
DMSP_19_SSMIS_TB
"
:
192
,
"
METEOSAT_1_MVIRI_RADIANCE
"
:
193
,
"
METEOSAT_2_MVIRI_RADIANCE
"
:
194
,
"
METEOSAT_3_MVIRI_RADIANCE
"
:
195
,
"
METEOSAT_4_MVIRI_RADIANCE
"
:
196
,
"
METEOSAT_5_MVIRI_RADIANCE
"
:
197
,
"
METEOSAT_6_MVIRI_RADIANCE
"
:
198
,
"
METEOSAT_7_MVIRI_RADIANCE
"
:
199
,
"
GOES_4_SOUNDER_RADIANCE
"
:
200
,
"
GOES_5_SOUNDER_RADIANCE
"
:
201
,
"
GOES_6_SOUNDER_RADIANCE
"
:
202
,
"
GOES_7_SOUNDER_RADIANCE
"
:
203
,
"
GOES_8_IMAGER_RADIANCE
"
:
204
,
"
GOES_8_SOUNDER_RADIANCE
"
:
205
,
"
GOES_9_IMAGER_RADIANCE
"
:
206
,
"
GOES_9_SOUNDER_RADIANCE
"
:
207
,
"
GOES_10_IMAGER_RADIANCE
"
:
208
,
"
GOES_10_SOUNDER_RADIANCE
"
:
209
,
"
GOES_11_IMAGER_RADIANCE
"
:
210
,
"
GOES_11_SOUNDER_RADIANCE
"
:
211
,
"
GOES_12_IMAGER_RADIANCE
"
:
212
,
"
GOES_12_SOUNDER_RADIANCE
"
:
213
,
"
GOES_13_IMAGER_RADIANCE
"
:
214
,
"
GOES_13_SOUNDER_RADIANCE
"
:
215
,
"
GOES_14_IMAGER_RADIANCE
"
:
216
,
"
GOES_14_SOUNDER_RADIANCE
"
:
217
,
"
GOES_15_IMAGER_RADIANCE
"
:
218
,
"
GOES_15_SOUNDER_RADIANCE
"
:
219
,
"
GOES_16_ABI_RADIANCE
"
:
220
,
"
GOES_17_ABI_RADIANCE
"
:
221
,
"
GOES_18_ABI_RADIANCE
"
:
222
,
"
GOES_19_ABI_RADIANCE
"
:
223
,
"
GMS_1_IMAGER_RADIANCE
"
:
224
,
"
GMS_2_IMAGER_RADIANCE
"
:
225
,
"
GMS_3_IMAGER_RADIANCE
"
:
226
,
"
GMS_4_IMAGER_RADIANCE
"
:
227
,
"
GMS_5_IMAGER_RADIANCE
"
:
228
,
"
FY2_2_VISSR_RADIANCE
"
:
229
,
"
FY2_3_VISSR_RADIANCE
"
:
230
,
"
FY2_4_VISSR_RADIANCE
"
:
231
,
"
FY2_5_VISSR_RADIANCE
"
:
232
,
"
FY2_7_VISSR_RADIANCE
"
:
233
,
"
TRMM_1_TMI_TB
"
:
234
,
"
ERS_1_ATSR_RADIANCE
"
:
235
,
"
ERS_1_MWR_TB
"
:
236
,
"
ERS_2_ATSR_RADIANCE
"
:
237
,
"
ERS_2_MWR_TB
"
:
238
,
"
EOS_1_MODIS_RADIANCE
"
:
239
,
"
EOS_1_ASTER_RADIANCE
"
:
240
,
"
EOS_2_AMSUA_TB
"
:
241
,
"
EOS_2_AIRS_RADIANCE
"
:
242
,
"
EOS_2_HSB_TB
"
:
243
,
"
EOS_2_MODIS_RADIANCE
"
:
244
,
"
EOS_2_AMSRE_TB
"
:
245
,
"
METOP_1_HIRS_RADIANCE
"
:
246
,
"
METOP_1_AMSUA_TB
"
:
247
,
"
METOP_1_AVHRR_RADIANCE
"
:
248
,
"
METOP_1_MHS_TB
"
:
249
,
"
METOP_2_HIRS_RADIANCE
"
:
250
,
"
METOP_2_AMSUA_TB
"
:
251
,
"
METOP_2_AVHRR_RADIANCE
"
:
252
,
"
METOP_2_MHS_TB
"
:
253
,
"
METOP_3_AVHRR_RADIANCE
"
:
254
,
"
ENVISAT_1_ATSR_RADIANCE
"
:
255
,
"
ENVISAT_1_MWR_TB
"
:
256
,
"
MSG_1_SEVIRI_RADIANCE
"
:
257
,
"
MSG_2_SEVIRI_RADIANCE
"
:
258
,
"
MSG_3_SEVIRI_RADIANCE
"
:
259
,
"
MSG_4_SEVIRI_RADIANCE
"
:
260
,
"
MSG_4_SEVIRI_TB
"
:
261
,
"
MSG_4_SEVIRI_BDRF
"
:
262
,
"
FY1_3_MVISR_RADIANCE
"
:
263
,
"
FY1_4_MVISR_RADIANCE
"
:
264
,
"
MTSAT_1_IMAGER_RADIANCE
"
:
265
,
"
MTSAT_2_IMAGER_RADIANCE
"
:
266
,
"
CORIOLIS_1_WINDSAT_TB
"
:
267
,
"
JPSS_0_ATMS_TB
"
:
268
,
"
JPSS_0_VIIRS_RADIANCE
"
:
269
,
"
SENTINEL3_1_SLSTR_RADIANCE
"
:
270
,
"
SENTINEL3_2_SLSTR_RADIANCE
"
:
271
,
"
MEGHATR_1_SAPHIR_TB
"
:
272
,
"
MEGHATR_1_MADRAS_TB
"
:
273
,
"
FY3_1_MWTS_TB
"
:
274
,
"
FY3_1_MWHS_TB
"
:
275
,
"
FY3_1_IRAS_RADIANCE
"
:
276
,
"
FY3_1_MWRI_TB
"
:
277
,
"
FY3_2_MWTS_TB
"
:
278
,
"
FY3_2_MWHS_TB
"
:
279
,
"
FY3_2_MWRI_TB
"
:
280
,
"
FY3_3_MWRI_TB
"
:
281
,
"
FY3_3_MWTS2_TB
"
:
282
,
"
FY3_3_MWHS2_TB
"
:
283
,
"
FY3_3_MERSI1_RADIANCE
"
:
284
,
"
FY3_4_MWRI_TB
"
:
285
,
"
FY3_4_MWTS2_TB
"
:
286
,
"
FY3_4_MWHS2_TB
"
:
287
,
"
FY3_4_MERSI2_RADIANCE
"
:
288
,
"
COMS_1_MI_RADIANCE
"
:
289
,
"
METEOR_M_1_MSUMR_RADIANCE
"
:
290
,
"
METEOR_M_2_MSUMR_RADIANCE
"
:
291
,
"
METEOR_M_2_MTVZAGY_TB
"
:
292
,
"
CALIPSO_1_IIR_RADIANCE
"
:
293
,
"
GCOM_W_1_AMSR2_TB
"
:
294
,
"
NIMBUS_3_MRIR_RADIANCE
"
:
295
,
"
NIMBUS_4_THIR_RADIANCE
"
:
296
,
"
NIMBUS_5_THIR_RADIANCE
"
:
297
,
"
NIMBUS_6_HIRS_RADIANCE
"
:
298
,
"
NIMBUS_6_SCAMS_TB
"
:
299
,
"
NIMBUS_6_THIR_RADIANCE
"
:
300
,
"
NIMBUS_7_SMMR_TB
"
:
301
,
"
NIMBUS_7_THIR_RADIANCE
"
:
302
,
"
HIMAWARI_8_AHI_RADIANCE
"
:
303
,
"
HIMAWARI_9_AHI_RADIANCE
"
:
304
,
"
MTG_1_FCI_RADIANCE
"
:
305
,
"
SARAL_1_ALTIKA_TB
"
:
306
,
"
METOPSG_1_ICI_TB
"
:
307
,
"
METOPSG_1_METIMAGE_RADIANCE
"
:
308
,
"
METOPSG_1_MWS_TB
"
:
309
,
"
METOPSG_1_MWI_TB
"
:
310
,
"
LANDSAT_4_TM_RADIANCE
"
:
311
,
"
LANDSAT_5_TM_RADIANCE
"
:
312
,
"
LANDSAT_7_TM_RADIANCE
"
:
313
,
"
LANDSAT_8_TIRS_RADIANCE
"
:
314
,
"
JASON_2_AMR_TB
"
:
315
,
"
GPM_1_GMI_TB
"
:
316
,
"
GPM_1_DPR_TB
"
:
317
,
"
INSAT3_4_IMAGER_RADIANCE
"
:
318
,
"
INSAT3_4_SOUNDER_RADIANCE
"
:
319
,
"
INSAT3_5_IMAGER_RADIANCE
"
:
320
,
"
INSAT3_5_SOUNDER_RADIANCE
"
:
321
,
"
TICFIRE_1_MBFIRI_RADIANCE
"
:
322
,
"
ISS_1_ECOSTRES_RADIANCE
"
:
323
,
"
HJ1_2_IRMSS_RADIANCE
"
:
324
,
"
GKOMPSAT2_1_AMI_RADIANCE
"
:
325
,
"
GCOM_C_1_SGLI_RADIANCE
"
:
326
,
"
SMOS_1_MIRAS_TB
"
:
327
,
"
ORS_6_COWVR_TB
"
:
328
,
"
FY4_1_AGRI_RADIANCE
"
:
329
,
"
TROPICS_0_TROPICS_TB
"
:
330
,
"
GF5_1_VIMS_RADIANCE
"
:
331
,
"
HY2_1_MWRI_TB
"
:
332
,
"
CLOUDSAT_1_CPR_TB
"
:
333
,
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
dartwrf/create_obsseq.py
+
1
−
1
View file @
04084847
...
...
@@ -15,7 +15,7 @@ from dartwrf.obs import calculate_obs_locations as col
#####################
# Global variables
obs
_
kind
_nrs
=
csv
.
DictReader
(
open
(
"
config/
obskind
.csv
"
))
# DART internal indices
from
config.
obskind
import
obs
_
kind
_nrs
# DART internal indices
# position on earth for RTTOV ray geometry
lat0
=
45.
...
...
This diff is collapsed.
Click to expand it.
dartwrf/workflows.py
+
7
−
4
View file @
04084847
...
...
@@ -15,10 +15,13 @@ from config.cfg import exp
def
dict_to_
csv
(
d
,
outfile
):
def
dict_to_
py
(
d
,
outfile
):
with
open
(
outfile
,
'
w
'
)
as
f
:
for
key
in
d
.
keys
():
f
.
write
(
"
%s,%s
\n
"
%
(
key
,
d
[
key
]))
txt
=
'
# this file is autogenerated
\n
obs_kind_nrs = {
'
for
k
,
v
in
d
.
items
():
txt
+=
'"'
+
k
+
'"
:
'
+
str
(
v
)
+
'
,
\n
'
txt
+=
'
}
'
f
.
write
(
txt
)
class
WorkFlows
(
object
):
def
__init__
(
self
,
exp_config
=
'
cfg.py
'
,
server_config
=
'
server.py
'
):
...
...
@@ -69,7 +72,7 @@ class WorkFlows(object):
obskind_nrs
[
kind_str
]
=
kind_nr
return
obskind_nrs
dict_to_
csv
(
obskind_read
(),
self
.
cluster
.
scriptsdir
+
'
/../config/obskind.
csv
'
)
dict_to_
py
(
obskind_read
(),
self
.
cluster
.
scriptsdir
+
'
/../config/obskind.
py
'
)
# Copy scripts to self.cluster.archivedir folder
os
.
makedirs
(
self
.
cluster
.
archivedir
,
exist_ok
=
True
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment