radiation_aerosol_optics_data Module


Uses

  • module~~radiation_aerosol_optics_data~2~~UsesGraph module~radiation_aerosol_optics_data~2 radiation_aerosol_optics_data module~parkind1~2 PARKIND1 module~radiation_aerosol_optics_data~2->module~parkind1~2 module~radiation_io~2 radiation_io module~radiation_aerosol_optics_data~2->module~radiation_io~2 module~yomlun_ifsaux YOMLUN_IFSAUX module~radiation_io~2->module~yomlun_ifsaux module~yomlun_ifsaux->module~parkind1~2

Used by

  • module~~radiation_aerosol_optics_data~2~~UsedByGraph module~radiation_aerosol_optics_data~2 radiation_aerosol_optics_data module~radiation_config radiation_config module~radiation_config->module~radiation_aerosol_optics_data~2 proc~setup_general_aerosol_optics setup_general_aerosol_optics proc~setup_general_aerosol_optics->module~radiation_aerosol_optics_data~2 proc~setup_general_aerosol_optics->module~radiation_config proc~setup_aerosol_optics setup_aerosol_optics proc~setup_aerosol_optics->module~radiation_aerosol_optics_data~2 proc~setup_aerosol_optics->module~radiation_config proc~dry_aerosol_mass_extinction dry_aerosol_mass_extinction proc~dry_aerosol_mass_extinction->module~radiation_aerosol_optics_data~2 proc~dry_aerosol_mass_extinction->module~radiation_config proc~setup_general_aerosol_optics_legacy setup_general_aerosol_optics_legacy proc~setup_general_aerosol_optics_legacy->module~radiation_aerosol_optics_data~2 proc~setup_general_aerosol_optics_legacy->module~radiation_config proc~setup_general_aerosol_optics~2 setup_general_aerosol_optics proc~setup_general_aerosol_optics~2->module~radiation_aerosol_optics_data~2 proc~setup_general_aerosol_optics~2->module~radiation_config proc~setup_general_aerosol_optics_legacy~2 setup_general_aerosol_optics_legacy proc~setup_general_aerosol_optics_legacy~2->module~radiation_aerosol_optics_data~2 proc~setup_general_aerosol_optics_legacy~2->module~radiation_config proc~aerosol_extinction~2 aerosol_extinction proc~aerosol_extinction~2->module~radiation_aerosol_optics_data~2 proc~aerosol_extinction~2->module~radiation_config proc~add_aerosol_optics add_aerosol_optics proc~add_aerosol_optics->module~radiation_aerosol_optics_data~2 proc~add_aerosol_optics->module~radiation_config proc~aeropt_5wv_ecrad AEROPT_5WV_ECRAD proc~aeropt_5wv_ecrad->module~radiation_aerosol_optics_data~2 proc~aeropt_5wv_ecrad->module~radiation_config proc~dry_aerosol_mass_extinction~2 dry_aerosol_mass_extinction proc~dry_aerosol_mass_extinction~2->module~radiation_aerosol_optics_data~2 proc~dry_aerosol_mass_extinction~2->module~radiation_config proc~add_aerosol_optics~3 add_aerosol_optics proc~add_aerosol_optics~3->module~radiation_aerosol_optics_data~2 proc~add_aerosol_optics~3->module~radiation_config module~radiation_config~2 radiation_config module~radiation_config~2->module~radiation_aerosol_optics_data~2 proc~aerosol_extinction aerosol_extinction proc~aerosol_extinction->module~radiation_aerosol_optics_data~2 proc~aerosol_extinction->module~radiation_config proc~setup_aerosol_optics_lmdz~2 setup_aerosol_optics_lmdz proc~setup_aerosol_optics_lmdz~2->module~radiation_aerosol_optics_data~2 proc~setup_aerosol_optics~4 setup_aerosol_optics proc~setup_aerosol_optics~4->module~radiation_aerosol_optics_data~2 proc~setup_aerosol_optics~4->module~radiation_config proc~setup_aerosol_optics_lmdz setup_aerosol_optics_lmdz proc~setup_aerosol_optics_lmdz->module~radiation_aerosol_optics_data~2 proc~cloud_optics cloud_optics proc~cloud_optics->module~radiation_config proc~setup_aerosol_optics~5 setup_aerosol_optics proc~setup_aerosol_optics~5->module~radiation_config proc~solver_homogeneous_lw~2 solver_homogeneous_lw proc~solver_homogeneous_lw~2->module~radiation_config proc~calc_surface_spectral calc_surface_spectral proc~calc_surface_spectral->module~radiation_config proc~allocate_aerosol_arrays_direct allocate_aerosol_arrays_direct proc~allocate_aerosol_arrays_direct->module~radiation_config proc~solver_cloudless_sw solver_cloudless_sw proc~solver_cloudless_sw->module~radiation_config proc~setup_gas_optics setup_gas_optics proc~setup_gas_optics->module~radiation_config proc~solver_cloudless_lw~2 solver_cloudless_lw proc~solver_cloudless_lw~2->module~radiation_config proc~add_aerosol_optics_direct~2 add_aerosol_optics_direct proc~add_aerosol_optics_direct~2->module~radiation_config proc~allocate_surface_flux_type allocate_surface_flux_type proc~allocate_surface_flux_type->module~radiation_config proc~get_albedos~2 get_albedos proc~get_albedos~2->module~radiation_config proc~radiation~2 radiation proc~radiation~2->module~radiation_config proc~setup_cloud_optics~5 setup_cloud_optics proc~setup_cloud_optics~5->module~radiation_config proc~setup_gas_optics~2 setup_gas_optics proc~setup_gas_optics~2->module~radiation_config proc~calc_toa_spectral calc_toa_spectral proc~calc_toa_spectral->module~radiation_config proc~get_albedos get_albedos proc~get_albedos->module~radiation_config proc~allocate_flux_type~2 allocate_flux_type proc~allocate_flux_type~2->module~radiation_config proc~save_surface_fluxes save_surface_fluxes proc~save_surface_fluxes->module~radiation_config proc~solver_cloudless_lw solver_cloudless_lw proc~solver_cloudless_lw->module~radiation_config proc~gas_optics~5 gas_optics proc~gas_optics~5->module~radiation_config proc~calc_surface_spectral~2 calc_surface_spectral proc~calc_surface_spectral~2->module~radiation_config proc~planck_function~2 planck_function proc~planck_function~2->module~radiation_config proc~gas_optics~6 gas_optics proc~gas_optics~6->module~radiation_config proc~planck_function_surf planck_function_surf proc~planck_function_surf->module~radiation_config proc~general_cloud_optics general_cloud_optics proc~general_cloud_optics->module~radiation_config proc~solver_homogeneous_sw solver_homogeneous_sw proc~solver_homogeneous_sw->module~radiation_config proc~planck_function_atmos~2 planck_function_atmos proc~planck_function_atmos~2->module~radiation_config proc~solver_tripleclouds_sw~2 solver_tripleclouds_sw proc~solver_tripleclouds_sw~2->module~radiation_config proc~solver_spartacus_lw solver_spartacus_lw proc~solver_spartacus_lw->module~radiation_config proc~solver_spartacus_lw~2 solver_spartacus_lw proc~solver_spartacus_lw~2->module~radiation_config proc~solver_mcica_lw solver_mcica_lw proc~solver_mcica_lw->module~radiation_config proc~add_aerosol_optics~4 add_aerosol_optics proc~add_aerosol_optics~4->module~radiation_config module~radiation_setup~2 RADIATION_SETUP module~radiation_setup~2->module~radiation_config proc~planck_function_surf~2 planck_function_surf proc~planck_function_surf~2->module~radiation_config module~radiation_setup~3 RADIATION_SETUP module~radiation_setup~3->module~radiation_config proc~cloud_optics~2 cloud_optics proc~cloud_optics~2->module~radiation_config proc~setup_aerosol_optics~3 setup_aerosol_optics proc~setup_aerosol_optics~3->module~radiation_config proc~setup_gas_optics~4 setup_gas_optics proc~setup_gas_optics~4->module~radiation_config proc~setup_cloud_optics~4 setup_cloud_optics proc~setup_cloud_optics~4->module~radiation_config proc~setup_general_cloud_optics setup_general_cloud_optics proc~setup_general_cloud_optics->module~radiation_config proc~solver_tripleclouds_lw~2 solver_tripleclouds_lw proc~solver_tripleclouds_lw~2->module~radiation_config proc~general_cloud_optics~2 general_cloud_optics proc~general_cloud_optics~2->module~radiation_config proc~solver_cloudless_sw~2 solver_cloudless_sw proc~solver_cloudless_sw~2->module~radiation_config proc~save_sw_diagnostics save_sw_diagnostics proc~save_sw_diagnostics->module~radiation_config proc~cloud_optics~4 cloud_optics proc~cloud_optics~4->module~radiation_config proc~solver_mcica_lw~2 solver_mcica_lw proc~solver_mcica_lw~2->module~radiation_config proc~save_radiative_properties save_radiative_properties proc~save_radiative_properties->module~radiation_config proc~allocate_flux_type allocate_flux_type proc~allocate_flux_type->module~radiation_config proc~add_aerosol_optics~2 add_aerosol_optics proc~add_aerosol_optics~2->module~radiation_config proc~cloud_optics~3 cloud_optics proc~cloud_optics~3->module~radiation_config proc~setup_cloud_optics setup_cloud_optics proc~setup_cloud_optics->module~radiation_config proc~solver_tripleclouds_lw solver_tripleclouds_lw proc~solver_tripleclouds_lw->module~radiation_config proc~solver_spartacus_sw solver_spartacus_sw proc~solver_spartacus_sw->module~radiation_config proc~solver_mcica_sw solver_mcica_sw proc~solver_mcica_sw->module~radiation_config proc~save_general_cloud_optics save_general_cloud_optics proc~save_general_cloud_optics->module~radiation_config proc~save_radiative_properties~2 save_radiative_properties proc~save_radiative_properties~2->module~radiation_config proc~radiation_scheme~3 RADIATION_SCHEME proc~radiation_scheme~3->module~radiation_config proc~radiation_scheme~3->module~radiation_setup~3 proc~planck_function~3 planck_function proc~planck_function~3->module~radiation_config proc~allocate_aerosol_arrays_direct~2 allocate_aerosol_arrays_direct proc~allocate_aerosol_arrays_direct~2->module~radiation_config proc~gas_optics~2 gas_optics proc~gas_optics~2->module~radiation_config proc~radiation radiation proc~radiation->module~radiation_config proc~solver_mcica_sw~2 solver_mcica_sw proc~solver_mcica_sw~2->module~radiation_config program~ecrad_driver ecrad_driver program~ecrad_driver->module~radiation_config proc~solver_homogeneous_lw solver_homogeneous_lw proc~solver_homogeneous_lw->module~radiation_config proc~add_aerosol_optics_direct add_aerosol_optics_direct proc~add_aerosol_optics_direct->module~radiation_config proc~setup_gas_optics~6 setup_gas_optics proc~setup_gas_optics~6->module~radiation_config proc~gas_optics~3 gas_optics proc~gas_optics~3->module~radiation_config proc~save_fluxes save_fluxes proc~save_fluxes->module~radiation_config proc~setup_general_cloud_optics~4 setup_general_cloud_optics proc~setup_general_cloud_optics~4->module~radiation_config proc~setup_radiation setup_radiation proc~setup_radiation->module~radiation_config proc~solver_spartacus_sw~2 solver_spartacus_sw proc~solver_spartacus_sw~2->module~radiation_config proc~setup_gas_optics~3 setup_gas_optics proc~setup_gas_optics~3->module~radiation_config proc~setup_gas_optics~5 setup_gas_optics proc~setup_gas_optics~5->module~radiation_config proc~save_fluxes~2 save_fluxes proc~save_fluxes~2->module~radiation_config proc~setup_radiation~2 setup_radiation proc~setup_radiation~2->module~radiation_config proc~setup_cloud_optics~3 setup_cloud_optics proc~setup_cloud_optics~3->module~radiation_config proc~save_inputs save_inputs proc~save_inputs->module~radiation_config module~radiation_setup RADIATION_SETUP module~radiation_setup->module~radiation_config proc~set_gas_units set_gas_units proc~set_gas_units->module~radiation_config proc~save_net_fluxes save_net_fluxes proc~save_net_fluxes->module~radiation_config proc~save_inputs~2 save_inputs proc~save_inputs~2->module~radiation_config proc~set_gas_units~7 set_gas_units proc~set_gas_units~7->module~radiation_config proc~readaerosolstrato_ecrad readaerosolstrato_ecrad proc~readaerosolstrato_ecrad->module~radiation_config proc~read_input read_input proc~read_input->module~radiation_config proc~planck_function_atmos planck_function_atmos proc~planck_function_atmos->module~radiation_config proc~solver_tripleclouds_sw solver_tripleclouds_sw proc~solver_tripleclouds_sw->module~radiation_config proc~solver_homogeneous_sw~2 solver_homogeneous_sw proc~solver_homogeneous_sw~2->module~radiation_config proc~gas_optics gas_optics proc~gas_optics->module~radiation_config proc~gas_optics~4 gas_optics proc~gas_optics~4->module~radiation_config program~ecrad_ifs_driver~2 ecrad_ifs_driver program~ecrad_ifs_driver~2->module~radiation_setup~3 proc~radiation_scheme RADIATION_SCHEME proc~radiation_scheme->module~radiation_setup~3 proc~radiation_scheme~2 RADIATION_SCHEME proc~radiation_scheme~2->module~radiation_setup~3 proc~radiation_scheme_s2 RADIATION_SCHEME_S2 proc~radiation_scheme_s2->module~radiation_setup~3 proc~ifs_copy_fluxes_from_blocked ifs_copy_fluxes_from_blocked proc~ifs_copy_fluxes_from_blocked->module~radiation_setup~3 proc~ifs_copy_inputs_to_blocked ifs_copy_inputs_to_blocked proc~ifs_copy_inputs_to_blocked->module~radiation_setup~3 program~ecrad_ifs_driver ecrad_ifs_driver program~ecrad_ifs_driver->module~radiation_setup~3 proc~ifs_setup_indices ifs_setup_indices proc~ifs_setup_indices->module~radiation_setup~3

