UFO
ufo_radiancerttov_utils_mod Module Reference

Fortran module to provide code shared between nonlinear and tlm/adm radiance calculations. More...

Data Types

type  rttov_conf
 
type  ufo_rttov_io
 

Functions/Subroutines

subroutine, public rttov_conf_setup (conf, f_confOpts, f_confOper)
 
subroutine, public rttov_conf_delete (conf)
 
subroutine, public load_atm_data_rttov (geovals, obss, profiles, prof_start, conf, layer_quantities, obs_info)
 
subroutine, public load_geom_data_rttov (obss, profiles, prof_start1, obs_info)
 
subroutine set_options_rttov (self, f_confOpts)
 
subroutine setup_rttov (self, f_confOpts, asw)
 
subroutine get_var_name (n, varname)
 
subroutine alloc_rttov (self, errorstatus, conf, nprofiles, nchannels, nlevels, init, asw)
 
subroutine, public ufo_rttov_skip_profiles (nprofiles, nchannels, channels, obss, Skip_Profiles)
 
subroutine ufo_rttov_init_emissivity (self, conf)
 
subroutine set_defaults_rttov (self, default_opts_set)
 
subroutine, public populate_hofxdiags (RTProf, chanprof, hofxdiags)
 
subroutine, public parse_hofxdiags (hofxdiags, jacobian_needed)
 
subroutine ops_satrad_qsplit (output_type, p, t, qtotal, q, ql, qi, UseQtSplitRain)
 

Variables

integer, parameter, public max_string =800
 
integer, parameter, public maxvarin = 50
 
character(len=maxvarlen), dimension(maxvarin), public varin_temp
 
character(len=max_string), public message
 
integer, public nvars_in
 
integer, public rttov_errorstatus
 
character(len=maxvarlen), dimension(:), allocatable ystr_diags
 
character(len=maxvarlen), dimension(:), allocatable xstr_diags
 
integer, dimension(:), allocatable ch_diags
 
real(c_double) missing
 
character(len=maxvarlen), dimension(21), target varin_default_crtm = (/var_ts, var_prs, var_prsi, var_sfc_wfrac, var_sfc_lfrac, var_sfc_ifrac, var_sfc_sfrac, var_sfc_wtmp, var_sfc_ltmp, var_sfc_itmp, var_sfc_stmp, var_sfc_vegfrac, var_sfc_wspeed, var_sfc_wdir, var_sfc_lai, var_sfc_soilm, var_sfc_soilt, var_sfc_landtyp, var_sfc_vegtyp, var_sfc_soiltyp, var_sfc_sdepth/)
 
character(len=maxvarlen), dimension(11), target varin_default_satrad = (/var_prs, var_ts, var_q, var_sfc_t2m, var_u, var_v, var_sfc_p2m, var_sfc_q2m, var_sfc_tskin, var_water_type_rttov, var_surf_type_rttov /)
 
character(len=maxvarlen), dimension(:), pointer, public varin_default
 
character(len= *), dimension(ngases_max+1), parameter rttov_absorbers = [gas_name(1:ngases_max),'CLW']
 
integer, dimension(ngases_max+1), parameter rttov_absorber_id = [gas_id_mixed, gas_id_watervapour, gas_id_ozone, gas_id_wvcont, gas_id_co2, gas_id_n2o, gas_id_co, gas_id_ch4, gas_id_so2, 99]
 
character(len=maxvarlen), parameter null_str = ''
 
character(len=maxvarlen), dimension(ngases_max+1), parameter ufo_absorbers = [ null_str, var_mixr, var_oz, null_str, var_co2, 'mole_fraction_of_nitrous_oxide_in_air', 'mole_fraction_of_carbon_monoxide_in_air', 'mole_fraction_of_methane_in_air', 'mole_fraction_of_sulfur_dioxide_in_air', var_clw]
 
integer, public nchan_inst
 
integer, public nchan_sim
 
integer, public nlocs_total
 
logical, public debug
 
integer iprof
 

Detailed Description

Fortran module to provide code shared between nonlinear and tlm/adm radiance calculations.

Function/Subroutine Documentation

◆ alloc_rttov()

