IODA Bundle
ufo_variables_mod.F90
Go to the documentation of this file.
1 !
2 ! (C) Copyright 2017-2019 UCAR
3 !
4 ! This software is licensed under the terms of the Apache Licence Version 2.0
5 ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6 !
7 
9 
10 implicit none
11 private
12 public :: ufo_vars_getindex
13 
14 INTEGER, PARAMETER, PUBLIC :: n_aerosols_gocart_default=14,&
15  &n_aerosols_gocart_esrl=15,n_aerosols_other=1
16 
17 integer, parameter, public :: maxvarlen=60
18 character(len=MAXVARLEN), public, parameter :: var_tv = "virtual_temperature"
19 character(len=MAXVARLEN), public, parameter :: var_ts = "air_temperature"
20 character(len=MAXVARLEN), public, parameter :: var_t = "temperature"
21 character(len=MAXVARLEN), public, parameter :: var_mixr = "humidity_mixing_ratio"
22 character(len=MAXVARLEN), public, parameter :: var_q = "specific_humidity"
23 character(len=MAXVARLEN), public, parameter :: var_u = "eastward_wind"
24 character(len=MAXVARLEN), public, parameter :: var_v = "northward_wind"
25 character(len=MAXVARLEN), public, parameter :: var_prs = "air_pressure"
26 character(len=MAXVARLEN), public, parameter :: var_prsi = "air_pressure_levels"
27 character(len=MAXVARLEN), public, parameter :: var_delp = "air_pressure_thickness"
28 character(len=MAXVARLEN), public, parameter :: var_ps = "surface_pressure"
29 character(len=MAXVARLEN), public, parameter :: var_z = "geopotential_height"
30 character(len=MAXVARLEN), public, parameter :: var_zi = "geopotential_height_levels"
31 character(len=MAXVARLEN), public, parameter :: var_sfc_z= "surface_geopotential_height"
32 character(len=MAXVARLEN), public, parameter :: var_oz = "mole_fraction_of_ozone_in_air"
33 character(len=MAXVARLEN), public, parameter :: var_co2 = "mole_fraction_of_carbon_dioxide_in_air"
34 character(len=MAXVARLEN), public, parameter :: var_clw = "mass_content_of_cloud_liquid_water_in_atmosphere_layer"
35 character(len=MAXVARLEN), public, parameter :: var_cli = "mass_content_of_cloud_ice_in_atmosphere_layer"
36 character(len=MAXVARLEN), public, parameter :: var_clr = "mass_content_of_rain_in_atmosphere_layer"
37 character(len=MAXVARLEN), public, parameter :: var_cls = "mass_content_of_snow_in_atmosphere_layer"
38 character(len=MAXVARLEN), public, parameter :: var_clg = "mass_content_of_graupel_in_atmosphere_layer"
39 character(len=MAXVARLEN), public, parameter :: var_clh = "mass_content_of_hail_in_atmosphere_layer"
40 character(len=MAXVARLEN), public, parameter :: var_clwefr = "effective_radius_of_cloud_liquid_water_particle"
41 character(len=MAXVARLEN), public, parameter :: var_cliefr = "effective_radius_of_cloud_ice_particle"
42 character(len=MAXVARLEN), public, parameter :: var_clrefr = "effective_radius_of_rain_particle"
43 character(len=MAXVARLEN), public, parameter :: var_clsefr = "effective_radius_of_snow_particle"
44 character(len=MAXVARLEN), public, parameter :: var_clgefr = "effective_radius_of_graupel_particle"
45 character(len=MAXVARLEN), public, parameter :: var_clhefr = "effective_radius_of_hail_particle"
46 character(len=MAXVARLEN), public, parameter :: var_cldfrac= "cloud_area_fraction_in_atmosphere_layer"
47 character(len=MAXVARLEN), public, parameter :: var_sfc_wfrac = "water_area_fraction"
48 character(len=MAXVARLEN), public, parameter :: var_sfc_lfrac = "land_area_fraction"
49 character(len=MAXVARLEN), public, parameter :: var_sfc_ifrac = "ice_area_fraction"
50 character(len=MAXVARLEN), public, parameter :: var_sfc_sfrac = "surface_snow_area_fraction"
51 character(len=MAXVARLEN), public, parameter :: var_sfc_wtmp = "surface_temperature_where_sea"
52 character(len=MAXVARLEN), public, parameter :: var_sfc_ltmp = "surface_temperature_where_land"
53 character(len=MAXVARLEN), public, parameter :: var_sfc_itmp = "surface_temperature_where_ice"
54 character(len=MAXVARLEN), public, parameter :: var_sfc_stmp = "surface_temperature_where_snow"
55 character(len=MAXVARLEN), public, parameter :: var_sfc_sdepth = "surface_snow_thickness"
56 character(len=MAXVARLEN), public, parameter :: var_sfc_vegfrac = "vegetation_area_fraction"
57 character(len=MAXVARLEN), public, parameter :: var_sfc_wspeed = "surface_wind_speed"
58 character(len=MAXVARLEN), public, parameter :: var_sfc_wdir = "surface_wind_from_direction"
59 character(len=MAXVARLEN), public, parameter :: var_sfc_lai = "leaf_area_index"
60 character(len=MAXVARLEN), public, parameter :: var_sfc_soilm = "volume_fraction_of_condensed_water_in_soil"
61 character(len=MAXVARLEN), public, parameter :: var_sfc_soilt = "soil_temperature"
62 character(len=MAXVARLEN), public, parameter :: var_sfc_landtyp = "land_type_index"
63 character(len=MAXVARLEN), public, parameter :: var_sfc_vegtyp = "vegetation_type_index"
64 character(len=MAXVARLEN), public, parameter :: var_sfc_soiltyp = "soil_type"
65 character(len=MAXVARLEN), public, parameter :: var_geomz = "height"
66 character(len=MAXVARLEN), public, parameter :: var_sfc_geomz = "surface_altitude"
67 character(len=MAXVARLEN), public, parameter :: var_sfc_rough = "surface_roughness_length"
68 character(len=MAXVARLEN), public, parameter :: var_sfc_t = "surface_temperature"
69 character(len=MAXVARLEN), public, parameter :: var_sfc_fact10 = "wind_reduction_factor_at_10m"
70 character(len=MAXVARLEN), public, parameter :: var_sfc_emiss = "surface_emissivity"
71 character(len=MAXVARLEN), public, parameter :: var_sfc_sss = "sea_surface_salinity"
72 character(len=MAXVARLEN), public, parameter :: var_opt_depth = "optical_thickness_of_atmosphere_layer"
73 character(len=MAXVARLEN), public, parameter :: var_radiance = "toa_outgoing_radiance_per_unit_wavenumber"
74 character(len=MAXVARLEN), public, parameter :: var_tb = "brightness_temperature"
75 character(len=MAXVARLEN), public, parameter :: var_tb_clr = "brightness_temperature_assuming_clear_sky"
76 character(len=MAXVARLEN), public, parameter :: var_lvl_transmit= "transmittances_of_atmosphere_layer"
77 character(len=MAXVARLEN), public, parameter :: var_lvl_weightfunc= "weightingfunction_of_atmosphere_layer"
78 character(len=MAXVARLEN), public, parameter :: var_pmaxlev_weightfunc= "pressure_level_at_peak_of_weightingfunction"
79 character(len=MAXVARLEN), public, parameter :: var_tsavg5 = "average_surface_temperature_within_field_of_view"
80 
81 
82 character(len=MAXVARLEN), public, parameter :: var_refl = "equivalent_reflectivity_factor"
83 character(len=MAXVARLEN), public, parameter :: var_w = "upward_air_velocity"
84 
85 !@mzp strings have to be same MAXVARLEN length for array constructor
86 CHARACTER(len=MAXVARLEN), public, parameter :: var_rh = "relative_humidity"
87 
88 CHARACTER(len=MAXVARLEN), DIMENSION(n_aerosols_gocart_default), PUBLIC, PARAMETER :: &
89  &var_aerosols_gocart_default = [&
90  &"sulf ",&
91  &"bc1 ",&
92  &"bc2 ",&
93  &"oc1 ",&
94  &"oc2 ",&
95  &"dust1 ",&
96  &"dust2 ",&
97  &"dust3 ",&
98  &"dust4 ",&
99  &"dust5 ",&
100  &"seas1 ",&
101  &"seas2 ",&
102  &"seas3 ",&
103  &"seas4 "]
104 !@mzp var_aerosols_gocart_esrl =[&
105 ! &var_aerosols_gocart_default,&
106 ! &"p25 "]
107 ! won't compile
108 CHARACTER(len=MAXVARLEN), DIMENSION(n_aerosols_gocart_esrl), PUBLIC, PARAMETER :: &
109  &var_aerosols_gocart_esrl = [&
110  &"sulf ",&
111  &"bc1 ",&
112  &"bc2 ",&
113  &"oc1 ",&
114  &"oc2 ",&
115  &"dust1 ",&
116  &"dust2 ",&
117  &"dust3 ",&
118  &"dust4 ",&
119  &"dust5 ",&
120  &"seas1 ",&
121  &"seas2 ",&
122  &"seas3 ",&
123  &"seas4 ",&
124  &"p25 "]
125 
126 CHARACTER(len=MAXVARLEN), DIMENSION(n_aerosols_other), PUBLIC, PARAMETER :: &
127  &var_aerosols_other = [&
128  &"other "]
129 
130 character(len=MAXVARLEN), public :: var_seaicefrac = "sea_ice_category_area_fraction"
131 character(len=MAXVARLEN), public :: var_seaicethick = "sea_ice_category_thickness"
132 character(len=MAXVARLEN), public :: var_seaicesnowthick = "sea_ice_category_snow_thickness"
133 character(len=MAXVARLEN), public :: var_abs_topo = "sea_surface_height_above_geoid"
134 character(len=MAXVARLEN), public :: var_ocn_pot_temp = "sea_water_potential_temperature"
135 character(len=MAXVARLEN), public :: var_ocn_con_temp = "sea_water_conservative_temperature"
136 character(len=MAXVARLEN), public :: var_ocn_abs_salt = "sea_water_absolute_salinity"
137 character(len=MAXVARLEN), public :: var_ocn_pra_salt = "sea_water_practical_salinity"
138 character(len=MAXVARLEN), public :: var_ocn_salt = "sea_water_salinity"
139 character(len=MAXVARLEN), public :: var_ocn_lay_thick = "sea_water_cell_thickness"
140 character(len=MAXVARLEN), public :: var_ocn_sst = "sea_surface_temperature"
141 character(len=MAXVARLEN), public :: var_sea_td = "sea_surface_foundation_temperature"
142 character(len=MAXVARLEN), public :: var_latent_vap = "latent_heat_vaporization"
143 character(len=MAXVARLEN), public :: var_sw_rad = "net_downwelling_shortwave_radiation"
144 character(len=MAXVARLEN), public :: var_latent_heat = "upward_latent_heat_flux_in_air"
145 character(len=MAXVARLEN), public :: var_sens_heat = "upward_sensible_heat_flux_in_air"
146 character(len=MAXVARLEN), public :: var_lw_rad = "net_downwelling_longwave_radiation"
147 character(len=MAXVARLEN), public :: var_sea_fric_vel = "friction_velocity_over_water"
148 
149 character(len=MAXVARLEN), public, parameter :: var_du001 = "mass_fraction_of_dust001_in_air"
150 character(len=MAXVARLEN), public, parameter :: var_du002 = "mass_fraction_of_dust002_in_air"
151 character(len=MAXVARLEN), public, parameter :: var_du003 = "mass_fraction_of_dust003_in_air"
152 character(len=MAXVARLEN), public, parameter :: var_du004 = "mass_fraction_of_dust004_in_air"
153 character(len=MAXVARLEN), public, parameter :: var_du005 = "mass_fraction_of_dust005_in_air"
154 character(len=MAXVARLEN), public, parameter :: var_ss001 = "mass_fraction_of_sea_salt001_in_air"
155 character(len=MAXVARLEN), public, parameter :: var_ss002 = "mass_fraction_of_sea_salt002_in_air"
156 character(len=MAXVARLEN), public, parameter :: var_ss003 = "mass_fraction_of_sea_salt003_in_air"
157 character(len=MAXVARLEN), public, parameter :: var_ss004 = "mass_fraction_of_sea_salt004_in_air"
158 character(len=MAXVARLEN), public, parameter :: var_ss005 = "mass_fraction_of_sea_salt005_in_air"
159 character(len=MAXVARLEN), public, parameter :: var_bcphobic = "mass_fraction_of_hydrophobic_black_carbon_in_air"
160 character(len=MAXVARLEN), public, parameter :: var_bcphilic = "mass_fraction_of_hydrophilic_black_carbon_in_air"
161 character(len=MAXVARLEN), public, parameter :: var_ocphobic = "mass_fraction_of_hydrophobic_organic_carbon_in_air"
162 character(len=MAXVARLEN), public, parameter :: var_ocphilic = "mass_fraction_of_hydrophilic_organic_carbon_in_air"
163 character(len=MAXVARLEN), public, parameter :: var_sulfate = "mass_fraction_of_sulfate_aerosols_in_air"
164 character(len=MAXVARLEN), public, parameter :: var_no3an1 = "mass_fraction_of_nitrate001_in_air"
165 character(len=MAXVARLEN), public, parameter :: var_no3an2 = "mass_fraction_of_nitrate002_in_air"
166 character(len=MAXVARLEN), public, parameter :: var_no3an3 = "mass_fraction_of_nitrate003_in_air"
167 
168 
169 ! ------------------------------------------------------------------------------
170 contains
171 
172 ! ------------------------------------------------------------------------------
173 
174 integer function ufo_vars_getindex(vars, varname)
175 implicit none
176 character(len=*), intent(in) :: vars(:)
177 character(len=*), intent(in) :: varname
178 
179 integer :: ivar
180 
182 
183 do ivar = 1, size(vars)
184  if (trim(vars(ivar)) == trim(varname)) then
185  ufo_vars_getindex = ivar
186  exit
187  endif
188 enddo
189 
190 end function ufo_vars_getindex
191 
192 ! ------------------------------------------------------------------------------
193 
194 end module ufo_vars_mod
character(len=maxvarlen), parameter, public var_sfc_rough
character(len=maxvarlen), parameter, public var_radiance
character(len=maxvarlen), parameter, public var_co2
character(len=maxvarlen), public var_seaicesnowthick
character(len=maxvarlen), parameter, public var_prsi
character(len=maxvarlen), public var_sens_heat
character(len=maxvarlen), parameter, public var_sfc_emiss
character(len=maxvarlen), parameter, public var_clrefr
character(len=maxvarlen), parameter, public var_clsefr
character(len=maxvarlen), parameter, public var_no3an3
character(len=maxvarlen), parameter, public var_sfc_ifrac
integer function, public ufo_vars_getindex(vars, varname)
character(len=maxvarlen), parameter, public var_cldfrac
character(len=maxvarlen), parameter, public var_oz
character(len=maxvarlen), parameter, public var_clgefr
character(len=maxvarlen), parameter, public var_clw
character(len=maxvarlen), parameter, public var_sfc_lfrac
character(len=maxvarlen), parameter, public var_cls
character(len=maxvarlen), public var_seaicethick
character(len=maxvarlen), parameter, public var_geomz
character(len=maxvarlen), public var_ocn_abs_salt
character(len=maxvarlen), parameter, public var_sfc_wtmp
character(len=maxvarlen), parameter, public var_prs
character(len=maxvarlen), parameter, public var_rh
character(len=maxvarlen), parameter, public var_du004
character(len=maxvarlen), parameter, public var_q
character(len=maxvarlen), parameter, public var_ss005
character(len=maxvarlen), parameter, public var_sfc_wfrac
character(len=maxvarlen), parameter, public var_tb_clr
character(len=maxvarlen), parameter, public var_sfc_sfrac
character(len=maxvarlen), parameter, public var_t
character(len=maxvarlen), parameter, public var_sfc_itmp
character(len=maxvarlen), parameter, public var_sfc_wdir
character(len=maxvarlen), parameter, public var_bcphilic
character(len=maxvarlen), public var_ocn_con_temp
character(len=maxvarlen), parameter, public var_sfc_soilm
integer, parameter, public n_aerosols_gocart_default
character(len=maxvarlen), public var_seaicefrac
character(len=maxvarlen), parameter, public var_clhefr
character(len=maxvarlen), parameter, public var_du005
integer, parameter, public maxvarlen
character(len=maxvarlen), parameter, public var_ocphobic
character(len=maxvarlen), parameter, public var_sfc_sdepth
character(len=maxvarlen), parameter, public var_du003
character(len=maxvarlen), parameter, public var_sfc_landtyp
character(len=maxvarlen), public var_ocn_pot_temp
character(len=maxvarlen), parameter, public var_v
character(len=maxvarlen), parameter, public var_mixr
character(len=maxvarlen), public var_latent_vap
character(len=maxvarlen), parameter, public var_clh
character(len=maxvarlen), parameter, public var_zi
character(len=maxvarlen), parameter, public var_du002
character(len=maxvarlen), public var_latent_heat
character(len=maxvarlen), public var_ocn_salt
character(len=maxvarlen), parameter, public var_lvl_transmit
character(len=maxvarlen), parameter, public var_sfc_geomz
character(len=maxvarlen), parameter, public var_tb
character(len=maxvarlen), parameter, public var_sulfate
character(len=maxvarlen), parameter, public var_bcphobic
character(len=maxvarlen), parameter, public var_sfc_stmp
character(len=maxvarlen), parameter, public var_lvl_weightfunc
character(len=maxvarlen), parameter, public var_cliefr
character(len=maxvarlen), parameter, public var_sfc_sss
character(len=maxvarlen), parameter, public var_z
character(len=maxvarlen), parameter, public var_ts
character(len=maxvarlen), parameter, public var_sfc_lai
character(len=maxvarlen), parameter, public var_ocphilic
character(len=maxvarlen), parameter, public var_clwefr
character(len=maxvarlen), parameter, public var_pmaxlev_weightfunc
character(len=maxvarlen), parameter, public var_u
character(len=maxvarlen), parameter, public var_no3an1
character(len=maxvarlen), parameter, public var_du001
character(len=maxvarlen), parameter, public var_sfc_vegtyp
character(len=maxvarlen), parameter, public var_sfc_soiltyp
character(len=maxvarlen), parameter, public var_tsavg5
character(len=maxvarlen), parameter, public var_ps
character(len=maxvarlen), public var_sea_fric_vel
character(len=maxvarlen), parameter, public var_cli
character(len=maxvarlen), parameter, public var_tv
character(len=maxvarlen), public var_lw_rad
character(len=maxvarlen), parameter, public var_ss002
character(len=maxvarlen), public var_sea_td
character(len=maxvarlen), parameter, public var_w
character(len=maxvarlen), public var_sw_rad
character(len=maxvarlen), parameter, public var_sfc_vegfrac
character(len=maxvarlen), parameter, public var_no3an2
character(len=maxvarlen), parameter, public var_clr
character(len=maxvarlen), parameter, public var_delp
character(len=maxvarlen), parameter, public var_refl
character(len=maxvarlen), parameter, public var_sfc_z
character(len=maxvarlen), parameter, public var_sfc_ltmp
character(len=maxvarlen), parameter, public var_sfc_t
character(len=maxvarlen), parameter, public var_sfc_fact10
character(len=maxvarlen), parameter, public var_opt_depth
character(len=maxvarlen), public var_ocn_sst
character(len=maxvarlen), public var_ocn_lay_thick
character(len=maxvarlen), public var_abs_topo
character(len=maxvarlen), parameter, public var_ss004
character(len=maxvarlen), parameter, public var_sfc_soilt
character(len=maxvarlen), parameter, public var_sfc_wspeed
character(len=maxvarlen), parameter, public var_ss003
character(len=maxvarlen), public var_ocn_pra_salt
character(len=maxvarlen), parameter, public var_ss001
character(len=maxvarlen), parameter, public var_clg