ARTS  2.2.66
m_fos.cc File Reference

Workspace functions associated with the FOS scattering scheme. More...

#include <cmath>
#include <stdexcept>
#include "arts.h"
#include "arts_omp.h"
#include "auto_md.h"
#include "doit.h"
#include "math_funcs.h"
#include "montecarlo.h"
#include "rte.h"

Go to the source code of this file.

Functions

void fos (Workspace &ws, Matrix &iy, ArrayOfTensor4 &iy_aux, Ppath &ppath, ArrayOfTensor3 &diy_dx, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &z_field, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfArrayOfSpeciesTag &abs_species, const Tensor3 &wind_u_field, const Tensor3 &wind_v_field, const Tensor3 &wind_w_field, const Tensor3 &mag_u_field, const Tensor3 &mag_v_field, const Tensor3 &mag_w_field, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const Index &use_mean_scat_data, const ArrayOfSingleScatteringData &scat_data_array, const Matrix &particle_masses, const String &iy_unit, const ArrayOfString &iy_aux_vars, const Index &jacobian_do, const Agenda &ppath_agenda, const Agenda &blackbody_radiation_agenda, const Agenda &propmat_clearsky_agenda, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Numeric &rte_alonglos_v, const Numeric &ppath_lraytrace, const Matrix &fos_scatint_angles, const Vector &fos_iyin_za_angles, const Index &fos_za_interporder, const Index &fos_n, const Index &fos_i, const Verbosity &verbosity)
 
void iyFOS (Workspace &ws, Matrix &iy, ArrayOfTensor4 &iy_aux, Ppath &ppath, ArrayOfTensor3 &diy_dx, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &z_field, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfArrayOfSpeciesTag &abs_species, const Tensor3 &wind_u_field, const Tensor3 &wind_v_field, const Tensor3 &wind_w_field, const Tensor3 &mag_u_field, const Tensor3 &mag_v_field, const Tensor3 &mag_w_field, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const Index &use_mean_scat_data, const ArrayOfSingleScatteringData &scat_data_array, const Matrix &particle_masses, const String &iy_unit, const ArrayOfString &iy_aux_vars, const Index &jacobian_do, const Agenda &ppath_agenda, const Agenda &blackbody_radiation_agenda, const Agenda &propmat_clearsky_agenda, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Numeric &rte_alonglos_v, const Numeric &ppath_lraytrace, const Matrix &fos_scatint_angles, const Vector &fos_iyin_za_angles, const Index &fos_za_interporder, const Index &fos_n, const Verbosity &verbosity)
 WORKSPACE METHOD: iyFOS. More...
 

Variables

const Numeric DEG2RAD
 
const Numeric RAD2DEG
 
const Numeric PI
 

Detailed Description

Workspace functions associated with the FOS scattering scheme.

Author
Patrick Eriksson patri.nosp@m.ck.e.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2013-04-29

These functions are listed in the doxygen documentation as entries of the file auto_md.h.

Definition in file m_fos.cc.

Function Documentation

◆ fos()

void fos ( Workspace ws,
Matrix iy,
ArrayOfTensor4 iy_aux,
Ppath ppath,
ArrayOfTensor3 diy_dx,
const Index stokes_dim,
const Vector f_grid,
const Index atmosphere_dim,
const Vector p_grid,
const Tensor3 z_field,
const Tensor3 t_field,
const Tensor4 vmr_field,
const ArrayOfArrayOfSpeciesTag abs_species,
const Tensor3 wind_u_field,
const Tensor3 wind_v_field,
const Tensor3 wind_w_field,
const Tensor3 mag_u_field,
const Tensor3 mag_v_field,
const Tensor3 mag_w_field,
const Index cloudbox_on,
const ArrayOfIndex cloudbox_limits,
const Tensor4 pnd_field,
const Index use_mean_scat_data,
const ArrayOfSingleScatteringData scat_data_array,
const Matrix particle_masses,
const String iy_unit,
const ArrayOfString iy_aux_vars,
const Index jacobian_do,
const Agenda ppath_agenda,
const Agenda blackbody_radiation_agenda,
const Agenda propmat_clearsky_agenda,
const Agenda iy_main_agenda,
const Agenda iy_space_agenda,
const Agenda iy_surface_agenda,
const Index iy_agenda_call1,
const Tensor3 iy_transmission,
const Vector rte_pos,
const Vector rte_los,
const Vector rte_pos2,
const Numeric rte_alonglos_v,
const Numeric ppath_lraytrace,
const Matrix fos_scatint_angles,
const Vector fos_iyin_za_angles,
const Index fos_za_interporder,
const Index fos_n,
const Index fos_i,
const Verbosity verbosity 
)

◆ iyFOS()

