ReFRACtor
twostream_interface.h
Go to the documentation of this file.
1 #ifndef TWOSTREAM_INTERFACE_H
2 #define TWOSTREAM_INTERFACE_H
3 
4 #include <iostream>
5 #include <blitz/array.h>
6 
7 #include "fp_exception.h"
8 
9 
10 /* This file was auto-generated */
11 
12 namespace FullPhysics {
13 
14 //-----------------------------------------------------------------------
15 // Links to module: "twostream_ls_brdf_supplement_m" in file: "2stream_ls_brdf_supplement.f90"
16 //-----------------------------------------------------------------------
17 
18 extern "C" {
19 
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);
21 }
22 
24 
25 public:
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)
27  {
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;
34  n_user_obsgeoms_ = 0;
35  beam_szas_.reference( blitz::Array<double, 1>(maxbeams_, blitz::ColumnMajorArray<1>()) );
36  beam_szas_ = 0;
37  user_angles_.reference( blitz::Array<double, 1>(max_user_streams_, blitz::ColumnMajorArray<1>()) );
38  user_angles_ = 0;
39  user_obsgeoms_.reference( blitz::Array<double, 2>(max_user_obsgeoms_, 3, blitz::ColumnMajorArray<2>()) );
40  user_obsgeoms_ = 0;
41  stream_value_ = 0;
42  n_brdf_kernels_ = 0;
43  which_brdf_.reference( blitz::Array<int, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
44  which_brdf_ = 0;
45  brdf_factors_.reference( blitz::Array<double, 1>(max_brdf_kernels_, blitz::ColumnMajorArray<1>()) );
46  brdf_factors_ = 0;
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>()) );
50  brdf_parameters_ = 0;
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;
57  n_surface_wfs_ = 0;
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>()) );
61  brdf_f_0_ = 0;
62  brdf_f_.reference( blitz::Array<double, 1>(1-0+1, blitz::ColumnMajorArray<1>()) );
63  brdf_f_ = 0;
64  ubrdf_f_.reference( blitz::Array<double, 2>(1-0+1, max_user_streams_, blitz::ColumnMajorArray<2>()) );
65  ubrdf_f_ = 0;
66  emissivity_ = 0;
67  ls_brdf_f_0_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, maxbeams_, blitz::ColumnMajorArray<3>()) );
68  ls_brdf_f_0_ = 0;
69  ls_brdf_f_.reference( blitz::Array<double, 2>(max_surfacewfs_, 1-0+1, blitz::ColumnMajorArray<2>()) );
70  ls_brdf_f_ = 0;
71  ls_ubrdf_f_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, max_user_streams_, blitz::ColumnMajorArray<3>()) );
72  ls_ubrdf_f_ = 0;
73  ls_emissivity_.reference( blitz::Array<double, 1>(max_surfacewfs_, blitz::ColumnMajorArray<1>()) );
74  ls_emissivity_ = 0;
75  status_brdfsup_ = 0;
76  message_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
77  message_ = '\0';
78  action_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
79  action_ = '\0';
80  // Initialize type pointers
81 
82  }
83 
84  const int& maxbeams() const {
85  return maxbeams_;
86  }
87 
88 
89 
90  const int& max_user_streams() const {
91  return max_user_streams_;
92  }
93 
94 
95 
96  const int& max_user_obsgeoms() const {
97  return max_user_obsgeoms_;
98  }
99 
100 
101 
102  const int& maxstreams_brdf() const {
103  return maxstreams_brdf_;
104  }
105 
106 
107 
108  const int& max_brdf_kernels() const {
109  return max_brdf_kernels_;
110  }
111 
112 
113 
114  const int& max_brdf_parameters() const {
115  return max_brdf_parameters_;
116  }
117 
118 
119 
120  const int& max_surfacewfs() const {
121  return max_surfacewfs_;
122  }
123 
124 
125 
126  const bool& do_solar_sources() const {
127  return do_solar_sources_;
128  }
129 
130  void do_solar_sources(const bool& do_solar_sources_in) {
131  do_solar_sources_ = do_solar_sources_in;
132  }
133 
134 
135 
136  const bool& do_user_obsgeoms() const {
137  return do_user_obsgeoms_;
138  }
139 
140  void do_user_obsgeoms(const bool& do_user_obsgeoms_in) {
141  do_user_obsgeoms_ = do_user_obsgeoms_in;
142  }
143 
144 
145 
146  const blitz::Array<bool, 1>& lambertian_kernel_flag() const {
147  return lambertian_kernel_flag_;
148  }
149 
150  void lambertian_kernel_flag(const blitz::Array<bool, 1>& lambertian_kernel_flag_in) {
151  lambertian_kernel_flag_ = lambertian_kernel_flag_in;
152  }
153 
154 
155 
156  const bool& do_shadow_effect() const {
157  return do_shadow_effect_;
158  }
159 
160  void do_shadow_effect(const bool& do_shadow_effect_in) {
161  do_shadow_effect_ = do_shadow_effect_in;
162  }
163 
164 
165 
166  const bool& do_surface_emission() const {
167  return do_surface_emission_;
168  }
169 
170  void do_surface_emission(const bool& do_surface_emission_in) {
171  do_surface_emission_ = do_surface_emission_in;
172  }
173 
174 
175 
176  const int& nbeams() const {
177  return nbeams_;
178  }
179 
180 
181 
182  const int& n_user_streams() const {
183  return n_user_streams_;
184  }
185 
186 
187 
188  const int& n_user_obsgeoms() const {
189  return n_user_obsgeoms_;
190  }
191 
192  void n_user_obsgeoms(const int& n_user_obsgeoms_in) {
193  n_user_obsgeoms_ = n_user_obsgeoms_in;
194  }
195 
196 
197 
198  const blitz::Array<double, 1>& beam_szas() const {
199  return beam_szas_;
200  }
201 
202  void beam_szas(const blitz::Array<double, 1>& beam_szas_in) {
203  beam_szas_ = beam_szas_in;
204  }
205 
206 
207 
208  const blitz::Array<double, 1>& user_angles() const {
209  return user_angles_;
210  }
211 
212  void user_angles(const blitz::Array<double, 1>& user_angles_in) {
213  user_angles_ = user_angles_in;
214  }
215 
216 
217 
218  const blitz::Array<double, 2>& user_obsgeoms() const {
219  return user_obsgeoms_;
220  }
221 
222  void user_obsgeoms(const blitz::Array<double, 2>& user_obsgeoms_in) {
223  user_obsgeoms_ = user_obsgeoms_in;
224  }
225 
226 
227 
228  const double& stream_value() const {
229  return stream_value_;
230  }
231 
232  void stream_value(const double& stream_value_in) {
233  stream_value_ = stream_value_in;
234  }
235 
236 
237 
238  const int& nstreams_brdf() const {
239  return nstreams_brdf_;
240  }
241 
242 
243 
244  const int& n_brdf_kernels() const {
245  return n_brdf_kernels_;
246  }
247 
248  void n_brdf_kernels(const int& n_brdf_kernels_in) {
249  n_brdf_kernels_ = n_brdf_kernels_in;
250  }
251 
252 
253 
254  const blitz::Array<int, 1>& which_brdf() const {
255  return which_brdf_;
256  }
257 
258  void which_brdf(const blitz::Array<int, 1>& which_brdf_in) {
259  which_brdf_ = which_brdf_in;
260  }
261 
262 
263 
264  const blitz::Array<double, 1>& brdf_factors() const {
265  return brdf_factors_;
266  }
267 
268  void brdf_factors(const blitz::Array<double, 1>& brdf_factors_in) {
269  brdf_factors_ = brdf_factors_in;
270  }
271 
272 
273 
274  const blitz::Array<int, 1>& n_brdf_parameters() const {
275  return n_brdf_parameters_;
276  }
277 
278  void n_brdf_parameters(const blitz::Array<int, 1>& n_brdf_parameters_in) {
279  n_brdf_parameters_ = n_brdf_parameters_in;
280  }
281 
282 
283 
284  const blitz::Array<double, 2>& brdf_parameters() const {
285  return brdf_parameters_;
286  }
287 
288  void brdf_parameters(const blitz::Array<double, 2>& brdf_parameters_in) {
289  brdf_parameters_ = brdf_parameters_in;
290  }
291 
292 
293 
294  const blitz::Array<bool, 1>& do_kernel_factor_wfs() const {
295  return do_kernel_factor_wfs_;
296  }
297 
298  void do_kernel_factor_wfs(const blitz::Array<bool, 1>& do_kernel_factor_wfs_in) {
299  do_kernel_factor_wfs_ = do_kernel_factor_wfs_in;
300  }
301 
302 
303 
304  const blitz::Array<bool, 2>& do_kernel_params_wfs() const {
305  return do_kernel_params_wfs_;
306  }
307 
308  void do_kernel_params_wfs(const blitz::Array<bool, 2>& do_kernel_params_wfs_in) {
309  do_kernel_params_wfs_ = do_kernel_params_wfs_in;
310  }
311 
312 
313 
314  const blitz::Array<bool, 1>& do_kparams_derivs() const {
315  return do_kparams_derivs_;
316  }
317 
318 
319 
320  const int& n_surface_wfs() const {
321  return n_surface_wfs_;
322  }
323 
324 
325 
326  const int& n_kernel_factor_wfs() const {
327  return n_kernel_factor_wfs_;
328  }
329 
330 
331 
332  const int& n_kernel_params_wfs() const {
333  return n_kernel_params_wfs_;
334  }
335 
336 
337 
338  const blitz::Array<double, 2>& brdf_f_0() const {
339  return brdf_f_0_;
340  }
341 
342 
343 
344  const blitz::Array<double, 1>& brdf_f() const {
345  return brdf_f_;
346  }
347 
348 
349 
350  const blitz::Array<double, 2>& ubrdf_f() const {
351  return ubrdf_f_;
352  }
353 
354 
355 
356  const double& emissivity() const {
357  return emissivity_;
358  }
359 
360 
361 
362  const blitz::Array<double, 3>& ls_brdf_f_0() const {
363  return ls_brdf_f_0_;
364  }
365 
366 
367 
368  const blitz::Array<double, 2>& ls_brdf_f() const {
369  return ls_brdf_f_;
370  }
371 
372 
373 
374  const blitz::Array<double, 3>& ls_ubrdf_f() const {
375  return ls_ubrdf_f_;
376  }
377 
378 
379 
380  const blitz::Array<double, 1>& ls_emissivity() const {
381  return ls_emissivity_;
382  }
383 
384 
385 
386  const int& status_brdfsup() const {
387  return status_brdfsup_;
388  }
389 
390 
391 
392  std::string message() const {
393  std::string message_ret;
394  message_ret = ( std::string(std::string(message_(blitz::Range::all()).begin(), message_(blitz::Range::all()).end()).c_str()) );
395  return message_ret;
396  }
397 
398 
399 
400  std::string action() const {
401  std::string action_ret;
402  action_ret = ( std::string(std::string(action_(blitz::Range::all()).begin(), action_(blitz::Range::all()).end()).c_str()) );
403  return action_ret;
404  }
405 
406 
407 
408 
409  void run() {
410  int message_len = (int) message_.extent(0) - 1;
411  int action_len = (int) action_.extent(0) - 1;
412 
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());
414 
415  }
416 
417  friend std::ostream& operator<<(std::ostream &output_stream, const Twostream_Ls_Brdf_Supplement &obj) {
418  output_stream << "Twostream_Ls_Brdf_Supplement:" << std::endl
419  << " maxbeams: " << obj.maxbeams() << std::endl
420  << " max_user_streams: " << obj.max_user_streams() << std::endl
421  << " max_user_obsgeoms: " << obj.max_user_obsgeoms() << std::endl
422  << " maxstreams_brdf: " << obj.maxstreams_brdf() << std::endl
423  << " max_brdf_kernels: " << obj.max_brdf_kernels() << std::endl
424  << " max_brdf_parameters: " << obj.max_brdf_parameters() << std::endl
425  << " max_surfacewfs: " << obj.max_surfacewfs() << std::endl
426  << " do_solar_sources: " << obj.do_solar_sources() << std::endl
427  << " do_user_obsgeoms: " << obj.do_user_obsgeoms() << std::endl
428  << "lambertian_kernel_flag: " << std::endl << obj.lambertian_kernel_flag() << std::endl
429  << " do_shadow_effect: " << obj.do_shadow_effect() << std::endl
430  << " do_surface_emission: " << obj.do_surface_emission() << std::endl
431  << " nbeams: " << obj.nbeams() << std::endl
432  << " n_user_streams: " << obj.n_user_streams() << std::endl
433  << " n_user_obsgeoms: " << obj.n_user_obsgeoms() << 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
437  << " stream_value: " << obj.stream_value() << std::endl
438  << " nstreams_brdf: " << obj.nstreams_brdf() << std::endl
439  << " n_brdf_kernels: " << obj.n_brdf_kernels() << std::endl
440  << " which_brdf: " << std::endl << obj.which_brdf() << std::endl
441  << " brdf_factors: " << std::endl << obj.brdf_factors() << std::endl
442  << " n_brdf_parameters: " << std::endl << obj.n_brdf_parameters() << std::endl
443  << " brdf_parameters: " << std::endl << obj.brdf_parameters() << std::endl
444  << " do_kernel_factor_wfs: " << std::endl << obj.do_kernel_factor_wfs() << std::endl
445  << " do_kernel_params_wfs: " << std::endl << obj.do_kernel_params_wfs() << std::endl
446  << " do_kparams_derivs: " << std::endl << obj.do_kparams_derivs() << std::endl
447  << " n_surface_wfs: " << obj.n_surface_wfs() << std::endl
448  << " n_kernel_factor_wfs: " << obj.n_kernel_factor_wfs() << std::endl
449  << " n_kernel_params_wfs: " << obj.n_kernel_params_wfs() << 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
458  << " status_brdfsup: " << obj.status_brdfsup() << std::endl
459  << " message: " << "\"" << obj.message() << "\"" << std::endl
460  << " action: " << "\"" << obj.action() << "\"" << std::endl;
461  return output_stream;
462 
463  }
464 
465 private:
466  int maxbeams_;
467  int max_user_streams_;
468  int max_user_obsgeoms_;
469  int maxstreams_brdf_;
470  int max_brdf_kernels_;
471  int max_brdf_parameters_;
472  int max_surfacewfs_;
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_;
478  int nbeams_;
479  int n_user_streams_;
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_;
485  int nstreams_brdf_;
486  int n_brdf_kernels_;
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_;
494  int n_surface_wfs_;
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_;
500  double emissivity_;
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_;
505  int status_brdfsup_;
506  blitz::Array<char, 1> message_;
507  blitz::Array<char, 1> action_;
508 };
509 
510 //-----------------------------------------------------------------------
511 // Links to module: "twostream_lps_master_m" in file: "2stream_lps_master.f90"
512 //-----------------------------------------------------------------------
513 
514 extern "C" {
515 
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);
517 }
518 
520 
521 public:
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)
523  {
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;
539  bvpindex_ = 0;
540  bvpscalefactor_ = 0;
541  taylor_order_ = 0;
542  taylor_small_ = 0;
543  tcutoff_ = 0;
544  stream_value_ = 0;
545  n_user_obsgeoms_ = 0;
546  user_obsgeoms_.reference( blitz::Array<double, 2>(max_user_obsgeoms_, 3, blitz::ColumnMajorArray<2>()) );
547  user_obsgeoms_ = 0;
548  user_angles_.reference( blitz::Array<double, 1>(max_user_streams_, blitz::ColumnMajorArray<1>()) );
549  user_angles_ = 0;
550  user_relazms_.reference( blitz::Array<double, 1>(max_user_relazms_, blitz::ColumnMajorArray<1>()) );
551  user_relazms_ = 0;
552  flux_factor_ = 0;
553  beam_szas_.reference( blitz::Array<double, 1>(maxbeams_, blitz::ColumnMajorArray<1>()) );
554  beam_szas_ = 0;
555  height_grid_.reference( blitz::Array<double, 1>(maxlayers_-0+1, blitz::ColumnMajorArray<1>()) );
556  height_grid_ = 0;
557  deltau_input_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
558  deltau_input_ = 0;
559  omega_input_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
560  omega_input_ = 0;
561  asymm_input_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
562  asymm_input_ = 0;
563  d2s_scaling_.reference( blitz::Array<double, 1>(maxlayers_, blitz::ColumnMajorArray<1>()) );
564  d2s_scaling_ = 0;
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>()) );
569  brdf_f_0_ = 0;
570  brdf_f_.reference( blitz::Array<double, 1>(1-0+1, blitz::ColumnMajorArray<1>()) );
571  brdf_f_ = 0;
572  ubrdf_f_.reference( blitz::Array<double, 2>(1-0+1, max_user_streams_, blitz::ColumnMajorArray<2>()) );
573  ubrdf_f_ = 0;
574  emissivity_ = 0;
575  surfbb_ = 0;
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>()) );
579  slterm_f_0_ = 0;
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;
587  n_surface_wfs_ = 0;
588  n_sleave_wfs_ = 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>()) );
594  l_deltau_input_ = 0;
595  l_omega_input_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
596  l_omega_input_ = 0;
597  l_asymm_input_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
598  l_asymm_input_ = 0;
599  l_d2s_scaling_.reference( blitz::Array<double, 2>(maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<2>()) );
600  l_d2s_scaling_ = 0;
601  ls_brdf_f_0_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, maxbeams_, blitz::ColumnMajorArray<3>()) );
602  ls_brdf_f_0_ = 0;
603  ls_brdf_f_.reference( blitz::Array<double, 2>(max_surfacewfs_, 1-0+1, blitz::ColumnMajorArray<2>()) );
604  ls_brdf_f_ = 0;
605  ls_ubrdf_f_.reference( blitz::Array<double, 3>(max_surfacewfs_, 1-0+1, max_user_streams_, blitz::ColumnMajorArray<3>()) );
606  ls_ubrdf_f_ = 0;
607  ls_emissivity_.reference( blitz::Array<double, 1>(max_surfacewfs_, blitz::ColumnMajorArray<1>()) );
608  ls_emissivity_ = 0;
609  intensity_toa_.reference( blitz::Array<double, 1>(max_geometries_, blitz::ColumnMajorArray<1>()) );
610  intensity_toa_ = 0;
611  profilewf_toa_.reference( blitz::Array<double, 3>(max_geometries_, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<3>()) );
612  profilewf_toa_ = 0;
613  surfacewf_toa_.reference( blitz::Array<double, 2>(max_geometries_, max_surfacewfs_, blitz::ColumnMajorArray<2>()) );
614  surfacewf_toa_ = 0;
615  intensity_boa_.reference( blitz::Array<double, 1>(max_geometries_, blitz::ColumnMajorArray<1>()) );
616  intensity_boa_ = 0;
617  profilewf_boa_.reference( blitz::Array<double, 3>(max_geometries_, maxlayers_, max_atmoswfs_, blitz::ColumnMajorArray<3>()) );
618  profilewf_boa_ = 0;
619  surfacewf_boa_.reference( blitz::Array<double, 2>(max_geometries_, max_surfacewfs_, blitz::ColumnMajorArray<2>()) );
620  surfacewf_boa_ = 0;
621  radlevel_up_.reference( blitz::Array<double, 2>(max_geometries_, maxlayers_-0+1, blitz::ColumnMajorArray<2>()) );
622  radlevel_up_ = 0;
623  radlevel_dn_.reference( blitz::Array<double, 2>(max_geometries_, maxlayers_-0+1, blitz::ColumnMajorArray<2>()) );
624  radlevel_dn_ = 0;
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>()) );
634  fluxes_toa_ = 0;
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>()) );
640  fluxes_boa_ = 0;
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;
646  c_nmessages_ = 0;
647  c_messages_.reference( blitz::Array<char, 2>(100, 101, blitz::ColumnMajorArray<2>()) );
648  c_messages_ = '\0';
649  c_actions_.reference( blitz::Array<char, 2>(100, 101, blitz::ColumnMajorArray<2>()) );
650  c_actions_ = '\0';
651  status_execution_ = 0;
652  e_message_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
653  e_message_ = '\0';
654  e_trace_1_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
655  e_trace_1_ = '\0';
656  e_trace_2_.reference( blitz::Array<char, 1>(101, blitz::ColumnMajorArray<1>()) );
657  e_trace_2_ = '\0';
658  // Initialize type pointers
659 
660  }
661 
662  const int& maxlayers() const {
663  return maxlayers_;
664  }
665 
666 
667 
668  const int& maxtotal() const {
669  return maxtotal_;
670  }
671 
672 
673 
674  const int& maxmessages() const {
675  return maxmessages_;
676  }
677 
678 
679 
680  const int& maxbeams() const {
681  return maxbeams_;
682  }
683 
684 
685 
686  const int& max_geometries() const {
687  return max_geometries_;
688  }
689 
690 
691 
692  const int& max_user_streams() const {
693  return max_user_streams_;
694  }
695 
696 
697 
698  const int& max_user_relazms() const {
699  return max_user_relazms_;
700  }
701 
702 
703 
704  const int& max_user_obsgeoms() const {
705  return max_user_obsgeoms_;
706  }
707 
708 
709 
710  const int& max_atmoswfs() const {
711  return max_atmoswfs_;
712  }
713 
714 
715 
716  const int& max_surfacewfs() const {
717  return max_surfacewfs_;
718  }
719 
720 
721 
722  const int& max_sleavewfs() const {
723  return max_sleavewfs_;
724  }
725 
726 
727 
728  const bool& do_upwelling() const {
729  return do_upwelling_;
730  }
731 
732  void do_upwelling(const bool& do_upwelling_in) {
733  do_upwelling_ = do_upwelling_in;
734  }
735 
736 
737 
738  const bool& do_dnwelling() const {
739  return do_dnwelling_;
740  }
741 
742  void do_dnwelling(const bool& do_dnwelling_in) {
743  do_dnwelling_ = do_dnwelling_in;
744  }
745 
746 
747 
748  const bool& do_plane_parallel() const {
749  return do_plane_parallel_;
750  }
751 
752  void do_plane_parallel(const bool& do_plane_parallel_in) {
753  do_plane_parallel_ = do_plane_parallel_in;
754  }
755 
756 
757 
758  const bool& do_2s_levelout() const {
759  return do_2s_levelout_;
760  }
761 
762  void do_2s_levelout(const bool& do_2s_levelout_in) {
763  do_2s_levelout_ = do_2s_levelout_in;
764  }
765 
766 
767 
768  const bool& do_mvout_only() const {
769  return do_mvout_only_;
770  }
771 
772  void do_mvout_only(const bool& do_mvout_only_in) {
773  do_mvout_only_ = do_mvout_only_in;
774  }
775 
776 
777 
778  const bool& do_additional_mvout() const {
779  return do_additional_mvout_;
780  }
781 
782  void do_additional_mvout(const bool& do_additional_mvout_in) {
783  do_additional_mvout_ = do_additional_mvout_in;
784  }
785 
786 
787 
788  const bool& do_solar_sources() const {
789  return do_solar_sources_;
790  }
791 
792  void do_solar_sources(const bool& do_solar_sources_in) {
793  do_solar_sources_ = do_solar_sources_in;
794  }
795 
796 
797 
798  const bool& do_thermal_emission() const {
799  return do_thermal_emission_;
800  }
801 
802  void do_thermal_emission(const bool& do_thermal_emission_in) {
803  do_thermal_emission_ = do_thermal_emission_in;
804  }
805 
806 
807 
808  const bool& do_surface_emission() const {
809  return do_surface_emission_;
810  }
811 
812  void do_surface_emission(const bool& do_surface_emission_in) {
813  do_surface_emission_ = do_surface_emission_in;
814  }
815 
816 
817 
818  const bool& do_d2s_scaling() const {
819  return do_d2s_scaling_;
820  }
821 
822  void do_d2s_scaling(const bool& do_d2s_scaling_in) {
823  do_d2s_scaling_ = do_d2s_scaling_in;
824  }
825 
826 
827 
828  const bool& do_brdf_surface() const {
829  return do_brdf_surface_;
830  }
831 
832  void do_brdf_surface(const bool& do_brdf_surface_in) {
833  do_brdf_surface_ = do_brdf_surface_in;
834  }
835 
836 
837 
838  const bool& do_user_obsgeoms() const {
839  return do_user_obsgeoms_;
840  }
841 
842  void do_user_obsgeoms(const bool& do_user_obsgeoms_in) {
843  do_user_obsgeoms_ = do_user_obsgeoms_in;
844  }
845 
846 
847 
848  const bool& do_surface_leaving() const {
849  return do_surface_leaving_;
850  }
851 
852  void do_surface_leaving(const bool& do_surface_leaving_in) {
853  do_surface_leaving_ = do_surface_leaving_in;
854  }
855 
856 
857 
858  const bool& do_sl_isotropic() const {
859  return do_sl_isotropic_;
860  }
861 
862  void do_sl_isotropic(const bool& do_sl_isotropic_in) {
863  do_sl_isotropic_ = do_sl_isotropic_in;
864  }
865 
866 
867 
868  const bool& do_pentadiag_inverse() const {
869  return do_pentadiag_inverse_;
870  }
871 
872  void do_pentadiag_inverse(const bool& do_pentadiag_inverse_in) {
873  do_pentadiag_inverse_ = do_pentadiag_inverse_in;
874  }
875 
876 
877 
878  const int& bvpindex() const {
879  return bvpindex_;
880  }
881 
882  void bvpindex(const int& bvpindex_in) {
883  bvpindex_ = bvpindex_in;
884  }
885 
886 
887 
888  const double& bvpscalefactor() const {
889  return bvpscalefactor_;
890  }
891 
892  void bvpscalefactor(const double& bvpscalefactor_in) {
893  bvpscalefactor_ = bvpscalefactor_in;
894  }
895 
896 
897 
898  const int& taylor_order() const {
899  return taylor_order_;
900  }
901 
902  void taylor_order(const int& taylor_order_in) {
903  taylor_order_ = taylor_order_in;
904  }
905 
906 
907 
908  const double& taylor_small() const {
909  return taylor_small_;
910  }
911 
912  void taylor_small(const double& taylor_small_in) {
913  taylor_small_ = taylor_small_in;
914  }
915 
916 
917 
918  const double& tcutoff() const {
919  return tcutoff_;
920  }
921 
922  void tcutoff(const double& tcutoff_in) {
923  tcutoff_ = tcutoff_in;
924  }
925 
926 
927 
928  const int& nlayers() const {
929  return nlayers_;
930  }
931 
932 
933 
934  const int& ntotal() const {
935  return ntotal_;
936  }
937 
938 
939 
940  const double& stream_value() const {
941  return stream_value_;
942  }
943 
944  void stream_value(const double& stream_value_in) {
945  stream_value_ = stream_value_in;
946  }
947 
948 
949 
950  const int& n_user_obsgeoms() const {
951  return n_user_obsgeoms_;
952  }
953 
954  void n_user_obsgeoms(const int& n_user_obsgeoms_in) {
955  n_user_obsgeoms_ = n_user_obsgeoms_in;
956  }
957 
958 
959 
960  const blitz::Array<double, 2>& user_obsgeoms() const {
961  return user_obsgeoms_;
962  }
963 
964  void user_obsgeoms(const blitz::Array<double, 2>& user_obsgeoms_in) {
965  user_obsgeoms_ = user_obsgeoms_in;
966  }
967 
968 
969 
970  const int& n_user_streams() const {
971  return n_user_streams_;
972  }
973 
974 
975 
976  const blitz::Array<double, 1>& user_angles() const {
977  return user_angles_;
978  }
979 
980  void user_angles(const blitz::Array<double, 1>& user_angles_in) {
981  user_angles_ = user_angles_in;
982  }
983 
984 
985 
986  const int& n_user_relazms() const {
987  return n_user_relazms_;
988  }
989 
990 
991 
992  const blitz::Array<double, 1>& user_relazms() const {
993  return user_relazms_;
994  }
995 
996  void user_relazms(const blitz::Array<double, 1>& user_relazms_in) {
997  user_relazms_ = user_relazms_in;
998  }
999 
1000 
1001 
1002  const double& flux_factor() const {
1003  return flux_factor_;
1004  }
1005 
1006  void flux_factor(const double& flux_factor_in) {
1007  flux_factor_ = flux_factor_in;
1008  }
1009 
1010 
1011 
1012  const int& nbeams() const {
1013  return nbeams_;
1014  }
1015 
1016 
1017 
1018  const blitz::Array<double, 1>& beam_szas() const {
1019  return beam_szas_;
1020  }
1021 
1022  void beam_szas(const blitz::Array<double, 1>& beam_szas_in) {
1023  beam_szas_ = beam_szas_in;
1024  }
1025 
1026 
1027 
1028  const double& earth_radius() const {
1029  return earth_radius_;
1030  }
1031 
1032 
1033 
1034  const blitz::Array<double, 1>& height_grid() const {
1035  return height_grid_;
1036  }
1037 
1038  void height_grid(const blitz::Array<double, 1>& height_grid_in) {
1039  height_grid_ = height_grid_in;
1040  }
1041 
1042 
1043 
1044  const blitz::Array<double, 1>& deltau_input() const {
1045  return deltau_input_;
1046  }
1047 
1048  void deltau_input(const blitz::Array<double, 1>& deltau_input_in) {
1049  deltau_input_ = deltau_input_in;
1050  }
1051 
1052 
1053 
1054  const blitz::Array<double, 1>& omega_input() const {
1055  return omega_input_;
1056  }
1057 
1058  void omega_input(const blitz::Array<double, 1>& omega_input_in) {
1059  omega_input_ = omega_input_in;
1060  }
1061 
1062 
1063 
1064  const blitz::Array<double, 1>& asymm_input() const {
1065  return asymm_input_;
1066  }
1067 
1068  void asymm_input(const blitz::Array<double, 1>& asymm_input_in) {
1069  asymm_input_ = asymm_input_in;
1070  }
1071 
1072 
1073 
1074  const blitz::Array<double, 1>& d2s_scaling() const {
1075  return d2s_scaling_;
1076  }
1077 
1078  void d2s_scaling(const blitz::Array<double, 1>& d2s_scaling_in) {
1079  d2s_scaling_ = d2s_scaling_in;
1080  }
1081 
1082 
1083 
1084  const blitz::Array<double, 1>& thermal_bb_input() const {
1085  return thermal_bb_input_;
1086  }
1087 
1088  void thermal_bb_input(const blitz::Array<double, 1>& thermal_bb_input_in) {
1089  thermal_bb_input_ = thermal_bb_input_in;
1090  }
1091 
1092 
1093 
1094  const double& lambertian_albedo() const {
1095  return lambertian_albedo_;
1096  }
1097 
1098  void lambertian_albedo(const double& lambertian_albedo_in) {
1099  lambertian_albedo_ = lambertian_albedo_in;
1100  }
1101 
1102 
1103  // MANUAL EDIT //
1104  blitz::Array<double, 2>& brdf_f_0() {
1105  return brdf_f_0_;
1106  }
1107  // MANUAL EDIT //
1108 
1109 
1110  const blitz::Array<double, 2>& brdf_f_0() const {
1111  return brdf_f_0_;
1112  }
1113 
1114  void brdf_f_0(const blitz::Array<double, 2>& brdf_f_0_in) {
1115  brdf_f_0_ = brdf_f_0_in;
1116  }
1117 
1118 
1119  // MANUAL EDIT //
1120  blitz::Array<double, 1>& brdf_f() {
1121  return brdf_f_;
1122  }
1123  // MANUAL EDIT //
1124 
1125  const blitz::Array<double, 1>& brdf_f() const {
1126  return brdf_f_;
1127  }
1128 
1129  void brdf_f(const blitz::Array<double, 1>& brdf_f_in) {
1130  brdf_f_ = brdf_f_in;
1131  }
1132 
1133  // MANUAL EDIT //
1134  blitz::Array<double, 2>& ubrdf_f() {
1135  return ubrdf_f_;
1136  }
1137  // MANUAL EDIT //
1138 
1139  const blitz::Array<double, 2>& ubrdf_f() const {
1140  return ubrdf_f_;
1141  }
1142 
1143  void ubrdf_f(const blitz::Array<double, 2>& ubrdf_f_in) {
1144  ubrdf_f_ = ubrdf_f_in;
1145  }
1146 
1147 
1148 
1149  const double& emissivity() const {
1150  return emissivity_;
1151  }
1152 
1153  void emissivity(const double& emissivity_in) {
1154  emissivity_ = emissivity_in;
1155  }
1156 
1157 
1158 
1159  const double& surfbb() const {
1160  return surfbb_;
1161  }
1162 
1163  void surfbb(const double& surfbb_in) {
1164  surfbb_ = surfbb_in;
1165  }
1166 
1167 
1168 
1169  const blitz::Array<double, 1>& slterm_isotropic() const {
1170  return slterm_isotropic_;
1171  }
1172 
1173  void slterm_isotropic(const blitz::Array<double, 1>& slterm_isotropic_in) {
1174  slterm_isotropic_ = slterm_isotropic_in;
1175  }
1176 
1177 
1178 
1179  const blitz::Array<double, 2>& slterm_f_0() const {
1180  return slterm_f_0_;
1181  }
1182 
1183  void slterm_f_0(const blitz::Array<double, 2>& slterm_f_0_in) {
1184  slterm_f_0_ = slterm_f_0_in;
1185  }
1186 
1187 
1188 
1189  const bool& do_profile_wfs() const {
1190  return do_profile_wfs_;
1191  }
1192 
1193  void do_profile_wfs(const bool& do_profile_wfs_in) {
1194  do_profile_wfs_ = do_profile_wfs_in;
1195  }
1196 
1197 
1198 
1199  const bool& do_surface_wfs() const {
1200  return do_surface_wfs_;
1201  }
1202 
1203  void do_surface_wfs(const bool& do_surface_wfs_in) {
1204  do_surface_wfs_ = do_surface_wfs_in;
1205  }
1206 
1207 
1208 
1209  const bool& do_sleave_wfs() const {
1210  return do_sleave_wfs_;
1211  }
1212 
1213  void do_sleave_wfs(const bool& do_sleave_wfs_in) {
1214  do_sleave_wfs_ = do_sleave_wfs_in;
1215  }
1216 
1217 
1218 
1219  const blitz::Array<bool, 1>& layer_vary_flag() const {
1220  return layer_vary_flag_;
1221  }
1222 
1223  void layer_vary_flag(const blitz::Array<bool, 1>& layer_vary_flag_in) {
1224  layer_vary_flag_ = layer_vary_flag_in;
1225  }
1226 
1227 
1228 
1229  const blitz::Array<int, 1>& layer_vary_number() const {
1230  return layer_vary_number_;
1231  }
1232 
1233  void layer_vary_number(const blitz::Array<int, 1>& layer_vary_number_in) {
1234  layer_vary_number_ = layer_vary_number_in;
1235  }
1236 
1237 
1238 
1239  const int& n_surface_wfs() const {
1240  return n_surface_wfs_;
1241  }
1242 
1243  void n_surface_wfs(const int& n_surface_wfs_in) {
1244  n_surface_wfs_ = n_surface_wfs_in;
1245  }
1246 
1247 
1248 
1249  const int& n_sleave_wfs() const {
1250  return n_sleave_wfs_;
1251  }
1252 
1253  void n_sleave_wfs(const int& n_sleave_wfs_in) {
1254  n_sleave_wfs_ = n_sleave_wfs_in;
1255  }
1256 
1257 
1258 
1259  const blitz::Array<double, 2>& lssl_slterm_isotropic() const {
1260  return lssl_slterm_isotropic_;
1261  }
1262 
1263  void lssl_slterm_isotropic(const blitz::Array<double, 2>& lssl_slterm_isotropic_in) {
1264  lssl_slterm_isotropic_ = lssl_slterm_isotropic_in;
1265  }
1266 
1267 
1268 
1269  const blitz::Array<double, 3>& lssl_slterm_f_0() const {
1270  return lssl_slterm_f_0_;
1271  }
1272 
1273  void lssl_slterm_f_0(const blitz::Array<double, 3>& lssl_slterm_f_0_in) {
1274  lssl_slterm_f_0_ = lssl_slterm_f_0_in;
1275  }
1276 
1277 
1278 
1279  const blitz::Array<double, 2>& l_deltau_input() const {
1280  return l_deltau_input_;
1281  }
1282 
1283  void l_deltau_input(const blitz::Array<double, 2>& l_deltau_input_in) {
1284  l_deltau_input_ = l_deltau_input_in;
1285  }
1286 
1287 
1288 
1289  const blitz::Array<double, 2>& l_omega_input() const {
1290  return l_omega_input_;
1291  }
1292 
1293  void l_omega_input(const blitz::Array<double, 2>& l_omega_input_in) {
1294  l_omega_input_ = l_omega_input_in;
1295  }
1296 
1297 
1298 
1299  const blitz::Array<double, 2>& l_asymm_input() const {
1300  return l_asymm_input_;
1301  }
1302 
1303  void l_asymm_input(const blitz::Array<double, 2>& l_asymm_input_in) {
1304  l_asymm_input_ = l_asymm_input_in;
1305  }
1306 
1307 
1308 
1309  const blitz::Array<double, 2>& l_d2s_scaling() const {
1310  return l_d2s_scaling_;
1311  }
1312 
1313  void l_d2s_scaling(const blitz::Array<double, 2>& l_d2s_scaling_in) {
1314  l_d2s_scaling_ = l_d2s_scaling_in;
1315  }
1316 
1317 
1318  // MANUAL EDIT //
1319  blitz::Array<double, 3>& ls_brdf_f_0() {
1320  return ls_brdf_f_0_;
1321  }
1322  // MANUAL EDIT //
1323 
1324  const blitz::Array<double, 3>& ls_brdf_f_0() const {
1325  return ls_brdf_f_0_;
1326  }
1327 
1328  void ls_brdf_f_0(const blitz::Array<double, 3>& ls_brdf_f_0_in) {
1329  ls_brdf_f_0_ = ls_brdf_f_0_in;
1330  }
1331 
1332  // MANUAL EDIT //
1333  blitz::Array<double, 2>& ls_brdf_f() {
1334  return ls_brdf_f_;
1335  }
1336  // MANUAL EDIT //
1337 
1338  const blitz::Array<double, 2>& ls_brdf_f() const {
1339  return ls_brdf_f_;
1340  }
1341 
1342  void ls_brdf_f(const blitz::Array<double, 2>& ls_brdf_f_in) {
1343  ls_brdf_f_ = ls_brdf_f_in;
1344  }
1345 
1346  // MANUAL EDIT //
1347  blitz::Array<double, 3>& ls_ubrdf_f() {
1348  return ls_ubrdf_f_;
1349  }
1350  // MANUAL EDIT //
1351 
1352  const blitz::Array<double, 3>& ls_ubrdf_f() const {
1353  return ls_ubrdf_f_;
1354  }
1355 
1356  void ls_ubrdf_f(const blitz::Array<double, 3>& ls_ubrdf_f_in) {
1357  ls_ubrdf_f_ = ls_ubrdf_f_in;
1358  }
1359 
1360 
1361  // MANUAL EDIT //
1362  blitz::Array<double, 1>& ls_emissivity() {
1363  return ls_emissivity_;
1364  }
1365  // MANUAL EDIT //
1366 
1367  const blitz::Array<double, 1>& ls_emissivity() const {
1368  return ls_emissivity_;
1369  }
1370 
1371  void ls_emissivity(const blitz::Array<double, 1>& ls_emissivity_in) {
1372  ls_emissivity_ = ls_emissivity_in;
1373  }
1374 
1375 
1376 
1377  const blitz::Array<double, 1>& intensity_toa() const {
1378  return intensity_toa_;
1379  }
1380 
1381  void intensity_toa(const blitz::Array<double, 1>& intensity_toa_in) {
1382  intensity_toa_ = intensity_toa_in;
1383  }
1384 
1385 
1386 
1387  const blitz::Array<double, 3>& profilewf_toa() const {
1388  return profilewf_toa_;
1389  }
1390 
1391  void profilewf_toa(const blitz::Array<double, 3>& profilewf_toa_in) {
1392  profilewf_toa_ = profilewf_toa_in;
1393  }
1394 
1395 
1396 
1397  const blitz::Array<double, 2>& surfacewf_toa() const {
1398  return surfacewf_toa_;
1399  }
1400 
1401  void surfacewf_toa(const blitz::Array<double, 2>& surfacewf_toa_in) {
1402  surfacewf_toa_ = surfacewf_toa_in;
1403  }
1404 
1405 
1406 
1407  const blitz::Array<double, 1>& intensity_boa() const {
1408  return intensity_boa_;
1409  }
1410 
1411  void intensity_boa(const blitz::Array<double, 1>& intensity_boa_in) {
1412  intensity_boa_ = intensity_boa_in;
1413  }
1414 
1415 
1416 
1417  const blitz::Array<double, 3>& profilewf_boa() const {
1418  return profilewf_boa_;
1419  }
1420 
1421  void profilewf_boa(const blitz::Array<double, 3>& profilewf_boa_in) {
1422  profilewf_boa_ = profilewf_boa_in;
1423  }
1424 
1425 
1426 
1427  const blitz::Array<double, 2>& surfacewf_boa() const {
1428  return surfacewf_boa_;
1429  }
1430 
1431  void surfacewf_boa(const blitz::Array<double, 2>& surfacewf_boa_in) {
1432  surfacewf_boa_ = surfacewf_boa_in;
1433  }
1434 
1435 
1436 
1437  const blitz::Array<double, 2>& radlevel_up() const {
1438  return radlevel_up_;
1439  }
1440 
1441  void radlevel_up(const blitz::Array<double, 2>& radlevel_up_in) {
1442  radlevel_up_ = radlevel_up_in;
1443  }
1444 
1445 
1446 
1447  const blitz::Array<double, 2>& radlevel_dn() const {
1448  return radlevel_dn_;
1449  }
1450 
1451  void radlevel_dn(const blitz::Array<double, 2>& radlevel_dn_in) {
1452  radlevel_dn_ = radlevel_dn_in;
1453  }
1454 
1455 
1456 
1457  const int& n_geometries() const {
1458  return n_geometries_;
1459  }
1460 
1461 
1462 
1463  const blitz::Array<double, 4>& profjaclevel_up() const {
1464  return profjaclevel_up_;
1465  }
1466 
1467  void profjaclevel_up(const blitz::Array<double, 4>& profjaclevel_up_in) {
1468  profjaclevel_up_ = profjaclevel_up_in;
1469  }
1470 
1471 
1472 
1473  const blitz::Array<double, 4>& profjaclevel_dn() const {
1474  return profjaclevel_dn_;
1475  }
1476 
1477  void profjaclevel_dn(const blitz::Array<double, 4>& profjaclevel_dn_in) {
1478  profjaclevel_dn_ = profjaclevel_dn_in;
1479  }
1480 
1481 
1482 
1483  const blitz::Array<double, 3>& surfjaclevel_up() const {
1484  return surfjaclevel_up_;
1485  }
1486 
1487  void surfjaclevel_up(const blitz::Array<double, 3>& surfjaclevel_up_in) {
1488  surfjaclevel_up_ = surfjaclevel_up_in;
1489  }
1490 
1491 
1492 
1493  const blitz::Array<double, 3>& surfjaclevel_dn() const {
1494  return surfjaclevel_dn_;
1495  }
1496 
1497  void surfjaclevel_dn(const blitz::Array<double, 3>& surfjaclevel_dn_in) {
1498  surfjaclevel_dn_ = surfjaclevel_dn_in;
1499  }
1500 
1501 
1502 
1503  const blitz::Array<double, 2>& fluxes_toa() const {
1504  return fluxes_toa_;
1505  }
1506 
1507  void fluxes_toa(const blitz::Array<double, 2>& fluxes_toa_in) {
1508  fluxes_toa_ = fluxes_toa_in;
1509  }
1510 
1511 
1512 
1513  const blitz::Array<double, 4>& profjacfluxes_toa() const {
1514  return profjacfluxes_toa_;
1515  }
1516 
1517  void profjacfluxes_toa(const blitz::Array<double, 4>& profjacfluxes_toa_in) {
1518  profjacfluxes_toa_ = profjacfluxes_toa_in;
1519  }
1520 
1521 
1522 
1523  const blitz::Array<double, 3>& surfjacfluxes_toa() const {
1524  return surfjacfluxes_toa_;
1525  }
1526 
1527  void surfjacfluxes_toa(const blitz::Array<double, 3>& surfjacfluxes_toa_in) {
1528  surfjacfluxes_toa_ = surfjacfluxes_toa_in;
1529  }
1530 
1531 
1532 
1533  const blitz::Array<double, 2>& fluxes_boa() const {
1534  return fluxes_boa_;
1535  }
1536 
1537  void fluxes_boa(const blitz::Array<double, 2>& fluxes_boa_in) {
1538  fluxes_boa_ = fluxes_boa_in;
1539  }
1540 
1541 
1542 
1543  const blitz::Array<double, 4>& profjacfluxes_boa() const {
1544  return profjacfluxes_boa_;
1545  }
1546 
1547  void profjacfluxes_boa(const blitz::Array<double, 4>& profjacfluxes_boa_in) {
1548  profjacfluxes_boa_ = profjacfluxes_boa_in;
1549  }
1550 
1551 
1552 
1553  const blitz::Array<double, 3>& surfjacfluxes_boa() const {
1554  return surfjacfluxes_boa_;
1555  }
1556 
1557  void surfjacfluxes_boa(const blitz::Array<double, 3>& surfjacfluxes_boa_in) {
1558  surfjacfluxes_boa_ = surfjacfluxes_boa_in;
1559  }
1560 
1561 
1562 
1563  const int& status_inputcheck() const {
1564  return status_inputcheck_;
1565  }
1566 
1567 
1568 
1569  const int& c_nmessages() const {
1570  return c_nmessages_;
1571  }
1572 
1573 
1574 
1575  std::vector< std::string > c_messages() const {
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;
1580  }
1581 
1582 
1583 
1584  std::vector< std::string > c_actions() const {
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;
1589  }
1590 
1591 
1592 
1593  const int& status_execution() const {
1594  return status_execution_;
1595  }
1596 
1597 
1598 
1599  std::string e_message() const {
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;
1603  }
1604 
1605 
1606 
1607  std::string e_trace_1() const {
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;
1611  }
1612 
1613 
1614 
1615  std::string e_trace_2() const {
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;
1619  }
1620 
1621 
1622 
1623 
1624  void run() {
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;
1632 
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());
1634 
1635  }
1636 
1637  friend std::ostream& operator<<(std::ostream &output_stream, const Twostream_Lps_Master &obj) {
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
1643  << " max_geometries: " << obj.max_geometries() << std::endl
1644  << " max_user_streams: " << obj.max_user_streams() << std::endl
1645  << " max_user_relazms: " << obj.max_user_relazms() << std::endl
1646  << " max_user_obsgeoms: " << obj.max_user_obsgeoms() << std::endl
1647  << " max_atmoswfs: " << obj.max_atmoswfs() << std::endl
1648  << " max_surfacewfs: " << obj.max_surfacewfs() << std::endl
1649  << " max_sleavewfs: " << obj.max_sleavewfs() << std::endl
1650  << " do_upwelling: " << obj.do_upwelling() << std::endl
1651  << " do_dnwelling: " << obj.do_dnwelling() << std::endl
1652  << " do_plane_parallel: " << obj.do_plane_parallel() << std::endl
1653  << " do_2s_levelout: " << obj.do_2s_levelout() << std::endl
1654  << " do_mvout_only: " << obj.do_mvout_only() << std::endl
1655  << " do_additional_mvout: " << obj.do_additional_mvout() << std::endl
1656  << " do_solar_sources: " << obj.do_solar_sources() << std::endl
1657  << " do_thermal_emission: " << obj.do_thermal_emission() << std::endl
1658  << " do_surface_emission: " << obj.do_surface_emission() << std::endl
1659  << " do_d2s_scaling: " << obj.do_d2s_scaling() << std::endl
1660  << " do_brdf_surface: " << obj.do_brdf_surface() << std::endl
1661  << " do_user_obsgeoms: " << obj.do_user_obsgeoms() << std::endl
1662  << " do_surface_leaving: " << obj.do_surface_leaving() << std::endl
1663  << " do_sl_isotropic: " << obj.do_sl_isotropic() << std::endl
1664  << " do_pentadiag_inverse: " << obj.do_pentadiag_inverse() << std::endl
1665  << " bvpindex: " << obj.bvpindex() << std::endl
1666  << " bvpscalefactor: " << obj.bvpscalefactor() << 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
1673  << " n_user_obsgeoms: " << obj.n_user_obsgeoms() << std::endl
1674  << " user_obsgeoms: " << std::endl << obj.user_obsgeoms() << std::endl
1675  << " n_user_streams: " << obj.n_user_streams() << std::endl
1676  << " user_angles: " << std::endl << obj.user_angles() << std::endl
1677  << " n_user_relazms: " << obj.n_user_relazms() << 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
1689  << " lambertian_albedo: " << obj.lambertian_albedo() << 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
1697  << " do_profile_wfs: " << obj.do_profile_wfs() << std::endl
1698  << " do_surface_wfs: " << obj.do_surface_wfs() << std::endl
1699  << " do_sleave_wfs: " << obj.do_sleave_wfs() << std::endl
1700  << " layer_vary_flag: " << std::endl << obj.layer_vary_flag() << std::endl
1701  << " layer_vary_number: " << std::endl << obj.layer_vary_number() << std::endl
1702  << " n_surface_wfs: " << obj.n_surface_wfs() << std::endl
1703  << " n_sleave_wfs: " << obj.n_sleave_wfs() << std::endl
1704  << "lssl_slterm_isotropic: " << std::endl << obj.lssl_slterm_isotropic() << 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
1728  << " profjacfluxes_toa: " << std::endl << obj.profjacfluxes_toa() << std::endl
1729  << " surfjacfluxes_toa: " << std::endl << obj.surfjacfluxes_toa() << std::endl
1730  << " fluxes_boa: " << std::endl << obj.fluxes_boa() << std::endl
1731  << " profjacfluxes_boa: " << std::endl << obj.profjacfluxes_boa() << std::endl
1732  << " surfjacfluxes_boa: " << std::endl << obj.surfjacfluxes_boa() << std::endl
1733  << " status_inputcheck: " << obj.status_inputcheck() << 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;
1740  output_stream
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;
1746  output_stream
1747  << " status_execution: " << obj.status_execution() << 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;
1752 
1753  }
1754 
1755 private:
1756  int maxlayers_;
1757  int maxtotal_;
1758  int maxmessages_;
1759  int maxbeams_;
1760  int max_geometries_;
1761  int max_user_streams_;
1762  int max_user_relazms_;
1763  int max_user_obsgeoms_;
1764  int max_atmoswfs_;
1765  int max_surfacewfs_;
1766  int max_sleavewfs_;
1767  bool do_upwelling_;
1768  bool do_dnwelling_;
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_;
1782  int bvpindex_;
1783  double bvpscalefactor_;
1784  int taylor_order_;
1785  double taylor_small_;
1786  double tcutoff_;
1787  int nlayers_;
1788  int ntotal_;
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_;
1797  int nbeams_;
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_;
1810  double emissivity_;
1811  double surfbb_;
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_;
1819  int n_surface_wfs_;
1820  int n_sleave_wfs_;
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_;
1839  int n_geometries_;
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_;
1851  int c_nmessages_;
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_;
1858 };
1859 
1860 
1861 
1862 }
1863 #endif
const blitz::Array< int, 1 > & n_brdf_parameters() 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)
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 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)
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 blitz::Array< double, 1 > & height_grid() const
void do_brdf_surface(const bool &do_brdf_surface_in)
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
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
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)
void do_upwelling(const bool &do_upwelling_in)
const blitz::Array< double, 2 > & l_omega_input() 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
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
void do_dnwelling(const bool &do_dnwelling_in)
void do_plane_parallel(const bool &do_plane_parallel_in)
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)
void do_user_obsgeoms(const bool &do_user_obsgeoms_in)
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)
void do_mvout_only(const bool &do_mvout_only_in)
void do_shadow_effect(const bool &do_shadow_effect_in)
const blitz::Array< double, 1 > & user_relazms() const
blitz::Array< double, 3 > & ls_ubrdf_f()
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 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
void user_relazms(const blitz::Array< double, 1 > &user_relazms_in)
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)
void do_surface_emission(const bool &do_surface_emission_in)
void ubrdf_f(const blitz::Array< double, 2 > &ubrdf_f_in)
void l_d2s_scaling(const blitz::Array< double, 2 > &l_d2s_scaling_in)
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 blitz::Array< double, 1 > & d2s_scaling() const
void emissivity(const double &emissivity_in)
void lssl_slterm_isotropic(const blitz::Array< double, 2 > &lssl_slterm_isotropic_in)
void flux_factor(const double &flux_factor_in)
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)
void profjaclevel_up(const blitz::Array< double, 4 > &profjaclevel_up_in)
const blitz::Array< double, 2 > & ls_brdf_f() const
const blitz::Array< double, 3 > & surfjaclevel_up() const
void profilewf_toa(const blitz::Array< double, 3 > &profilewf_toa_in)
const blitz::Array< bool, 1 > & layer_vary_flag() const
void bvpscalefactor(const double &bvpscalefactor_in)
const blitz::Array< double, 2 > & fluxes_boa() const
const blitz::Array< double, 4 > & profjacfluxes_boa() const
blitz::Array< double, 3 > & ls_brdf_f_0()
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)
void surfacewf_toa(const blitz::Array< double, 2 > &surfacewf_toa_in)
void do_2s_levelout(const bool &do_2s_levelout_in)
const blitz::Array< double, 2 > & ubrdf_f() const
void surfbb(const double &surfbb_in)
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)
void do_pentadiag_inverse(const bool &do_pentadiag_inverse_in)
const blitz::Array< bool, 1 > & do_kparams_derivs() 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 blitz::Array< double, 2 > & radlevel_up() const
void slterm_isotropic(const blitz::Array< double, 1 > &slterm_isotropic_in)
void asymm_input(const blitz::Array< double, 1 > &asymm_input_in)
void do_sleave_wfs(const bool &do_sleave_wfs_in)
void ls_brdf_f(const blitz::Array< double, 2 > &ls_brdf_f_in)
blitz::Array< double, 2 > & ls_brdf_f()
void do_sl_isotropic(const bool &do_sl_isotropic_in)
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.
Definition: doxygen_python.h:1
void user_obsgeoms(const blitz::Array< double, 2 > &user_obsgeoms_in)
const blitz::Array< double, 2 > & surfacewf_toa() const
void radlevel_dn(const blitz::Array< double, 2 > &radlevel_dn_in)
void profjacfluxes_toa(const blitz::Array< double, 4 > &profjacfluxes_toa_in)
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)
void ls_ubrdf_f(const blitz::Array< double, 3 > &ls_ubrdf_f_in)
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)
void do_solar_sources(const bool &do_solar_sources_in)
void n_surface_wfs(const int &n_surface_wfs_in)
const blitz::Array< double, 2 > & ubrdf_f() const
const double & lambertian_albedo() 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)
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
void do_surface_wfs(const bool &do_surface_wfs_in)
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 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

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:10