ARTS  2.0.49
doit.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2008 Claudia Emde <claudia.emde@dlr.de>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
18 
19 
20 /*===========================================================================
21  === File description
22  ===========================================================================*/
23 
36 #ifndef doit_h
37 #define doit_h
38 
39 #include "agenda_class.h"
40 #include "matpackVI.h"
41 #include "ppath.h"
42 
43 
45  // Output:
46  Tensor5View ext_mat_field,
47  Tensor4View abs_vec_field,
48  // Input:
49  const Agenda& spt_calc_agenda,
50  const Agenda& opt_prop_part_agenda,
51  const Index& scat_za_index,
52  const Index& scat_aa_index,
53  const ArrayOfIndex& cloudbox_limits,
54  ConstTensor3View t_field,
55  ConstTensor4View pnd_field,
56  const Verbosity& verbosity);
57 
59  Tensor6View i_field,
60  // ppath_step_agenda:
61  const Index& p_index,
62  const Index& scat_za_index,
63  ConstVectorView scat_za_grid,
64  const ArrayOfIndex& cloudbox_limits,
65  ConstTensor6View scat_field,
66  // Calculate scalar gas absorption:
67  const Agenda& abs_scalar_gas_agenda,
68  ConstTensor4View vmr_field,
69  // Gas absorption:
70  const Agenda& opt_prop_gas_agenda,
71  // Propagation path calculation:
72  const Agenda& ppath_step_agenda,
73  ConstVectorView p_grid,
74  ConstTensor3View z_field,
75  ConstMatrixView r_geoid,
76  ConstMatrixView z_surface,
77  // Calculate thermal emission:
78  ConstTensor3View t_field,
79  ConstVectorView f_grid,
80  const Index& f_index,
81  //particle opticla properties
82  ConstTensor5View ext_mat_field,
83  ConstTensor4View abs_vec_field,
84  const Agenda& surface_prop_agenda,
85  const Index& scat_za_interp,
86  const Verbosity& verbosity);
87 
89  // Input and output
90  Tensor6View doit_i_field,
91  // ppath_step_agenda:
92  const Index& p_index,
93  const Index& scat_za_index,
94  ConstVectorView scat_za_grid,
95  const ArrayOfIndex& cloudbox_limits,
96  ConstTensor6View doit_i_field_old,
97  ConstTensor6View doit_scat_field,
98  // Calculate scalar gas absorption:
99  const Agenda& abs_scalar_gas_agenda,
100  ConstTensor4View vmr_field,
101  // Gas absorption:
102  const Agenda& opt_prop_gas_agenda,
103  // Propagation path calculation:
104  const Agenda& ppath_step_agenda,
105  ConstVectorView p_grid,
106  ConstTensor3View z_field,
107  ConstMatrixView r_geoid,
108  ConstMatrixView z_surface,
109  // Calculate thermal emission:
110  ConstTensor3View t_field,
111  ConstVectorView f_grid,
112  // used for surface ?
113  const Index& f_index,
114  //particle optical properties
115  ConstTensor5View ext_mat_field,
116  ConstTensor4View abs_vec_field,
117  const Agenda& surface_prop_agenda,
118  const Index& scat_za_interp,
119  const Verbosity& verbosity);
120 
122  Tensor6View i_field,
123  // ppath_step_agenda:
124  const Index& p_index,
125  const Index& scat_za_index,
126  ConstVectorView scat_za_grid,
127  const ArrayOfIndex& cloudbox_limits,
128  ConstTensor6View scat_field,
129  // Calculate scalar gas absorption:
130  const Agenda& abs_scalar_gas_agenda,
131  ConstTensor4View vmr_field,
132  // Gas absorption:
133  const Agenda& opt_prop_gas_agenda,
134  // Propagation path calculation:
135  const Agenda& ppath_step_agenda,
136  ConstVectorView p_grid,
137  ConstTensor3View z_field,
138  ConstMatrixView r_geoid,
139  // Calculate thermal emission:
140  ConstTensor3View t_field,
141  ConstVectorView f_grid,
142  const Index& f_index,
143  //particle opticla properties
144  ConstTensor5View ext_mat_field,
145  ConstTensor4View abs_vec_field,
146  // const Agenda& surface_agenda,
147  const Verbosity& verbosity);
148 
150  Tensor6View doit_i_field,
151  // ppath_step_agenda:
152  const Index& p_index,
153  const Index& lat_index,
154  const Index& lon_index,
155  const Index& scat_za_index,
156  const Index& scat_aa_index,
157  ConstVectorView scat_za_grid,
158  ConstVectorView scat_aa_grid,
159  const ArrayOfIndex& cloudbox_limits,
160  ConstTensor6View doit_scat_field,
161  // Calculate scalar gas absorption:
162  const Agenda& abs_scalar_gas_agenda,
163  ConstTensor4View vmr_field,
164  // Gas absorption:
165  const Agenda& opt_prop_gas_agenda,
166  // Propagation path calculation:
167  const Agenda& ppath_step_agenda,
168  ConstVectorView p_grid,
169  ConstVectorView lat_grid,
170  ConstVectorView lon_grid,
171  ConstTensor3View z_field,
172  ConstMatrixView r_geoid,
173  ConstMatrixView z_surface,
174  // Calculate thermal emission:
175  ConstTensor3View t_field,
176  ConstVectorView f_grid,
177  const Index& f_index,
178  //particle optical properties
179  ConstTensor5View ext_mat_field,
180  ConstTensor4View abs_vec_field,
181  const Index&, //scat_za_interp
182  const Verbosity& verbosity
183  );
184 
186  //Output
187  Tensor6View doit_i_field,
188  // Input
189  const Agenda& abs_scalar_gas_agenda,
190  const Agenda& opt_prop_gas_agenda,
191  const Ppath& ppath_step,
192  ConstVectorView t_int,
193  ConstMatrixView vmr_list_int,
194  ConstTensor3View ext_mat_int,
195  ConstMatrixView abs_vec_int,
196  ConstMatrixView sca_vec_int,
197  ConstMatrixView doit_i_field_int,
198  ConstVectorView p_int,
199  const ArrayOfIndex& cloudbox_limits,
200  ConstVectorView f_grid,
201  const Index& f_index,
202  const Index& p_index,
203  const Index& lat_index,
204  const Index& lon_index,
205  const Index& scat_za_index,
206  const Index& scat_aa_index,
207  const Verbosity& verbosity);
208 
209 void cloud_RT_surface(Workspace& ws,
210  //Output
211  Tensor6View doit_i_field,
212  //Input
213  const Agenda& surface_prop_agenda,
214  const Index& f_index,
215  const Index& stokes_dim,
216  const Ppath& ppath_step,
217  const ArrayOfIndex& cloudbox_limits,
218  ConstVectorView scat_za_grid,
219  const Index& scat_za_index
220  );
221 
222 
224  Ppath& ppath_step,
225  const Agenda& ppath_step_agenda,
226  const Index& p,
227  const Index& lat,
228  const Index& lon,
229  ConstTensor3View z_field,
230  ConstMatrixView r_geoid,
231  ConstMatrixView z_surface,
232  ConstVectorView scat_za_grid,
233  ConstVectorView aa_grid,
234  const Index& scat_za_index,
235  const Index& scat_aa_index,
236  ConstVectorView p_grid,
237  ConstVectorView lat_grid,
238  ConstVectorView lon_grid);
239 
240 void interp_cloud_coeff1D(//Output
241  Tensor3View ext_mat_int,
242  MatrixView abs_vec_int,
243  MatrixView sca_vec_int,
244  MatrixView doit_i_field_int,
245  VectorView t_int,
246  MatrixView vmr_list_int,
247  VectorView p_int,
248  //Input
249  ConstTensor5View ext_mat_field,
250  ConstTensor4View abs_vec_field,
251  ConstTensor6View doit_scat_field,
252  ConstTensor6View doit_i_field,
253  ConstTensor3View t_field,
254  ConstTensor4View vmr_field,
255  ConstVectorView p_grid,
256  const Ppath& ppath_step,
257  const ArrayOfIndex& cloudbox_limits,
258  ConstVectorView scat_za_grid,
259  const Index& scat_za_interp,
260  const Verbosity& verbosity);
261 
262 void za_gridOpt(//Output:
263  Vector& za_grid_opt,
264  Matrix& i_field_opt,
265  // Input
266  ConstVectorView za_grid_fine,
267  ConstTensor6View i_field,
268  const Numeric& acc,
269  const Index& scat_za_interp);
270 
271 
273  const Tensor7& scat_i_p,
274  const Tensor7& scat_i_lat,
275  const Tensor7& scat_i_lon,
276  const Tensor4& doit_i_field1D_spectrum,
277  const GridPos& rte_gp_p,
278  const GridPos& rte_gp_lat,
279  const GridPos& rte_gp_lon,
280  const Vector& rte_los,
281  const Index& cloudbox_on,
282  const ArrayOfIndex& cloudbox_limits,
283  const Index& atmosphere_dim,
284  const Index& stokes_dim,
285  const Vector& scat_za_grid,
286  const Vector& scat_aa_grid,
287  const Vector& f_grid,
288  const String& interpmeth,
289  const Verbosity& verbosity);
290 
291 
292 
293 #endif //doit_h
Matrix
The Matrix class.
Definition: matpackI.h:767
cloud_ppath_update1D_planeparallel
void cloud_ppath_update1D_planeparallel(Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Verbosity &verbosity)
Radiative transfer calculation inside cloudbox for planeparallel case.
Definition: doit.cc:1382
MatrixView
The MatrixView class.
Definition: matpackI.h:668
za_gridOpt
void za_gridOpt(Vector &za_grid_opt, Matrix &i_field_opt, ConstVectorView za_grid_fine, ConstTensor6View i_field, const Numeric &acc, const Index &scat_za_interp)
Definition: doit.cc:1886
cloud_ppath_update1D_noseq
void cloud_ppath_update1D_noseq(Workspace &ws, Tensor6View doit_i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View doit_i_field_old, ConstTensor6View doit_scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Agenda &surface_prop_agenda, const Index &scat_za_interp, const Verbosity &verbosity)
cloud_ppath_update1D_noseq
Definition: doit.cc:392
cloud_RT_no_background
void cloud_RT_no_background(Workspace &ws, Tensor6View doit_i_field, const Agenda &abs_scalar_gas_agenda, const Agenda &opt_prop_gas_agenda, const Ppath &ppath_step, ConstVectorView t_int, ConstMatrixView vmr_list_int, ConstTensor3View ext_mat_int, ConstMatrixView abs_vec_int, ConstMatrixView sca_vec_int, ConstMatrixView doit_i_field_int, ConstVectorView p_int, const ArrayOfIndex &cloudbox_limits, ConstVectorView f_grid, const Index &f_index, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &scat_za_index, const Index &scat_aa_index, const Verbosity &verbosity)
cloud_RT_no_background
Definition: doit.cc:863
Tensor4
The Tensor4 class.
Definition: matpackIV.h:375
cloud_ppath_update3D
void cloud_ppath_update3D(Workspace &ws, Tensor6View doit_i_field, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &scat_za_index, const Index &scat_aa_index, ConstVectorView scat_za_grid, ConstVectorView scat_aa_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View doit_scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Index &, const Verbosity &verbosity)
Radiative transfer calculation along a path inside the cloudbox (3D).
Definition: doit.cc:581
Ppath
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:59
Agenda
The Agenda class.
Definition: agenda_class.h:44
cloud_ppath_update1D
void cloud_ppath_update1D(Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Agenda &surface_prop_agenda, const Index &scat_za_interp, const Verbosity &verbosity)
cloud_ppath_update1D
Definition: doit.cc:247
ConstTensor4View
A constant view of a Tensor4.
Definition: matpackIV.h:149
Tensor3View
The Tensor3View class.
Definition: matpackIII.h:234
Array< Index >
agenda_class.h
Declarations for agendas.
cloud_fieldsCalc
void cloud_fieldsCalc(Workspace &ws, Tensor5View ext_mat_field, Tensor4View abs_vec_field, const Agenda &spt_calc_agenda, const Agenda &opt_prop_part_agenda, const Index &scat_za_index, const Index &scat_aa_index, const ArrayOfIndex &cloudbox_limits, ConstTensor3View t_field, ConstTensor4View pnd_field, const Verbosity &verbosity)
cloud_fieldsCalc
Definition: doit.cc:86
cloud_RT_surface
void cloud_RT_surface(Workspace &ws, Tensor6View doit_i_field, const Agenda &surface_prop_agenda, const Index &f_index, const Index &stokes_dim, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView scat_za_grid, const Index &scat_za_index)
cloud_RT_surface
Definition: doit.cc:1016
my_basic_string
The implementation for String, the ARTS string class.
Definition: mystring.h:62
VectorView
The VectorView class.
Definition: matpackI.h:373
ConstTensor6View
A constant view of a Tensor6.
Definition: matpackVI.h:167
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Verbosity
Definition: messages.h:50
Tensor5View
The Tensor5View class.
Definition: matpackV.h:278
ConstMatrixView
A constant view of a Matrix.
Definition: matpackI.h:591
GridPos
Structure to store a grid position.
Definition: interpolation.h:74
ppath.h
Propagation path structure and functions.
Workspace
Workspace class.
Definition: workspace_ng.h:47
ConstTensor3View
A constant view of a Tensor3.
Definition: matpackIII.h:147
Tensor4View
The Tensor4View class.
Definition: matpackIV.h:245
iy_interp_cloudbox_field
void iy_interp_cloudbox_field(Matrix &iy, const Tensor7 &scat_i_p, const Tensor7 &scat_i_lat, const Tensor7 &scat_i_lon, const Tensor4 &doit_i_field1D_spectrum, const GridPos &rte_gp_p, const GridPos &rte_gp_lat, const GridPos &rte_gp_lon, const Vector &rte_los, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Index &atmosphere_dim, const Index &stokes_dim, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Vector &f_grid, const String &interpmeth, const Verbosity &verbosity)
Interpolation of cloud box intensity field.
Definition: doit.cc:2033
interp_cloud_coeff1D
void interp_cloud_coeff1D(Tensor3View ext_mat_int, MatrixView abs_vec_int, MatrixView sca_vec_int, MatrixView doit_i_field_int, VectorView t_int, MatrixView vmr_list_int, VectorView p_int, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, ConstTensor6View doit_scat_field, ConstTensor6View doit_i_field, ConstTensor3View t_field, ConstTensor4View vmr_field, ConstVectorView p_grid, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView scat_za_grid, const Index &scat_za_interp, const Verbosity &verbosity)
interp_cloud_coeff1D
Definition: doit.cc:1187
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
ppath_step_in_cloudbox
void ppath_step_in_cloudbox(Workspace &ws, Ppath &ppath_step, const Agenda &ppath_step_agenda, const Index &p, const Index &lat, const Index &lon, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstVectorView scat_za_grid, ConstVectorView aa_grid, const Index &scat_za_index, const Index &scat_aa_index, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid)
Definition: doit.cc:1119
Vector
The Vector class.
Definition: matpackI.h:555
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:300
matpackVI.h
ConstTensor5View
A constant view of a Tensor5.
Definition: matpackV.h:160
Tensor7
The Tensor7 class.
Definition: matpackVII.h:1912
Tensor6View
The Tensor6View class.
Definition: matpackVI.h:450