ARTS
2.0.49
agendas.cc
Go to the documentation of this file.
1
/* Copyright (C) 2002-2008 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
Array<AgRecord>
agenda_data
;
41
42
43
void
define_agenda_data
()
44
{
45
// Initialize to zero, just in case:
46
agenda_data
.resize(0);
47
48
/*----------------------------------------------------------------------
49
Agendas must be put in in alphabetical order.
50
No distinction is made between uppercase and lowercase letters.
51
The sign "_" comes after all letters.
52
----------------------------------------------------------------------*/
53
54
agenda_data
.push_back
55
(
AgRecord
56
(
NAME
(
"abs_scalar_gas_agenda"
),
57
DESCRIPTION
58
(
59
"Calculation of scalar gas absorption.\n"
60
"\n"
61
"This agenda calculates absorption coefficients for all gas species\n"
62
"as a function of the given atmospheric state for one point in the\n"
63
"atmosphere. The result is returned in *abs_scalar_gas*, the\n"
64
"atmospheric state has to be specified by *rte_pressure*,\n"
65
"*rte_temperature*, and *rte_vmr_list*.\n"
66
"\n"
67
"A mandatory input parameter is f_index, which is used as follows:\n"
68
"\n"
69
"1. f_index < 0 : Return absorption for all frequencies (in f_grid).\n"
70
"\n"
71
"2. f_index >= 0 : Return absorption for the frequency indicated by\n"
72
" f_index. \n"
73
"\n"
74
"The methods inside this agenda may require a lot of additional\n"
75
"input variables, such as *f_grid*, *abs_species*, etc.\n"
76
),
77
OUTPUT
(
"abs_scalar_gas"
),
78
INPUT
(
"f_index"
,
"rte_doppler"
,
"rte_pressure"
,
"rte_temperature"
,
79
"rte_vmr_list"
)));
80
81
agenda_data
.push_back
82
(
AgRecord
83
(
NAME
(
"doit_conv_test_agenda"
),
84
DESCRIPTION
85
(
86
"Compute the convergence test.\n"
87
"\n"
88
"The method *doit_i_fieldIterate* solves the VRTE iteratively."
89
"This method requires \n"
90
"a convergence test. The user can choose different convergence tests\n"
91
"which are to be defined in this agenda.\n"
92
"\n"
93
"Possible workspace methods are:\n"
94
"*doit_conv_flagAbs*: Calculates the absolute differences \n"
95
" for each Stokes component separately.\n"
96
"*doit_conv_flagAbsBT*: Same as above, but the convergence limit\n"
97
" can be specified in Kelvin BT (Rayleigh Jeans).\n"
98
"*doit_conv_flagLsq*: Least square convergence test. Not recommended\n"
99
" because result can be inaccurate.\n"
100
),
101
OUTPUT
(
"doit_conv_flag"
,
"doit_iteration_counter"
),
102
INPUT
(
"doit_conv_flag"
,
"doit_iteration_counter"
,
103
"doit_i_field"
,
"doit_i_field_old"
)));
104
105
agenda_data
.push_back
106
(
AgRecord
107
(
NAME
(
"doit_scat_field_agenda"
),
108
DESCRIPTION
109
(
110
"Calculation of the scattering integral field (DOIT). \n"
111
"\n"
112
"This agenda is called repeatedly in each DOIT iteration.\n"
113
"The following methods can be used for calculating the \n"
114
"scattering integral field: \n"
115
"\n"
116
"*doit_scat_fieldCalc*: This method calculates the scattering \n"
117
" integral field by using the angular grids *scat_za_grid* \n"
118
" and *scat_aa_grid*, which are also used in the update of the \n"
119
" radiation field (*doit_rte_agenda*).\n"
120
"\n"
121
"*doit_scat_fieldCalcLimb*: This method calculates the scattering \n"
122
" integral field. The difference to the previous method is that \n"
123
" the data is interpolated on equidistant angular grids. \n"
124
" Especially for limb, where a very fine zenith angle grid \n"
125
" resolution is required for the RT transfer part, this method \n"
126
" is much faster than *doit_scat_fieldCalc*. \n"
127
),
128
OUTPUT
(
"doit_scat_field"
),
129
INPUT
(
"doit_scat_field"
,
"doit_i_field"
)));
130
131
agenda_data
.push_back
132
(
AgRecord
133
(
NAME
(
"doit_mono_agenda"
),
134
DESCRIPTION
135
(
136
"Performs monochromatic DOIT calculation."
137
"\n"
138
"This agenda includes for example the following methods:\n"
139
" 1. *DoitScatteringDataPrepare* \n"
140
" 2. *doit_i_fieldSetClearsky* \n"
141
" 3. *doit_i_fieldIterate*\n"
142
" 4. *DoitCloudboxFieldPut*\n"
143
"\n"
144
"The result of the agenda is the radiation field inside the \n"
145
"cloudbox and on the cloudbox boundary, which can be used \n"
146
"as radiative background for a clearsky radiative transfer \n"
147
"calculation. \n"
148
"\n"
149
"See the ArtsWiki page UsingArtsDoit and the online documentation\n"
150
"for more information about the methods.\n"
151
),
152
OUTPUT
(
"doit_i_field"
,
"scat_i_p"
,
"scat_i_lat"
,
"scat_i_lon"
,
153
"doit_i_field1D_spectrum"
),
154
INPUT
(
"f_index"
,
"scat_i_p"
,
"scat_i_lat"
,
"scat_i_lon"
)));
155
156
agenda_data
.push_back
157
(
AgRecord
158
(
NAME
(
"doit_rte_agenda"
),
159
DESCRIPTION
160
(
161
"Radiative transfer calculations in cloudbox.\n"
162
"\n"
163
"Agenda for radiative transfer step calculations with \n"
164
"fixed scattering integral term shoul be specified here.\n"
165
"Output is the updated radiation field in the cloudbox. \n"
166
"This agenda is called repeatedly in each DOIT iteration.\n"
167
"\n"
168
"Normally one should use \n"
169
"*doit_i_fieldUpdateSeq{1,3}D*: Seqential update of the"
170
"radiation field.\n"
171
" This method is the fastest and most accurate method.\n"
172
"\n"
173
"A very similar method in plane parallel approximation is \n"
174
"*doit_i_fieldUpdate{1,3}DPlaneParallel*: This method also \n"
175
" incluldes the sequential update, and it is slightly faster than\n"
176
" *doit_i_fieldUpdateSeq{1,3}D*. The drawback is, that it is less\n"
177
" accurate, especially for limb geometries and for larger \n"
178
" off-nadir viewing angles. \n"
179
"\n"
180
"The following methods were used before the sequential update\n"
181
"was invented. They are very slow and should therefore only \n"
182
"be used for test cases.\n"
183
"*doit_i_fieldUpdate{1,3}D*: Old function.\n"
184
),
185
OUTPUT
(
"doit_i_field"
),
186
INPUT
(
"doit_i_field"
,
"doit_scat_field"
)));
187
188
agenda_data
.push_back
189
(
AgRecord
190
(
NAME
(
"emission_agenda"
),
191
DESCRIPTION
192
(
193
"Thermal emission source term.\n"
194
"\n"
195
"This agenda shall return the emission at one position along\n"
196
"the propagation path. The source term equals the Planck function as\n"
197
"long as thermodynamic equilibrium (LTE) can be assumed, while for\n"
198
"non-LTE conditions much more complex calculations are required.\n"
199
),
200
OUTPUT
(
"emission"
),
201
INPUT
(
"rte_temperature"
)));
202
203
agenda_data
.push_back
204
(
AgRecord
205
(
NAME
(
"forloop_agenda"
),
206
DESCRIPTION
207
(
208
"The body for a for loop.\n"
209
"\n"
210
"This agenda contains the body of the for loop to be execute by the\n"
211
"method *ForLoop*.\n"
212
),
213
OUTPUT
(),
214
INPUT
(
"forloop_index"
)));
215
216
// agenda_data.push_back
217
// (AgRecord
218
// ( NAME( "geomag_los_calc_agenda" ),
219
// DESCRIPTION
220
// (
221
// "Calculates the magnetic field along a given propagation path.\n"
222
// "\n"
223
// "The agenda relates the vector of the geomagnetic field to \n"
224
// "a specified propagation path. As a result the magnitude of \n"
225
// "this vector is calculated in each point of the propagation \n"
226
// "path, alongside with the corresponding angle between the \n"
227
// "geomagnetic field vector and the propagation direction. \n"
228
// "The output is the WSV *geomag_los*, containing the two \n"
229
// "quantities discussed above. \n"
230
// "\n"
231
// "Output: \n"
232
// " geomag_los : Magnetic field along LOS plus angle \n"
233
// "\n"
234
// "Input: ppath_ \n"
235
// " geomag_intensitities.xml \n"
236
// "\n"
237
// ),
238
// OUTPUT( "geomag_los" ),
239
// INPUT( )));
240
241
agenda_data
.push_back
242
(
AgRecord
243
(
NAME
(
"iy_clearsky_agenda"
),
244
DESCRIPTION
245
(
246
"Calculation of a single monochromatic pencil beam spectrum.\n"
247
"\n"
248
"The task of the agenda is to calculate the monochromatic pencil beam\n"
249
"spectrum for the position specified by *rte_pos* and the viewing\n"
250
"direction specified by *rte_los*. This includes cases when the\n"
251
"propagation path intersects with the surface or the cloudbox.\n"
252
),
253
OUTPUT
(
"iy"
,
"iy_error"
,
"iy_error_type"
,
"iy_aux"
,
"diy_dx"
),
254
INPUT
(
"iy_error"
,
"iy_error_type"
,
"iy_aux"
,
"diy_dx"
,
255
"iy_agenda_call1"
,
"iy_transmission"
,
256
"rte_pos"
,
"rte_los"
,
"cloudbox_on"
,
"jacobian_do"
,
257
"p_grid"
,
"lat_grid"
,
"lon_grid"
,
"t_field"
,
"z_field"
,
258
"vmr_field"
)));
259
260
agenda_data
.push_back
261
(
AgRecord
262
(
NAME
(
"iy_clearsky_basic_agenda"
),
263
DESCRIPTION
264
(
265
"As *iy_clearsky_agenda*, but lacks all support for jacobian and\n"
266
"auxiliary variables.\n"
267
"\n"
268
"This agenda is used by scattering methods without support for the\n"
269
"jacobian and auxilary parts, in order to calculate unscattered\n"
270
"radiation for the speciefied position and line-of-sight. As this\n"
271
"agenda has much fewer input variables, this simplifies the interface\n"
272
"and maintaince of those scattering methods.\n"
273
),
274
OUTPUT
(
"iy"
),
275
INPUT
(
"rte_pos"
,
"rte_los"
,
"cloudbox_on"
)));
276
277
agenda_data
.push_back
278
(
AgRecord
279
(
NAME
(
"iy_cloudbox_agenda"
),
280
DESCRIPTION
281
(
282
"Intensity at cloudbox boundary or interior.\n"
283
"\n"
284
"The task of the agenda is to determine the intensity at some point\n"
285
"at the boundary of inside the cloudbox. The actual calculations\n"
286
"inside the agenda differ depending on scattering solution method.\n"
287
"If DOIT is used, an interpolating of the intensity field should be\n"
288
"performed. Another option is to start backward Monte Carlo \n"
289
"calculations from this point.\n"
290
"\n"
291
"A function calling this agenda shall set *rte_pos*, *rte_los* and\n"
292
"*rte_gp_...* variables to the position and line-of-sight for which the\n"
293
"scattered radiation shall be determined.\n"
294
),
295
OUTPUT
(
"iy"
,
"iy_error"
,
"iy_error_type"
,
"iy_aux"
,
"diy_dx"
),
296
INPUT
(
"iy_error"
,
"iy_error_type"
,
"iy_aux"
,
"diy_dx"
,
297
"iy_transmission"
,
298
"rte_pos"
,
"rte_los"
,
"rte_gp_p"
,
"rte_gp_lat"
,
"rte_gp_lon"
)));
299
300
agenda_data
.push_back
301
(
AgRecord
302
(
NAME
(
"iy_space_agenda"
),
303
DESCRIPTION
304
(
305
"Downwelling radiation at the top of the atmosphere.\n"
306
"\n"
307
"Possible terms to include in this agenda include cosmic background\n"
308
"radiation and solar radiation.\n"
309
"\n"
310
"A function calling this agenda shall set *rte_pos* and *rte_los* to\n"
311
"the position and line-of-sight for which the entering radiation \n"
312
"shall be determined. The position and line-of-sight must be known, \n"
313
"for example, when radiation from the sun is considered.\n"
314
),
315
OUTPUT
(
"iy"
),
316
INPUT
(
"rte_pos"
,
"rte_los"
)));
317
318
agenda_data
.push_back
319
(
AgRecord
320
(
NAME
(
"jacobian_agenda"
),
321
DESCRIPTION
322
(
323
"Pure numerical Jacobian calculations.\n"
324
"\n"
325
"Parts of the Jacobian matrix can be determined by (semi-)analytical\n"
326
"expressions, while other parts are calculated in apure numerical\n"
327
"manner (by perturbations). This agenda describes the calculations to\n"
328
"be performed in the later case.\n"
329
"\n"
330
"This agenda is normally not set directly by the user, but is created\n"
331
"by calling the the jacobianAdd set of methods.\n"
332
),
333
OUTPUT
(
"jacobian"
),
334
INPUT
(
"jacobian"
,
"imblock"
,
"iyb"
,
"yb"
)));
335
336
agenda_data
.push_back
337
(
AgRecord
338
(
NAME
(
"jacobian_y_agenda"
),
339
DESCRIPTION
340
(
341
"Agenda providing recalculated *y* after some perturbation.\n"
342
"\n"
343
"The purpose of this agenda is to determine some jacobians through\n"
344
"perturbation calculations. Accordingly, the agenda shall return *y*\n"
345
"for the perturbed input (without doing any unnecessary operations,\n"
346
"for efficiency reasons). If unperturbed spectra (and analytical\n"
347
"jacobians) are calculated with *RteCalc*, the standard choice for\n"
348
"this agenda should be *RteCalcNoJacobians*.\n"
349
),
350
OUTPUT
(
"y"
),
351
INPUT
(
"f_grid"
,
"vmr_field"
,
"t_field"
,
"sensor_los"
)));
352
353
agenda_data
.push_back
354
(
AgRecord
355
(
NAME
(
"main_agenda"
),
356
DESCRIPTION
357
(
358
"The agenda corresponding to the entire controlfile. This is\n"
359
"executed when ARTS is run.\n"
360
),
361
OUTPUT
(),
362
INPUT
()));
363
364
agenda_data
.push_back
365
(
AgRecord
366
(
NAME
(
"met_profile_calc_agenda"
),
367
DESCRIPTION
368
(
369
"This agenda is used for metoffice profile calculations.\n"
370
"\n"
371
"This agenda is called inside the method *ybatchMetProfiles* which is\n"
372
"used to make a batch calculation for the metoffice profiles. \n"
373
"See the documentation of *ybatchMetProfiles* for more information.\n"
374
"\n"
375
"This agenda can be, for example, set up like this:\n"
376
"\n"
377
"*AtmFieldsCalc*\n"
378
"*abs_lookupAdapt*\n"
379
"*ScatteringInit *\n"
380
"*CloudboxGetIncoming*\n"
381
"*ScatteringMain*\n"
382
"*RteCalc*\n"
383
"*yNoPolarisation*\n"
384
"\n"
385
"For example, if you want the output in brightness temperature unit,\n"
386
"then add the method *VectorToTbByPlanck*.\n"
387
),
388
OUTPUT
(
"y"
),
389
INPUT
(
"t_field_raw"
,
"vmr_field_raw"
,
"z_field_raw"
,
"pnd_field_raw"
,
390
"p_grid"
,
"sensor_los"
,
"cloudbox_on"
,
"cloudbox_limits"
,
391
"z_surface"
)));
392
393
agenda_data
.push_back
394
(
AgRecord
395
(
NAME
(
"opt_prop_gas_agenda"
),
396
DESCRIPTION
397
(
398
"Calculate the optical properties (absorption vector and extinction.\n"
399
"matrix) of gaseous species at a given grid point.\n"
400
"\n"
401
"This agenda, for example, can be defined in the following manner:\n"
402
"\n"
403
"*ext_matAddGas* : This method calculates the extinction \n"
404
" matrix for the gaseous species and adds it to \n"
405
" the workspace variable *ext_mat*.\n"
406
"*abs_vecAddGas* : This method calculates the absorption\n"
407
" vector for the gaseous species and adds it to\n"
408
" the workspace variables abs_vec.\n"
409
"If the Zeeman effect should be included the following methods have \n"
410
"to be added: \n"
411
"*ext_matAddZeeman* \n"
412
"*abs_vecAddZeeman* \n"
413
" \n"
414
"Note that the initialization of *abs_vec* is not done inside the\n"
415
"agenda, so *abs_vec* has to be initialize before executing the \n"
416
"agenda.\n"
417
"\n"
418
"Output :\n"
419
" ext_mat : Extinction matrix.\n"
420
" abs_vec : Absorption vector.\n"
421
"\n"
422
"Input:\n"
423
" ext_mat : Extinction matrix.\n"
424
" abs_vec : Absorption vector. \n"
425
" abs_scalar_gas : Scalar gas absorption. \n"
426
),
427
OUTPUT
(
"ext_mat"
,
"abs_vec"
),
428
INPUT
(
"ext_mat"
,
"abs_vec"
,
"f_index"
,
"abs_scalar_gas"
)));
429
430
431
agenda_data
.push_back
432
(
AgRecord
433
(
NAME
(
"opt_prop_part_agenda"
),
434
DESCRIPTION
435
(
436
"Calculate the optical properties (absorption vector and extinction.\n"
437
"matrix) for particles at a given atmospheric grid point.\n"
438
"\n"
439
"This agenda, for example, can be defined in the following manner:\n"
440
"\n"
441
"*ext_matAddPart* : This method calculates the extinction \n"
442
" matrix for particles and adds it to the \n"
443
" workspace variable *ext_mat*.\n"
444
"*abs_vecAddPart* : This method calculates the absorption\n"
445
" vector for particles and adds it to the\n"
446
" workspace variables abs_vec.\n"
447
" \n"
448
"Note that the initialization of *ext_mat* is not done inside the\n"
449
"agenda, so *ext_mat* has to be initialize before executing the \n"
450
"agenda.\n"
451
"\n"
452
"Output :\n"
453
" ext_mat : Extinction matrix.\n"
454
" abs_vec : Absorption vector. \n"
455
"\n"
456
"Input:\n"
457
" ext_mat : Extinction matrix. \n"
458
" ext_mat_spt : Extinction matrix for single particle type. \n"
459
" abs_vec : Absorption vector. \n"
460
" abs_vec_spt : Absorption vector for single particle type. \n"
461
" pnd_field : Particle number density field. \n"
462
" atmosphere_dim: Atmospheric dimension. \n"
463
" scat_p_index : Position. \n"
464
" scat_lat_index : Position. \n"
465
" scat_lon_index : Position. \n"
466
),
467
OUTPUT
(
"ext_mat"
,
"abs_vec"
),
468
INPUT
(
"ext_mat"
,
"abs_vec"
,
469
"ext_mat_spt"
,
"abs_vec_spt"
,
470
"scat_p_index"
,
"scat_lat_index"
,
471
"scat_lon_index"
)));
472
473
agenda_data
.push_back
474
(
AgRecord
475
(
NAME
(
"pha_mat_spt_agenda"
),
476
DESCRIPTION
477
(
478
"Calculates the phase matrix for a single particle type.\n"
479
"\n"
480
"Different options are possible for the usage of this agenda: \n"
481
"*pha_mat_sptFromData* or *pha_mat_sptDOITOpt*. \n"
482
),
483
OUTPUT
(
"pha_mat_spt"
),
484
INPUT
(
"pha_mat_spt"
,
"scat_za_index"
,
"scat_lat_index"
,
"scat_lon_index"
,
485
"scat_p_index"
,
"scat_aa_index"
,
"rte_temperature"
)));
486
487
488
agenda_data
.push_back
489
(
AgRecord
490
(
NAME
(
"ppath_step_agenda"
),
491
DESCRIPTION
492
(
493
"Calculation of a propagation path step.\n"
494
"\n"
495
"A propagation path step is defined as the path between some point \n"
496
"to a crossing with either the pressure, latitude or longitude grid,\n"
497
"and this agenda performs the calculations to determine such a \n"
498
"partial propagation path. The starting point is normally a grid \n"
499
"crossing point, but can also be an arbitrary point inside the \n"
500
"atmosphere, such as the sensor position. Only points inside the \n"
501
"model atmosphere are handled.\n"
502
"\n"
503
"The communication between this agenda and the calling method is \n"
504
"handled by *ppath_step*. That variable is used both as input and \n"
505
"output to *ppath_step_agenda*. The agenda gets back *ppath_step* \n"
506
"as returned to the calling method and the last path point hold by \n"
507
"the structure is accordingly the starting point for the new \n"
508
"calculations. If a total propagation path shall be determined, this\n"
509
"agenda is called repeatedly until the starting point of the \n"
510
"propagation path is found and *ppath_step* will hold all path \n"
511
"steps that together make up *ppath*. The starting point is included\n"
512
"in the returned structure. \n"
513
"\n"
514
"The path is determined by starting at the end point and moving \n"
515
"backwards to the starting point. The calculations are initiated by \n"
516
"filling *ppath_step* with the practical end point of the path. \n"
517
"This is either the position of the sensor (true or hypothetical), \n"
518
"or some point at the top of the atmosphere (determined by\n"
519
"geometrical calculations starting at the sensor). This \n"
520
"initialisation is not handled by *ppath_step_agenda*. All fields of\n"
521
"*ppath_step* are set by *ppath_step_agenda*. If the sensor is above\n"
522
"the model atmosphere the field *constant* can be initiated by the \n"
523
"calling method. Otherwise the field shall be set to negative and it\n"
524
"is set to the correct value by *ppath_step* at the first call. This\n"
525
"procedure is needed as the path constant changes if refraction is \n"
526
"considered, or not, when the sensor is placed inside the\n"
527
"atmosphere.\n"
528
"\n"
529
"The *ppath_step_agenda* put in points along the propagation path \n"
530
"at all crossings with the grids, tangent points and points of \n"
531
"surface reflection. It is also allowed to make agendas that put in \n"
532
"additional points to fulfil some criterion, such as a maximum \n"
533
"distance along the path between the points. Accordingly, the \n"
534
"number of new points of each step can exceed one.\n"
535
),
536
OUTPUT
(
"ppath_step"
),
537
INPUT
(
"ppath_step"
,
"atmosphere_dim"
,
"p_grid"
,
"lat_grid"
,
538
"lon_grid"
,
"z_field"
,
"r_geoid"
,
"z_surface"
)));
539
540
agenda_data
.push_back
541
(
AgRecord
542
(
NAME
(
"refr_index_agenda"
),
543
DESCRIPTION
544
(
545
"Calculation of the refractive index of air.\n"
546
"\n"
547
"This agenda should calculate the summed refractive index for all\n"
548
"relevant atmospheric constituients.\n"
549
),
550
OUTPUT
(
"refr_index"
),
551
INPUT
(
"rte_pressure"
,
"rte_temperature"
,
"rte_vmr_list"
)));
552
553
agenda_data
.push_back
554
(
AgRecord
555
(
NAME
(
"sensor_response_agenda"
),
556
DESCRIPTION
557
(
558
"The sensor response data for present measurement block.\n"
559
"\n"
560
"This agenda shall provide *sensor_response* and associated variables\n"
561
"for the present measurement block (*imblock*).\n"
562
),
563
OUTPUT
(
"sensor_response"
,
"sensor_response_f"
,
"sensor_response_pol"
,
564
"sensor_response_za"
,
"sensor_response_aa"
),
565
INPUT
(
"imblock"
)));
566
567
agenda_data
.push_back
568
(
AgRecord
569
(
NAME
(
"spt_calc_agenda"
),
570
DESCRIPTION
571
(
572
"Calculates single particle properties from the amplitude matrix.\n"
573
"\n"
574
"This agenda sets up the methods, which should be used to calculate \n"
575
"the particle properties, i.e. the extinction matrix and the \n"
576
"absorbtion vector.\n "
577
"\n"
578
"Normally you use:\n"
579
" opt_prop_sptFromMonoData{} \n"
580
),
581
OUTPUT
(
"ext_mat_spt"
,
"abs_vec_spt"
),
582
INPUT
(
"ext_mat_spt"
,
"abs_vec_spt"
,
583
"scat_p_index"
,
"scat_lat_index"
,
"scat_lon_index"
,
584
"rte_temperature"
,
"scat_za_index"
,
"scat_aa_index"
585
)));
586
587
agenda_data
.push_back
588
(
AgRecord
589
(
NAME
(
"surface_prop_agenda"
),
590
DESCRIPTION
591
(
592
"Surface radiative properties. \n"
593
"\n"
594
"See the user guide for closer definitions of the variables \n"
595
"that describe the surface properties. These variables are:\n"
596
" *surface_emission*, *surface_los* and *surface_rmatrix* \n"
597
),
598
OUTPUT
(
"surface_emission"
,
"surface_los"
,
"surface_rmatrix"
),
599
INPUT
(
"rte_pos"
,
"rte_los"
,
"rte_gp_p"
,
"rte_gp_lat"
,
"rte_gp_lon"
)));
600
601
agenda_data
.push_back
602
(
AgRecord
603
(
NAME
(
"ybatch_calc_agenda"
),
604
DESCRIPTION
605
(
606
"Calculations to perform for each batch case.\n"
607
"\n"
608
"Must produce a new spectrum vector (*y*) and Jacobi matrix (*jacobian*).\n"
609
"See further *ybatchCalc*.\n"
610
),
611
OUTPUT
(
"y"
,
"jacobian"
),
612
INPUT
(
"ybatch_index"
)));
613
614
agenda_data
.push_back
615
(
AgRecord
616
(
NAME
(
"test_agenda"
),
617
DESCRIPTION
618
(
619
"Dummy agenda for testing purposes.\n"
620
),
621
OUTPUT
(),
622
INPUT
()));
623
624
625
// agenda_data.push_back
626
// (AgRecord
627
// ( NAME( "zeeman_prop_agenda" ),
628
// DESCRIPTION
629
// (
630
// "Calculates extinction matrix and absorption vector due to the \n"
631
// "Zeeman effect. \n"
632
// "\n"
633
// "The agenda calculates the total extinction matrix and absorption \n"
634
// "vector of O2 only (currently) due to the Zeeman effect induced by the \n"
635
// "geomagnetic field. The polarization pattern, resulting from the effect, \n"
636
// "produces additional contribution to these quantities in the unpolarized \n"
637
// "case. This means that the user should take care not to execute both the \n"
638
// "polarized (Zeeman) and unpolarized calculation for the O2 lines \n"
639
// "affected by the Zeeman effect, otherwise the unpolarized part gets \n"
640
// "wrongly doubled. \n"
641
// "\n"
642
// "Output: \n"
643
// " ext_mat_zeeman: Zeeman extinction matrix \n"
644
// " abs_vec_zeeman: Zeeman absorption vector \n"
645
// "\n"
646
// "Input: \n"
647
// " geomag_los: Magnetic field along LOS plus angle \n"
648
// "\n"
649
// ),
650
// OUTPUT( ),
651
// INPUT( )));
652
653
654
}
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:103
agenda_data
Array< AgRecord > agenda_data
Definition:
agendas.cc:40
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:43
src
agendas.cc
Generated by
1.8.20