44 const Numeric pfct_threshold = 0.05;
53 const Index& atmfields_checked,
54 const Index& atmgeom_checked,
55 const Index& scat_data_checked,
56 const Index& cloudbox_checked,
57 const Index& cloudbox_on,
59 const Agenda& propmat_clearsky_agenda,
60 const Agenda& surface_rtprop_agenda,
61 const Index& atmosphere_dim,
69 const Index& stokes_dim,
71 const Index& nstreams,
74 const Index& add_straight_angles,
75 const Index& pfct_aa_grid_size,
77 const Index& auto_inc_nstreams,
79 const Index& za_interp_order,
80 const Index& cos_za_interp,
85 out1 <<
" Cloudbox is off, RT4 calculation is skipped.\n";
94 Index nhza, nhstreams, nummu;
95 check_rt4_input(nhstreams,
112 init_ifield(cloudbox_field, f_grid, cloudbox_limits, 2 * nummu, stokes_dim);
120 Vector mu_values(nummu, 0.);
121 Vector quad_weights(nummu, 0.);
123 get_quad_angles(mu_values,
140 Vector ground_albedo(nf, 0.);
141 Tensor3 ground_reflec(nf, stokes_dim, stokes_dim, 0.);
146 Tensor5 surf_refl_mat(nf, nummu, stokes_dim, nummu, stokes_dim, 0.);
147 Tensor3 surf_emis_vec(nf, nummu, stokes_dim, 0.);
152 surface_rtprop_agenda,
165 z_field(
joker, 0, 0),
166 t_field(
joker, 0, 0),
170 propmat_clearsky_agenda,
182 surface_rtprop_agenda,
197 za_grid_adjust(za_grid, mu_values, nummu);
207 const Index& atmfields_checked,
208 const Index& atmgeom_checked,
209 const Index& scat_data_checked,
210 const Index& cloudbox_checked,
211 const Index& cloudbox_on,
213 const Agenda& propmat_clearsky_agenda,
214 const Index& atmosphere_dim,
222 const Index& stokes_dim,
225 const Vector& surface_scalar_reflectivity,
226 const Tensor3& surface_reflectivity,
228 const Index& nstreams,
229 const String& pfct_method,
232 const Index& add_straight_angles,
233 const Index& pfct_aa_grid_size,
235 const Index& auto_inc_nstreams,
237 const Index& za_interp_order,
238 const Index& cos_za_interp,
243 out0 <<
" Cloudbox is off, RT4 calculation will be skipped.\n";
252 Index nhza, nhstreams, nummu;
253 check_rt4_input(nhstreams,
270 init_ifield(cloudbox_field, f_grid, cloudbox_limits, 2 * nummu, stokes_dim);
278 Vector mu_values(nummu, 0.);
279 Vector quad_weights(nummu, 0.);
281 get_quad_angles(mu_values,
298 Tensor5 surf_refl_mat(nf, nummu, stokes_dim, nummu, stokes_dim, 0.);
299 Tensor3 surf_emis_vec(nf, nummu, stokes_dim, 0.);
302 Vector ground_albedo(nf, 0.);
303 Tensor3 ground_reflec(nf, stokes_dim, stokes_dim, 0.);
307 get_rt4surf_props(ground_albedo,
313 surface_scalar_reflectivity,
314 surface_reflectivity,
315 surface_complex_refr_index,
325 z_field(
joker, 0, 0),
326 t_field(
joker, 0, 0),
330 propmat_clearsky_agenda,
357 za_grid_adjust(za_grid, mu_values, nummu);
398 throw runtime_error(
"This version of ARTS was compiled without RT4 support.");
441 throw runtime_error(
"This version of ARTS was compiled without RT4 support.");
451 rt4_test(out_rad, datapath, verbosity);
455 throw runtime_error(
"This version of ARTS was compiled without RT4 support.");
INDEX Index
The type to use for all integer numbers and indices.
A class implementing complex numbers for ARTS.
Declarations having to do with the four output streams.
Contains functions related to application of scattering solver RT4.
Index nelem() const
Returns the number of elements.
std::complex< Numeric > Complex
void toupper()
Convert to upper case.
NUMERIC Numeric
The type to use for all floating point numbers.
void init_ifield(Tensor7 &cloudbox_field, const Vector &f_grid, const ArrayOfIndex &cloudbox_limits, const Index &nang, const Index &stokes_dim)
init_ifield.
This can be used to make arrays out of anything.
void RT4CalcWithRT4Surface(Workspace &, Tensor7 &, Vector &, Vector &, const Index &, const Index &, const Index &, const Index &, const Index &, const ArrayOfIndex &, const Agenda &, const Index &, const Tensor4 &, const Tensor3 &, const Tensor3 &, const Tensor4 &, const Vector &, const ArrayOfArrayOfSingleScatteringData &, const Vector &, const Index &, const Matrix &, const Numeric &, const Vector &, const Tensor3 &, const GriddedField3 &, const Index &, const String &, const String &, const String &, const Index &, const Index &, const Index &, const Index &, const Index &, const Index &, const Numeric &, const Verbosity &)
WORKSPACE METHOD: RT4CalcWithRT4Surface.
Workspace methods and template functions for supergeneric XML IO.
void RT4Calc(Workspace &, Tensor7 &, Vector &, Vector &, const Index &, const Index &, const Index &, const Index &, const Index &, const ArrayOfIndex &, const Agenda &, const Agenda &, const Index &, const Tensor4 &, const Tensor3 &, const Tensor3 &, const Tensor4 &, const Vector &, const ArrayOfArrayOfSingleScatteringData &, const Vector &, const Index &, const Matrix &, const Index &, const String &, const String &, const Index &, const Index &, const Index &, const Index &, const Index &, const Index &, const Numeric &, const Verbosity &)
WORKSPACE METHOD: RT4Calc.
Index ncols() const
Returns the number of columns.
void RT4Test(Tensor4 &, const String &, const Verbosity &)
WORKSPACE METHOD: RT4Test.
Functions for disort interface.