ARTS  2.2.66
agendas.cc
Go to the documentation of this file.
1 /* Copyright (C) 2002-2012 Stefan Buehler <sbuehler@ltu.se>
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 
30 #include "agenda_record.h"
31 
32 
33 // Some #defines and typedefs to make the records better readable:
34 #define NAME(x) x
35 #define DESCRIPTION(x) x
36 #define OUTPUT MakeArray<String>
37 #define INPUT MakeArray<String>
38 
40 namespace global_data {
42 }
43 
45 {
47 
48  // Initialize to zero, just in case:
49  agenda_data.resize(0);
50 
51  /*----------------------------------------------------------------------
52  Agendas must be put in in alphabetical order.
53  No distinction is made between uppercase and lowercase letters.
54  The sign "_" comes after all letters.
55  ----------------------------------------------------------------------*/
56 
57  agenda_data.push_back
58  (AgRecord
59  ( NAME( "propmat_clearsky_agenda" ),
61  (
62  "This agenda calculates the absorption coefficient matrix for all\n"
63  "absorption species as a function of the given atmospheric state for\n"
64  "one point in the atmosphere. The result is returned in\n"
65  "*propmat_clearsky*. The atmospheric state has to be specified by\n"
66  "*rtp_pressure*, *rtp_temperature*, *rtp_mag*, and *rtp_vmr*.\n"
67  "\n"
68  "The methods inside this agenda may require a lot of additional\n"
69  "input variables, such as *abs_species*, etc.\n"
70  "\n"
71  "The include file 'agendas.arts' predefines some possible agendas\n"
72  "that can be used here.\n"
73  ),
74  OUTPUT( "propmat_clearsky" ),
75  INPUT( "f_grid", "rtp_mag", "rtp_los", "rtp_pressure",
76  "rtp_temperature", "rtp_vmr" )));
77 
78  agenda_data.push_back
79  (AgRecord
80  ( NAME( "abs_xsec_agenda" ),
82  (
83  "Calculate scalar gas absorption cross sections.\n"
84  "\n"
85  "Basically, this agenda calculates absorption for all the tags defined\n"
86  "in abs_species. It is used both in the calculation of an absorption\n"
87  "lookup table, and in on-the-fly calculations. Typical effects to\n"
88  "include here are:\n"
89  "\n"
90  "Explicit line-by-line calculation (*abs_xsec_per_speciesAddLines*),\n"
91  "\n"
92  "Continua and complete absorption models (*abs_xsec_per_speciesAddConts*), and\n"
93  "\n"
94  "HITRAN style CIA continua (*abs_xsec_per_speciesAddCIA*)\n"
95  "\n"
96  "The only kind of absorption tag not handled here are Zeeman tags\n"
97  "and free electron density tags, because they need additional input\n"
98  "and because they return an absorption matrix, rather than a scalar.\n"
99  "\n"
100  "The include file 'agendas.arts' predefines a number of agendas that\n"
101  "should be useful for most users.\n"
102  ),
103  OUTPUT( "abs_xsec_per_species" ),
104  INPUT( "abs_species", "abs_species_active",
105  "f_grid", "abs_p", "abs_t", "abs_vmrs" )));
106 
107  agenda_data.push_back
108  (AgRecord
109  ( NAME( "blackbody_radiation_agenda" ),
111  (
112  "Returns *blackbody_radiation*.\n"
113  "\n"
114  "The task of this agenda is to return *blackbody_radiation* for the\n"
115  "given temperature (*rtp_temperature*).\n"
116  "\n"
117  "The include file 'agendas.arts' predefines an agenda that can be\n"
118  "used here.\n"
119  ),
120  OUTPUT( "blackbody_radiation" ),
121  INPUT( "rtp_temperature", "f_grid" )));
122 
123  agenda_data.push_back
124  (AgRecord
125  ( NAME( "doit_conv_test_agenda" ),
127  (
128  "Compute the convergence test.\n"
129  "\n"
130  "The method *doit_i_fieldIterate* solves the VRTE iteratively."
131  "This method requires \n"
132  "a convergence test. The user can choose different convergence tests\n"
133  "which are to be defined in this agenda.\n"
134  "\n"
135  "Possible workspace methods are:\n"
136  "*doit_conv_flagAbs*: Calculates the absolute differences \n"
137  " for each Stokes component separately.\n"
138  "*doit_conv_flagAbsBT*: Same as above, but the convergence limit\n"
139  " can be specified in Kelvin BT (Rayleigh Jeans).\n"
140  "*doit_conv_flagLsq*: Least square convergence test. Not recommended\n"
141  " because result can be inaccurate.\n"
142  ),
143  OUTPUT( "doit_conv_flag", "doit_iteration_counter" ),
144  INPUT( "doit_conv_flag", "doit_iteration_counter",
145  "doit_i_field", "doit_i_field_old" )));
146 
147  agenda_data.push_back
148  (AgRecord
149  ( NAME( "doit_mono_agenda" ),
151  (
152  "Performs monochromatic DOIT calculation."
153  "\n"
154  "This agenda includes for example the following methods:\n"
155  " 1. *DoitScatteringDataPrepare* \n"
156  " 2. *doit_i_fieldSetClearsky* \n"
157  " 3. *doit_i_fieldIterate*\n"
158  " 4. *DoitCloudboxFieldPut*\n"
159  "\n"
160  "The result of the agenda is the radiation field inside the \n"
161  "cloudbox and on the cloudbox boundary, which can be used \n"
162  "as radiative background for a clearsky radiative transfer \n"
163  "calculation. \n"
164  "\n"
165  "See the ArtsWiki page UsingArtsDoit and the online documentation\n"
166  "for more information about the methods.\n"
167  ),
168  OUTPUT( "doit_i_field", "scat_i_p", "scat_i_lat", "scat_i_lon",
169  "doit_i_field1D_spectrum"),
170  INPUT("doit_i_field", "f_grid", "f_index",
171  "scat_i_p", "scat_i_lat", "scat_i_lon", "doit_i_field1D_spectrum")));
172 
173  agenda_data.push_back
174  (AgRecord
175  ( NAME( "doit_scat_field_agenda" ),
177  (
178  "Calculation of the scattering integral field (DOIT). \n"
179  "\n"
180  "This agenda is called repeatedly in each DOIT iteration.\n"
181  "The following methods can be used for calculating the \n"
182  "scattering integral field: \n"
183  "\n"
184  "*doit_scat_fieldCalc*: This method calculates the scattering \n"
185  " integral field by using the angular grids *scat_za_grid* \n"
186  " and *scat_aa_grid*, which are also used in the update of the \n"
187  " radiation field (*doit_rte_agenda*).\n"
188  "\n"
189  "*doit_scat_fieldCalcLimb*: This method calculates the scattering \n"
190  " integral field. The difference to the previous method is that \n"
191  " the data is interpolated on equidistant angular grids. \n"
192  " Especially for limb, where a very fine zenith angle grid \n"
193  " resolution is required for the RT transfer part, this method \n"
194  " is much faster than *doit_scat_fieldCalc*. \n"
195  ),
196  OUTPUT( "doit_scat_field" ),
197  INPUT( "doit_scat_field", "doit_i_field")));
198 
199  agenda_data.push_back
200  (AgRecord
201  ( NAME( "doit_rte_agenda" ),
203  (
204  "Radiative transfer calculations in cloudbox.\n"
205  "\n"
206  "Agenda for radiative transfer step calculations with \n"
207  "fixed scattering integral term shoul be specified here.\n"
208  "Output is the updated radiation field in the cloudbox. \n"
209  "This agenda is called repeatedly in each DOIT iteration.\n"
210  "\n"
211  "Normally one should use \n"
212  "*doit_i_fieldUpdateSeq{1,3}D*: Seqential update of the"
213  "radiation field.\n"
214  " This method is the fastest and most accurate method.\n"
215  "\n"
216  "A very similar method in plane parallel approximation is \n"
217  "*doit_i_fieldUpdate{1,3}DPlaneParallel*: This method also \n"
218  " incluldes the sequential update, and it is slightly faster than\n"
219  " *doit_i_fieldUpdateSeq{1,3}D*. The drawback is, that it is less\n"
220  " accurate, especially for limb geometries and for larger \n"
221  " off-nadir viewing angles. \n"
222  "\n"
223  "The following methods were used before the sequential update\n"
224  "was invented. They are very slow and should therefore only \n"
225  "be used for test cases.\n"
226  "*doit_i_fieldUpdate{1,3}D*: Old function.\n"
227  ),
228  OUTPUT( "doit_i_field" ),
229  INPUT( "doit_i_field", "doit_scat_field" )));
230 
231  agenda_data.push_back
232  (AgRecord
233  ( NAME( "forloop_agenda" ),
235  (
236  "The body for a for loop.\n"
237  "\n"
238  "This agenda contains the body of the for loop to be execute by the\n"
239  "method *ForLoop*.\n"
240  ),
241  OUTPUT(),
242  INPUT( "forloop_index" )));
243 
244  /*
245  agenda_data.push_back
246  (AgRecord
247  ( NAME( "fos_y_agenda" ),
248  DESCRIPTION
249  (
250  "Calculation of incoming radiation field for FOS method.\n"
251  "\n"
252  "The direct task of the agenda is to determine the incoming radiation\n"
253  "field, to evaluate of the scattering integral, for each angle in\n"
254  "*fos_angle*. The data are packed into *fos_y*.\n"
255  "\n"
256  "The underlying purpose of this agenda is to allow different\n"
257  "shortcuts for estimating the incoming radiation field. For example,\n"
258  "calculations can be performed for a few directions and then an\n"
259  "interpolation is performed to obtain the intensity for other\n"
260  "directions. The data could also be taken from a pre-calculated\n"
261  "database.\n"
262  ),
263  OUTPUT( "fos_y" ),
264  INPUT( "rte_pos", "fos_angles", "fos_n", "fos_i" )));
265  */
266 
267 // agenda_data.push_back
268 // (AgRecord
269 // ( NAME( "geomag_los_calc_agenda" ),
270 // DESCRIPTION
271 // (
272 // "Calculates the magnetic field along a given propagation path.\n"
273 // "\n"
274 // "The agenda relates the vector of the geomagnetic field to \n"
275 // "a specified propagation path. As a result the magnitude of \n"
276 // "this vector is calculated in each point of the propagation \n"
277 // "path, alongside with the corresponding angle between the \n"
278 // "geomagnetic field vector and the propagation direction. \n"
279 // "The output is the WSV *geomag_los*, containing the two \n"
280 // "quantities discussed above. \n"
281 // "\n"
282 // "Output: \n"
283 // " geomag_los : Magnetic field along LOS plus angle \n"
284 // "\n"
285 // "Input: ppath_ \n"
286 // " geomag_intensitities.xml \n"
287 // "\n"
288 // ),
289 // OUTPUT( "geomag_los" ),
290 // INPUT( )));
291 
292  agenda_data.push_back
293  (AgRecord
294  ( NAME( "g0_agenda" ),
296  (
297  "Calculation of the gravity at zero altitude.\n"
298  "\n"
299  "Returns *g0* for given geographical position.\n"
300  ),
301  OUTPUT( "g0" ),
302  INPUT( "lat", "lon" )));
303 
304  agenda_data.push_back
305  (AgRecord
306  ( NAME( "iy_cloudbox_agenda" ),
308  (
309  "Intensity at boundary or interior of the cloudbox.\n"
310  "\n"
311  "The task of the agenda is to determine the intensity at some point\n"
312  "at the boundary of or inside the cloudbox. The actual calculations\n"
313  "inside the agenda differ depending on scattering solution method.\n"
314  "If DOIT is used, an interpolating of the intensity field should be\n"
315  "performed. Another option is to start backward Monte Carlo \n"
316  "calculations from this point.\n"
317  "\n"
318  "A function calling this agenda shall set *rte_pos* and *rte_los* to\n"
319  "the position and line-of-sight for which the scattered radiation\n"
320  "shall be determined.\n"
321  "\n"
322  "The include-file 'agendas.arts' pre-defines some agendas that can\n"
323  "either be used directly, or serve as examples.\n"
324  ),
325  OUTPUT( "iy" ),
326  INPUT( "f_grid", "rtp_pos", "rtp_los" )));
327 
328  agenda_data.push_back
329  (AgRecord
330  ( NAME( "iy_main_agenda" ),
332  (
333  "Calculation of a single monochromatic pencil beam spectrum.\n"
334  "\n"
335  "The task of the agenda is to calculate the monochromatic pencil beam\n"
336  "spectrum for the position specified by *rte_pos* and the viewing\n"
337  "direction specified by *rte_los*.\n"
338  "\n"
339  "Methods for this agenda can either handle the complete calculation,\n"
340  "make use of e.g. *iy_cloudbox_agenda* or be restricted to special\n"
341  "cases. See the documentation for the different methods.\n"
342  "\n"
343  "The include-file 'agendas.arts' predefines some typical alternatives\n"
344  "that can be used directly, or adapted for specific applications.\n"
345  ),
346  OUTPUT( "iy", "iy_aux", "ppath", "diy_dx" ),
347  INPUT( "iy_agenda_call1", "iy_transmission", "iy_aux_vars",
348  "cloudbox_on", "jacobian_do", "t_field", "z_field", "vmr_field",
349  "f_grid", "rte_pos", "rte_los", "rte_pos2" )));
350 
351  agenda_data.push_back
352  (AgRecord
353  ( NAME( "iy_space_agenda" ),
355  (
356  "Downwelling radiation at the top of the atmosphere.\n"
357  "\n"
358  "Possible terms to include in this agenda include cosmic background\n"
359  "radiation and solar radiation.\n"
360  "\n"
361  "A function calling this agenda shall set *rtp_pos* and *rtp_los* to\n"
362  "the position and line-of-sight for which the entering radiation \n"
363  "shall be determined. The position and line-of-sight must be known, \n"
364  "for example, when radiation from the sun is considered.\n"
365  "\n"
366  "The include-file 'agendas.arts' predefines an agenda that can be\n"
367  "applied directly for most users.\n"
368  ),
369  OUTPUT( "iy" ),
370  INPUT( "f_grid", "rtp_pos", "rtp_los" )));
371 
372  agenda_data.push_back
373  (AgRecord
374  ( NAME( "iy_sub_agenda" ),
376  (
377  "Sub-agenda to *iy_main_agenda*. \n"
378  "\n"
379  "The purpose of this agenda is to make it possible to introduce a\n"
380  "second layer inside *iy_main_agenda*. That is, *iy_main_agenda*\n"
381  "calls this agenda to obtain *iy* and associated variables. See\n"
382  "*iyLoopFrequencies* for example usage.\n"
383  "\n"
384  "This agenda has exactly the same in- and output as *iy_main_agenda*.\n"
385  ),
386  OUTPUT( "iy", "iy_aux", "ppath", "diy_dx" ),
387  INPUT( "iy_agenda_call1", "iy_transmission", "iy_aux_vars",
388  "cloudbox_on", "jacobian_do", "t_field", "z_field", "vmr_field",
389  "f_grid", "rte_pos", "rte_los", "rte_pos2" )));
390 
391  agenda_data.push_back
392  (AgRecord
393  ( NAME( "iy_surface_agenda" ),
395  (
396  "Upwelling radiation from the surface.\n"
397  "\n"
398  "The task of the agenda is to determine the upwelling intensity from\n"
399  "the surface, for given point and direction.\n"
400  "\n"
401  "The standard choice should be to make use of *surface_rtprop_agenda*\n"
402  "through the WSM *iySurfaceRtpropAgenda*.\n"
403  "\n"
404  "A function calling this agenda shall set *rtp_pos* and *rtp_los* to\n"
405  "the position and line-of-sight for which the upwelling radiation\n"
406  "shall be determined.\n"
407  "\n"
408  "See also the include-file 'agendas.arts' for a predefined agenda\n"
409  "suitable to be used in most applications.\n"
410  ),
411  OUTPUT( "iy", "diy_dx" ),
412  INPUT( "iy_transmission", "cloudbox_on",
413  "jacobian_do", "t_field", "z_field", "vmr_field", "f_grid",
414  "iy_main_agenda", "rtp_pos", "rtp_los", "rte_pos2" )));
415 
416  agenda_data.push_back
417  (AgRecord
418  ( NAME( "iy_transmitter_agenda" ),
420  (
421  "Transmitted signal.\n"
422  "\n"
423  "This agenda describes the signal at the start of the propagation\n"
424  "path for calculations of transmission type. That is, the agenda\n"
425  "describes a transmitter, which either can be a natural source or\n"
426  "an artificial device.\n"
427  "\n"
428  "The include-file 'agendas.arts' defines an example agenda that\n"
429  "can be used for transmission calculations\n"
430  ),
431  OUTPUT( "iy" ),
432  INPUT( "f_grid", "rtp_pos", "rtp_los" )));
433 
434  agenda_data.push_back
435  (AgRecord
436  ( NAME( "jacobian_agenda" ),
438  (
439  "Pure numerical Jacobian calculations.\n"
440  "\n"
441  "Parts of the Jacobian matrix can be determined by (semi-)analytical\n"
442  "expressions, while other parts are calculated in apure numerical\n"
443  "manner (by perturbations). This agenda describes the calculations to\n"
444  "be performed in the later case.\n"
445  "\n"
446  "This agenda is normally not set directly by the user, but is created\n"
447  "by calling the the jacobianAdd set of methods.\n"
448  ),
449  OUTPUT( "jacobian" ),
450  INPUT( "jacobian", "mblock_index", "iyb", "yb" )));
451 
452  agenda_data.push_back
453  (AgRecord
454  ( NAME( "main_agenda" ),
456  (
457  "The agenda corresponding to the entire controlfile. This is\n"
458  "executed when ARTS is run.\n"
459  ),
460  OUTPUT(),
461  INPUT()));
462 
463  agenda_data.push_back
464  (AgRecord
465  ( NAME( "met_profile_calc_agenda" ),
467  (
468  "This agenda is used for metoffice profile calculations.\n"
469  "\n"
470  "This agenda is called inside the method *ybatchMetProfiles* which is\n"
471  "used to make a batch calculation for the metoffice profiles. \n"
472  "See the documentation of *ybatchMetProfiles* for more information.\n"
473  "\n"
474  "This agenda can be, for example, set up like this:\n"
475  "\n"
476  "*AtmFieldsCalc*\n"
477  "*abs_lookupAdapt*\n"
478  "*ScatteringInit *\n"
479  "*CloudboxGetIncoming*\n"
480  "*ScatteringMain*\n"
481  "*RteCalc*\n"
482  "*yNoPolarisation*\n"
483  "\n"
484  "For example, if you want the output in brightness temperature unit,\n"
485  "then add the method *VectorToTbByPlanck*.\n"
486  ),
487  OUTPUT( "y" ),
488  INPUT("t_field_raw", "vmr_field_raw", "z_field_raw", "pnd_field_raw",
489  "p_grid", "sensor_los", "cloudbox_on", "cloudbox_limits",
490  "z_surface")));
491 
492  agenda_data.push_back
493  (AgRecord
494  ( NAME( "opt_prop_part_agenda" ),
496  (
497  "Calculate the optical properties (absorption vector and extinction.\n"
498  "matrix) for particles at a given atmospheric grid point.\n"
499  "\n"
500  "This agenda, for example, can be defined in the following manner:\n"
501  "\n"
502  "*ext_matAddPart* : This method calculates the extinction \n"
503  " matrix for particles and adds it to the \n"
504  " workspace variable *ext_mat*.\n"
505  "*abs_vecAddPart* : This method calculates the absorption\n"
506  " vector for particles and adds it to the\n"
507  " workspace variables abs_vec.\n"
508  " \n"
509  "Note that the initialization of *ext_mat* is not done inside the\n"
510  "agenda, so *ext_mat* has to be initialize before executing the \n"
511  "agenda.\n"
512  "\n"
513  "Output :\n"
514  " ext_mat : Extinction matrix.\n"
515  " abs_vec : Absorption vector. \n"
516  "\n"
517  "Input:\n"
518  " ext_mat : Extinction matrix. \n"
519  " ext_mat_spt : Extinction matrix for single particle type. \n"
520  " abs_vec : Absorption vector. \n"
521  " abs_vec_spt : Absorption vector for single particle type. \n"
522  " pnd_field : Particle number density field. \n"
523  " atmosphere_dim: Atmospheric dimension. \n"
524  " scat_p_index : Position. \n"
525  " scat_lat_index : Position. \n"
526  " scat_lon_index : Position. \n"
527  ),
528  OUTPUT( "ext_mat", "abs_vec" ),
529  INPUT( "ext_mat", "abs_vec",
530  "ext_mat_spt", "abs_vec_spt",
531  "scat_p_index", "scat_lat_index",
532  "scat_lon_index" )));
533 
534  agenda_data.push_back
535  (AgRecord
536  ( NAME( "pha_mat_spt_agenda" ),
538  (
539  "Calculates the phase matrix for a single particle type.\n"
540  "\n"
541  "Different options are possible for the usage of this agenda: \n"
542  "*pha_mat_sptFromData* or *pha_mat_sptDOITOpt*. \n"
543  ),
544  OUTPUT( "pha_mat_spt"),
545  INPUT( "pha_mat_spt", "scat_za_index", "scat_lat_index", "scat_lon_index",
546  "scat_p_index", "scat_aa_index", "rtp_temperature")));
547 
548  agenda_data.push_back
549  (AgRecord
550  ( NAME( "ppath_agenda" ),
552  (
553  "Calculation of complete propagation paths.\n"
554  "\n"
555  "In contrast to *ppath_step_agenda* that controls the ray tracing\n"
556  "inside each grid box, this agenda determines how complete paths are\n"
557  "determined. The standard choice is to do this in a step-by-step\n"
558  "manner using *ppath_step_agenda*, with this agenda set to call\n"
559  "*ppathStepByStep*.\n"
560  "\n"
561  "The WSV *rte_los* is both input and output as in some cases it is\n"
562  "determined as part of the propagation path calculations (such as for"
563  "for radio link calculations).\n"
564  "\n"
565  "The include file 'agendas.arts' predefines some agendas that can\n"
566  "either be used directly, or serve as inspiration.\n"
567  ),
568  OUTPUT( "ppath" ),
569  INPUT( "ppath_lraytrace", "rte_pos", "rte_los", "rte_pos2",
570  "cloudbox_on", "ppath_inside_cloudbox_do", "t_field", "z_field",
571  "vmr_field", "f_grid" )));
572 
573  agenda_data.push_back
574  (AgRecord
575  ( NAME( "ppath_step_agenda" ),
577  (
578  "Calculation of a propagation path step.\n"
579  "\n"
580  "A propagation path step is defined as the path between some point \n"
581  "to a crossing with either the pressure, latitude or longitude grid,\n"
582  "and this agenda performs the calculations to determine such a \n"
583  "partial propagation path. The starting point is normally a grid \n"
584  "crossing point, but can also be an arbitrary point inside the \n"
585  "atmosphere, such as the sensor position. Only points inside the \n"
586  "model atmosphere are handled.\n"
587  "\n"
588  "The communication between this agenda and the calling method is \n"
589  "handled by *ppath_step*. That variable is used both as input and \n"
590  "output to *ppath_step_agenda*. The agenda gets back *ppath_step* \n"
591  "as returned to the calling method and the last path point hold by \n"
592  "the structure is accordingly the starting point for the new \n"
593  "calculations. If a total propagation path shall be determined, this\n"
594  "agenda is called repeatedly until the starting point of the \n"
595  "propagation path is found and *ppath_step* will hold all path \n"
596  "steps that together make up *ppath*. The starting point is included\n"
597  "in the returned structure. \n"
598  "\n"
599  "The path is determined by starting at the end point and moving \n"
600  "backwards to the starting point. The calculations are initiated by \n"
601  "filling *ppath_step* with the practical end point of the path. \n"
602  "This is either the position of the sensor (true or hypothetical), \n"
603  "or some point at the top of the atmosphere (determined by\n"
604  "geometrical calculations starting at the sensor). This \n"
605  "initialisation is not handled by *ppath_step_agenda* (but by \n"
606  "the internal function ppath_start_stepping). \n"
607  "\n"
608  "The *ppath_step_agenda* put in points along the propagation path \n"
609  "at all crossings with the grids, tangent points and points of \n"
610  "surface reflection. It is also allowed to make agendas that put in \n"
611  "additional points to fulfil some criterion, such as a maximum \n"
612  "distance along the path between the points. Accordingly, the \n"
613  "number of new points of each step can exceed one.\n"
614  "\n"
615  "The include file 'agendas.arts' defines some agendas that can be\n"
616  "used here."
617  ),
618  OUTPUT( "ppath_step" ),
619  INPUT( "ppath_step", "ppath_lraytrace", "t_field", "z_field",
620  "vmr_field", "f_grid" )));
621 
622  agenda_data.push_back
623  (AgRecord
624  ( NAME( "refr_index_air_agenda" ),
626  (
627  "Calculation of the refractive index of air.\n"
628  "\n"
629  "This agenda should calculate the summed refractive index for all\n"
630  "relevant atmospheric constituents, with respect to both phase and\n"
631  "group velocity.\n"
632  "\n"
633  "The include file 'agendas.arts' predefines several agendas that\n"
634  "may either be used directly, or serve as inspiration.\n"
635  ),
636  OUTPUT( "refr_index_air", "refr_index_air_group" ),
637  INPUT( "rtp_pressure", "rtp_temperature", "rtp_vmr", "f_grid" )));
638 
639  agenda_data.push_back
640  (AgRecord
641  ( NAME( "sensor_response_agenda" ),
643  (
644  "The sensor response data for present measurement block.\n"
645  "\n"
646  "This agenda shall provide *sensor_response* and associated variables\n"
647  "for the present measurement block (*mblock_index*).\n"
648  ),
649  OUTPUT( "sensor_response", "sensor_response_f", "sensor_response_pol",
650  "sensor_response_za", "sensor_response_aa" ),
651  INPUT( "mblock_index" )));
652 
653  agenda_data.push_back
654  (AgRecord
655  ( NAME( "spt_calc_agenda" ),
657  (
658  "Calculates single particle properties from the amplitude matrix.\n"
659  "\n"
660  "This agenda sets up the methods, which should be used to calculate \n"
661  "the particle properties, i.e. the extinction matrix and the \n"
662  "absorbtion vector.\n "
663  "\n"
664  "Normally you use:\n"
665  " opt_prop_sptFromMonoData{} \n"
666  ),
667  OUTPUT( "ext_mat_spt", "abs_vec_spt"),
668  INPUT( "ext_mat_spt", "abs_vec_spt",
669  "scat_p_index", "scat_lat_index", "scat_lon_index",
670  "rtp_temperature", "scat_za_index", "scat_aa_index"
671  )));
672 
673  agenda_data.push_back
674  (AgRecord
675  ( NAME( "surface_rtprop_agenda" ),
677  (
678  "Provides radiative properties of the surface. \n"
679  "\n"
680  "Provides surface emission and surface reflection coefficient matrix\n"
681  "(see user guide for closer definitions of the respective variables\n"
682  "*surface_emission*, *surface_los*, and *surface_rmatrix*) according\n"
683  "to the characteristics of the surface specified by the methods called\n"
684  "within the agenda. Typical meyhods include *surfaceBlackbody*,\n"
685  "*surfaceFlatScalarReflectivity*, *surfaceFlatReflectivity*,\n"
686  "*surfaceFlatRefractiveIndex*, and *surfaceLambertianSimple*.\n"
687  ),
688  OUTPUT( "surface_emission", "surface_los", "surface_rmatrix" ),
689  INPUT( "f_grid", "rtp_pos", "rtp_los" )));
690 
691  agenda_data.push_back
692  (AgRecord
693  ( NAME( "test_agenda" ),
695  (
696  "Dummy agenda for testing purposes.\n"
697  ),
698  OUTPUT(),
699  INPUT()));
700 
701  agenda_data.push_back
702  (AgRecord
703  ( NAME( "ybatch_calc_agenda" ),
705  (
706  "Calculations to perform for each batch case.\n"
707  "\n"
708  "Must produce a new spectrum vector (*y*) and Jacobi matrix (*jacobian*).\n"
709  "See further *ybatchCalc*.\n"
710  ),
711  OUTPUT( "y", "y_aux", "jacobian" ),
712  INPUT( "ybatch_index" )));
713 
714 }
agenda_record.h
Declarations for AgRecord, storing lookup information for one agenda.
OUTPUT
#define OUTPUT
Definition: agendas.cc:36
NAME
#define NAME(x)
Definition: agendas.cc:34
INPUT
#define INPUT
Definition: agendas.cc:37
Array
This can be used to make arrays out of anything.
Definition: array.h:107
AgRecord
Lookup information for one agenda.
Definition: agenda_record.h:44
DESCRIPTION
#define DESCRIPTION(x)
Definition: agendas.cc:35
define_agenda_data
void define_agenda_data()
Definition: agendas.cc:44
global_data
Definition: agenda_record.cc:33
global_data::agenda_data
const Array< AgRecord > agenda_data
The lookup information for the agendas.
Definition: agendas.cc:41