Contents


Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: NMaxStringLength = 2000
integer, public, parameter :: NMaxLineLength = 200

Enumerations

enum, bind(c)

Enumerators

enumerator:: IAerosolClassUndefined = 0
enumerator:: IAerosolClassIgnored = 1
enumerator:: IAerosolClassHydrophobic = 2
enumerator:: IAerosolClassHydrophilic = 3

Derived Types

type, public ::  aerosol_optics_type

Components

Type Visibility Attributes Name Initial
integer, public, allocatable, dimension(:) :: iclass
integer, public, allocatable, dimension(:) :: itype
real(kind=jprb), public, allocatable, dimension(:) :: wavenumber1_sw
real(kind=jprb), public, allocatable, dimension(:) :: wavenumber2_sw
real(kind=jprb), public, allocatable, dimension(:) :: wavenumber1_lw
real(kind=jprb), public, allocatable, dimension(:) :: wavenumber2_lw
real(kind=jprb), public, allocatable, dimension(:,:) :: mass_ext_sw_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: ssa_sw_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: g_sw_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: mass_ext_lw_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: ssa_lw_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: g_lw_phobic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: mass_ext_sw_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: ssa_sw_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: g_sw_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: mass_ext_lw_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: ssa_lw_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: g_lw_philic
real(kind=jprb), public, allocatable :: wavelength_mono(:)
real(kind=jprb), public, allocatable, dimension(:,:) :: mass_ext_mono_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: ssa_mono_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: g_mono_phobic
real(kind=jprb), public, allocatable, dimension(:,:) :: lidar_ratio_mono_phobic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: mass_ext_mono_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: ssa_mono_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: g_mono_philic
real(kind=jprb), public, allocatable, dimension(:,:,:) :: lidar_ratio_mono_philic
real(kind=jprb), public, allocatable, dimension(:) :: rh_lower
character(len=NMaxStringLength), public :: description_phobic_str = ' '
character(len=NMaxStringLength), public :: description_philic_str = ' '
integer, public :: ntype
integer, public :: n_type_phobic = 0
integer, public :: n_type_philic = 0
integer, public :: nrh = 0
integer, public :: n_bands_lw = 0
integer, public :: n_bands_sw = 0
integer, public :: n_mono_wl = 0
logical, public :: use_hydrophilic = .true.
logical, public :: use_monochromatic = .false.