subroutine ufo_radiancerttov_utils_mod::alloc_rttov ( class(ufo_rttov_io), intent(inout)  self,
integer, intent(out)  errorstatus,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  nprofiles,
integer, intent(in)  nchannels,
integer, intent(in)  nlevels,
logical, intent(in), optional  init,
integer, intent(in)  asw 
)
private

Definition at line 1170 of file ufo_radiancerttov_utils_mod.F90.

◆ get_var_name()

subroutine ufo_radiancerttov_utils_mod::get_var_name ( integer, intent(in)  n,
character(len=*), intent(out)  varname 
)
private

Definition at line 1157 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ load_atm_data_rttov()

subroutine, public ufo_radiancerttov_utils_mod::load_atm_data_rttov ( type(ufo_geovals), intent(in)  geovals,
type(c_ptr), intent(in), value  obss,
type(rttov_profile), dimension(:), intent(inout)  profiles,
integer, intent(in)  prof_start,
type(rttov_conf), intent(in)  conf,
logical, intent(inout)  layer_quantities,
logical, intent(in), optional  obs_info 
)

Definition at line 317 of file ufo_radiancerttov_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_geom_data_rttov()

subroutine, public ufo_radiancerttov_utils_mod::load_geom_data_rttov ( type(c_ptr), intent(in), value  obss,
type(rttov_profile), dimension(:), intent(inout)  profiles,
integer, intent(in), optional  prof_start1,
logical, intent(in), optional  obs_info 
)

Definition at line 778 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ ops_satrad_qsplit()

subroutine ufo_radiancerttov_utils_mod::ops_satrad_qsplit ( integer, intent(in)  output_type,
real(kind_real), dimension(:), intent(in)  p,
real(kind_real), dimension(:), intent(in)  t,
real(kind_real), dimension(:), intent(in)  qtotal,
real(kind_real), dimension(size(qtotal)), intent(out)  q,
real(kind_real), dimension(size(qtotal)), intent(out)  ql,
real(kind_real), dimension(size(qtotal)), intent(out)  qi,
logical, intent(in)  UseQtSplitRain 
)
private

Definition at line 1800 of file ufo_radiancerttov_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_hofxdiags()

subroutine, public ufo_radiancerttov_utils_mod::parse_hofxdiags ( type(ufo_geovals), intent(inout)  hofxdiags,
logical, intent(out)  jacobian_needed 
)

Definition at line 1725 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ populate_hofxdiags()

subroutine, public ufo_radiancerttov_utils_mod::populate_hofxdiags ( type(ufo_rttov_io), intent(in)  RTProf,
type(rttov_chanprof), dimension(:), intent(in)  chanprof,
type(ufo_geovals), intent(inout)  hofxdiags 
)

Definition at line 1546 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ rttov_conf_delete()

subroutine, public ufo_radiancerttov_utils_mod::rttov_conf_delete ( type(rttov_conf), intent(inout)  conf)

Definition at line 304 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ rttov_conf_setup()

subroutine, public ufo_radiancerttov_utils_mod::rttov_conf_setup ( type(rttov_conf), intent(inout)  conf,
type(fckit_configuration), intent(in)  f_confOpts,
type(fckit_configuration), intent(in)  f_confOper 
)

Definition at line 160 of file ufo_radiancerttov_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_defaults_rttov()

