ARTS 2.5.11 (git: 6827797f)
|
Functions for disort interface. More...
#include "agenda_class.h"
#include "matpack_data.h"
#include "mystring.h"
#include "optproperties.h"
#include "sun.h"
Go to the source code of this file.
Functions | |
void | add_normed_phase_functions (Tensor3View pftc1, const MatrixView &sca1, const MatrixView &pftc2, const MatrixView &sca2) |
add_normed_phase_functions | |
void | check_disort_input (const Index &cloudbox_on, const Index &atmfields_checked, const Index &atmgeom_checked, const Index &cloudbox_checked, const Index &scat_data_checked, const Index &atmosphere_dim, const Index &stokes_dim, const ArrayOfIndex &cloudbox_limits, const ArrayOfArrayOfSingleScatteringData &scat_data, ConstVectorView za_grid, const Index &nstreams) |
check_disort_input. | |
void | check_disort_irradiance_input (const Index &atmfields_checked, const Index &atmgeom_checked, const Index &scat_data_checked, const Index &atmosphere_dim, const Index &stokes_dim, const ArrayOfArrayOfSingleScatteringData &scat_data, const Index &nstreams) |
check_disort_input. | |
void | init_ifield (Tensor7 &cloudbox_field, const Vector &f_grid, const ArrayOfIndex &cloudbox_limits, const Index &n_za, const Index &n_aa, const Index &stokes_dim) |
init_ifield. | |
void | get_disortsurf_props (Vector &albedo, Numeric &btemp, ConstVectorView f_grid, const Numeric &surface_skin_t, ConstVectorView surface_scalar_reflectivity) |
get_disortsurf_props. | |
void | run_cdisort (Workspace &ws, Tensor7 &cloudbox_field, ArrayOfMatrix &disort_aux, ConstVectorView f_grid, ConstVectorView p_grid, ConstVectorView z_profile, const Numeric &z_surface, ConstVectorView t_profile, ConstMatrixView vmr_profiles, ConstMatrixView pnd_profiles, const ArrayOfArrayOfSingleScatteringData &scat_data, const ArrayOfSun &suns, const Agenda &propmat_clearsky_agenda, const Agenda &gas_scattering_agenda, const ArrayOfIndex &cloudbox_limits, const Numeric &surface_skin_t, const Vector &surface_scalar_reflectivity, ConstVectorView za_grid, ConstVectorView aa_grid, ConstVectorView sun_rte_los, const Index &gas_scattering_do, const Index &suns_do, const ArrayOfString &disort_aux_vars, const Numeric &scale_factor, const Index &nstreams, const Index &Npfct, const Index &only_tro, const Index &quiet, const Index &emission, const Index &intensity_correction, const Verbosity &verbosity) |
Calculate doit_i_field with Disort including a sun source. | |
void | run_cdisort_flux (Workspace &ws, Tensor5 &spectral_irradiance_field, ArrayOfMatrix &disort_aux, ConstVectorView f_grid, ConstVectorView p_grid, ConstVectorView z_profile, const Numeric &z_surface, ConstVectorView t_profile, ConstMatrixView vmr_profiles, ConstMatrixView pnd_profiles, const ArrayOfArrayOfSingleScatteringData &scat_data, const ArrayOfSun &suns, const Agenda &propmat_clearsky_agenda, const Agenda &gas_scattering_agenda, const ArrayOfIndex &cloudbox_limits, const Numeric &surface_skin_t, const Vector &surface_scalar_reflectivity, ConstVectorView sun_rte_los, const Index &gas_scattering_do, const Index &suns_do, const ArrayOfString &disort_aux_vars, const Numeric &scale_factor, const Index &nstreams, const Index &Npfct, const Index &only_tro, const Index &quiet, const Index &emission, const Index &intensity_correction, const Verbosity &verbosity) |
Calculate spectral_irradiance_field with Disort including a sun source. | |
void | get_gasoptprop (Workspace &ws, MatrixView ext_bulk_gas, const Agenda &propmat_clearsky_agenda, ConstVectorView t_profile, ConstMatrixView vmr_profiles, ConstVectorView p_grid, ConstVectorView f_grid) |
get_gasoptprop. | |
void | get_gas_scattering_properties (Workspace &ws, MatrixView sca_coeff_gas, MatrixView sca_coeff_gas_level, MatrixView pfct_gas, const ConstVectorView &f_grid, const VectorView &p, const VectorView &t, const MatrixView &vmr, const Agenda &gas_scattering_agenda) |
get_gas_scattering_properties | |
void | get_paroptprop (MatrixView ext_bulk_par, MatrixView abs_bulk_par, const ArrayOfArrayOfSingleScatteringData &scat_data, ConstMatrixView pnd_profiles, ConstVectorView t_profile, ConstVectorView p_grid, const ArrayOfIndex &cloudbox_limits, ConstVectorView f_grid) |
get_paroptprop. | |
void | get_dtauc_ssalb (MatrixView dtauc, MatrixView ssalb, ConstMatrixView ext_bulk_gas, ConstMatrixView ext_bulk_par, ConstMatrixView abs_bulk_par, ConstVectorView z_profile) |
get_dtauc_ssalb | |
void | get_angs (Vector &pfct_angs, const ArrayOfArrayOfSingleScatteringData &scat_data, const Index &Npfct) |
get_angs. | |
void | get_parZ (Tensor3 &pha_bulk_par, const ArrayOfArrayOfSingleScatteringData &scat_data, ConstMatrixView pnd_profiles, ConstVectorView t_profile, ConstVectorView pfct_angs, const ArrayOfIndex &cloudbox_limits) |
get_parZ. | |
void | get_pfct (Tensor3 &pfct_bulk_par, ConstTensor3View pha_bulk_par, ConstMatrixView ext_bulk_par, ConstMatrixView abs_bulk_par, const ArrayOfIndex &cloudbox_limits) |
get_pfct. | |
void | get_pmom (Tensor3View pmom, ConstTensor3View pfct_bulk_par, ConstVectorView pfct_angs, const Index &Nlegendre) |
get_pmom | |
void | get_scat_bulk_layer (MatrixView sca_bulk_layer, const MatrixView &ext_bulk, const MatrixView &abs_bulk) |
get_scat_bulk_layer | |
void | reduced_1datm (Vector &p, Vector &z, Vector &t, Matrix &vmr, Matrix &pnd, ArrayOfIndex &cboxlims, Index &ncboxremoved, ConstVectorView p_grid, ConstVectorView z_profile, const Numeric &z_surface, ConstVectorView t_profile, ConstMatrixView vmr_profiles, ConstMatrixView pnd_profiles, const ArrayOfIndex &cloudbox_limits) |
reduced_1datm | |
void | surf_albedoCalc (Workspace &ws, VectorView albedo, Numeric &btemp, const Agenda &surface_rtprop_agenda, ConstVectorView f_grid, ConstVectorView scat_za_grid, const Numeric &surf_alt, const Verbosity &verbosity) |
surf_albedoCalc | |
void | surf_albedoCalcSingleAngle (Workspace &ws, VectorView albedo, Numeric &btemp, const Agenda &surface_rtprop_agenda, ConstVectorView f_grid, const Numeric &surf_alt, const Numeric &inc_angle) |
surf_albedoCalcSingleAngle | |
Functions for disort interface.
Definition in file disort.h.
void add_normed_phase_functions | ( | Tensor3View | pftc1, |
const MatrixView & | sca1, | ||
const MatrixView & | pftc2, | ||
const MatrixView & | sca2 | ||
) |
add_normed_phase_functions
Adds two normalized phase functions, which are represented as Legendre series.
[in,out] | pftc1 | Phase function 1 as Legendre series (frequency, layer, plolynomial). |
[in] | sca1 | Scattering coefficient phase function 1 (frequency, layer). |
[in] | pftc2 | Phase function 2 as Legendre series (layer, polynomial). |
[in] | sca2 | Scattering coefficient phase function 2 (frequency, layer). |
Definition at line 52 of file disort.cc.
References ARTS_ASSERT.
Referenced by run_cdisort(), and run_cdisort_flux().
void check_disort_input | ( | const Index & | cloudbox_on, |
const Index & | atmfields_checked, | ||
const Index & | atmgeom_checked, | ||
const Index & | cloudbox_checked, | ||
const Index & | scat_data_checked, | ||
const Index & | atmosphere_dim, | ||
const Index & | stokes_dim, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
ConstVectorView | za_grid, | ||
const Index & | nstreams | ||
) |
check_disort_input.
*** FIXMEDOC *** in disort.cc, line 197
Checks that input of DisortCalc* is sane.
[in] | cloudbox_on | as the WSV. |
[in] | disort_is_initialized | as the WSV. |
[in] | atmfields_checked | as the WSV. |
[in] | atmgeom_checked | as the WSV. |
[in] | cloudbox_checked | as the WSV. |
[in] | scat_data | as the WSV. |
[in] | za_grid | as the WSV. |
[in] | nstreams | Number of quadrature angles (both hemispheres). |
Definition at line 76 of file disort.cc.
References Array< base >::nelem(), PTYPE_AZIMUTH_RND, PTYPE_GENERAL, PTYPE_TOTAL_RND, and PTypeToString().
Referenced by DisortCalc(), and DisortCalcWithARTSSurface().
void check_disort_irradiance_input | ( | const Index & | atmfields_checked, |
const Index & | atmgeom_checked, | ||
const Index & | scat_data_checked, | ||
const Index & | atmosphere_dim, | ||
const Index & | stokes_dim, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const Index & | nstreams | ||
) |
check_disort_input.
Checks that input of DisortCalcIrradiance* is sane.
[in] | disort_is_initialized | as the WSV. |
[in] | atmfields_checked | as the WSV. |
[in] | atmgeom_checked | as the WSV. |
[in] | cloudbox_checked | as the WSV. |
[in] | scat_data | as the WSV. |
[in] | nstreams | Number of quadrature angles (both hemispheres). |
Definition at line 202 of file disort.cc.
References Array< base >::nelem(), PTYPE_AZIMUTH_RND, PTYPE_GENERAL, PTYPE_TOTAL_RND, and PTypeToString().
Referenced by DisortCalcIrradiance().
void get_angs | ( | Vector & | pfct_angs, |
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const Index & | Npfct | ||
) |
get_angs.
Derives angular grid to derive bulk phase matrix/function data on for further Legendre decomposition.
[out] | pfct_angs | Angular grid of pfct_bulk_par. |
[in] | scat_data | As the WSV. |
[in] | nang | Number of angular grid points in pfct_angs. If<0, |
pfct_angs is taken from scat_data (the finest za_grid used over the scat elems), else an equidistant grid with nang grid points is used.
Definition at line 555 of file disort.cc.
References Array< base >::nelem(), and nlinspace().
Referenced by run_cdisort(), and run_cdisort_flux().
void get_disortsurf_props | ( | Vector & | albedo, |
Numeric & | btemp, | ||
ConstVectorView | f_grid, | ||
const Numeric & | surface_skin_t, | ||
ConstVectorView | surface_scalar_reflectivity | ||
) |
get_disortsurf_props.
*** FIXMEDOC *** input/output
Derive surface property input for RT4's proprietary surface handling depending on surface reflection type.
[out] | ground_albedo | Scalar surface albedo (for ground_type=L). |
[out] | ground_reflec | Vector surface relfectivity (for ground_type=S). |
[out] | ground_index | Surface complex refractive index (for ground_type=F). |
[out] | btemp | Surface temperature |
[in] | f_grid | As the WSV. |
[in] | ground_type | Surface reflection type flag. |
[in] | surface_skin_t | As the WSV. |
[in] | surface_scalar_reflectivity | As the WSV (used with ground_type=L). |
[in] | surface_reflectivity | As the WSV (used with ground_type=S). |
[in] | surface_complex_refr_index | As the WSV (used with ground_type=F). |
[in] | stokes_dim | As the WSV. |
Definition at line 286 of file disort.cc.
Referenced by DisortCalc(), and DisortCalcIrradiance().
void get_dtauc_ssalb | ( | MatrixView | dtauc, |
MatrixView | ssalb, | ||
ConstMatrixView | ext_bulk_gas, | ||
ConstMatrixView | ext_bulk_par, | ||
ConstMatrixView | abs_bulk_par, | ||
ConstVectorView | z_profile | ||
) |
get_dtauc_ssalb
Calculates layer averaged cloud optical depth (dtauc) and single scattering albedo (ssalb) as required as DISORT subroutine input from level-based gas extinction and particle extinction and absorption.
[out] | dtauc | Optical depths for all layers. |
[out] | ssalb | Single scattering albedos for all layers. |
[in] | ext_bulk_gas | See get_gasoptprop. |
[in] | ext_bulk_par | See get_paroptprop. |
[in] | abs_bulk_par | See get_paroptprop. |
[in] | z_profile | Profile of geometrical altitudes. |
Definition at line 513 of file disort.cc.
References ARTS_ASSERT, and ARTS_USER_ERROR_IF.
Referenced by run_cdisort(), and run_cdisort_flux().
void get_gas_scattering_properties | ( | Workspace & | ws, |
MatrixView | sca_coeff_gas, | ||
MatrixView | sca_coeff_gas_level, | ||
MatrixView | pfct_gas, | ||
const ConstVectorView & | f_grid, | ||
const VectorView & | p, | ||
const VectorView & | t, | ||
const MatrixView & | vmr, | ||
const Agenda & | gas_scattering_agenda | ||
) |
get_gas_scattering_properties
Calculates the gas scattering coefficient for level and for layer averaged and the layer averaged phase function as Legendre series.
[in,out] | ws | Current workspace. |
[out] | sca_coeff_gas | Gas scattering coefficient (all layers,freqs). |
[out] | sca_coeff_gas_level | Gas scattering coefficient (all levels,freqs). |
[out] | pfct_gas | Legendre moments for all layers. |
[in] | f_grid | Frequency grid. |
[in] | p | Pressure profile. |
[in] | t | Temperature. |
[in] | vmr | Volume mixing ratio. |
[in] | gas_scattering_agenda | Gas scattering agenda. |
Definition at line 375 of file disort.cc.
References gas_scattering_agendaExecute(), and min().
Referenced by run_cdisort(), and run_cdisort_flux().
void get_gasoptprop | ( | Workspace & | ws, |
MatrixView | ext_bulk_gas, | ||
const Agenda & | propmat_clearsky_agenda, | ||
ConstVectorView | t_profile, | ||
ConstMatrixView | vmr_profiles, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | f_grid | ||
) |
get_gasoptprop.
Derives level-based gas bulk optical properties (extinction).
[in,out] | ws | Current workspace. |
[out] | ext_bulk_gas | Gas bulk extinction (all levels & freqs). |
[in] | propmat_clearsky_agenda | As the WSV. |
[in] | t_profile | Temperature profile |
[in] | vmr_profiles | VMR profiles |
[in] | p_grid | As the WSV. |
[in] | f_grid | As the WSV. |
Definition at line 331 of file disort.cc.
References ARTS_ASSERT, and propmat_clearsky_agendaExecute().
Referenced by run_cdisort(), and run_cdisort_flux().
void get_paroptprop | ( | MatrixView | ext_bulk_par, |
MatrixView | abs_bulk_par, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
ConstMatrixView | pnd_profiles, | ||
ConstVectorView | t_profile, | ||
ConstVectorView | p_grid, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstVectorView | f_grid | ||
) |
get_paroptprop.
Derives level-based particle bulk optical properties (extinction and absorption).
[out] | ext_bulk_par | Particle bulk extinction (all levels & freqs). |
[out] | abs_bulk_par | Particle bulk absorption (all levels & freqs). |
[in] | scat_data | As the WSV. |
[in] | pnd_profiles | PND profiles. |
[in] | t_profile | Temperature profile |
[in] | p_grid | As the WSV. |
[in] | cloudbox_limits | As the WSV. |
[in] | f_grid | As the WSV. |
void get_parZ | ( | Tensor3 & | pha_bulk_par, |
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
ConstMatrixView | pnd_profiles, | ||
ConstVectorView | t_profile, | ||
ConstVectorView | pfct_angs, | ||
const ArrayOfIndex & | cloudbox_limits | ||
) |
get_parZ.
Derives level-based particle bulk phase matrix Z (Csca scaled). NOTE: Provided on ssd's freq grid (i.e. for nf=1 only of ssd.f_grid.nelem==1) in order to avoid duplicate calculations in get_pmom (instead we duplicate the results there to the RT calc's f_grid).
[out] | pha_bulk_par | Particle bulk phase function (all levels & ssd freqs). |
[out] | pfct_angs | Angular grid of pfct_bulk_par. |
[in] | scat_data | As the WSV. |
[in] | pnd_profiles | PND profiles. |
[in] | t_profile | Temperature profile. |
[in] | p_grid | As the WSV. |
[in] | cloudbox_limits | As the WSV. |
[in] | ext_bulk_par | See get_paroptprop. |
[in] | abs_bulk_par | See get_paroptprop. |
[in] | nang | Number of angular grid points in pfct_angs. If<0, |
pfct_angs is taken from scat_data (the finest za_grid used over the scat elems), else an equidistant grid with nang grid points is used.
Definition at line 587 of file disort.cc.
References pha_mat_Bulk(), pha_mat_NScatElems(), and pha_mat_ScatSpecBulk().
Referenced by run_cdisort(), and run_cdisort_flux().
void get_pfct | ( | Tensor3 & | pfct_bulk_par, |
ConstTensor3View | pha_bulk_par, | ||
ConstMatrixView | ext_bulk_par, | ||
ConstMatrixView | abs_bulk_par, | ||
const ArrayOfIndex & | cloudbox_limits | ||
) |
get_pfct.
Derives layer averaged particle bulk phase function P (4Pi scaled) NOTE: Provided on ssd's freq grid (i.e. for nf=1 only if ssd.f_grid.nelem==1) in order to avoid duplicate calculations in get_pmom (instead we duplicate the results there to the RT calc's f_grid).
[out] | pfct_bulk_par | Particle bulk phase function (all levels & ssd freqs). |
[in] | pha_bulk_par | See get_parZ. |
[in] | ext_bulk_par | See get_paroptprop. |
[in] | abs_bulk_par | See get_paroptprop. |
Definition at line 639 of file disort.cc.
References ARTS_ASSERT, and PI.
Referenced by run_cdisort(), and run_cdisort_flux().
void get_pmom | ( | Tensor3View | pmom, |
ConstTensor3View | pfct_bulk_par, | ||
ConstVectorView | pfct_angs, | ||
const Index & | Nlegendre | ||
) |
get_pmom
Calculates Legendre moments of the layer averaged phase functionss (pmom) as required as DISORT subroutine input from level-based bulk particle phase function (4-Pi normalized scalar phase matrix).
[out] | pmom | Legendre moments for all layers. |
[in] | pfct_bulk_par | See get_pfct. |
[in] | pfct_angs | See get_parZ. |
[in] | Nlegendre | Number of Legendre moments to derive. |
Definition at line 674 of file disort.cc.
References ARTS_ASSERT, PI, and u.
Referenced by run_cdisort(), and run_cdisort_flux().
void get_scat_bulk_layer | ( | MatrixView | sca_bulk_layer, |
const MatrixView & | ext_bulk, | ||
const MatrixView & | abs_bulk | ||
) |
get_scat_bulk_layer
Calculates layer averaged scattering coefficient
[out] | sca_bulk_layer | Bulk scattering coefficient (all levels & freqs) |
[in] | ext_bulk | Bulk extinction coefficient (all levels & freqs) |
[in] | abs_bulk | Bulk absorption coefficient (all levels & freqs) |
Definition at line 760 of file disort.cc.
References ARTS_ASSERT.
Referenced by run_cdisort(), and run_cdisort_flux().
void init_ifield | ( | Tensor7 & | cloudbox_field, |
const Vector & | f_grid, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Index & | n_za, | ||
const Index & | n_aa, | ||
const Index & | stokes_dim | ||
) |
init_ifield.
Initialize cloudbox_field with the right size and NaN values.
[out] | cloudbox_field | As the WSV. |
[in] | f_grid | As the WSV. |
[in] | cloudbox_limits | As the WSV. |
[in] | n_za | Number of zenith angles with RT output. |
[in] | n_aa | Number of azimuth angles with RT output. |
[in] | stokes_dim | As the WSV. |
Definition at line 269 of file disort.cc.
Referenced by DisortCalc(), and DisortCalcWithARTSSurface().
void reduced_1datm | ( | Vector & | p, |
Vector & | z, | ||
Vector & | t, | ||
Matrix & | vmr, | ||
Matrix & | pnd, | ||
ArrayOfIndex & | cboxlims, | ||
Index & | ncboxremoved, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | z_profile, | ||
const Numeric & | z_surface, | ||
ConstVectorView | t_profile, | ||
ConstMatrixView | vmr_profiles, | ||
ConstMatrixView | pnd_profiles, | ||
const ArrayOfIndex & | cloudbox_limits | ||
) |
reduced_1datm
Crops a 1D atmosphere, to create an atmosphere where the surface is placed at p_grid[0]. Developed to work with DISORT and RT4.
[out] | p | New pressure grid, |
[out] | z | New profile of geometrical altitudes. |
[out] | t | New temperature profile, |
[out] | vmr | New VMR profiles. |
[out] | pnd | New PND profiles. |
[out] | cboxlims | Adjusted version of cloudbox_limits. |
[out] | ncboxremoved | Number of levels inside cloudbox removed |
[in] | p_grid | Original pressure grid |
[in] | z_profile | Original profile of geometric altitudes. |
[in] | z_surface | Surface altitude. |
[in] | t_profile | Original temperature profile. |
[in] | vmr_profiles | Original VMR profiles. |
[in] | pnd_profiles | Original PND profiles. |
[in] | cloudbox_limits | Original cloudbox limits |
Definition at line 858 of file disort.cc.
References gridpos(), interp(), interpweights(), itw2p(), and Array< base >::nelem().
Referenced by run_cdisort(), and run_cdisort_flux().
void run_cdisort | ( | Workspace & | ws, |
Tensor7 & | cloudbox_field, | ||
ArrayOfMatrix & | disort_aux, | ||
ConstVectorView | f_grid, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | z_profile, | ||
const Numeric & | z_surface, | ||
ConstVectorView | t_profile, | ||
ConstMatrixView | vmr_profiles, | ||
ConstMatrixView | pnd_profiles, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const ArrayOfSun & | suns, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Agenda & | gas_scattering_agenda, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Numeric & | surface_skin_t, | ||
const Vector & | surface_scalar_reflectivity, | ||
ConstVectorView | za_grid, | ||
ConstVectorView | aa_grid, | ||
ConstVectorView | sun_rte_los, | ||
const Index & | gas_scattering_do, | ||
const Index & | suns_do, | ||
const ArrayOfString & | disort_aux_vars, | ||
const Numeric & | scale_factor, | ||
const Index & | nstreams, | ||
const Index & | Npfct, | ||
const Index & | only_tro, | ||
const Index & | quiet, | ||
const Index & | emission, | ||
const Index & | intensity_correction, | ||
const Verbosity & | verbosity | ||
) |
Calculate doit_i_field with Disort including a sun source.
Prepares actual input variables for Disort, runs it, and sorts the output into cloudbox_field.
This version uses the C implementation of Disort based on ::run_disort.
Altitudes, temperatures, VMRs and PNDs shall be provided with lat and lon dimensions removed
[in,out] | ws | Current workspace. |
[out] | cloudbox_field | Radiation field. |
[out] | disort_aux | Auxilary data to spectral_irradiance_field. |
[in] | f_grid | Frequency grid. |
[in] | p_grid | Pressure grid. |
[in] | z_profile | Profile of geometric altitudes. |
[in] | z_surface | Surface altitude. |
[in] | t_profile | Temperature profile. |
[in] | vmr_profiles | VMR profiles. |
[in] | pnd_profiles | PND profiles. |
[in] | scat_data | Array of single scattering data. |
[in] | suns | Array of sun(s). |
[in] | propmat_clearsky_agenda | calculates the absorption coefficient matrix. |
[in] | gas_scattering_agenda | Agenda agenda calculating the gas scattering cross section and matrix. |
[in] | cloudbox_limits | Cloudbox limits. |
[in] | surface_skin_t | Surface skin temperature. |
[in] | surface_scalar_reflectivity | Surface scalar reflectivity. |
[in] | za_grid | Zenith angle grid. |
[in] | aa_grid | azimuth angle grid. |
[in] | sun_rte_los | local position of the sun top of cloudbox. |
[in] | gas_scattering_do | Flag to activate gas scattering. |
[in] | suns_do | Flag to activate the sun(s). |
[in] | disort_aux_vars | Selection of quantities for disort_aux. |
[in] | scale_factor | Geometric scaling factor, scales the sun spectral irradiance at the surface of the sun to the spectral irradiance of the sun at cloubbox top. |
[in] | nstreams | Number of quadrature angles (both hemispheres). |
[in] | Npfct | Number of angular grid points to calculate bulk phase function. |
[in] | only_tro | Flag indicating that only TRO scattering data is used. |
[in] | quiet | Silence warnings. |
[in] | emission | Enables blackbody emission. |
[in] | intensity_correction | Enables intensity correction (for low nstreams) |
[in] | verbosity | Verbosity setting. |
Definition at line 934 of file disort.cc.
References Conversion::acosd(), add_normed_phase_functions(), ARTS_USER_ERROR, Conversion::cosd(), COSMIC_BG_TEMP, CREATE_OUT1, disort_verbosity, ext_abs_pfun_from_tro(), get_angs(), get_dtauc_ssalb(), get_gas_scattering_properties(), get_gasoptprop(), get_paroptprop(), get_parZ(), get_pfct(), get_pmom(), get_scat_bulk_layer(), Array< base >::nelem(), nlinspace(), PI, reduced_1datm(), and SPEED_OF_LIGHT.
Referenced by DisortCalc(), and DisortCalcWithARTSSurface().
void run_cdisort_flux | ( | Workspace & | ws, |
Tensor5 & | spectral_irradiance_field, | ||
ArrayOfMatrix & | disort_aux, | ||
ConstVectorView | f_grid, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | z_profile, | ||
const Numeric & | z_surface, | ||
ConstVectorView | t_profile, | ||
ConstMatrixView | vmr_profiles, | ||
ConstMatrixView | pnd_profiles, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const ArrayOfSun & | suns, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Agenda & | gas_scattering_agenda, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Numeric & | surface_skin_t, | ||
const Vector & | surface_scalar_reflectivity, | ||
ConstVectorView | sun_rte_los, | ||
const Index & | gas_scattering_do, | ||
const Index & | suns_do, | ||
const ArrayOfString & | disort_aux_vars, | ||
const Numeric & | scale_factor, | ||
const Index & | nstreams, | ||
const Index & | Npfct, | ||
const Index & | only_tro, | ||
const Index & | quiet, | ||
const Index & | emission, | ||
const Index & | intensity_correction, | ||
const Verbosity & | verbosity | ||
) |
Calculate spectral_irradiance_field with Disort including a sun source.
Prepares actual input variables for Disort, runs it, and sorts the output into cloudbox_field.
This version uses the C implementation of Disort based on ::run_disort.
Altitudes, temperatures, VMRs and PNDs shall be provided with lat and lon dimensions removed
[in,out] | ws | Current workspace. |
[out] | spectral_irradiance_field | spectral irradiance field. |
[out] | disort_aux | Auxilary data to spectral_irradiance_field. |
[in] | f_grid | Frequency grid. |
[in] | p_grid | Pressure grid. |
[in] | z_profile | Profile of geometric altitudes. |
[in] | z_surface | Surface altitude. |
[in] | t_profile | Temperature profile. |
[in] | vmr_profiles | VMR profiles. |
[in] | pnd_profiles | PND profiles. |
[in] | scat_data | Array of single scattering data. |
[in] | suns | Array of sun(s). |
[in] | propmat_clearsky_agenda | calculates the absorption coefficient matrix. |
[in] | gas_scattering_agenda | Agenda agenda calculating the gas scattering cross section and matrix. |
[in] | cloudbox_limits | Cloudbox limits. |
[in] | surface_skin_t | Surface skin temperature. |
[in] | surface_scalar_reflectivity | Surface scalar reflectivity. |
[in] | sun_rte_los | local position of the sun top of cloudbox. |
[in] | gas_scattering_do | Flag to activate gas scattering. |
[in] | suns_do | Flag to activate the sun(s). |
[in] | disort_aux_vars | Selection of quantities for disort_aux. |
[in] | scale_factor | Geometric scaling factor, scales the sun spectral irradiance at the surface of the sun to the spectral irradiance of the sun at cloubbox top. |
[in] | nstreams | Number of quadrature angles (both hemispheres). |
[in] | Npfct | Number of angular grid points to calculate bulk phase function. |
[in] | only_tro | Flag indicating that only TRO scattering data is used. |
[in] | quiet | Silence warnings. |
[in] | emission | Enables blackbody emission. |
[in] | intensity_correction | Enables intensity correction (for low nstreams) |
[in] | verbosity | Verbosity setting. |
Definition at line 1334 of file disort.cc.
References add_normed_phase_functions(), ARTS_USER_ERROR, Conversion::cosd(), COSMIC_BG_TEMP, disort_verbosity, ext_abs_pfun_from_tro(), get_angs(), get_dtauc_ssalb(), get_gas_scattering_properties(), get_gasoptprop(), get_paroptprop(), get_parZ(), get_pfct(), get_pmom(), get_scat_bulk_layer(), Array< base >::nelem(), nlinspace(), reduced_1datm(), and SPEED_OF_LIGHT.
Referenced by DisortCalcIrradiance().
void surf_albedoCalc | ( | Workspace & | ws, |
VectorView | albedo, | ||
Numeric & | btemp, | ||
const Agenda & | surface_rtprop_agenda, | ||
ConstVectorView | f_grid, | ||
ConstVectorView | scat_za_grid, | ||
const Numeric & | surf_alt, | ||
const Verbosity & | verbosity | ||
) |
surf_albedoCalc
Computes surface albedo for DISORT using surface_rtprop_agenda.
This function calculates a hemispherical mean value.
[in,out] | ws | The workspace |
[out] | albedo | The computed albedo |
[out] | btemp | Upw. bts. |
[in] | surface_rtprop_agenda | Agenda to compute surf. props |
[in] | f_grid | Frequency grid |
[in] | scat_za_grid | Zenith angle grid |
[in] | surface_alt | surface altitude |
[in] | verbosity |
Definition at line 1722 of file disort.cc.
References chk_not_empty(), CREATE_OUT2, DEG2RAD, surface_rtprop_agendaExecute(), and w.
Referenced by DisortCalcWithARTSSurface().
void surf_albedoCalcSingleAngle | ( | Workspace & | ws, |
VectorView | albedo, | ||
Numeric & | btemp, | ||
const Agenda & | surface_rtprop_agenda, | ||
ConstVectorView | f_grid, | ||
const Numeric & | surf_alt, | ||
const Numeric & | inc_angle | ||
) |
surf_albedoCalcSingleAngle
Computes surface albedo for DISORT using surface_rtprop_agenda.
This function sets the albedo based on the reflectivity at the specifed incidence angle.
[in,out] | ws | The workspace |
[out] | albedo | The computed albedo |
[out] | btemp | Upw. bts. |
[in] | surface_rtprop_agenda | Agenda to compute surf. props |
[in] | f_grid | Frequency grid |
[in] | surface_alt | surface altitude |
[in] | inc_angle | incidence angle |
Definition at line 1902 of file disort.cc.
References surface_rtprop_agendaExecute().
Referenced by DisortCalcWithARTSSurface().