1 #ifndef TWOSTREAM_INTERFACE_H     2 #define TWOSTREAM_INTERFACE_H     5 #include <blitz/array.h>    20   void twostream_ls_brdf_supplement_m_twostream_ls_brdfmaster_wrap(
const int* maxbeams_in, 
const int* max_user_streams_in, 
const int* max_user_obsgeoms_in, 
const int* maxstreams_brdf_in, 
const int* max_brdf_kernels_in, 
const int* max_brdf_parameters_in, 
const int* max_surfacewfs_in, 
const bool* do_solar_sources_in, 
const bool* do_user_obsgeoms_in, 
const bool* lambertian_kernel_flag_in, 
const bool* do_shadow_effect_in, 
const bool* do_surface_emission_in, 
const int* nbeams_in, 
const int* n_user_streams_in, 
const int* n_user_obsgeoms_in, 
const double* beam_szas_in, 
const double* user_angles_in, 
const double* user_obsgeoms_in, 
const double* stream_value_in, 
const int* nstreams_brdf_in, 
const int* n_brdf_kernels_in, 
const int* which_brdf_in, 
const double* brdf_factors_in, 
const int* n_brdf_parameters_in, 
const double* brdf_parameters_in, 
const bool* do_kernel_factor_wfs_in, 
const bool* do_kernel_params_wfs_in, 
const bool* do_kparams_derivs_in, 
const int* n_surface_wfs_in, 
const int* n_kernel_factor_wfs_in, 
const int* n_kernel_params_wfs_in, 
const double* brdf_f_0_in, 
const double* brdf_f_in, 
const double* ubrdf_f_in, 
const double* emissivity_in, 
const double* ls_brdf_f_0_in, 
const double* ls_brdf_f_in, 
const double* ls_ubrdf_f_in, 
const double* ls_emissivity_in, 
const int* status_brdfsup_in, 
const int* message_len, 
const char* message_in, 
const int* action_len, 
const char* action_in);
    26   Twostream_Ls_Brdf_Supplement(
const int& maxbeams_in, 
const int& max_user_streams_in, 
const int& max_user_obsgeoms_in, 
const int& maxstreams_brdf_in, 
const int& max_brdf_kernels_in, 
const int& max_brdf_parameters_in, 
const int& max_surfacewfs_in, 
const int& nbeams_in, 
const int& n_user_streams_in, 
const int& nstreams_brdf_in) : maxbeams_(maxbeams_in), max_user_streams_(max_user_streams_in), max_user_obsgeoms_(max_user_obsgeoms_in), maxstreams_brdf_(maxstreams_brdf_in), max_brdf_kernels_(max_brdf_kernels_in), max_brdf_parameters_(max_brdf_parameters_in), max_surfacewfs_(max_surfacewfs_in), nbeams_(nbeams_in), n_user_streams_(n_user_streams_in), nstreams_brdf_(nstreams_brdf_in) 
    28     do_solar_sources_ = 
false;
    29     do_user_obsgeoms_ = 