subroutine ufo_radiancerttov_utils_mod::set_defaults_rttov ( class(rttov_conf), intent(inout)  self,
character(8), intent(in)  default_opts_set 
)
private
Parameters
[in]default_opts_setSwitch to enable atmospheric refraction
[in]default_opts_setSwitch for input units in AD/K models
[in]default_opts_setSwitch to enable use of 2m q variable
[in]default_opts_setSwitch for setting Lambertian reflection (IR and MW)
[in]default_opts_setSwitch for fixed/parameterised effective angle for Lambertian option
[in]default_opts_setSwitch to ignore atmospheric curvature
[in]default_opts_setLinear-in-tau or layer-mean for downwelling radiances
[in]default_opts_setSwitch to apply dtau test in transmit/integrate calculations
[in]default_opts_setSolar sea BRDF model (1-2)
[in]default_opts_setIR sea emissivity model (1-2)
[in]default_opts_setSwitch to enable solar simulations
[in]default_opts_setSwitch to enable Rayleigh single-scattering for VIS/NIR channels
[in]default_opts_setSwitch to enable NLTE bias correction
[in]default_opts_setSwitch to enable IR aerosol calculations
[in]default_opts_setSwitch to supply aerosol optical properties explicitly per channel
[in]default_opts_setSwitch to enable IR cloudy calculations
[in]default_opts_setSwitch to supply cloud optical properties explicitly per channel
[in]default_opts_setSwitch to supply grid-box average cloud concentration or cloud concentration in cloudy fraction of each layer
[in]default_opts_setIgnore cloud streams with weights lower than this
[in]default_opts_setSwitch for simplified cloud stream option - USE WITH CAUTION
[in]default_opts_setUpper pressure limit for cldstr_simple option (hPa)
[in]default_opts_setIR scattering model to use
[in]default_opts_setVIS/NIR scattering model to use
[in]default_opts_setNumber of DOM streams, must be even and not less than 2
[in]default_opts_setConvergence criterion for termination of DOM azimuthal loop
[in]default_opts_setDOM ignores levels below this optical depth:
  1. is reasonable, not applied if < = 0
[in]default_opts_setSwitch to enable input of O3 profile
[in]default_opts_setSwitch to enable input of CO2 profile
[in]default_opts_setSwitch to enable input of N2O profile
[in]default_opts_setSwitch to enable input of CO profile
[in]default_opts_setSwitch to enable input of CH4 profile
[in]default_opts_setSwitch to enable input of SO2 profile
[in]default_opts_setSwitch to enable PC-RTTOV
[in]default_opts_setPC spectral band
[in]default_opts_setPC predictor channel set
[in]default_opts_setNumber of PC scores to compute, if less than 1 npcscores is derived from the size of the pccomppcscores array
[in]default_opts_setSwitch for calculation of reconstructed radiances
[in]default_opts_setFASTEM version (0-6); 0 => TESSEM2
[in]default_opts_setSupply a foam fraction to FASTEM
[in]default_opts_setSwitch to enable input of cloud liquid water profile
[in]default_opts_setMW CLW scheme: 1 => Liebe, 2 => Rosenkranz, 3 => TKC
[in]default_opts_setApply MW CLW calculations on coef/user levels (true/false resp.)
[in]default_opts_setLower pressure limit for MW CLW calculations (hPa)
[in]default_opts_setApply band-correction for Planck radiance and BT calculations
[in]default_opts_setSwitch to enable RTTOV interpolator
[in]default_opts_setInterpolation mode (1-5, see user guide)
[in]default_opts_setSwitch to make pressure an active variable in TL/AD/K models
[in]default_opts_setSwitch to assume space boundary at top-most input pressure level
[in]default_opts_setSwitch to extrapolate input profiles using regression limits
[in]default_opts_setSwitch to use htfrtc
[in]default_opts_setNumber of principal components to be used
[in]default_opts_setSwitch to select reconstructed radiances
[in]default_opts_setCalculate simple cloud
[in]default_opts_setCalculate overcast cloud on all levels

Definition at line 1373 of file ufo_radiancerttov_utils_mod.F90.

◆ set_options_rttov()