Type-Bound Procedures

procedure , public :: setup => setup_aerosol_optics Subroutine
procedure , public :: save => save_aerosol_optics Subroutine
procedure , public :: allocate Subroutine
procedure , public :: initialize_types Subroutine
procedure , public :: set_hydrophobic_type Subroutine
procedure , public :: set_hydrophilic_type Subroutine
procedure , public :: set_empty_type Subroutine
procedure , public :: set_types Subroutine
procedure , public :: calc_rh_index Function
procedure , public :: print_description Subroutine

Functions

public function calc_rh_index(this, rh)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(in) :: this
real(kind=jprb), intent(in) :: rh

Return Value integer


Subroutines

public subroutine setup_aerosol_optics(this, file_name, iverbose)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
character(len=*), intent(in) :: file_name
integer, intent(in), optional :: iverbose

public subroutine initialize_types(this, ntype)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
integer, intent(in) :: ntype

public subroutine allocate(this, n_type_phobic, n_type_philic, nrh, n_bands_lw, n_bands_sw, n_mono_wl)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
integer, intent(in) :: n_type_phobic
integer, intent(in) :: n_type_philic
integer, intent(in) :: nrh
integer, intent(in) :: n_bands_lw
integer, intent(in) :: n_bands_sw
integer, intent(in) :: n_mono_wl

public subroutine save_aerosol_optics(this, file_name, iverbose)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
character(len=*), intent(in) :: file_name
integer, intent(in), optional :: iverbose

public subroutine set_hydrophobic_type(this, itype, i_type_phobic)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
integer, intent(in) :: itype
integer, intent(in) :: i_type_phobic

public subroutine set_hydrophilic_type(this, itype, i_type_philic)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
integer, intent(in) :: itype
integer, intent(in) :: i_type_philic

public subroutine set_empty_type(this, itype)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
integer, intent(in) :: itype

public subroutine set_types(this, itypes)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(inout) :: this
integer, intent(in), dimension(:) :: itypes

public subroutine print_description(this, i_type_map)

Arguments

Type IntentOptional Attributes Name
class(aerosol_optics_type), intent(in) :: this
integer, intent(in) :: i_type_map(:)