false;
    30     lambertian_kernel_flag_.reference( blitz::Array<bool, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
    31     lambertian_kernel_flag_ = 
false;
    32     do_shadow_effect_ = 
false;
    33     do_surface_emission_ = 
false;
    35     beam_szas_.reference( blitz::Array<double, 1>(maxbeams_, blitz::ColumnMajorArray<1>()) );
    37     user_angles_.reference( blitz::Array<double, 1>(max_user_streams_, blitz::ColumnMajorArray<1>()) );
    39     user_obsgeoms_.reference( blitz::Array<double, 2>(max_user_obsgeoms_, 3, blitz::ColumnMajorArray<2>()) );
    43     which_brdf_.reference( blitz::Array<int, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
    45     brdf_factors_.reference( blitz::Array<double, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
    47     n_brdf_parameters_.reference( blitz::Array<int, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
    48     n_brdf_parameters_ = 0;
    49     brdf_parameters_.reference( blitz::Array<double, 2>(max_brdf_kernels_, max_brdf_parameters_, blitz::ColumnMajorArray<2>()) );
    51     do_kernel_factor_wfs_.reference( blitz::Array<bool, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
    52     do_kernel_factor_wfs_ = 
false;
    53     do_kernel_params_wfs_.reference( blitz::Array<bool, 2>(max_brdf_kernels_, max_brdf_parameters_, blitz::ColumnMajorArray<2>()) );
    54     do_kernel_params_wfs_ = 
false;
    55     do_kparams_derivs_.reference( blitz::Array<bool, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
    56     do_kparams_derivs_ = 
false;
    58     n_kernel_factor_wfs_ = 0;
    59     n_kernel_params_wfs_ = 0;
    60     brdf_f_0_.reference( blitz::Array<double, 2>(1-0+1, maxbeams_, blitz::ColumnMajorArray<2>()) );
    62     brdf_f_.reference( blitz::Array<double, 1>(1-0+1, blitz::ColumnMajorArray<1>()) );
    64     ubrdf_f_.reference( blitz::Array<double, 2>(1-0+1, max_user_streams_, blitz::ColumnMajorArray<2>()) );
    67     ls_brdf_f_0_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, maxbeams_, blitz::ColumnMajorArray<3>()) );
    69     ls_brdf_f_.reference( blitz::Array<double, 2>(max_surfacewfs_, 1-0+1, blitz::ColumnMajorArray<2>()) );
    71     ls_ubrdf_f_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, max_user_streams_, blitz::ColumnMajorArray<3>()) );
    73     ls_emissivity_.reference( blitz::Array<double, 1>(max_surfacewfs_, blitz::ColumnMajorArray<1>()) );
    76     message_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
    78     action_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
    91     return max_user_streams_;
    97     return max_user_obsgeoms_;
   103     return maxstreams_brdf_;
   109     return max_brdf_kernels_;
   115     return max_brdf_parameters_;
   121     return max_surfacewfs_;
   127     return do_solar_sources_;
   131     do_solar_sources_ = do_solar_sources_in;
   137     return do_user_obsgeoms_;
   141     do_user_obsgeoms_ = do_user_obsgeoms_in;
   147     return lambertian_kernel_flag_;
   151     lambertian_kernel_flag_ = lambertian_kernel_flag_in;
   157     return do_shadow_effect_;
   161     do_shadow_effect_ = do_shadow_effect_in;
   167     return do_surface_emission_;
   171     do_surface_emission_ = do_surface_emission_in;
   183     return n_user_streams_;
   189     return n_user_obsgeoms_;
   193     n_user_obsgeoms_ = n_user_obsgeoms_in;
   202   void beam_szas(
const blitz::Array<double, 1>& beam_szas_in) {
   203     beam_szas_ = beam_szas_in;
   213     user_angles_ = user_angles_in;
   219     return user_obsgeoms_;
   223     user_obsgeoms_ = user_obsgeoms_in;
   229     return stream_value_;
   233     stream_value_ = stream_value_in;
   239     return nstreams_brdf_;
   245     return n_brdf_kernels_;
   249     n_brdf_kernels_ = n_brdf_kernels_in;
   259     which_brdf_ = which_brdf_in;
   265     return brdf_factors_;
   269     brdf_factors_ = brdf_factors_in;
   275     return n_brdf_parameters_;
   279     n_brdf_parameters_ = n_brdf_parameters_in;
   285     return brdf_parameters_;
   289     brdf_parameters_ = brdf_parameters_in;
   295     return do_kernel_factor_wfs_;
   299     do_kernel_factor_wfs_ = do_kernel_factor_wfs_in;
   305     return do_kernel_params_wfs_;
   309     do_kernel_params_wfs_ = do_kernel_params_wfs_in;
   315     return do_kparams_derivs_;
   321     return n_surface_wfs_;
   327     return n_kernel_factor_wfs_;
   333     return n_kernel_params_wfs_;
   344   const blitz::Array<double, 1>& 
brdf_f()
 const {
   350   const blitz::Array<double, 2>& 
ubrdf_f()
 const {
   381     return ls_emissivity_;
   387     return status_brdfsup_;
   393     std::string message_ret;
   394     message_ret = ( std::string(std::string(message_(blitz::Range::all()).begin(), message_(blitz::Range::all()).end()).c_str()) );
   401     std::string action_ret;
   402     action_ret = ( std::string(std::string(action_(blitz::Range::all()).begin(), action_(blitz::Range::all()).end()).c_str()) );
   410     int message_len = (int) message_.extent(0) - 1;
   411     int action_len = (int) action_.extent(0) - 1;
   413     twostream_ls_brdf_supplement_m_twostream_ls_brdfmaster_wrap(&maxbeams_, &max_user_streams_, &max_user_obsgeoms_, &maxstreams_brdf_, &max_brdf_kernels_, &max_brdf_parameters_, &max_surfacewfs_, &do_solar_sources_, &do_user_obsgeoms_, lambertian_kernel_flag_.dataFirst(), &do_shadow_effect_, &do_surface_emission_, &nbeams_, &n_user_streams_, &n_user_obsgeoms_, beam_szas_.dataFirst(), user_angles_.dataFirst(), user_obsgeoms_.dataFirst(), &stream_value_, &nstreams_brdf_, &n_brdf_kernels_, which_brdf_.dataFirst(), brdf_factors_.dataFirst(), n_brdf_parameters_.dataFirst(), brdf_parameters_.dataFirst(), do_kernel_factor_wfs_.dataFirst(), do_kernel_params_wfs_.dataFirst(), do_kparams_derivs_.dataFirst(), &n_surface_wfs_, &n_kernel_factor_wfs_, &n_kernel_params_wfs_, brdf_f_0_.dataFirst(), brdf_f_.dataFirst(), ubrdf_f_.dataFirst(), &emissivity_, ls_brdf_f_0_.dataFirst(), ls_brdf_f_.dataFirst(), ls_ubrdf_f_.dataFirst(), ls_emissivity_.dataFirst(), &status_brdfsup_, &message_len, message_.dataFirst(), &action_len, action_.dataFirst());
   418     output_stream << 
"Twostream_Ls_Brdf_Supplement:" << std::endl
   419       << 
"              maxbeams: " << obj.
maxbeams()  << std::endl
   431       << 
"                nbeams: " << obj.
nbeams()  << std::endl
   434       << 
"             beam_szas: " << std::endl << obj.
beam_szas()  << std::endl
   435       << 
"           user_angles: " << std::endl << obj.
user_angles()  << std::endl
   436       << 
"         user_obsgeoms: " << std::endl << obj.
user_obsgeoms()  << std::endl
   440       << 
"            which_brdf: " << std::endl << obj.
which_brdf()  << std::endl
   441       << 
"          brdf_factors: " << std::endl << obj.
brdf_factors()  << std::endl
   443       << 
"       brdf_parameters: " << std::endl << obj.
brdf_parameters()  << std::endl
   450       << 
"              brdf_f_0: " << std::endl << obj.
brdf_f_0()  << std::endl
   451       << 
"                brdf_f: " << std::endl << obj.
brdf_f()  << std::endl
   452       << 
"               ubrdf_f: " << std::endl << obj.
ubrdf_f()  << std::endl
   453       << 
"            emissivity: " << obj.
emissivity()  << std::endl
   454       << 
"           ls_brdf_f_0: " << std::endl << obj.
ls_brdf_f_0()  << std::endl
   455       << 
"             ls_brdf_f: " << std::endl << obj.
ls_brdf_f()  << std::endl
   456       << 
"            ls_ubrdf_f: " << std::endl << obj.
ls_ubrdf_f()  << std::endl
   457       << 
"         ls_emissivity: " << std::endl << obj.
ls_emissivity()  << std::endl
   459       << 
"               message: " << 
"\"" << obj.
message() << 
"\"" << std::endl
   460       << 
"                action: " << 
"\"" << obj.
action() << 
"\"" << std::endl;
   461     return output_stream;
   467   int max_user_streams_;
   468   int max_user_obsgeoms_;
   469   int maxstreams_brdf_;
   470   int max_brdf_kernels_;
   471   int max_brdf_parameters_;
   473   bool do_solar_sources_;
   474   bool do_user_obsgeoms_;
   475   blitz::Array<bool, 1> lambertian_kernel_flag_;
   476   bool do_shadow_effect_;
   477   bool do_surface_emission_;
   480   int n_user_obsgeoms_;
   481   blitz::Array<double, 1> beam_szas_;
   482   blitz::Array<double, 1> user_angles_;
   483   blitz::Array<double, 2> user_obsgeoms_;
   484   double stream_value_;
   487   blitz::Array<int, 1> which_brdf_;
   488   blitz::Array<double, 1> brdf_factors_;
   489   blitz::Array<int, 1> n_brdf_parameters_;
   490   blitz::Array<double, 2> brdf_parameters_;
   491   blitz::Array<bool, 1> do_kernel_factor_wfs_;
   492   blitz::Array<bool, 2> do_kernel_params_wfs_;
   493   blitz::Array<bool, 1> do_kparams_derivs_;
   495   int n_kernel_factor_wfs_;
   496   int n_kernel_params_wfs_;
   497   blitz::Array<double, 2> brdf_f_0_;
   498   blitz::Array<double, 1> brdf_f_;
   499   blitz::Array<double, 2> ubrdf_f_;
   501   blitz::Array<double, 3> ls_brdf_f_0_;
   502   blitz::Array<double, 2> ls_brdf_f_;
   503   blitz::Array<double, 3> ls_ubrdf_f_;
   504   blitz::Array<double, 1> ls_emissivity_;
   506   blitz::Array<char, 1> message_;
   507   blitz::Array<char, 1> action_;
   516   void twostream_lps_master_m_twostream_lps_master_wrap(
const int* maxlayers_in, 
const int* maxtotal_in, 
const int* maxmessages_in, 
const int* maxbeams_in, 
const int* max_geometries_in, 
const int* max_user_streams_in, 
const int* max_user_relazms_in, 
const int* max_user_obsgeoms_in, 
const int* max_atmoswfs_in, 
const int* max_surfacewfs_in, 
const int* max_sleavewfs_in, 
const bool* do_upwelling_in, 
const bool* do_dnwelling_in, 
const bool* do_plane_parallel_in, 
const bool* do_2s_levelout_in, 
const bool* do_mvout_only_in, 
const bool* do_additional_mvout_in, 
const bool* do_solar_sources_in, 
const bool* do_thermal_emission_in, 
const bool* do_surface_emission_in, 
const bool* do_d2s_scaling_in, 
const bool* do_brdf_surface_in, 
const bool* do_user_obsgeoms_in, 
const bool* do_surface_leaving_in, 
const bool* do_sl_isotropic_in, 
const bool* do_pentadiag_inverse_in, 
const int* bvpindex_in, 
const double* bvpscalefactor_in, 
const int* taylor_order_in, 
const double* taylor_small_in, 
const double* tcutoff_in, 
const int* nlayers_in, 
const int* ntotal_in, 
const double* stream_value_in, 
const int* n_user_obsgeoms_in, 
const double* user_obsgeoms_in, 
const int* n_user_streams_in, 
const double* user_angles_in, 
const int* n_user_relazms_in, 
const double* user_relazms_in, 
const double* flux_factor_in, 
const int* nbeams_in, 
const double* beam_szas_in, 
const double* earth_radius_in, 
const double* height_grid_in, 
const double* deltau_input_in, 
const double* omega_input_in, 
const double* asymm_input_in, 
const double* d2s_scaling_in, 
const double* thermal_bb_input_in, 
const double* lambertian_albedo_in, 
const double* brdf_f_0_in, 
const double* brdf_f_in, 
const double* ubrdf_f_in, 
const double* emissivity_in, 
const double* surfbb_in, 
const double* slterm_isotropic_in, 
const double* slterm_f_0_in, 
const bool* do_profile_wfs_in, 
const bool* do_surface_wfs_in, 
const bool* do_sleave_wfs_in, 
const bool* layer_vary_flag_in, 
const int* layer_vary_number_in, 
const int* n_surface_wfs_in, 
const int* n_sleave_wfs_in, 
const double* lssl_slterm_isotropic_in, 
const double* lssl_slterm_f_0_in, 
const double* l_deltau_input_in, 
const double* l_omega_input_in, 
const double* l_asymm_input_in, 
const double* l_d2s_scaling_in, 
const double* ls_brdf_f_0_in, 
const double* ls_brdf_f_in, 
const double* ls_ubrdf_f_in, 
const double* ls_emissivity_in, 
const double* intensity_toa_in, 
const double* profilewf_toa_in, 
const double* surfacewf_toa_in, 
const double* intensity_boa_in, 
const double* profilewf_boa_in, 
const double* surfacewf_boa_in, 
const double* radlevel_up_in, 
const double* radlevel_dn_in, 
const int* n_geometries_in, 
const double* profjaclevel_up_in, 
const double* profjaclevel_dn_in, 
const double* surfjaclevel_up_in, 
const double* surfjaclevel_dn_in, 
const double* fluxes_toa_in, 
const double* profjacfluxes_toa_in, 
const double* surfjacfluxes_toa_in, 
const double* fluxes_boa_in, 
const double* profjacfluxes_boa_in, 
const double* surfjacfluxes_boa_in, 
const int* status_inputcheck_in, 
const int* c_nmessages_in, 
const int* c_messages_shape_1, 
const int* c_messages_len, 
const char* c_messages_in, 
const int* c_actions_shape_1, 
const int* c_actions_len, 
const char* c_actions_in, 
const int* status_execution_in, 
const int* e_message_len, 
const char* e_message_in, 
const int* e_trace_1_len, 
const char* e_trace_1_in, 
const int* e_trace_2_len, 
const char* e_trace_2_in);
   522   Twostream_Lps_Master(
const int& maxlayers_in, 
const int& maxtotal_in, 
const int& maxmessages_in, 
const int& maxbeams_in, 
const int& max_geometries_in, 
const int& max_user_streams_in, 
const int& max_user_relazms_in, 
const int& max_user_obsgeoms_in, 
const int& max_atmoswfs_in, 
const int& max_surfacewfs_in, 
const int& max_sleavewfs_in, 
const int& nlayers_in, 
const int& ntotal_in, 
const int& n_user_streams_in, 
const int& n_user_relazms_in, 
const int& nbeams_in, 
const double& earth_radius_in, 
const int& n_geometries_in) : maxlayers_(maxlayers_in), maxtotal_(maxtotal_in), maxmessages_(maxmessages_in), maxbeams_(maxbeams_in), max_geometries_(max_geometries_in), max_user_streams_(max_user_streams_in), max_user_relazms_(max_user_relazms_in), max_user_obsgeoms_(max_user_obsgeoms_in), max_atmoswfs_(max_atmoswfs_in), max_surfacewfs_(max_surfacewfs_in), max_sleavewfs_(max_sleavewfs_in), nlayers_(nlayers_in), ntotal_(ntotal_in), n_user_streams_(n_user_streams_in), n_user_relazms_(n_user_relazms_in), nbeams_(nbeams_in), earth_radius_(earth_radius_in), n_geometries_(n_geometries_in) 
   524     do_upwelling_ = 
false;
   525     do_dnwelling_ = 
false;
   526     do_plane_parallel_ = 
false;
   527     do_2s_levelout_ = 
false;
   528     do_mvout_only_ = 
false;
   529     do_additional_mvout_ = 
false;
   530     do_solar_sources_ = 
false;
   531     do_thermal_emission_ = 
false;
   532     do_surface_emission_ = 
false;
   533     do_d2s_scaling_ = 
false;
   534     do_brdf_surface_ = 
false;
   535     do_user_obsgeoms_ = 
false;
   536     do_surface_leaving_ = 
false;
   537     do_sl_isotropic_ = 
false;
   538     do_pentadiag_inverse_ = 
false;
   545     n_user_obsgeoms_ = 0;
   546     user_obsgeoms_.reference( blitz::Array<double, 2>(max_user_obsgeoms_, 3, blitz::ColumnMajorArray<2>()) );
   548     user_angles_.reference( blitz::Array<double, 1>(max_user_streams_, blitz::ColumnMajorArray<1>()) );
   550     user_relazms_.reference( blitz::Array<double, 1>(max_user_relazms_, blitz::ColumnMajorArray<1>()) );
   553     beam_szas_.reference( blitz::Array<double, 1>(maxbeams_, blitz::ColumnMajorArray<1>()) );
   555     height_grid_.reference( blitz::Array<double, 1>(maxlayers_-0+1, blitz::ColumnMajorArray<1>()) );
   557     deltau_input_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
   559     omega_input_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
   561     asymm_input_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
   563     d2s_scaling_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
   565     thermal_bb_input_.reference( blitz::Array<double, 1>(maxlayers_-0+1, blitz::ColumnMajorArray<1>()) );
   566     thermal_bb_input_ = 0;
   567     lambertian_albedo_ = 0;
   568     brdf_f_0_.reference( blitz::Array<double, 2>(1-0+1, maxbeams_, blitz::ColumnMajorArray<2>()) );
   570     brdf_f_.reference( blitz::Array<double, 1>(1-0+1, blitz::ColumnMajorArray<1>()) );
   572     ubrdf_f_.reference( blitz::Array<double, 2>(1-0+1, max_user_streams_, blitz::ColumnMajorArray<2>()) );
   576     slterm_isotropic_.reference( blitz::Array<double, 1>(maxbeams_, blitz::ColumnMajorArray<1>()) );
   577     slterm_isotropic_ = 0;
   578     slterm_f_0_.reference( blitz::Array<double, 2>(1-0+1, maxbeams_, blitz::ColumnMajorArray<2>()) );
   580     do_profile_wfs_ = 
false;
   581     do_surface_wfs_ = 
false;
   582     do_sleave_wfs_ = 
false;
   583     layer_vary_flag_.reference( blitz::Array<bool, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
   584     layer_vary_flag_ = 
false;
   585     layer_vary_number_.reference( blitz::Array<int, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
   586     layer_vary_number_ = 0;
   589     lssl_slterm_isotropic_.reference( blitz::Array<double, 2>(max_sleavewfs_, maxbeams_, blitz::ColumnMajorArray<2>()) );
   590     lssl_slterm_isotropic_ = 0;
   591     lssl_slterm_f_0_.reference( blitz::Array<double, 3>(max_sleavewfs_, 1-0+1, maxbeams_, blitz::ColumnMajorArray<3>()) );
   592     lssl_slterm_f_0_ = 0;
   593     l_deltau_input_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
   595     l_omega_input_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
   597     l_asymm_input_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
   599     l_d2s_scaling_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
   601     ls_brdf_f_0_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, maxbeams_, blitz::ColumnMajorArray<3>()) );
   603     ls_brdf_f_.reference( blitz::Array<double, 2>(max_surfacewfs_, 1-0+1, blitz::ColumnMajorArray<2>()) );
   605     ls_ubrdf_f_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, max_user_streams_, blitz::ColumnMajorArray<3>()) );
   607     ls_emissivity_.reference( blitz::Array<double, 1>(max_surfacewfs_, blitz::ColumnMajorArray<1>()) );
   609     intensity_toa_.reference( blitz::Array<double, 1>(max_geometries_, blitz::ColumnMajorArray<1>()) );
   611     profilewf_toa_.reference( blitz::Array<double, 3>(max_geometries_, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<3>()) );
   613     surfacewf_toa_.reference( blitz::Array<double, 2>(max_geometries_, max_surfacewfs_, blitz::ColumnMajorArray<2>()) );
   615     intensity_boa_.reference( blitz::Array<double, 1>(max_geometries_, blitz::ColumnMajorArray<1>()) );
   617     profilewf_boa_.reference( blitz::Array<double, 3>(max_geometries_, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<3>()) );
   619     surfacewf_boa_.reference( blitz::Array<double, 2>(max_geometries_, max_surfacewfs_, blitz::ColumnMajorArray<2>()) );
   621     radlevel_up_.reference( blitz::Array<double, 2>(max_geometries_, maxlayers_-0+1, blitz::ColumnMajorArray<2>()) );
   623     radlevel_dn_.reference( blitz::Array<double, 2>(max_geometries_, maxlayers_-0+1, blitz::ColumnMajorArray<2>()) );
   625     profjaclevel_up_.reference( blitz::Array<double, 4>(max_geometries_, maxlayers_-0+1, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<4>()) );
   626     profjaclevel_up_ = 0;
   627     profjaclevel_dn_.reference( blitz::Array<double, 4>(max_geometries_, maxlayers_-0+1, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<4>()) );
   628     profjaclevel_dn_ = 0;
   629     surfjaclevel_up_.reference( blitz::Array<double, 3>(max_geometries_, maxlayers_-0+1, max_surfacewfs_, blitz::ColumnMajorArray<3>()) );
   630     surfjaclevel_up_ = 0;
   631     surfjaclevel_dn_.reference( blitz::Array<double, 3>(max_geometries_, maxlayers_-0+1, max_surfacewfs_, blitz::ColumnMajorArray<3>()) );
   632     surfjaclevel_dn_ = 0;
   633     fluxes_toa_.reference( blitz::Array<double, 2>(maxbeams_, 2, blitz::ColumnMajorArray<2>()) );
   635     profjacfluxes_toa_.reference( blitz::Array<double, 4>(maxbeams_, 2, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<4>()) );
   636     profjacfluxes_toa_ = 0;
   637     surfjacfluxes_toa_.reference( blitz::Array<double, 3>(maxbeams_, 2, max_surfacewfs_, blitz::ColumnMajorArray<3>()) );
   638     surfjacfluxes_toa_ = 0;
   639     fluxes_boa_.reference( blitz::Array<double, 2>(maxbeams_, 2, blitz::ColumnMajorArray<2>()) );
   641     profjacfluxes_boa_.reference( blitz::Array<double, 4>(maxbeams_, 2, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<4>()) );
   642     profjacfluxes_boa_ = 0;
   643     surfjacfluxes_boa_.reference( blitz::Array<double, 3>(maxbeams_, 2, max_surfacewfs_, blitz::ColumnMajorArray<3>()) );
   644     surfjacfluxes_boa_ = 0;
   645     status_inputcheck_ = 0;
   647     c_messages_.reference( blitz::Array<char, 2>(100, 101, blitz::ColumnMajorArray<2>()) );
   649     c_actions_.reference( blitz::Array<char, 2>(100, 101, blitz::ColumnMajorArray<2>()) );
   651     status_execution_ = 0;
   652     e_message_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
   654     e_trace_1_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
   656     e_trace_2_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
   687     return max_geometries_;
   693     return max_user_streams_;
   699     return max_user_relazms_;
   705     return max_user_obsgeoms_;
   711     return max_atmoswfs_;
   717     return max_surfacewfs_;
   723     return max_sleavewfs_;
   729     return do_upwelling_;
   733     do_upwelling_ = do_upwelling_in;
   739     return do_dnwelling_;
   743     do_dnwelling_ = do_dnwelling_in;
   749     return do_plane_parallel_;
   753     do_plane_parallel_ = do_plane_parallel_in;
   759     return do_2s_levelout_;
   763     do_2s_levelout_ = do_2s_levelout_in;
   769     return do_mvout_only_;
   773     do_mvout_only_ = do_mvout_only_in;
   779     return do_additional_mvout_;
   783     do_additional_mvout_ = do_additional_mvout_in;
   789     return do_solar_sources_;
   793     do_solar_sources_ = do_solar_sources_in;
   799     return do_thermal_emission_;
   803     do_thermal_emission_ = do_thermal_emission_in;
   809     return do_surface_emission_;
   813     do_surface_emission_ = do_surface_emission_in;
   819     return do_d2s_scaling_;
   823     do_d2s_scaling_ = do_d2s_scaling_in;
   829     return do_brdf_surface_;
   833     do_brdf_surface_ = do_brdf_surface_in;
   839     return do_user_obsgeoms_;
   843     do_user_obsgeoms_ = do_user_obsgeoms_in;
   849     return do_surface_leaving_;
   853     do_surface_leaving_ = do_surface_leaving_in;
   859     return do_sl_isotropic_;
   863     do_sl_isotropic_ = do_sl_isotropic_in;
   869     return do_pentadiag_inverse_;
   873     do_pentadiag_inverse_ = do_pentadiag_inverse_in;
   883     bvpindex_ = bvpindex_in;
   889     return bvpscalefactor_;
   893     bvpscalefactor_ = bvpscalefactor_in;
   899     return taylor_order_;
   903     taylor_order_ = taylor_order_in;
   909     return taylor_small_;
   913     taylor_small_ = taylor_small_in;
   923     tcutoff_ = tcutoff_in;
   941     return stream_value_;
   945     stream_value_ = stream_value_in;
   951     return n_user_obsgeoms_;
   955     n_user_obsgeoms_ = n_user_obsgeoms_in;
   961     return user_obsgeoms_;
   965     user_obsgeoms_ = user_obsgeoms_in;
   971     return n_user_streams_;
   981     user_angles_ = user_angles_in;
   987     return n_user_relazms_;
   993     return user_relazms_;
   997     user_relazms_ = user_relazms_in;
  1003     return flux_factor_;
  1007     flux_factor_ = flux_factor_in;
  1022   void beam_szas(
const blitz::Array<double, 1>& beam_szas_in) {
  1023     beam_szas_ = beam_szas_in;
  1029     return earth_radius_;
  1035     return height_grid_;
  1039     height_grid_ = height_grid_in;
  1045     return deltau_input_;
  1049     deltau_input_ = deltau_input_in;
  1055     return omega_input_;
  1059     omega_input_ = omega_input_in;
  1065     return asymm_input_;
  1069     asymm_input_ = asymm_input_in;
  1075     return d2s_scaling_;
  1079     d2s_scaling_ = d2s_scaling_in;
  1085     return thermal_bb_input_;
  1089     thermal_bb_input_ = thermal_bb_input_in;
  1095     return lambertian_albedo_;
  1099     lambertian_albedo_ = lambertian_albedo_in;
  1114   void brdf_f_0(
const blitz::Array<double, 2>& brdf_f_0_in) {
  1115     brdf_f_0_ = brdf_f_0_in;
  1125   const blitz::Array<double, 1>& 
brdf_f()
 const {
  1129   void brdf_f(
const blitz::Array<double, 1>& brdf_f_in) {
  1130     brdf_f_ = brdf_f_in;
  1143   void ubrdf_f(
const blitz::Array<double, 2>& ubrdf_f_in) {
  1144     ubrdf_f_ = ubrdf_f_in;
  1154     emissivity_ = emissivity_in;
  1164     surfbb_ = surfbb_in;
  1170     return slterm_isotropic_;
  1174     slterm_isotropic_ = slterm_isotropic_in;
  1184     slterm_f_0_ = slterm_f_0_in;
  1190     return do_profile_wfs_;
  1194     do_profile_wfs_ = do_profile_wfs_in;
  1200     return do_surface_wfs_;
  1204     do_surface_wfs_ = do_surface_wfs_in;
  1210     return do_sleave_wfs_;
  1214     do_sleave_wfs_ = do_sleave_wfs_in;
  1220     return layer_vary_flag_;
  1224     layer_vary_flag_ = layer_vary_flag_in;
  1230     return layer_vary_number_;
  1234     layer_vary_number_ = layer_vary_number_in;
  1240     return n_surface_wfs_;
  1244     n_surface_wfs_ = n_surface_wfs_in;
  1250     return n_sleave_wfs_;
  1254     n_sleave_wfs_ = n_sleave_wfs_in;
  1260     return lssl_slterm_isotropic_;
  1264     lssl_slterm_isotropic_ = lssl_slterm_isotropic_in;
  1270     return lssl_slterm_f_0_;
  1274     lssl_slterm_f_0_ = lssl_slterm_f_0_in;
  1280     return l_deltau_input_;
  1284     l_deltau_input_ = l_deltau_input_in;
  1290     return l_omega_input_;
  1294     l_omega_input_ = l_omega_input_in;
  1300     return l_asymm_input_;
  1304     l_asymm_input_ = l_asymm_input_in;
  1310     return l_d2s_scaling_;
  1314     l_d2s_scaling_ = l_d2s_scaling_in;
  1320     return ls_brdf_f_0_;
  1325     return ls_brdf_f_0_;
  1329     ls_brdf_f_0_ = ls_brdf_f_0_in;
  1342   void ls_brdf_f(
const blitz::Array<double, 2>& ls_brdf_f_in) {
  1343     ls_brdf_f_ = ls_brdf_f_in;
  1357     ls_ubrdf_f_ = ls_ubrdf_f_in;
  1363     return ls_emissivity_;
  1368     return ls_emissivity_;
  1372     ls_emissivity_ = ls_emissivity_in;
  1378     return intensity_toa_;
  1382     intensity_toa_ = intensity_toa_in;
  1388     return profilewf_toa_;
  1392     profilewf_toa_ = profilewf_toa_in;
  1398     return surfacewf_toa_;
  1402     surfacewf_toa_ = surfacewf_toa_in;
  1408     return intensity_boa_;
  1412     intensity_boa_ = intensity_boa_in;
  1418     return profilewf_boa_;
  1422     profilewf_boa_ = profilewf_boa_in;
  1428     return surfacewf_boa_;
  1432     surfacewf_boa_ = surfacewf_boa_in;
  1438     return radlevel_up_;
  1442     radlevel_up_ = radlevel_up_in;
  1448     return radlevel_dn_;
  1452     radlevel_dn_ = radlevel_dn_in;
  1458     return n_geometries_;
  1464     return profjaclevel_up_;
  1468     profjaclevel_up_ = profjaclevel_up_in;
  1474     return profjaclevel_dn_;
  1478     profjaclevel_dn_ = profjaclevel_dn_in;
  1484     return surfjaclevel_up_;
  1488     surfjaclevel_up_ = surfjaclevel_up_in;
  1494     return surfjaclevel_dn_;
  1498     surfjaclevel_dn_ = surfjaclevel_dn_in;
  1508     fluxes_toa_ = fluxes_toa_in;
  1514     return profjacfluxes_toa_;
  1518     profjacfluxes_toa_ = profjacfluxes_toa_in;
  1524     return surfjacfluxes_toa_;
  1528     surfjacfluxes_toa_ = surfjacfluxes_toa_in;
  1538     fluxes_boa_ = fluxes_boa_in;
  1544     return profjacfluxes_boa_;
  1548     profjacfluxes_boa_ = profjacfluxes_boa_in;
  1554     return surfjacfluxes_boa_;
  1558     surfjacfluxes_boa_ = surfjacfluxes_boa_in;
  1564     return status_inputcheck_;
  1570     return c_nmessages_;
  1576     std::vector< std::string > c_messages_ret;
  1577     for(
int dim_0_idx = 0; dim_0_idx < c_messages_.extent(0); dim_0_idx++)
  1578       c_messages_ret.push_back( std::string(std::string(c_messages_(dim_0_idx, blitz::Range::all()).begin(), c_messages_(dim_0_idx, blitz::Range::all()).end()).c_str()) );
  1579     return c_messages_ret;
  1585     std::vector< std::string > c_actions_ret;
  1586     for(
int dim_0_idx = 0; dim_0_idx < c_actions_.extent(0); dim_0_idx++)
  1587       c_actions_ret.push_back( std::string(std::string(c_actions_(dim_0_idx, blitz::Range::all()).begin(), c_actions_(dim_0_idx, blitz::Range::all()).end()).c_str()) );
  1588     return c_actions_ret;
  1594     return status_execution_;
  1600     std::string e_message_ret;
  1601     e_message_ret = ( std::string(std::string(e_message_(blitz::Range::all()).begin(), e_message_(blitz::Range::all()).end()).c_str()) );
  1602     return e_message_ret;
  1608     std::string e_trace_1_ret;
  1609     e_trace_1_ret = ( std::string(std::string(e_trace_1_(blitz::Range::all()).begin(), e_trace_1_(blitz::Range::all()).end()).c_str()) );
  1610     return e_trace_1_ret;
  1616     std::string e_trace_2_ret;
  1617     e_trace_2_ret = ( std::string(std::string(e_trace_2_(blitz::Range::all()).begin(), e_trace_2_(blitz::Range::all()).end()).c_str()) );
  1618     return e_trace_2_ret;
  1625     int c_messages_shape_1 = (int) c_messages_.extent(0);
  1626     int c_messages_len = (int) c_messages_.extent(1) - 1;
  1627     int c_actions_shape_1 = (int) c_actions_.extent(0);
  1628     int c_actions_len = (int) c_actions_.extent(1) - 1;
  1629     int e_message_len = (int) e_message_.extent(0) - 1;
  1630     int e_trace_1_len = (int) e_trace_1_.extent(0) - 1;
  1631     int e_trace_2_len = (int) e_trace_2_.extent(0) - 1;
  1633     twostream_lps_master_m_twostream_lps_master_wrap(&maxlayers_, &maxtotal_, &maxmessages_, &maxbeams_, &max_geometries_, &max_user_streams_, &max_user_relazms_, &max_user_obsgeoms_, &max_atmoswfs_, &max_surfacewfs_, &max_sleavewfs_, &do_upwelling_, &do_dnwelling_, &do_plane_parallel_, &do_2s_levelout_, &do_mvout_only_, &do_additional_mvout_, &do_solar_sources_, &do_thermal_emission_, &do_surface_emission_, &do_d2s_scaling_, &do_brdf_surface_, &do_user_obsgeoms_, &do_surface_leaving_, &do_sl_isotropic_, &do_pentadiag_inverse_, &bvpindex_, &bvpscalefactor_, &taylor_order_, &taylor_small_, &tcutoff_, &nlayers_, &ntotal_, &stream_value_, &n_user_obsgeoms_, user_obsgeoms_.dataFirst(), &n_user_streams_, user_angles_.dataFirst(), &n_user_relazms_, user_relazms_.dataFirst(), &flux_factor_, &nbeams_, beam_szas_.dataFirst(), &earth_radius_, height_grid_.dataFirst(), deltau_input_.dataFirst(), omega_input_.dataFirst(), asymm_input_.dataFirst(), d2s_scaling_.dataFirst(), thermal_bb_input_.dataFirst(), &lambertian_albedo_, brdf_f_0_.dataFirst(), brdf_f_.dataFirst(), ubrdf_f_.dataFirst(), &emissivity_, &surfbb_, slterm_isotropic_.dataFirst(), slterm_f_0_.dataFirst(), &do_profile_wfs_, &do_surface_wfs_, &do_sleave_wfs_, layer_vary_flag_.dataFirst(), layer_vary_number_.dataFirst(), &n_surface_wfs_, &n_sleave_wfs_, lssl_slterm_isotropic_.dataFirst(), lssl_slterm_f_0_.dataFirst(), l_deltau_input_.dataFirst(), l_omega_input_.dataFirst(), l_asymm_input_.dataFirst(), l_d2s_scaling_.dataFirst(), ls_brdf_f_0_.dataFirst(), ls_brdf_f_.dataFirst(), ls_ubrdf_f_.dataFirst(), ls_emissivity_.dataFirst(), intensity_toa_.dataFirst(), profilewf_toa_.dataFirst(), surfacewf_toa_.dataFirst(), intensity_boa_.dataFirst(), profilewf_boa_.dataFirst(), surfacewf_boa_.dataFirst(), radlevel_up_.dataFirst(), radlevel_dn_.dataFirst(), &n_geometries_, profjaclevel_up_.dataFirst(), profjaclevel_dn_.dataFirst(), surfjaclevel_up_.dataFirst(), surfjaclevel_dn_.dataFirst(), fluxes_toa_.dataFirst(), profjacfluxes_toa_.dataFirst(), surfjacfluxes_toa_.dataFirst(), fluxes_boa_.dataFirst(), profjacfluxes_boa_.dataFirst(), surfjacfluxes_boa_.dataFirst(), &status_inputcheck_, &c_nmessages_, &c_messages_shape_1, &c_messages_len, c_messages_.dataFirst(), &c_actions_shape_1, &c_actions_len, c_actions_.dataFirst(), &status_execution_, &e_message_len, e_message_.dataFirst(), &e_trace_1_len, e_trace_1_.dataFirst(), &e_trace_2_len, e_trace_2_.dataFirst());
  1638     output_stream << 
"Twostream_Lps_Master:" << std::endl
  1639       << 
"            maxlayers: " << obj.
maxlayers()  << std::endl
  1640       << 
"             maxtotal: " << obj.
maxtotal()  << std::endl
  1641       << 
"          maxmessages: " << obj.
maxmessages()  << std::endl
  1642       << 
"             maxbeams: " << obj.
maxbeams()  << std::endl
  1647       << 
"         max_atmoswfs: " << obj.
max_atmoswfs()  << std::endl
  1650       << 
"         do_upwelling: " << obj.
do_upwelling()  << std::endl
  1651       << 
"         do_dnwelling: " << obj.
do_dnwelling()  << std::endl
  1665       << 
"             bvpindex: " << obj.
bvpindex()  << std::endl
  1667       << 
"         taylor_order: " << obj.
taylor_order()  << std::endl
  1668       << 
"         taylor_small: " << obj.
taylor_small()  << std::endl
  1669       << 
"              tcutoff: " << obj.
tcutoff()  << std::endl
  1670       << 
"              nlayers: " << obj.
nlayers()  << std::endl
  1671       << 
"               ntotal: " << obj.
ntotal()  << std::endl
  1672       << 
"         stream_value: " << obj.
stream_value()  << std::endl
  1674       << 
"        user_obsgeoms: " << std::endl << obj.
user_obsgeoms()  << std::endl
  1676       << 
"          user_angles: " << std::endl << obj.
user_angles()  << std::endl
  1678       << 
"         user_relazms: " << std::endl << obj.
user_relazms()  << std::endl
  1679       << 
"          flux_factor: " << obj.
flux_factor()  << std::endl
  1680       << 
"               nbeams: " << obj.
nbeams()  << std::endl
  1681       << 
"            beam_szas: " << std::endl << obj.
beam_szas()  << std::endl
  1682       << 
"         earth_radius: " << obj.
earth_radius()  << std::endl
  1683       << 
"          height_grid: " << std::endl << obj.
height_grid()  << std::endl
  1684       << 
"         deltau_input: " << std::endl << obj.
deltau_input()  << std::endl
  1685       << 
"          omega_input: " << std::endl << obj.
omega_input()  << std::endl
  1686       << 
"          asymm_input: " << std::endl << obj.
asymm_input()  << std::endl
  1687       << 
"          d2s_scaling: " << std::endl << obj.
d2s_scaling()  << std::endl
  1688       << 
"     thermal_bb_input: " << std::endl << obj.
thermal_bb_input()  << std::endl
  1690       << 
"             brdf_f_0: " << std::endl << obj.
brdf_f_0()  << std::endl
  1691       << 
"               brdf_f: " << std::endl << obj.
brdf_f()  << std::endl
  1692       << 
"              ubrdf_f: " << std::endl << obj.
ubrdf_f()  << std::endl
  1693       << 
"           emissivity: " << obj.
emissivity()  << std::endl
  1694       << 
"               surfbb: " << obj.
surfbb()  << std::endl
  1695       << 
"     slterm_isotropic: " << std::endl << obj.
slterm_isotropic()  << std::endl
  1696       << 
"           slterm_f_0: " << std::endl << obj.
slterm_f_0()  << std::endl
  1700       << 
"      layer_vary_flag: " << std::endl << obj.
layer_vary_flag()  << std::endl
  1703       << 
"         n_sleave_wfs: " << obj.
n_sleave_wfs()  << std::endl
  1705       << 
"      lssl_slterm_f_0: " << std::endl << obj.
lssl_slterm_f_0()  << std::endl
  1706       << 
"       l_deltau_input: " << std::endl << obj.
l_deltau_input()  << std::endl
  1707       << 
"        l_omega_input: " << std::endl << obj.
l_omega_input()  << std::endl
  1708       << 
"        l_asymm_input: " << std::endl << obj.
l_asymm_input()  << std::endl
  1709       << 
"        l_d2s_scaling: " << std::endl << obj.
l_d2s_scaling()  << std::endl
  1710       << 
"          ls_brdf_f_0: " << std::endl << obj.
ls_brdf_f_0()  << std::endl
  1711       << 
"            ls_brdf_f: " << std::endl << obj.
ls_brdf_f()  << std::endl
  1712       << 
"           ls_ubrdf_f: " << std::endl << obj.
ls_ubrdf_f()  << std::endl
  1713       << 
"        ls_emissivity: " << std::endl << obj.
ls_emissivity()  << std::endl
  1714       << 
"        intensity_toa: " << std::endl << obj.
intensity_toa()  << std::endl
  1715       << 
"        profilewf_toa: " << std::endl << obj.
profilewf_toa()  << std::endl
  1716       << 
"        surfacewf_toa: " << std::endl << obj.
surfacewf_toa()  << std::endl
  1717       << 
"        intensity_boa: " << std::endl << obj.
intensity_boa()  << std::endl
  1718       << 
"        profilewf_boa: " << std::endl << obj.
profilewf_boa()  << std::endl
  1719       << 
"        surfacewf_boa: " << std::endl << obj.
surfacewf_boa()  << std::endl
  1720       << 
"          radlevel_up: " << std::endl << obj.
radlevel_up()  << std::endl
  1721       << 
"          radlevel_dn: " << std::endl << obj.
radlevel_dn()  << std::endl
  1722       << 
"         n_geometries: " << obj.
n_geometries()  << std::endl
  1723       << 
"      profjaclevel_up: " << std::endl << obj.
profjaclevel_up()  << std::endl
  1724       << 
"      profjaclevel_dn: " << std::endl << obj.
profjaclevel_dn()  << std::endl
  1725       << 
"      surfjaclevel_up: " << std::endl << obj.
surfjaclevel_up()  << std::endl
  1726       << 
"      surfjaclevel_dn: " << std::endl << obj.
surfjaclevel_dn()  << std::endl
  1727       << 
"           fluxes_toa: " << std::endl << obj.
fluxes_toa()  << std::endl
  1730       << 
"           fluxes_boa: " << std::endl << obj.
fluxes_boa()  << std::endl
  1734       << 
"          c_nmessages: " << obj.
c_nmessages()  << std::endl
  1735       << 
"           c_messages: " << std::endl;
  1736     std::vector< std::string > c_messages_lcl = obj.
c_messages();
  1737     for(
unsigned int idx = 0; idx < c_messages_lcl.size(); idx++)
  1738       if ( c_messages_lcl[idx].length() > 0 )
  1739         output_stream << 
"  [" << idx << 
"]: \"" << c_messages_lcl[idx] << 
"\"" << std::endl;
  1741       << 
"            c_actions: " << std::endl;
  1742     std::vector< std::string > c_actions_lcl = obj.
c_actions();
  1743     for(
unsigned int idx = 0; idx < c_actions_lcl.size(); idx++)
  1744       if ( c_actions_lcl[idx].length() > 0 )
  1745         output_stream << 
"  [" << idx << 
"]: \"" << c_actions_lcl[idx] << 
"\"" << std::endl;
  1748       << 
"            e_message: " << 
"\"" << obj.
e_message() << 
"\"" << std::endl
  1749       << 
"            e_trace_1: " << 
"\"" << obj.
e_trace_1() << 
"\"" << std::endl
  1750       << 
"            e_trace_2: " << 
"\"" << obj.
e_trace_2() << 
"\"" << std::endl;
  1751     return output_stream;
  1760   int max_geometries_;
  1761   int max_user_streams_;
  1762   int max_user_relazms_;
  1763   int max_user_obsgeoms_;
  1765   int max_surfacewfs_;
  1769   bool do_plane_parallel_;
  1770   bool do_2s_levelout_;
  1771   bool do_mvout_only_;
  1772   bool do_additional_mvout_;
  1773   bool do_solar_sources_;
  1774   bool do_thermal_emission_;
  1775   bool do_surface_emission_;
  1776   bool do_d2s_scaling_;
  1777   bool do_brdf_surface_;
  1778   bool do_user_obsgeoms_;
  1779   bool do_surface_leaving_;
  1780   bool do_sl_isotropic_;
  1781   bool do_pentadiag_inverse_;
  1783   double bvpscalefactor_;
  1785   double taylor_small_;
  1789   double stream_value_;
  1790   int n_user_obsgeoms_;
  1791   blitz::Array<double, 2> user_obsgeoms_;
  1792   int n_user_streams_;
  1793   blitz::Array<double, 1> user_angles_;
  1794   int n_user_relazms_;
  1795   blitz::Array<double, 1> user_relazms_;
  1796   double flux_factor_;
  1798   blitz::Array<double, 1> beam_szas_;
  1799   double earth_radius_;
  1800   blitz::Array<double, 1> height_grid_;
  1801   blitz::Array<double, 1> deltau_input_;
  1802   blitz::Array<double, 1> omega_input_;
  1803   blitz::Array<double, 1> asymm_input_;
  1804   blitz::Array<double, 1> d2s_scaling_;
  1805   blitz::Array<double, 1> thermal_bb_input_;
  1806   double lambertian_albedo_;
  1807   blitz::Array<double, 2> brdf_f_0_;
  1808   blitz::Array<double, 1> brdf_f_;
  1809   blitz::Array<double, 2> ubrdf_f_;
  1812   blitz::Array<double, 1> slterm_isotropic_;
  1813   blitz::Array<double, 2> slterm_f_0_;
  1814   bool do_profile_wfs_;
  1815   bool do_surface_wfs_;
  1816   bool do_sleave_wfs_;
  1817   blitz::Array<bool, 1> layer_vary_flag_;
  1818   blitz::Array<int, 1> layer_vary_number_;
  1821   blitz::Array<double, 2> lssl_slterm_isotropic_;
  1822   blitz::Array<double, 3> lssl_slterm_f_0_;
  1823   blitz::Array<double, 2> l_deltau_input_;
  1824   blitz::Array<double, 2> l_omega_input_;
  1825   blitz::Array<double, 2> l_asymm_input_;
  1826   blitz::Array<double, 2> l_d2s_scaling_;
  1827   blitz::Array<double, 3> ls_brdf_f_0_;
  1828   blitz::Array<double, 2> ls_brdf_f_;
  1829   blitz::Array<double, 3> ls_ubrdf_f_;
  1830   blitz::Array<double, 1> ls_emissivity_;
  1831   blitz::Array<double, 1> intensity_toa_;
  1832   blitz::Array<double, 3> profilewf_toa_;
  1833   blitz::Array<double, 2> surfacewf_toa_;
  1834   blitz::Array<double, 1> intensity_boa_;
  1835   blitz::Array<double, 3> profilewf_boa_;
  1836   blitz::Array<double, 2> surfacewf_boa_;
  1837   blitz::Array<double, 2> radlevel_up_;
  1838   blitz::Array<double, 2> radlevel_dn_;
  1840   blitz::Array<double, 4> profjaclevel_up_;
  1841   blitz::Array<double, 4> profjaclevel_dn_;
  1842   blitz::Array<double, 3> surfjaclevel_up_;
  1843   blitz::Array<double, 3> surfjaclevel_dn_;
  1844   blitz::Array<double, 2> fluxes_toa_;
  1845   blitz::Array<double, 4> profjacfluxes_toa_;
  1846   blitz::Array<double, 3> surfjacfluxes_toa_;
  1847   blitz::Array<double, 2> fluxes_boa_;
  1848   blitz::Array<double, 4> profjacfluxes_boa_;
  1849   blitz::Array<double, 3> surfjacfluxes_boa_;
  1850   int status_inputcheck_;
  1852   blitz::Array<char, 2> c_messages_;
  1853   blitz::Array<char, 2> c_actions_;
  1854   int status_execution_;
  1855   blitz::Array<char, 1> e_message_;
  1856   blitz::Array<char, 1> e_trace_1_;
  1857   blitz::Array<char, 1> e_trace_2_;
 const blitz::Array< int, 1 > & n_brdf_parameters() const
 
const double & stream_value() const
 
const blitz::Array< double, 2 > & slterm_f_0() const
 
blitz::Array< double, 1 > & brdf_f()
 
void do_solar_sources(const bool &do_solar_sources_in)
 
void user_obsgeoms(const blitz::Array< double, 2 > &user_obsgeoms_in)
 
const int & status_brdfsup() const
 
void slterm_f_0(const blitz::Array< double, 2 > &slterm_f_0_in)
 
void which_brdf(const blitz::Array< int, 1 > &which_brdf_in)
 
const blitz::Array< double, 1 > & ls_emissivity() const
 
const int & ntotal() const
 
const int & n_user_streams() const
 
const blitz::Array< int, 1 > & which_brdf() const
 
const blitz::Array< double, 1 > & user_angles() const
 
void lambertian_kernel_flag(const blitz::Array< bool, 1 > &lambertian_kernel_flag_in)
 
const int & max_user_streams() const
 
void do_kernel_params_wfs(const blitz::Array< bool, 2 > &do_kernel_params_wfs_in)
 
const blitz::Array< double, 2 > & brdf_parameters() const
 
void ls_brdf_f_0(const blitz::Array< double, 3 > &ls_brdf_f_0_in)
 
const blitz::Array< double, 2 > & brdf_f_0() const
 
const blitz::Array< double, 4 > & profjacfluxes_toa() const
 
const blitz::Array< double, 1 > & brdf_f() const
 
void d2s_scaling(const blitz::Array< double, 1 > &d2s_scaling_in)
 
const int & n_sleave_wfs() const
 
const blitz::Array< double, 1 > & height_grid() const
 
const bool & do_surface_emission() const
 
const bool & do_sleave_wfs() const
 
const double & earth_radius() const
 
void do_brdf_surface(const bool &do_brdf_surface_in)
 
const int & max_surfacewfs() const
 
const blitz::Array< double, 3 > & ls_brdf_f_0() const
 
blitz::Array< double, 2 > & brdf_f_0()
 
void do_thermal_emission(const bool &do_thermal_emission_in)
 
friend std::ostream & operator<<(std::ostream &output_stream, const Twostream_Lps_Master &obj)
 
void twostream_ls_brdf_supplement_m_twostream_ls_brdfmaster_wrap(const int *maxbeams_in, const int *max_user_streams_in, const int *max_user_obsgeoms_in, const int *maxstreams_brdf_in, const int *max_brdf_kernels_in, const int *max_brdf_parameters_in, const int *max_surfacewfs_in, const bool *do_solar_sources_in, const bool *do_user_obsgeoms_in, const bool *lambertian_kernel_flag_in, const bool *do_shadow_effect_in, const bool *do_surface_emission_in, const int *nbeams_in, const int *n_user_streams_in, const int *n_user_obsgeoms_in, const double *beam_szas_in, const double *user_angles_in, const double *user_obsgeoms_in, const double *stream_value_in, const int *nstreams_brdf_in, const int *n_brdf_kernels_in, const int *which_brdf_in, const double *brdf_factors_in, const int *n_brdf_parameters_in, const double *brdf_parameters_in, const bool *do_kernel_factor_wfs_in, const bool *do_kernel_params_wfs_in, const bool *do_kparams_derivs_in, const int *n_surface_wfs_in, const int *n_kernel_factor_wfs_in, const int *n_kernel_params_wfs_in, const double *brdf_f_0_in, const double *brdf_f_in, const double *ubrdf_f_in, const double *emissivity_in, const double *ls_brdf_f_0_in, const double *ls_brdf_f_in, const double *ls_ubrdf_f_in, const double *ls_emissivity_in, const int *status_brdfsup_in, const int *message_len, const char *message_in, const int *action_len, const char *action_in)
 
const blitz::Array< double, 1 > & ls_emissivity() const
 
const int & status_inputcheck() const
 
const int & maxbeams() const
 
void brdf_factors(const blitz::Array< double, 1 > &brdf_factors_in)
 
const blitz::Array< bool, 1 > & lambertian_kernel_flag() const
 
const blitz::Array< double, 3 > & profilewf_boa() const
 
const blitz::Array< double, 2 > & ls_brdf_f() const
 
const int & n_surface_wfs() const
 
void brdf_parameters(const blitz::Array< double, 2 > &brdf_parameters_in)
 
const blitz::Array< double, 1 > & brdf_f() const
 
void brdf_f_0(const blitz::Array< double, 2 > &brdf_f_0_in)
 
void user_angles(const blitz::Array< double, 1 > &user_angles_in)
 
const int & status_execution() const
 
void do_upwelling(const bool &do_upwelling_in)
 
const blitz::Array< double, 2 > & l_omega_input() const
 
const int & n_user_obsgeoms() const
 
const int & max_user_obsgeoms() const
 
const bool & do_brdf_surface() const
 
blitz::Array< double, 2 > & ubrdf_f()
 
const blitz::Array< double, 2 > & l_asymm_input() const
 
Twostream_Ls_Brdf_Supplement(const int &maxbeams_in, const int &max_user_streams_in, const int &max_user_obsgeoms_in, const int &maxstreams_brdf_in, const int &max_brdf_kernels_in, const int &max_brdf_parameters_in, const int &max_surfacewfs_in, const int &nbeams_in, const int &n_user_streams_in, const int &nstreams_brdf_in)
 
const blitz::Array< double, 2 > & radlevel_dn() const
 
const bool & do_additional_mvout() const
 
const int & n_kernel_factor_wfs() const
 
void fluxes_boa(const blitz::Array< double, 2 > &fluxes_boa_in)
 
void stream_value(const double &stream_value_in)
 
void ls_emissivity(const blitz::Array< double, 1 > &ls_emissivity_in)
 
const blitz::Array< double, 3 > & ls_brdf_f_0() const
 
const blitz::Array< double, 1 > & intensity_toa() const
 
void surfjaclevel_up(const blitz::Array< double, 3 > &surfjaclevel_up_in)
 
const blitz::Array< double, 1 > & beam_szas() const
 
const bool & do_2s_levelout() const
 
const bool & do_plane_parallel() const
 
void do_dnwelling(const bool &do_dnwelling_in)
 
void do_plane_parallel(const bool &do_plane_parallel_in)
 
const bool & do_pentadiag_inverse() const
 
void lambertian_albedo(const double &lambertian_albedo_in)
 
void tcutoff(const double &tcutoff_in)
 
void height_grid(const blitz::Array< double, 1 > &height_grid_in)
 
const int & nbeams() const
 
const int & max_sleavewfs() const
 
void do_user_obsgeoms(const bool &do_user_obsgeoms_in)
 
const bool & do_user_obsgeoms() const
 
void do_surface_leaving(const bool &do_surface_leaving_in)
 
void bvpindex(const int &bvpindex_in)
 
void omega_input(const blitz::Array< double, 1 > &omega_input_in)
 
const int & maxtotal() const
 
void do_mvout_only(const bool &do_mvout_only_in)
 
void do_shadow_effect(const bool &do_shadow_effect_in)
 
const int & maxmessages() const
 
const blitz::Array< double, 1 > & user_relazms() const
 
blitz::Array< double, 3 > & ls_ubrdf_f()
 
const int & nlayers() const
 
void n_sleave_wfs(const int &n_sleave_wfs_in)
 
void brdf_f(const blitz::Array< double, 1 > &brdf_f_in)
 
void do_profile_wfs(const bool &do_profile_wfs_in)
 
const int & maxbeams() const
 
const bool & do_mvout_only() const
 
const blitz::Array< double, 1 > & omega_input() const
 
void do_kernel_factor_wfs(const blitz::Array< bool, 1 > &do_kernel_factor_wfs_in)
 
const blitz::Array< bool, 1 > & do_kernel_factor_wfs() const
 
const blitz::Array< double, 1 > & brdf_factors() const
 
const blitz::Array< int, 1 > & layer_vary_number() const
 
void thermal_bb_input(const blitz::Array< double, 1 > &thermal_bb_input_in)
 
void do_user_obsgeoms(const bool &do_user_obsgeoms_in)
 
const blitz::Array< double, 2 > & fluxes_toa() const
 
void do_additional_mvout(const bool &do_additional_mvout_in)
 
const blitz::Array< double, 3 > & surfjacfluxes_toa() const
 
const bool & do_profile_wfs() const
 
const bool & do_user_obsgeoms() const
 
void user_relazms(const blitz::Array< double, 1 > &user_relazms_in)
 
const bool & do_thermal_emission() const
 
const blitz::Array< double, 1 > & intensity_boa() const
 
void surfjacfluxes_boa(const blitz::Array< double, 3 > &surfjacfluxes_boa_in)
 
std::vector< std::string > c_messages() const
 
void layer_vary_number(const blitz::Array< int, 1 > &layer_vary_number_in)
 
void do_d2s_scaling(const bool &do_d2s_scaling_in)
 
const int & max_atmoswfs() const
 
void do_surface_emission(const bool &do_surface_emission_in)
 
void ubrdf_f(const blitz::Array< double, 2 > &ubrdf_f_in)
 
std::string e_message() const
 
void l_d2s_scaling(const blitz::Array< double, 2 > &l_d2s_scaling_in)
 
const bool & do_solar_sources() const
 
const int & n_user_obsgeoms() const
 
void profjaclevel_dn(const blitz::Array< double, 4 > &profjaclevel_dn_in)
 
friend std::ostream & operator<<(std::ostream &output_stream, const Twostream_Ls_Brdf_Supplement &obj)
 
void stream_value(const double &stream_value_in)
 
std::vector< std::string > c_actions() const
 
const blitz::Array< double, 1 > & slterm_isotropic() const
 
void surfjaclevel_dn(const blitz::Array< double, 3 > &surfjaclevel_dn_in)
 
const double & emissivity() const
 
const blitz::Array< double, 1 > & d2s_scaling() const
 
const bool & do_surface_leaving() const
 
void emissivity(const double &emissivity_in)
 
void lssl_slterm_isotropic(const blitz::Array< double, 2 > &lssl_slterm_isotropic_in)
 
std::string e_trace_2() const
 
const double & tcutoff() const
 
void flux_factor(const double &flux_factor_in)
 
const int & max_brdf_kernels() const
 
void deltau_input(const blitz::Array< double, 1 > &deltau_input_in)
 
void n_brdf_parameters(const blitz::Array< int, 1 > &n_brdf_parameters_in)
 
void user_angles(const blitz::Array< double, 1 > &user_angles_in)
 
const blitz::Array< double, 1 > & thermal_bb_input() const
 
void do_surface_emission(const bool &do_surface_emission_in)
 
const blitz::Array< double, 2 > & user_obsgeoms() const
 
const blitz::Array< double, 1 > & asymm_input() const
 
const blitz::Array< double, 2 > & surfacewf_boa() const
 
void intensity_boa(const blitz::Array< double, 1 > &intensity_boa_in)
 
const blitz::Array< double, 3 > & ls_ubrdf_f() const
 
const blitz::Array< double, 2 > & brdf_f_0() const
 
void n_user_obsgeoms(const int &n_user_obsgeoms_in)
 
void beam_szas(const blitz::Array< double, 1 > &beam_szas_in)
 
const int & n_geometries() const
 
void profjaclevel_up(const blitz::Array< double, 4 > &profjaclevel_up_in)
 
const blitz::Array< double, 2 > & ls_brdf_f() const
 
const double & flux_factor() const
 
const blitz::Array< double, 3 > & surfjaclevel_up() const
 
void profilewf_toa(const blitz::Array< double, 3 > &profilewf_toa_in)
 
const int & max_user_streams() const
 
const blitz::Array< bool, 1 > & layer_vary_flag() const
 
const int & n_user_relazms() const
 
void bvpscalefactor(const double &bvpscalefactor_in)
 
const bool & do_dnwelling() const
 
const blitz::Array< double, 2 > & fluxes_boa() const
 
const int & n_kernel_params_wfs() const
 
const blitz::Array< double, 4 > & profjacfluxes_boa() const
 
blitz::Array< double, 3 > & ls_brdf_f_0()
 
const bool & do_upwelling() const
 
const blitz::Array< double, 1 > & user_angles() const
 
const blitz::Array< double, 4 > & profjaclevel_up() const
 
void twostream_lps_master_m_twostream_lps_master_wrap(const int *maxlayers_in, const int *maxtotal_in, const int *maxmessages_in, const int *maxbeams_in, const int *max_geometries_in, const int *max_user_streams_in, const int *max_user_relazms_in, const int *max_user_obsgeoms_in, const int *max_atmoswfs_in, const int *max_surfacewfs_in, const int *max_sleavewfs_in, const bool *do_upwelling_in, const bool *do_dnwelling_in, const bool *do_plane_parallel_in, const bool *do_2s_levelout_in, const bool *do_mvout_only_in, const bool *do_additional_mvout_in, const bool *do_solar_sources_in, const bool *do_thermal_emission_in, const bool *do_surface_emission_in, const bool *do_d2s_scaling_in, const bool *do_brdf_surface_in, const bool *do_user_obsgeoms_in, const bool *do_surface_leaving_in, const bool *do_sl_isotropic_in, const bool *do_pentadiag_inverse_in, const int *bvpindex_in, const double *bvpscalefactor_in, const int *taylor_order_in, const double *taylor_small_in, const double *tcutoff_in, const int *nlayers_in, const int *ntotal_in, const double *stream_value_in, const int *n_user_obsgeoms_in, const double *user_obsgeoms_in, const int *n_user_streams_in, const double *user_angles_in, const int *n_user_relazms_in, const double *user_relazms_in, const double *flux_factor_in, const int *nbeams_in, const double *beam_szas_in, const double *earth_radius_in, const double *height_grid_in, const double *deltau_input_in, const double *omega_input_in, const double *asymm_input_in, const double *d2s_scaling_in, const double *thermal_bb_input_in, const double *lambertian_albedo_in, const double *brdf_f_0_in, const double *brdf_f_in, const double *ubrdf_f_in, const double *emissivity_in, const double *surfbb_in, const double *slterm_isotropic_in, const double *slterm_f_0_in, const bool *do_profile_wfs_in, const bool *do_surface_wfs_in, const bool *do_sleave_wfs_in, const bool *layer_vary_flag_in, const int *layer_vary_number_in, const int *n_surface_wfs_in, const int *n_sleave_wfs_in, const double *lssl_slterm_isotropic_in, const double *lssl_slterm_f_0_in, const double *l_deltau_input_in, const double *l_omega_input_in, const double *l_asymm_input_in, const double *l_d2s_scaling_in, const double *ls_brdf_f_0_in, const double *ls_brdf_f_in, const double *ls_ubrdf_f_in, const double *ls_emissivity_in, const double *intensity_toa_in, const double *profilewf_toa_in, const double *surfacewf_toa_in, const double *intensity_boa_in, const double *profilewf_boa_in, const double *surfacewf_boa_in, const double *radlevel_up_in, const double *radlevel_dn_in, const int *n_geometries_in, const double *profjaclevel_up_in, const double *profjaclevel_dn_in, const double *surfjaclevel_up_in, const double *surfjaclevel_dn_in, const double *fluxes_toa_in, const double *profjacfluxes_toa_in, const double *surfjacfluxes_toa_in, const double *fluxes_boa_in, const double *profjacfluxes_boa_in, const double *surfjacfluxes_boa_in, const int *status_inputcheck_in, const int *c_nmessages_in, const int *c_messages_shape_1, const int *c_messages_len, const char *c_messages_in, const int *c_actions_shape_1, const int *c_actions_len, const char *c_actions_in, const int *status_execution_in, const int *e_message_len, const char *e_message_in, const int *e_trace_1_len, const char *e_trace_1_in, const int *e_trace_2_len, const char *e_trace_2_in)
 
const int & max_user_relazms() const
 
void surfacewf_toa(const blitz::Array< double, 2 > &surfacewf_toa_in)
 
void do_2s_levelout(const bool &do_2s_levelout_in)
 
const bool & do_sl_isotropic() const
 
const blitz::Array< double, 2 > & ubrdf_f() const
 
void surfbb(const double &surfbb_in)
 
const int & max_surfacewfs() const
 
const int & maxstreams_brdf() const
 
const blitz::Array< double, 2 > & l_d2s_scaling() const
 
const blitz::Array< double, 2 > & user_obsgeoms() const
 
void taylor_order(const int &taylor_order_in)
 
const int & max_geometries() const
 
void do_pentadiag_inverse(const bool &do_pentadiag_inverse_in)
 
const blitz::Array< bool, 1 > & do_kparams_derivs() const
 
const int & nstreams_brdf() const
 
const blitz::Array< double, 3 > & profilewf_toa() const
 
void lssl_slterm_f_0(const blitz::Array< double, 3 > &lssl_slterm_f_0_in)
 
const blitz::Array< double, 1 > & deltau_input() const
 
const int & max_brdf_parameters() const
 
const blitz::Array< double, 2 > & radlevel_up() const
 
void slterm_isotropic(const blitz::Array< double, 1 > &slterm_isotropic_in)
 
std::string message() const
 
std::string action() const
 
const double & emissivity() const
 
void asymm_input(const blitz::Array< double, 1 > &asymm_input_in)
 
void do_sleave_wfs(const bool &do_sleave_wfs_in)
 
const bool & do_d2s_scaling() const
 
void ls_brdf_f(const blitz::Array< double, 2 > &ls_brdf_f_in)
 
blitz::Array< double, 2 > & ls_brdf_f()
 
const double & taylor_small() const
 
void do_sl_isotropic(const bool &do_sl_isotropic_in)
 
const int & n_user_streams() const
 
void l_omega_input(const blitz::Array< double, 2 > &l_omega_input_in)
 
const blitz::Array< double, 3 > & surfjacfluxes_boa() const
 
Contains classes to abstract away details in various Spurr Radiative Transfer software. 
 
void user_obsgeoms(const blitz::Array< double, 2 > &user_obsgeoms_in)
 
const blitz::Array< double, 2 > & surfacewf_toa() const
 
const bool & do_surface_emission() const
 
const double & bvpscalefactor() const
 
void radlevel_dn(const blitz::Array< double, 2 > &radlevel_dn_in)
 
void profjacfluxes_toa(const blitz::Array< double, 4 > &profjacfluxes_toa_in)
 
const double & stream_value() const
 
const blitz::Array< double, 3 > & lssl_slterm_f_0() const
 
const blitz::Array< double, 4 > & profjaclevel_dn() const
 
void l_asymm_input(const blitz::Array< double, 2 > &l_asymm_input_in)
 
const bool & do_surface_wfs() const
 
const int & nbeams() const
 
void ls_ubrdf_f(const blitz::Array< double, 3 > &ls_ubrdf_f_in)
 
const int & n_brdf_kernels() const
 
void intensity_toa(const blitz::Array< double, 1 > &intensity_toa_in)
 
void radlevel_up(const blitz::Array< double, 2 > &radlevel_up_in)
 
Twostream_Lps_Master(const int &maxlayers_in, const int &maxtotal_in, const int &maxmessages_in, const int &maxbeams_in, const int &max_geometries_in, const int &max_user_streams_in, const int &max_user_relazms_in, const int &max_user_obsgeoms_in, const int &max_atmoswfs_in, const int &max_surfacewfs_in, const int &max_sleavewfs_in, const int &nlayers_in, const int &ntotal_in, const int &n_user_streams_in, const int &n_user_relazms_in, const int &nbeams_in, const double &earth_radius_in, const int &n_geometries_in)
 
const blitz::Array< double, 3 > & surfjaclevel_dn() const
 
void n_user_obsgeoms(const int &n_user_obsgeoms_in)
 
const int & c_nmessages() const
 
void do_solar_sources(const bool &do_solar_sources_in)
 
const int & max_user_obsgeoms() const
 
void n_surface_wfs(const int &n_surface_wfs_in)
 
const blitz::Array< double, 2 > & ubrdf_f() const
 
const int & bvpindex() const
 
const int & n_surface_wfs() const
 
const double & lambertian_albedo() const
 
const double & surfbb() const
 
void surfjacfluxes_toa(const blitz::Array< double, 3 > &surfjacfluxes_toa_in)
 
blitz::Array< double, 1 > & ls_emissivity()
 
const blitz::Array< double, 3 > & ls_ubrdf_f() const
 
void fluxes_toa(const blitz::Array< double, 2 > &fluxes_toa_in)
 
void taylor_small(const double &taylor_small_in)
 
void beam_szas(const blitz::Array< double, 1 > &beam_szas_in)
 
void surfacewf_boa(const blitz::Array< double, 2 > &surfacewf_boa_in)
 
const bool & do_solar_sources() const
 
void l_deltau_input(const blitz::Array< double, 2 > &l_deltau_input_in)
 
void n_brdf_kernels(const int &n_brdf_kernels_in)
 
const blitz::Array< double, 1 > & beam_szas() const
 
std::string e_trace_1() const
 
const bool & do_shadow_effect() const
 
void do_surface_wfs(const bool &do_surface_wfs_in)
 
const int & maxlayers() const
 
void layer_vary_flag(const blitz::Array< bool, 1 > &layer_vary_flag_in)
 
const blitz::Array< double, 2 > & l_deltau_input() const
 
void profilewf_boa(const blitz::Array< double, 3 > &profilewf_boa_in)
 
const int & taylor_order() const
 
const blitz::Array< bool, 2 > & do_kernel_params_wfs() const
 
void profjacfluxes_boa(const blitz::Array< double, 4 > &profjacfluxes_boa_in)
 
const blitz::Array< double, 2 > & lssl_slterm_isotropic() const