subroutine ufo_radiancerttov_utils_mod::set_options_rttov ( class(rttov_conf), intent(inout)  self,
type(fckit_configuration), intent(in)  f_confOpts 
)
Parameters
[in]f_confoptsSwitch to enable atmospheric refraction
[in]f_confoptsSwitch for input units in AD/K models
[in]f_confoptsSwitch to enable use of 2m q variable
[in]f_confoptsSwitch for setting Lambertian reflection (IR and MW)
[in]f_confoptsSwitch for fixed/parameterised effective angle for Lambertian option
[in]f_confoptsSwitch to ignore atmospheric curvature
[in]f_confoptsLinear-in-tau or layer-mean for downwelling radiances
[in]f_confoptsSwitch to apply dtau test in transmit/integrate calculations
[in]f_confoptsFASTEM version (0-6); 0 => TESSEM2
[in]f_confoptsSupply a foam fraction to FASTEM
[in]f_confoptsSwitch to enable input of cloud liquid water profile
[in]f_confoptsMW CLW scheme: 1 => Liebe, 2 => Rosenkranz, 3 => TKC
[in]f_confoptsApply MW CLW calculations on coef/user levels (true/false resp.)
[in]f_confoptsLower pressure limit for MW CLW calculations (hPa)
[in]f_confoptsApply band-correction for Planck radiance and BT calculations
[in]f_confoptsSwitch to enable RTTOV interpolator
[in]f_confoptsInterpolation mode (1-5, see user guide)
[in]f_confoptsSwitch to make pressure an active variable in TL/AD/K models
[in]f_confoptsSwitch to assume space boundary at top-most input pressure l
[in]f_confoptsSwitch to extrapolate input profiles using regression limits
[in]f_confoptsSolar sea BRDF model (1-2)
[in]f_confoptsIR sea emissivity model (1-2)
[in]f_confoptsSwitch to enable solar simulations
[in]f_confoptsSwitch to enable Rayleigh single-scattering for VIS/NIR channel
[in]f_confoptsSwitch to enable NLTE bias correction
[in]f_confoptsSwitch to enable IR aerosol calculations
[in]f_confoptsSwitch to supply aerosol optical properties explicitly per channel
[in]f_confoptsSwitch to enable IR cloudy calculations
[in]f_confoptsSwitch to supply cloud optical properties explicitly per channel
[in]f_confoptsSwitch to supply grid-box average cloud concentration or cloud
[in]f_confoptsIgnore cloud streams with weights lower than this
[in]f_confoptsSwitch for simplified cloud stream option - USE WITH CAUTION
[in]f_confoptsUpper pressure limit for cldstr_simple option (hPa)
[in]f_confoptsIR scattering model to use
[in]f_confoptsVIS/NIR scattering model to use
[in]f_confoptsNumber of DOM streams, must be even and not less than 2
[in]f_confoptsConvergence criterion for termination of DOM azimuthal loop
[in]f_confoptsDOM ignores levels below this optical depth:
[in]f_confoptsSwitch to enable input of O3 profile
[in]f_confoptsSwitch to enable input of CO2 profile
[in]f_confoptsSwitch to enable input of N2O profile
[in]f_confoptsSwitch to enable input of CO profile
[in]f_confoptsSwitch to enable input of CH4 profile
[in]f_confoptsSwitch to enable input of SO2 profile

Definition at line 851 of file ufo_radiancerttov_utils_mod.F90.

◆ setup_rttov()

subroutine ufo_radiancerttov_utils_mod::setup_rttov ( class(rttov_conf), intent(inout)  self,
type(fckit_configuration), intent(in)  f_confOpts,
integer, intent(in)  asw 
)
private

Definition at line 1104 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_init_emissivity()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_init_emissivity ( class(ufo_rttov_io), intent(inout)  self,
type(rttov_conf), intent(in)  conf 
)
private

Definition at line 1313 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_skip_profiles()

subroutine, public ufo_radiancerttov_utils_mod::ufo_rttov_skip_profiles ( integer, intent(in)  nprofiles,
integer, intent(in)  nchannels,
integer(c_int), dimension(:), intent(in)  channels,
type(c_ptr), intent(in), value  obss,
logical, dimension(:), intent(inout)  Skip_Profiles 
)

Definition at line 1271 of file ufo_radiancerttov_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ ch_diags

integer, dimension(:), allocatable ufo_radiancerttov_utils_mod::ch_diags
private

Definition at line 51 of file ufo_radiancerttov_utils_mod.F90.

◆ debug

logical, public ufo_radiancerttov_utils_mod::debug

Definition at line 100 of file ufo_radiancerttov_utils_mod.F90.

◆ iprof

integer ufo_radiancerttov_utils_mod::iprof
private

Definition at line 102 of file ufo_radiancerttov_utils_mod.F90.

◆ max_string

integer, parameter, public ufo_radiancerttov_utils_mod::max_string =800

Definition at line 39 of file ufo_radiancerttov_utils_mod.F90.

◆ maxvarin

integer, parameter, public ufo_radiancerttov_utils_mod::maxvarin = 50

Definition at line 40 of file ufo_radiancerttov_utils_mod.F90.

◆ message

character(len=max_string), public ufo_radiancerttov_utils_mod::message

Definition at line 45 of file ufo_radiancerttov_utils_mod.F90.

◆ missing

