ARTS 2.5.11 (git: 725533f0)
Go to the documentation of this file.
2 === File description
3 ===========================================================================*/
14#ifndef surface_h
15#define surface_h
17#include "matpack_complex.h"
18#include "matpack_data.h"
19#include "mystring.h"
20#include "ppath.h"
21#include "energylevelmap.h"
22#include "optproperties.h"
23#include "sun.h"
25class Agenda;
26class Workspace;
39Numeric calc_incang(ConstVectorView rte_los, ConstVectorView specular_los);
55Index index_of_zsurface(const Numeric& z_surface,
56 ConstVectorView z_profile);
74void surface_calc(Matrix& iy,
75 ConstTensor3View I,
76 ConstMatrixView surface_los,
77 ConstTensor4View surface_rmatrix,
78 ConstMatrixView surface_emission);
103void surface_specular_R_and_b(MatrixView surface_rmatrix,
104 VectorView surface_emission,
105 const Complex& Rv,
106 const Complex& Rh,
107 const Numeric& f,
108 const Index& stokes_dim,
109 const Numeric& surface_skin_t);
125void surface_props_check(const Index& atmosphere_dim,
126 const Vector& lat_grid,
127 const Vector& lon_grid,
128 const Tensor3& surface_props_data,
129 const ArrayOfString& surface_props_names);
149void surface_props_interp(Vector& v,
150 const String& vname,
151 const Index& atmosphere_dim,
152 const ArrayOfGridPos& gp_lat,
153 const ArrayOfGridPos& gp_lon,
154 const Matrix& itw,
155 const Tensor3& surface_props_data,
156 const ArrayOfString& surface_props_names);
172void dsurface_check(const ArrayOfString& surface_props_names,
173 const ArrayOfString& dsurface_names,
174 const ArrayOfTensor4 dsurface_rmatrix_dx,
175 const ArrayOfMatrix& dsurface_emission_dx);
224 Workspace& ws,
225 Matrix& iy_incoming,
226 Index& stars_visible,
227 Vector& specular_los,
228 const Vector& rtp_pos,
229 const Vector& rtp_los,
230 const Index& stokes_dim,
231 const Vector& f_grid,
232 const Index& atmosphere_dim,
233 const Vector& p_grid,
234 const Vector& lat_grid,
235 const Vector& lon_grid,
236 const Tensor3& z_field,
237 const Tensor3& t_field,
238 const EnergyLevelMap& nlte_field,
239 const Tensor4& vmr_field,
240 const ArrayOfArrayOfSpeciesTag& abs_species,
241 const Tensor3& wind_u_field,
242 const Tensor3& wind_v_field,
243 const Tensor3& wind_w_field,
244 const Tensor3& mag_u_field,
245 const Tensor3& mag_v_field,
246 const Tensor3& mag_w_field,
247 const Matrix& z_surface,
248 const Vector& refellipsoid,
249 const Tensor4& pnd_field,
250 const ArrayOfTensor4& dpnd_field_dx,
251 const ArrayOfString& scat_species,
252 const ArrayOfArrayOfSingleScatteringData& scat_data,
253 const Numeric& ppath_lmax,
254 const Numeric& ppath_lraytrace,
255 const Index& ppath_inside_cloudbox_do,
256 const Index& cloudbox_on,
257 const ArrayOfIndex& cloudbox_limits,
258 const Index& gas_scattering_do,
259 const Index& jacobian_do,
260 const ArrayOfRetrievalQuantity& jacobian_quantities,
261 const ArrayOfSun& suns,
262 const Numeric& rte_alonglos_v,
263 const Agenda& propmat_clearsky_agenda,
264 const Agenda& water_p_eq_agenda,
265 const Agenda& gas_scattering_agenda,
266 const Agenda& ppath_step_agenda,
267 const Verbosity& verbosity);
269#endif // surface_h
The Agenda class.
Workspace class.
Array< WorkspaceVariable > ws
Workspace variable container.
Class to map energy levels.
This file contains the definition of String, the ARTS string class.
Scattering database structure and functions.
Propagation path structure and functions.
Declaration of functions in
void surface_get_incoming_direct(Workspace &ws, Matrix &iy_incoming, Index &stars_visible, Vector &specular_los, const Vector &rtp_pos, const Vector &rtp_los, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Tensor3 &t_field, const EnergyLevelMap &nlte_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 Matrix &z_surface, const Vector &refellipsoid, const Tensor4 &pnd_field, const ArrayOfTensor4 &dpnd_field_dx, const ArrayOfString &scat_species, const ArrayOfArrayOfSingleScatteringData &scat_data, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Index &ppath_inside_cloudbox_do, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Index &gas_scattering_do, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfSun &suns, const Numeric &rte_alonglos_v, const Agenda &propmat_clearsky_agenda, const Agenda &water_p_eq_agenda, const Agenda &gas_scattering_agenda, const Agenda &ppath_step_agenda, const Verbosity &verbosity)
Calculate the incoming direct radiation at the surface for a given line of sight.
void dsurface_check(const ArrayOfString &surface_props_names, const ArrayOfString &dsurface_names, const ArrayOfTensor4 dsurface_rmatrix_dx, const ArrayOfMatrix &dsurface_emission_dx)
Peforms basic checks of the dsurface variables.
void surface_calc(Matrix &iy, ConstTensor3View I, ConstMatrixView surface_los, ConstTensor4View surface_rmatrix, ConstMatrixView surface_emission)
Weights together downwelling radiation and surface emission.
void surface_props_check(const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &surface_props_data, const ArrayOfString &surface_props_names)
Peforms basic checks of surface_props_data and surface_props_names
Numeric calc_incang(ConstVectorView rte_los, ConstVectorView specular_los)
Calculates the incidence angle for a flat surface, based on rte_los and specular_los.
void surface_props_interp(Vector &v, const String &vname, const Index &atmosphere_dim, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon, const Matrix &itw, const Tensor3 &surface_props_data, const ArrayOfString &surface_props_names)
Peforms an interpolation of surface_props_data
Index index_of_zsurface(const Numeric &z_surface, ConstVectorView z_profile)
Lccates the surface with respect to pressure levels.
void surface_specular_R_and_b(MatrixView surface_rmatrix, VectorView surface_emission, const Complex &Rv, const Complex &Rh, const Numeric &f, const Index &stokes_dim, const Numeric &surface_skin_t)
Sets up the surface reflection matrix and emission vector for the case of specular reflection.
#define v