1 #ifndef LIDORT_INTERFACE_TYPES_H 2 #define LIDORT_INTERFACE_TYPES_H 5 #include <blitz/array.h> 6 #include <boost/shared_ptr.hpp> 13 #define FORTRAN_TRUE_INT 1 15 #define BYTE_SIZE_ERROR_CHECK(var_name, c_size, f_size) \ 16 if(c_size != f_size) { \ 17 std::stringstream err_msg; \ 18 err_msg << "Size of C variable: " << c_size \ 19 << " for " << var_name \ 20 << " does not match size of Fortran variable: " << f_size; \ 21 throw Exception(err_msg.str()); \ 130 output_stream <<
"Lidort_Pars:" << std::endl
139 <<
" maxstreams: " << obj.
maxstreams << std::endl
140 <<
" maxlayers: " << obj.
maxlayers << std::endl
144 <<
" maxbeams: " << obj.
maxbeams << std::endl
164 <<
" maxmoments: " << obj.
maxmoments << std::endl
165 <<
" maxfourier: " << obj.
maxfourier << std::endl
169 <<
" maxtotal: " << obj.
maxtotal << std::endl
171 <<
" one: " << obj.
one << std::endl
172 <<
" zero: " << obj.
zero << std::endl
173 <<
" onep5: " << obj.
onep5 << std::endl
174 <<
" two: " << obj.
two << std::endl
175 <<
" three: " << obj.
three << std::endl
176 <<
" four: " << obj.
four << std::endl
177 <<
" quarter: " << obj.
quarter << std::endl
178 <<
" half: " << obj.
half << std::endl
179 <<
" minus_one: " << obj.
minus_one << std::endl
180 <<
" minus_two: " << obj.
minus_two << std::endl
181 <<
" pie: " << obj.
pie << std::endl
182 <<
" deg_to_rad: " << obj.
deg_to_rad << std::endl
183 <<
" pi2: " << obj.
pi2 << std::endl
184 <<
" pi4: " << obj.
pi4 << std::endl
185 <<
" pio2: " << obj.
pio2 << std::endl
186 <<
" pio4: " << obj.
pio4 << std::endl
187 <<
" eps3: " << obj.
eps3 << std::endl
188 <<
" eps4: " << obj.
eps4 << std::endl
189 <<
" eps5: " << obj.
eps5 << std::endl
191 <<
" smallnum: " << obj.
smallnum << std::endl
192 <<
" bigexp: " << obj.
bigexp << std::endl
200 <<
" lidort_info: " << obj.
lidort_info << std::endl
203 <<
" upidx: " << obj.
upidx << std::endl
204 <<
" dnidx: " << obj.
dnidx << std::endl
209 <<
" lidense_idx: " << obj.
lidense_idx << std::endl
210 <<
" hapke_idx: " << obj.
hapke_idx << std::endl
211 <<
" roujean_idx: " << obj.
roujean_idx << std::endl
212 <<
" rahman_idx: " << obj.
rahman_idx << std::endl
213 <<
" coxmunk_idx: " << obj.
coxmunk_idx << std::endl
218 <<
" maxbrdf_idx: " << obj.
maxbrdf_idx << std::endl;
219 return output_stream;
224 Lidort_Pars() :
lidort_version_number(),
lidort_inunit(0),
lidort_scenunit(0),
lidort_funit(0),
lidort_resunit(0),
lidort_errunit(0),
lidort_dbgunit(0),
max_messages(0),
maxstreams(0),
maxlayers(0),
maxfinelayers(0),
maxmoments_input(0),
max_thermal_coeffs(0),
maxbeams(0),
max_user_streams(0),
max_user_relazms(0),
max_user_obsgeoms(0),
max_user_levels(0),
max_partlayers(0),
max_taylor_terms(0),
max_directions(0),
max_brdf_kernels(0),
max_brdf_parameters(0),
maxstreams_brdf(0),
max_msrs_muquad(0),
max_msrs_phiquad(0),
maxstreams_scaling(0),
max_atmoswfs(0),
max_surfacewfs(0),
max_sleavewfs(0),
max_geometries(0),
max_allstrms(0),
max_allstrms_p1(0),
maxmoments(0),
maxfourier(0),
maxsthalf_brdf(0),
maxstreams_2(0),
maxstreams_p1(0),
maxtotal(0),
maxbandtotal(0),
one(0),
zero(0),
onep5(0),
two(0),
three(0),
four(0),
quarter(0),
half(0),
minus_one(0),
minus_two(0),
pie(0),
deg_to_rad(0),
pi2(0),
pi4(0),
pio2(0),
pio4(0),
eps3(0),
eps4(0),
eps5(0),
taylor_small(0),
smallnum(0),
bigexp(0),
hopital_tolerance(0),
omega_smallnum(0),
max_tau_spath(0),
max_tau_upath(0),
max_tau_qpath(0),
lidort_serious(0),
lidort_warning(0),
lidort_info(0),
lidort_debug(0),
lidort_success(0),
upidx(0),
dnidx(0),
lambertian_idx(0),
rossthin_idx(0),
rossthick_idx(0),
lisparse_idx(0),
lidense_idx(0),
hapke_idx(0),
roujean_idx(0),
rahman_idx(0),
coxmunk_idx(0),
bpdfsoil_idx(0),
bpdfvegn_idx(0),
bpdfndvi_idx(0),
newcmglint_idx(0),
maxbrdf_idx(0) {
233 Lidort_Structure(
void* allocated_f_type_c) : fortran_type_c(allocated_f_type_c), owns_pointer(false) {}
236 virtual void print(std::ostream &output_stream)
const = 0;
254 int bs_do_kernel_factor_wfs__f_shapes[1];
258 int bs_do_kernel_params_wfs__f_shapes[2];
262 int bs_do_kparams_derivs__f_shapes[1];
310 blitz::Array<bool,1> as_bool(bs_do_kernel_factor_wfs_.shape());
311 as_bool = blitz::where(bs_do_kernel_factor_wfs_ != 0,
true,
false);
316 blitz::Array<int,1> as_int(bs_do_kernel_factor_wfs_.shape());
317 as_int = blitz::where(bs_do_kernel_factor_wfs_in ==
true,
FORTRAN_TRUE_INT, 0);
318 bs_do_kernel_factor_wfs_ = as_int;
323 blitz::Array<bool,2> as_bool(bs_do_kernel_params_wfs_.shape());
324 as_bool = blitz::where(bs_do_kernel_params_wfs_ != 0,
true,
false);
329 blitz::Array<int,2> as_int(bs_do_kernel_params_wfs_.shape());
330 as_int = blitz::where(bs_do_kernel_params_wfs_in ==
true,
FORTRAN_TRUE_INT, 0);
331 bs_do_kernel_params_wfs_ = as_int;
336 blitz::Array<bool,1> as_bool(bs_do_kparams_derivs_.shape());
337 as_bool = blitz::where(bs_do_kparams_derivs_ != 0,
true,
false);
342 blitz::Array<int,1> as_int(bs_do_kparams_derivs_.shape());
343 as_int = blitz::where(bs_do_kparams_derivs_in ==
true,
FORTRAN_TRUE_INT, 0);
344 bs_do_kparams_derivs_ = as_int;
349 return *transfer_struct_c.bs_n_surface_wfs_;
353 *transfer_struct_c.bs_n_surface_wfs_ = bs_n_surface_wfs_in;
358 return *transfer_struct_c.bs_n_kernel_factor_wfs_;
362 *transfer_struct_c.bs_n_kernel_factor_wfs_ = bs_n_kernel_factor_wfs_in;
367 return *transfer_struct_c.bs_n_kernel_params_wfs_;
371 *transfer_struct_c.bs_n_kernel_params_wfs_ = bs_n_kernel_params_wfs_in;
376 return *transfer_struct_c.bs_do_bsavalue_wf_ != 0;
380 *transfer_struct_c.bs_do_bsavalue_wf_ = bs_do_bsavalue_wf_in ?
FORTRAN_TRUE_INT : 0;
385 return *transfer_struct_c.bs_do_wsavalue_wf_ != 0;
389 *transfer_struct_c.bs_do_wsavalue_wf_ = bs_do_wsavalue_wf_in ?
FORTRAN_TRUE_INT : 0;
394 return *transfer_struct_c.bs_do_windspeed_wf_ != 0;
398 *transfer_struct_c.bs_do_windspeed_wf_ = bs_do_windspeed_wf_in ?
FORTRAN_TRUE_INT : 0;
405 virtual void print(std::ostream &output_stream)
const {
406 output_stream <<
"Brdf_Linsup_Inputs:" << std::endl
407 <<
"bs_do_kernel_factor_wfs: " << std::endl << bs_do_kernel_factor_wfs() << std::endl
408 <<
"bs_do_kernel_params_wfs: " << std::endl << bs_do_kernel_params_wfs() << std::endl
409 <<
" bs_do_kparams_derivs: " << std::endl << bs_do_kparams_derivs() << std::endl
410 <<
" bs_n_surface_wfs: " << bs_n_surface_wfs() << std::endl
411 <<
" bs_n_kernel_factor_wfs: " << bs_n_kernel_factor_wfs() << std::endl
412 <<
" bs_n_kernel_params_wfs: " << bs_n_kernel_params_wfs() << std::endl
413 <<
" bs_do_bsavalue_wf: " << bs_do_bsavalue_wf() << std::endl
414 <<
" bs_do_wsavalue_wf: " << bs_do_wsavalue_wf() << std::endl
415 <<
" bs_do_windspeed_wf: " << bs_do_windspeed_wf() << std::endl;
420 BYTE_SIZE_ERROR_CHECK(
"bs_do_kernel_factor_wfs_",
sizeof(*transfer_struct_c.bs_do_kernel_factor_wfs_),transfer_struct_c.bs_do_kernel_factor_wfs__f_byte_size);
421 BYTE_SIZE_ERROR_CHECK(
"bs_do_kernel_params_wfs_",
sizeof(*transfer_struct_c.bs_do_kernel_params_wfs_),transfer_struct_c.bs_do_kernel_params_wfs__f_byte_size);
422 BYTE_SIZE_ERROR_CHECK(
"bs_do_kparams_derivs_",
sizeof(*transfer_struct_c.bs_do_kparams_derivs_),transfer_struct_c.bs_do_kparams_derivs__f_byte_size);
423 BYTE_SIZE_ERROR_CHECK(
"bs_n_surface_wfs_",
sizeof(*transfer_struct_c.bs_n_surface_wfs_),transfer_struct_c.bs_n_surface_wfs__f_byte_size);
424 BYTE_SIZE_ERROR_CHECK(
"bs_n_kernel_factor_wfs_",
sizeof(*transfer_struct_c.bs_n_kernel_factor_wfs_),transfer_struct_c.bs_n_kernel_factor_wfs__f_byte_size);
425 BYTE_SIZE_ERROR_CHECK(
"bs_n_kernel_params_wfs_",
sizeof(*transfer_struct_c.bs_n_kernel_params_wfs_),transfer_struct_c.bs_n_kernel_params_wfs__f_byte_size);
426 BYTE_SIZE_ERROR_CHECK(
"bs_do_bsavalue_wf_",
sizeof(*transfer_struct_c.bs_do_bsavalue_wf_),transfer_struct_c.bs_do_bsavalue_wf__f_byte_size);
427 BYTE_SIZE_ERROR_CHECK(
"bs_do_wsavalue_wf_",
sizeof(*transfer_struct_c.bs_do_wsavalue_wf_),transfer_struct_c.bs_do_wsavalue_wf__f_byte_size);
428 BYTE_SIZE_ERROR_CHECK(
"bs_do_windspeed_wf_",
sizeof(*transfer_struct_c.bs_do_windspeed_wf_),transfer_struct_c.bs_do_windspeed_wf__f_byte_size);
433 void link_blitz_arrays() {
434 bs_do_kernel_factor_wfs_.reference(blitz::Array<int, 1>(transfer_struct_c.bs_do_kernel_factor_wfs_,
435 blitz::shape(transfer_struct_c.bs_do_kernel_factor_wfs__f_shapes[0]),
436 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
437 bs_do_kernel_params_wfs_.reference(blitz::Array<int, 2>(transfer_struct_c.bs_do_kernel_params_wfs_,
438 blitz::shape(transfer_struct_c.bs_do_kernel_params_wfs__f_shapes[0],
439 transfer_struct_c.bs_do_kernel_params_wfs__f_shapes[1]),
440 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
441 bs_do_kparams_derivs_.reference(blitz::Array<int, 1>(transfer_struct_c.bs_do_kparams_derivs_,
442 blitz::shape(transfer_struct_c.bs_do_kparams_derivs__f_shapes[0]),
443 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
447 void link_nested_types() {
453 blitz::Array<int, 1> bs_do_kernel_factor_wfs_;
454 blitz::Array<int, 2> bs_do_kernel_params_wfs_;
455 blitz::Array<int, 1> bs_do_kparams_derivs_;
470 int bs_ls_dbounce_brdfunc__f_shapes[4];
474 int bs_ls_brdf_f_0__f_shapes[4];
478 int bs_ls_brdf_f__f_shapes[4];
482 int bs_ls_user_brdf_f_0__f_shapes[4];
486 int bs_ls_user_brdf_f__f_shapes[4];
490 int bs_ls_emissivity__f_shapes[2];
494 int bs_ls_user_emissivity__f_shapes[2];
524 return bs_ls_dbounce_brdfunc_;
528 bs_ls_dbounce_brdfunc_ = bs_ls_dbounce_brdfunc_in;
533 return bs_ls_brdf_f_0_;
537 bs_ls_brdf_f_0_ = bs_ls_brdf_f_0_in;
542 return bs_ls_brdf_f_;
546 bs_ls_brdf_f_ = bs_ls_brdf_f_in;
551 return bs_ls_user_brdf_f_0_;
555 bs_ls_user_brdf_f_0_ = bs_ls_user_brdf_f_0_in;
560 return bs_ls_user_brdf_f_;
564 bs_ls_user_brdf_f_ = bs_ls_user_brdf_f_in;
569 return bs_ls_emissivity_;
573 bs_ls_emissivity_ = bs_ls_emissivity_in;
578 return bs_ls_user_emissivity_;
582 bs_ls_user_emissivity_ = bs_ls_user_emissivity_in;
589 virtual void print(std::ostream &output_stream)
const {
590 output_stream <<
"Brdf_Linsup_Outputs:" << std::endl
591 <<
"bs_ls_dbounce_brdfunc: " << std::endl << bs_ls_dbounce_brdfunc() << std::endl
592 <<
" bs_ls_brdf_f_0: " << std::endl << bs_ls_brdf_f_0() << std::endl
593 <<
" bs_ls_brdf_f: " << std::endl << bs_ls_brdf_f() << std::endl
594 <<
" bs_ls_user_brdf_f_0: " << std::endl << bs_ls_user_brdf_f_0() << std::endl
595 <<
" bs_ls_user_brdf_f: " << std::endl << bs_ls_user_brdf_f() << std::endl
596 <<
" bs_ls_emissivity: " << std::endl << bs_ls_emissivity() << std::endl
597 <<
"bs_ls_user_emissivity: " << std::endl << bs_ls_user_emissivity() << std::endl;
602 BYTE_SIZE_ERROR_CHECK(
"bs_ls_dbounce_brdfunc_",
sizeof(*transfer_struct_c.bs_ls_dbounce_brdfunc_),transfer_struct_c.bs_ls_dbounce_brdfunc__f_byte_size);
603 BYTE_SIZE_ERROR_CHECK(
"bs_ls_brdf_f_0_",
sizeof(*transfer_struct_c.bs_ls_brdf_f_0_),transfer_struct_c.bs_ls_brdf_f_0__f_byte_size);
604 BYTE_SIZE_ERROR_CHECK(
"bs_ls_brdf_f_",
sizeof(*transfer_struct_c.bs_ls_brdf_f_),transfer_struct_c.bs_ls_brdf_f__f_byte_size);
605 BYTE_SIZE_ERROR_CHECK(
"bs_ls_user_brdf_f_0_",
sizeof(*transfer_struct_c.bs_ls_user_brdf_f_0_),transfer_struct_c.bs_ls_user_brdf_f_0__f_byte_size);
606 BYTE_SIZE_ERROR_CHECK(
"bs_ls_user_brdf_f_",
sizeof(*transfer_struct_c.bs_ls_user_brdf_f_),transfer_struct_c.bs_ls_user_brdf_f__f_byte_size);
607 BYTE_SIZE_ERROR_CHECK(
"bs_ls_emissivity_",
sizeof(*transfer_struct_c.bs_ls_emissivity_),transfer_struct_c.bs_ls_emissivity__f_byte_size);
608 BYTE_SIZE_ERROR_CHECK(
"bs_ls_user_emissivity_",
sizeof(*transfer_struct_c.bs_ls_user_emissivity_),transfer_struct_c.bs_ls_user_emissivity__f_byte_size);
613 void link_blitz_arrays() {
614 bs_ls_dbounce_brdfunc_.reference(blitz::Array<double, 4>(transfer_struct_c.bs_ls_dbounce_brdfunc_,
615 blitz::shape(transfer_struct_c.bs_ls_dbounce_brdfunc__f_shapes[0],
616 transfer_struct_c.bs_ls_dbounce_brdfunc__f_shapes[1],
617 transfer_struct_c.bs_ls_dbounce_brdfunc__f_shapes[2],
618 transfer_struct_c.bs_ls_dbounce_brdfunc__f_shapes[3]),
619 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
620 bs_ls_brdf_f_0_.reference(blitz::Array<double, 4>(transfer_struct_c.bs_ls_brdf_f_0_,
621 blitz::shape(transfer_struct_c.bs_ls_brdf_f_0__f_shapes[0],
622 transfer_struct_c.bs_ls_brdf_f_0__f_shapes[1],
623 transfer_struct_c.bs_ls_brdf_f_0__f_shapes[2],
624 transfer_struct_c.bs_ls_brdf_f_0__f_shapes[3]),
625 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
626 bs_ls_brdf_f_.reference(blitz::Array<double, 4>(transfer_struct_c.bs_ls_brdf_f_,
627 blitz::shape(transfer_struct_c.bs_ls_brdf_f__f_shapes[0],
628 transfer_struct_c.bs_ls_brdf_f__f_shapes[1],
629 transfer_struct_c.bs_ls_brdf_f__f_shapes[2],
630 transfer_struct_c.bs_ls_brdf_f__f_shapes[3]),
631 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
632 bs_ls_user_brdf_f_0_.reference(blitz::Array<double, 4>(transfer_struct_c.bs_ls_user_brdf_f_0_,
633 blitz::shape(transfer_struct_c.bs_ls_user_brdf_f_0__f_shapes[0],
634 transfer_struct_c.bs_ls_user_brdf_f_0__f_shapes[1],
635 transfer_struct_c.bs_ls_user_brdf_f_0__f_shapes[2],
636 transfer_struct_c.bs_ls_user_brdf_f_0__f_shapes[3]),
637 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
638 bs_ls_user_brdf_f_.reference(blitz::Array<double, 4>(transfer_struct_c.bs_ls_user_brdf_f_,
639 blitz::shape(transfer_struct_c.bs_ls_user_brdf_f__f_shapes[0],
640 transfer_struct_c.bs_ls_user_brdf_f__f_shapes[1],
641 transfer_struct_c.bs_ls_user_brdf_f__f_shapes[2],
642 transfer_struct_c.bs_ls_user_brdf_f__f_shapes[3]),
643 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
644 bs_ls_emissivity_.reference(blitz::Array<double, 2>(transfer_struct_c.bs_ls_emissivity_,
645 blitz::shape(transfer_struct_c.bs_ls_emissivity__f_shapes[0],
646 transfer_struct_c.bs_ls_emissivity__f_shapes[1]),
647 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
648 bs_ls_user_emissivity_.reference(blitz::Array<double, 2>(transfer_struct_c.bs_ls_user_emissivity_,
649 blitz::shape(transfer_struct_c.bs_ls_user_emissivity__f_shapes[0],
650 transfer_struct_c.bs_ls_user_emissivity__f_shapes[1]),
651 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
655 void link_nested_types() {
661 blitz::Array<double, 4> bs_ls_dbounce_brdfunc_;
662 blitz::Array<double, 4> bs_ls_brdf_f_0_;
663 blitz::Array<double, 4> bs_ls_brdf_f_;
664 blitz::Array<double, 4> bs_ls_user_brdf_f_0_;
665 blitz::Array<double, 4> bs_ls_user_brdf_f_;
666 blitz::Array<double, 2> bs_ls_emissivity_;
667 blitz::Array<double, 2> bs_ls_user_emissivity_;
677 void brdf_sup_inputs_bs_brdf_names_get(
void **fortran_type_c,
const int* bs_brdf_names_in_shape_1,
const int* bs_brdf_names_in_len,
const char* bs_brdf_names_in);
704 int bs_beam_szas__f_shapes[1];
711 int bs_user_relazms__f_shapes[1];
718 int bs_user_angles_input__f_shapes[1];
725 int bs_user_obsgeoms__f_shapes[2];
732 int bs_brdf_names__f_shapes[1];
736 int bs_which_brdf__f_shapes[1];
740 int bs_n_brdf_parameters__f_shapes[1];
744 int bs_brdf_parameters__f_shapes[2];
748 int bs_lambertian_kernel_flag__f_shapes[1];
752 int bs_brdf_factors__f_shapes[1];
792 int bs_winddir__f_shapes[1];
846 return *transfer_struct_c.bs_do_user_streams_ != 0;
850 *transfer_struct_c.bs_do_user_streams_ = bs_do_user_streams_in ?
FORTRAN_TRUE_INT : 0;
855 return *transfer_struct_c.bs_do_brdf_surface_ != 0;
859 *transfer_struct_c.bs_do_brdf_surface_ = bs_do_brdf_surface_in ?
FORTRAN_TRUE_INT : 0;
864 return *transfer_struct_c.bs_do_surface_emission_ != 0;
868 *transfer_struct_c.bs_do_surface_emission_ = bs_do_surface_emission_in ?
FORTRAN_TRUE_INT : 0;
873 return *transfer_struct_c.bs_do_solar_sources_ != 0;
877 *transfer_struct_c.bs_do_solar_sources_ = bs_do_solar_sources_in ?
FORTRAN_TRUE_INT : 0;
882 return *transfer_struct_c.bs_do_user_obsgeoms_ != 0;
886 *transfer_struct_c.bs_do_user_obsgeoms_ = bs_do_user_obsgeoms_in ?
FORTRAN_TRUE_INT : 0;
891 return *transfer_struct_c.bs_nstreams_;
895 *transfer_struct_c.bs_nstreams_ = bs_nstreams_in;
900 return *transfer_struct_c.bs_nbeams_;
904 *transfer_struct_c.bs_nbeams_ = bs_nbeams_in;
909 return bs_beam_szas_;
913 bs_beam_szas_ = bs_beam_szas_in;
918 return *transfer_struct_c.bs_n_user_relazms_;
922 *transfer_struct_c.bs_n_user_relazms_ = bs_n_user_relazms_in;
927 return bs_user_relazms_;
931 bs_user_relazms_ = bs_user_relazms_in;
936 return *transfer_struct_c.bs_n_user_streams_;
940 *transfer_struct_c.bs_n_user_streams_ = bs_n_user_streams_in;
945 return bs_user_angles_input_;
949 bs_user_angles_input_ = bs_user_angles_input_in;
954 return *transfer_struct_c.bs_n_user_obsgeoms_;
958 *transfer_struct_c.bs_n_user_obsgeoms_ = bs_n_user_obsgeoms_in;
963 return bs_user_obsgeoms_;
967 bs_user_obsgeoms_ = bs_user_obsgeoms_in;
972 return *transfer_struct_c.bs_n_brdf_kernels_;
976 *transfer_struct_c.bs_n_brdf_kernels_ = bs_n_brdf_kernels_in;
981 std::vector< std::string > bs_brdf_names_ret;
982 blitz::Array<char, 2> bs_brdf_names_lcl = blitz::Array<char, 2>(transfer_struct_c.bs_brdf_names__f_shapes[0], transfer_struct_c.bs_brdf_names__f_len+1, blitz::ColumnMajorArray<2>());
983 brdf_sup_inputs_bs_brdf_names_get(const_cast<void**>(&fortran_type_c), &transfer_struct_c.bs_brdf_names__f_shapes[0], &transfer_struct_c.bs_brdf_names__f_len, bs_brdf_names_lcl.dataFirst());
984 for(
int dim_0_idx = 0; dim_0_idx < bs_brdf_names_lcl.extent(0); dim_0_idx++)
985 bs_brdf_names_ret.push_back( std::string(std::string(bs_brdf_names_lcl(dim_0_idx, blitz::Range::all()).begin(), bs_brdf_names_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
986 return bs_brdf_names_ret;
991 return bs_which_brdf_;
995 bs_which_brdf_ = bs_which_brdf_in;
1000 return bs_n_brdf_parameters_;
1004 bs_n_brdf_parameters_ = bs_n_brdf_parameters_in;
1009 return bs_brdf_parameters_;
1013 bs_brdf_parameters_ = bs_brdf_parameters_in;
1018 blitz::Array<bool,1> as_bool(bs_lambertian_kernel_flag_.shape());
1019 as_bool = blitz::where(bs_lambertian_kernel_flag_ != 0,
true,
false);
1024 blitz::Array<int,1> as_int(bs_lambertian_kernel_flag_.shape());
1025 as_int = blitz::where(bs_lambertian_kernel_flag_in ==
true,
FORTRAN_TRUE_INT, 0);
1026 bs_lambertian_kernel_flag_ = as_int;
1031 return bs_brdf_factors_;
1035 bs_brdf_factors_ = bs_brdf_factors_in;
1040 return *transfer_struct_c.bs_nstreams_brdf_;
1044 *transfer_struct_c.bs_nstreams_brdf_ = bs_nstreams_brdf_in;
1049 return *transfer_struct_c.bs_do_shadow_effect_ != 0;
1053 *transfer_struct_c.bs_do_shadow_effect_ = bs_do_shadow_effect_in ?
FORTRAN_TRUE_INT : 0;
1058 return *transfer_struct_c.bs_do_directbounce_only_ != 0;
1062 *transfer_struct_c.bs_do_directbounce_only_ = bs_do_directbounce_only_in ?
FORTRAN_TRUE_INT : 0;
1067 return *transfer_struct_c.bs_do_wsabsa_output_ != 0;
1071 *transfer_struct_c.bs_do_wsabsa_output_ = bs_do_wsabsa_output_in ?
FORTRAN_TRUE_INT : 0;
1076 return *transfer_struct_c.bs_do_wsa_scaling_ != 0;
1080 *transfer_struct_c.bs_do_wsa_scaling_ = bs_do_wsa_scaling_in ?
FORTRAN_TRUE_INT : 0;
1085 return *transfer_struct_c.bs_do_bsa_scaling_ != 0;
1089 *transfer_struct_c.bs_do_bsa_scaling_ = bs_do_bsa_scaling_in ?
FORTRAN_TRUE_INT : 0;
1094 return *transfer_struct_c.bs_wsa_value_;
1098 *transfer_struct_c.bs_wsa_value_ = bs_wsa_value_in;
1103 return *transfer_struct_c.bs_bsa_value_;
1107 *transfer_struct_c.bs_bsa_value_ = bs_bsa_value_in;
1112 return *transfer_struct_c.bs_do_newcmglint_ != 0;
1116 *transfer_struct_c.bs_do_newcmglint_ = bs_do_newcmglint_in ?
FORTRAN_TRUE_INT : 0;
1121 return *transfer_struct_c.bs_salinity_;
1125 *transfer_struct_c.bs_salinity_ = bs_salinity_in;
1130 return *transfer_struct_c.bs_wavelength_;
1134 *transfer_struct_c.bs_wavelength_ = bs_wavelength_in;
1139 return *transfer_struct_c.bs_windspeed_;
1143 *transfer_struct_c.bs_windspeed_ = bs_windspeed_in;
1152 bs_winddir_ = bs_winddir_in;
1157 return *transfer_struct_c.bs_do_glintshadow_ != 0;
1161 *transfer_struct_c.bs_do_glintshadow_ = bs_do_glintshadow_in ?
FORTRAN_TRUE_INT : 0;
1166 return *transfer_struct_c.bs_do_foamoption_ != 0;
1170 *transfer_struct_c.bs_do_foamoption_ = bs_do_foamoption_in ?
FORTRAN_TRUE_INT : 0;
1175 return *transfer_struct_c.bs_do_facetisotropy_ != 0;
1179 *transfer_struct_c.bs_do_facetisotropy_ = bs_do_facetisotropy_in ?
FORTRAN_TRUE_INT : 0;
1184 return *transfer_struct_c.bs_do_glitter_msrcorr_ != 0;
1188 *transfer_struct_c.bs_do_glitter_msrcorr_ = bs_do_glitter_msrcorr_in ?
FORTRAN_TRUE_INT : 0;
1193 return *transfer_struct_c.bs_do_glitter_msrcorr_dbonly_ != 0;
1197 *transfer_struct_c.bs_do_glitter_msrcorr_dbonly_ = bs_do_glitter_msrcorr_dbonly_in ?
FORTRAN_TRUE_INT : 0;
1202 return *transfer_struct_c.bs_glitter_msrcorr_order_;
1206 *transfer_struct_c.bs_glitter_msrcorr_order_ = bs_glitter_msrcorr_order_in;
1211 return *transfer_struct_c.bs_glitter_msrcorr_nmuquad_;
1215 *transfer_struct_c.bs_glitter_msrcorr_nmuquad_ = bs_glitter_msrcorr_nmuquad_in;
1220 return *transfer_struct_c.bs_glitter_msrcorr_nphiquad_;
1224 *transfer_struct_c.bs_glitter_msrcorr_nphiquad_ = bs_glitter_msrcorr_nphiquad_in;
1231 virtual void print(std::ostream &output_stream)
const {
1232 output_stream <<
"Brdf_Sup_Inputs:" << std::endl
1233 <<
" bs_do_user_streams: " << bs_do_user_streams() << std::endl
1234 <<
" bs_do_brdf_surface: " << bs_do_brdf_surface() << std::endl
1235 <<
" bs_do_surface_emission: " << bs_do_surface_emission() << std::endl
1236 <<
" bs_do_solar_sources: " << bs_do_solar_sources() << std::endl
1237 <<
" bs_do_user_obsgeoms: " << bs_do_user_obsgeoms() << std::endl
1238 <<
" bs_nstreams: " << bs_nstreams() << std::endl
1239 <<
" bs_nbeams: " << bs_nbeams() << std::endl
1240 <<
" bs_beam_szas: " << std::endl << bs_beam_szas() << std::endl
1241 <<
" bs_n_user_relazms: " << bs_n_user_relazms() << std::endl
1242 <<
" bs_user_relazms: " << std::endl << bs_user_relazms() << std::endl
1243 <<
" bs_n_user_streams: " << bs_n_user_streams() << std::endl
1244 <<
" bs_user_angles_input: " << std::endl << bs_user_angles_input() << std::endl
1245 <<
" bs_n_user_obsgeoms: " << bs_n_user_obsgeoms() << std::endl
1246 <<
" bs_user_obsgeoms: " << std::endl << bs_user_obsgeoms() << std::endl
1247 <<
" bs_n_brdf_kernels: " << bs_n_brdf_kernels() << std::endl
1248 <<
" bs_brdf_names: " << std::endl;
1249 std::vector< std::string > bs_brdf_names_lcl = bs_brdf_names();
1250 for(
unsigned int idx = 0; idx < bs_brdf_names_lcl.size(); idx++)
1251 if ( bs_brdf_names_lcl[idx].length() > 0 )
1252 output_stream <<
" [" << idx <<
"]: \"" << bs_brdf_names_lcl[idx] <<
"\"" << std::endl;
1254 <<
" bs_which_brdf: " << std::endl << bs_which_brdf() << std::endl
1255 <<
" bs_n_brdf_parameters: " << std::endl << bs_n_brdf_parameters() << std::endl
1256 <<
" bs_brdf_parameters: " << std::endl << bs_brdf_parameters() << std::endl
1257 <<
" bs_lambertian_kernel_flag: " << std::endl << bs_lambertian_kernel_flag() << std::endl
1258 <<
" bs_brdf_factors: " << std::endl << bs_brdf_factors() << std::endl
1259 <<
" bs_nstreams_brdf: " << bs_nstreams_brdf() << std::endl
1260 <<
" bs_do_shadow_effect: " << bs_do_shadow_effect() << std::endl
1261 <<
" bs_do_directbounce_only: " << bs_do_directbounce_only() << std::endl
1262 <<
" bs_do_wsabsa_output: " << bs_do_wsabsa_output() << std::endl
1263 <<
" bs_do_wsa_scaling: " << bs_do_wsa_scaling() << std::endl
1264 <<
" bs_do_bsa_scaling: " << bs_do_bsa_scaling() << std::endl
1265 <<
" bs_wsa_value: " << bs_wsa_value() << std::endl
1266 <<
" bs_bsa_value: " << bs_bsa_value() << std::endl
1267 <<
" bs_do_newcmglint: " << bs_do_newcmglint() << std::endl
1268 <<
" bs_salinity: " << bs_salinity() << std::endl
1269 <<
" bs_wavelength: " << bs_wavelength() << std::endl
1270 <<
" bs_windspeed: " << bs_windspeed() << std::endl
1271 <<
" bs_winddir: " << std::endl << bs_winddir() << std::endl
1272 <<
" bs_do_glintshadow: " << bs_do_glintshadow() << std::endl
1273 <<
" bs_do_foamoption: " << bs_do_foamoption() << std::endl
1274 <<
" bs_do_facetisotropy: " << bs_do_facetisotropy() << std::endl
1275 <<
" bs_do_glitter_msrcorr: " << bs_do_glitter_msrcorr() << std::endl
1276 <<
"bs_do_glitter_msrcorr_dbonly: " << bs_do_glitter_msrcorr_dbonly() << std::endl
1277 <<
" bs_glitter_msrcorr_order: " << bs_glitter_msrcorr_order() << std::endl
1278 <<
" bs_glitter_msrcorr_nmuquad: " << bs_glitter_msrcorr_nmuquad() << std::endl
1279 <<
" bs_glitter_msrcorr_nphiquad: " << bs_glitter_msrcorr_nphiquad() << std::endl;
1284 BYTE_SIZE_ERROR_CHECK(
"bs_do_user_streams_",
sizeof(*transfer_struct_c.bs_do_user_streams_),transfer_struct_c.bs_do_user_streams__f_byte_size);
1285 BYTE_SIZE_ERROR_CHECK(
"bs_do_brdf_surface_",
sizeof(*transfer_struct_c.bs_do_brdf_surface_),transfer_struct_c.bs_do_brdf_surface__f_byte_size);
1286 BYTE_SIZE_ERROR_CHECK(
"bs_do_surface_emission_",
sizeof(*transfer_struct_c.bs_do_surface_emission_),transfer_struct_c.bs_do_surface_emission__f_byte_size);
1287 BYTE_SIZE_ERROR_CHECK(
"bs_do_solar_sources_",
sizeof(*transfer_struct_c.bs_do_solar_sources_),transfer_struct_c.bs_do_solar_sources__f_byte_size);
1288 BYTE_SIZE_ERROR_CHECK(
"bs_do_user_obsgeoms_",
sizeof(*transfer_struct_c.bs_do_user_obsgeoms_),transfer_struct_c.bs_do_user_obsgeoms__f_byte_size);
1289 BYTE_SIZE_ERROR_CHECK(
"bs_nstreams_",
sizeof(*transfer_struct_c.bs_nstreams_),transfer_struct_c.bs_nstreams__f_byte_size);
1290 BYTE_SIZE_ERROR_CHECK(
"bs_nbeams_",
sizeof(*transfer_struct_c.bs_nbeams_),transfer_struct_c.bs_nbeams__f_byte_size);
1291 BYTE_SIZE_ERROR_CHECK(
"bs_beam_szas_",
sizeof(*transfer_struct_c.bs_beam_szas_),transfer_struct_c.bs_beam_szas__f_byte_size);
1292 BYTE_SIZE_ERROR_CHECK(
"bs_n_user_relazms_",
sizeof(*transfer_struct_c.bs_n_user_relazms_),transfer_struct_c.bs_n_user_relazms__f_byte_size);
1293 BYTE_SIZE_ERROR_CHECK(
"bs_user_relazms_",
sizeof(*transfer_struct_c.bs_user_relazms_),transfer_struct_c.bs_user_relazms__f_byte_size);
1294 BYTE_SIZE_ERROR_CHECK(
"bs_n_user_streams_",
sizeof(*transfer_struct_c.bs_n_user_streams_),transfer_struct_c.bs_n_user_streams__f_byte_size);
1295 BYTE_SIZE_ERROR_CHECK(
"bs_user_angles_input_",
sizeof(*transfer_struct_c.bs_user_angles_input_),transfer_struct_c.bs_user_angles_input__f_byte_size);
1296 BYTE_SIZE_ERROR_CHECK(
"bs_n_user_obsgeoms_",
sizeof(*transfer_struct_c.bs_n_user_obsgeoms_),transfer_struct_c.bs_n_user_obsgeoms__f_byte_size);
1297 BYTE_SIZE_ERROR_CHECK(
"bs_user_obsgeoms_",
sizeof(*transfer_struct_c.bs_user_obsgeoms_),transfer_struct_c.bs_user_obsgeoms__f_byte_size);
1298 BYTE_SIZE_ERROR_CHECK(
"bs_n_brdf_kernels_",
sizeof(*transfer_struct_c.bs_n_brdf_kernels_),transfer_struct_c.bs_n_brdf_kernels__f_byte_size);
1299 BYTE_SIZE_ERROR_CHECK(
"bs_which_brdf_",
sizeof(*transfer_struct_c.bs_which_brdf_),transfer_struct_c.bs_which_brdf__f_byte_size);
1300 BYTE_SIZE_ERROR_CHECK(
"bs_n_brdf_parameters_",
sizeof(*transfer_struct_c.bs_n_brdf_parameters_),transfer_struct_c.bs_n_brdf_parameters__f_byte_size);
1301 BYTE_SIZE_ERROR_CHECK(
"bs_brdf_parameters_",
sizeof(*transfer_struct_c.bs_brdf_parameters_),transfer_struct_c.bs_brdf_parameters__f_byte_size);
1302 BYTE_SIZE_ERROR_CHECK(
"bs_lambertian_kernel_flag_",
sizeof(*transfer_struct_c.bs_lambertian_kernel_flag_),transfer_struct_c.bs_lambertian_kernel_flag__f_byte_size);
1303 BYTE_SIZE_ERROR_CHECK(
"bs_brdf_factors_",
sizeof(*transfer_struct_c.bs_brdf_factors_),transfer_struct_c.bs_brdf_factors__f_byte_size);
1304 BYTE_SIZE_ERROR_CHECK(
"bs_nstreams_brdf_",
sizeof(*transfer_struct_c.bs_nstreams_brdf_),transfer_struct_c.bs_nstreams_brdf__f_byte_size);
1305 BYTE_SIZE_ERROR_CHECK(
"bs_do_shadow_effect_",
sizeof(*transfer_struct_c.bs_do_shadow_effect_),transfer_struct_c.bs_do_shadow_effect__f_byte_size);
1306 BYTE_SIZE_ERROR_CHECK(
"bs_do_directbounce_only_",
sizeof(*transfer_struct_c.bs_do_directbounce_only_),transfer_struct_c.bs_do_directbounce_only__f_byte_size);
1307 BYTE_SIZE_ERROR_CHECK(
"bs_do_wsabsa_output_",
sizeof(*transfer_struct_c.bs_do_wsabsa_output_),transfer_struct_c.bs_do_wsabsa_output__f_byte_size);
1308 BYTE_SIZE_ERROR_CHECK(
"bs_do_wsa_scaling_",
sizeof(*transfer_struct_c.bs_do_wsa_scaling_),transfer_struct_c.bs_do_wsa_scaling__f_byte_size);
1309 BYTE_SIZE_ERROR_CHECK(
"bs_do_bsa_scaling_",
sizeof(*transfer_struct_c.bs_do_bsa_scaling_),transfer_struct_c.bs_do_bsa_scaling__f_byte_size);
1310 BYTE_SIZE_ERROR_CHECK(
"bs_wsa_value_",
sizeof(*transfer_struct_c.bs_wsa_value_),transfer_struct_c.bs_wsa_value__f_byte_size);
1311 BYTE_SIZE_ERROR_CHECK(
"bs_bsa_value_",
sizeof(*transfer_struct_c.bs_bsa_value_),transfer_struct_c.bs_bsa_value__f_byte_size);
1312 BYTE_SIZE_ERROR_CHECK(
"bs_do_newcmglint_",
sizeof(*transfer_struct_c.bs_do_newcmglint_),transfer_struct_c.bs_do_newcmglint__f_byte_size);
1313 BYTE_SIZE_ERROR_CHECK(
"bs_salinity_",
sizeof(*transfer_struct_c.bs_salinity_),transfer_struct_c.bs_salinity__f_byte_size);
1314 BYTE_SIZE_ERROR_CHECK(
"bs_wavelength_",
sizeof(*transfer_struct_c.bs_wavelength_),transfer_struct_c.bs_wavelength__f_byte_size);
1315 BYTE_SIZE_ERROR_CHECK(
"bs_windspeed_",
sizeof(*transfer_struct_c.bs_windspeed_),transfer_struct_c.bs_windspeed__f_byte_size);
1316 BYTE_SIZE_ERROR_CHECK(
"bs_winddir_",
sizeof(*transfer_struct_c.bs_winddir_),transfer_struct_c.bs_winddir__f_byte_size);
1317 BYTE_SIZE_ERROR_CHECK(
"bs_do_glintshadow_",
sizeof(*transfer_struct_c.bs_do_glintshadow_),transfer_struct_c.bs_do_glintshadow__f_byte_size);
1318 BYTE_SIZE_ERROR_CHECK(
"bs_do_foamoption_",
sizeof(*transfer_struct_c.bs_do_foamoption_),transfer_struct_c.bs_do_foamoption__f_byte_size);
1319 BYTE_SIZE_ERROR_CHECK(
"bs_do_facetisotropy_",
sizeof(*transfer_struct_c.bs_do_facetisotropy_),transfer_struct_c.bs_do_facetisotropy__f_byte_size);
1320 BYTE_SIZE_ERROR_CHECK(
"bs_do_glitter_msrcorr_",
sizeof(*transfer_struct_c.bs_do_glitter_msrcorr_),transfer_struct_c.bs_do_glitter_msrcorr__f_byte_size);
1321 BYTE_SIZE_ERROR_CHECK(
"bs_do_glitter_msrcorr_dbonly_",
sizeof(*transfer_struct_c.bs_do_glitter_msrcorr_dbonly_),transfer_struct_c.bs_do_glitter_msrcorr_dbonly__f_byte_size);
1322 BYTE_SIZE_ERROR_CHECK(
"bs_glitter_msrcorr_order_",
sizeof(*transfer_struct_c.bs_glitter_msrcorr_order_),transfer_struct_c.bs_glitter_msrcorr_order__f_byte_size);
1323 BYTE_SIZE_ERROR_CHECK(
"bs_glitter_msrcorr_nmuquad_",
sizeof(*transfer_struct_c.bs_glitter_msrcorr_nmuquad_),transfer_struct_c.bs_glitter_msrcorr_nmuquad__f_byte_size);
1324 BYTE_SIZE_ERROR_CHECK(
"bs_glitter_msrcorr_nphiquad_",
sizeof(*transfer_struct_c.bs_glitter_msrcorr_nphiquad_),transfer_struct_c.bs_glitter_msrcorr_nphiquad__f_byte_size);
1329 void link_blitz_arrays() {
1330 bs_beam_szas_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_beam_szas_,
1331 blitz::shape(transfer_struct_c.bs_beam_szas__f_shapes[0]),
1332 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1333 bs_user_relazms_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_user_relazms_,
1334 blitz::shape(transfer_struct_c.bs_user_relazms__f_shapes[0]),
1335 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1336 bs_user_angles_input_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_user_angles_input_,
1337 blitz::shape(transfer_struct_c.bs_user_angles_input__f_shapes[0]),
1338 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1339 bs_user_obsgeoms_.reference(blitz::Array<double, 2>(transfer_struct_c.bs_user_obsgeoms_,
1340 blitz::shape(transfer_struct_c.bs_user_obsgeoms__f_shapes[0],
1341 transfer_struct_c.bs_user_obsgeoms__f_shapes[1]),
1342 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
1343 bs_which_brdf_.reference(blitz::Array<int, 1>(transfer_struct_c.bs_which_brdf_,
1344 blitz::shape(transfer_struct_c.bs_which_brdf__f_shapes[0]),
1345 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1346 bs_n_brdf_parameters_.reference(blitz::Array<int, 1>(transfer_struct_c.bs_n_brdf_parameters_,
1347 blitz::shape(transfer_struct_c.bs_n_brdf_parameters__f_shapes[0]),
1348 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1349 bs_brdf_parameters_.reference(blitz::Array<double, 2>(transfer_struct_c.bs_brdf_parameters_,
1350 blitz::shape(transfer_struct_c.bs_brdf_parameters__f_shapes[0],
1351 transfer_struct_c.bs_brdf_parameters__f_shapes[1]),
1352 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
1353 bs_lambertian_kernel_flag_.reference(blitz::Array<int, 1>(transfer_struct_c.bs_lambertian_kernel_flag_,
1354 blitz::shape(transfer_struct_c.bs_lambertian_kernel_flag__f_shapes[0]),
1355 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1356 bs_brdf_factors_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_brdf_factors_,
1357 blitz::shape(transfer_struct_c.bs_brdf_factors__f_shapes[0]),
1358 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1359 bs_winddir_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_winddir_,
1360 blitz::shape(transfer_struct_c.bs_winddir__f_shapes[0]),
1361 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1365 void link_nested_types() {
1371 blitz::Array<double, 1> bs_beam_szas_;
1372 blitz::Array<double, 1> bs_user_relazms_;
1373 blitz::Array<double, 1> bs_user_angles_input_;
1374 blitz::Array<double, 2> bs_user_obsgeoms_;
1375 blitz::Array<int, 1> bs_which_brdf_;
1376 blitz::Array<int, 1> bs_n_brdf_parameters_;
1377 blitz::Array<double, 2> bs_brdf_parameters_;
1378 blitz::Array<int, 1> bs_lambertian_kernel_flag_;
1379 blitz::Array<double, 1> bs_brdf_factors_;
1380 blitz::Array<double, 1> bs_winddir_;
1395 int bs_dbounce_brdfunc__f_shapes[3];
1399 int bs_brdf_f_0__f_shapes[3];
1403 int bs_brdf_f__f_shapes[3];
1407 int bs_user_brdf_f_0__f_shapes[3];
1411 int bs_user_brdf_f__f_shapes[3];
1415 int bs_emissivity__f_shapes[1];
1419 int bs_user_emissivity__f_shapes[1];
1426 int bs_wsa_kernels__f_shapes[1];
1433 int bs_bsa_kernels__f_shapes[1];
1445 link_blitz_arrays();
1446 link_nested_types();
1452 link_blitz_arrays();
1453 link_nested_types();
1463 return bs_dbounce_brdfunc_;
1467 bs_dbounce_brdfunc_ = bs_dbounce_brdfunc_in;
1472 return bs_brdf_f_0_;
1476 bs_brdf_f_0_ = bs_brdf_f_0_in;
1484 void bs_brdf_f(
const blitz::Array<double, 3>& bs_brdf_f_in) {
1485 bs_brdf_f_ = bs_brdf_f_in;
1490 return bs_user_brdf_f_0_;
1494 bs_user_brdf_f_0_ = bs_user_brdf_f_0_in;
1499 return bs_user_brdf_f_;
1503 bs_user_brdf_f_ = bs_user_brdf_f_in;
1508 return bs_emissivity_;
1512 bs_emissivity_ = bs_emissivity_in;
1517 return bs_user_emissivity_;
1521 bs_user_emissivity_ = bs_user_emissivity_in;
1526 return *transfer_struct_c.bs_wsa_calculated_;
1530 *transfer_struct_c.bs_wsa_calculated_ = bs_wsa_calculated_in;
1535 return bs_wsa_kernels_;
1539 bs_wsa_kernels_ = bs_wsa_kernels_in;
1544 return *transfer_struct_c.bs_bsa_calculated_;
1548 *transfer_struct_c.bs_bsa_calculated_ = bs_bsa_calculated_in;
1553 return bs_bsa_kernels_;
1557 bs_bsa_kernels_ = bs_bsa_kernels_in;
1564 virtual void print(std::ostream &output_stream)
const {
1565 output_stream <<
"Brdf_Sup_Outputs:" << std::endl
1566 <<
"bs_dbounce_brdfunc: " << std::endl << bs_dbounce_brdfunc() << std::endl
1567 <<
" bs_brdf_f_0: " << std::endl << bs_brdf_f_0() << std::endl
1568 <<
" bs_brdf_f: " << std::endl << bs_brdf_f() << std::endl
1569 <<
" bs_user_brdf_f_0: " << std::endl << bs_user_brdf_f_0() << std::endl
1570 <<
" bs_user_brdf_f: " << std::endl << bs_user_brdf_f() << std::endl
1571 <<
" bs_emissivity: " << std::endl << bs_emissivity() << std::endl
1572 <<
"bs_user_emissivity: " << std::endl << bs_user_emissivity() << std::endl
1573 <<
" bs_wsa_calculated: " << bs_wsa_calculated() << std::endl
1574 <<
" bs_wsa_kernels: " << std::endl << bs_wsa_kernels() << std::endl
1575 <<
" bs_bsa_calculated: " << bs_bsa_calculated() << std::endl
1576 <<
" bs_bsa_kernels: " << std::endl << bs_bsa_kernels() << std::endl;
1581 BYTE_SIZE_ERROR_CHECK(
"bs_dbounce_brdfunc_",
sizeof(*transfer_struct_c.bs_dbounce_brdfunc_),transfer_struct_c.bs_dbounce_brdfunc__f_byte_size);
1582 BYTE_SIZE_ERROR_CHECK(
"bs_brdf_f_0_",
sizeof(*transfer_struct_c.bs_brdf_f_0_),transfer_struct_c.bs_brdf_f_0__f_byte_size);
1583 BYTE_SIZE_ERROR_CHECK(
"bs_brdf_f_",
sizeof(*transfer_struct_c.bs_brdf_f_),transfer_struct_c.bs_brdf_f__f_byte_size);
1584 BYTE_SIZE_ERROR_CHECK(
"bs_user_brdf_f_0_",
sizeof(*transfer_struct_c.bs_user_brdf_f_0_),transfer_struct_c.bs_user_brdf_f_0__f_byte_size);
1585 BYTE_SIZE_ERROR_CHECK(
"bs_user_brdf_f_",
sizeof(*transfer_struct_c.bs_user_brdf_f_),transfer_struct_c.bs_user_brdf_f__f_byte_size);
1586 BYTE_SIZE_ERROR_CHECK(
"bs_emissivity_",
sizeof(*transfer_struct_c.bs_emissivity_),transfer_struct_c.bs_emissivity__f_byte_size);
1587 BYTE_SIZE_ERROR_CHECK(
"bs_user_emissivity_",
sizeof(*transfer_struct_c.bs_user_emissivity_),transfer_struct_c.bs_user_emissivity__f_byte_size);
1588 BYTE_SIZE_ERROR_CHECK(
"bs_wsa_calculated_",
sizeof(*transfer_struct_c.bs_wsa_calculated_),transfer_struct_c.bs_wsa_calculated__f_byte_size);
1589 BYTE_SIZE_ERROR_CHECK(
"bs_wsa_kernels_",
sizeof(*transfer_struct_c.bs_wsa_kernels_),transfer_struct_c.bs_wsa_kernels__f_byte_size);
1590 BYTE_SIZE_ERROR_CHECK(
"bs_bsa_calculated_",
sizeof(*transfer_struct_c.bs_bsa_calculated_),transfer_struct_c.bs_bsa_calculated__f_byte_size);
1591 BYTE_SIZE_ERROR_CHECK(
"bs_bsa_kernels_",
sizeof(*transfer_struct_c.bs_bsa_kernels_),transfer_struct_c.bs_bsa_kernels__f_byte_size);
1596 void link_blitz_arrays() {
1597 bs_dbounce_brdfunc_.reference(blitz::Array<double, 3>(transfer_struct_c.bs_dbounce_brdfunc_,
1598 blitz::shape(transfer_struct_c.bs_dbounce_brdfunc__f_shapes[0],
1599 transfer_struct_c.bs_dbounce_brdfunc__f_shapes[1],
1600 transfer_struct_c.bs_dbounce_brdfunc__f_shapes[2]),
1601 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
1602 bs_brdf_f_0_.reference(blitz::Array<double, 3>(transfer_struct_c.bs_brdf_f_0_,
1603 blitz::shape(transfer_struct_c.bs_brdf_f_0__f_shapes[0],
1604 transfer_struct_c.bs_brdf_f_0__f_shapes[1],
1605 transfer_struct_c.bs_brdf_f_0__f_shapes[2]),
1606 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
1607 bs_brdf_f_.reference(blitz::Array<double, 3>(transfer_struct_c.bs_brdf_f_,
1608 blitz::shape(transfer_struct_c.bs_brdf_f__f_shapes[0],
1609 transfer_struct_c.bs_brdf_f__f_shapes[1],
1610 transfer_struct_c.bs_brdf_f__f_shapes[2]),
1611 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
1612 bs_user_brdf_f_0_.reference(blitz::Array<double, 3>(transfer_struct_c.bs_user_brdf_f_0_,
1613 blitz::shape(transfer_struct_c.bs_user_brdf_f_0__f_shapes[0],
1614 transfer_struct_c.bs_user_brdf_f_0__f_shapes[1],
1615 transfer_struct_c.bs_user_brdf_f_0__f_shapes[2]),
1616 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
1617 bs_user_brdf_f_.reference(blitz::Array<double, 3>(transfer_struct_c.bs_user_brdf_f_,
1618 blitz::shape(transfer_struct_c.bs_user_brdf_f__f_shapes[0],
1619 transfer_struct_c.bs_user_brdf_f__f_shapes[1],
1620 transfer_struct_c.bs_user_brdf_f__f_shapes[2]),
1621 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
1622 bs_emissivity_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_emissivity_,
1623 blitz::shape(transfer_struct_c.bs_emissivity__f_shapes[0]),
1624 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1625 bs_user_emissivity_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_user_emissivity_,
1626 blitz::shape(transfer_struct_c.bs_user_emissivity__f_shapes[0]),
1627 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1628 bs_wsa_kernels_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_wsa_kernels_,
1629 blitz::shape(transfer_struct_c.bs_wsa_kernels__f_shapes[0]),
1630 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1631 bs_bsa_kernels_.reference(blitz::Array<double, 1>(transfer_struct_c.bs_bsa_kernels_,
1632 blitz::shape(transfer_struct_c.bs_bsa_kernels__f_shapes[0]),
1633 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
1637 void link_nested_types() {
1643 blitz::Array<double, 3> bs_dbounce_brdfunc_;
1644 blitz::Array<double, 3> bs_brdf_f_0_;
1645 blitz::Array<double, 3> bs_brdf_f_;
1646 blitz::Array<double, 3> bs_user_brdf_f_0_;
1647 blitz::Array<double, 3> bs_user_brdf_f_;
1648 blitz::Array<double, 1> bs_emissivity_;
1649 blitz::Array<double, 1> bs_user_emissivity_;
1650 blitz::Array<double, 1> bs_wsa_kernels_;
1651 blitz::Array<double, 1> bs_bsa_kernels_;
1674 int bs_inputmessages__f_shapes[1];
1678 int bs_inputactions__f_shapes[1];
1690 link_blitz_arrays();
1691 link_nested_types();
1697 link_blitz_arrays();
1698 link_nested_types();
1708 return *transfer_struct_c.bs_status_inputread_;
1712 *transfer_struct_c.bs_status_inputread_ = bs_status_inputread_in;
1717 return *transfer_struct_c.bs_ninputmessages_;
1721 *transfer_struct_c.bs_ninputmessages_ = bs_ninputmessages_in;
1726 std::vector< std::string > bs_inputmessages_ret;
1727 blitz::Array<char, 2> bs_inputmessages_lcl = blitz::Array<char, 2>(transfer_struct_c.bs_inputmessages__f_shapes[0], transfer_struct_c.bs_inputmessages__f_len+1, blitz::ColumnMajorArray<2>());
1729 for(
int dim_0_idx = 0; dim_0_idx < bs_inputmessages_lcl.extent(0); dim_0_idx++)
1730 bs_inputmessages_ret.push_back( std::string(std::string(bs_inputmessages_lcl(dim_0_idx, blitz::Range::all()).begin(), bs_inputmessages_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
1731 return bs_inputmessages_ret;
1736 std::vector< std::string > bs_inputactions_ret;
1737 blitz::Array<char, 2> bs_inputactions_lcl = blitz::Array<char, 2>(transfer_struct_c.bs_inputactions__f_shapes[0], transfer_struct_c.bs_inputactions__f_len+1, blitz::ColumnMajorArray<2>());
1739 for(
int dim_0_idx = 0; dim_0_idx < bs_inputactions_lcl.extent(0); dim_0_idx++)
1740 bs_inputactions_ret.push_back( std::string(std::string(bs_inputactions_lcl(dim_0_idx, blitz::Range::all()).begin(), bs_inputactions_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
1741 return bs_inputactions_ret;
1748 virtual void print(std::ostream &output_stream)
const {
1749 output_stream <<
"Brdf_Input_Exception_Handling:" << std::endl
1750 <<
"bs_status_inputread: " << bs_status_inputread() << std::endl
1751 <<
" bs_ninputmessages: " << bs_ninputmessages() << std::endl
1752 <<
" bs_inputmessages: " << std::endl;
1753 std::vector< std::string > bs_inputmessages_lcl = bs_inputmessages();
1754 for(
unsigned int idx = 0; idx < bs_inputmessages_lcl.size(); idx++)
1755 if ( bs_inputmessages_lcl[idx].length() > 0 )
1756 output_stream <<
" [" << idx <<
"]: \"" << bs_inputmessages_lcl[idx] <<
"\"" << std::endl;
1758 <<
" bs_inputactions: " << std::endl;
1759 std::vector< std::string > bs_inputactions_lcl = bs_inputactions();
1760 for(
unsigned int idx = 0; idx < bs_inputactions_lcl.size(); idx++)
1761 if ( bs_inputactions_lcl[idx].length() > 0 )
1762 output_stream <<
" [" << idx <<
"]: \"" << bs_inputactions_lcl[idx] <<
"\"" << std::endl;
1766 BYTE_SIZE_ERROR_CHECK(
"bs_status_inputread_",
sizeof(*transfer_struct_c.bs_status_inputread_),transfer_struct_c.bs_status_inputread__f_byte_size);
1767 BYTE_SIZE_ERROR_CHECK(
"bs_ninputmessages_",
sizeof(*transfer_struct_c.bs_ninputmessages_),transfer_struct_c.bs_ninputmessages__f_byte_size);
1772 void link_blitz_arrays() {
1776 void link_nested_types() {
1803 int bs_outputmessages__f_shapes[1];
1815 link_blitz_arrays();
1816 link_nested_types();
1822 link_blitz_arrays();
1823 link_nested_types();
1833 return *transfer_struct_c.bs_status_output_;
1837 *transfer_struct_c.bs_status_output_ = bs_status_output_in;
1842 return *transfer_struct_c.bs_noutputmessages_;
1846 *transfer_struct_c.bs_noutputmessages_ = bs_noutputmessages_in;
1851 std::vector< std::string > bs_outputmessages_ret;
1852 blitz::Array<char, 2> bs_outputmessages_lcl = blitz::Array<char, 2>(transfer_struct_c.bs_outputmessages__f_shapes[0], transfer_struct_c.bs_outputmessages__f_len+1, blitz::ColumnMajorArray<2>());
1854 for(
int dim_0_idx = 0; dim_0_idx < bs_outputmessages_lcl.extent(0); dim_0_idx++)
1855 bs_outputmessages_ret.push_back( std::string(std::string(bs_outputmessages_lcl(dim_0_idx, blitz::Range::all()).begin(), bs_outputmessages_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
1856 return bs_outputmessages_ret;
1863 virtual void print(std::ostream &output_stream)
const {
1864 output_stream <<
"Brdf_Output_Exception_Handling:" << std::endl
1865 <<
" bs_status_output: " << bs_status_output() << std::endl
1866 <<
"bs_noutputmessages: " << bs_noutputmessages() << std::endl
1867 <<
" bs_outputmessages: " << std::endl;
1868 std::vector< std::string > bs_outputmessages_lcl = bs_outputmessages();
1869 for(
unsigned int idx = 0; idx < bs_outputmessages_lcl.size(); idx++)
1870 if ( bs_outputmessages_lcl[idx].length() > 0 )
1871 output_stream <<
" [" << idx <<
"]: \"" << bs_outputmessages_lcl[idx] <<
"\"" << std::endl;
1875 BYTE_SIZE_ERROR_CHECK(
"bs_status_output_",
sizeof(*transfer_struct_c.bs_status_output_),transfer_struct_c.bs_status_output__f_byte_size);
1876 BYTE_SIZE_ERROR_CHECK(
"bs_noutputmessages_",
sizeof(*transfer_struct_c.bs_noutputmessages_),transfer_struct_c.bs_noutputmessages__f_byte_size);
1881 void link_blitz_arrays() {
1885 void link_nested_types() {
1932 int sl_beam_szas__f_shapes[1];
1939 int sl_user_relazms__f_shapes[1];
1949 int sl_user_angles_input__f_shapes[1];
1956 int sl_user_obsgeoms__f_shapes[2];
1972 int sl_winddir__f_shapes[1];
1994 int sl_fl_epoch__f_shapes[1];
2004 int sl_fl_inputgaussians__f_shapes[2];
2016 link_blitz_arrays();
2017 link_nested_types();
2023 link_blitz_arrays();
2024 link_nested_types();
2034 return *transfer_struct_c.sl_do_sleaving_ != 0;
2038 *transfer_struct_c.sl_do_sleaving_ = sl_do_sleaving_in ?
FORTRAN_TRUE_INT : 0;
2043 return *transfer_struct_c.sl_do_isotropic_ != 0;
2047 *transfer_struct_c.sl_do_isotropic_ = sl_do_isotropic_in ?
FORTRAN_TRUE_INT : 0;
2052 return *transfer_struct_c.sl_do_exact_ != 0;
2061 return *transfer_struct_c.sl_do_exactonly_ != 0;
2065 *transfer_struct_c.sl_do_exactonly_ = sl_do_exactonly_in ?
FORTRAN_TRUE_INT : 0;
2070 return *transfer_struct_c.sl_do_fluorescence_ != 0;
2074 *transfer_struct_c.sl_do_fluorescence_ = sl_do_fluorescence_in ?
FORTRAN_TRUE_INT : 0;
2079 return *transfer_struct_c.sl_do_solar_sources_ != 0;
2083 *transfer_struct_c.sl_do_solar_sources_ = sl_do_solar_sources_in ?
FORTRAN_TRUE_INT : 0;
2088 return *transfer_struct_c.sl_do_user_obsgeoms_ != 0;
2092 *transfer_struct_c.sl_do_user_obsgeoms_ = sl_do_user_obsgeoms_in ?
FORTRAN_TRUE_INT : 0;
2097 return *transfer_struct_c.sl_nstreams_;
2101 *transfer_struct_c.sl_nstreams_ = sl_nstreams_in;
2106 return *transfer_struct_c.sl_nbeams_;
2110 *transfer_struct_c.sl_nbeams_ = sl_nbeams_in;
2115 return sl_beam_szas_;
2119 sl_beam_szas_ = sl_beam_szas_in;
2124 return *transfer_struct_c.sl_n_user_relazms_;
2128 *transfer_struct_c.sl_n_user_relazms_ = sl_n_user_relazms_in;
2133 return sl_user_relazms_;
2137 sl_user_relazms_ = sl_user_relazms_in;
2142 return *transfer_struct_c.sl_do_user_streams_ != 0;
2146 *transfer_struct_c.sl_do_user_streams_ = sl_do_user_streams_in ?
FORTRAN_TRUE_INT : 0;
2151 return *transfer_struct_c.sl_n_user_streams_;
2155 *transfer_struct_c.sl_n_user_streams_ = sl_n_user_streams_in;
2160 return sl_user_angles_input_;
2164 sl_user_angles_input_ = sl_user_angles_input_in;
2169 return *transfer_struct_c.sl_n_user_obsgeoms_;
2173 *transfer_struct_c.sl_n_user_obsgeoms_ = sl_n_user_obsgeoms_in;
2178 return sl_user_obsgeoms_;
2182 sl_user_obsgeoms_ = sl_user_obsgeoms_in;
2187 return *transfer_struct_c.sl_salinity_;
2191 *transfer_struct_c.sl_salinity_ = sl_salinity_in;
2196 return *transfer_struct_c.sl_chlorconc_;
2200 *transfer_struct_c.sl_chlorconc_ = sl_chlorconc_in;
2205 return *transfer_struct_c.sl_wavelength_;
2209 *transfer_struct_c.sl_wavelength_ = sl_wavelength_in;
2214 return *transfer_struct_c.sl_windspeed_;
2218 *transfer_struct_c.sl_windspeed_ = sl_windspeed_in;
2227 sl_winddir_ = sl_winddir_in;
2232 return *transfer_struct_c.sl_do_glintshadow_ != 0;
2236 *transfer_struct_c.sl_do_glintshadow_ = sl_do_glintshadow_in ?
FORTRAN_TRUE_INT : 0;
2241 return *transfer_struct_c.sl_do_foamoption_ != 0;
2245 *transfer_struct_c.sl_do_foamoption_ = sl_do_foamoption_in ?
FORTRAN_TRUE_INT : 0;
2250 return *transfer_struct_c.sl_do_facetisotropy_ != 0;
2254 *transfer_struct_c.sl_do_facetisotropy_ = sl_do_facetisotropy_in ?
FORTRAN_TRUE_INT : 0;
2259 return *transfer_struct_c.sl_fl_wavelength_;
2263 *transfer_struct_c.sl_fl_wavelength_ = sl_fl_wavelength_in;
2268 return *transfer_struct_c.sl_fl_latitude_;
2272 *transfer_struct_c.sl_fl_latitude_ = sl_fl_latitude_in;
2277 return *transfer_struct_c.sl_fl_longitude_;
2281 *transfer_struct_c.sl_fl_longitude_ = sl_fl_longitude_in;
2286 return sl_fl_epoch_;
2290 sl_fl_epoch_ = sl_fl_epoch_in;
2295 return *transfer_struct_c.sl_fl_amplitude755_;
2299 *transfer_struct_c.sl_fl_amplitude755_ = sl_fl_amplitude755_in;
2304 return *transfer_struct_c.sl_fl_do_datagaussian_ != 0;
2308 *transfer_struct_c.sl_fl_do_datagaussian_ = sl_fl_do_datagaussian_in ?
FORTRAN_TRUE_INT : 0;
2313 return sl_fl_inputgaussians_;
2317 sl_fl_inputgaussians_ = sl_fl_inputgaussians_in;
2324 virtual void print(std::ostream &output_stream)
const {
2325 output_stream <<
"Sleave_Sup_Inputs:" << std::endl
2326 <<
" sl_do_sleaving: " << sl_do_sleaving() << std::endl
2327 <<
" sl_do_isotropic: " << sl_do_isotropic() << std::endl
2328 <<
" sl_do_exact: " << sl_do_exact() << std::endl
2329 <<
" sl_do_exactonly: " << sl_do_exactonly() << std::endl
2330 <<
" sl_do_fluorescence: " << sl_do_fluorescence() << std::endl
2331 <<
" sl_do_solar_sources: " << sl_do_solar_sources() << std::endl
2332 <<
" sl_do_user_obsgeoms: " << sl_do_user_obsgeoms() << std::endl
2333 <<
" sl_nstreams: " << sl_nstreams() << std::endl
2334 <<
" sl_nbeams: " << sl_nbeams() << std::endl
2335 <<
" sl_beam_szas: " << std::endl << sl_beam_szas() << std::endl
2336 <<
" sl_n_user_relazms: " << sl_n_user_relazms() << std::endl
2337 <<
" sl_user_relazms: " << std::endl << sl_user_relazms() << std::endl
2338 <<
" sl_do_user_streams: " << sl_do_user_streams() << std::endl
2339 <<
" sl_n_user_streams: " << sl_n_user_streams() << std::endl
2340 <<
" sl_user_angles_input: " << std::endl << sl_user_angles_input() << std::endl
2341 <<
" sl_n_user_obsgeoms: " << sl_n_user_obsgeoms() << std::endl
2342 <<
" sl_user_obsgeoms: " << std::endl << sl_user_obsgeoms() << std::endl
2343 <<
" sl_salinity: " << sl_salinity() << std::endl
2344 <<
" sl_chlorconc: " << sl_chlorconc() << std::endl
2345 <<
" sl_wavelength: " << sl_wavelength() << std::endl
2346 <<
" sl_windspeed: " << sl_windspeed() << std::endl
2347 <<
" sl_winddir: " << std::endl << sl_winddir() << std::endl
2348 <<
" sl_do_glintshadow: " << sl_do_glintshadow() << std::endl
2349 <<
" sl_do_foamoption: " << sl_do_foamoption() << std::endl
2350 <<
" sl_do_facetisotropy: " << sl_do_facetisotropy() << std::endl
2351 <<
" sl_fl_wavelength: " << sl_fl_wavelength() << std::endl
2352 <<
" sl_fl_latitude: " << sl_fl_latitude() << std::endl
2353 <<
" sl_fl_longitude: " << sl_fl_longitude() << std::endl
2354 <<
" sl_fl_epoch: " << std::endl << sl_fl_epoch() << std::endl
2355 <<
" sl_fl_amplitude755: " << sl_fl_amplitude755() << std::endl
2356 <<
"sl_fl_do_datagaussian: " << sl_fl_do_datagaussian() << std::endl
2357 <<
" sl_fl_inputgaussians: " << std::endl << sl_fl_inputgaussians() << std::endl;
2362 BYTE_SIZE_ERROR_CHECK(
"sl_do_sleaving_",
sizeof(*transfer_struct_c.sl_do_sleaving_),transfer_struct_c.sl_do_sleaving__f_byte_size);
2363 BYTE_SIZE_ERROR_CHECK(
"sl_do_isotropic_",
sizeof(*transfer_struct_c.sl_do_isotropic_),transfer_struct_c.sl_do_isotropic__f_byte_size);
2364 BYTE_SIZE_ERROR_CHECK(
"sl_do_exact_",
sizeof(*transfer_struct_c.sl_do_exact_),transfer_struct_c.sl_do_exact__f_byte_size);
2365 BYTE_SIZE_ERROR_CHECK(
"sl_do_exactonly_",
sizeof(*transfer_struct_c.sl_do_exactonly_),transfer_struct_c.sl_do_exactonly__f_byte_size);
2366 BYTE_SIZE_ERROR_CHECK(
"sl_do_fluorescence_",
sizeof(*transfer_struct_c.sl_do_fluorescence_),transfer_struct_c.sl_do_fluorescence__f_byte_size);
2367 BYTE_SIZE_ERROR_CHECK(
"sl_do_solar_sources_",
sizeof(*transfer_struct_c.sl_do_solar_sources_),transfer_struct_c.sl_do_solar_sources__f_byte_size);
2368 BYTE_SIZE_ERROR_CHECK(
"sl_do_user_obsgeoms_",
sizeof(*transfer_struct_c.sl_do_user_obsgeoms_),transfer_struct_c.sl_do_user_obsgeoms__f_byte_size);
2369 BYTE_SIZE_ERROR_CHECK(
"sl_nstreams_",
sizeof(*transfer_struct_c.sl_nstreams_),transfer_struct_c.sl_nstreams__f_byte_size);
2370 BYTE_SIZE_ERROR_CHECK(
"sl_nbeams_",
sizeof(*transfer_struct_c.sl_nbeams_),transfer_struct_c.sl_nbeams__f_byte_size);
2371 BYTE_SIZE_ERROR_CHECK(
"sl_beam_szas_",
sizeof(*transfer_struct_c.sl_beam_szas_),transfer_struct_c.sl_beam_szas__f_byte_size);
2372 BYTE_SIZE_ERROR_CHECK(
"sl_n_user_relazms_",
sizeof(*transfer_struct_c.sl_n_user_relazms_),transfer_struct_c.sl_n_user_relazms__f_byte_size);
2373 BYTE_SIZE_ERROR_CHECK(
"sl_user_relazms_",
sizeof(*transfer_struct_c.sl_user_relazms_),transfer_struct_c.sl_user_relazms__f_byte_size);
2374 BYTE_SIZE_ERROR_CHECK(
"sl_do_user_streams_",
sizeof(*transfer_struct_c.sl_do_user_streams_),transfer_struct_c.sl_do_user_streams__f_byte_size);
2375 BYTE_SIZE_ERROR_CHECK(
"sl_n_user_streams_",
sizeof(*transfer_struct_c.sl_n_user_streams_),transfer_struct_c.sl_n_user_streams__f_byte_size);
2376 BYTE_SIZE_ERROR_CHECK(
"sl_user_angles_input_",
sizeof(*transfer_struct_c.sl_user_angles_input_),transfer_struct_c.sl_user_angles_input__f_byte_size);
2377 BYTE_SIZE_ERROR_CHECK(
"sl_n_user_obsgeoms_",
sizeof(*transfer_struct_c.sl_n_user_obsgeoms_),transfer_struct_c.sl_n_user_obsgeoms__f_byte_size);
2378 BYTE_SIZE_ERROR_CHECK(
"sl_user_obsgeoms_",
sizeof(*transfer_struct_c.sl_user_obsgeoms_),transfer_struct_c.sl_user_obsgeoms__f_byte_size);
2379 BYTE_SIZE_ERROR_CHECK(
"sl_salinity_",
sizeof(*transfer_struct_c.sl_salinity_),transfer_struct_c.sl_salinity__f_byte_size);
2380 BYTE_SIZE_ERROR_CHECK(
"sl_chlorconc_",
sizeof(*transfer_struct_c.sl_chlorconc_),transfer_struct_c.sl_chlorconc__f_byte_size);
2381 BYTE_SIZE_ERROR_CHECK(
"sl_wavelength_",
sizeof(*transfer_struct_c.sl_wavelength_),transfer_struct_c.sl_wavelength__f_byte_size);
2382 BYTE_SIZE_ERROR_CHECK(
"sl_windspeed_",
sizeof(*transfer_struct_c.sl_windspeed_),transfer_struct_c.sl_windspeed__f_byte_size);
2383 BYTE_SIZE_ERROR_CHECK(
"sl_winddir_",
sizeof(*transfer_struct_c.sl_winddir_),transfer_struct_c.sl_winddir__f_byte_size);
2384 BYTE_SIZE_ERROR_CHECK(
"sl_do_glintshadow_",
sizeof(*transfer_struct_c.sl_do_glintshadow_),transfer_struct_c.sl_do_glintshadow__f_byte_size);
2385 BYTE_SIZE_ERROR_CHECK(
"sl_do_foamoption_",
sizeof(*transfer_struct_c.sl_do_foamoption_),transfer_struct_c.sl_do_foamoption__f_byte_size);
2386 BYTE_SIZE_ERROR_CHECK(
"sl_do_facetisotropy_",
sizeof(*transfer_struct_c.sl_do_facetisotropy_),transfer_struct_c.sl_do_facetisotropy__f_byte_size);
2387 BYTE_SIZE_ERROR_CHECK(
"sl_fl_wavelength_",
sizeof(*transfer_struct_c.sl_fl_wavelength_),transfer_struct_c.sl_fl_wavelength__f_byte_size);
2388 BYTE_SIZE_ERROR_CHECK(
"sl_fl_latitude_",
sizeof(*transfer_struct_c.sl_fl_latitude_),transfer_struct_c.sl_fl_latitude__f_byte_size);
2389 BYTE_SIZE_ERROR_CHECK(
"sl_fl_longitude_",
sizeof(*transfer_struct_c.sl_fl_longitude_),transfer_struct_c.sl_fl_longitude__f_byte_size);
2390 BYTE_SIZE_ERROR_CHECK(
"sl_fl_epoch_",
sizeof(*transfer_struct_c.sl_fl_epoch_),transfer_struct_c.sl_fl_epoch__f_byte_size);
2391 BYTE_SIZE_ERROR_CHECK(
"sl_fl_amplitude755_",
sizeof(*transfer_struct_c.sl_fl_amplitude755_),transfer_struct_c.sl_fl_amplitude755__f_byte_size);
2392 BYTE_SIZE_ERROR_CHECK(
"sl_fl_do_datagaussian_",
sizeof(*transfer_struct_c.sl_fl_do_datagaussian_),transfer_struct_c.sl_fl_do_datagaussian__f_byte_size);
2393 BYTE_SIZE_ERROR_CHECK(
"sl_fl_inputgaussians_",
sizeof(*transfer_struct_c.sl_fl_inputgaussians_),transfer_struct_c.sl_fl_inputgaussians__f_byte_size);
2398 void link_blitz_arrays() {
2399 sl_beam_szas_.reference(blitz::Array<double, 1>(transfer_struct_c.sl_beam_szas_,
2400 blitz::shape(transfer_struct_c.sl_beam_szas__f_shapes[0]),
2401 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2402 sl_user_relazms_.reference(blitz::Array<double, 1>(transfer_struct_c.sl_user_relazms_,
2403 blitz::shape(transfer_struct_c.sl_user_relazms__f_shapes[0]),
2404 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2405 sl_user_angles_input_.reference(blitz::Array<double, 1>(transfer_struct_c.sl_user_angles_input_,
2406 blitz::shape(transfer_struct_c.sl_user_angles_input__f_shapes[0]),
2407 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2408 sl_user_obsgeoms_.reference(blitz::Array<double, 2>(transfer_struct_c.sl_user_obsgeoms_,
2409 blitz::shape(transfer_struct_c.sl_user_obsgeoms__f_shapes[0],
2410 transfer_struct_c.sl_user_obsgeoms__f_shapes[1]),
2411 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
2412 sl_winddir_.reference(blitz::Array<double, 1>(transfer_struct_c.sl_winddir_,
2413 blitz::shape(transfer_struct_c.sl_winddir__f_shapes[0]),
2414 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2415 sl_fl_epoch_.reference(blitz::Array<int, 1>(transfer_struct_c.sl_fl_epoch_,
2416 blitz::shape(transfer_struct_c.sl_fl_epoch__f_shapes[0]),
2417 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2418 sl_fl_inputgaussians_.reference(blitz::Array<double, 2>(transfer_struct_c.sl_fl_inputgaussians_,
2419 blitz::shape(transfer_struct_c.sl_fl_inputgaussians__f_shapes[0],
2420 transfer_struct_c.sl_fl_inputgaussians__f_shapes[1]),
2421 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
2425 void link_nested_types() {
2431 blitz::Array<double, 1> sl_beam_szas_;
2432 blitz::Array<double, 1> sl_user_relazms_;
2433 blitz::Array<double, 1> sl_user_angles_input_;
2434 blitz::Array<double, 2> sl_user_obsgeoms_;
2435 blitz::Array<double, 1> sl_winddir_;
2436 blitz::Array<int, 1> sl_fl_epoch_;
2437 blitz::Array<double, 2> sl_fl_inputgaussians_;
2464 int ts_layer_vary_flag__f_shapes[1];
2468 int ts_layer_vary_number__f_shapes[1];
2495 link_blitz_arrays();
2496 link_nested_types();
2502 link_blitz_arrays();
2503 link_nested_types();
2513 return *transfer_struct_c.ts_do_column_linearization_ != 0;
2517 *transfer_struct_c.ts_do_column_linearization_ = ts_do_column_linearization_in ?
FORTRAN_TRUE_INT : 0;
2522 return *transfer_struct_c.ts_do_profile_linearization_ != 0;
2526 *transfer_struct_c.ts_do_profile_linearization_ = ts_do_profile_linearization_in ?
FORTRAN_TRUE_INT : 0;
2531 return *transfer_struct_c.ts_do_surface_linearization_ != 0;
2535 *transfer_struct_c.ts_do_surface_linearization_ = ts_do_surface_linearization_in ?
FORTRAN_TRUE_INT : 0;
2540 return *transfer_struct_c.ts_do_sleave_wfs_ != 0;
2544 *transfer_struct_c.ts_do_sleave_wfs_ = ts_do_sleave_wfs_in ?
FORTRAN_TRUE_INT : 0;
2549 blitz::Array<bool,1> as_bool(ts_layer_vary_flag_.shape());
2550 as_bool = blitz::where(ts_layer_vary_flag_ != 0,
true,
false);
2555 blitz::Array<int,1> as_int(ts_layer_vary_flag_.shape());
2557 ts_layer_vary_flag_ = as_int;
2562 return ts_layer_vary_number_;
2566 ts_layer_vary_number_ = ts_layer_vary_number_in;
2571 return *transfer_struct_c.ts_n_totalcolumn_wfs_;
2575 *transfer_struct_c.ts_n_totalcolumn_wfs_ = ts_n_totalcolumn_wfs_in;
2580 return *transfer_struct_c.ts_n_surface_wfs_;
2584 *transfer_struct_c.ts_n_surface_wfs_ = ts_n_surface_wfs_in;
2589 return *transfer_struct_c.ts_n_sleave_wfs_;
2593 *transfer_struct_c.ts_n_sleave_wfs_ = ts_n_sleave_wfs_in;
2598 return *transfer_struct_c.ts_do_atmos_lbbf_ != 0;
2602 *transfer_struct_c.ts_do_atmos_lbbf_ = ts_do_atmos_lbbf_in ?
FORTRAN_TRUE_INT : 0;
2607 return *transfer_struct_c.ts_do_surface_lbbf_ != 0;
2611 *transfer_struct_c.ts_do_surface_lbbf_ = ts_do_surface_lbbf_in ?
FORTRAN_TRUE_INT : 0;
2618 virtual void print(std::ostream &output_stream)
const {
2619 output_stream <<
"Lidort_Fixed_Lincontrol:" << std::endl
2620 <<
" ts_do_column_linearization: " << ts_do_column_linearization() << std::endl
2621 <<
"ts_do_profile_linearization: " << ts_do_profile_linearization() << std::endl
2622 <<
"ts_do_surface_linearization: " << ts_do_surface_linearization() << std::endl
2623 <<
" ts_do_sleave_wfs: " << ts_do_sleave_wfs() << std::endl
2624 <<
" ts_layer_vary_flag: " << std::endl << ts_layer_vary_flag() << std::endl
2625 <<
" ts_layer_vary_number: " << std::endl << ts_layer_vary_number() << std::endl
2626 <<
" ts_n_totalcolumn_wfs: " << ts_n_totalcolumn_wfs() << std::endl
2627 <<
" ts_n_surface_wfs: " << ts_n_surface_wfs() << std::endl
2628 <<
" ts_n_sleave_wfs: " << ts_n_sleave_wfs() << std::endl
2629 <<
" ts_do_atmos_lbbf: " << ts_do_atmos_lbbf() << std::endl
2630 <<
" ts_do_surface_lbbf: " << ts_do_surface_lbbf() << std::endl;
2635 BYTE_SIZE_ERROR_CHECK(
"ts_do_column_linearization_",
sizeof(*transfer_struct_c.ts_do_column_linearization_),transfer_struct_c.ts_do_column_linearization__f_byte_size);
2636 BYTE_SIZE_ERROR_CHECK(
"ts_do_profile_linearization_",
sizeof(*transfer_struct_c.ts_do_profile_linearization_),transfer_struct_c.ts_do_profile_linearization__f_byte_size);
2637 BYTE_SIZE_ERROR_CHECK(
"ts_do_surface_linearization_",
sizeof(*transfer_struct_c.ts_do_surface_linearization_),transfer_struct_c.ts_do_surface_linearization__f_byte_size);
2638 BYTE_SIZE_ERROR_CHECK(
"ts_do_sleave_wfs_",
sizeof(*transfer_struct_c.ts_do_sleave_wfs_),transfer_struct_c.ts_do_sleave_wfs__f_byte_size);
2639 BYTE_SIZE_ERROR_CHECK(
"ts_layer_vary_flag_",
sizeof(*transfer_struct_c.ts_layer_vary_flag_),transfer_struct_c.ts_layer_vary_flag__f_byte_size);
2640 BYTE_SIZE_ERROR_CHECK(
"ts_layer_vary_number_",
sizeof(*transfer_struct_c.ts_layer_vary_number_),transfer_struct_c.ts_layer_vary_number__f_byte_size);
2641 BYTE_SIZE_ERROR_CHECK(
"ts_n_totalcolumn_wfs_",
sizeof(*transfer_struct_c.ts_n_totalcolumn_wfs_),transfer_struct_c.ts_n_totalcolumn_wfs__f_byte_size);
2642 BYTE_SIZE_ERROR_CHECK(
"ts_n_surface_wfs_",
sizeof(*transfer_struct_c.ts_n_surface_wfs_),transfer_struct_c.ts_n_surface_wfs__f_byte_size);
2643 BYTE_SIZE_ERROR_CHECK(
"ts_n_sleave_wfs_",
sizeof(*transfer_struct_c.ts_n_sleave_wfs_),transfer_struct_c.ts_n_sleave_wfs__f_byte_size);
2644 BYTE_SIZE_ERROR_CHECK(
"ts_do_atmos_lbbf_",
sizeof(*transfer_struct_c.ts_do_atmos_lbbf_),transfer_struct_c.ts_do_atmos_lbbf__f_byte_size);
2645 BYTE_SIZE_ERROR_CHECK(
"ts_do_surface_lbbf_",
sizeof(*transfer_struct_c.ts_do_surface_lbbf_),transfer_struct_c.ts_do_surface_lbbf__f_byte_size);
2650 void link_blitz_arrays() {
2651 ts_layer_vary_flag_.reference(blitz::Array<int, 1>(transfer_struct_c.ts_layer_vary_flag_,
2652 blitz::shape(transfer_struct_c.ts_layer_vary_flag__f_shapes[0]),
2653 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2654 ts_layer_vary_number_.reference(blitz::Array<int, 1>(transfer_struct_c.ts_layer_vary_number_,
2655 blitz::shape(transfer_struct_c.ts_layer_vary_number__f_shapes[0]),
2656 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
2660 void link_nested_types() {
2666 blitz::Array<int, 1> ts_layer_vary_flag_;
2667 blitz::Array<int, 1> ts_layer_vary_number_;
2682 int ts_l_deltau_vert_input__f_shapes[2];
2686 int ts_l_omega_total_input__f_shapes[2];
2690 int ts_l_phasmoms_total_input__f_shapes[3];
2702 link_blitz_arrays();
2703 link_nested_types();
2709 link_blitz_arrays();
2710 link_nested_types();
2720 return ts_l_deltau_vert_input_;
2724 ts_l_deltau_vert_input_ = ts_l_deltau_vert_input_in;
2729 return ts_l_omega_total_input_;
2733 ts_l_omega_total_input_ = ts_l_omega_total_input_in;
2738 return ts_l_phasmoms_total_input_;
2742 ts_l_phasmoms_total_input_ = ts_l_phasmoms_total_input_in;
2749 virtual void print(std::ostream &output_stream)
const {
2750 output_stream <<
"Lidort_Fixed_Linoptical:" << std::endl
2751 <<
" ts_l_deltau_vert_input: " << std::endl << ts_l_deltau_vert_input() << std::endl
2752 <<
" ts_l_omega_total_input: " << std::endl << ts_l_omega_total_input() << std::endl
2753 <<
"ts_l_phasmoms_total_input: " << std::endl << ts_l_phasmoms_total_input() << std::endl;
2758 BYTE_SIZE_ERROR_CHECK(
"ts_l_deltau_vert_input_",
sizeof(*transfer_struct_c.ts_l_deltau_vert_input_),transfer_struct_c.ts_l_deltau_vert_input__f_byte_size);
2759 BYTE_SIZE_ERROR_CHECK(
"ts_l_omega_total_input_",
sizeof(*transfer_struct_c.ts_l_omega_total_input_),transfer_struct_c.ts_l_omega_total_input__f_byte_size);
2760 BYTE_SIZE_ERROR_CHECK(
"ts_l_phasmoms_total_input_",
sizeof(*transfer_struct_c.ts_l_phasmoms_total_input_),transfer_struct_c.ts_l_phasmoms_total_input__f_byte_size);
2765 void link_blitz_arrays() {
2766 ts_l_deltau_vert_input_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_l_deltau_vert_input_,
2767 blitz::shape(transfer_struct_c.ts_l_deltau_vert_input__f_shapes[0],
2768 transfer_struct_c.ts_l_deltau_vert_input__f_shapes[1]),
2769 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
2770 ts_l_omega_total_input_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_l_omega_total_input_,
2771 blitz::shape(transfer_struct_c.ts_l_omega_total_input__f_shapes[0],
2772 transfer_struct_c.ts_l_omega_total_input__f_shapes[1]),
2773 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
2774 ts_l_phasmoms_total_input_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_l_phasmoms_total_input_,
2775 blitz::shape(transfer_struct_c.ts_l_phasmoms_total_input__f_shapes[0],
2776 transfer_struct_c.ts_l_phasmoms_total_input__f_shapes[1],
2777 transfer_struct_c.ts_l_phasmoms_total_input__f_shapes[2]),
2778 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
2782 void link_nested_types() {
2788 blitz::Array<double, 2> ts_l_deltau_vert_input_;
2789 blitz::Array<double, 2> ts_l_omega_total_input_;
2790 blitz::Array<double, 3> ts_l_phasmoms_total_input_;
2819 link_blitz_arrays();
2820 link_nested_types();
2826 link_blitz_arrays();
2827 link_nested_types();
2846 void* dst_ptr = cont_->fortran_type_ptr();
2861 void* dst_ptr = optical_->fortran_type_ptr();
2869 virtual void print(std::ostream &output_stream)
const {
2870 output_stream <<
"Lidort_Fixed_Lininputs:" << std::endl
2871 <<
" cont: " << cont() << std::endl
2872 <<
"optical: " << optical() << std::endl;
2881 void link_blitz_arrays() {
2885 void link_nested_types() {
2920 link_blitz_arrays();
2921 link_nested_types();
2927 link_blitz_arrays();
2928 link_nested_types();
2938 return *transfer_struct_c.dummy_;
2942 *transfer_struct_c.dummy_ = dummy_in;
2949 virtual void print(std::ostream &output_stream)
const {
2950 output_stream <<
"Lidort_Modified_Lininputs:" << std::endl
2951 <<
"dummy: " << dummy() << std::endl;
2956 BYTE_SIZE_ERROR_CHECK(
"dummy_",
sizeof(*transfer_struct_c.dummy_),transfer_struct_c.dummy__f_byte_size);
2961 void link_blitz_arrays() {
2965 void link_nested_types() {
2985 int ts_columnwf__f_shapes[4];
2989 int ts_mint_columnwf__f_shapes[4];
2993 int ts_flux_columnwf__f_shapes[4];
2997 int ts_profilewf__f_shapes[5];
3001 int ts_mint_profilewf__f_shapes[5];
3005 int ts_flux_profilewf__f_shapes[5];
3009 int ts_abbwfs_jacobians__f_shapes[4];
3013 int ts_abbwfs_fluxes__f_shapes[4];
3025 link_blitz_arrays();
3026 link_nested_types();
3032 link_blitz_arrays();
3033 link_nested_types();
3043 return ts_columnwf_;
3047 ts_columnwf_ = ts_columnwf_in;
3052 return ts_mint_columnwf_;
3056 ts_mint_columnwf_ = ts_mint_columnwf_in;
3061 return ts_flux_columnwf_;
3065 ts_flux_columnwf_ = ts_flux_columnwf_in;
3070 return ts_profilewf_;
3074 ts_profilewf_ = ts_profilewf_in;
3079 return ts_mint_profilewf_;
3083 ts_mint_profilewf_ = ts_mint_profilewf_in;
3088 return ts_flux_profilewf_;
3092 ts_flux_profilewf_ = ts_flux_profilewf_in;
3097 return ts_abbwfs_jacobians_;
3101 ts_abbwfs_jacobians_ = ts_abbwfs_jacobians_in;
3106 return ts_abbwfs_fluxes_;
3110 ts_abbwfs_fluxes_ = ts_abbwfs_fluxes_in;
3117 virtual void print(std::ostream &output_stream)
const {
3118 output_stream <<
"Lidort_Linatmos:" << std::endl
3119 <<
" ts_columnwf: " << std::endl << ts_columnwf() << std::endl
3120 <<
" ts_mint_columnwf: " << std::endl << ts_mint_columnwf() << std::endl
3121 <<
" ts_flux_columnwf: " << std::endl << ts_flux_columnwf() << std::endl
3122 <<
" ts_profilewf: " << std::endl << ts_profilewf() << std::endl
3123 <<
" ts_mint_profilewf: " << std::endl << ts_mint_profilewf() << std::endl
3124 <<
" ts_flux_profilewf: " << std::endl << ts_flux_profilewf() << std::endl
3125 <<
"ts_abbwfs_jacobians: " << std::endl << ts_abbwfs_jacobians() << std::endl
3126 <<
" ts_abbwfs_fluxes: " << std::endl << ts_abbwfs_fluxes() << std::endl;
3131 BYTE_SIZE_ERROR_CHECK(
"ts_columnwf_",
sizeof(*transfer_struct_c.ts_columnwf_),transfer_struct_c.ts_columnwf__f_byte_size);
3132 BYTE_SIZE_ERROR_CHECK(
"ts_mint_columnwf_",
sizeof(*transfer_struct_c.ts_mint_columnwf_),transfer_struct_c.ts_mint_columnwf__f_byte_size);
3133 BYTE_SIZE_ERROR_CHECK(
"ts_flux_columnwf_",
sizeof(*transfer_struct_c.ts_flux_columnwf_),transfer_struct_c.ts_flux_columnwf__f_byte_size);
3134 BYTE_SIZE_ERROR_CHECK(
"ts_profilewf_",
sizeof(*transfer_struct_c.ts_profilewf_),transfer_struct_c.ts_profilewf__f_byte_size);
3135 BYTE_SIZE_ERROR_CHECK(
"ts_mint_profilewf_",
sizeof(*transfer_struct_c.ts_mint_profilewf_),transfer_struct_c.ts_mint_profilewf__f_byte_size);
3136 BYTE_SIZE_ERROR_CHECK(
"ts_flux_profilewf_",
sizeof(*transfer_struct_c.ts_flux_profilewf_),transfer_struct_c.ts_flux_profilewf__f_byte_size);
3137 BYTE_SIZE_ERROR_CHECK(
"ts_abbwfs_jacobians_",
sizeof(*transfer_struct_c.ts_abbwfs_jacobians_),transfer_struct_c.ts_abbwfs_jacobians__f_byte_size);
3138 BYTE_SIZE_ERROR_CHECK(
"ts_abbwfs_fluxes_",
sizeof(*transfer_struct_c.ts_abbwfs_fluxes_),transfer_struct_c.ts_abbwfs_fluxes__f_byte_size);
3143 void link_blitz_arrays() {
3144 ts_columnwf_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_columnwf_,
3145 blitz::shape(transfer_struct_c.ts_columnwf__f_shapes[0],
3146 transfer_struct_c.ts_columnwf__f_shapes[1],
3147 transfer_struct_c.ts_columnwf__f_shapes[2],
3148 transfer_struct_c.ts_columnwf__f_shapes[3]),
3149 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3150 ts_mint_columnwf_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_mint_columnwf_,
3151 blitz::shape(transfer_struct_c.ts_mint_columnwf__f_shapes[0],
3152 transfer_struct_c.ts_mint_columnwf__f_shapes[1],
3153 transfer_struct_c.ts_mint_columnwf__f_shapes[2],
3154 transfer_struct_c.ts_mint_columnwf__f_shapes[3]),
3155 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3156 ts_flux_columnwf_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_flux_columnwf_,
3157 blitz::shape(transfer_struct_c.ts_flux_columnwf__f_shapes[0],
3158 transfer_struct_c.ts_flux_columnwf__f_shapes[1],
3159 transfer_struct_c.ts_flux_columnwf__f_shapes[2],
3160 transfer_struct_c.ts_flux_columnwf__f_shapes[3]),
3161 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3162 ts_profilewf_.reference(blitz::Array<double, 5>(transfer_struct_c.ts_profilewf_,
3163 blitz::shape(transfer_struct_c.ts_profilewf__f_shapes[0],
3164 transfer_struct_c.ts_profilewf__f_shapes[1],
3165 transfer_struct_c.ts_profilewf__f_shapes[2],
3166 transfer_struct_c.ts_profilewf__f_shapes[3],
3167 transfer_struct_c.ts_profilewf__f_shapes[4]),
3168 blitz::neverDeleteData, blitz::ColumnMajorArray<5>()));
3169 ts_mint_profilewf_.reference(blitz::Array<double, 5>(transfer_struct_c.ts_mint_profilewf_,
3170 blitz::shape(transfer_struct_c.ts_mint_profilewf__f_shapes[0],
3171 transfer_struct_c.ts_mint_profilewf__f_shapes[1],
3172 transfer_struct_c.ts_mint_profilewf__f_shapes[2],
3173 transfer_struct_c.ts_mint_profilewf__f_shapes[3],
3174 transfer_struct_c.ts_mint_profilewf__f_shapes[4]),
3175 blitz::neverDeleteData, blitz::ColumnMajorArray<5>()));
3176 ts_flux_profilewf_.reference(blitz::Array<double, 5>(transfer_struct_c.ts_flux_profilewf_,
3177 blitz::shape(transfer_struct_c.ts_flux_profilewf__f_shapes[0],
3178 transfer_struct_c.ts_flux_profilewf__f_shapes[1],
3179 transfer_struct_c.ts_flux_profilewf__f_shapes[2],
3180 transfer_struct_c.ts_flux_profilewf__f_shapes[3],
3181 transfer_struct_c.ts_flux_profilewf__f_shapes[4]),
3182 blitz::neverDeleteData, blitz::ColumnMajorArray<5>()));
3183 ts_abbwfs_jacobians_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_abbwfs_jacobians_,
3184 blitz::shape(transfer_struct_c.ts_abbwfs_jacobians__f_shapes[0],
3185 transfer_struct_c.ts_abbwfs_jacobians__f_shapes[1],
3186 transfer_struct_c.ts_abbwfs_jacobians__f_shapes[2],
3187 transfer_struct_c.ts_abbwfs_jacobians__f_shapes[3]),
3188 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3189 ts_abbwfs_fluxes_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_abbwfs_fluxes_,
3190 blitz::shape(transfer_struct_c.ts_abbwfs_fluxes__f_shapes[0],
3191 transfer_struct_c.ts_abbwfs_fluxes__f_shapes[1],
3192 transfer_struct_c.ts_abbwfs_fluxes__f_shapes[2],
3193 transfer_struct_c.ts_abbwfs_fluxes__f_shapes[3]),
3194 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3198 void link_nested_types() {
3204 blitz::Array<double, 4> ts_columnwf_;
3205 blitz::Array<double, 4> ts_mint_columnwf_;
3206 blitz::Array<double, 4> ts_flux_columnwf_;
3207 blitz::Array<double, 5> ts_profilewf_;
3208 blitz::Array<double, 5> ts_mint_profilewf_;
3209 blitz::Array<double, 5> ts_flux_profilewf_;
3210 blitz::Array<double, 4> ts_abbwfs_jacobians_;
3211 blitz::Array<double, 4> ts_abbwfs_fluxes_;
3226 int ts_surfacewf__f_shapes[4];
3230 int ts_mint_surfacewf__f_shapes[4];
3234 int ts_flux_surfacewf__f_shapes[4];
3238 int ts_sbbwfs_jacobians__f_shapes[3];
3242 int ts_sbbwfs_fluxes__f_shapes[3];
3254 link_blitz_arrays();
3255 link_nested_types();
3261 link_blitz_arrays();
3262 link_nested_types();
3272 return ts_surfacewf_;
3276 ts_surfacewf_ = ts_surfacewf_in;
3281 return ts_mint_surfacewf_;
3285 ts_mint_surfacewf_ = ts_mint_surfacewf_in;
3290 return ts_flux_surfacewf_;
3294 ts_flux_surfacewf_ = ts_flux_surfacewf_in;
3299 return ts_sbbwfs_jacobians_;
3303 ts_sbbwfs_jacobians_ = ts_sbbwfs_jacobians_in;
3308 return ts_sbbwfs_fluxes_;
3312 ts_sbbwfs_fluxes_ = ts_sbbwfs_fluxes_in;
3319 virtual void print(std::ostream &output_stream)
const {
3320 output_stream <<
"Lidort_Linsurf:" << std::endl
3321 <<
" ts_surfacewf: " << std::endl << ts_surfacewf() << std::endl
3322 <<
" ts_mint_surfacewf: " << std::endl << ts_mint_surfacewf() << std::endl
3323 <<
" ts_flux_surfacewf: " << std::endl << ts_flux_surfacewf() << std::endl
3324 <<
"ts_sbbwfs_jacobians: " << std::endl << ts_sbbwfs_jacobians() << std::endl
3325 <<
" ts_sbbwfs_fluxes: " << std::endl << ts_sbbwfs_fluxes() << std::endl;
3330 BYTE_SIZE_ERROR_CHECK(
"ts_surfacewf_",
sizeof(*transfer_struct_c.ts_surfacewf_),transfer_struct_c.ts_surfacewf__f_byte_size);
3331 BYTE_SIZE_ERROR_CHECK(
"ts_mint_surfacewf_",
sizeof(*transfer_struct_c.ts_mint_surfacewf_),transfer_struct_c.ts_mint_surfacewf__f_byte_size);
3332 BYTE_SIZE_ERROR_CHECK(
"ts_flux_surfacewf_",
sizeof(*transfer_struct_c.ts_flux_surfacewf_),transfer_struct_c.ts_flux_surfacewf__f_byte_size);
3333 BYTE_SIZE_ERROR_CHECK(
"ts_sbbwfs_jacobians_",
sizeof(*transfer_struct_c.ts_sbbwfs_jacobians_),transfer_struct_c.ts_sbbwfs_jacobians__f_byte_size);
3334 BYTE_SIZE_ERROR_CHECK(
"ts_sbbwfs_fluxes_",
sizeof(*transfer_struct_c.ts_sbbwfs_fluxes_),transfer_struct_c.ts_sbbwfs_fluxes__f_byte_size);
3339 void link_blitz_arrays() {
3340 ts_surfacewf_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_surfacewf_,
3341 blitz::shape(transfer_struct_c.ts_surfacewf__f_shapes[0],
3342 transfer_struct_c.ts_surfacewf__f_shapes[1],
3343 transfer_struct_c.ts_surfacewf__f_shapes[2],
3344 transfer_struct_c.ts_surfacewf__f_shapes[3]),
3345 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3346 ts_mint_surfacewf_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_mint_surfacewf_,
3347 blitz::shape(transfer_struct_c.ts_mint_surfacewf__f_shapes[0],
3348 transfer_struct_c.ts_mint_surfacewf__f_shapes[1],
3349 transfer_struct_c.ts_mint_surfacewf__f_shapes[2],
3350 transfer_struct_c.ts_mint_surfacewf__f_shapes[3]),
3351 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3352 ts_flux_surfacewf_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_flux_surfacewf_,
3353 blitz::shape(transfer_struct_c.ts_flux_surfacewf__f_shapes[0],
3354 transfer_struct_c.ts_flux_surfacewf__f_shapes[1],
3355 transfer_struct_c.ts_flux_surfacewf__f_shapes[2],
3356 transfer_struct_c.ts_flux_surfacewf__f_shapes[3]),
3357 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3358 ts_sbbwfs_jacobians_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_sbbwfs_jacobians_,
3359 blitz::shape(transfer_struct_c.ts_sbbwfs_jacobians__f_shapes[0],
3360 transfer_struct_c.ts_sbbwfs_jacobians__f_shapes[1],
3361 transfer_struct_c.ts_sbbwfs_jacobians__f_shapes[2]),
3362 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
3363 ts_sbbwfs_fluxes_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_sbbwfs_fluxes_,
3364 blitz::shape(transfer_struct_c.ts_sbbwfs_fluxes__f_shapes[0],
3365 transfer_struct_c.ts_sbbwfs_fluxes__f_shapes[1],
3366 transfer_struct_c.ts_sbbwfs_fluxes__f_shapes[2]),
3367 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
3371 void link_nested_types() {
3377 blitz::Array<double, 4> ts_surfacewf_;
3378 blitz::Array<double, 4> ts_mint_surfacewf_;
3379 blitz::Array<double, 4> ts_flux_surfacewf_;
3380 blitz::Array<double, 3> ts_sbbwfs_jacobians_;
3381 blitz::Array<double, 3> ts_sbbwfs_fluxes_;
3410 link_blitz_arrays();
3411 link_nested_types();
3417 link_blitz_arrays();
3418 link_nested_types();
3437 void* dst_ptr = atmos_->fortran_type_ptr();
3452 void* dst_ptr = surf_->fortran_type_ptr();
3460 virtual void print(std::ostream &output_stream)
const {
3461 output_stream <<
"Lidort_Linoutputs:" << std::endl
3462 <<
"atmos: " << atmos() << std::endl
3463 <<
" surf: " << surf() << std::endl;
3472 void link_blitz_arrays() {
3476 void link_nested_types() {
3500 int ts_ls_exactdb_brdfunc__f_shapes[4];
3504 int ts_ls_brdf_f_0__f_shapes[4];
3508 int ts_ls_brdf_f__f_shapes[4];
3512 int ts_ls_user_brdf_f_0__f_shapes[4];
3516 int ts_ls_user_brdf_f__f_shapes[4];
3520 int ts_ls_emissivity__f_shapes[2];
3524 int ts_ls_user_emissivity__f_shapes[2];
3536 link_blitz_arrays();
3537 link_nested_types();
3543 link_blitz_arrays();
3544 link_nested_types();
3554 return ts_ls_exactdb_brdfunc_;
3558 ts_ls_exactdb_brdfunc_ = ts_ls_exactdb_brdfunc_in;
3563 return ts_ls_brdf_f_0_;
3567 ts_ls_brdf_f_0_ = ts_ls_brdf_f_0_in;
3572 return ts_ls_brdf_f_;
3576 ts_ls_brdf_f_ = ts_ls_brdf_f_in;
3581 return ts_ls_user_brdf_f_0_;
3585 ts_ls_user_brdf_f_0_ = ts_ls_user_brdf_f_0_in;
3590 return ts_ls_user_brdf_f_;
3594 ts_ls_user_brdf_f_ = ts_ls_user_brdf_f_in;
3599 return ts_ls_emissivity_;
3603 ts_ls_emissivity_ = ts_ls_emissivity_in;
3608 return ts_ls_user_emissivity_;
3612 ts_ls_user_emissivity_ = ts_ls_user_emissivity_in;
3619 virtual void print(std::ostream &output_stream)
const {
3620 output_stream <<
"Lidort_Linsup_Brdf:" << std::endl
3621 <<
"ts_ls_exactdb_brdfunc: " << std::endl << ts_ls_exactdb_brdfunc() << std::endl
3622 <<
" ts_ls_brdf_f_0: " << std::endl << ts_ls_brdf_f_0() << std::endl
3623 <<
" ts_ls_brdf_f: " << std::endl << ts_ls_brdf_f() << std::endl
3624 <<
" ts_ls_user_brdf_f_0: " << std::endl << ts_ls_user_brdf_f_0() << std::endl
3625 <<
" ts_ls_user_brdf_f: " << std::endl << ts_ls_user_brdf_f() << std::endl
3626 <<
" ts_ls_emissivity: " << std::endl << ts_ls_emissivity() << std::endl
3627 <<
"ts_ls_user_emissivity: " << std::endl << ts_ls_user_emissivity() << std::endl;
3632 BYTE_SIZE_ERROR_CHECK(
"ts_ls_exactdb_brdfunc_",
sizeof(*transfer_struct_c.ts_ls_exactdb_brdfunc_),transfer_struct_c.ts_ls_exactdb_brdfunc__f_byte_size);
3633 BYTE_SIZE_ERROR_CHECK(
"ts_ls_brdf_f_0_",
sizeof(*transfer_struct_c.ts_ls_brdf_f_0_),transfer_struct_c.ts_ls_brdf_f_0__f_byte_size);
3634 BYTE_SIZE_ERROR_CHECK(
"ts_ls_brdf_f_",
sizeof(*transfer_struct_c.ts_ls_brdf_f_),transfer_struct_c.ts_ls_brdf_f__f_byte_size);
3635 BYTE_SIZE_ERROR_CHECK(
"ts_ls_user_brdf_f_0_",
sizeof(*transfer_struct_c.ts_ls_user_brdf_f_0_),transfer_struct_c.ts_ls_user_brdf_f_0__f_byte_size);
3636 BYTE_SIZE_ERROR_CHECK(
"ts_ls_user_brdf_f_",
sizeof(*transfer_struct_c.ts_ls_user_brdf_f_),transfer_struct_c.ts_ls_user_brdf_f__f_byte_size);
3637 BYTE_SIZE_ERROR_CHECK(
"ts_ls_emissivity_",
sizeof(*transfer_struct_c.ts_ls_emissivity_),transfer_struct_c.ts_ls_emissivity__f_byte_size);
3638 BYTE_SIZE_ERROR_CHECK(
"ts_ls_user_emissivity_",
sizeof(*transfer_struct_c.ts_ls_user_emissivity_),transfer_struct_c.ts_ls_user_emissivity__f_byte_size);
3652 void link_blitz_arrays() {
3653 ts_ls_exactdb_brdfunc_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_ls_exactdb_brdfunc_,
3654 blitz::shape(transfer_struct_c.ts_ls_exactdb_brdfunc__f_shapes[0],
3655 transfer_struct_c.ts_ls_exactdb_brdfunc__f_shapes[1],
3656 transfer_struct_c.ts_ls_exactdb_brdfunc__f_shapes[2],
3657 transfer_struct_c.ts_ls_exactdb_brdfunc__f_shapes[3]),
3658 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3659 ts_ls_brdf_f_0_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_ls_brdf_f_0_,
3660 blitz::shape(transfer_struct_c.ts_ls_brdf_f_0__f_shapes[0],
3661 transfer_struct_c.ts_ls_brdf_f_0__f_shapes[1],
3662 transfer_struct_c.ts_ls_brdf_f_0__f_shapes[2],
3663 transfer_struct_c.ts_ls_brdf_f_0__f_shapes[3]),
3664 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3665 ts_ls_brdf_f_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_ls_brdf_f_,
3666 blitz::shape(transfer_struct_c.ts_ls_brdf_f__f_shapes[0],
3667 transfer_struct_c.ts_ls_brdf_f__f_shapes[1],
3668 transfer_struct_c.ts_ls_brdf_f__f_shapes[2],
3669 transfer_struct_c.ts_ls_brdf_f__f_shapes[3]),
3670 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3671 ts_ls_user_brdf_f_0_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_ls_user_brdf_f_0_,
3672 blitz::shape(transfer_struct_c.ts_ls_user_brdf_f_0__f_shapes[0],
3673 transfer_struct_c.ts_ls_user_brdf_f_0__f_shapes[1],
3674 transfer_struct_c.ts_ls_user_brdf_f_0__f_shapes[2],
3675 transfer_struct_c.ts_ls_user_brdf_f_0__f_shapes[3]),
3676 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3677 ts_ls_user_brdf_f_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_ls_user_brdf_f_,
3678 blitz::shape(transfer_struct_c.ts_ls_user_brdf_f__f_shapes[0],
3679 transfer_struct_c.ts_ls_user_brdf_f__f_shapes[1],
3680 transfer_struct_c.ts_ls_user_brdf_f__f_shapes[2],
3681 transfer_struct_c.ts_ls_user_brdf_f__f_shapes[3]),
3682 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3683 ts_ls_emissivity_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_ls_emissivity_,
3684 blitz::shape(transfer_struct_c.ts_ls_emissivity__f_shapes[0],
3685 transfer_struct_c.ts_ls_emissivity__f_shapes[1]),
3686 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
3687 ts_ls_user_emissivity_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_ls_user_emissivity_,
3688 blitz::shape(transfer_struct_c.ts_ls_user_emissivity__f_shapes[0],
3689 transfer_struct_c.ts_ls_user_emissivity__f_shapes[1]),
3690 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
3694 void link_nested_types() {
3700 blitz::Array<double, 4> ts_ls_exactdb_brdfunc_;
3701 blitz::Array<double, 4> ts_ls_brdf_f_0_;
3702 blitz::Array<double, 4> ts_ls_brdf_f_;
3703 blitz::Array<double, 4> ts_ls_user_brdf_f_0_;
3704 blitz::Array<double, 4> ts_ls_user_brdf_f_;
3705 blitz::Array<double, 2> ts_ls_emissivity_;
3706 blitz::Array<double, 2> ts_ls_user_emissivity_;
3721 int ts_columnwf_ss__f_shapes[4];
3725 int ts_columnwf_db__f_shapes[3];
3729 int ts_profilewf_ss__f_shapes[5];
3733 int ts_profilewf_db__f_shapes[4];
3745 link_blitz_arrays();
3746 link_nested_types();
3752 link_blitz_arrays();
3753 link_nested_types();
3763 return ts_columnwf_ss_;
3767 ts_columnwf_ss_ = ts_columnwf_ss_in;
3772 return ts_columnwf_db_;
3776 ts_columnwf_db_ = ts_columnwf_db_in;
3781 return ts_profilewf_ss_;
3785 ts_profilewf_ss_ = ts_profilewf_ss_in;
3790 return ts_profilewf_db_;
3794 ts_profilewf_db_ = ts_profilewf_db_in;
3801 virtual void print(std::ostream &output_stream)
const {
3802 output_stream <<
"Lidort_Linsup_Ss_Atmos:" << std::endl
3803 <<
" ts_columnwf_ss: " << std::endl << ts_columnwf_ss() << std::endl
3804 <<
" ts_columnwf_db: " << std::endl << ts_columnwf_db() << std::endl
3805 <<
"ts_profilewf_ss: " << std::endl << ts_profilewf_ss() << std::endl
3806 <<
"ts_profilewf_db: " << std::endl << ts_profilewf_db() << std::endl;
3811 BYTE_SIZE_ERROR_CHECK(
"ts_columnwf_ss_",
sizeof(*transfer_struct_c.ts_columnwf_ss_),transfer_struct_c.ts_columnwf_ss__f_byte_size);
3812 BYTE_SIZE_ERROR_CHECK(
"ts_columnwf_db_",
sizeof(*transfer_struct_c.ts_columnwf_db_),transfer_struct_c.ts_columnwf_db__f_byte_size);
3813 BYTE_SIZE_ERROR_CHECK(
"ts_profilewf_ss_",
sizeof(*transfer_struct_c.ts_profilewf_ss_),transfer_struct_c.ts_profilewf_ss__f_byte_size);
3814 BYTE_SIZE_ERROR_CHECK(
"ts_profilewf_db_",
sizeof(*transfer_struct_c.ts_profilewf_db_),transfer_struct_c.ts_profilewf_db__f_byte_size);
3819 void link_blitz_arrays() {
3820 ts_columnwf_ss_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_columnwf_ss_,
3821 blitz::shape(transfer_struct_c.ts_columnwf_ss__f_shapes[0],
3822 transfer_struct_c.ts_columnwf_ss__f_shapes[1],
3823 transfer_struct_c.ts_columnwf_ss__f_shapes[2],
3824 transfer_struct_c.ts_columnwf_ss__f_shapes[3]),
3825 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3826 ts_columnwf_db_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_columnwf_db_,
3827 blitz::shape(transfer_struct_c.ts_columnwf_db__f_shapes[0],
3828 transfer_struct_c.ts_columnwf_db__f_shapes[1],
3829 transfer_struct_c.ts_columnwf_db__f_shapes[2]),
3830 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
3831 ts_profilewf_ss_.reference(blitz::Array<double, 5>(transfer_struct_c.ts_profilewf_ss_,
3832 blitz::shape(transfer_struct_c.ts_profilewf_ss__f_shapes[0],
3833 transfer_struct_c.ts_profilewf_ss__f_shapes[1],
3834 transfer_struct_c.ts_profilewf_ss__f_shapes[2],
3835 transfer_struct_c.ts_profilewf_ss__f_shapes[3],
3836 transfer_struct_c.ts_profilewf_ss__f_shapes[4]),
3837 blitz::neverDeleteData, blitz::ColumnMajorArray<5>()));
3838 ts_profilewf_db_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_profilewf_db_,
3839 blitz::shape(transfer_struct_c.ts_profilewf_db__f_shapes[0],
3840 transfer_struct_c.ts_profilewf_db__f_shapes[1],
3841 transfer_struct_c.ts_profilewf_db__f_shapes[2],
3842 transfer_struct_c.ts_profilewf_db__f_shapes[3]),
3843 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
3847 void link_nested_types() {
3853 blitz::Array<double, 4> ts_columnwf_ss_;
3854 blitz::Array<double, 3> ts_columnwf_db_;
3855 blitz::Array<double, 5> ts_profilewf_ss_;
3856 blitz::Array<double, 4> ts_profilewf_db_;
3871 int ts_surfacewf_db__f_shapes[3];
3883 link_blitz_arrays();
3884 link_nested_types();
3890 link_blitz_arrays();
3891 link_nested_types();
3901 return ts_surfacewf_db_;
3905 ts_surfacewf_db_ = ts_surfacewf_db_in;
3912 virtual void print(std::ostream &output_stream)
const {
3913 output_stream <<
"Lidort_Linsup_Ss_Surf:" << std::endl
3914 <<
"ts_surfacewf_db: " << std::endl << ts_surfacewf_db() << std::endl;
3919 BYTE_SIZE_ERROR_CHECK(
"ts_surfacewf_db_",
sizeof(*transfer_struct_c.ts_surfacewf_db_),transfer_struct_c.ts_surfacewf_db__f_byte_size);
3924 void link_blitz_arrays() {
3925 ts_surfacewf_db_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_surfacewf_db_,
3926 blitz::shape(transfer_struct_c.ts_surfacewf_db__f_shapes[0],
3927 transfer_struct_c.ts_surfacewf_db__f_shapes[1],
3928 transfer_struct_c.ts_surfacewf_db__f_shapes[2]),
3929 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
3933 void link_nested_types() {
3939 blitz::Array<double, 3> ts_surfacewf_db_;
3968 link_blitz_arrays();
3969 link_nested_types();
3975 link_blitz_arrays();
3976 link_nested_types();
3995 void* dst_ptr = atmos_->fortran_type_ptr();
4010 void* dst_ptr = surf_->fortran_type_ptr();
4018 virtual void print(std::ostream &output_stream)
const {
4019 output_stream <<
"Lidort_Linsup_Ss:" << std::endl
4020 <<
"atmos: " << atmos() << std::endl
4021 <<
" surf: " << surf() << std::endl;
4030 void link_blitz_arrays() {
4034 void link_nested_types() {
4058 int ts_lssl_slterm_isotropic__f_shapes[2];
4062 int ts_lssl_slterm_userangles__f_shapes[4];
4066 int ts_lssl_slterm_f_0__f_shapes[4];
4070 int ts_lssl_user_slterm_f_0__f_shapes[4];
4082 link_blitz_arrays();
4083 link_nested_types();
4089 link_blitz_arrays();
4090 link_nested_types();
4100 return ts_lssl_slterm_isotropic_;
4104 ts_lssl_slterm_isotropic_ = ts_lssl_slterm_isotropic_in;
4109 return ts_lssl_slterm_userangles_;
4113 ts_lssl_slterm_userangles_ = ts_lssl_slterm_userangles_in;
4118 return ts_lssl_slterm_f_0_;
4122 ts_lssl_slterm_f_0_ = ts_lssl_slterm_f_0_in;
4127 return ts_lssl_user_slterm_f_0_;
4131 ts_lssl_user_slterm_f_0_ = ts_lssl_user_slterm_f_0_in;
4138 virtual void print(std::ostream &output_stream)
const {
4139 output_stream <<
"Lidort_Linsup_Sleave:" << std::endl
4140 <<
" ts_lssl_slterm_isotropic: " << std::endl << ts_lssl_slterm_isotropic() << std::endl
4141 <<
"ts_lssl_slterm_userangles: " << std::endl << ts_lssl_slterm_userangles() << std::endl
4142 <<
" ts_lssl_slterm_f_0: " << std::endl << ts_lssl_slterm_f_0() << std::endl
4143 <<
" ts_lssl_user_slterm_f_0: " << std::endl << ts_lssl_user_slterm_f_0() << std::endl;
4148 BYTE_SIZE_ERROR_CHECK(
"ts_lssl_slterm_isotropic_",
sizeof(*transfer_struct_c.ts_lssl_slterm_isotropic_),transfer_struct_c.ts_lssl_slterm_isotropic__f_byte_size);
4149 BYTE_SIZE_ERROR_CHECK(
"ts_lssl_slterm_userangles_",
sizeof(*transfer_struct_c.ts_lssl_slterm_userangles_),transfer_struct_c.ts_lssl_slterm_userangles__f_byte_size);
4150 BYTE_SIZE_ERROR_CHECK(
"ts_lssl_slterm_f_0_",
sizeof(*transfer_struct_c.ts_lssl_slterm_f_0_),transfer_struct_c.ts_lssl_slterm_f_0__f_byte_size);
4151 BYTE_SIZE_ERROR_CHECK(
"ts_lssl_user_slterm_f_0_",
sizeof(*transfer_struct_c.ts_lssl_user_slterm_f_0_),transfer_struct_c.ts_lssl_user_slterm_f_0__f_byte_size);
4156 void link_blitz_arrays() {
4157 ts_lssl_slterm_isotropic_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_lssl_slterm_isotropic_,
4158 blitz::shape(transfer_struct_c.ts_lssl_slterm_isotropic__f_shapes[0],
4159 transfer_struct_c.ts_lssl_slterm_isotropic__f_shapes[1]),
4160 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
4161 ts_lssl_slterm_userangles_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_lssl_slterm_userangles_,
4162 blitz::shape(transfer_struct_c.ts_lssl_slterm_userangles__f_shapes[0],
4163 transfer_struct_c.ts_lssl_slterm_userangles__f_shapes[1],
4164 transfer_struct_c.ts_lssl_slterm_userangles__f_shapes[2],
4165 transfer_struct_c.ts_lssl_slterm_userangles__f_shapes[3]),
4166 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
4167 ts_lssl_slterm_f_0_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_lssl_slterm_f_0_,
4168 blitz::shape(transfer_struct_c.ts_lssl_slterm_f_0__f_shapes[0],
4169 transfer_struct_c.ts_lssl_slterm_f_0__f_shapes[1],
4170 transfer_struct_c.ts_lssl_slterm_f_0__f_shapes[2],
4171 transfer_struct_c.ts_lssl_slterm_f_0__f_shapes[3]),
4172 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
4173 ts_lssl_user_slterm_f_0_.reference(blitz::Array<double, 4>(transfer_struct_c.ts_lssl_user_slterm_f_0_,
4174 blitz::shape(transfer_struct_c.ts_lssl_user_slterm_f_0__f_shapes[0],
4175 transfer_struct_c.ts_lssl_user_slterm_f_0__f_shapes[1],
4176 transfer_struct_c.ts_lssl_user_slterm_f_0__f_shapes[2],
4177 transfer_struct_c.ts_lssl_user_slterm_f_0__f_shapes[3]),
4178 blitz::neverDeleteData, blitz::ColumnMajorArray<4>()));
4182 void link_nested_types() {
4188 blitz::Array<double, 2> ts_lssl_slterm_isotropic_;
4189 blitz::Array<double, 4> ts_lssl_slterm_userangles_;
4190 blitz::Array<double, 4> ts_lssl_slterm_f_0_;
4191 blitz::Array<double, 4> ts_lssl_user_slterm_f_0_;
4223 link_blitz_arrays();
4224 link_nested_types();
4230 link_blitz_arrays();
4231 link_nested_types();
4250 void* dst_ptr = brdf_->fortran_type_ptr();
4265 void* dst_ptr = ss_->fortran_type_ptr();
4280 void* dst_ptr = sleave_->fortran_type_ptr();
4288 virtual void print(std::ostream &output_stream)
const {
4289 output_stream <<
"Lidort_Linsup_Inout:" << std::endl
4290 <<
" brdf: " << brdf() << std::endl
4291 <<
" ss: " << ss() << std::endl
4292 <<
"sleave: " << sleave() << std::endl;
4301 void link_blitz_arrays() {
4305 void link_nested_types() {
4331 int ts_intensity__f_shapes[3];
4335 int ts_mean_intensity__f_shapes[3];
4339 int ts_flux_integral__f_shapes[3];
4343 int ts_dnflux_direct__f_shapes[2];
4347 int ts_dnmean_direct__f_shapes[2];
4351 int ts_fourier_saved__f_shapes[1];
4358 int ts_solarbeam_boatrans__f_shapes[1];
4370 link_blitz_arrays();
4371 link_nested_types();
4377 link_blitz_arrays();
4378 link_nested_types();
4388 return ts_intensity_;
4392 ts_intensity_ = ts_intensity_in;
4397 return ts_mean_intensity_;
4401 ts_mean_intensity_ = ts_mean_intensity_in;
4406 return ts_flux_integral_;
4410 ts_flux_integral_ = ts_flux_integral_in;
4415 return ts_dnflux_direct_;
4419 ts_dnflux_direct_ = ts_dnflux_direct_in;
4424 return ts_dnmean_direct_;
4428 ts_dnmean_direct_ = ts_dnmean_direct_in;
4433 return ts_fourier_saved_;
4437 ts_fourier_saved_ = ts_fourier_saved_in;
4442 return *transfer_struct_c.ts_n_geometries_;
4446 *transfer_struct_c.ts_n_geometries_ = ts_n_geometries_in;
4451 return ts_solarbeam_boatrans_;
4455 ts_solarbeam_boatrans_ = ts_solarbeam_boatrans_in;
4462 virtual void print(std::ostream &output_stream)
const {
4463 output_stream <<
"Lidort_Main_Outputs:" << std::endl
4464 <<
" ts_intensity: " << std::endl << ts_intensity() << std::endl
4465 <<
" ts_mean_intensity: " << std::endl << ts_mean_intensity() << std::endl
4466 <<
" ts_flux_integral: " << std::endl << ts_flux_integral() << std::endl
4467 <<
" ts_dnflux_direct: " << std::endl << ts_dnflux_direct() << std::endl
4468 <<
" ts_dnmean_direct: " << std::endl << ts_dnmean_direct() << std::endl
4469 <<
" ts_fourier_saved: " << std::endl << ts_fourier_saved() << std::endl
4470 <<
" ts_n_geometries: " << ts_n_geometries() << std::endl
4471 <<
"ts_solarbeam_boatrans: " << std::endl << ts_solarbeam_boatrans() << std::endl;
4476 BYTE_SIZE_ERROR_CHECK(
"ts_intensity_",
sizeof(*transfer_struct_c.ts_intensity_),transfer_struct_c.ts_intensity__f_byte_size);
4477 BYTE_SIZE_ERROR_CHECK(
"ts_mean_intensity_",
sizeof(*transfer_struct_c.ts_mean_intensity_),transfer_struct_c.ts_mean_intensity__f_byte_size);
4478 BYTE_SIZE_ERROR_CHECK(
"ts_flux_integral_",
sizeof(*transfer_struct_c.ts_flux_integral_),transfer_struct_c.ts_flux_integral__f_byte_size);
4479 BYTE_SIZE_ERROR_CHECK(
"ts_dnflux_direct_",
sizeof(*transfer_struct_c.ts_dnflux_direct_),transfer_struct_c.ts_dnflux_direct__f_byte_size);
4480 BYTE_SIZE_ERROR_CHECK(
"ts_dnmean_direct_",
sizeof(*transfer_struct_c.ts_dnmean_direct_),transfer_struct_c.ts_dnmean_direct__f_byte_size);
4481 BYTE_SIZE_ERROR_CHECK(
"ts_fourier_saved_",
sizeof(*transfer_struct_c.ts_fourier_saved_),transfer_struct_c.ts_fourier_saved__f_byte_size);
4482 BYTE_SIZE_ERROR_CHECK(
"ts_n_geometries_",
sizeof(*transfer_struct_c.ts_n_geometries_),transfer_struct_c.ts_n_geometries__f_byte_size);
4483 BYTE_SIZE_ERROR_CHECK(
"ts_solarbeam_boatrans_",
sizeof(*transfer_struct_c.ts_solarbeam_boatrans_),transfer_struct_c.ts_solarbeam_boatrans__f_byte_size);
4488 void link_blitz_arrays() {
4489 ts_intensity_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_intensity_,
4490 blitz::shape(transfer_struct_c.ts_intensity__f_shapes[0],
4491 transfer_struct_c.ts_intensity__f_shapes[1],
4492 transfer_struct_c.ts_intensity__f_shapes[2]),
4493 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
4494 ts_mean_intensity_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_mean_intensity_,
4495 blitz::shape(transfer_struct_c.ts_mean_intensity__f_shapes[0],
4496 transfer_struct_c.ts_mean_intensity__f_shapes[1],
4497 transfer_struct_c.ts_mean_intensity__f_shapes[2]),
4498 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
4499 ts_flux_integral_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_flux_integral_,
4500 blitz::shape(transfer_struct_c.ts_flux_integral__f_shapes[0],
4501 transfer_struct_c.ts_flux_integral__f_shapes[1],
4502 transfer_struct_c.ts_flux_integral__f_shapes[2]),
4503 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
4504 ts_dnflux_direct_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_dnflux_direct_,
4505 blitz::shape(transfer_struct_c.ts_dnflux_direct__f_shapes[0],
4506 transfer_struct_c.ts_dnflux_direct__f_shapes[1]),
4507 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
4508 ts_dnmean_direct_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_dnmean_direct_,
4509 blitz::shape(transfer_struct_c.ts_dnmean_direct__f_shapes[0],
4510 transfer_struct_c.ts_dnmean_direct__f_shapes[1]),
4511 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
4512 ts_fourier_saved_.reference(blitz::Array<int, 1>(transfer_struct_c.ts_fourier_saved_,
4513 blitz::shape(transfer_struct_c.ts_fourier_saved__f_shapes[0]),
4514 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
4515 ts_solarbeam_boatrans_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_solarbeam_boatrans_,
4516 blitz::shape(transfer_struct_c.ts_solarbeam_boatrans__f_shapes[0]),
4517 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
4521 void link_nested_types() {
4527 blitz::Array<double, 3> ts_intensity_;
4528 blitz::Array<double, 3> ts_mean_intensity_;
4529 blitz::Array<double, 3> ts_flux_integral_;
4530 blitz::Array<double, 2> ts_dnflux_direct_;
4531 blitz::Array<double, 2> ts_dnmean_direct_;
4532 blitz::Array<int, 1> ts_fourier_saved_;
4533 blitz::Array<double, 1> ts_solarbeam_boatrans_;
4560 int ts_checkmessages__f_shapes[1];
4564 int ts_actions__f_shapes[1];
4591 link_blitz_arrays();
4592 link_nested_types();
4598 link_blitz_arrays();
4599 link_nested_types();
4609 return *transfer_struct_c.ts_status_inputcheck_;
4613 *transfer_struct_c.ts_status_inputcheck_ = ts_status_inputcheck_in;
4618 return *transfer_struct_c.ts_ncheckmessages_;
4622 *transfer_struct_c.ts_ncheckmessages_ = ts_ncheckmessages_in;
4627 std::vector< std::string > ts_checkmessages_ret;
4628 blitz::Array<char, 2> ts_checkmessages_lcl = blitz::Array<char, 2>(transfer_struct_c.ts_checkmessages__f_shapes[0], transfer_struct_c.ts_checkmessages__f_len+1, blitz::ColumnMajorArray<2>());
4629 exception_handling_ts_checkmessages_get(const_cast<void**>(&fortran_type_c), &transfer_struct_c.ts_checkmessages__f_shapes[0], &transfer_struct_c.ts_checkmessages__f_len, ts_checkmessages_lcl.dataFirst());
4630 for(
int dim_0_idx = 0; dim_0_idx < ts_checkmessages_lcl.extent(0); dim_0_idx++)
4631 ts_checkmessages_ret.push_back( std::string(std::string(ts_checkmessages_lcl(dim_0_idx, blitz::Range::all()).begin(), ts_checkmessages_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
4632 return ts_checkmessages_ret;
4637 std::vector< std::string > ts_actions_ret;
4638 blitz::Array<char, 2> ts_actions_lcl = blitz::Array<char, 2>(transfer_struct_c.ts_actions__f_shapes[0], transfer_struct_c.ts_actions__f_len+1, blitz::ColumnMajorArray<2>());
4639 exception_handling_ts_actions_get(const_cast<void**>(&fortran_type_c), &transfer_struct_c.ts_actions__f_shapes[0], &transfer_struct_c.ts_actions__f_len, ts_actions_lcl.dataFirst());
4640 for(
int dim_0_idx = 0; dim_0_idx < ts_actions_lcl.extent(0); dim_0_idx++)
4641 ts_actions_ret.push_back( std::string(std::string(ts_actions_lcl(dim_0_idx, blitz::Range::all()).begin(), ts_actions_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
4642 return ts_actions_ret;
4647 return *transfer_struct_c.ts_status_calculation_;
4651 *transfer_struct_c.ts_status_calculation_ = ts_status_calculation_in;
4656 std::string ts_message_ret;
4657 blitz::Array<char, 1> ts_message_lcl = blitz::Array<char, 1>(transfer_struct_c.ts_message__f_len+1, blitz::ColumnMajorArray<1>());
4659 ts_message_ret = ( std::string(std::string(ts_message_lcl(blitz::Range::all()).begin(), ts_message_lcl(blitz::Range::all()).end()).c_str()) );
4660 return ts_message_ret;
4665 std::string ts_trace_1_ret;
4666 blitz::Array<char, 1> ts_trace_1_lcl = blitz::Array<char, 1>(transfer_struct_c.ts_trace_1__f_len+1, blitz::ColumnMajorArray<1>());
4668 ts_trace_1_ret = ( std::string(std::string(ts_trace_1_lcl(blitz::Range::all()).begin(), ts_trace_1_lcl(blitz::Range::all()).end()).c_str()) );
4669 return ts_trace_1_ret;
4674 std::string ts_trace_2_ret;
4675 blitz::Array<char, 1> ts_trace_2_lcl = blitz::Array<char, 1>(transfer_struct_c.ts_trace_2__f_len+1, blitz::ColumnMajorArray<1>());
4677 ts_trace_2_ret = ( std::string(std::string(ts_trace_2_lcl(blitz::Range::all()).begin(), ts_trace_2_lcl(blitz::Range::all()).end()).c_str()) );
4678 return ts_trace_2_ret;
4683 std::string ts_trace_3_ret;
4684 blitz::Array<char, 1> ts_trace_3_lcl = blitz::Array<char, 1>(transfer_struct_c.ts_trace_3__f_len+1, blitz::ColumnMajorArray<1>());
4686 ts_trace_3_ret = ( std::string(std::string(ts_trace_3_lcl(blitz::Range::all()).begin(), ts_trace_3_lcl(blitz::Range::all()).end()).c_str()) );
4687 return ts_trace_3_ret;
4694 virtual void print(std::ostream &output_stream)
const {
4695 output_stream <<
"Lidort_Exception_Handling:" << std::endl
4696 <<
" ts_status_inputcheck: " << ts_status_inputcheck() << std::endl
4697 <<
" ts_ncheckmessages: " << ts_ncheckmessages() << std::endl
4698 <<
" ts_checkmessages: " << std::endl;
4699 std::vector< std::string > ts_checkmessages_lcl = ts_checkmessages();
4700 for(
unsigned int idx = 0; idx < ts_checkmessages_lcl.size(); idx++)
4701 if ( ts_checkmessages_lcl[idx].length() > 0 )
4702 output_stream <<
" [" << idx <<
"]: \"" << ts_checkmessages_lcl[idx] <<
"\"" << std::endl;
4704 <<
" ts_actions: " << std::endl;
4705 std::vector< std::string > ts_actions_lcl = ts_actions();
4706 for(
unsigned int idx = 0; idx < ts_actions_lcl.size(); idx++)
4707 if ( ts_actions_lcl[idx].length() > 0 )
4708 output_stream <<
" [" << idx <<
"]: \"" << ts_actions_lcl[idx] <<
"\"" << std::endl;
4710 <<
"ts_status_calculation: " << ts_status_calculation() << std::endl
4711 <<
" ts_message: " <<
"\"" << ts_message() <<
"\"" << std::endl
4712 <<
" ts_trace_1: " <<
"\"" << ts_trace_1() <<
"\"" << std::endl
4713 <<
" ts_trace_2: " <<
"\"" << ts_trace_2() <<
"\"" << std::endl
4714 <<
" ts_trace_3: " <<
"\"" << ts_trace_3() <<
"\"" << std::endl;
4719 BYTE_SIZE_ERROR_CHECK(
"ts_status_inputcheck_",
sizeof(*transfer_struct_c.ts_status_inputcheck_),transfer_struct_c.ts_status_inputcheck__f_byte_size);
4720 BYTE_SIZE_ERROR_CHECK(
"ts_ncheckmessages_",
sizeof(*transfer_struct_c.ts_ncheckmessages_),transfer_struct_c.ts_ncheckmessages__f_byte_size);
4721 BYTE_SIZE_ERROR_CHECK(
"ts_status_calculation_",
sizeof(*transfer_struct_c.ts_status_calculation_),transfer_struct_c.ts_status_calculation__f_byte_size);
4726 void link_blitz_arrays() {
4730 void link_nested_types() {
4758 int ts_inputmessages__f_shapes[1];
4762 int ts_inputactions__f_shapes[1];
4774 link_blitz_arrays();
4775 link_nested_types();
4781 link_blitz_arrays();
4782 link_nested_types();
4792 return *transfer_struct_c.ts_status_inputread_;
4796 *transfer_struct_c.ts_status_inputread_ = ts_status_inputread_in;
4801 return *transfer_struct_c.ts_ninputmessages_;
4805 *transfer_struct_c.ts_ninputmessages_ = ts_ninputmessages_in;
4810 std::vector< std::string > ts_inputmessages_ret;
4811 blitz::Array<char, 2> ts_inputmessages_lcl = blitz::Array<char, 2>(transfer_struct_c.ts_inputmessages__f_shapes[0], transfer_struct_c.ts_inputmessages__f_len+1, blitz::ColumnMajorArray<2>());
4813 for(
int dim_0_idx = 0; dim_0_idx < ts_inputmessages_lcl.extent(0); dim_0_idx++)
4814 ts_inputmessages_ret.push_back( std::string(std::string(ts_inputmessages_lcl(dim_0_idx, blitz::Range::all()).begin(), ts_inputmessages_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
4815 return ts_inputmessages_ret;
4820 std::vector< std::string > ts_inputactions_ret;
4821 blitz::Array<char, 2> ts_inputactions_lcl = blitz::Array<char, 2>(transfer_struct_c.ts_inputactions__f_shapes[0], transfer_struct_c.ts_inputactions__f_len+1, blitz::ColumnMajorArray<2>());
4823 for(
int dim_0_idx = 0; dim_0_idx < ts_inputactions_lcl.extent(0); dim_0_idx++)
4824 ts_inputactions_ret.push_back( std::string(std::string(ts_inputactions_lcl(dim_0_idx, blitz::Range::all()).begin(), ts_inputactions_lcl(dim_0_idx, blitz::Range::all()).end()).c_str()) );
4825 return ts_inputactions_ret;
4832 virtual void print(std::ostream &output_stream)
const {
4833 output_stream <<
"Lidort_Input_Exception_Handling:" << std::endl
4834 <<
"ts_status_inputread: " << ts_status_inputread() << std::endl
4835 <<
" ts_ninputmessages: " << ts_ninputmessages() << std::endl
4836 <<
" ts_inputmessages: " << std::endl;
4837 std::vector< std::string > ts_inputmessages_lcl = ts_inputmessages();
4838 for(
unsigned int idx = 0; idx < ts_inputmessages_lcl.size(); idx++)
4839 if ( ts_inputmessages_lcl[idx].length() > 0 )
4840 output_stream <<
" [" << idx <<
"]: \"" << ts_inputmessages_lcl[idx] <<
"\"" << std::endl;
4842 <<
" ts_inputactions: " << std::endl;
4843 std::vector< std::string > ts_inputactions_lcl = ts_inputactions();
4844 for(
unsigned int idx = 0; idx < ts_inputactions_lcl.size(); idx++)
4845 if ( ts_inputactions_lcl[idx].length() > 0 )
4846 output_stream <<
" [" << idx <<
"]: \"" << ts_inputactions_lcl[idx] <<
"\"" << std::endl;
4850 BYTE_SIZE_ERROR_CHECK(
"ts_status_inputread_",
sizeof(*transfer_struct_c.ts_status_inputread_),transfer_struct_c.ts_status_inputread__f_byte_size);
4851 BYTE_SIZE_ERROR_CHECK(
"ts_ninputmessages_",
sizeof(*transfer_struct_c.ts_ninputmessages_),transfer_struct_c.ts_ninputmessages__f_byte_size);
4856 void link_blitz_arrays() {
4860 void link_nested_types() {
4894 link_blitz_arrays();
4895 link_nested_types();
4901 link_blitz_arrays();
4902 link_nested_types();
4921 void* dst_ptr = main_->fortran_type_ptr();
4936 void* dst_ptr = status_->fortran_type_ptr();
4944 virtual void print(std::ostream &output_stream)
const {
4945 output_stream <<
"Lidort_Outputs:" << std::endl
4946 <<
" main: " <<
main() << std::endl
4947 <<
"status: " << status() << std::endl;
4956 void link_blitz_arrays() {
4960 void link_nested_types() {
4984 int ts_exactdb_brdfunc__f_shapes[3];
4988 int ts_brdf_f_0__f_shapes[3];
4992 int ts_brdf_f__f_shapes[3];
4996 int ts_user_brdf_f_0__f_shapes[3];
5000 int ts_user_brdf_f__f_shapes[3];
5004 int ts_emissivity__f_shapes[1];
5008 int ts_user_emissivity__f_shapes[1];
5020 link_blitz_arrays();
5021 link_nested_types();
5027 link_blitz_arrays();
5028 link_nested_types();
5038 return ts_exactdb_brdfunc_;
5042 ts_exactdb_brdfunc_ = ts_exactdb_brdfunc_in;
5047 return ts_brdf_f_0_;
5051 ts_brdf_f_0_ = ts_brdf_f_0_in;
5059 void ts_brdf_f(
const blitz::Array<double, 3>& ts_brdf_f_in) {
5060 ts_brdf_f_ = ts_brdf_f_in;
5065 return ts_user_brdf_f_0_;
5069 ts_user_brdf_f_0_ = ts_user_brdf_f_0_in;
5074 return ts_user_brdf_f_;
5078 ts_user_brdf_f_ = ts_user_brdf_f_in;
5083 return ts_emissivity_;
5087 ts_emissivity_ = ts_emissivity_in;
5092 return ts_user_emissivity_;
5096 ts_user_emissivity_ = ts_user_emissivity_in;
5103 virtual void print(std::ostream &output_stream)
const {
5104 output_stream <<
"Lidort_Sup_Brdf:" << std::endl
5105 <<
"ts_exactdb_brdfunc: " << std::endl << ts_exactdb_brdfunc() << std::endl
5106 <<
" ts_brdf_f_0: " << std::endl << ts_brdf_f_0() << std::endl
5107 <<
" ts_brdf_f: " << std::endl << ts_brdf_f() << std::endl
5108 <<
" ts_user_brdf_f_0: " << std::endl << ts_user_brdf_f_0() << std::endl
5109 <<
" ts_user_brdf_f: " << std::endl << ts_user_brdf_f() << std::endl
5110 <<
" ts_emissivity: " << std::endl << ts_emissivity() << std::endl
5111 <<
"ts_user_emissivity: " << std::endl << ts_user_emissivity() << std::endl;
5116 BYTE_SIZE_ERROR_CHECK(
"ts_exactdb_brdfunc_",
sizeof(*transfer_struct_c.ts_exactdb_brdfunc_),transfer_struct_c.ts_exactdb_brdfunc__f_byte_size);
5117 BYTE_SIZE_ERROR_CHECK(
"ts_brdf_f_0_",
sizeof(*transfer_struct_c.ts_brdf_f_0_),transfer_struct_c.ts_brdf_f_0__f_byte_size);
5118 BYTE_SIZE_ERROR_CHECK(
"ts_brdf_f_",
sizeof(*transfer_struct_c.ts_brdf_f_),transfer_struct_c.ts_brdf_f__f_byte_size);
5119 BYTE_SIZE_ERROR_CHECK(
"ts_user_brdf_f_0_",
sizeof(*transfer_struct_c.ts_user_brdf_f_0_),transfer_struct_c.ts_user_brdf_f_0__f_byte_size);
5120 BYTE_SIZE_ERROR_CHECK(
"ts_user_brdf_f_",
sizeof(*transfer_struct_c.ts_user_brdf_f_),transfer_struct_c.ts_user_brdf_f__f_byte_size);
5121 BYTE_SIZE_ERROR_CHECK(
"ts_emissivity_",
sizeof(*transfer_struct_c.ts_emissivity_),transfer_struct_c.ts_emissivity__f_byte_size);
5122 BYTE_SIZE_ERROR_CHECK(
"ts_user_emissivity_",
sizeof(*transfer_struct_c.ts_user_emissivity_),transfer_struct_c.ts_user_emissivity__f_byte_size);
5136 void link_blitz_arrays() {
5137 ts_exactdb_brdfunc_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_exactdb_brdfunc_,
5138 blitz::shape(transfer_struct_c.ts_exactdb_brdfunc__f_shapes[0],
5139 transfer_struct_c.ts_exactdb_brdfunc__f_shapes[1],
5140 transfer_struct_c.ts_exactdb_brdfunc__f_shapes[2]),
5141 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5142 ts_brdf_f_0_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_brdf_f_0_,
5143 blitz::shape(transfer_struct_c.ts_brdf_f_0__f_shapes[0],
5144 transfer_struct_c.ts_brdf_f_0__f_shapes[1],
5145 transfer_struct_c.ts_brdf_f_0__f_shapes[2]),
5146 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5147 ts_brdf_f_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_brdf_f_,
5148 blitz::shape(transfer_struct_c.ts_brdf_f__f_shapes[0],
5149 transfer_struct_c.ts_brdf_f__f_shapes[1],
5150 transfer_struct_c.ts_brdf_f__f_shapes[2]),
5151 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5152 ts_user_brdf_f_0_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_user_brdf_f_0_,
5153 blitz::shape(transfer_struct_c.ts_user_brdf_f_0__f_shapes[0],
5154 transfer_struct_c.ts_user_brdf_f_0__f_shapes[1],
5155 transfer_struct_c.ts_user_brdf_f_0__f_shapes[2]),
5156 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5157 ts_user_brdf_f_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_user_brdf_f_,
5158 blitz::shape(transfer_struct_c.ts_user_brdf_f__f_shapes[0],
5159 transfer_struct_c.ts_user_brdf_f__f_shapes[1],
5160 transfer_struct_c.ts_user_brdf_f__f_shapes[2]),
5161 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5162 ts_emissivity_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_emissivity_,
5163 blitz::shape(transfer_struct_c.ts_emissivity__f_shapes[0]),
5164 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
5165 ts_user_emissivity_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_user_emissivity_,
5166 blitz::shape(transfer_struct_c.ts_user_emissivity__f_shapes[0]),
5167 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
5171 void link_nested_types() {
5177 blitz::Array<double, 3> ts_exactdb_brdfunc_;
5178 blitz::Array<double, 3> ts_brdf_f_0_;
5179 blitz::Array<double, 3> ts_brdf_f_;
5180 blitz::Array<double, 3> ts_user_brdf_f_0_;
5181 blitz::Array<double, 3> ts_user_brdf_f_;
5182 blitz::Array<double, 1> ts_emissivity_;
5183 blitz::Array<double, 1> ts_user_emissivity_;
5198 int ts_slterm_isotropic__f_shapes[1];
5202 int ts_slterm_userangles__f_shapes[3];
5206 int ts_slterm_f_0__f_shapes[3];
5210 int ts_user_slterm_f_0__f_shapes[3];
5222 link_blitz_arrays();
5223 link_nested_types();
5229 link_blitz_arrays();
5230 link_nested_types();
5240 return ts_slterm_isotropic_;
5244 ts_slterm_isotropic_ = ts_slterm_isotropic_in;
5249 return ts_slterm_userangles_;
5253 ts_slterm_userangles_ = ts_slterm_userangles_in;
5258 return ts_slterm_f_0_;
5262 ts_slterm_f_0_ = ts_slterm_f_0_in;
5267 return ts_user_slterm_f_0_;
5271 ts_user_slterm_f_0_ = ts_user_slterm_f_0_in;
5278 virtual void print(std::ostream &output_stream)
const {
5279 output_stream <<
"Lidort_Sup_Sleave:" << std::endl
5280 <<
" ts_slterm_isotropic: " << std::endl << ts_slterm_isotropic() << std::endl
5281 <<
"ts_slterm_userangles: " << std::endl << ts_slterm_userangles() << std::endl
5282 <<
" ts_slterm_f_0: " << std::endl << ts_slterm_f_0() << std::endl
5283 <<
" ts_user_slterm_f_0: " << std::endl << ts_user_slterm_f_0() << std::endl;
5288 BYTE_SIZE_ERROR_CHECK(
"ts_slterm_isotropic_",
sizeof(*transfer_struct_c.ts_slterm_isotropic_),transfer_struct_c.ts_slterm_isotropic__f_byte_size);
5289 BYTE_SIZE_ERROR_CHECK(
"ts_slterm_userangles_",
sizeof(*transfer_struct_c.ts_slterm_userangles_),transfer_struct_c.ts_slterm_userangles__f_byte_size);
5290 BYTE_SIZE_ERROR_CHECK(
"ts_slterm_f_0_",
sizeof(*transfer_struct_c.ts_slterm_f_0_),transfer_struct_c.ts_slterm_f_0__f_byte_size);
5291 BYTE_SIZE_ERROR_CHECK(
"ts_user_slterm_f_0_",
sizeof(*transfer_struct_c.ts_user_slterm_f_0_),transfer_struct_c.ts_user_slterm_f_0__f_byte_size);
5296 void link_blitz_arrays() {
5297 ts_slterm_isotropic_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_slterm_isotropic_,
5298 blitz::shape(transfer_struct_c.ts_slterm_isotropic__f_shapes[0]),
5299 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
5300 ts_slterm_userangles_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_slterm_userangles_,
5301 blitz::shape(transfer_struct_c.ts_slterm_userangles__f_shapes[0],
5302 transfer_struct_c.ts_slterm_userangles__f_shapes[1],
5303 transfer_struct_c.ts_slterm_userangles__f_shapes[2]),
5304 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5305 ts_slterm_f_0_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_slterm_f_0_,
5306 blitz::shape(transfer_struct_c.ts_slterm_f_0__f_shapes[0],
5307 transfer_struct_c.ts_slterm_f_0__f_shapes[1],
5308 transfer_struct_c.ts_slterm_f_0__f_shapes[2]),
5309 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5310 ts_user_slterm_f_0_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_user_slterm_f_0_,
5311 blitz::shape(transfer_struct_c.ts_user_slterm_f_0__f_shapes[0],
5312 transfer_struct_c.ts_user_slterm_f_0__f_shapes[1],
5313 transfer_struct_c.ts_user_slterm_f_0__f_shapes[2]),
5314 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5318 void link_nested_types() {
5324 blitz::Array<double, 1> ts_slterm_isotropic_;
5325 blitz::Array<double, 3> ts_slterm_userangles_;
5326 blitz::Array<double, 3> ts_slterm_f_0_;
5327 blitz::Array<double, 3> ts_user_slterm_f_0_;
5342 int ts_intensity_ss__f_shapes[3];
5346 int ts_intensity_db__f_shapes[2];
5358 link_blitz_arrays();
5359 link_nested_types();
5365 link_blitz_arrays();
5366 link_nested_types();
5376 return ts_intensity_ss_;
5380 ts_intensity_ss_ = ts_intensity_ss_in;
5385 return ts_intensity_db_;
5389 ts_intensity_db_ = ts_intensity_db_in;
5396 virtual void print(std::ostream &output_stream)
const {
5397 output_stream <<
"Lidort_Sup_Ss:" << std::endl
5398 <<
"ts_intensity_ss: " << std::endl << ts_intensity_ss() << std::endl
5399 <<
"ts_intensity_db: " << std::endl << ts_intensity_db() << std::endl;
5404 BYTE_SIZE_ERROR_CHECK(
"ts_intensity_ss_",
sizeof(*transfer_struct_c.ts_intensity_ss_),transfer_struct_c.ts_intensity_ss__f_byte_size);
5405 BYTE_SIZE_ERROR_CHECK(
"ts_intensity_db_",
sizeof(*transfer_struct_c.ts_intensity_db_),transfer_struct_c.ts_intensity_db__f_byte_size);
5410 void link_blitz_arrays() {
5411 ts_intensity_ss_.reference(blitz::Array<double, 3>(transfer_struct_c.ts_intensity_ss_,
5412 blitz::shape(transfer_struct_c.ts_intensity_ss__f_shapes[0],
5413 transfer_struct_c.ts_intensity_ss__f_shapes[1],
5414 transfer_struct_c.ts_intensity_ss__f_shapes[2]),
5415 blitz::neverDeleteData, blitz::ColumnMajorArray<3>()));
5416 ts_intensity_db_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_intensity_db_,
5417 blitz::shape(transfer_struct_c.ts_intensity_db__f_shapes[0],
5418 transfer_struct_c.ts_intensity_db__f_shapes[1]),
5419 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
5423 void link_nested_types() {
5429 blitz::Array<double, 3> ts_intensity_ss_;
5430 blitz::Array<double, 2> ts_intensity_db_;
5462 link_blitz_arrays();
5463 link_nested_types();
5469 link_blitz_arrays();
5470 link_nested_types();
5489 void* dst_ptr = brdf_->fortran_type_ptr();
5504 void* dst_ptr = ss_->fortran_type_ptr();
5519 void* dst_ptr = sleave_->fortran_type_ptr();
5527 virtual void print(std::ostream &output_stream)
const {
5528 output_stream <<
"Lidort_Sup_Inout:" << std::endl
5529 <<
" brdf: " << brdf() << std::endl
5530 <<
" ss: " << ss() << std::endl
5531 <<
"sleave: " << sleave() << std::endl;
5540 void link_blitz_arrays() {
5544 void link_nested_types() {
5614 link_blitz_arrays();
5615 link_nested_types();
5621 link_blitz_arrays();
5622 link_nested_types();
5632 return *transfer_struct_c.ts_do_fullrad_mode_ != 0;
5636 *transfer_struct_c.ts_do_fullrad_mode_ = ts_do_fullrad_mode_in ?
FORTRAN_TRUE_INT : 0;
5641 return *transfer_struct_c.ts_do_sscorr_truncation_ != 0;
5645 *transfer_struct_c.ts_do_sscorr_truncation_ = ts_do_sscorr_truncation_in ?
FORTRAN_TRUE_INT : 0;
5650 return *transfer_struct_c.ts_do_ss_external_ != 0;
5654 *transfer_struct_c.ts_do_ss_external_ = ts_do_ss_external_in ?
FORTRAN_TRUE_INT : 0;
5659 return *transfer_struct_c.ts_do_ssfull_ != 0;
5668 return *transfer_struct_c.ts_do_thermal_emission_ != 0;
5672 *transfer_struct_c.ts_do_thermal_emission_ = ts_do_thermal_emission_in ?
FORTRAN_TRUE_INT : 0;
5677 return *transfer_struct_c.ts_do_surface_emission_ != 0;
5681 *transfer_struct_c.ts_do_surface_emission_ = ts_do_surface_emission_in ?
FORTRAN_TRUE_INT : 0;
5686 return *transfer_struct_c.ts_do_plane_parallel_ != 0;
5690 *transfer_struct_c.ts_do_plane_parallel_ = ts_do_plane_parallel_in ?
FORTRAN_TRUE_INT : 0;
5695 return *transfer_struct_c.ts_do_brdf_surface_ != 0;
5699 *transfer_struct_c.ts_do_brdf_surface_ = ts_do_brdf_surface_in ?
FORTRAN_TRUE_INT : 0;
5704 return *transfer_struct_c.ts_do_upwelling_ != 0;
5708 *transfer_struct_c.ts_do_upwelling_ = ts_do_upwelling_in ?
FORTRAN_TRUE_INT : 0;
5713 return *transfer_struct_c.ts_do_dnwelling_ != 0;
5717 *transfer_struct_c.ts_do_dnwelling_ = ts_do_dnwelling_in ?
FORTRAN_TRUE_INT : 0;
5722 return *transfer_struct_c.ts_do_surface_leaving_ != 0;
5726 *transfer_struct_c.ts_do_surface_leaving_ = ts_do_surface_leaving_in ?
FORTRAN_TRUE_INT : 0;
5731 return *transfer_struct_c.ts_do_sl_isotropic_ != 0;
5735 *transfer_struct_c.ts_do_sl_isotropic_ = ts_do_sl_isotropic_in ?
FORTRAN_TRUE_INT : 0;
5742 virtual void print(std::ostream &output_stream)
const {
5743 output_stream <<
"Lidort_Fixed_Boolean:" << std::endl
5744 <<
" ts_do_fullrad_mode: " << ts_do_fullrad_mode() << std::endl
5745 <<
"ts_do_sscorr_truncation: " << ts_do_sscorr_truncation() << std::endl
5746 <<
" ts_do_ss_external: " << ts_do_ss_external() << std::endl
5747 <<
" ts_do_ssfull: " << ts_do_ssfull() << std::endl
5748 <<
" ts_do_thermal_emission: " << ts_do_thermal_emission() << std::endl
5749 <<
" ts_do_surface_emission: " << ts_do_surface_emission() << std::endl
5750 <<
" ts_do_plane_parallel: " << ts_do_plane_parallel() << std::endl
5751 <<
" ts_do_brdf_surface: " << ts_do_brdf_surface() << std::endl
5752 <<
" ts_do_upwelling: " << ts_do_upwelling() << std::endl
5753 <<
" ts_do_dnwelling: " << ts_do_dnwelling() << std::endl
5754 <<
" ts_do_surface_leaving: " << ts_do_surface_leaving() << std::endl
5755 <<
" ts_do_sl_isotropic: " << ts_do_sl_isotropic() << std::endl;
5760 BYTE_SIZE_ERROR_CHECK(
"ts_do_fullrad_mode_",
sizeof(*transfer_struct_c.ts_do_fullrad_mode_),transfer_struct_c.ts_do_fullrad_mode__f_byte_size);
5761 BYTE_SIZE_ERROR_CHECK(
"ts_do_sscorr_truncation_",
sizeof(*transfer_struct_c.ts_do_sscorr_truncation_),transfer_struct_c.ts_do_sscorr_truncation__f_byte_size);
5762 BYTE_SIZE_ERROR_CHECK(
"ts_do_ss_external_",
sizeof(*transfer_struct_c.ts_do_ss_external_),transfer_struct_c.ts_do_ss_external__f_byte_size);
5763 BYTE_SIZE_ERROR_CHECK(
"ts_do_ssfull_",
sizeof(*transfer_struct_c.ts_do_ssfull_),transfer_struct_c.ts_do_ssfull__f_byte_size);
5764 BYTE_SIZE_ERROR_CHECK(
"ts_do_thermal_emission_",
sizeof(*transfer_struct_c.ts_do_thermal_emission_),transfer_struct_c.ts_do_thermal_emission__f_byte_size);
5765 BYTE_SIZE_ERROR_CHECK(
"ts_do_surface_emission_",
sizeof(*transfer_struct_c.ts_do_surface_emission_),transfer_struct_c.ts_do_surface_emission__f_byte_size);
5766 BYTE_SIZE_ERROR_CHECK(
"ts_do_plane_parallel_",
sizeof(*transfer_struct_c.ts_do_plane_parallel_),transfer_struct_c.ts_do_plane_parallel__f_byte_size);
5767 BYTE_SIZE_ERROR_CHECK(
"ts_do_brdf_surface_",
sizeof(*transfer_struct_c.ts_do_brdf_surface_),transfer_struct_c.ts_do_brdf_surface__f_byte_size);
5768 BYTE_SIZE_ERROR_CHECK(
"ts_do_upwelling_",
sizeof(*transfer_struct_c.ts_do_upwelling_),transfer_struct_c.ts_do_upwelling__f_byte_size);
5769 BYTE_SIZE_ERROR_CHECK(
"ts_do_dnwelling_",
sizeof(*transfer_struct_c.ts_do_dnwelling_),transfer_struct_c.ts_do_dnwelling__f_byte_size);
5770 BYTE_SIZE_ERROR_CHECK(
"ts_do_surface_leaving_",
sizeof(*transfer_struct_c.ts_do_surface_leaving_),transfer_struct_c.ts_do_surface_leaving__f_byte_size);
5771 BYTE_SIZE_ERROR_CHECK(
"ts_do_sl_isotropic_",
sizeof(*transfer_struct_c.ts_do_sl_isotropic_),transfer_struct_c.ts_do_sl_isotropic__f_byte_size);
5776 void link_blitz_arrays() {
5780 void link_nested_types() {
5829 link_blitz_arrays();
5830 link_nested_types();
5836 link_blitz_arrays();
5837 link_nested_types();
5847 return *transfer_struct_c.ts_thermal_cutoff_;
5851 *transfer_struct_c.ts_thermal_cutoff_ = ts_thermal_cutoff_in;
5856 return *transfer_struct_c.ts_taylor_order_;
5860 *transfer_struct_c.ts_taylor_order_ = ts_taylor_order_in;
5865 return *transfer_struct_c.ts_nstreams_;
5869 *transfer_struct_c.ts_nstreams_ = ts_nstreams_in;
5874 return *transfer_struct_c.ts_nlayers_;
5878 *transfer_struct_c.ts_nlayers_ = ts_nlayers_in;
5883 return *transfer_struct_c.ts_nfinelayers_;
5887 *transfer_struct_c.ts_nfinelayers_ = ts_nfinelayers_in;
5892 return *transfer_struct_c.ts_n_thermal_coeffs_;
5896 *transfer_struct_c.ts_n_thermal_coeffs_ = ts_n_thermal_coeffs_in;
5901 return *transfer_struct_c.ts_lidort_accuracy_;
5905 *transfer_struct_c.ts_lidort_accuracy_ = ts_lidort_accuracy_in;
5912 virtual void print(std::ostream &output_stream)
const {
5913 output_stream <<
"Lidort_Fixed_Control:" << std::endl
5914 <<
" ts_thermal_cutoff: " << ts_thermal_cutoff() << std::endl
5915 <<
" ts_taylor_order: " << ts_taylor_order() << std::endl
5916 <<
" ts_nstreams: " << ts_nstreams() << std::endl
5917 <<
" ts_nlayers: " << ts_nlayers() << std::endl
5918 <<
" ts_nfinelayers: " << ts_nfinelayers() << std::endl
5919 <<
"ts_n_thermal_coeffs: " << ts_n_thermal_coeffs() << std::endl
5920 <<
" ts_lidort_accuracy: " << ts_lidort_accuracy() << std::endl;
5925 BYTE_SIZE_ERROR_CHECK(
"ts_thermal_cutoff_",
sizeof(*transfer_struct_c.ts_thermal_cutoff_),transfer_struct_c.ts_thermal_cutoff__f_byte_size);
5926 BYTE_SIZE_ERROR_CHECK(
"ts_taylor_order_",
sizeof(*transfer_struct_c.ts_taylor_order_),transfer_struct_c.ts_taylor_order__f_byte_size);
5927 BYTE_SIZE_ERROR_CHECK(
"ts_nstreams_",
sizeof(*transfer_struct_c.ts_nstreams_),transfer_struct_c.ts_nstreams__f_byte_size);
5928 BYTE_SIZE_ERROR_CHECK(
"ts_nlayers_",
sizeof(*transfer_struct_c.ts_nlayers_),transfer_struct_c.ts_nlayers__f_byte_size);
5929 BYTE_SIZE_ERROR_CHECK(
"ts_nfinelayers_",
sizeof(*transfer_struct_c.ts_nfinelayers_),transfer_struct_c.ts_nfinelayers__f_byte_size);
5930 BYTE_SIZE_ERROR_CHECK(
"ts_n_thermal_coeffs_",
sizeof(*transfer_struct_c.ts_n_thermal_coeffs_),transfer_struct_c.ts_n_thermal_coeffs__f_byte_size);
5931 BYTE_SIZE_ERROR_CHECK(
"ts_lidort_accuracy_",
sizeof(*transfer_struct_c.ts_lidort_accuracy_),transfer_struct_c.ts_lidort_accuracy__f_byte_size);
5936 void link_blitz_arrays() {
5940 void link_nested_types() {
5971 link_blitz_arrays();
5972 link_nested_types();
5978 link_blitz_arrays();
5979 link_nested_types();
5989 return *transfer_struct_c.ts_flux_factor_;
5993 *transfer_struct_c.ts_flux_factor_ = ts_flux_factor_in;
6000 virtual void print(std::ostream &output_stream)
const {
6001 output_stream <<
"Lidort_Fixed_Sunrays:" << std::endl
6002 <<
"ts_flux_factor: " << ts_flux_factor() << std::endl;
6007 BYTE_SIZE_ERROR_CHECK(
"ts_flux_factor_",
sizeof(*transfer_struct_c.ts_flux_factor_),transfer_struct_c.ts_flux_factor__f_byte_size);
6012 void link_blitz_arrays() {
6016 void link_nested_types() {
6047 link_blitz_arrays();
6048 link_nested_types();
6054 link_blitz_arrays();
6055 link_nested_types();
6065 return *transfer_struct_c.ts_n_user_levels_;
6069 *transfer_struct_c.ts_n_user_levels_ = ts_n_user_levels_in;
6076 virtual void print(std::ostream &output_stream)
const {
6077 output_stream <<
"Lidort_Fixed_Uservalues:" << std::endl
6078 <<
"ts_n_user_levels: " << ts_n_user_levels() << std::endl;
6083 BYTE_SIZE_ERROR_CHECK(
"ts_n_user_levels_",
sizeof(*transfer_struct_c.ts_n_user_levels_),transfer_struct_c.ts_n_user_levels__f_byte_size);
6088 void link_blitz_arrays() {
6092 void link_nested_types() {
6112 int ts_height_grid__f_shapes[1];
6116 int ts_pressure_grid__f_shapes[1];
6120 int ts_temperature_grid__f_shapes[1];
6124 int ts_finegrid__f_shapes[1];
6139 link_blitz_arrays();
6140 link_nested_types();
6146 link_blitz_arrays();
6147 link_nested_types();
6157 return ts_height_grid_;
6161 ts_height_grid_ = ts_height_grid_in;
6166 return ts_pressure_grid_;
6170 ts_pressure_grid_ = ts_pressure_grid_in;
6175 return ts_temperature_grid_;
6179 ts_temperature_grid_ = ts_temperature_grid_in;
6184 return ts_finegrid_;
6188 ts_finegrid_ = ts_finegrid_in;
6193 return *transfer_struct_c.ts_rfindex_parameter_;
6197 *transfer_struct_c.ts_rfindex_parameter_ = ts_rfindex_parameter_in;
6204 virtual void print(std::ostream &output_stream)
const {
6205 output_stream <<
"Lidort_Fixed_Chapman:" << std::endl
6206 <<
" ts_height_grid: " << std::endl << ts_height_grid() << std::endl
6207 <<
" ts_pressure_grid: " << std::endl << ts_pressure_grid() << std::endl
6208 <<
" ts_temperature_grid: " << std::endl << ts_temperature_grid() << std::endl
6209 <<
" ts_finegrid: " << std::endl << ts_finegrid() << std::endl
6210 <<
"ts_rfindex_parameter: " << ts_rfindex_parameter() << std::endl;
6215 BYTE_SIZE_ERROR_CHECK(
"ts_height_grid_",
sizeof(*transfer_struct_c.ts_height_grid_),transfer_struct_c.ts_height_grid__f_byte_size);
6216 BYTE_SIZE_ERROR_CHECK(
"ts_pressure_grid_",
sizeof(*transfer_struct_c.ts_pressure_grid_),transfer_struct_c.ts_pressure_grid__f_byte_size);
6217 BYTE_SIZE_ERROR_CHECK(
"ts_temperature_grid_",
sizeof(*transfer_struct_c.ts_temperature_grid_),transfer_struct_c.ts_temperature_grid__f_byte_size);
6218 BYTE_SIZE_ERROR_CHECK(
"ts_finegrid_",
sizeof(*transfer_struct_c.ts_finegrid_),transfer_struct_c.ts_finegrid__f_byte_size);
6219 BYTE_SIZE_ERROR_CHECK(
"ts_rfindex_parameter_",
sizeof(*transfer_struct_c.ts_rfindex_parameter_),transfer_struct_c.ts_rfindex_parameter__f_byte_size);
6224 void link_blitz_arrays() {
6225 ts_height_grid_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_height_grid_,
6226 blitz::shape(transfer_struct_c.ts_height_grid__f_shapes[0]),
6227 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
6228 ts_pressure_grid_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_pressure_grid_,
6229 blitz::shape(transfer_struct_c.ts_pressure_grid__f_shapes[0]),
6230 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
6231 ts_temperature_grid_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_temperature_grid_,
6232 blitz::shape(transfer_struct_c.ts_temperature_grid__f_shapes[0]),
6233 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
6234 ts_finegrid_.reference(blitz::Array<int, 1>(transfer_struct_c.ts_finegrid_,
6235 blitz::shape(transfer_struct_c.ts_finegrid__f_shapes[0]),
6236 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
6240 void link_nested_types() {
6246 blitz::Array<double, 1> ts_height_grid_;
6247 blitz::Array<double, 1> ts_pressure_grid_;
6248 blitz::Array<double, 1> ts_temperature_grid_;
6249 blitz::Array<int, 1> ts_finegrid_;
6264 int ts_deltau_vert_input__f_shapes[1];
6268 int ts_phasmoms_total_input__f_shapes[2];
6272 int ts_thermal_bb_input__f_shapes[1];
6290 link_blitz_arrays();
6291 link_nested_types();
6297 link_blitz_arrays();
6298 link_nested_types();
6308 return ts_deltau_vert_input_;
6312 ts_deltau_vert_input_ = ts_deltau_vert_input_in;
6317 return ts_phasmoms_total_input_;
6321 ts_phasmoms_total_input_ = ts_phasmoms_total_input_in;
6326 return ts_thermal_bb_input_;
6330 ts_thermal_bb_input_ = ts_thermal_bb_input_in;
6335 return *transfer_struct_c.ts_lambertian_albedo_;
6339 *transfer_struct_c.ts_lambertian_albedo_ = ts_lambertian_albedo_in;
6344 return *transfer_struct_c.ts_surface_bb_input_;
6348 *transfer_struct_c.ts_surface_bb_input_ = ts_surface_bb_input_in;
6355 virtual void print(std::ostream &output_stream)
const {
6356 output_stream <<
"Lidort_Fixed_Optical:" << std::endl
6357 <<
" ts_deltau_vert_input: " << std::endl << ts_deltau_vert_input() << std::endl
6358 <<
"ts_phasmoms_total_input: " << std::endl << ts_phasmoms_total_input() << std::endl
6359 <<
" ts_thermal_bb_input: " << std::endl << ts_thermal_bb_input() << std::endl
6360 <<
" ts_lambertian_albedo: " << ts_lambertian_albedo() << std::endl
6361 <<
" ts_surface_bb_input: " << ts_surface_bb_input() << std::endl;
6366 BYTE_SIZE_ERROR_CHECK(
"ts_deltau_vert_input_",
sizeof(*transfer_struct_c.ts_deltau_vert_input_),transfer_struct_c.ts_deltau_vert_input__f_byte_size);
6367 BYTE_SIZE_ERROR_CHECK(
"ts_phasmoms_total_input_",
sizeof(*transfer_struct_c.ts_phasmoms_total_input_),transfer_struct_c.ts_phasmoms_total_input__f_byte_size);
6368 BYTE_SIZE_ERROR_CHECK(
"ts_thermal_bb_input_",
sizeof(*transfer_struct_c.ts_thermal_bb_input_),transfer_struct_c.ts_thermal_bb_input__f_byte_size);
6369 BYTE_SIZE_ERROR_CHECK(
"ts_lambertian_albedo_",
sizeof(*transfer_struct_c.ts_lambertian_albedo_),transfer_struct_c.ts_lambertian_albedo__f_byte_size);
6370 BYTE_SIZE_ERROR_CHECK(
"ts_surface_bb_input_",
sizeof(*transfer_struct_c.ts_surface_bb_input_),transfer_struct_c.ts_surface_bb_input__f_byte_size);
6375 void link_blitz_arrays() {
6376 ts_deltau_vert_input_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_deltau_vert_input_,
6377 blitz::shape(transfer_struct_c.ts_deltau_vert_input__f_shapes[0]),
6378 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
6379 ts_phasmoms_total_input_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_phasmoms_total_input_,
6380 blitz::shape(transfer_struct_c.ts_phasmoms_total_input__f_shapes[0],
6381 transfer_struct_c.ts_phasmoms_total_input__f_shapes[1]),
6382 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
6383 ts_thermal_bb_input_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_thermal_bb_input_,
6384 blitz::shape(transfer_struct_c.ts_thermal_bb_input__f_shapes[0]),
6385 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
6389 void link_nested_types() {
6395 blitz::Array<double, 1> ts_deltau_vert_input_;
6396 blitz::Array<double, 2> ts_phasmoms_total_input_;
6397 blitz::Array<double, 1> ts_thermal_bb_input_;
6438 link_blitz_arrays();
6439 link_nested_types();
6445 link_blitz_arrays();
6446 link_nested_types();
6465 void* dst_ptr = bool_->fortran_type_ptr();
6480 void* dst_ptr = cont_->fortran_type_ptr();
6495 void* dst_ptr = sunrays_->fortran_type_ptr();
6510 void* dst_ptr = userval_->fortran_type_ptr();
6525 void* dst_ptr = chapman_->fortran_type_ptr();
6540 void* dst_ptr = optical_->fortran_type_ptr();
6548 virtual void print(std::ostream &output_stream)
const {
6549 output_stream <<
"Lidort_Fixed_Inputs:" << std::endl
6550 <<
" bool: " << f_bool() << std::endl
6551 <<
" cont: " << cont() << std::endl
6552 <<
"sunrays: " << sunrays() << std::endl
6553 <<
"userval: " << userval() << std::endl
6554 <<
"chapman: " << chapman() << std::endl
6555 <<
"optical: " << optical() << std::endl;
6564 void link_blitz_arrays() {
6568 void link_nested_types() {
6662 link_blitz_arrays();
6663 link_nested_types();
6669 link_blitz_arrays();
6670 link_nested_types();
6680 return *transfer_struct_c.ts_do_sscorr_nadir_ != 0;
6684 *transfer_struct_c.ts_do_sscorr_nadir_ = ts_do_sscorr_nadir_in ?
FORTRAN_TRUE_INT : 0;
6689 return *transfer_struct_c.ts_do_sscorr_outgoing_ != 0;
6693 *transfer_struct_c.ts_do_sscorr_outgoing_ = ts_do_sscorr_outgoing_in ?
FORTRAN_TRUE_INT : 0;
6698 return *transfer_struct_c.ts_do_double_convtest_ != 0;
6702 *transfer_struct_c.ts_do_double_convtest_ = ts_do_double_convtest_in ?
FORTRAN_TRUE_INT : 0;
6707 return *transfer_struct_c.ts_do_solar_sources_ != 0;
6711 *transfer_struct_c.ts_do_solar_sources_ = ts_do_solar_sources_in ?
FORTRAN_TRUE_INT : 0;
6716 return *transfer_struct_c.ts_do_refractive_geometry_ != 0;
6720 *transfer_struct_c.ts_do_refractive_geometry_ = ts_do_refractive_geometry_in ?
FORTRAN_TRUE_INT : 0;
6725 return *transfer_struct_c.ts_do_chapman_function_ != 0;
6729 *transfer_struct_c.ts_do_chapman_function_ = ts_do_chapman_function_in ?
FORTRAN_TRUE_INT : 0;
6734 return *transfer_struct_c.ts_do_rayleigh_only_ != 0;
6738 *transfer_struct_c.ts_do_rayleigh_only_ = ts_do_rayleigh_only_in ?
FORTRAN_TRUE_INT : 0;
6743 return *transfer_struct_c.ts_do_isotropic_only_ != 0;
6747 *transfer_struct_c.ts_do_isotropic_only_ = ts_do_isotropic_only_in ?
FORTRAN_TRUE_INT : 0;
6752 return *transfer_struct_c.ts_do_no_azimuth_ != 0;
6756 *transfer_struct_c.ts_do_no_azimuth_ = ts_do_no_azimuth_in ?
FORTRAN_TRUE_INT : 0;
6761 return *transfer_struct_c.ts_do_all_fourier_ != 0;
6765 *transfer_struct_c.ts_do_all_fourier_ = ts_do_all_fourier_in ?
FORTRAN_TRUE_INT : 0;
6770 return *transfer_struct_c.ts_do_deltam_scaling_ != 0;
6774 *transfer_struct_c.ts_do_deltam_scaling_ = ts_do_deltam_scaling_in ?
FORTRAN_TRUE_INT : 0;
6779 return *transfer_struct_c.ts_do_solution_saving_ != 0;
6783 *transfer_struct_c.ts_do_solution_saving_ = ts_do_solution_saving_in ?
FORTRAN_TRUE_INT : 0;
6788 return *transfer_struct_c.ts_do_bvp_telescoping_ != 0;
6792 *transfer_struct_c.ts_do_bvp_telescoping_ = ts_do_bvp_telescoping_in ?
FORTRAN_TRUE_INT : 0;
6797 return *transfer_struct_c.ts_do_user_streams_ != 0;
6801 *transfer_struct_c.ts_do_user_streams_ = ts_do_user_streams_in ?
FORTRAN_TRUE_INT : 0;
6806 return *transfer_struct_c.ts_do_additional_mvout_ != 0;
6810 *transfer_struct_c.ts_do_additional_mvout_ = ts_do_additional_mvout_in ?
FORTRAN_TRUE_INT : 0;
6815 return *transfer_struct_c.ts_do_mvout_only_ != 0;
6819 *transfer_struct_c.ts_do_mvout_only_ = ts_do_mvout_only_in ?
FORTRAN_TRUE_INT : 0;
6824 return *transfer_struct_c.ts_do_thermal_transonly_ != 0;
6828 *transfer_struct_c.ts_do_thermal_transonly_ = ts_do_thermal_transonly_in ?
FORTRAN_TRUE_INT : 0;
6833 return *transfer_struct_c.ts_do_observation_geometry_ != 0;
6837 *transfer_struct_c.ts_do_observation_geometry_ = ts_do_observation_geometry_in ?
FORTRAN_TRUE_INT : 0;
6844 virtual void print(std::ostream &output_stream)
const {
6845 output_stream <<
"Lidort_Modified_Boolean:" << std::endl
6846 <<
" ts_do_sscorr_nadir: " << ts_do_sscorr_nadir() << std::endl
6847 <<
" ts_do_sscorr_outgoing: " << ts_do_sscorr_outgoing() << std::endl
6848 <<
" ts_do_double_convtest: " << ts_do_double_convtest() << std::endl
6849 <<
" ts_do_solar_sources: " << ts_do_solar_sources() << std::endl
6850 <<
" ts_do_refractive_geometry: " << ts_do_refractive_geometry() << std::endl
6851 <<
" ts_do_chapman_function: " << ts_do_chapman_function() << std::endl
6852 <<
" ts_do_rayleigh_only: " << ts_do_rayleigh_only() << std::endl
6853 <<
" ts_do_isotropic_only: " << ts_do_isotropic_only() << std::endl
6854 <<
" ts_do_no_azimuth: " << ts_do_no_azimuth() << std::endl
6855 <<
" ts_do_all_fourier: " << ts_do_all_fourier() << std::endl
6856 <<
" ts_do_deltam_scaling: " << ts_do_deltam_scaling() << std::endl
6857 <<
" ts_do_solution_saving: " << ts_do_solution_saving() << std::endl
6858 <<
" ts_do_bvp_telescoping: " << ts_do_bvp_telescoping() << std::endl
6859 <<
" ts_do_user_streams: " << ts_do_user_streams() << std::endl
6860 <<
" ts_do_additional_mvout: " << ts_do_additional_mvout() << std::endl
6861 <<
" ts_do_mvout_only: " << ts_do_mvout_only() << std::endl
6862 <<
" ts_do_thermal_transonly: " << ts_do_thermal_transonly() << std::endl
6863 <<
"ts_do_observation_geometry: " << ts_do_observation_geometry() << std::endl;
6868 BYTE_SIZE_ERROR_CHECK(
"ts_do_sscorr_nadir_",
sizeof(*transfer_struct_c.ts_do_sscorr_nadir_),transfer_struct_c.ts_do_sscorr_nadir__f_byte_size);
6869 BYTE_SIZE_ERROR_CHECK(
"ts_do_sscorr_outgoing_",
sizeof(*transfer_struct_c.ts_do_sscorr_outgoing_),transfer_struct_c.ts_do_sscorr_outgoing__f_byte_size);
6870 BYTE_SIZE_ERROR_CHECK(
"ts_do_double_convtest_",
sizeof(*transfer_struct_c.ts_do_double_convtest_),transfer_struct_c.ts_do_double_convtest__f_byte_size);
6871 BYTE_SIZE_ERROR_CHECK(
"ts_do_solar_sources_",
sizeof(*transfer_struct_c.ts_do_solar_sources_),transfer_struct_c.ts_do_solar_sources__f_byte_size);
6872 BYTE_SIZE_ERROR_CHECK(
"ts_do_refractive_geometry_",
sizeof(*transfer_struct_c.ts_do_refractive_geometry_),transfer_struct_c.ts_do_refractive_geometry__f_byte_size);
6873 BYTE_SIZE_ERROR_CHECK(
"ts_do_chapman_function_",
sizeof(*transfer_struct_c.ts_do_chapman_function_),transfer_struct_c.ts_do_chapman_function__f_byte_size);
6874 BYTE_SIZE_ERROR_CHECK(
"ts_do_rayleigh_only_",
sizeof(*transfer_struct_c.ts_do_rayleigh_only_),transfer_struct_c.ts_do_rayleigh_only__f_byte_size);
6875 BYTE_SIZE_ERROR_CHECK(
"ts_do_isotropic_only_",
sizeof(*transfer_struct_c.ts_do_isotropic_only_),transfer_struct_c.ts_do_isotropic_only__f_byte_size);
6876 BYTE_SIZE_ERROR_CHECK(
"ts_do_no_azimuth_",
sizeof(*transfer_struct_c.ts_do_no_azimuth_),transfer_struct_c.ts_do_no_azimuth__f_byte_size);
6877 BYTE_SIZE_ERROR_CHECK(
"ts_do_all_fourier_",
sizeof(*transfer_struct_c.ts_do_all_fourier_),transfer_struct_c.ts_do_all_fourier__f_byte_size);
6878 BYTE_SIZE_ERROR_CHECK(
"ts_do_deltam_scaling_",
sizeof(*transfer_struct_c.ts_do_deltam_scaling_),transfer_struct_c.ts_do_deltam_scaling__f_byte_size);
6879 BYTE_SIZE_ERROR_CHECK(
"ts_do_solution_saving_",
sizeof(*transfer_struct_c.ts_do_solution_saving_),transfer_struct_c.ts_do_solution_saving__f_byte_size);
6880 BYTE_SIZE_ERROR_CHECK(
"ts_do_bvp_telescoping_",
sizeof(*transfer_struct_c.ts_do_bvp_telescoping_),transfer_struct_c.ts_do_bvp_telescoping__f_byte_size);
6881 BYTE_SIZE_ERROR_CHECK(
"ts_do_user_streams_",
sizeof(*transfer_struct_c.ts_do_user_streams_),transfer_struct_c.ts_do_user_streams__f_byte_size);
6882 BYTE_SIZE_ERROR_CHECK(
"ts_do_additional_mvout_",
sizeof(*transfer_struct_c.ts_do_additional_mvout_),transfer_struct_c.ts_do_additional_mvout__f_byte_size);
6883 BYTE_SIZE_ERROR_CHECK(
"ts_do_mvout_only_",
sizeof(*transfer_struct_c.ts_do_mvout_only_),transfer_struct_c.ts_do_mvout_only__f_byte_size);
6884 BYTE_SIZE_ERROR_CHECK(
"ts_do_thermal_transonly_",
sizeof(*transfer_struct_c.ts_do_thermal_transonly_),transfer_struct_c.ts_do_thermal_transonly__f_byte_size);
6885 BYTE_SIZE_ERROR_CHECK(
"ts_do_observation_geometry_",
sizeof(*transfer_struct_c.ts_do_observation_geometry_),transfer_struct_c.ts_do_observation_geometry__f_byte_size);
6890 void link_blitz_arrays() {
6894 void link_nested_types() {
6925 link_blitz_arrays();
6926 link_nested_types();
6932 link_blitz_arrays();
6933 link_nested_types();
6943 return *transfer_struct_c.ts_nmoments_input_;
6947 *transfer_struct_c.ts_nmoments_input_ = ts_nmoments_input_in;
6954 virtual void print(std::ostream &output_stream)
const {
6955 output_stream <<
"Lidort_Modified_Control:" << std::endl
6956 <<
"ts_nmoments_input: " << ts_nmoments_input() << std::endl;
6961 BYTE_SIZE_ERROR_CHECK(
"ts_nmoments_input_",
sizeof(*transfer_struct_c.ts_nmoments_input_),transfer_struct_c.ts_nmoments_input__f_byte_size);
6966 void link_blitz_arrays() {
6970 void link_nested_types() {
6993 int ts_beam_szas__f_shapes[1];
7005 link_blitz_arrays();
7006 link_nested_types();
7012 link_blitz_arrays();
7013 link_nested_types();
7023 return *transfer_struct_c.ts_nbeams_;
7027 *transfer_struct_c.ts_nbeams_ = ts_nbeams_in;
7032 return ts_beam_szas_;
7036 ts_beam_szas_ = ts_beam_szas_in;
7043 virtual void print(std::ostream &output_stream)
const {
7044 output_stream <<
"Lidort_Modified_Sunrays:" << std::endl
7045 <<
" ts_nbeams: " << ts_nbeams() << std::endl
7046 <<
"ts_beam_szas: " << std::endl << ts_beam_szas() << std::endl;
7051 BYTE_SIZE_ERROR_CHECK(
"ts_nbeams_",
sizeof(*transfer_struct_c.ts_nbeams_),transfer_struct_c.ts_nbeams__f_byte_size);
7052 BYTE_SIZE_ERROR_CHECK(
"ts_beam_szas_",
sizeof(*transfer_struct_c.ts_beam_szas_),transfer_struct_c.ts_beam_szas__f_byte_size);
7057 void link_blitz_arrays() {
7058 ts_beam_szas_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_beam_szas_,
7059 blitz::shape(transfer_struct_c.ts_beam_szas__f_shapes[0]),
7060 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
7064 void link_nested_types() {
7070 blitz::Array<double, 1> ts_beam_szas_;
7088 int ts_user_relazms__f_shapes[1];
7095 int ts_user_angles_input__f_shapes[1];
7099 int ts_user_levels__f_shapes[1];
7109 int ts_user_obsgeom_input__f_shapes[2];
7121 link_blitz_arrays();
7122 link_nested_types();
7128 link_blitz_arrays();
7129 link_nested_types();
7139 return *transfer_struct_c.ts_n_user_relazms_;
7143 *transfer_struct_c.ts_n_user_relazms_ = ts_n_user_relazms_in;
7148 return ts_user_relazms_;
7152 ts_user_relazms_ = ts_user_relazms_in;
7157 return *transfer_struct_c.ts_n_user_streams_;
7161 *transfer_struct_c.ts_n_user_streams_ = ts_n_user_streams_in;
7166 return ts_user_angles_input_;
7170 ts_user_angles_input_ = ts_user_angles_input_in;
7175 return ts_user_levels_;
7179 ts_user_levels_ = ts_user_levels_in;
7184 return *transfer_struct_c.ts_geometry_specheight_;
7188 *transfer_struct_c.ts_geometry_specheight_ = ts_geometry_specheight_in;
7193 return *transfer_struct_c.ts_n_user_obsgeoms_;
7197 *transfer_struct_c.ts_n_user_obsgeoms_ = ts_n_user_obsgeoms_in;
7202 return ts_user_obsgeom_input_;
7206 ts_user_obsgeom_input_ = ts_user_obsgeom_input_in;
7213 virtual void print(std::ostream &output_stream)
const {
7214 output_stream <<
"Lidort_Modified_Uservalues:" << std::endl
7215 <<
" ts_n_user_relazms: " << ts_n_user_relazms() << std::endl
7216 <<
" ts_user_relazms: " << std::endl << ts_user_relazms() << std::endl
7217 <<
" ts_n_user_streams: " << ts_n_user_streams() << std::endl
7218 <<
" ts_user_angles_input: " << std::endl << ts_user_angles_input() << std::endl
7219 <<
" ts_user_levels: " << std::endl << ts_user_levels() << std::endl
7220 <<
"ts_geometry_specheight: " << ts_geometry_specheight() << std::endl
7221 <<
" ts_n_user_obsgeoms: " << ts_n_user_obsgeoms() << std::endl
7222 <<
" ts_user_obsgeom_input: " << std::endl << ts_user_obsgeom_input() << std::endl;
7227 BYTE_SIZE_ERROR_CHECK(
"ts_n_user_relazms_",
sizeof(*transfer_struct_c.ts_n_user_relazms_),transfer_struct_c.ts_n_user_relazms__f_byte_size);
7228 BYTE_SIZE_ERROR_CHECK(
"ts_user_relazms_",
sizeof(*transfer_struct_c.ts_user_relazms_),transfer_struct_c.ts_user_relazms__f_byte_size);
7229 BYTE_SIZE_ERROR_CHECK(
"ts_n_user_streams_",
sizeof(*transfer_struct_c.ts_n_user_streams_),transfer_struct_c.ts_n_user_streams__f_byte_size);
7230 BYTE_SIZE_ERROR_CHECK(
"ts_user_angles_input_",
sizeof(*transfer_struct_c.ts_user_angles_input_),transfer_struct_c.ts_user_angles_input__f_byte_size);
7231 BYTE_SIZE_ERROR_CHECK(
"ts_user_levels_",
sizeof(*transfer_struct_c.ts_user_levels_),transfer_struct_c.ts_user_levels__f_byte_size);
7232 BYTE_SIZE_ERROR_CHECK(
"ts_geometry_specheight_",
sizeof(*transfer_struct_c.ts_geometry_specheight_),transfer_struct_c.ts_geometry_specheight__f_byte_size);
7233 BYTE_SIZE_ERROR_CHECK(
"ts_n_user_obsgeoms_",
sizeof(*transfer_struct_c.ts_n_user_obsgeoms_),transfer_struct_c.ts_n_user_obsgeoms__f_byte_size);
7234 BYTE_SIZE_ERROR_CHECK(
"ts_user_obsgeom_input_",
sizeof(*transfer_struct_c.ts_user_obsgeom_input_),transfer_struct_c.ts_user_obsgeom_input__f_byte_size);
7239 void link_blitz_arrays() {
7240 ts_user_relazms_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_user_relazms_,
7241 blitz::shape(transfer_struct_c.ts_user_relazms__f_shapes[0]),
7242 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
7243 ts_user_angles_input_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_user_angles_input_,
7244 blitz::shape(transfer_struct_c.ts_user_angles_input__f_shapes[0]),
7245 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
7246 ts_user_levels_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_user_levels_,
7247 blitz::shape(transfer_struct_c.ts_user_levels__f_shapes[0]),
7248 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
7249 ts_user_obsgeom_input_.reference(blitz::Array<double, 2>(transfer_struct_c.ts_user_obsgeom_input_,
7250 blitz::shape(transfer_struct_c.ts_user_obsgeom_input__f_shapes[0],
7251 transfer_struct_c.ts_user_obsgeom_input__f_shapes[1]),
7252 blitz::neverDeleteData, blitz::ColumnMajorArray<2>()));
7256 void link_nested_types() {
7262 blitz::Array<double, 1> ts_user_relazms_;
7263 blitz::Array<double, 1> ts_user_angles_input_;
7264 blitz::Array<double, 1> ts_user_levels_;
7265 blitz::Array<double, 2> ts_user_obsgeom_input_;
7291 link_blitz_arrays();
7292 link_nested_types();
7298 link_blitz_arrays();
7299 link_nested_types();
7309 return *transfer_struct_c.ts_earth_radius_;
7313 *transfer_struct_c.ts_earth_radius_ = ts_earth_radius_in;
7320 virtual void print(std::ostream &output_stream)
const {
7321 output_stream <<
"Lidort_Modified_Chapman:" << std::endl
7322 <<
"ts_earth_radius: " << ts_earth_radius() << std::endl;
7327 BYTE_SIZE_ERROR_CHECK(
"ts_earth_radius_",
sizeof(*transfer_struct_c.ts_earth_radius_),transfer_struct_c.ts_earth_radius__f_byte_size);
7332 void link_blitz_arrays() {
7336 void link_nested_types() {
7356 int ts_omega_total_input__f_shapes[1];
7368 link_blitz_arrays();
7369 link_nested_types();
7375 link_blitz_arrays();
7376 link_nested_types();
7386 return ts_omega_total_input_;
7390 ts_omega_total_input_ = ts_omega_total_input_in;
7397 virtual void print(std::ostream &output_stream)
const {
7398 output_stream <<
"Lidort_Modified_Optical:" << std::endl
7399 <<
"ts_omega_total_input: " << std::endl << ts_omega_total_input() << std::endl;
7404 BYTE_SIZE_ERROR_CHECK(
"ts_omega_total_input_",
sizeof(*transfer_struct_c.ts_omega_total_input_),transfer_struct_c.ts_omega_total_input__f_byte_size);
7409 void link_blitz_arrays() {
7410 ts_omega_total_input_.reference(blitz::Array<double, 1>(transfer_struct_c.ts_omega_total_input_,
7411 blitz::shape(transfer_struct_c.ts_omega_total_input__f_shapes[0]),
7412 blitz::neverDeleteData, blitz::ColumnMajorArray<1>()));
7416 void link_nested_types() {
7422 blitz::Array<double, 1> ts_omega_total_input_;
7463 link_blitz_arrays();
7464 link_nested_types();
7470 link_blitz_arrays();
7471 link_nested_types();
7490 void* dst_ptr = mbool_->fortran_type_ptr();
7505 void* dst_ptr = mcont_->fortran_type_ptr();
7520 void* dst_ptr = msunrays_->fortran_type_ptr();
7535 void* dst_ptr = muserval_->fortran_type_ptr();
7550 void* dst_ptr = mchapman_->fortran_type_ptr();
7565 void* dst_ptr = moptical_->fortran_type_ptr();
7573 virtual void print(std::ostream &output_stream)
const {
7574 output_stream <<
"Lidort_Modified_Inputs:" << std::endl
7575 <<
" mbool: " << mbool() << std::endl
7576 <<
" mcont: " << mcont() << std::endl
7577 <<
"msunrays: " << msunrays() << std::endl
7578 <<
"muserval: " << muserval() << std::endl
7579 <<
"mchapman: " << mchapman() << std::endl
7580 <<
"moptical: " << moptical() << std::endl;
7589 void link_blitz_arrays() {
7593 void link_nested_types() {
void ts_do_isotropic_only(const bool &ts_do_isotropic_only_in)
Brdf_Input_Exception_Handling(void *allocated_f_type_c)
Lidort_Modified_Boolean(void *allocated_f_type_c)
double * sl_user_relazms_
void lidort_modified_control_c_destroy(void **fortran_type_c)
int ts_flux_surfacewf__f_byte_size
void ts_do_upwelling(const bool &ts_do_upwelling_in)
void lidort_linsup_brdf_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void lidort_outputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void ts_status_inputread(const int &ts_status_inputread_in)
int ts_layer_vary_flag__f_byte_size
void lidort_modified_inputs_c_init_only(struct lidort_modified_inputs *transfer_struct_c, void **fortran_type_c)
int ts_fourier_saved__f_byte_size
int ts_do_chapman_function__f_byte_size
const blitz::Array< double, 1 > & ts_height_grid() const
const bool bs_do_wsabsa_output() const
Lidort_Fixed_Uservalues(void *allocated_f_type_c)
int bs_n_user_obsgeoms__f_byte_size
const bool ts_do_sleave_wfs() const
const double & sl_fl_longitude() const
virtual void print(std::ostream &output_stream) const
const int & bs_status_output() const
const int max_brdf_parameters
int ts_do_double_convtest__f_byte_size
void lidort_fixed_lincontrol_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< double, 1 > & bs_bsa_kernels() const
void ts_flux_surfacewf(const blitz::Array< double, 4 > &ts_flux_surfacewf_in)
void ts_do_surface_emission(const bool &ts_do_surface_emission_in)
void lidort_linsup_sleave_c_alloc_init(struct lidort_linsup_sleave *transfer_struct_c, void **fortran_type_c)
void bs_bsa_value(const double &bs_bsa_value_in)
void lidort_modified_uservalues_c_destroy(void **fortran_type_c)
const bool bs_do_user_streams() const
int ts_do_surface_lbbf__f_byte_size
Lidort_Modified_Control & mcont()
void brdf_sup_inputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int * ts_do_thermal_emission_
int ts_do_rayleigh_only__f_byte_size
const double & sl_fl_wavelength() const
void brdf_linsup_inputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< int, 1 > & ts_layer_vary_number() const
int ts_beam_szas__f_byte_size
void ts_user_obsgeom_input(const blitz::Array< double, 2 > &ts_user_obsgeom_input_in)
void brdf_sup_outputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void sleave(Lidort_Sup_Sleave &sleave_in)
Lidort_Outputs(void *allocated_f_type_c)
void lidort_sup_sleave_c_destroy(void **fortran_type_c)
void ts_slterm_f_0(const blitz::Array< double, 3 > &ts_slterm_f_0_in)
int bs_inputactions__f_len
int ts_do_surface_emission__f_byte_size
int bs_do_user_obsgeoms__f_byte_size
const bool ts_do_brdf_surface() const
Lidort_Modified_Chapman()
const bool ts_do_upwelling() const
void optical(Lidort_Fixed_Linoptical &optical_in)
static Lidort_Pars & instance()
void exception_handling_ts_checkmessages_get(void **fortran_type_c, const int *ts_checkmessages_in_shape_1, const int *ts_checkmessages_in_len, const char *ts_checkmessages_in)
Lidort_Modified_Sunrays()
void lidort_modified_sunrays_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void ts_layer_vary_flag(const blitz::Array< bool, 1 > &ts_layer_vary_flag_in)
void ts_do_mvout_only(const bool &ts_do_mvout_only_in)
Brdf_Linsup_Inputs(void *allocated_f_type_c)
const int & bs_n_kernel_params_wfs() const
virtual void print(std::ostream &output_stream) const
double * bs_bsa_calculated_
void lidort_modified_boolean_c_destroy(void **fortran_type_c)
void lidort_linsurf_c_destroy(void **fortran_type_c)
int bs_wavelength__f_byte_size
int * bs_do_user_streams_
const double hopital_tolerance
double * bs_ls_dbounce_brdfunc_
#define BYTE_SIZE_ERROR_CHECK(var_name, c_size, f_size)
const double & ts_rfindex_parameter() const
int ts_mint_surfacewf__f_byte_size
void lidort_sup_inout_c_destroy(void **fortran_type_c)
void bs_n_kernel_factor_wfs(const int &bs_n_kernel_factor_wfs_in)
void ts_thermal_cutoff(const double &ts_thermal_cutoff_in)
int bs_user_emissivity__f_byte_size
const blitz::Array< bool, 1 > ts_layer_vary_flag() const
void bs_nbeams(const int &bs_nbeams_in)
Lidort_Linsup_Inout(void *allocated_f_type_c)
void lidort_fixed_linoptical_c_alloc_init(struct lidort_fixed_linoptical *transfer_struct_c, void **fortran_type_c)
int bs_do_bsa_scaling__f_byte_size
int bs_nstreams_brdf__f_byte_size
const blitz::Array< double, 5 > & ts_profilewf_ss() const
const bool ts_do_double_convtest() const
void lidort_main_outputs_c_destroy(void **fortran_type_c)
const int & sl_nstreams() const
void cont(Lidort_Fixed_Control &cont_in)
~Lidort_Modified_Inputs()
void sl_windspeed(const double &sl_windspeed_in)
const blitz::Array< double, 4 > & ts_lssl_slterm_userangles() const
const bool bs_do_shadow_effect() const
void bs_ls_user_brdf_f_0(const blitz::Array< double, 4 > &bs_ls_user_brdf_f_0_in)
double * ts_flux_surfacewf_
void ts_l_omega_total_input(const blitz::Array< double, 2 > &ts_l_omega_total_input_in)
void ts_earth_radius(const double &ts_earth_radius_in)
void ts_lidort_accuracy(const double &ts_lidort_accuracy_in)
void ts_n_user_streams(const int &ts_n_user_streams_in)
int * bs_do_kparams_derivs_
int ts_do_solution_saving__f_byte_size
void lidort_modified_inputs_c_alloc_init(struct lidort_modified_inputs *transfer_struct_c, void **fortran_type_c)
void bs_ls_brdf_f(const blitz::Array< double, 4 > &bs_ls_brdf_f_in)
int * ts_do_sscorr_outgoing_
int * bs_lambertian_kernel_flag_
int ts_checkmessages__f_len
void input_exception_handling_ts_inputactions_get(void **fortran_type_c, const int *ts_inputactions_in_shape_1, const int *ts_inputactions_in_len, const char *ts_inputactions_in)
void ts_n_totalcolumn_wfs(const int &ts_n_totalcolumn_wfs_in)
const Lidort_Main_Outputs & main() const
int ts_surfacewf__f_byte_size
int bs_noutputmessages__f_byte_size
void ts_n_surface_wfs(const int &ts_n_surface_wfs_in)
void bs_user_relazms(const blitz::Array< double, 1 > &bs_user_relazms_in)
double * ts_dnmean_direct_
const int & bs_status_inputread() const
const Lidort_Modified_Boolean & mbool() const
void ts_temperature_grid(const blitz::Array< double, 1 > &ts_temperature_grid_in)
virtual void print(std::ostream &output_stream) const
double * sl_fl_inputgaussians_
int bs_salinity__f_byte_size
Brdf_Sup_Inputs(void *allocated_f_type_c)
virtual void print(std::ostream &output_stream) const
const int & sl_n_user_obsgeoms() const
virtual void print(std::ostream &output_stream) const
Lidort_Structure(void *allocated_f_type_c)
void lidort_modified_chapman_c_init_only(struct lidort_modified_chapman *transfer_struct_c, void **fortran_type_c)
int bs_ls_user_brdf_f_0__f_byte_size
Lidort_Linsup_Brdf(void *allocated_f_type_c)
int ts_inputactions__f_len
const bool sl_do_facetisotropy() const
int sl_n_user_relazms__f_byte_size
int * ts_do_fullrad_mode_
const Lidort_Modified_Optical & moptical() const
void ts_user_emissivity(const blitz::Array< double, 1 > &ts_user_emissivity_in)
int bs_wsa_value__f_byte_size
void lidort_outputs_c_alloc_init(struct lidort_outputs *transfer_struct_c, void **fortran_type_c)
virtual void print(std::ostream &output_stream) const
const blitz::Array< double, 4 > & bs_ls_user_brdf_f_0() const
void ts_nfinelayers(const int &ts_nfinelayers_in)
Lidort_Linsup_Sleave & sleave()
const Lidort_Sup_Brdf & brdf() const
int bs_n_kernel_factor_wfs__f_byte_size
void lidort_fixed_inputs_c_destroy(void **fortran_type_c)
int bs_user_brdf_f_0__f_byte_size
const blitz::Array< int, 1 > & ts_fourier_saved() const
const bool sl_do_isotropic() const
const blitz::Array< double, 3 > & ts_sbbwfs_fluxes() const
int sl_do_user_streams__f_byte_size
double * ts_ls_user_emissivity_
int bs_n_kernel_params_wfs__f_byte_size
void ts_columnwf(const blitz::Array< double, 4 > &ts_columnwf_in)
void lidort_exception_handling_c_destroy(void **fortran_type_c)
int moptical__f_byte_size
int * ts_n_thermal_coeffs_
void lidort_fixed_control_c_destroy(void **fortran_type_c)
void ts_omega_total_input(const blitz::Array< double, 1 > &ts_omega_total_input_in)
void bs_glitter_msrcorr_nmuquad(const int &bs_glitter_msrcorr_nmuquad_in)
int * ts_do_sscorr_nadir_
int ts_ls_emissivity__f_byte_size
int ts_thermal_bb_input__f_byte_size
Lidort_Input_Exception_Handling()
void bs_user_obsgeoms(const blitz::Array< double, 2 > &bs_user_obsgeoms_in)
double * ts_exactdb_brdfunc_
void ts_do_surface_leaving(const bool &ts_do_surface_leaving_in)
Lidort_Modified_Lininputs()
const blitz::Array< double, 4 > & ts_lssl_user_slterm_f_0() const
const bool bs_do_facetisotropy() const
void brdf_sup_inputs_c_alloc_init(struct brdf_sup_inputs *transfer_struct_c, void **fortran_type_c)
int ts_n_geometries__f_byte_size
const blitz::Array< double, 1 > & ts_emissivity() const
double * sl_fl_wavelength_
void ts_pressure_grid(const blitz::Array< double, 1 > &ts_pressure_grid_in)
void bs_dbounce_brdfunc(const blitz::Array< double, 3 > &bs_dbounce_brdfunc_in)
int ts_lssl_slterm_userangles__f_byte_size
int * ts_n_totalcolumn_wfs_
int bs_do_wsa_scaling__f_byte_size
const blitz::Array< double, 1 > & ts_beam_szas() const
const int max_allstrms_p1
Lidort_Modified_Optical(void *allocated_f_type_c)
void lidort_fixed_boolean_c_init_only(struct lidort_fixed_boolean *transfer_struct_c, void **fortran_type_c)
const blitz::Array< double, 4 > & ts_columnwf_ss() const
double * ts_slterm_isotropic_
void ts_deltau_vert_input(const blitz::Array< double, 1 > &ts_deltau_vert_input_in)
void bs_lambertian_kernel_flag(const blitz::Array< bool, 1 > &bs_lambertian_kernel_flag_in)
void ts_n_thermal_coeffs(const int &ts_n_thermal_coeffs_in)
int * ts_status_inputread_
void ts_user_brdf_f(const blitz::Array< double, 3 > &ts_user_brdf_f_in)
void lidort_fixed_lininputs_c_destroy(void **fortran_type_c)
int sl_do_fluorescence__f_byte_size
const bool sl_do_sleaving() const
Lidort_Fixed_Inputs(void *allocated_f_type_c)
void bs_do_bsavalue_wf(const bool &bs_do_bsavalue_wf_in)
const blitz::Array< double, 2 > & ts_l_deltau_vert_input() const
void ts_columnwf_ss(const blitz::Array< double, 4 > &ts_columnwf_ss_in)
void bs_ninputmessages(const int &bs_ninputmessages_in)
int sl_fl_amplitude755__f_byte_size
void lidort_input_exception_handling_c_destroy(void **fortran_type_c)
void brdf_input_exception_handling_bs_inputmessages_get(void **fortran_type_c, const int *bs_inputmessages_in_shape_1, const int *bs_inputmessages_in_len, const char *bs_inputmessages_in)
const Lidort_Linsup_Ss_Atmos & atmos() const
const int max_user_streams
double * ts_ls_emissivity_
void brdf_linsup_inputs_c_init_only(struct brdf_linsup_inputs *transfer_struct_c, void **fortran_type_c)
const int & ts_n_thermal_coeffs() const
int bs_ls_dbounce_brdfunc__f_byte_size
void lidort_sup_ss_c_init_only(struct lidort_sup_ss *transfer_struct_c, void **fortran_type_c)
double * sl_user_obsgeoms_
int ts_surfacewf_db__f_byte_size
Lidort_Linatmos & atmos()
const double & sl_windspeed() const
int bs_n_user_streams__f_byte_size
void bs_windspeed(const double &bs_windspeed_in)
void ts_mean_intensity(const blitz::Array< double, 3 > &ts_mean_intensity_in)
void bs_salinity(const double &bs_salinity_in)
void lidort_sup_sleave_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
Lidort_Modified_Inputs(void *allocated_f_type_c)
int bs_ninputmessages__f_byte_size
double * ts_l_phasmoms_total_input_
virtual void print(std::ostream &output_stream) const
int muserval__f_byte_size
int ts_do_deltam_scaling__f_byte_size
void ts_rfindex_parameter(const double &ts_rfindex_parameter_in)
void lidort_sup_inout_c_alloc_init(struct lidort_sup_inout *transfer_struct_c, void **fortran_type_c)
void ts_lssl_slterm_isotropic(const blitz::Array< double, 2 > &ts_lssl_slterm_isotropic_in)
int * ts_do_surface_leaving_
int ts_slterm_isotropic__f_byte_size
void ts_profilewf_db(const blitz::Array< double, 4 > &ts_profilewf_db_in)
int ts_slterm_f_0__f_byte_size
void sl_fl_longitude(const double &sl_fl_longitude_in)
int * ts_do_thermal_transonly_
void bs_ls_dbounce_brdfunc(const blitz::Array< double, 4 > &bs_ls_dbounce_brdfunc_in)
void ts_do_all_fourier(const bool &ts_do_all_fourier_in)
void ts_sbbwfs_jacobians(const blitz::Array< double, 3 > &ts_sbbwfs_jacobians_in)
Lidort_Modified_Uservalues & muserval()
int * sl_do_fluorescence_
int sl_fl_latitude__f_byte_size
void bs_beam_szas(const blitz::Array< double, 1 > &bs_beam_szas_in)
Lidort_Linsup_Ss_Surf & surf()
virtual void print(std::ostream &output_stream) const
void sl_do_facetisotropy(const bool &sl_do_facetisotropy_in)
int ts_user_brdf_f_0__f_byte_size
void bs_noutputmessages(const int &bs_noutputmessages_in)
int ts_do_surface_linearization__f_byte_size
int ts_do_sscorr_nadir__f_byte_size
int ts_n_totalcolumn_wfs__f_byte_size
void bs_n_brdf_kernels(const int &bs_n_brdf_kernels_in)
const std::vector< std::string > bs_inputmessages() const
double * ts_lssl_slterm_isotropic_
const blitz::Array< double, 4 > & ts_flux_surfacewf() const
int ts_do_thermal_emission__f_byte_size
const bool ts_do_sscorr_nadir() const
int bs_wsa_kernels__f_byte_size
void ts_nmoments_input(const int &ts_nmoments_input_in)
const int & ts_n_sleave_wfs() const
int ts_slterm_userangles__f_byte_size
const blitz::Array< double, 4 > & ts_abbwfs_fluxes() const
int ts_ninputmessages__f_byte_size
int ts_do_profile_linearization__f_byte_size
int ts_columnwf_db__f_byte_size
int ts_do_all_fourier__f_byte_size
void lidort_linsurf_c_init_only(struct lidort_linsurf *transfer_struct_c, void **fortran_type_c)
void lidort_modified_uservalues_c_alloc_init(struct lidort_modified_uservalues *transfer_struct_c, void **fortran_type_c)
const int & ts_ninputmessages() const
Lidort_Fixed_Uservalues & userval()
int bs_outputmessages__f_len
const bool sl_do_user_obsgeoms() const
void bs_status_output(const int &bs_status_output_in)
const int & sl_nbeams() const
void lidort_fixed_uservalues_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< double, 4 > & bs_ls_user_brdf_f() const
virtual void print(std::ostream &output_stream) const
const bool ts_do_solution_saving() const
int sl_do_isotropic__f_byte_size
int ts_do_ssfull__f_byte_size
Lidort_Linsup_Ss(void *allocated_f_type_c)
const int & ts_n_user_streams() const
Lidort_Modified_Control()
const double max_tau_upath
void bs_ls_emissivity(const blitz::Array< double, 2 > &bs_ls_emissivity_in)
const blitz::Array< double, 4 > & ts_lssl_slterm_f_0() const
void ts_geometry_specheight(const double &ts_geometry_specheight_in)
const std::vector< std::string > bs_inputactions() const
int ts_do_ss_external__f_byte_size
const blitz::Array< double, 1 > & ts_user_levels() const
int bs_n_brdf_parameters__f_byte_size
int * ts_status_inputcheck_
const bool ts_do_all_fourier() const
void bs_nstreams(const int &bs_nstreams_in)
const int & bs_glitter_msrcorr_nmuquad() const
~Brdf_Input_Exception_Handling()
void dummy(const int &dummy_in)
void brdf_input_exception_handling_c_init_only(struct brdf_input_exception_handling *transfer_struct_c, void **fortran_type_c)
const int & ts_ncheckmessages() const
void lidort_linatmos_c_destroy(void **fortran_type_c)
int bs_do_newcmglint__f_byte_size
void ts_do_bvp_telescoping(const bool &ts_do_bvp_telescoping_in)
const blitz::Array< double, 3 > & ts_mean_intensity() const
void ts_sbbwfs_fluxes(const blitz::Array< double, 3 > &ts_sbbwfs_fluxes_in)
void bs_which_brdf(const blitz::Array< int, 1 > &bs_which_brdf_in)
virtual void print(std::ostream &output_stream) const
int * ts_do_additional_mvout_
void lidort_linsup_sleave_c_destroy(void **fortran_type_c)
void ts_ls_exactdb_brdfunc(const blitz::Array< double, 4 > &ts_ls_exactdb_brdfunc_in)
Lidort_Modified_Chapman & mchapman()
void ts_beam_szas(const blitz::Array< double, 1 > &ts_beam_szas_in)
double * ts_l_deltau_vert_input_
int bs_bsa_kernels__f_byte_size
const blitz::Array< double, 1 > & ts_solarbeam_boatrans() const
void ts_do_chapman_function(const bool &ts_do_chapman_function_in)
Lidort_Exception_Handling(void *allocated_f_type_c)
void ts_surfacewf_db(const blitz::Array< double, 3 > &ts_surfacewf_db_in)
int ts_do_no_azimuth__f_byte_size
const blitz::Array< double, 3 > & ts_intensity_ss() const
const double taylor_small
Lidort_Fixed_Lincontrol()
void sl_user_relazms(const blitz::Array< double, 1 > &sl_user_relazms_in)
int bs_ls_emissivity__f_byte_size
int bs_ls_brdf_f_0__f_byte_size
int * bs_do_facetisotropy_
const bool ts_do_deltam_scaling() const
int bs_bsa_calculated__f_byte_size
void lidort_sup_brdf_c_alloc_init(struct lidort_sup_brdf *transfer_struct_c, void **fortran_type_c)
void sl_do_sleaving(const bool &sl_do_sleaving_in)
int ts_dnflux_direct__f_byte_size
int * ts_do_deltam_scaling_
void lidort_input_exception_handling_c_init_only(struct lidort_input_exception_handling *transfer_struct_c, void **fortran_type_c)
double * ts_ls_exactdb_brdfunc_
double * ts_profilewf_db_
const std::string ts_trace_2() const
int ts_lssl_slterm_isotropic__f_byte_size
const blitz::Array< double, 2 > & sl_fl_inputgaussians() const
void lidort_fixed_lincontrol_c_alloc_init(struct lidort_fixed_lincontrol *transfer_struct_c, void **fortran_type_c)
const bool sl_do_solar_sources() const
int ts_profilewf_ss__f_byte_size
int bs_do_directbounce_only__f_byte_size
void ts_do_profile_linearization(const bool &ts_do_profile_linearization_in)
~Lidort_Fixed_Lincontrol()
int bs_n_surface_wfs__f_byte_size
int sl_n_user_streams__f_byte_size
int ts_do_isotropic_only__f_byte_size
void brdf_sup_outputs_c_alloc_init(struct brdf_sup_outputs *transfer_struct_c, void **fortran_type_c)
const Lidort_Fixed_Sunrays & sunrays() const
int bs_n_brdf_kernels__f_byte_size
const blitz::Array< double, 4 > & ts_ls_user_brdf_f() const
void brdf_linsup_inputs_c_alloc_init(struct brdf_linsup_inputs *transfer_struct_c, void **fortran_type_c)
const std::vector< std::string > ts_inputmessages() const
void ts_do_user_streams(const bool &ts_do_user_streams_in)
virtual void print(std::ostream &output_stream) const
void ts_user_brdf_f_0(const blitz::Array< double, 3 > &ts_user_brdf_f_0_in)
void sleave(Lidort_Linsup_Sleave &sleave_in)
const double & ts_lidort_accuracy() const
void ts_n_user_obsgeoms(const int &ts_n_user_obsgeoms_in)
const int & ts_status_calculation() const
const int & ts_status_inputread() const
void ts_do_ss_external(const bool &ts_do_ss_external_in)
void bs_do_kernel_params_wfs(const blitz::Array< bool, 2 > &bs_do_kernel_params_wfs_in)
int bs_windspeed__f_byte_size
int * sl_do_facetisotropy_
const blitz::Array< double, 4 > & ts_surfacewf() const
const blitz::Array< double, 1 > & bs_winddir() const
double * ts_deltau_vert_input_
double * sl_user_angles_input_
int sl_do_glintshadow__f_byte_size
void lidort_fixed_uservalues_c_destroy(void **fortran_type_c)
const Lidort_Linsurf & surf() const
int ts_phasmoms_total_input__f_byte_size
const blitz::Array< double, 5 > & ts_profilewf() const
int * bs_do_glitter_msrcorr_
const bool bs_do_wsavalue_wf() const
void bs_n_kernel_params_wfs(const int &bs_n_kernel_params_wfs_in)
void lidort_fixed_chapman_c_init_only(struct lidort_fixed_chapman *transfer_struct_c, void **fortran_type_c)
Lidort_Fixed_Sunrays(void *allocated_f_type_c)
void ts_mint_surfacewf(const blitz::Array< double, 4 > &ts_mint_surfacewf_in)
double * ts_mint_surfacewf_
const std::string ts_message() const
Lidort_Sup_Ss(void *allocated_f_type_c)
int sl_do_exactonly__f_byte_size
void ts_do_sleave_wfs(const bool &ts_do_sleave_wfs_in)
const blitz::Array< double, 1 > & ts_user_angles_input() const
void lidort_linatmos_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void bs_do_glitter_msrcorr_dbonly(const bool &bs_do_glitter_msrcorr_dbonly_in)
int ts_emissivity__f_byte_size
void lidort_linatmos_c_init_only(struct lidort_linatmos *transfer_struct_c, void **fortran_type_c)
int ts_nfinelayers__f_byte_size
void ts_do_observation_geometry(const bool &ts_do_observation_geometry_in)
int bs_which_brdf__f_byte_size
Lidort_Exception_Handling()
const blitz::Array< double, 3 > & ts_surfacewf_db() const
int bs_brdf_parameters__f_byte_size
void ts_abbwfs_jacobians(const blitz::Array< double, 4 > &ts_abbwfs_jacobians_in)
const Lidort_Fixed_Boolean & f_bool() const
double * ts_flux_profilewf_
~Brdf_Output_Exception_Handling()
int bs_do_glintshadow__f_byte_size
void lidort_modified_inputs_c_destroy(void **fortran_type_c)
const int lidort_scenunit
void mcont(Lidort_Modified_Control &mcont_in)
void lidort_linsup_ss_atmos_c_alloc_init(struct lidort_linsup_ss_atmos *transfer_struct_c, void **fortran_type_c)
const double & ts_flux_factor() const
virtual void print(std::ostream &output_stream) const
int ts_user_angles_input__f_byte_size
double * ts_sbbwfs_fluxes_
int bs_bsa_value__f_byte_size
void exception_handling_ts_actions_get(void **fortran_type_c, const int *ts_actions_in_shape_1, const int *ts_actions_in_len, const char *ts_actions_in)
void ts_lssl_user_slterm_f_0(const blitz::Array< double, 4 > &ts_lssl_user_slterm_f_0_in)
int ts_n_user_levels__f_byte_size
void lidort_fixed_boolean_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_user_obsgeom_input__f_byte_size
const Lidort_Fixed_Uservalues & userval() const
int sl_nbeams__f_byte_size
int bs_brdf_f_0__f_byte_size
int ts_taylor_order__f_byte_size
void ts_do_additional_mvout(const bool &ts_do_additional_mvout_in)
int ts_do_mvout_only__f_byte_size
int ts_nstreams__f_byte_size
int * bs_do_user_obsgeoms_
const bool ts_do_no_azimuth() const
double * ts_abbwfs_fluxes_
int * ts_status_calculation_
void lidort_linsup_ss_c_alloc_init(struct lidort_linsup_ss *transfer_struct_c, void **fortran_type_c)
int ts_nlayers__f_byte_size
const double & bs_bsa_calculated() const
const char lidort_version_number[3]
const Lidort_Sup_Sleave & sleave() const
void brdf_sup_outputs_c_destroy(void **fortran_type_c)
void lidort_sup_brdf_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< double, 1 > & bs_beam_szas() const
void bs_do_glitter_msrcorr(const bool &bs_do_glitter_msrcorr_in)
const bool ts_do_sscorr_outgoing() const
double * ts_user_slterm_f_0_
const double & sl_fl_amplitude755() const
int ts_do_sl_isotropic__f_byte_size
int sl_user_obsgeoms__f_byte_size
const double & sl_fl_latitude() const
void lidort_outputs_c_init_only(struct lidort_outputs *transfer_struct_c, void **fortran_type_c)
Lidort_Fixed_Chapman & chapman()
int bs_do_glitter_msrcorr__f_byte_size
int sl_fl_do_datagaussian__f_byte_size
void ts_user_slterm_f_0(const blitz::Array< double, 3 > &ts_user_slterm_f_0_in)
int * sl_do_user_obsgeoms_
double * ts_earth_radius_
const blitz::Array< double, 1 > & bs_wsa_kernels() const
void brdf_sup_inputs_c_init_only(struct brdf_sup_inputs *transfer_struct_c, void **fortran_type_c)
void lidort_modified_optical_c_init_only(struct lidort_modified_optical *transfer_struct_c, void **fortran_type_c)
void lidort_linsup_inout_c_init_only(struct lidort_linsup_inout *transfer_struct_c, void **fortran_type_c)
int bs_beam_szas__f_byte_size
void ts_flux_integral(const blitz::Array< double, 3 > &ts_flux_integral_in)
const int max_user_levels
const bool ts_do_surface_lbbf() const
int * ts_do_column_linearization_
const bool sl_do_fluorescence() const
int ts_layer_vary_number__f_byte_size
void lidort_exception_handling_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const bool ts_do_column_linearization() const
int bs_dbounce_brdfunc__f_byte_size
int ts_lssl_slterm_f_0__f_byte_size
void ts_do_surface_linearization(const bool &ts_do_surface_linearization_in)
const blitz::Array< double, 1 > & sl_winddir() const
void brdf_output_exception_handling_c_alloc_init(struct brdf_output_exception_handling *transfer_struct_c, void **fortran_type_c)
void lidort_linsup_ss_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_ls_exactdb_brdfunc__f_byte_size
void brdf_input_exception_handling_bs_inputactions_get(void **fortran_type_c, const int *bs_inputactions_in_shape_1, const int *bs_inputactions_in_len, const char *bs_inputactions_in)
const std::vector< std::string > ts_actions() const
const blitz::Array< double, 4 > & bs_ls_brdf_f_0() const
void lidort_fixed_linoptical_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void sl_do_foamoption(const bool &sl_do_foamoption_in)
const int & ts_n_user_relazms() const
void ts_profilewf_ss(const blitz::Array< double, 5 > &ts_profilewf_ss_in)
int ts_user_levels__f_byte_size
const std::string ts_trace_1() const
void brdf_sup_outputs_c_init_only(struct brdf_sup_outputs *transfer_struct_c, void **fortran_type_c)
virtual void print(std::ostream &output_stream) const
const blitz::Array< double, 4 > & ts_profilewf_db() const
int ts_n_user_streams__f_byte_size
void bs_brdf_f(const blitz::Array< double, 3 > &bs_brdf_f_in)
Brdf_Linsup_Outputs(void *allocated_f_type_c)
void lidort_fixed_lininputs_c_init_only(struct lidort_fixed_lininputs *transfer_struct_c, void **fortran_type_c)
const Lidort_Fixed_Lincontrol & cont() const
int * ts_do_isotropic_only_
double * ts_pressure_grid_
double * ts_mint_columnwf_
int ts_flux_columnwf__f_byte_size
double * bs_user_angles_input_
const blitz::Array< double, 4 > & ts_mint_surfacewf() const
void bs_do_shadow_effect(const bool &bs_do_shadow_effect_in)
void ts_taylor_order(const int &ts_taylor_order_in)
int bs_ls_user_emissivity__f_byte_size
void ts_mint_profilewf(const blitz::Array< double, 5 > &ts_mint_profilewf_in)
int bs_status_inputread__f_byte_size
void lidort_fixed_control_c_init_only(struct lidort_fixed_control *transfer_struct_c, void **fortran_type_c)
void bs_emissivity(const blitz::Array< double, 1 > &bs_emissivity_in)
void ts_nstreams(const int &ts_nstreams_in)
int ts_ls_user_brdf_f_0__f_byte_size
const blitz::Array< double, 2 > & ts_user_obsgeom_input() const
void lidort_modified_lininputs_c_alloc_init(struct lidort_modified_lininputs *transfer_struct_c, void **fortran_type_c)
void ts_columnwf_db(const blitz::Array< double, 3 > &ts_columnwf_db_in)
int ts_brdf_f__f_byte_size
void lidort_outputs_c_destroy(void **fortran_type_c)
void ts_lssl_slterm_f_0(const blitz::Array< double, 4 > &ts_lssl_slterm_f_0_in)
int sl_salinity__f_byte_size
const bool ts_do_chapman_function() const
void brdf_input_exception_handling_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_pressure_grid__f_byte_size
int sl_chlorconc__f_byte_size
Lidort_Fixed_Lininputs(void *allocated_f_type_c)
const blitz::Array< double, 4 > & bs_ls_brdf_f() const
Lidort_Fixed_Lincontrol & cont()
void bs_do_wsavalue_wf(const bool &bs_do_wsavalue_wf_in)
const blitz::Array< double, 2 > & ts_dnmean_direct() const
void * fortran_type_ptr()
int ts_flux_factor__f_byte_size
virtual void print(std::ostream &output_stream) const
void lidort_linsup_ss_atmos_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int * sl_do_solar_sources_
const Lidort_Fixed_Control & cont() const
const blitz::Array< double, 1 > & ts_user_emissivity() const
virtual void print(std::ostream &output_stream) const
int ts_do_surface_leaving__f_byte_size
const bool ts_do_isotropic_only() const
const bool ts_do_fullrad_mode() const
void lidort_fixed_lincontrol_c_destroy(void **fortran_type_c)
int bs_user_obsgeoms__f_byte_size
const Lidort_Fixed_Optical & optical() const
const Lidort_Linsup_Brdf & brdf() const
const bool ts_do_profile_linearization() const
int ts_surface_bb_input__f_byte_size
virtual void print(std::ostream &output_stream) const
Lidort_Fixed_Sunrays & sunrays()
void ts_nbeams(const int &ts_nbeams_in)
void sl_salinity(const double &sl_salinity_in)
const std::vector< std::string > ts_checkmessages() const
void lidort_linsup_ss_surf_c_destroy(void **fortran_type_c)
const int & ts_nfinelayers() const
Brdf_Sup_Outputs(void *allocated_f_type_c)
double * ts_user_angles_input_
int * bs_do_windspeed_wf_
int ts_intensity_ss__f_byte_size
Lidort_Sup_Brdf(void *allocated_f_type_c)
int ts_brdf_f_0__f_byte_size
void ts_user_angles_input(const blitz::Array< double, 1 > &ts_user_angles_input_in)
void lidort_fixed_optical_c_alloc_init(struct lidort_fixed_optical *transfer_struct_c, void **fortran_type_c)
void lidort_sup_sleave_c_init_only(struct lidort_sup_sleave *transfer_struct_c, void **fortran_type_c)
void sunrays(Lidort_Fixed_Sunrays &sunrays_in)
int ts_status_inputread__f_byte_size
void lidort_main_outputs_c_alloc_init(struct lidort_main_outputs *transfer_struct_c, void **fortran_type_c)
const blitz::Array< int, 1 > & sl_fl_epoch() const
void surf(Lidort_Linsup_Ss_Surf &surf_in)
Lidort_Modified_Sunrays & msunrays()
void lidort_linoutputs_c_destroy(void **fortran_type_c)
Lidort_Linsup_Ss_Atmos(void *allocated_f_type_c)
void bs_do_bsa_scaling(const bool &bs_do_bsa_scaling_in)
const int & bs_n_surface_wfs() const
const double & ts_surface_bb_input() const
int * bs_do_glitter_msrcorr_dbonly_
Lidort_Linsup_Sleave(void *allocated_f_type_c)
const blitz::Array< double, 4 > & ts_ls_brdf_f() const
int ts_columnwf_ss__f_byte_size
void bs_glitter_msrcorr_order(const int &bs_glitter_msrcorr_order_in)
void bs_wavelength(const double &bs_wavelength_in)
void lidort_modified_optical_c_alloc_init(struct lidort_modified_optical *transfer_struct_c, void **fortran_type_c)
void ts_status_inputcheck(const int &ts_status_inputcheck_in)
double * ts_lssl_slterm_f_0_
double * ts_mint_profilewf_
int ts_do_sleave_wfs__f_byte_size
Lidort_Input_Exception_Handling(void *allocated_f_type_c)
virtual void print(std::ostream &output_stream) const
void ts_mint_columnwf(const blitz::Array< double, 4 > &ts_mint_columnwf_in)
double * ts_lidort_accuracy_
void lidort_modified_uservalues_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void bs_user_emissivity(const blitz::Array< double, 1 > &bs_user_emissivity_in)
void ts_ls_brdf_f_0(const blitz::Array< double, 4 > &ts_ls_brdf_f_0_in)
int ts_ls_brdf_f_0__f_byte_size
int ts_do_fullrad_mode__f_byte_size
void sleave_sup_inputs_c_destroy(void **fortran_type_c)
void bs_do_foamoption(const bool &bs_do_foamoption_in)
Lidort_Fixed_Chapman(void *allocated_f_type_c)
void bs_do_facetisotropy(const bool &bs_do_facetisotropy_in)
int ts_do_refractive_geometry__f_byte_size
void ts_do_surface_lbbf(const bool &ts_do_surface_lbbf_in)
int * bs_do_surface_emission_
int ts_ls_user_brdf_f__f_byte_size
void brdf_output_exception_handling_c_destroy(void **fortran_type_c)
void surf(Lidort_Linsurf &surf_in)
int ts_status_calculation__f_byte_size
const int & ts_n_totalcolumn_wfs() const
int * bs_do_directbounce_only_
double * sl_fl_longitude_
void bs_ls_brdf_f_0(const blitz::Array< double, 4 > &bs_ls_brdf_f_0_in)
const bool ts_do_surface_linearization() const
void ts_ls_user_brdf_f(const blitz::Array< double, 4 > &ts_ls_user_brdf_f_in)
void lidort_linatmos_c_alloc_init(struct lidort_linatmos *transfer_struct_c, void **fortran_type_c)
This is a Mixin for classes that can be printed.
double * ts_solarbeam_boatrans_
void ts_ls_brdf_f(const blitz::Array< double, 4 > &ts_ls_brdf_f_in)
void lidort_exception_handling_c_init_only(struct lidort_exception_handling *transfer_struct_c, void **fortran_type_c)
void ts_lssl_slterm_userangles(const blitz::Array< double, 4 > &ts_lssl_slterm_userangles_in)
const blitz::Array< double, 3 > & ts_columnwf_db() const
void bs_do_windspeed_wf(const bool &bs_do_windspeed_wf_in)
const blitz::Array< int, 1 > & bs_n_brdf_parameters() const
void lidort_fixed_lininputs_c_alloc_init(struct lidort_fixed_lininputs *transfer_struct_c, void **fortran_type_c)
void ts_lambertian_albedo(const double &ts_lambertian_albedo_in)
virtual void print(std::ostream &output_stream) const
double * bs_brdf_parameters_
const blitz::Array< double, 2 > & ts_l_omega_total_input() const
double * bs_wsa_calculated_
void brdf_sup_inputs_c_destroy(void **fortran_type_c)
~Lidort_Fixed_Lininputs()
const blitz::Array< double, 3 > & bs_user_brdf_f() const
void ts_do_deltam_scaling(const bool &ts_do_deltam_scaling_in)
void lidort_linsup_ss_c_destroy(void **fortran_type_c)
void bs_do_brdf_surface(const bool &bs_do_brdf_surface_in)
int ts_flux_integral__f_byte_size
void lidort_modified_sunrays_c_destroy(void **fortran_type_c)
void sleave_sup_inputs_c_init_only(struct sleave_sup_inputs *transfer_struct_c, void **fortran_type_c)
int * bs_do_wsabsa_output_
const int max_thermal_coeffs
Lidort_Linsup_Ss_Surf(void *allocated_f_type_c)
const blitz::Array< double, 4 > & ts_ls_exactdb_brdfunc() const
void input_exception_handling_ts_inputmessages_get(void **fortran_type_c, const int *ts_inputmessages_in_shape_1, const int *ts_inputmessages_in_len, const char *ts_inputmessages_in)
int bs_brdf_factors__f_byte_size
const bool ts_do_solar_sources() const
const int & ts_n_geometries() const
int * bs_do_shadow_effect_
void lidort_modified_optical_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void sleave_sup_inputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_user_emissivity__f_byte_size
double * ts_dnflux_direct_
int * bs_glitter_msrcorr_nmuquad_
double * ts_omega_total_input_
int * ts_do_user_streams_
const int & ts_n_surface_wfs() const
void ts_do_solar_sources(const bool &ts_do_solar_sources_in)
Lidort_Linoutputs(void *allocated_f_type_c)
int sl_do_solar_sources__f_byte_size
void lidort_fixed_sunrays_c_destroy(void **fortran_type_c)
void moptical(Lidort_Modified_Optical &moptical_in)
const blitz::Array< double, 2 > & bs_brdf_parameters() const
Lidort_Linsup_Ss_Atmos & atmos()
void lidort_linsup_inout_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_n_surface_wfs__f_byte_size
const bool sl_fl_do_datagaussian() const
void ts_do_plane_parallel(const bool &ts_do_plane_parallel_in)
int bs_lambertian_kernel_flag__f_byte_size
const double & ts_thermal_cutoff() const
void bs_do_glintshadow(const bool &bs_do_glintshadow_in)
void set_lidort_pars(struct Lidort_Pars *lidort_pars_struct_c)
void brdf_input_exception_handling_c_alloc_init(struct brdf_input_exception_handling *transfer_struct_c, void **fortran_type_c)
const bool ts_do_bvp_telescoping() const
int * ts_do_double_convtest_
const bool bs_do_windspeed_wf() const
void sl_fl_do_datagaussian(const bool &sl_fl_do_datagaussian_in)
int * sl_fl_do_datagaussian_
void lidort_fixed_sunrays_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void sl_fl_latitude(const double &sl_fl_latitude_in)
const bool ts_do_plane_parallel() const
void bs_status_inputread(const int &bs_status_inputread_in)
double * ts_user_emissivity_
const int & sl_n_user_relazms() const
const blitz::Array< bool, 1 > bs_do_kparams_derivs() const
const blitz::Array< double, 5 > & ts_flux_profilewf() const
void bs_glitter_msrcorr_nphiquad(const int &bs_glitter_msrcorr_nphiquad_in)
void mchapman(Lidort_Modified_Chapman &mchapman_in)
void lidort_modified_optical_c_destroy(void **fortran_type_c)
void ts_user_levels(const blitz::Array< double, 1 > &ts_user_levels_in)
int bs_glitter_msrcorr_nphiquad__f_byte_size
int bs_do_foamoption__f_byte_size
void sl_chlorconc(const double &sl_chlorconc_in)
const bool ts_do_thermal_emission() const
void lidort_sup_sleave_c_alloc_init(struct lidort_sup_sleave *transfer_struct_c, void **fortran_type_c)
const Lidort_Modified_Sunrays & msunrays() const
int ts_user_slterm_f_0__f_byte_size
const int & ts_status_inputcheck() const
void lidort_sup_ss_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
double * bs_user_relazms_
const blitz::Array< double, 3 > & ts_sbbwfs_jacobians() const
int sl_windspeed__f_byte_size
void lidort_modified_lininputs_c_init_only(struct lidort_modified_lininputs *transfer_struct_c, void **fortran_type_c)
void ts_surface_bb_input(const double &ts_surface_bb_input_in)
const Lidort_Modified_Control & mcont() const
virtual void print(std::ostream &output_stream) const
virtual void print(std::ostream &output_stream) const
void lidort_linsup_brdf_c_init_only(struct lidort_linsup_brdf *transfer_struct_c, void **fortran_type_c)
void ts_emissivity(const blitz::Array< double, 1 > &ts_emissivity_in)
void userval(Lidort_Fixed_Uservalues &userval_in)
double * ts_intensity_ss_
void ts_intensity(const blitz::Array< double, 3 > &ts_intensity_in)
void lidort_modified_boolean_c_alloc_init(struct lidort_modified_boolean *transfer_struct_c, void **fortran_type_c)
void main(Lidort_Main_Outputs &main_in)
const int & bs_n_brdf_kernels() const
virtual void print(std::ostream &output_stream) const
void lidort_modified_chapman_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void bs_bsa_kernels(const blitz::Array< double, 1 > &bs_bsa_kernels_in)
void lidort_fixed_inputs_c_init_only(struct lidort_fixed_inputs *transfer_struct_c, void **fortran_type_c)
int ts_do_column_linearization__f_byte_size
const double & bs_wsa_value() const
void ts_n_geometries(const int &ts_n_geometries_in)
const blitz::Array< double, 3 > & ts_brdf_f_0() const
int ts_lidort_accuracy__f_byte_size
const bool ts_do_surface_leaving() const
void bs_do_surface_emission(const bool &bs_do_surface_emission_in)
void ts_ls_user_brdf_f_0(const blitz::Array< double, 4 > &ts_ls_user_brdf_f_0_in)
Lidort_Fixed_Boolean & f_bool()
void ts_abbwfs_fluxes(const blitz::Array< double, 4 > &ts_abbwfs_fluxes_in)
void bs_brdf_factors(const blitz::Array< double, 1 > &bs_brdf_factors_in)
const blitz::Array< double, 4 > & ts_mint_columnwf() const
void bs_n_surface_wfs(const int &bs_n_surface_wfs_in)
void lidort_linsup_ss_c_init_only(struct lidort_linsup_ss *transfer_struct_c, void **fortran_type_c)
virtual void print(std::ostream &output_stream) const
const blitz::Array< double, 2 > & bs_ls_emissivity() const
int bs_do_kernel_params_wfs__f_byte_size
double * ts_lssl_slterm_userangles_
void ts_do_refractive_geometry(const bool &ts_do_refractive_geometry_in)
double * sl_fl_amplitude755_
void lidort_input_exception_handling_c_alloc_init(struct lidort_input_exception_handling *transfer_struct_c, void **fortran_type_c)
const int & bs_ninputmessages() const
int sl_do_sleaving__f_byte_size
const blitz::Array< double, 1 > & bs_brdf_factors() const
void ts_n_user_relazms(const int &ts_n_user_relazms_in)
const bool ts_do_surface_emission() const
Lidort_Modified_Boolean & mbool()
const bool ts_do_sl_isotropic() const
const int & bs_noutputmessages() const
void brdf(Lidort_Sup_Brdf &brdf_in)
Lidort_Fixed_Linoptical & optical()
const Lidort_Exception_Handling & status() const
const blitz::Array< double, 3 > & ts_slterm_f_0() const
void lidort_modified_lininputs_c_destroy(void **fortran_type_c)
const Lidort_Linatmos & atmos() const
int ts_do_additional_mvout__f_byte_size
const blitz::Array< double, 3 > & ts_l_phasmoms_total_input() const
const blitz::Array< double, 4 > & ts_ls_user_brdf_f_0() const
~Lidort_Modified_Lininputs()
void ts_solarbeam_boatrans(const blitz::Array< double, 1 > &ts_solarbeam_boatrans_in)
int * bs_noutputmessages_
~Lidort_Modified_Chapman()
int ts_do_dnwelling__f_byte_size
int ts_lambertian_albedo__f_byte_size
Lidort_Modified_Uservalues(void *allocated_f_type_c)
int * ts_do_observation_geometry_
const bool ts_do_sscorr_truncation() const
const bool ts_do_observation_geometry() const
const blitz::Array< double, 4 > & ts_columnwf() const
void bs_do_newcmglint(const bool &bs_do_newcmglint_in)
void lidort_linsurf_c_alloc_init(struct lidort_linsurf *transfer_struct_c, void **fortran_type_c)
int ts_do_user_streams__f_byte_size
void ts_slterm_userangles(const blitz::Array< double, 3 > &ts_slterm_userangles_in)
const blitz::Array< bool, 1 > bs_lambertian_kernel_flag() const
int ts_flux_profilewf__f_byte_size
double * ts_flux_columnwf_
int ts_intensity_db__f_byte_size
const blitz::Array< double, 2 > & sl_user_obsgeoms() const
const blitz::Array< double, 2 > & ts_ls_emissivity() const
void lidort_linsurf_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const int & ts_nbeams() const
double * ts_surfacewf_db_
void lidort_fixed_optical_c_destroy(void **fortran_type_c)
double * ts_ls_user_brdf_f_0_
const blitz::Array< double, 4 > & bs_ls_dbounce_brdfunc() const
int ts_exactdb_brdfunc__f_byte_size
const Lidort_Linsup_Ss_Surf & surf() const
int ts_rfindex_parameter__f_byte_size
const blitz::Array< double, 3 > & ts_user_brdf_f() const
int * ts_do_profile_linearization_
int bs_n_user_relazms__f_byte_size
void sl_do_solar_sources(const bool &sl_do_solar_sources_in)
const bool ts_do_additional_mvout() const
void lidort_linsup_brdf_c_alloc_init(struct lidort_linsup_brdf *transfer_struct_c, void **fortran_type_c)
const blitz::Array< bool, 1 > bs_do_kernel_factor_wfs() const
const blitz::Array< double, 1 > & ts_deltau_vert_input() const
int * ts_do_solution_saving_
void lidort_fixed_lincontrol_c_init_only(struct lidort_fixed_lincontrol *transfer_struct_c, void **fortran_type_c)
const blitz::Array< double, 3 > & ts_flux_integral() const
void ts_n_sleave_wfs(const int &ts_n_sleave_wfs_in)
void ts_ls_emissivity(const blitz::Array< double, 2 > &ts_ls_emissivity_in)
const blitz::Array< double, 4 > & ts_ls_brdf_f_0() const
void ts_intensity_db(const blitz::Array< double, 2 > &ts_intensity_db_in)
Lidort_Main_Outputs & main()
int ts_nmoments_input__f_byte_size
Lidort_Sup_Sleave(void *allocated_f_type_c)
const bool bs_do_glintshadow() const
int * bs_n_kernel_params_wfs_
const bool bs_do_bsa_scaling() const
const int maxstreams_scaling
int ts_ncheckmessages__f_byte_size
void lidort_linsup_ss_surf_c_init_only(struct lidort_linsup_ss_surf *transfer_struct_c, void **fortran_type_c)
const bool ts_do_user_streams() const
void ts_ls_user_emissivity(const blitz::Array< double, 2 > &ts_ls_user_emissivity_in)
void ts_layer_vary_number(const blitz::Array< int, 1 > &ts_layer_vary_number_in)
~Lidort_Fixed_Linoptical()
const int max_msrs_muquad
const blitz::Array< double, 4 > & ts_flux_columnwf() const
void ts_slterm_isotropic(const blitz::Array< double, 1 > &ts_slterm_isotropic_in)
double * ts_slterm_userangles_
const int & sl_n_user_streams() const
double * bs_user_emissivity_
~Lidort_Modified_Sunrays()
virtual void print(std::ostream &output_stream) const
int ts_user_relazms__f_byte_size
void bs_ls_user_emissivity(const blitz::Array< double, 2 > &bs_ls_user_emissivity_in)
void lidort_modified_chapman_c_alloc_init(struct lidort_modified_chapman *transfer_struct_c, void **fortran_type_c)
void exception_handling_ts_trace_2_get(void **fortran_type_c, const int *ts_trace_2_in_len, const char *ts_trace_2_in)
double * bs_brdf_factors_
const int & bs_nstreams_brdf() const
void brdf_input_exception_handling_c_destroy(void **fortran_type_c)
void ts_do_brdf_surface(const bool &ts_do_brdf_surface_in)
const double omega_smallnum
const blitz::Array< double, 1 > & bs_emissivity() const
int bs_ls_user_brdf_f__f_byte_size
int ts_do_upwelling__f_byte_size
Lidort_Sup_Inout(void *allocated_f_type_c)
Lidort_Fixed_Lincontrol(void *allocated_f_type_c)
const blitz::Array< double, 3 > & ts_user_brdf_f_0() const
void lidort_sup_inout_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const bool bs_do_directbounce_only() const
int bs_do_windspeed_wf__f_byte_size
virtual void print(std::ostream &output_stream) const
virtual void print(std::ostream &output_stream) const
const double & ts_lambertian_albedo() const
void lidort_fixed_chapman_c_alloc_init(struct lidort_fixed_chapman *transfer_struct_c, void **fortran_type_c)
void sl_winddir(const blitz::Array< double, 1 > &sl_winddir_in)
int ts_finegrid__f_byte_size
int * ts_layer_vary_flag_
const blitz::Array< double, 3 > & ts_slterm_userangles() const
const blitz::Array< double, 1 > & bs_user_relazms() const
double * ts_l_omega_total_input_
int * bs_glitter_msrcorr_nphiquad_
void sl_do_glintshadow(const bool &sl_do_glintshadow_in)
virtual void print(std::ostream &output_stream) const
void sl_beam_szas(const blitz::Array< double, 1 > &sl_beam_szas_in)
const int & bs_n_user_relazms() const
void bs_n_user_streams(const int &bs_n_user_streams_in)
int * ts_do_plane_parallel_
void bs_brdf_f_0(const blitz::Array< double, 3 > &bs_brdf_f_0_in)
double * bs_ls_user_emissivity_
const bool bs_do_glitter_msrcorr() const
void sl_do_user_streams(const bool &sl_do_user_streams_in)
int ts_deltau_vert_input__f_byte_size
const bool ts_do_ssfull() const
const int & ts_nmoments_input() const
void lidort_fixed_chapman_c_destroy(void **fortran_type_c)
int ts_nbeams__f_byte_size
const Lidort_Sup_Ss & ss() const
virtual void print(std::ostream &output_stream) const
void ts_do_no_azimuth(const bool &ts_do_no_azimuth_in)
int bs_nstreams__f_byte_size
int ts_do_thermal_transonly__f_byte_size
virtual void print(std::ostream &output_stream) const
int bs_do_user_streams__f_byte_size
const std::vector< std::string > bs_brdf_names() const
const int & ts_taylor_order() const
void sl_nbeams(const int &sl_nbeams_in)
int * bs_do_kernel_factor_wfs_
int bs_user_brdf_f__f_byte_size
int ts_sbbwfs_jacobians__f_byte_size
int * bs_n_user_obsgeoms_
void lidort_modified_sunrays_c_alloc_init(struct lidort_modified_sunrays *transfer_struct_c, void **fortran_type_c)
const double & ts_geometry_specheight() const
int sl_wavelength__f_byte_size
int * ts_do_surface_lbbf_
const int & bs_nbeams() const
double * ts_lssl_user_slterm_f_0_
const int max_taylor_terms
int bs_brdf_f__f_byte_size
const blitz::Array< double, 3 > & bs_user_brdf_f_0() const
const int max_user_relazms
void lidort_fixed_inputs_c_alloc_init(struct lidort_fixed_inputs *transfer_struct_c, void **fortran_type_c)
const bool ts_do_refractive_geometry() const
int ts_inputmessages__f_len
Lidort_Fixed_Linoptical(void *allocated_f_type_c)
const int maxmoments_input
int * ts_n_user_obsgeoms_
int bs_glitter_msrcorr_order__f_byte_size
int ts_sbbwfs_fluxes__f_byte_size
const blitz::Array< double, 2 > & bs_ls_user_emissivity() const
int * ts_do_bvp_telescoping_
void ss(Lidort_Linsup_Ss &ss_in)
const blitz::Array< double, 3 > & ts_exactdb_brdfunc() const
void ts_dnflux_direct(const blitz::Array< double, 2 > &ts_dnflux_direct_in)
int ts_height_grid__f_byte_size
int * ts_do_sl_isotropic_
Lidort_Linsurf(void *allocated_f_type_c)
void lidort_modified_boolean_c_init_only(struct lidort_modified_boolean *transfer_struct_c, void **fortran_type_c)
const blitz::Array< double, 1 > & ts_temperature_grid() const
void atmos(Lidort_Linsup_Ss_Atmos &atmos_in)
int ts_intensity__f_byte_size
int ts_l_omega_total_input__f_byte_size
void sl_n_user_obsgeoms(const int &sl_n_user_obsgeoms_in)
virtual void print(std::ostream &output_stream) const
void bs_n_brdf_parameters(const blitz::Array< int, 1 > &bs_n_brdf_parameters_in)
int ts_dnmean_direct__f_byte_size
int ts_abbwfs_fluxes__f_byte_size
const bool bs_do_newcmglint() const
const blitz::Array< double, 1 > & bs_user_angles_input() const
int * bs_do_kernel_params_wfs_
void bs_do_kparams_derivs(const blitz::Array< bool, 1 > &bs_do_kparams_derivs_in)
void lidort_fixed_uservalues_c_init_only(struct lidort_fixed_uservalues *transfer_struct_c, void **fortran_type_c)
void lidort_linsup_ss_atmos_c_destroy(void **fortran_type_c)
const double & sl_chlorconc() const
void ts_thermal_bb_input(const blitz::Array< double, 1 > &ts_thermal_bb_input_in)
const int & dummy() const
void sl_fl_wavelength(const double &sl_fl_wavelength_in)
const bool bs_do_solar_sources() const
const int & ts_n_user_levels() const
int ts_do_atmos_lbbf__f_byte_size
void copy_from_sup(Brdf_Sup_Outputs &supp_obj)
void sl_user_angles_input(const blitz::Array< double, 1 > &sl_user_angles_input_in)
const int & bs_glitter_msrcorr_order() const
int bs_do_kernel_factor_wfs__f_byte_size
void lidort_fixed_sunrays_c_alloc_init(struct lidort_fixed_sunrays *transfer_struct_c, void **fortran_type_c)
void sl_fl_epoch(const blitz::Array< int, 1 > &sl_fl_epoch_in)
void ts_ncheckmessages(const int &ts_ncheckmessages_in)
int bs_do_brdf_surface__f_byte_size
int bs_do_wsabsa_output__f_byte_size
void exception_handling_ts_message_get(void **fortran_type_c, const int *ts_message_in_len, const char *ts_message_in)
int ts_do_plane_parallel__f_byte_size
void lidort_linoutputs_c_alloc_init(struct lidort_linoutputs *transfer_struct_c, void **fortran_type_c)
void ts_surfacewf(const blitz::Array< double, 4 > &ts_surfacewf_in)
void atmos(Lidort_Linatmos &atmos_in)
double * ts_rfindex_parameter_
double * ts_user_brdf_f_0_
int ts_ls_brdf_f__f_byte_size
void ts_flux_columnwf(const blitz::Array< double, 4 > &ts_flux_columnwf_in)
int sl_fl_wavelength__f_byte_size
int sl_do_foamoption__f_byte_size
int * ts_do_rayleigh_only_
int bs_inputmessages__f_len
const blitz::Array< double, 3 > & bs_brdf_f() const
double * ts_flux_integral_
Lidort_Main_Outputs(void *allocated_f_type_c)
const int & bs_glitter_msrcorr_nphiquad() const
void lidort_modified_uservalues_c_init_only(struct lidort_modified_uservalues *transfer_struct_c, void **fortran_type_c)
int ts_do_sscorr_truncation__f_byte_size
void sl_n_user_streams(const int &sl_n_user_streams_in)
void ts_nlayers(const int &ts_nlayers_in)
const double & bs_wavelength() const
const bool sl_do_glintshadow() const
const Lidort_Linsup_Sleave & sleave() const
int * ts_do_surface_emission_
void ts_intensity_ss(const blitz::Array< double, 3 > &ts_intensity_ss_in)
int ts_user_brdf_f__f_byte_size
void exception_handling_ts_trace_3_get(void **fortran_type_c, const int *ts_trace_3_in_len, const char *ts_trace_3_in)
void ts_height_grid(const blitz::Array< double, 1 > &ts_height_grid_in)
void lidort_linsup_sleave_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< int, 1 > & ts_finegrid() const
double * ts_lambertian_albedo_
const blitz::Array< double, 2 > & bs_user_obsgeoms() const
void lidort_fixed_lininputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int sl_do_exact__f_byte_size
void lidort_modified_control_c_init_only(struct lidort_modified_control *transfer_struct_c, void **fortran_type_c)
int bs_user_relazms__f_byte_size
const bool ts_do_atmos_lbbf() const
int ts_earth_radius__f_byte_size
const int & bs_n_kernel_factor_wfs() const
const double & bs_salinity() const
void brdf_sup_inputs_bs_brdf_names_get(void **fortran_type_c, const int *bs_brdf_names_in_shape_1, const int *bs_brdf_names_in_len, const char *bs_brdf_names_in)
void ts_finegrid(const blitz::Array< int, 1 > &ts_finegrid_in)
void lidort_fixed_chapman_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_n_user_obsgeoms__f_byte_size
int bs_do_surface_emission__f_byte_size
const blitz::Array< double, 1 > & ts_pressure_grid() const
const blitz::Array< double, 3 > & ts_user_slterm_f_0() const
double * ts_abbwfs_jacobians_
const blitz::Array< double, 1 > & ts_omega_total_input() const
double * ts_phasmoms_total_input_
double * bs_dbounce_brdfunc_
const blitz::Array< double, 2 > & ts_lssl_slterm_isotropic() const
virtual void print(std::ostream &output_stream) const
const bool bs_do_brdf_surface() const
int bs_do_facetisotropy__f_byte_size
void lidort_modified_control_c_alloc_init(struct lidort_modified_control *transfer_struct_c, void **fortran_type_c)
void bs_do_wsa_scaling(const bool &bs_do_wsa_scaling_in)
int bs_emissivity__f_byte_size
void ts_do_sscorr_nadir(const bool &ts_do_sscorr_nadir_in)
int ts_ls_user_emissivity__f_byte_size
int * bs_n_kernel_factor_wfs_
int sl_fl_longitude__f_byte_size
void lidort_main_outputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void lidort_linsup_inout_c_destroy(void **fortran_type_c)
~Lidort_Modified_Optical()
const Lidort_Linsup_Ss & ss() const
void lidort_exception_handling_c_alloc_init(struct lidort_exception_handling *transfer_struct_c, void **fortran_type_c)
Sleave_Sup_Inputs(void *allocated_f_type_c)
int ts_solarbeam_boatrans__f_byte_size
void ts_do_fullrad_mode(const bool &ts_do_fullrad_mode_in)
void bs_ls_user_brdf_f(const blitz::Array< double, 4 > &bs_ls_user_brdf_f_in)
int sl_winddir__f_byte_size
int sl_nstreams__f_byte_size
void ts_do_atmos_lbbf(const bool &ts_do_atmos_lbbf_in)
void lidort_input_exception_handling_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void lidort_fixed_linoptical_c_destroy(void **fortran_type_c)
virtual void print(std::ostream &output_stream) const
double * ts_temperature_grid_
Lidort_Fixed_Control(void *allocated_f_type_c)
int sl_fl_inputgaussians__f_byte_size
void exception_handling_ts_trace_1_get(void **fortran_type_c, const int *ts_trace_1_in_len, const char *ts_trace_1_in)
const blitz::Array< int, 1 > & bs_which_brdf() const
const blitz::Array< double, 1 > & sl_beam_szas() const
void msunrays(Lidort_Modified_Sunrays &msunrays_in)
int ts_do_observation_geometry__f_byte_size
Lidort_Fixed_Boolean(void *allocated_f_type_c)
Lidort_Modified_Uservalues()
const blitz::Array< double, 3 > & bs_brdf_f_0() const
void lidort_sup_ss_c_destroy(void **fortran_type_c)
double * ts_surface_bb_input_
void lidort_linsup_ss_surf_c_alloc_init(struct lidort_linsup_ss_surf *transfer_struct_c, void **fortran_type_c)
int sl_user_relazms__f_byte_size
void bs_do_user_obsgeoms(const bool &bs_do_user_obsgeoms_in)
void optical(Lidort_Fixed_Optical &optical_in)
const double & sl_wavelength() const
int * ts_do_chapman_function_
Lidort_Modified_Sunrays(void *allocated_f_type_c)
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Lidort_Fixed_Optical(void *allocated_f_type_c)
const double & bs_windspeed() const
const blitz::Array< double, 1 > & bs_user_emissivity() const
void sl_do_exactonly(const bool &sl_do_exactonly_in)
int bs_do_shadow_effect__f_byte_size
const bool sl_do_exact() const
const blitz::Array< double, 3 > & ts_brdf_f() const
const int & bs_n_user_streams() const
void bs_winddir(const blitz::Array< double, 1 > &bs_winddir_in)
int bs_user_angles_input__f_byte_size
~Lidort_Linsup_Ss_Atmos()
int bs_ls_brdf_f__f_byte_size
virtual void print(std::ostream &output_stream) const
const bool bs_do_surface_emission() const
void sl_fl_inputgaussians(const blitz::Array< double, 2 > &sl_fl_inputgaussians_in)
const int max_brdf_kernels
double * bs_user_obsgeoms_
void sl_nstreams(const int &sl_nstreams_in)
int bs_wsa_calculated__f_byte_size
int sl_do_user_obsgeoms__f_byte_size
void ts_phasmoms_total_input(const blitz::Array< double, 2 > &ts_phasmoms_total_input_in)
~Lidort_Input_Exception_Handling()
const double & sl_salinity() const
int ts_profilewf__f_byte_size
virtual void print(std::ostream &output_stream) const
const blitz::Array< double, 4 > & ts_abbwfs_jacobians() const
const bool bs_do_foamoption() const
void ts_status_calculation(const int &ts_status_calculation_in)
const double & bs_wsa_calculated() const
int ts_n_sleave_wfs__f_byte_size
int bs_do_wsavalue_wf__f_byte_size
void ts_user_relazms(const blitz::Array< double, 1 > &ts_user_relazms_in)
int ts_mint_profilewf__f_byte_size
const blitz::Array< double, 5 > & ts_mint_profilewf() const
~Lidort_Modified_Uservalues()
const blitz::Array< double, 1 > & ts_slterm_isotropic() const
void bs_nstreams_brdf(const int &bs_nstreams_brdf_in)
Brdf_Output_Exception_Handling(void *allocated_f_type_c)
int * ts_do_surface_linearization_
Lidort_Modified_Lininputs(void *allocated_f_type_c)
void lidort_linsup_ss_surf_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void lidort_linsup_ss_atmos_c_init_only(struct lidort_linsup_ss_atmos *transfer_struct_c, void **fortran_type_c)
void brdf_output_exception_handling_c_init_only(struct brdf_output_exception_handling *transfer_struct_c, void **fortran_type_c)
void sl_do_exact(const bool &sl_do_exact_in)
void bs_wsa_calculated(const double &bs_wsa_calculated_in)
Lidort_Linatmos(void *allocated_f_type_c)
const bool bs_do_user_obsgeoms() const
void bs_user_brdf_f(const blitz::Array< double, 3 > &bs_user_brdf_f_in)
void lidort_linsup_brdf_c_destroy(void **fortran_type_c)
void lidort_main_outputs_c_init_only(struct lidort_main_outputs *transfer_struct_c, void **fortran_type_c)
const bool bs_do_glitter_msrcorr_dbonly() const
~Lidort_Modified_Boolean()
const blitz::Array< bool, 2 > bs_do_kernel_params_wfs() const
void ts_profilewf(const blitz::Array< double, 5 > &ts_profilewf_in)
void lidort_sup_ss_c_alloc_init(struct lidort_sup_ss *transfer_struct_c, void **fortran_type_c)
int ts_do_brdf_surface__f_byte_size
double * ts_mean_intensity_
const int & ts_n_user_obsgeoms() const
void ss(Lidort_Sup_Ss &ss_in)
void lidort_modified_control_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const double & ts_earth_radius() const
int ts_status_inputcheck__f_byte_size
~Lidort_Exception_Handling()
const blitz::Array< double, 2 > & ts_intensity_db() const
Brdf_Output_Exception_Handling()
const Lidort_Fixed_Chapman & chapman() const
void f_bool(Lidort_Fixed_Boolean &bool_in)
int ts_l_phasmoms_total_input__f_byte_size
int * ts_do_brdf_surface_
int ts_columnwf__f_byte_size
Brdf_Input_Exception_Handling()
void lidort_fixed_optical_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void ts_do_double_convtest(const bool &ts_do_double_convtest_in)
void ts_do_column_linearization(const bool &ts_do_column_linearization_in)
void bs_wsa_kernels(const blitz::Array< double, 1 > &bs_wsa_kernels_in)
void ts_do_sl_isotropic(const bool &ts_do_sl_isotropic_in)
const double & bs_bsa_value() const
void lidort_fixed_control_c_alloc_init(struct lidort_fixed_control *transfer_struct_c, void **fortran_type_c)
void lidort_linsup_sleave_c_init_only(struct lidort_linsup_sleave *transfer_struct_c, void **fortran_type_c)
virtual void print(std::ostream &output_stream) const
int msunrays__f_byte_size
int bs_winddir__f_byte_size
Lidort_Exception_Handling & status()
int * ts_layer_vary_number_
const blitz::Array< double, 1 > & sl_user_angles_input() const
double * ts_sbbwfs_jacobians_
int * sl_n_user_obsgeoms_
void lidort_fixed_boolean_c_destroy(void **fortran_type_c)
void chapman(Lidort_Fixed_Chapman &chapman_in)
void bs_do_wsabsa_output(const bool &bs_do_wsabsa_output_in)
void sl_fl_amplitude755(const double &sl_fl_amplitude755_in)
int * bs_status_inputread_
int ts_lssl_user_slterm_f_0__f_byte_size
int ts_omega_total_input__f_byte_size
int * ts_do_sscorr_truncation_
double * ts_geometry_specheight_
void lidort_fixed_inputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< double, 3 > & bs_dbounce_brdfunc() const
const Lidort_Modified_Chapman & mchapman() const
void lidort_fixed_optical_c_init_only(struct lidort_fixed_optical *transfer_struct_c, void **fortran_type_c)
const blitz::Array< double, 1 > & sl_user_relazms() const
void ts_l_phasmoms_total_input(const blitz::Array< double, 3 > &ts_l_phasmoms_total_input_in)
void bs_n_user_obsgeoms(const int &bs_n_user_obsgeoms_in)
int ts_do_bvp_telescoping__f_byte_size
const bool ts_do_mvout_only() const
void lidort_fixed_boolean_c_alloc_init(struct lidort_fixed_boolean *transfer_struct_c, void **fortran_type_c)
int ts_do_sscorr_outgoing__f_byte_size
void ts_flux_profilewf(const blitz::Array< double, 5 > &ts_flux_profilewf_in)
void sleave_sup_inputs_c_alloc_init(struct sleave_sup_inputs *transfer_struct_c, void **fortran_type_c)
int bs_do_bsavalue_wf__f_byte_size
Lidort_Modified_Chapman(void *allocated_f_type_c)
int bs_nbeams__f_byte_size
void bs_n_user_relazms(const int &bs_n_user_relazms_in)
double * ts_intensity_db_
virtual void print(std::ostream &output_stream) const
void ts_do_thermal_emission(const bool &ts_do_thermal_emission_in)
double * ts_ls_user_brdf_f_
int bs_status_output__f_byte_size
int ts_abbwfs_jacobians__f_byte_size
double * bs_user_brdf_f_0_
void ts_do_solution_saving(const bool &ts_do_solution_saving_in)
void ts_brdf_f_0(const blitz::Array< double, 3 > &ts_brdf_f_0_in)
const int & bs_nstreams() const
const bool ts_do_ss_external() const
int ts_n_user_relazms__f_byte_size
void bs_do_kernel_factor_wfs(const blitz::Array< bool, 1 > &bs_do_kernel_factor_wfs_in)
void lidort_fixed_sunrays_c_init_only(struct lidort_fixed_sunrays *transfer_struct_c, void **fortran_type_c)
void lidort_fixed_linoptical_c_init_only(struct lidort_fixed_linoptical *transfer_struct_c, void **fortran_type_c)
int * ts_do_refractive_geometry_
void ts_do_thermal_transonly(const bool &ts_do_thermal_transonly_in)
int sl_fl_epoch__f_byte_size
const bool ts_do_thermal_transonly() const
Lidort_Fixed_Optical & optical()
void ts_do_dnwelling(const bool &ts_do_dnwelling_in)
void sl_n_user_relazms(const int &sl_n_user_relazms_in)
int * bs_do_brdf_surface_
const bool sl_do_exactonly() const
Lidort_Sup_Sleave & sleave()
int sl_user_angles_input__f_byte_size
void brdf_linsup_inputs_c_destroy(void **fortran_type_c)
int ts_temperature_grid__f_byte_size
void brdf_linsup_outputs_c_alloc_init(struct brdf_linsup_outputs *transfer_struct_c, void **fortran_type_c)
void bs_wsa_value(const double &bs_wsa_value_in)
void bs_do_user_streams(const bool &bs_do_user_streams_in)
const bool bs_do_wsa_scaling() const
const bool bs_do_bsavalue_wf() const
void ts_l_deltau_vert_input(const blitz::Array< double, 2 > &ts_l_deltau_vert_input_in)
void ts_do_sscorr_truncation(const bool &ts_do_sscorr_truncation_in)
virtual void print(std::ostream &output_stream) const
double * bs_ls_emissivity_
const bool ts_do_rayleigh_only() const
void lidort_fixed_control_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
virtual void print(std::ostream &output_stream) const
~Lidort_Fixed_Uservalues()
void sl_wavelength(const double &sl_wavelength_in)
int bs_do_kparams_derivs__f_byte_size
void brdf_output_exception_handling_bs_outputmessages_get(void **fortran_type_c, const int *bs_outputmessages_in_shape_1, const int *bs_outputmessages_in_len, const char *bs_outputmessages_in)
void ts_n_user_levels(const int &ts_n_user_levels_in)
int * sl_do_user_streams_
void sl_user_obsgeoms(const blitz::Array< double, 2 > &sl_user_obsgeoms_in)
void ts_ninputmessages(const int &ts_ninputmessages_in)
int bs_do_glitter_msrcorr_dbonly__f_byte_size
const bool sl_do_user_streams() const
void ts_brdf_f(const blitz::Array< double, 3 > &ts_brdf_f_in)
double * ts_thermal_cutoff_
void bs_user_angles_input(const blitz::Array< double, 1 > &bs_user_angles_input_in)
void bs_do_directbounce_only(const bool &bs_do_directbounce_only_in)
const std::vector< std::string > ts_inputactions() const
void bs_brdf_parameters(const blitz::Array< double, 2 > &bs_brdf_parameters_in)
Lidort_Modified_Optical()
double * ts_profilewf_ss_
virtual void print(std::ostream &output_stream) const
virtual void print(std::ostream &output_stream) const
void lidort_modified_boolean_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
void sl_do_user_obsgeoms(const bool &sl_do_user_obsgeoms_in)
friend std::ostream & operator<<(std::ostream &output_stream, const Lidort_Pars &obj)
void muserval(Lidort_Modified_Uservalues &muserval_in)
const Lidort_Fixed_Linoptical & optical() const
const blitz::Array< double, 3 > & ts_intensity() const
const int & ts_nstreams() const
const int & ts_nlayers() const
int sl_beam_szas__f_byte_size
int bs_do_solar_sources__f_byte_size
Lidort_Modified_Control(void *allocated_f_type_c)
Lidort_Modified_Optical & moptical()
Lidort_Fixed_Uservalues()
void ts_do_ssfull(const bool &ts_do_ssfull_in)
void copy_from_sup(Brdf_Linsup_Outputs &supp_obj)
const bool ts_do_dnwelling() const
int ts_do_solar_sources__f_byte_size
int ts_l_deltau_vert_input__f_byte_size
void lidort_modified_chapman_c_destroy(void **fortran_type_c)
void lidort_sup_brdf_c_destroy(void **fortran_type_c)
void bs_user_brdf_f_0(const blitz::Array< double, 3 > &bs_user_brdf_f_0_in)
void sl_do_isotropic(const bool &sl_do_isotropic_in)
int sl_do_facetisotropy__f_byte_size
void ts_do_sscorr_outgoing(const bool &ts_do_sscorr_outgoing_in)
double * bs_ls_user_brdf_f_
void lidort_fixed_uservalues_c_alloc_init(struct lidort_fixed_uservalues *transfer_struct_c, void **fortran_type_c)
void bs_bsa_calculated(const double &bs_bsa_calculated_in)
int ts_n_thermal_coeffs__f_byte_size
virtual void print(std::ostream &output_stream) const
~Lidort_Modified_Control()
void brdf_linsup_outputs_c_init_only(struct brdf_linsup_outputs *transfer_struct_c, void **fortran_type_c)
const std::vector< std::string > bs_outputmessages() const
void brdf(Lidort_Linsup_Brdf &brdf_in)
const blitz::Array< double, 2 > & ts_dnflux_direct() const
int * bs_n_brdf_parameters_
const blitz::Array< double, 2 > & ts_phasmoms_total_input() const
void status(Lidort_Exception_Handling &status_in)
int ts_thermal_cutoff__f_byte_size
void sl_do_fluorescence(const bool &sl_do_fluorescence_in)
void mbool(Lidort_Modified_Boolean &mbool_in)
void lidort_linoutputs_c_init_only(struct lidort_linoutputs *transfer_struct_c, void **fortran_type_c)
void bs_do_solar_sources(const bool &bs_do_solar_sources_in)
double * bs_ls_user_brdf_f_0_
void ts_exactdb_brdfunc(const blitz::Array< double, 3 > &ts_exactdb_brdfunc_in)
void lidort_modified_inputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const std::string ts_trace_3() const
void lidort_sup_inout_c_init_only(struct lidort_sup_inout *transfer_struct_c, void **fortran_type_c)
int mchapman__f_byte_size
void ts_dnmean_direct(const blitz::Array< double, 2 > &ts_dnmean_direct_in)
void ts_flux_factor(const double &ts_flux_factor_in)
int ts_profilewf_db__f_byte_size
virtual void print(std::ostream &output_stream) const
virtual void print(std::ostream &output_stream) const
int * ts_do_solar_sources_
void lidort_linoutputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< double, 1 > & ts_user_relazms() const
double * ts_user_obsgeom_input_
int * bs_glitter_msrcorr_order_
Lidort_Linsup_Brdf & brdf()
const bool sl_do_foamoption() const
void brdf_linsup_outputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
int ts_geometry_specheight__f_byte_size
void cont(Lidort_Fixed_Lincontrol &cont_in)
int * bs_do_solar_sources_
const int max_user_obsgeoms
double * ts_user_relazms_
const Lidort_Modified_Uservalues & muserval() const
double * ts_thermal_bb_input_
const int max_msrs_phiquad
Lidort_Modified_Boolean()
int ts_mean_intensity__f_byte_size
int sl_n_user_obsgeoms__f_byte_size
const blitz::Array< double, 2 > & ts_ls_user_emissivity() const
void ts_do_rayleigh_only(const bool &ts_do_rayleigh_only_in)
Lidort_Fixed_Linoptical()
void lidort_modified_lininputs_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const blitz::Array< double, 1 > & ts_thermal_bb_input() const
int ts_mint_columnwf__f_byte_size
Lidort_Fixed_Control & cont()
void lidort_modified_sunrays_c_init_only(struct lidort_modified_sunrays *transfer_struct_c, void **fortran_type_c)
const double max_tau_qpath
void brdf_linsup_outputs_c_destroy(void **fortran_type_c)
void ts_fourier_saved(const blitz::Array< int, 1 > &ts_fourier_saved_in)
void brdf_output_exception_handling_c_copy(void **fortran_type_c_from, void **fortran_type_c_to)
const double max_tau_spath
const int maxstreams_brdf
int bs_glitter_msrcorr_nmuquad__f_byte_size
void lidort_sup_brdf_c_init_only(struct lidort_sup_brdf *transfer_struct_c, void **fortran_type_c)
void lidort_linsup_inout_c_alloc_init(struct lidort_linsup_inout *transfer_struct_c, void **fortran_type_c)
const int & bs_n_user_obsgeoms() const