real(c_double) ufo_radiancerttov_utils_mod::missing
private

Definition at line 53 of file ufo_radiancerttov_utils_mod.F90.

◆ nchan_inst

integer, public ufo_radiancerttov_utils_mod::nchan_inst

Definition at line 97 of file ufo_radiancerttov_utils_mod.F90.

◆ nchan_sim

integer, public ufo_radiancerttov_utils_mod::nchan_sim

Definition at line 98 of file ufo_radiancerttov_utils_mod.F90.

◆ nlocs_total

integer, public ufo_radiancerttov_utils_mod::nlocs_total

Definition at line 99 of file ufo_radiancerttov_utils_mod.F90.

◆ null_str

character(len=maxvarlen), parameter ufo_radiancerttov_utils_mod::null_str = ''
private

Definition at line 88 of file ufo_radiancerttov_utils_mod.F90.

◆ nvars_in

integer, public ufo_radiancerttov_utils_mod::nvars_in

Definition at line 47 of file ufo_radiancerttov_utils_mod.F90.

◆ rttov_absorber_id

integer, dimension(ngases_max+1), parameter ufo_radiancerttov_utils_mod::rttov_absorber_id = [gas_id_mixed, gas_id_watervapour, gas_id_ozone, gas_id_wvcont, gas_id_co2, gas_id_n2o, gas_id_co, gas_id_ch4, gas_id_so2, 99]
private

Definition at line 76 of file ufo_radiancerttov_utils_mod.F90.

◆ rttov_absorbers

character(len=*), dimension(ngases_max+1), parameter ufo_radiancerttov_utils_mod::rttov_absorbers = [gas_name(1:ngases_max),'CLW']
private

Definition at line 72 of file ufo_radiancerttov_utils_mod.F90.

◆ rttov_errorstatus

integer, public ufo_radiancerttov_utils_mod::rttov_errorstatus

Definition at line 48 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_absorbers

character(len=maxvarlen), dimension(ngases_max+1), parameter ufo_radiancerttov_utils_mod::ufo_absorbers = [ null_str, var_mixr, var_oz, null_str, var_co2, 'mole_fraction_of_nitrous_oxide_in_air', 'mole_fraction_of_carbon_monoxide_in_air', 'mole_fraction_of_methane_in_air', 'mole_fraction_of_sulfur_dioxide_in_air', var_clw]
private

Definition at line 91 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_default

character(len=maxvarlen), dimension(:), pointer, public ufo_radiancerttov_utils_mod::varin_default

Definition at line 69 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_default_crtm

character(len=maxvarlen), dimension(21), target ufo_radiancerttov_utils_mod::varin_default_crtm = (/var_ts, var_prs, var_prsi, var_sfc_wfrac, var_sfc_lfrac, var_sfc_ifrac, var_sfc_sfrac, var_sfc_wtmp, var_sfc_ltmp, var_sfc_itmp, var_sfc_stmp, var_sfc_vegfrac, var_sfc_wspeed, var_sfc_wdir, var_sfc_lai, var_sfc_soilm, var_sfc_soilt, var_sfc_landtyp, var_sfc_vegtyp, var_sfc_soiltyp, var_sfc_sdepth/)
private

Definition at line 55 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_default_satrad

character(len=maxvarlen), dimension(11), target ufo_radiancerttov_utils_mod::varin_default_satrad = (/var_prs, var_ts, var_q, var_sfc_t2m, var_u, var_v, var_sfc_p2m, var_sfc_q2m, var_sfc_tskin, var_water_type_rttov, var_surf_type_rttov /)
private

Definition at line 64 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_temp

character(len=maxvarlen), dimension(maxvarin), public ufo_radiancerttov_utils_mod::varin_temp

Definition at line 44 of file ufo_radiancerttov_utils_mod.F90.

◆ xstr_diags

character(len=maxvarlen), dimension(:), allocatable ufo_radiancerttov_utils_mod::xstr_diags
private

Definition at line 50 of file ufo_radiancerttov_utils_mod.F90.

◆ ystr_diags

character(len=maxvarlen), dimension(:), allocatable ufo_radiancerttov_utils_mod::ystr_diags
private

Definition at line 50 of file ufo_radiancerttov_utils_mod.F90.