void iyFOS ( Workspace ws,
Matrix iy,
ArrayOfTensor4 iy_aux,
Ppath ppath,
ArrayOfTensor3 diy_dx,
const Index stokes_dim,
const Vector f_grid,
const Index atmosphere_dim,
const Vector p_grid,
const Tensor3 z_field,
const Tensor3 t_field,
const Tensor4 vmr_field,
const ArrayOfArrayOfSpeciesTag abs_species,
const Tensor3 wind_u_field,
const Tensor3 wind_v_field,
const Tensor3 wind_w_field,
const Tensor3 mag_u_field,
const Tensor3 mag_v_field,
const Tensor3 mag_w_field,
const Index cloudbox_on,
const ArrayOfIndex cloudbox_limits,
const Tensor4 pnd_field,
const Index use_mean_scat_data,
const ArrayOfSingleScatteringData scat_data_array,
const Matrix particle_masses,
const String iy_unit,
const ArrayOfString iy_aux_vars,
const Index jacobian_do,
const Agenda ppath_agenda,
const Agenda blackbody_radiation_agenda,
const Agenda propmat_clearsky_agenda,
const Agenda iy_main_agenda,
const Agenda iy_space_agenda,
const Agenda iy_surface_agenda,
const Index iy_agenda_call1,
const Tensor3 iy_transmission,
const Vector rte_pos,
const Vector rte_los,
const Vector rte_pos2,
const Numeric rte_alonglos_v,
const Numeric ppath_lraytrace,
const Matrix fos_scatint_angles,
const Vector fos_iyin_za_angles,
const Index fos_za_interporder,
const Index fos_n,
const Verbosity verbosity 
)

WORKSPACE METHOD: iyFOS.

Method in development. Don't use without contacting Patrick.

Regarding radiance unit, works exactly as iyEmissionStandard.

The fos_n argument determines the maximum scattering order that will be considered. For example, 1 corresponds to that only single scattering is considered. The value 0 is accepted and results in calculations of clear-sky type. In the later case, particle absorption/emission is considered if cloudbox is active. If cloudbox is not active,clear-sky results are returned for all values of fos_n.

The following auxiliary data can be obtained: <br> "Pressure": The pressure along the propagation path. <br> Size: [1,1,1,np]. <br> "Temperature": The temperature along the propagation path. <br> Size: [1,1,1,np]. <br> "VMR, species X": VMR of the species with index X (zero based). <br> For example, adding the string "VMR, species 0" extracts the <br> VMR of the first species. Size: [1,1,1,np]. <br> "Absorption, summed": The total absorption matrix along the <br> path. Size: [nf,ns,ns,np]. <br> "Absorption, species X": The absorption matrix along the path <br> for an individual species (X works as for VMR). <br> Size: [nf,ns,ns,np]. <br> "PND, type X": The particle number density for particle type X <br> (ie. corresponds to book X in pnd_field). Size: [1,1,1,np]. <br> "Mass content, X": The particle content for mass category X. <br> This corresponds to column X in particle_masses (zero- <br> based indexing). Size: [1,1,1,np]. "Radiative background": Index value flagging the radiative <br> background. The following coding is used: 0=space and <br> and 1=surface. Size: [nf,1,1,1]. <br> "iy": The radiance at each point along the path (iy_unit is. <br> considered). Size: [nf,ns,1,np]. "Optical depth": The scalar optical depth between the <br> observation point and the end of the primary propagation path <br> (ie. the optical depth to the surface or space.). Calculated <br> in a pure scalar manner, and not dependent on direction. <br> Size: [nf,1,1,1]. where <br> nf: Number of frequencies. <br> ns: Number of Stokes elements. <br> np: Number of propagation path points.

The auxiliary data are returned in iy_aux with quantities selected by iy_aux_vars. Most variables require that the method is called directly or by iyCalc. For calculations using yCalc, the selection is restricted to the variables marked with *.

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[out]iyWS Output
[out]iy_auxWS Output
[out]ppathWS Output
[out]diy_dxWS Output
[in]stokes_dimWS Input
[in]f_gridWS Input
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]z_fieldWS Input
[in]t_fieldWS Input
[in]vmr_fieldWS Input
[in]abs_speciesWS Input
[in]wind_u_fieldWS Input
[in]wind_v_fieldWS Input
[in]wind_w_fieldWS Input
[in]mag_u_fieldWS Input
[in]mag_v_fieldWS Input
[in]mag_w_fieldWS Input
[in]cloudbox_onWS Input
[in]cloudbox_limitsWS Input
[in]pnd_fieldWS Input
[in]use_mean_scat_dataWS Input
[in]scat_data_arrayWS Input
[in]particle_massesWS Input
[in]iy_unitWS Input
[in]iy_aux_varsWS Input
[in]jacobian_doWS Input
[in]ppath_agendaWS Input
[in]blackbody_radiation_agendaWS Input
[in]propmat_clearsky_agendaWS Input
[in]iy_main_agendaWS Input
[in]iy_space_agendaWS Input
[in]iy_surface_agendaWS Input
[in]iy_agenda_call1WS Input
[in]iy_transmissionWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]rte_pos2WS Input
[in]rte_alonglos_vWS Input
[in]ppath_lraytraceWS Input
[in]fos_scatint_anglesWS Input
[in]fos_iyin_za_anglesWS Input
[in]fos_za_interporderGeneric Input (Default: "1")
[in]fos_nGeneric Input (Default: "1")

Definition at line 750 of file m_fos.cc.

References fos(), joker, last(), max, min, ConstMatrixView::ncols(), and ConstVectorView::nelem().

Referenced by iyFOS_g().

Variable Documentation

◆ DEG2RAD

const Numeric DEG2RAD
extern

◆ PI

const Numeric PI
extern

Referenced by fos().

◆ RAD2DEG

const Numeric RAD2DEG
extern