ARTS  1.0.222
methods.cc
Go to the documentation of this file.
1 /* Copyright (C) 2000, 2001 Stefan Buehler <sbuehler@uni-bremen.de>
2  Patrick Eriksson <patrick@rss.chalmers.se>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License as published by the
6  Free Software Foundation; either version 2, or (at your option) any
7  later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
17  USA. */
18 
32 #if HAVE_CONFIG_H
33 #include <config.h>
34 #endif
35 
36 #include "arts.h"
37 
38 #include "auto_wsv.h"
39 #include "methods.h"
40 #include "auto_wsv_groups.h"
41 
43 {
44  // The variable md_data is defined in file methods_aux.cc.
45  extern Array<MdRecord> md_data;
46 
47  // Initialize to zero, just in case:
48  md_data.resize(0);
49 
50  /* Here's a template record entry: (PE 2001-09-18)
51 
52  md_data.push_back
53  ( MdRecord
54  ( NAME( "FunctionName" ),
55  DESCRIPTION
56  (
57  "A summary of the function in one sentence.\n"
58  "\n"
59  "A detailed description of the function. Please, try to be as \n"
60  "clear and detailed as possible, this will help both you and \n"
61  "others in the long run. \n"
62  " Additional paragraphs are indented with three blanks, as \n"
63  "exemplified here.\n"
64  " The names of workspace variables and other methods\n"
65  "are marked by stars, for example *z_plat*.\n"
66  " Generic input and output, and keywords shall be described \n"
67  "as exemplified below. If there is no variables of a group, \n"
68  "(e.g. generic input) remove that part totally. Note that the \n"
69  "on-line help just gives the type of generic input/output and the \n"
70  "keyword names, and additional information is for sure needed.\n"
71  " Leave space and brake lines when listing input and output \n"
72  "variabales to make the code easier to read. See example below. \n"
73  "\n"
74  "Generic input: \n"
75  " Vector : Vector giving some very important input. Don't \n"
76  " be too short. Use the type of indention used here. \n"
77  "\n"
78  "Generic output: \n"
79  " Vector : Return vector for the zenith angles. The normal \n"
80  " options are ZA_PENCIL and ZA_SENSOR. \n"
81  "\n"
82  "Keywords:\n"
83  " delta_t : Time increment between observations.\n"
84  " z_tan_lim : Vector with start and stop tangent altitudes."
85  ),
86  OUTPUT(),
87  INPUT( z_plat_, p_abs_, z_abs_, l_step_, refr_, refr_lfac_,
88  refr_index_, r_geoid_, z_ground_ ),
89  GOUTPUT( Vector_ ),
90  GINPUT(),
91  KEYWORDS( "delta_t", "z_tan_lim" ),
92  TYPES( Numeric_t, Vector_t )));
93  */
94 
95  /* Here's an empty record entry: (PE 2001-09-18)
96 
97  md_data.push_back
98  ( MdRecord
99  ( NAME( "" ),
100  DESCRIPTION
101  (
102  "\n"
103  "\n"
104  "Generic input: \n"
105  " \n"
106  "\n"
107  "Generic output: \n"
108  " \n"
109  "\n"
110  "Keywords:\n"
111  " "
112  ),
113  OUTPUT(),
114  INPUT(),
115  GOUTPUT(),
116  GINPUT(),
117  KEYWORDS(),
118  TYPES()));
119  */
120 
121 
122 //======================================================================
123 //=== Overall ARTS functions
124 //======================================================================
125 
126  md_data.push_back
127  ( MdRecord
128  ( NAME( "Echo" ),
130  (
131  "Outputs a string.\n"
132  "\n"
133  "Output the given message string, level follows the same convention as the -r\n"
134  "command line flag of arts.\n"
135  "\n"
136  "Keywords:\n"
137  " message : Message for output on screen.\n"
138  " level : Output level for the message.\n"
139  ),
140  OUTPUT(),
141  INPUT(),
142  GOUTPUT(),
143  GINPUT(),
144  KEYWORDS( "message", "level" ),
145  TYPES( String_t, Index_t )));
146 
147 
148  md_data.push_back
149  ( MdRecord
150  ( NAME("Exit"),
152  (
153  "Stops the execution and exits ARTS.\n"
154  "\n"
155  "This method is handy if you want to debug one of your\n"
156  "controlfiles. You can insert it anywhere in the controlfile. When\n"
157  "it is reached, it will terminate the program."
158  ),
159  OUTPUT( ),
160  INPUT( ),
161  GOUTPUT( ),
162  GINPUT( ),
163  KEYWORDS( ),
164  TYPES( )));
165 
166  md_data.push_back
167  ( MdRecord
168  ( NAME("Test"),
170  (
171  "A dummy method that can be used for test purposes.\n"
172  "\n"
173  "This method can be used by ARTS developers to quickly test stuff.\n"
174  "The implementation is in file m_io.cc. This just saves you the \n"
175  "trouble of adding a dummy method everytime you want to try \n"
176  "something out quickly."
177  ),
178  OUTPUT( ),
179  INPUT( ),
180  GOUTPUT( ),
181  GINPUT( ),
182  KEYWORDS( ),
183  TYPES( )));
184 
185 
186 
187 
188 //======================================================================
189 //=== IO methods
190 //======================================================================
191 
192 //=== Index ============================================================
193 
194  md_data.push_back
195  ( MdRecord
196  ( NAME("IndexSet"),
198  (
199  "Sets an index workspace variable to the given value. \n"
200  "\n"
201  "Generic output: \n"
202  " Index : The index variable to be set. \n"
203  "\n"
204  "Keywords:\n"
205  " value : A positive integer."
206  ),
207  OUTPUT( ),
208  INPUT( ),
209  GOUTPUT( Index_ ),
210  GINPUT( ),
211  KEYWORDS( "value" ),
212  TYPES( Index_t )));
213 
214  md_data.push_back
215  ( MdRecord
216  ( NAME("IndexWriteAscii"),
217  DESCRIPTION(
218  "Writes an index value to an ASCII file.\n"
219  "\n"
220  "The index value of the given workspace variable\n"
221  "is written to the file with the specified name.\n"
222  "If the filename is omitted, the index is written\n"
223  "to <basename>.<variable_name>.aa.\n"
224  "\n"
225  "See *ArrayOfMatrixWriteAscii* for file format.\n"
226  "\n"
227  "Generic input: \n"
228  " Index : Name of the workspace variable to write.\n"
229  "\n"
230  "Keywords: \n"
231  " filename : Name of the output file.\n"
232  ),
233  OUTPUT(),
234  INPUT(),
235  GOUTPUT(),
236  GINPUT( Index_ ),
237  KEYWORDS( "filename" ),
238  TYPES( String_t )));
239 
240  md_data.push_back
241  ( MdRecord
242  ( NAME("IndexReadAscii"),
243  DESCRIPTION(
244  "Reads a index value from an ASCII file.\n"
245  "\n"
246  "The index value is read from the file with the\n"
247  "specified name and stored in the given workspace\n"
248  "variable.\n"
249  "If the filename is omitted, the index is read\n"
250  "from <basename>.<variable_name>.aa.\n"
251  "\n"
252  "See *ArrayOfMatrixWriteAscii* for file format.\n"
253  "\n"
254  "Generic output: \n"
255  " Index : Name of the workspace variable to read.\n"
256  "\n"
257  "Keywords: \n"
258  " filename : Name of the input file.\n"
259  ),
260  OUTPUT(),
261  INPUT(),
262  GOUTPUT( Index_ ),
263  GINPUT(),
264  KEYWORDS( "filename" ),
265  TYPES( String_t )));
266 
267  md_data.push_back
268  ( MdRecord
269  ( NAME("IndexWriteBinary"),
270  DESCRIPTION(
271  "Writes an index to a binary file.\n"
272  "\n"
273  "The filename can be specified or an empty String.\n"
274  "If empty, it is set to <basename>.<variable_name>.ab.\n"
275  "File is in HDF4 format.\n"
276  "\n"
277  "Generic input: \n"
278  " Index : Name of the workspace variable to write.\n"
279  "\n"
280  "Keywords:\n"
281  " filename: Name of the output file.\n"
282  ),
283 
284  OUTPUT(),
285  INPUT(),
286  GOUTPUT(),
287  GINPUT( Index_ ),
288  KEYWORDS( "filename" ),
289  TYPES( String_t )));
290 
291  md_data.push_back
292  ( MdRecord
293  ( NAME("IndexReadBinary"),
294  DESCRIPTION(
295  "Reads an index from a binary file.\n"
296  "\n"
297  "The filename can be specified or an empty String.\n"
298  "If empty, it is set to <basename>.<variable_name>.ab.\n"
299  "File is in HDF4 format.\n"
300  "\n"
301  "Generic output: \n"
302  " Index : Name of the workspace variable to read.\n"
303  "\n"
304  "Keywords:\n"
305  " filename : Name of the input file.\n"
306  ),
307  OUTPUT(),
308  INPUT(),
309  GOUTPUT( Index_ ),
310  GINPUT(),
311  KEYWORDS( "filename" ),
312  TYPES( String_t )));
313 
314 //=== NUMERIC ==========================================================
315 
316  md_data.push_back
317  ( MdRecord
318  ( NAME("NumericSet"),
320  (
321  "Sets a numeric workspace variable to the given value. \n"
322  "\n"
323  "Generic output: \n"
324  " Numeric : The numeric variable to be set. \n"
325  "\n"
326  "Keywords:\n"
327  " value : The value."
328  ),
329  OUTPUT(),
330  INPUT(),
331  GOUTPUT( Numeric_ ),
332  GINPUT(),
333  KEYWORDS( "value" ),
334  TYPES( Numeric_t )));
335 
336  md_data.push_back
337  ( MdRecord
338  ( NAME("NumericCopyFirstOfVector"),
340  (
341  "Sets a numeric workspace variable to the value of the first \n"
342  "element of a vector. \n"
343  "\n"
344  "Generic output: \n"
345  " Numeric : The numeric variable to be set. \n"
346  "\n"
347  "Generic input:\n"
348  " Vector : The vector from which the value shall be obtained."
349  ),
350  OUTPUT(),
351  INPUT(),
352  GOUTPUT( Numeric_ ),
353  GINPUT( Vector_ ),
354  KEYWORDS(),
355  TYPES()));
356 
357  md_data.push_back
358  ( MdRecord
359  ( NAME("NumericCopyLastOfVector"),
361  (
362  "Sets a numeric workspace variable to the value of the last \n"
363  "element of a vector. \n"
364  "\n"
365  "Generic output: \n"
366  " Numeric : The numeric variable to be set. \n"
367  "\n"
368  "Generic input:\n"
369  " Vector : The vector from which the value shall be obtained."
370  ),
371  OUTPUT(),
372  INPUT(),
373  GOUTPUT( Numeric_ ),
374  GINPUT( Vector_ ),
375  KEYWORDS(),
376  TYPES()));
377 
378  md_data.push_back
379  ( MdRecord
380  ( NAME("NumericWriteAscii"),
381  DESCRIPTION(
382  "Writes a numeric value to an ASCII file.\n"
383  "\n"
384  "The numeric value of the given workspace variable\n"
385  "is written to the file with the specified name.\n"
386  "If the filename is omitted, the numeric is written\n"
387  "to <basename>.<variable_name>.aa.\n"
388  "\n"
389  "See *ArrayOfMatrixWriteAscii* for file format.\n"
390  "\n"
391  "Generic input: \n"
392  " Numeric : Name of the workspace variable to write.\n"
393  "\n"
394  "Keywords: \n"
395  " filename : Name of the output file.\n"
396  ),
397  OUTPUT(),
398  INPUT(),
399  GOUTPUT(),
400  GINPUT( Numeric_ ),
401  KEYWORDS( "filename" ),
402  TYPES( String_t )));
403 
404  md_data.push_back
405  ( MdRecord
406  ( NAME("NumericReadAscii"),
407  DESCRIPTION(
408  "Reads a numeric value from an ASCII file.\n"
409  "\n"
410  "The numeric value is read from the file with the\n"
411  "specified name and stored in the given workspace\n"
412  "variable.\n"
413  "If the filename is omitted, the numeric is read\n"
414  "from <basename>.<variable_name>.aa.\n"
415  "\n"
416  "See *ArrayOfMatrixWriteAscii* for file format.\n"
417  "\n"
418  "Generic output: \n"
419  " Numeric : Name of the workspace variable to read.\n"
420  "\n"
421  "Keywords: \n"
422  " filename : Name of the input file.\n"
423  ),
424  OUTPUT(),
425  INPUT(),
426  GOUTPUT( Numeric_ ),
427  GINPUT(),
428  KEYWORDS( "filename" ),
429  TYPES( String_t )));
430 
431  md_data.push_back
432  ( MdRecord
433  ( NAME("NumericWriteBinary"),
434  DESCRIPTION(
435  "Writes a numeric value to a binary file.\n"
436  "\n"
437  "The filename can be specified or an empty String.\n"
438  "If empty, it is set to <basename>.<variable_name>.ab.\n"
439  "File is in HDF4 format.\n"
440  "\n"
441  "Generic input: \n"
442  " Numeric : Name of the workspace variable to write.\n"
443  "\n"
444  "Keywords:\n"
445  " filename : Name of the output file.\n"
446  ),
447  OUTPUT(),
448  INPUT(),
449  GOUTPUT(),
450  GINPUT( Numeric_ ),
451  KEYWORDS( "filename" ),
452  TYPES( String_t )));
453 
454  md_data.push_back
455  ( MdRecord
456  ( NAME("NumericReadBinary"),
457  DESCRIPTION(
458  "Reads a numeric from a binary file.\n"
459  "\n"
460  "The filename can be specified or an empty String.\n"
461  "If empty, it is set to <basename>.<variable_name>.ab.\n"
462  "File is in HDF4 format.\n"
463  "\n"
464  "Generic output: \n"
465  " Numeric : Name of the workspace variable to read.\n"
466  "\n"
467  "Keywords:\n"
468  " filename : Name of the input file.\n"
469  ),
470  OUTPUT(),
471  INPUT(),
472  GOUTPUT( Numeric_ ),
473  GINPUT(),
474  KEYWORDS( "filename" ),
475  TYPES( String_t )));
476 
477 
478 //=== Vector ==========================================================
479 
480  md_data.push_back
481  ( MdRecord
482  ( NAME("VectorCopy"),
484  (
485  "Creates a copy of a vector. \n"
486  "\n"
487  "Generic output: \n"
488  " Vector : The vector to be created. \n"
489  "\n"
490  "Generic input: \n"
491  " Vector : The vector to be copied. "
492  ),
493  OUTPUT(),
494  INPUT(),
495  GOUTPUT( Vector_ ),
496  GINPUT( Vector_ ),
497  KEYWORDS(),
498  TYPES()));
499 
500 
501  md_data.push_back
502  ( MdRecord
503  ( NAME("VectorCopyFromMatrix"),
505  (
506  "Copies a row or a column from a matrix to a vector"
507  "\n"
508  "Generic output: \n"
509  " Vector : The vector to be created. \n"
510  "\n"
511  "Generic input: \n"
512  " Matrix : The source matrix. \n"
513  "\n"
514  "Keywords:\n"
515  " orientation : Could be either \"col\" or \"row\". \n"
516  " index : Row or column number to be copied. \n"
517  ),
518  OUTPUT(),
519  INPUT(),
520  GOUTPUT( Vector_ ),
521  GINPUT( Matrix_ ),
522  KEYWORDS( "orientation", "index" ),
523  TYPES( String_t, Index_t )));
524 
525 
526  md_data.push_back
527  ( MdRecord
528  ( NAME("VectorSet"),
530  (
531  "Creates a workspace vector with the specified length and sets \n"
532  "all values of the vector to the specified value. \n"
533  "\n"
534  "Generic output: \n"
535  " Vector : The vector to be created. \n"
536  "\n"
537  "Keywords:\n"
538  " length : The length of the new vector. \n"
539  " value : The value of the vector elements. "
540  ),
541  OUTPUT(),
542  INPUT(),
543  GOUTPUT( Vector_ ),
544  GINPUT(),
545  KEYWORDS( "length", "value" ),
546  TYPES( Index_t, Numeric_t )));
547 
548  md_data.push_back
549  ( MdRecord
550  ( NAME("VectorSetLengthFromVector"),
552  (
553  "Creates a workspace vector with the same length as another vector,\n"
554  "and sets all values of the new vector to the specified value. \n"
555  "\n"
556  "A common usage of the function should be: \n"
557  " VectorSetLengthFromVector(e_ground,f_mono){value=0.75} \n"
558  "\n"
559  "Generic output: \n"
560  " Vector : The vector to be created. \n"
561  "\n"
562  "Generic input: \n"
563  " Vector : The vector specifying the length.. \n"
564  "\n"
565  "Keywords:\n"
566  " value : The value of the vector elements. "
567  ),
568  OUTPUT(),
569  INPUT(),
570  GOUTPUT( Vector_ ),
571  GINPUT( Vector_ ),
572  KEYWORDS( "value" ),
573  TYPES( Numeric_t )));
574 
575  md_data.push_back
576  ( MdRecord
577  ( NAME("VectorLinSpace"),
579  (
580  "Creates a vector with linear spacing.\n"
581  "\n"
582  "The first element equals always the start value, and the spacing\n"
583  "equlas always the step value, but note that the last value can \n"
584  "deviate from the stop value. The keyword step can be both positive\n"
585  "and negative. \n"
586  " The vector is [start, start+step, start+2*step, ...]\n "
587  "\n"
588  "Generic output: \n"
589  " Vector : The vector to be created. \n"
590  "\n"
591  "Keywords:\n"
592  " start : The start value. \n"
593  " stop : The maximum value of the end value. \n"
594  " step : The spacing of the vector. "
595  ),
596  OUTPUT(),
597  INPUT(),
598  GOUTPUT( Vector_ ),
599  GINPUT(),
600  KEYWORDS( "start", "stop", "step" ),
602 
603  md_data.push_back
604  ( MdRecord
605  ( NAME("VectorNLinSpace"),
607  (
608  "Creates a vector with defined length, equally spaced between the \n"
609  "given end values. \n"
610  "\n"
611  "The length must be larger than 1. \n"
612  "\n"
613  "Generic output: \n"
614  " Vector : The vector to be created. \n"
615  "\n"
616  "Keywords:\n"
617  " start : The start value. \n"
618  " stop : The end value. \n"
619  " n : Number of elements of the vector. "
620  ),
621  OUTPUT(),
622  INPUT(),
623  GOUTPUT(Vector_),
624  GINPUT(),
625  KEYWORDS( "start", "stop", "n" ),
627 
628  md_data.push_back
629  ( MdRecord
630  ( NAME("VectorNLogSpace"),
632  (
633  "Creates a vector with defined length, equally logarithmically \n"
634  "spaced between the given end values. \n"
635  "\n"
636  "The length must be larger than 1. \n"
637  "\n"
638  "Generic output: \n"
639  " Vector : The vector to be created. \n"
640  "\n"
641  "Keywords:\n"
642  " start : The start value. \n"
643  " stop : The end value. \n"
644  " n : Number of elements of the vector. "
645  ),
646  OUTPUT(),
647  INPUT(),
648  GOUTPUT(Vector_),
649  GINPUT(),
650  KEYWORDS( "start", "stop", "n" ),
652 
653  md_data.push_back
654  ( MdRecord
655  ( NAME("VectorPressuresForLinAltitudes"),
657  (
658  "Calculates a set of pressures corresponding to a set of\n"
659  "linearly spaced altitudes. \n"
660  "\n"
661  "The linear set of altitudes is defined by an altitude step and \n"
662  "a start and stop pressure. \n"
663  " The conversions between pressures and altitudes are based on\n"
664  "*p_abs* and *z_abs*. \n"
665  "\n"
666  "Generic output: \n"
667  " Vector : Return vector for the pressure grid created. \n"
668  "\n"
669  "Keywords:\n"
670  " delta_z : Altitude step.\n"
671  " p_start : Start pressure.\n"
672  " p_stop : Stop pressure."
673  ),
674  OUTPUT(),
675  INPUT( p_abs_, z_abs_ ),
676  GOUTPUT( Vector_ ),
677  GINPUT(),
678  KEYWORDS( "delta_z", "p_start", "p_stop" ),
680 
681  md_data.push_back
682  ( MdRecord
683  ( NAME("VectorFlip"),
685  (
686  "Creates a copy of a vector in reversed order. \n"
687  "\n"
688  "Generic output: \n"
689  " Vector : The vector to be created. \n"
690  "\n"
691  "Generic input: \n"
692  " Vector : The vector to be copied. "
693  ),
694  OUTPUT(),
695  INPUT(),
696  GOUTPUT( Vector_ ),
697  GINPUT( Vector_ ),
698  KEYWORDS(),
699  TYPES()));
700 
701  md_data.push_back
702  ( MdRecord
703  ( NAME("VectorMatrixMultiply"),
705  (
706  "Multiply a Vector with a Matrix and store the result in another\n"
707  "Vector.\n"
708  "\n"
709  "This just computes the normal Matrix-Vector product, y=M*x. It is ok\n"
710  "if input and output Vector are the same. This function is handy for\n"
711  "multiplying the H Matrix to spectra.\n"
712  "\n"
713  "Generic output:\n"
714  " Vector : The result of the multiplication (dimension m).\n"
715  "\n"
716  "Generic input:\n"
717  " Matrix : The Matrix to multiply (dimension mxn).\n"
718  " Vector : The original Vector (dimension n).\n"
719  ),
720  OUTPUT(),
721  INPUT(),
722  GOUTPUT( Vector_ ),
723  GINPUT( Matrix_, Vector_ ),
724  KEYWORDS(),
725  TYPES()));
726 
727  md_data.push_back
728  ( MdRecord
729  ( NAME("VectorWriteAscii"),
730  DESCRIPTION(
731  "Writes a vector to an ASCII file.\n"
732  "\n"
733  "The vector of the given workspace variable\n"
734  "is written to the file with the specified name.\n"
735  "If the filename is omitted, the vector is written\n"
736  "to <basename>.<variable_name>.aa.\n"
737  "\n"
738  "See *ArrayOfMatrixWriteAscii* for file format.\n"
739  "\n"
740  "Generic input: \n"
741  " Vector : Name of the workspace variable to write.\n"
742  "\n"
743  "Keywords: \n"
744  " filename : Name of the output file.\n"
745  ),
746  OUTPUT(),
747  INPUT(),
748  GOUTPUT(),
749  GINPUT( Vector_ ),
750  KEYWORDS( "filename" ),
751  TYPES( String_t )));
752 
753  md_data.push_back
754  ( MdRecord
755  ( NAME("VectorReadAscii"),
756  DESCRIPTION(
757  "Reads a vector from an ASCII file.\n"
758  "\n"
759  "The vector is read from the file with the\n"
760  "specified name and stored in the given workspace\n"
761  "variable.\n"
762  "If the filename is omitted, the vector is read\n"
763  "from <basename>.<variable_name>.aa.\n"
764  "\n"
765  "See *ArrayOfMatrixWriteAscii* for file format.\n"
766  "\n"
767  "Generic output: \n"
768  " Vector : Name of the workspace variable to read.\n"
769  "\n"
770  "Keywords: \n"
771  " filename : Name of the input file.\n"
772  ),
773  OUTPUT(),
774  INPUT(),
775  GOUTPUT( Vector_ ),
776  GINPUT(),
777  KEYWORDS( "filename" ),
778  TYPES( String_t )));
779 
780  md_data.push_back
781  ( MdRecord
782  ( NAME("VectorWriteBinary"),
783  DESCRIPTION(
784  "Writes a vector to a binary file.\n"
785  "\n"
786  "The filename can be specified or an empty String.\n"
787  "If empty, it is set to <basename>.<variable_name>.ab.\n"
788  "File is in HDF4 format.\n"
789  "\n"
790  "Generic input: \n"
791  " Vector : Name of the workspace variable to write.\n"
792  "\n"
793  "Keywords:\n"
794  " filename : Name of the output file.\n"
795  ),
796  OUTPUT(),
797  INPUT(),
798  GOUTPUT(),
799  GINPUT( Vector_ ),
800  KEYWORDS( "filename" ),
801  TYPES( String_t )));
802 
803  md_data.push_back
804  ( MdRecord
805  ( NAME("VectorReadBinary"),
806  DESCRIPTION(
807  "Reads a vector from a binary file.\n"
808  "\n"
809  "The filename can be specified or an empty String.\n"
810  "If empty, it is set to <basename>.<variable_name>.ab.\n"
811  "File is in HDF4 format.\n"
812  "\n"
813  "Generic output: \n"
814  " Vector : Name of the workspace variable to read.\n"
815  "\n"
816  "Keywords:\n"
817  " filename : Name of the input file.\n"
818  ),
819  OUTPUT(),
820  INPUT(),
821  GOUTPUT( Vector_ ),
822  GINPUT(),
823  KEYWORDS( "filename" ),
824  TYPES( String_t )));
825 
826 
827  md_data.push_back
828  ( MdRecord
829  ( NAME("VectorPlanck"),
831  (
832  "Sets a vector to the Planck function for the given frequencies\n"
833  "and temperature. \n"
834  "\n"
835  "An example:\n"
836  " VectorPlanck(y_space,f_mono){temp=2.7} \n"
837  "\n"
838  "Generic output: \n"
839  " Vector : The vector to be created. \n"
840  "\n"
841  "Generic input: \n"
842  " Vector : Input frequencies. \n"
843  "\n"
844  "Keywords:\n"
845  " temp : The blackbody temperature."
846  ),
847  OUTPUT( ),
848  INPUT( ),
849  GOUTPUT( Vector_ ),
850  GINPUT( Vector_ ),
851  KEYWORDS( "temp" ),
852  TYPES( Numeric_t )));
853 
854  md_data.push_back
855  ( MdRecord
856  ( NAME("VectorCalcLog10"),
858  (
859  "Calculates the base 10 logarithm of a vector. \n"
860  "\n"
861  "The result can either be stored in the same or another vector. \n"
862  "\n"
863  "Generic output: \n"
864  " Vector : Return vector. \n"
865  "\n"
866  "Generic input: \n"
867  " Vector : Input vector. "
868  ),
869  OUTPUT( ),
870  INPUT( ),
871  GOUTPUT( Vector_ ),
872  GINPUT( Vector_ ),
873  KEYWORDS(),
874  TYPES()));
875 
876  md_data.push_back
877  ( MdRecord
878  ( NAME("VectorAdd"),
880  (
881  "Adds a scalar to all elements of a vector. \n"
882  "\n"
883  "The result can either be stored in the same or another vector. \n"
884  "\n"
885  "Generic output: \n"
886  " Vector : Return vector. \n"
887  "\n"
888  "Generic input: \n"
889  " Vector : Original vector. \n"
890  "\n"
891  "Keywords:\n"
892  " value : The value to be added to the vector."
893  ),
894  OUTPUT( ),
895  INPUT( ),
896  GOUTPUT( Vector_ ),
897  GINPUT( Vector_ ),
898  KEYWORDS( "value" ),
899  TYPES( Numeric_t )));
900 
901  md_data.push_back
902  ( MdRecord
903  ( NAME("VectorScale"),
905  (
906  "Scales all elements of a vector with the same value. \n"
907  "\n"
908  "The result can either be stored in the same or another vector. \n"
909  "\n"
910  "Generic output: \n"
911  " Vector : Return vector. \n"
912  "\n"
913  "Generic input: \n"
914  " Vector : Original vector. \n"
915  "\n"
916  "Keywords:\n"
917  " value : The value to be multiplicated with the vector."
918  ),
919  OUTPUT( ),
920  INPUT( ),
921  GOUTPUT( Vector_ ),
922  GINPUT( Vector_ ),
923  KEYWORDS( "value" ),
924  TYPES( Numeric_t )));
925 
926 
927 //=== Matrix ==========================================================
928 
929  md_data.push_back
930  ( MdRecord
931  ( NAME("MatrixSet"),
933  (
934  "Creates a workspace matrix with the specified size and sets \n"
935  "all values of the matrix to the specified value. \n"
936  "\n"
937  "Generic output: \n"
938  " Matrix : The matrix to be created. \n"
939  "\n"
940  "Keywords:\n"
941  " nrows : The number of rows of the matrix to create. \n"
942  " ncols : The number of columns of the matrix to create. \n"
943  " value : The value of the matrix elements. "
944  ),
945  OUTPUT(),
946  INPUT(),
947  GOUTPUT( Matrix_ ),
948  GINPUT(),
949  KEYWORDS( "nrows", "ncols", "value" ),
951 
952  md_data.push_back
953  ( MdRecord
954  ( NAME("MatrixCopy"),
956  (
957  "Creates a copy of a matrix. \n"
958  "\n"
959  "Generic output: \n"
960  " Matrix : The matrix to be created. \n"
961  "\n"
962  "Generic input: \n"
963  " Matrix : The matrix to be copied. "
964  ),
965  OUTPUT(),
966  INPUT(),
967  GOUTPUT( Matrix_ ),
968  GINPUT( Matrix_ ),
969  KEYWORDS(),
970  TYPES()));
971 
972  md_data.push_back
973  ( MdRecord
974  ( NAME("MatrixFillWithVector"),
976  (
977  "Forms a matrix with n columns, and put the given vector in \n"
978  "each column. \n"
979  "\n"
980  "Generic output: \n"
981  " Matrix : The matrix to be created. \n"
982  "\n"
983  "Generic input: \n"
984  " Vector : The vector to be copied. \n"
985  "Keyword: \n"
986  " n : Number of columns in the matrix. "
987  ),
988  OUTPUT(),
989  INPUT(),
990  GOUTPUT( Matrix_ ),
991  GINPUT( Vector_ ),
992  KEYWORDS( "n" ),
993  TYPES( Index_t )));
994 
995  md_data.push_back
996  ( MdRecord
997  ( NAME("MatrixMatrixMultiply"),
999  (
1000  "Multiply a Matrix with another Matrix and store the result in the result\n"
1001  "Matrix.\n"
1002  "\n"
1003  "This just computes the normal Matrix-Matrix product, Y=M*X. It is ok\n"
1004  "if Y and X are the same Matrix. This function is handy for\n"
1005  "multiplying the H Matrix to weighting functions.\n"
1006  "\n"
1007  "Generic output:\n"
1008  " Matrix : The result of the multiplication (dimension mxc).\n"
1009  "\n"
1010  "Generic input:\n"
1011  " Matrix : The Matrix to multiply (dimension mxn).\n"
1012  " Matrix : The original Matrix (dimension nxc).\n"
1013  ),
1014  OUTPUT(),
1015  INPUT(),
1016  GOUTPUT( Matrix_ ),
1017  GINPUT( Matrix_, Matrix_ ),
1018  KEYWORDS(),
1019  TYPES()));
1020 
1021  md_data.push_back
1022  ( MdRecord
1023  ( NAME("ArrayOfMatrixMatrixMultiply"),
1024  DESCRIPTION
1025  (
1026  "Multiply an array of Matrix with a Matrix and store the result in the result\n"
1027  "ArrayOfMatrix.\n"
1028  "\n"
1029  "This just computes the normal Matrix-Matrix product, Y[i]=M*X[i]. It is ok\n"
1030  "if Y and X are the same Array of Matrix. This function is handy for\n"
1031  "multiplying the H Matrix to weighting functions.\n"
1032  "\n"
1033  "Generic output:\n"
1034  " ArrayOfMatrix : The result of the multiplication (dimension mxc).\n"
1035  "\n"
1036  "Generic input:\n"
1037  " Matrix : The Matrix to multiply (dimension mxn).\n"
1038  " ArrayOfMatrix : The original Matrix (dimension nxc).\n"
1039  ),
1040  OUTPUT(),
1041  INPUT(),
1044  KEYWORDS(),
1045  TYPES()));
1046 
1047  md_data.push_back
1048  ( MdRecord
1049  ( NAME("MatrixMatrixAdd"),
1050  DESCRIPTION
1051  (
1052  "Adds two matrices. \n"
1053  "\n"
1054  "The function makes an element-wise addition. The size of the two \n"
1055  "matrices to add must have the same size. \n"
1056  "\n"
1057  "Generic output:\n"
1058  " Matrix : The result of the addition (dimension m x n).\n"
1059  "\n"
1060  "Generic input:\n"
1061  " Matrix : A matrix (dimension m x n).\n"
1062  " Matrix : A matrix (dimension m x n)."
1063  ),
1064  OUTPUT(),
1065  INPUT(),
1066  GOUTPUT( Matrix_ ),
1067  GINPUT( Matrix_, Matrix_ ),
1068  KEYWORDS(),
1069  TYPES()));
1070 
1071  md_data.push_back
1072  ( MdRecord
1073  ( NAME("MatrixWriteAscii"),
1074  DESCRIPTION(
1075  "Writes a matrix to an ASCII file.\n"
1076  "\n"
1077  "The matrix of the given workspace variable\n"
1078  "is written to the file with the specified name.\n"
1079  "If the filename is omitted, the matrix is written\n"
1080  "to <basename>.<variable_name>.aa.\n"
1081  "\n"
1082  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1083  "\n"
1084  "Generic input: \n"
1085  " Matrix : Name of the workspace variable to write.\n"
1086  "\n"
1087  "Keywords: \n"
1088  " filename : Name of the output file.\n"
1089  ),
1090  OUTPUT(),
1091  INPUT(),
1092  GOUTPUT(),
1093  GINPUT( Matrix_ ),
1094  KEYWORDS( "filename" ),
1095  TYPES( String_t )));
1096 
1097  md_data.push_back
1098  ( MdRecord
1099  ( NAME("MatrixReadAscii"),
1100  DESCRIPTION(
1101  "Reads a matrix from an ASCII file.\n"
1102  "\n"
1103  "The matrix is read from the file with the\n"
1104  "specified name and stored in the given workspace\n"
1105  "variable.\n"
1106  "If the filename is omitted, the matrix is read\n"
1107  "from <basename>.<variable_name>.aa.\n"
1108  "\n"
1109  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1110  "\n"
1111  "Generic output: \n"
1112  " Matrix : Name of the workspace variable to read.\n"
1113  "\n"
1114  "Keywords: \n"
1115  " filename : Name of the input file.\n"
1116  ),
1117  OUTPUT(),
1118  INPUT(),
1119  GOUTPUT( Matrix_ ),
1120  GINPUT(),
1121  KEYWORDS( "filename" ),
1122  TYPES( String_t )));
1123 
1124  md_data.push_back
1125  ( MdRecord
1126  ( NAME("MatrixWriteBinary"),
1127  DESCRIPTION(
1128  "Writes a matrix to a binary file.\n"
1129  "\n"
1130  "The filename can be specified or an empty String.\n"
1131  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1132  "File is in HDF4 format.\n"
1133  "\n"
1134  "Generic input: \n"
1135  " Matrix : Name of the workspace variable to write.\n"
1136  "\n"
1137  "Keywords:\n"
1138  " filename : Name of the output file.\n"
1139  ),
1140  OUTPUT(),
1141  INPUT(),
1142  GOUTPUT(),
1143  GINPUT( Matrix_ ),
1144  KEYWORDS( "filename" ),
1145  TYPES( String_t )));
1146 
1147  md_data.push_back
1148  ( MdRecord
1149  ( NAME("MatrixReadBinary"),
1150  DESCRIPTION(
1151  "Reads a matrix from a binary file.\n"
1152  "\n"
1153  "The filename can be specified or an empty String.\n"
1154  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1155  "File is in HDF4 format.\n"
1156  "\n"
1157  "Generic output: \n"
1158  " Matrix : Name of the workspace variable to read.\n"
1159  "\n"
1160  "Keywords:\n"
1161  " filename : Name of the input file.\n"
1162  ),
1163  OUTPUT(),
1164  INPUT(),
1165  GOUTPUT( Matrix_ ),
1166  GINPUT(),
1167  KEYWORDS( "filename" ),
1168  TYPES( String_t )));
1169 
1170  md_data.push_back
1171  ( MdRecord
1172  ( NAME("MatrixScale"),
1173  DESCRIPTION
1174  (
1175  "Scales all elements of a matrix with the same value. \n"
1176  "\n"
1177  "The result can either be stored in the same or another matrix. \n"
1178  "\n"
1179  "Generic output: \n"
1180  " Matrix : Return matrix. \n"
1181  "\n"
1182  "Generic input: \n"
1183  " Matrix : Original matrix. \n"
1184  "\n"
1185  "Keywords: \n"
1186  " value : The value to be multiplicated with the matrix."
1187  ),
1188  OUTPUT(),
1189  INPUT(),
1190  GOUTPUT( Matrix_ ),
1191  GINPUT( Matrix_ ),
1192  KEYWORDS( "value" ),
1193  TYPES( Numeric_t )));
1194 
1195  md_data.push_back
1196  ( MdRecord
1197  ( NAME("MatrixDiagonal"),
1198  DESCRIPTION
1199  (
1200  "Creates a diagonal matrix. \n"
1201  "\n"
1202  "All diagonal elements are set to the same value.\n"
1203  "\n"
1204  "Generic output: \n"
1205  " Matrix : The matrix to be created. \n"
1206  "\n"
1207  "Keywords: \n"
1208  " nrows : The number of rows (and columns) of the matrix to \n"
1209  " create. \n"
1210  " value : The value of the diagonal matrix elements. "
1211  ),
1212  OUTPUT(),
1213  INPUT(),
1214  GOUTPUT( Matrix_ ),
1215  GINPUT(),
1216  KEYWORDS( "nrows", "value" ),
1217  TYPES( Index_t, Numeric_t )));
1218 
1219 
1220 
1221 //=== ArrayOfIndex =====================================================
1222 
1223  md_data.push_back
1224  ( MdRecord
1225  ( NAME("ArrayOfIndexWriteAscii"),
1226  DESCRIPTION(
1227  "Writes a index array to an ASCII file.\n"
1228  "\n"
1229  "The index array of the given workspace variable\n"
1230  "is written to the file with the specified name.\n"
1231  "If the filename is omitted, the index array is written\n"
1232  "to <basename>.<variable_name>.aa.\n"
1233  "\n"
1234  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1235  "\n"
1236  "Generic input: \n"
1237  " ArrayOfIndex : Name of the workspace variable to write.\n"
1238  "\n"
1239  "Keywords: \n"
1240  " filename : Name of the output file.\n"
1241  ),
1242  OUTPUT(),
1243  INPUT(),
1244  GOUTPUT(),
1245  GINPUT( ArrayOfIndex_ ),
1246  KEYWORDS( "filename" ),
1247  TYPES( String_t )));
1248 
1249  md_data.push_back
1250  ( MdRecord
1251  ( NAME("ArrayOfIndexReadAscii"),
1252  DESCRIPTION(
1253  "Reads a index array from an ASCII file.\n"
1254  "\n"
1255  "The index array is read from the file with the\n"
1256  "specified name and stored in the given workspace\n"
1257  "variable.\n"
1258  "If the filename is omitted, the index array is read\n"
1259  "from <basename>.<variable_name>.aa.\n"
1260  "\n"
1261  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1262  "\n"
1263  "Generic output: \n"
1264  " ArrayOfIndex : Name of the workspace variable to read.\n"
1265  "\n"
1266  "Keywords: \n"
1267  " filename : Name of the input file.\n"
1268  ),
1269  OUTPUT(),
1270  INPUT(),
1272  GINPUT(),
1273  KEYWORDS( "filename" ),
1274  TYPES( String_t )));
1275 
1276  md_data.push_back
1277  ( MdRecord
1278  ( NAME("ArrayOfIndexWriteBinary"),
1279  DESCRIPTION(
1280  "Writes an index array to a binary file.\n"
1281  "\n"
1282  "The filename can be specified or an empty String.\n"
1283  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1284  "File is in HDF4 format.\n"
1285  "\n"
1286  "Generic input: \n"
1287  " ArrayOfIndex : Name of the workspace variable to write.\n"
1288  "\n"
1289  "Keywords:\n"
1290  " filename : Name of the output file.\n"
1291  ),
1292  OUTPUT(),
1293  INPUT(),
1294  GOUTPUT(),
1295  GINPUT( ArrayOfIndex_ ),
1296  KEYWORDS( "filename" ),
1297  TYPES( String_t )));
1298 
1299  md_data.push_back
1300  ( MdRecord
1301  ( NAME("ArrayOfIndexReadBinary"),
1302  DESCRIPTION(
1303  "Reads an index array from a binary file.\n"
1304  "\n"
1305  "The filename can be specified or an empty String.\n"
1306  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1307  "File is in HDF4 format.\n"
1308  "\n"
1309  "Generic output: \n"
1310  " ArrayOfIndex : Name of the workspace variable to read.\n"
1311  "\n"
1312  "Keywords:\n"
1313  " filename : Name of the input file.\n"
1314  ),
1315  OUTPUT(),
1316  INPUT(),
1318  GINPUT(),
1319  KEYWORDS( "filename" ),
1320  TYPES( String_t )));
1321 
1322 
1323 //=== ArrayOfVector ====================================================
1324 
1325  md_data.push_back
1326  ( MdRecord
1327  ( NAME("ArrayOfVectorWriteAscii"),
1328  DESCRIPTION(
1329  "Writes an array of vectors to an ASCII file.\n"
1330  "\n"
1331  "The array of vectors of the given workspace variable\n"
1332  "is written to the file with the specified name.\n"
1333  "If the filename is omitted, the array of vectors is written\n"
1334  "to <basename>.<variable_name>.aa.\n"
1335  "\n"
1336  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1337  "\n"
1338  "Generic input: \n"
1339  " ArrayOfVector : Name of the workspace variable to write.\n"
1340  "\n"
1341  "Keywords: \n"
1342  " filename : Name of the output file.\n"
1343  ),
1344  OUTPUT(),
1345  INPUT(),
1346  GOUTPUT(),
1348  KEYWORDS( "filename" ),
1349  TYPES( String_t )));
1350 
1351  md_data.push_back
1352  ( MdRecord
1353  ( NAME("ArrayOfVectorReadAscii"),
1354  DESCRIPTION(
1355  "Reads an array of vectors from an ASCII file.\n"
1356  "\n"
1357  "The array of vectors is read from the file with the\n"
1358  "specified name and stored in the given workspace\n"
1359  "variable.\n"
1360  "If the filename is omitted, the array of vectors is read\n"
1361  "from <basename>.<variable_name>.aa.\n"
1362  "\n"
1363  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1364  "\n"
1365  "Generic output: \n"
1366  " ArrayOfVector : Name of the workspace variable to read.\n"
1367  "\n"
1368  "Keywords: \n"
1369  " filename : Name of the input file.\n"
1370  ),
1371  OUTPUT(),
1372  INPUT(),
1374  GINPUT(),
1375  KEYWORDS( "filename" ),
1376  TYPES( String_t )));
1377 
1378  md_data.push_back
1379  ( MdRecord
1380  ( NAME("ArrayOfVectorWriteBinary"),
1381  DESCRIPTION(
1382  "Writes a vector array to a binary file.\n"
1383  "\n"
1384  "The filename can be specified or an empty String.\n"
1385  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1386  "File is in HDF4 format.\n"
1387  "\n"
1388  "Generic input: \n"
1389  " ArrayOfVector : Name of the workspace variable to write.\n"
1390  "\n"
1391  "Keywords:\n"
1392  " filename : Name of the output file.\n"
1393  ),
1394  OUTPUT(),
1395  INPUT(),
1396  GOUTPUT(),
1398  KEYWORDS( "filename" ),
1399  TYPES( String_t )));
1400 
1401  md_data.push_back
1402  ( MdRecord
1403  ( NAME("ArrayOfVectorReadBinary"),
1404  DESCRIPTION(
1405  "Reads a vector array from a binary file.\n"
1406  "\n"
1407  "The filename can be specified or an empty String.\n"
1408  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1409  "File is in HDF4 format.\n"
1410  "\n"
1411  "Generic output: \n"
1412  " ArrayOfVector : Name of the workspace variable to read.\n"
1413  "\n"
1414  "Keywords:\n"
1415  " filename : Name of the input file.\n"
1416  ),
1417  OUTPUT(),
1418  INPUT(),
1420  GINPUT(),
1421  KEYWORDS( "filename" ),
1422  TYPES( String_t )));
1423 
1424 
1425 
1426 //=== ArrayOfMatrix ====================================================
1427 
1428  md_data.push_back
1429  ( MdRecord
1430  ( NAME("ArrayOfMatrixWriteAscii"),
1431  DESCRIPTION(
1432  "Writes an array of matrices to an ASCII file.\n"
1433  "\n"
1434  "The array of matrices of the given workspace variable\n"
1435  "is written to the file with the specified name.\n"
1436  "If the filename is omitted, the array of matrices is written\n"
1437  "to <basename>.<variable_name>.aa.\n"
1438  "\n"
1439  "The format is as follows:\n"
1440  "\n"
1441  "# <comments>\n"
1442  "<n_array_elements>\n"
1443  "<n_rows> <n_columns>\n"
1444  "<elements>\n"
1445  "<n_rows> <n_columns>\n"
1446  "<elements>\n"
1447  "...\n"
1448  "\n"
1449  "Example:\n"
1450  "# Generated by arts-0.0.16, Apr 29 2000, 17:38:44\n"
1451  "2\n"
1452  "3 4\n"
1453  "xx xx xx xx\n"
1454  "xx xx xx xx\n"
1455  "xx xx xx xx\n"
1456  "2 2\n"
1457  "yy yy\n"
1458  "yy yy"
1459  "\n"
1460  "Generic input: \n"
1461  " ArrayOfMatrix : Name of the workspace variable to write.\n"
1462  "\n"
1463  "Keywords: \n"
1464  " filename : Name of the output file.\n"
1465  ),
1466  OUTPUT(),
1467  INPUT(),
1468  GOUTPUT(),
1470  KEYWORDS( "filename" ),
1471  TYPES( String_t )));
1472 
1473  md_data.push_back
1474  ( MdRecord
1475  ( NAME("ArrayOfMatrixReadAscii"),
1476  DESCRIPTION(
1477  "Reads an array of matrices from an ASCII file.\n"
1478  "\n"
1479  "The array of matrices is read from the file with the\n"
1480  "specified name and stored in the given workspace\n"
1481  "variable.\n"
1482  "If the filename is omitted, the array of matrices is read\n"
1483  "from <basename>.<variable_name>.aa.\n"
1484  "\n"
1485  "See *ArrayOfMatrixWriteAscii* for file format.\n"
1486  "\n"
1487  "Generic output: \n"
1488  " ArrayOfMatrix : Name of the workspace variable to read.\n"
1489  "\n"
1490  "Keywords: \n"
1491  " filename : Name of the input file.\n"
1492  ),
1493  OUTPUT(),
1494  INPUT(),
1496  GINPUT(),
1497  KEYWORDS( "filename" ),
1498  TYPES( String_t )));
1499 
1500  md_data.push_back
1501  ( MdRecord
1502  ( NAME("ArrayOfMatrixWriteBinary"),
1503  DESCRIPTION(
1504  "Writes a matrix array to a binary file.\n"
1505  "\n"
1506  "The filename can be specified or an empty String.\n"
1507  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1508  "File is in HDF4 format.\n"
1509  "\n"
1510  "Generic input: \n"
1511  " ArrayOfMatrix : Name of the workspace variable to write.\n"
1512  "\n"
1513  "Keywords:\n"
1514  " filename : Name of the output file.\n"
1515  ),
1516  OUTPUT(),
1517  INPUT(),
1518  GOUTPUT(),
1520  KEYWORDS( "filename" ),
1521  TYPES( String_t )));
1522 
1523  md_data.push_back
1524  ( MdRecord
1525  ( NAME("ArrayOfMatrixReadBinary"),
1526  DESCRIPTION(
1527  "Reads a matrix array from a binary file.\n"
1528  "\n"
1529  "The filename can be specified or an empty String.\n"
1530  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1531  "File is in HDF4 format.\n"
1532  "\n"
1533  "Generic output: \n"
1534  " ArrayOfMatrix : Name of the workspace variable to read.\n"
1535  "\n"
1536  "Keywords:\n"
1537  " filename : Name of the input file.\n"
1538  ),
1539  OUTPUT(),
1540  INPUT(),
1542  GINPUT(),
1543  KEYWORDS( "filename" ),
1544  TYPES( String_t )));
1545 
1546 //=== STRING ============================================================
1547 
1548  md_data.push_back
1549  ( MdRecord
1550  ( NAME("StringSet"),
1551  DESCRIPTION("Sets a String to the given text String."),
1552  OUTPUT(),
1553  INPUT(),
1554  GOUTPUT( String_ ),
1555  GINPUT(),
1556  KEYWORDS( "text" ),
1557  TYPES( String_t )));
1558 
1559  md_data.push_back
1560  ( MdRecord
1561  ( NAME("StringWriteAscii"),
1562  DESCRIPTION(
1563  "Writes a string to an ASCII file.\n"
1564  "\n"
1565  "The string of the given workspace variable\n"
1566  "is written to the file with the specified name.\n"
1567  "If the filename is omitted, the string is written\n"
1568  "to <basename>.<variable_name>.aa.\n"
1569  "\n"
1570  "See *ArrayOfStringWriteAscii* for file format.\n"
1571  "\n"
1572  "Generic input: \n"
1573  " String : Name of the workspace variable to write.\n"
1574  "\n"
1575  "Keywords: \n"
1576  " filename : Name of the output file.\n"
1577  ),
1578  OUTPUT(),
1579  INPUT(),
1580  GOUTPUT(),
1581  GINPUT( String_ ),
1582  KEYWORDS( "filename" ),
1583  TYPES( String_t )));
1584 
1585  md_data.push_back
1586  ( MdRecord
1587  ( NAME("StringReadAscii"),
1588  DESCRIPTION(
1589  "Reads a string from an ASCII file.\n"
1590  "\n"
1591  "The string is read from the file with the\n"
1592  "specified name and stored in the given workspace\n"
1593  "variable.\n"
1594  "If the filename is omitted, the string is read\n"
1595  "from <basename>.<variable_name>.aa.\n"
1596  "\n"
1597  "See *ArrayOfStringWriteAscii* for file format.\n"
1598  "\n"
1599  "Generic output: \n"
1600  " String : Name of the workspace variable to read.\n"
1601  "\n"
1602  "Keywords: \n"
1603  " filename : Name of the input file.\n"
1604  ),
1605  OUTPUT(),
1606  INPUT(),
1607  GOUTPUT( String_ ),
1608  GINPUT(),
1609  KEYWORDS( "filename" ),
1610  TYPES( String_t )));
1611 
1612  md_data.push_back
1613  ( MdRecord
1614  ( NAME("StringWriteBinary"),
1615  DESCRIPTION(
1616  "Writes a String to a binary file.\n"
1617  "\n"
1618  "The filename can be specified or an empty String.\n"
1619  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1620  "File is in HDF4 format.\n"
1621  "\n"
1622  "Generic input: \n"
1623  " String : Name of the workspace variable to write.\n"
1624  "\n"
1625  "Keywords:\n"
1626  " filename : Name of the output file.\n"
1627  ),
1628  OUTPUT(),
1629  INPUT(),
1630  GOUTPUT(),
1631  GINPUT( String_ ),
1632  KEYWORDS( "filename" ),
1633  TYPES( String_t )));
1634 
1635  md_data.push_back
1636  ( MdRecord
1637  ( NAME("StringReadBinary"),
1638  DESCRIPTION(
1639  "Reads a String from a binary file.\n"
1640  "\n"
1641  "The filename can be specified or an empty String.\n"
1642  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1643  "File is in HDF4 format.\n"
1644  "\n"
1645  "Generic output: \n"
1646  " String : Name of the workspace variable to read.\n"
1647  "\n"
1648  "Keywords:\n"
1649  " filename : Name of the input file.\n"
1650  ),
1651  OUTPUT(),
1652  INPUT(),
1653  GOUTPUT( String_ ),
1654  GINPUT(),
1655  KEYWORDS( "filename" ),
1656  TYPES( String_t )));
1657 
1658 
1659 //=== ArrayOfSTRING =========================================================
1660 
1661  md_data.push_back
1662  ( MdRecord
1663  ( NAME("ArrayOfStringSet"),
1664  DESCRIPTION("Sets a String array according the given text.\n"
1665  "The format is text = [\"String1\",\"String2\",...]"),
1666  OUTPUT(),
1667  INPUT(),
1669  GINPUT(),
1670  KEYWORDS( "text" ),
1671  TYPES( Array_String_t )));
1672 
1673  md_data.push_back
1674  ( MdRecord
1675  ( NAME("ArrayOfStringWriteAscii"),
1676  DESCRIPTION(
1677  "Writes an array of strings to an ASCII file.\n"
1678  "\n"
1679  "The array of strings of the given workspace variable\n"
1680  "is written to the file with the specified name.\n"
1681  "If the filename is omitted, the string is written\n"
1682  "to <basename>.<variable_name>.aa.\n"
1683  "\n"
1684  "The format is as follows:\n"
1685  "\n"
1686  "# <comments>\n"
1687  "<n_Strings>\n"
1688  "<String 1>\n"
1689  "<String 2>\n"
1690  "...\n"
1691  "\n"
1692  "Example:\n"
1693  "# Generated by arts-0.0.16, Apr 29 2000, 17:38:44\n"
1694  "2\n"
1695  "A String\n"
1696  "Another String\n"
1697  "\n"
1698  "Generic input: \n"
1699  " ArrayOfString : Name of the workspace variable to write.\n"
1700  "\n"
1701  "Keywords: \n"
1702  " filename : Name of the output file.\n"
1703  ),
1704  OUTPUT(),
1705  INPUT(),
1706  GOUTPUT(),
1708  KEYWORDS( "filename" ),
1709  TYPES( String_t )));
1710 
1711  md_data.push_back
1712  ( MdRecord
1713  ( NAME("ArrayOfStringReadAscii"),
1714  DESCRIPTION(
1715  "Reads an array of strings from an ASCII file.\n"
1716  "\n"
1717  "The array of strings is read from the file with the\n"
1718  "specified name and stored in the given workspace\n"
1719  "variable.\n"
1720  "If the filename is omitted, the string is read\n"
1721  "from <basename>.<variable_name>.aa.\n"
1722  "\n"
1723  "See *ArrayOfStringWriteAscii* for file format.\n"
1724  "\n"
1725  "Generic output: \n"
1726  " ArrayOfString : Name of the workspace variable to read.\n"
1727  "\n"
1728  "Keywords: \n"
1729  " filename : Name of the input file.\n"
1730  ),
1731  OUTPUT(),
1732  INPUT(),
1734  GINPUT(),
1735  KEYWORDS( "filename" ),
1736  TYPES( String_t )));
1737 
1738  md_data.push_back
1739  ( MdRecord
1740  ( NAME("ArrayOfStringWriteBinary"),
1741  DESCRIPTION(
1742  "Writes a String array to a binary file.\n"
1743  "\n"
1744  "The filename can be specified or an empty String.\n"
1745  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1746  "File is in HDF4 format.\n"
1747  "\n"
1748  "Generic input: \n"
1749  " ArrayOfString : Name of the workspace variable to write.\n"
1750  "\n"
1751  "Keywords:\n"
1752  " filename : Name of the output file.\n"
1753  ),
1754  OUTPUT(),
1755  INPUT(),
1756  GOUTPUT(),
1758  KEYWORDS( "filename" ),
1759  TYPES( String_t )));
1760 
1761  md_data.push_back
1762  ( MdRecord
1763  ( NAME("ArrayOfStringReadBinary"),
1764  DESCRIPTION(
1765  "Reads a String array from a binary file.\n"
1766  "\n"
1767  "The filename can be specified or an empty String.\n"
1768  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1769  "File is in HDF4 format.\n"
1770  "\n"
1771  "Generic output: \n"
1772  " ArrayOfString : Name of the workspace variable to read.\n"
1773  "\n"
1774  "Keywords:\n"
1775  " filename : Name of the input file.\n"
1776  ),
1777  OUTPUT(),
1778  INPUT(),
1780  GINPUT(),
1781  KEYWORDS( "filename" ),
1782  TYPES( String_t )));
1783 
1784 //==== tgs =================================================================
1785 
1786 md_data.push_back
1787  ( MdRecord
1788  ( NAME("TagGroupsSpeciesWriteAscii"),
1789  DESCRIPTION(
1790  "Writes TagGroup Species to an ASCII file.\n"
1791  "\n"
1792  "The tags which are defined by *tgsDefine*\n"
1793  "is written to the file with the specified name.\n"
1794  "If the filename is omitted, the string is written\n"
1795  "to <basename>.<variable_name>.aa.\n"
1796  "\n"
1797  "Generic input: \n"
1798  " tgs : The tags which are defined.\n"
1799  "\n"
1800  "Keywords: \n"
1801  " filename : Name of the output file.\n"
1802  ),
1803  OUTPUT(),
1804  INPUT(),
1805  GOUTPUT(),
1806  GINPUT( TagGroups_ ),
1807  KEYWORDS( "filename" ),
1808  TYPES( String_t )));
1809 
1810 
1811 //=== LOS ==================================================================
1812 
1813  md_data.push_back
1814  ( MdRecord
1815  ( NAME("LosWriteBinary"),
1816  DESCRIPTION(
1817  "Writes a LOS structure to a binary file.\n"
1818  "\n"
1819  "The filename can be specified or an empty String.\n"
1820  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1821  "File is in HDF4 format.\n"
1822  "\n"
1823  "Generic input: \n"
1824  " LOS : Name of the workspace variable to write.\n"
1825  "\n"
1826  "Keywords:\n"
1827  " filename : Name of the output file.\n"
1828  ),
1829  OUTPUT(),
1830  INPUT(),
1831  GOUTPUT(),
1832  GINPUT( Los_ ),
1833  KEYWORDS( "filename" ),
1834  TYPES( String_t )));
1835 
1836  md_data.push_back
1837  ( MdRecord
1838  ( NAME("LosReadBinary"),
1839  DESCRIPTION(
1840  "Reads a LOS structure from a binary file.\n"
1841  "\n"
1842  "The filename can be specified or an empty String.\n"
1843  "If empty, it is set to <basename>.<variable_name>.ab.\n"
1844  "File is in HDF4 format.\n"
1845  "\n"
1846  "Generic output: \n"
1847  " LOS : Name of the workspace variable to read.\n"
1848  "\n"
1849  "Keywords:\n"
1850  " filename : Name of the input file.\n"
1851  ),
1852  OUTPUT(),
1853  INPUT(),
1854  GOUTPUT( Los_ ),
1855  GINPUT(),
1856  KEYWORDS( "filename" ),
1857  TYPES( String_t )));
1858 
1859 
1860 
1861 //======================================================================
1862 //=== Absorption methods
1863 //======================================================================
1864 
1865 //=== Spectroscopic methods ============================================
1866 
1867  md_data.push_back
1868  ( MdRecord
1869  ( NAME("lines_per_tgSetEmpty"),
1870  DESCRIPTION
1871  (
1872  "Sets lines_per_tg to empty line lists.\n"
1873  "\n"
1874  "You can use this method to set lines per tag if you do not reall want\n"
1875  "to compute line spectra. Formally, absCalc will still require\n"
1876  "lines_per_tg to be set.\n"
1877  ),
1878  OUTPUT( lines_per_tg_ ),
1879  INPUT( tgs_ ),
1880  GOUTPUT(),
1881  GINPUT(),
1882  KEYWORDS( ),
1883  TYPES( )));
1884 
1885  md_data.push_back
1886  ( MdRecord
1887  ( NAME("lines_per_tgReadFromCatalogues"),
1888  DESCRIPTION(
1889  "This method can read lines from different line \n"
1890  "catalogues.\n"
1891  "\n"
1892  "For each tag group, you can specify which catalogue\n"
1893  "to use. Because the method creates lines_per_tg directly,\n"
1894  "it replaces for example thefollowing two method calls:\n"
1895  " - linesReadFromHitran\n"
1896  " - lines_per_tgCreateFromLines\n"
1897  " This method needs as input WSVs the list of tag \n"
1898  "groups. Keyword parameters must specify the names of\n"
1899  "the catalogue files to use and the matching formats.\n"
1900  "Names can be anything, formats can currently be \n"
1901  "HITRAN96 (for HITRAN 1986-2001 databases), HITRAN04 \n"
1902  "(for HITRAN 2004 database), MYTRAN2, JPL, or ARTS. \n"
1903  "Furthermore, keyword parameters have to specify minimum \n"
1904  "and maximum frequency for each tag group. To safe typing, \n"
1905  "if there are less elements in the keyword parameters than \n"
1906  "there are tag groups, the last parameters are applied to \n"
1907  "all following tag groups.\n"
1908  "\n"
1909  "Example usage:\n"
1910  "\n"
1911  "lines_per_tgReadFromCatalogues{\n"
1912  " filenames = [ \"../data/cat1.dat\", \"../data/cat2.dat\" ]\n"
1913  " formats = [ \"MYTRAN2\", \"HITRAN96\" ]\n"
1914  " fmin = [ 0, 0 ]\n"
1915  " fmax = [ 2000e9, 100e9 ]\n"
1916  "}\n"
1917  " In this example, lines for the first tag group will\n"
1918  "be taken from cat1, lines for all other tag groups \n"
1919  "will be taken from cat2.\n"
1920  " This methods allows you for example to use a \n"
1921  "special line file just for water vapor lines. This\n"
1922  "could be the improved water vapor line file \n"
1923  "generated by Thomas Kuhn.\n"
1924  " Catalogues are only read once, even if several tag\n"
1925  "groups have the same catalogue. However, in that case\n"
1926  "the frequency ranges MUST be the same. (If you want \n"
1927  "to do fine-tuning of the frequency ranges, you can do \n"
1928  "this inside the tag definitions, e.g., \"H2O-*-0-2000e9\".)\n"
1929  " This function uses the various reading routines\n"
1930  "(linesReadFromHitran, etc.), as well as\n"
1931  "lines_per_tgCreateFromLines.\n"
1932  "\n"
1933  "Keywords: \n"
1934  " filenames = Name (and path) of the catalogue files.\n"
1935  " formats = allowed formats are HITRAN96,MYTRAN2,JPL,ARTS \n"
1936  " fmin = Minimum frequency for lines to read in Hz.\n"
1937  " fmax = Maximum frequency for lines to read in Hz.\n"),
1938  OUTPUT( lines_per_tg_ ),
1939  INPUT( tgs_ ),
1940  GOUTPUT(),
1941  GINPUT(),
1942  KEYWORDS( "filenames", "formats", "fmin", "fmax" ),
1944 
1945  md_data.push_back
1946  ( MdRecord
1947  ( NAME("linesReadFromHitran"),
1948  DESCRIPTION(
1949  "Read all the lines from a HITRAN 1986-2001 catalogue file in\n"
1950  "the given frequency range. Otherwise a runtime error will be\n"
1951  "thrown. For HITRAN 2004 line data use the workspace method \n"
1952  "linesReadFromHitran. \n"
1953  "\n"
1954  "Please note that all lines must correspond to the legal\n"
1955  "species / isotope combinations and that the line data \n"
1956  "file must be sorted by increasing frequency\n"
1957  "\n"
1958  "Keywords: \n"
1959  " filename = Name (and path) of the catalogue file.\n"
1960  " fmin = Minimum frequency for lines to read in Hz.\n"
1961  " fmax = Maximum frequency for lines to read in Hz."),
1962  OUTPUT( lines_ ),
1963  INPUT(),
1964  GOUTPUT(),
1965  GINPUT(),
1966  KEYWORDS( "filename", "fmin", "fmax"),
1968 
1969  md_data.push_back
1970  ( MdRecord
1971  ( NAME("linesReadFromHitran2004"),
1972  DESCRIPTION(
1973  "Read all the lines from a HITRAN 2004 catalogue file in the \n"
1974  "given frequency range. Otherwise a runtime error is thrown. \n"
1975  "\n"
1976  "Records of molecules unknown to ARTS are ignored but a \n"
1977  "warning is issued. In particular this happens to CH3OH \n"
1978  "(HITRAN molecule number 39) because there is no total internal \n"
1979  "partition sum available. \n"
1980  "\n"
1981  "The database must be sorted by increasing frequency!\n"
1982  "\n"
1983  "For data in the Hitran 1986-2001 format use the workspace \n"
1984  "method: linesReadFromHitran\n"
1985  "\n"
1986  "Keywords: \n"
1987  " filename = Name (and path) of the catalogue file.\n"
1988  " fmin = Minimum frequency for lines to read in Hz.\n"
1989  " fmax = Maximum frequency for lines to read in Hz."),
1990  OUTPUT( lines_ ),
1991  INPUT(),
1992  GOUTPUT(),
1993  GINPUT(),
1994  KEYWORDS( "filename", "fmin", "fmax"),
1996 
1997  md_data.push_back
1998  ( MdRecord
1999  ( NAME("linesReadFromMytran2"),
2000  DESCRIPTION(
2001  "Read all the lines from a MYTRAN2 catalogue file in the \n"
2002  "given frequency range. Otherwise a runtime error will be\n"
2003  "thrown\n"
2004  "\n"
2005  "Please note that all lines must correspond\n"
2006  "to the legal species / isotope combinations\n"
2007  "\n"
2008  "Keywords: \n"
2009  " filename = Name (and path) of the catalogue file.\n"
2010  " fmin = Minimum frequency for lines to read in Hz.\n"
2011  " fmax = Maximum frequency for lines to read in Hz."),
2012  OUTPUT( lines_ ),
2013  INPUT(),
2014  GOUTPUT(),
2015  GINPUT(),
2016  KEYWORDS( "filename", "fmin", "fmax"),
2018 
2019  md_data.push_back
2020  ( MdRecord
2021  ( NAME("linesReadFromJpl"),
2022  DESCRIPTION(
2023  "Read all the lines from a JPL catalogue file in the \n"
2024  "given frequency range. Otherwise a runtime error will be\n"
2025  "thrown\n"
2026  "\n"
2027  "Please note that all lines must correspond\n"
2028  "to the legal species / isotope combinations.\n"
2029  "\n"
2030  "Keywords: \n"
2031  " filename = Name (and path) of the catalogue file.\n"
2032  " fmin = Minimum frequency for lines to read in Hz.\n"
2033  " fmax = Maximum frequency for lines to read in Hz."),
2034  OUTPUT( lines_ ),
2035  INPUT(),
2036  GOUTPUT(),
2037  GINPUT(),
2038  KEYWORDS( "filename", "fmin", "fmax"),
2040 
2041  md_data.push_back
2042  ( MdRecord
2043  ( NAME("linesReadFromArts"),
2044  DESCRIPTION(
2045  "Read all the lines from an Arts catalogue file in the \n"
2046  "given frequency range. Otherwise a runtime error will be\n"
2047  "thrown \n"
2048  "\n"
2049  "Please note that all lines must correspond\n"
2050  "to the legal species / isotope combinations\n"
2051  "\n"
2052  "Keywords: \n"
2053  " filename = Name (and path) of the catalogue file.\n"
2054  " fmin = Minimum frequency for lines to read in Hz.\n"
2055  " fmax = Maximum frequency for lines to read in Hz."),
2056  OUTPUT( lines_ ),
2057  INPUT(),
2058  GOUTPUT(),
2059  GINPUT(),
2060  KEYWORDS( "filename", "fmin", "fmax"),
2062 
2063  // FIXME: Remove this one.
2064  md_data.push_back
2065  ( MdRecord
2066  ( NAME("linesElowToJoule"),
2067  DESCRIPTION(
2068  "Just a little helper to convert the lower state energy from cm^-1\n"
2069  "(ARTSCAT-2) to Joule (ARTSCAT-3). This should be removed soon\n"),
2070  OUTPUT( lines_ ),
2071  INPUT(),
2072  GOUTPUT(),
2073  GINPUT(),
2074  KEYWORDS( ),
2075  TYPES( )));
2076 
2077  md_data.push_back
2078  ( MdRecord
2079  ( NAME("lines_per_tgCreateFromLines"),
2080  DESCRIPTION(
2081  "Split lines up into the different tag groups.\n"
2082  "\n"
2083  "The tag groups are tested in the order in which they are\n"
2084  "specified in the controlfile. The lines are assigned to \n"
2085  "the tag groups in the order as the groups are specified.\n"
2086  "That means if you do [\"O3-666\",\"O3\"],the last group O3 \n"
2087  "gets assigned all the O3 lines that do not fit in the first group."),
2088  OUTPUT( lines_per_tg_ ),
2089  INPUT( lines_, tgs_ ),
2090  GOUTPUT(),
2091  GINPUT(),
2092  KEYWORDS(),
2093  TYPES()));
2094 
2095  md_data.push_back
2096  ( MdRecord
2097  ( NAME("lines_per_tgAddMirrorLines"),
2098  DESCRIPTION(
2099  "Adds mirror lines at negative frequencies to the *lines_per_tg*.\n"
2100  "\n"
2101  "For each line at frequency +f in *lines_per_tg* a corresponding\n"
2102  "entry at frequency -f is added to *lines_per_tg*.The mirror \n"
2103  "lines are appended to the line lists after the original lines."),
2104  OUTPUT( lines_per_tg_ ),
2105  INPUT( lines_per_tg_ ),
2106  GOUTPUT(),
2107  GINPUT(),
2108  KEYWORDS(),
2109  TYPES()));
2110 
2111  md_data.push_back
2112  ( MdRecord
2113  ( NAME("lines_per_tgCompact"),
2114  DESCRIPTION(
2115  "Removes all lines outside the defined lineshape cutoff frequency\n"
2116  "from the *lines_per_tg*. This can save computation time.\n"
2117  "It should be particularly useful to call this method after\n"
2118  "*lines_per_tgAddMirrorLines*."),
2119  OUTPUT( lines_per_tg_ ),
2121  GOUTPUT(),
2122  GINPUT(),
2123  KEYWORDS(),
2124  TYPES()));
2125 
2126  md_data.push_back
2127  ( MdRecord
2128  ( NAME("linesWriteAscii"),
2129  DESCRIPTION(
2130  "Writes the workspace variable *lines* to an ASCII file.\n"
2131  "\n"
2132  "The content of the workspace variable 'lines`\n"
2133  "The content of the workspace variable *lines*\n"
2134  "is written in ARTS line format to the file with\n"
2135  "the specified name. If the filename is omitted, the\n"
2136  "lines are written to <basename>.lines.aa.\n"
2137  "\n"
2138  "Keywords: \n"
2139  " filename : Name of the output file.\n"
2140  ),
2141  OUTPUT(),
2142  INPUT( lines_ ),
2143  GOUTPUT(),
2144  GINPUT(),
2145  KEYWORDS( "filename" ),
2146  TYPES( String_t )));
2147 
2148  md_data.push_back
2149  ( MdRecord
2150  ( NAME("lines_per_tgWriteAscii"),
2151  DESCRIPTION(
2152  "Writes the workspace variable *lines_per_tg* to an ASCII file.\n"
2153  "\n"
2154  "The content of the workspace variable *lines_per_tg*\n"
2155  "is written in ARTS line format to the file with\n"
2156  "the specified name. If the filename is omitted, the\n"
2157  "lines are written to <basename>.lines_per_tg.aa.\n"
2158  "\n"
2159  "The array dimension is handled in a similar way as by the\n"
2160  "array of vector and matrix output functions:\n"
2161  "First an integer stating the number of tag groups.\n"
2162  "Then an integer specifying the number of lines for the\n"
2163  "first group. Then the other groups in similar fashion."
2164  "\n"
2165  "Keywords: \n"
2166  " filename : Name of the output file.\n"
2167  ),
2168  OUTPUT(),
2169  INPUT( lines_per_tg_ ),
2170  GOUTPUT(),
2171  GINPUT(),
2172  KEYWORDS( "filename" ),
2173  TYPES( String_t )));
2174 
2175  md_data.push_back
2176  ( MdRecord
2177  ( NAME("tgsDefine"),
2178  DESCRIPTION(
2179  "Set up the list of tag groups.\n"
2180  "\n"
2181  "The workspace variable *tgs* contains several tag groups. Each \n"
2182  "tag group contain one or more tags. This method converts \n"
2183  "description of tag groups given in the keyword to the internal \n"
2184  "representation *tgs*. A tag group selects spectral features which \n"
2185  "belong to the same species. \n"
2186  " A tag group can contain a mixture of general and special \n"
2187  "tags. All the continuum tags belong to the special tags and \n"
2188  "the rest come under the general tags.\n"
2189  " A general tag is defined in terms of the name of the species,\n"
2190  "isotope and a range of frequencies. Species are named after the \n"
2191  "standard chemical names,e.g., \"O3\". Isotopes are given by the \n"
2192  "last digit of the atomic weight, i.e., \"O3-668\" for the \n"
2193  "asymmetric ozone molecule including an oxygen 18 atom. Groups\n"
2194  "of transitions are specified by giving a lower and upper limit \n"
2195  "of a frequency range,\"O3-666-500e9-501e9\".Moreover the symbol\n"
2196  "'*' acts as a wild card. Furthermore, frequency range or frequency\n"
2197  "range and isotope may be omitted.\n"
2198  "Example for some tag groups containing only general tags:\n"
2199  "tags = [\"O3-666-500e9-501e9, O3-686\",\"O3\"]\n"
2200  "The first tag group consist of all O3-666 lines between 500 and\n"
2201  "501 GHz plus all O3-686 lines. The second tag group will contain\n"
2202  "all remaining O3 transitions.\n"
2203  "\n"
2204  "Keywords:\n"
2205  " tags : Specify one String for each tag group that you want to create.\n"
2206  " Inside the String, separate the tags by comma (plus optional blanks).\n"
2207  " Example:\n"
2208  " tag = [\"O3-686\",\"H2O\"]"),
2209  OUTPUT( tgs_ ),
2210  INPUT(),
2211  GOUTPUT(),
2212  GINPUT(),
2213  KEYWORDS( "tags" ),
2214  TYPES( Array_String_t )));
2215 
2216  md_data.push_back
2217  ( MdRecord
2218  ( NAME("tgsDefineAllInScenario"),
2219  DESCRIPTION
2220  (
2221  "Define one tag group for each species known to ARTS and included in an\n"
2222  "atmospheric scenario.\n"
2223  "\n"
2224  "You can use this as an alternative to tgsDefine if you want to make an\n"
2225  "absorption calculation that is as complete as possible. The method\n"
2226  "goes through all defined species and tries to open the VMR file. If\n"
2227  "this works the tag is included, otherwise it is skipped.\n"
2228  "\n"
2229  "Keywords:\n"
2230  " basename : The name and path of a particular atmospheric scenario.\n"
2231  " For example: /pool/lookup2/arts-data/atmosphere/fascod/tropical"
2232  ),
2233  OUTPUT( tgs_ ),
2234  INPUT(),
2235  GOUTPUT(),
2236  GINPUT(),
2237  KEYWORDS( "basename" ),
2238  TYPES( String_t )));
2239 
2240  md_data.push_back
2241  ( MdRecord
2242  ( NAME("lineshapeDefine"),
2243  DESCRIPTION(
2244  "Sets the lineshape for all calculated lines.\n"
2245  "\n"
2246  " A general lineshape profile is specified, according to a given \n"
2247  "approximation. Alongside a normalization factor is to be set - a \n"
2248  "multiplicative forefactor through which the profile can be \n"
2249  "modified. This factor is just the 0th or 1st, or 2nd power of the\n"
2250  "ratio between the frequency of calculation f and the center frequency\n"
2251  "for a specific line f0. A cutoff frequency must also be specified in\n"
2252  "order to restrict the calculation within a desired frequency region or\n"
2253  "not, when there's no such region.\n"
2254  " The general lineshape profile is given by the keyword shape,\n"
2255  "while the normalization factor and the cutoff frequency by\n"
2256  "normalizationfactor and cutoff respectively.\n"
2257  "\n"
2258  " The available values for these keywords are given below.\n"
2259  "shape - \"no_shape\" : no specified shape\n"
2260  " \"Doppler\" : Doppler lineshape\n"
2261  " \"Lorentz\" : Lorentz lineshape\n"
2262  " \"Voigt_Kuntz3\" : Kuntz approximation to the Voigt profile,\n"
2263  " accuracy > 2x10^(-3)\n"
2264  " \"Voigt_Kuntz4\" : Kuntz approximation to the Voigt profile,\n"
2265  " accuracy > 2x10^(-4)\n"
2266  " \"Voigt_Kuntz6\" : Kuntz approximation to the Voigt profile,\n"
2267  " accuracy > 2x10^(-6)\n"
2268  " \"Voigt_Drayson\" : Drayson approximation to the Voigt profile \n"
2269  " \"Rosenkranz_Voigt_Drayson\" : Rosenkrantz oxygen absortion with overlap correction\n"
2270  " on the basis of Drayson routine\n"
2271  " \"Rosenkranz_Voigt_Kuntz6\" : Rosenkrantz oxygen absortion with overlap correction\n"
2272  " on the basis of Kuntz routine, accuracy > 2x10^(-6)\n"
2273  " \"CO2_Lorentz\" : Lorentz multiplicated with Cousin's chi factors\n"
2274  " \"CO2_Drayson\" : Drayson multiplicated with Cousin's chi factors\n"
2275  "\n"
2276  "normalizationfactor - \"no_norm\": 1\n"
2277  " \"linear\": f/f0\n"
2278  " \"quadratic\": (f/f0)^2.\n"
2279  " \"VVH\": (f*tanh(h*f/(2*k*T))) / (f0*tanh(h*f0/(2*k*T))).\n"
2280  "\n"
2281  "cutoff - \" -1\" : no cutoff\n"
2282  " \"Number\": positive cutoff frequency in Hz.\n"
2283  "\n"
2284  "Example usage:\n"
2285  "shape=[\"Lorentz\"]\n"
2286  "normalizationfactor=[\"linear\"]\n"
2287  "cutoff= [650e9]"
2288  "\n"
2289  "Keywords:\n"
2290  " shape : The general profile according to an approximation.\n"
2291  " normalizationfactor : The multiplicative forefactor for the general profile.\n"
2292  " cutoff : The frequency at which a cutoff can be made.\n"),
2293  OUTPUT( lineshape_ ),
2294  INPUT( tgs_ ),
2295  GOUTPUT(),
2296  GINPUT(),
2297  KEYWORDS( "shape", "normalizationfactor", "cutoff" ),
2299 
2300  md_data.push_back
2301  ( MdRecord
2302  ( NAME("lineshape_per_tgDefine"),
2303  DESCRIPTION(
2304  "Sets the lineshape per tag group for all calculated lines.\n\n"
2305  "\n"
2306  " A general lineshape profile is specified, according to a given \n"
2307  "approximation for each tag group. Alongside a normalization factor\n"
2308  "is to be set also for each tag group - a multiplicative forefactor through\n"
2309  "which the profile can be modified. This factor is just the 0th or 1st,\n"
2310  "or 2nd power of the ratio between the frequency of calculation f and\n"
2311  "the center frequency for a specific line f0. A cutoff frequency must also be\n"
2312  "specified for each of the tags in order to restrict the calculation within\n"
2313  "a desired region or not, when there's no such region.\n"
2314  " The general lineshape profile is given by the keyword shape,\n"
2315  "while the normalization factor and the cutoff frequency by\n"
2316  "normalizationfactor and cutoff respectively.\n"
2317  "\n"
2318  " The available values for these keywords are given below.\n"
2319  "shape - \"no_shape\" : no specified shape\n"
2320  " \"Doppler\" : Doppler lineshape\n"
2321  " \"Lorentz\" : Lorentz lineshape\n"
2322  " \"Voigt_Kuntz3\" : Kuntz approximation to the Voigt profile,\n"
2323  " accuracy > 2x10^(-3)\n"
2324  " \"Voigt_Kuntz4\" : Kuntz approximation to the Voigt profile,\n"
2325  " accuracy > 2x10^(-4)\n"
2326  " \"Voigt_Kuntz6\" : Kuntz approximation to the Voigt profile,\n"
2327  " accuracy > 2x10^(-6)\n"
2328  " \"Voigt_Drayson\" : Drayson approximation to the Voigt profile \n"
2329  " \"Rosenkranz_Voigt_Drayson\" : Rosenkrantz oxygen absortion with overlap correction\n"
2330  " on the basis of Drayson routine\n"
2331  " \"Rosenkranz_Voigt_Kuntz6\" : Rosenkrantz oxygen absortion with overlap correction\n"
2332  " on the basis of Kuntz routine, accuracy > 2x10^(-6)\n"
2333  "normalizationfactor - \"no_norm\": 1\n"
2334  " \"linear\": f/f0\n"
2335  " \"quadratic\": (f/f0)^2.\n"
2336  "cutoff - \" -1\" : no cutoff\n"
2337  " \"Number\": positive cutoff frequency in Hz.\n"
2338  "\n"
2339  "Example usage:\n"
2340  "shape = [\"Lorentz\",\"Voigt_Kuntz6\"] \n"
2341  "normalizationfactor= [\"linear\", \"quadratic\"] \n"
2342  "cutoff = [ 650e9, -1 ]"
2343  "\n"
2344  "Keywords:\n"
2345  " shape : The general profile according to an approximation.\n"
2346  " normalizationfactor : The multiplicative forefactor for the general profile.\n"
2347  " cutoff : The frequency at which a cutoff can be made.\n"),
2348  OUTPUT( lineshape_ ),
2349  INPUT( tgs_ ),
2350  GOUTPUT(),
2351  GINPUT(),
2352  KEYWORDS( "shape", "normalizationfactor", "cutoff" ),
2354 
2355 
2356 //=== Continuum methods ============================================
2357 
2358  md_data.push_back
2359  ( MdRecord
2360  ( NAME("cont_descriptionInit"),
2361  DESCRIPTION
2362  (
2363  "Initializes the two workspace variables for the continuum description,\n"
2364  "*cont_description_names* and *cont_description_parameters*.\n"
2365  " \n"
2366  "This method does not really do anything, except setting the two\n"
2367  "variables to empty Arrays. It is just necessary because the method\n"
2368  "*cont_descriptionAppend* wants to append to the variables.\n"
2369  " Formally, the continuum description workspace variables are required\n"
2370  "by the absorption calculation methods (e.g., *absCalc*). Therefore you\n"
2371  "always have to call at least *cont_descriptionInit*, even if you do\n"
2372  "not want to use any continua."
2373  ),
2377  INPUT(),
2378  GOUTPUT(),
2379  GINPUT(),
2380  KEYWORDS(),
2381  TYPES()));
2382 
2383  md_data.push_back
2384  ( MdRecord
2385  ( NAME("cont_descriptionAppend"),
2386  DESCRIPTION
2387  (
2388  "Appends the description of a continuum model or a complete absorption\n"
2389  "model to *cont_description_names* and *cont_description_parameters*.\n"
2390  "\n"
2391  "See online documentation for *cont_description_names* for a list of\n"
2392  "allowed models and for information what parameters they require. See\n"
2393  "file cont.arts in the doc/examples directory for usage examples and\n"
2394  "default parameters for the various models. \n"
2395  "\n"
2396  "Keywords:\n"
2397  " name : The name of a continuum model. Must match one of the models\n"
2398  " implemented in ARTS. \n"
2399  " option : give here the option of this continuum/full model.\n"
2400  " parameters : A Vector containing the required number of parameters\n"
2401  " for the model given. The meaning of the parameters and\n"
2402  " how many parameters are required depends on the model.\n"
2403  ),
2410  GOUTPUT(),
2411  GINPUT(),
2412  KEYWORDS( "tagname", "model", "userparameters" ),
2414 
2415 
2416 //=== Input Atmosphere methods ===========================================
2417 
2418  md_data.push_back
2419  ( MdRecord
2420  ( NAME("raw_vmrsReadFromFiles"),
2421  DESCRIPTION(
2422  "Reads the individual VMR profile for each TAGS from file.\n"
2423  "\n"
2424  "Using this function one can read VMRs of specific TAGS from\n"
2425  "explicitly specified files and the remaing from a scenario.\n"
2426  "The filenames and the base name of atmospheric scenario\n"
2427  "should be specified as keywords. One file name must\n"
2428  "be specified for each tag group(each element of *tgs*).\n"
2429  "The name may include a path.\n"
2430  "\n"
2431  "Keywords:\n"
2432  " seltags : Must be a sub group of tags which should be read from files.\n"
2433  " filenames : Names of the files containing VMR profiles of seltags.\n"
2434  " basename : The name of a particular atmospheric scenario.\n"
2435  " See *raw_vmrsReadFromScenario* for details. Remaining\n"
2436  " VMRs will be read from the scenario.\n"
2437  "\n"
2438  ),
2439  OUTPUT( raw_vmrs_ ),
2440  INPUT( tgs_ ),
2441  GOUTPUT( ),
2442  GINPUT( ),
2443  KEYWORDS( "seltags", "filenames", "basename"),
2445 
2446  md_data.push_back
2447  ( MdRecord
2448  ( NAME("raw_vmrsReadFromScenario"),
2449  DESCRIPTION(
2450  "Reads the individual VMR profile for each tag group from a standard\n"
2451  "atmospheric scenario.\n"
2452  "\n"
2453  "Five different atmospheric scenarios are available in arts data:\n"
2454  "tropical, midlatitude-summer, midlatitude-winter, subartic-summer\n"
2455  "and subartic-winter.\n"
2456  "\n"
2457  " Files in the scenarios look like this: tropical.H2O.aa\n"
2458  "\n"
2459  " The basename must include the path, i.e., the files can be anywhere,\n"
2460  "but they must be all in the same directory.\n"
2461  " The profile is chosen by the species name. If you have more than one\n"
2462  "tag group for the same species, the same profile will be used.\n"
2463  "\n"
2464  "Keywords:\n"
2465  " basename :The name and path of a particular atmospheric scenario.\n"
2466  " For example:\n"
2467  " /pool/lookup2/arts-data/atmosphere/fascod/tropical\n"
2468  "\n"
2469  ),
2470  OUTPUT( raw_vmrs_ ),
2471  INPUT( tgs_ ),
2472  GOUTPUT( ),
2473  GINPUT( ),
2474  KEYWORDS( "basename" ),
2475  TYPES( String_t )));
2476 
2477  md_data.push_back
2478  ( MdRecord
2479  ( NAME("AtmFromRaw"),
2480  DESCRIPTION(
2481  "Interpolates temperature, altitude, and VMRs to the pressure grid\n"
2482  "given by p_abs.\n"
2483  "\n"
2484  "The altitude is not used by the absorption routines,\n"
2485  "but later on by the RT routines.\n"
2486  "\n"
2487  "Interpolations used: \n"
2488  "\n"
2489  "Temperature : Linear interpolation in ln(p)\n"
2490  "Altitude : Linear interpolation in ln(p)\n"
2491  "VMRs : Linear interpolation in ln(p)\n"
2492  "Cloud Parameters : Linear interpolation in ln(p)\n"
2493  "\n"
2494  ),
2495  OUTPUT( t_abs_ , z_abs_ , vmrs_ ),
2497  GOUTPUT( ),
2498  GINPUT( ),
2499  KEYWORDS( ),
2500  TYPES( )));
2501 
2502  md_data.push_back
2503  ( MdRecord
2504  ( NAME("WaterVaporSaturationInClouds"),
2505  DESCRIPTION(
2506  "Calculates the water vapor saturation volume mixing ratio (VMR) in the\n"
2507  "vertical range where liquid or ice clouds are in the atmosphere.\n"
2508  "At the pressure/altitude grid points where the liquid water content (LWC)\n"
2509  "or ice water content (IWC) of the clouds (tags 'liquidcloud' and 'icecloud')\n"
2510  "is larger than zero the H2O-VMR is set to liquid water/ice saturation VMR.\n"
2511  "The saturation pressure is calculated according to Goff-Gratch equations.\n"
2512  ),
2513  OUTPUT( vmrs_ , p_abs_ ),
2514  INPUT( vmrs_ , p_abs_ , t_abs_ , tgs_ ),
2515  GOUTPUT( ),
2516  GINPUT( ),
2517  KEYWORDS( ),
2518  TYPES( )));
2519 
2520  md_data.push_back
2521  ( MdRecord
2522  ( NAME("vmrsScale"),
2523  DESCRIPTION(
2524  "Scales the vmr input of the tgs given in scaltgs by the\n"
2525  "factors given in scalfac.\n"
2526  "\n"
2527  "Keywords:\n"
2528  " scaltgs : subgroup of tags which has to be scaled.\n"
2529  " scalfac : the factor with which vmr to be scaled.\n"
2530  "\n"
2531  ),
2532  OUTPUT( vmrs_ ),
2533  INPUT( tgs_, vmrs_ ),
2534  GOUTPUT(),
2535  GINPUT(),
2536  KEYWORDS( "scaltgs", "scalfac"),
2538 
2539  md_data.push_back
2540  ( MdRecord
2541  ( NAME("h2o_absSet"),
2542  DESCRIPTION(
2543  "Sets h2o_abs to the profile of the first tag group containing\n"
2544  "water.\n"
2545  "\n"
2546  "This is necessary, because for example *absCalc* requires h2o_abs\n"
2547  "to contain the water vapour profile(the reason for this is the\n"
2548  "calculation of oxygen line brodening requires water vapour profile).\n"
2549  "Then this function can be used to copy the profile of the first tag\n"
2550  "group of water.\n"
2551  "\n"
2552  ),
2553  OUTPUT( h2o_abs_ ),
2554  INPUT( tgs_, vmrs_ ),
2555  GOUTPUT(),
2556  GINPUT(),
2557  KEYWORDS(),
2558  TYPES()));
2559 
2560  md_data.push_back
2561  ( MdRecord
2562  ( NAME("n2_absSet"),
2563  DESCRIPTION(
2564  "Sets n2_abs to the profile of the first tag group containing\n"
2565  "molecular nitrogen. See *h2o_absSet* for more details.\n"
2566  "\n"
2567  ),
2568  OUTPUT( n2_abs_ ),
2569  INPUT( tgs_, vmrs_ ),
2570  GOUTPUT(),
2571  GINPUT(),
2572  KEYWORDS(),
2573  TYPES()));
2574 
2575  md_data.push_back
2576  ( MdRecord
2577  ( NAME("hseSet"),
2578  DESCRIPTION(
2579  "Sets the vector of parameters for calculation of hydrostatic \n"
2580  "equilibrium (*hse*). The on/off flag is set to 1. \n"
2581  "\n"
2582  "Type \"arts -d hse\" for more information. \n"
2583  "\n"
2584  "Keywords \n"
2585  " pref : Pressure of the reference point. \n"
2586  " zref : The geometrical altitude at pref. \n"
2587  " g0 : Gravitational acceleration at the geoid surface.\n"
2588  " niter : Number of iterations (1-2 should suffice normally)."),
2589  OUTPUT( hse_ ),
2590  INPUT(),
2591  GOUTPUT(),
2592  GINPUT(),
2593  KEYWORDS( "pref", "zref", "g0", "niter" ),
2595 
2596  md_data.push_back
2597  ( MdRecord
2598  ( NAME("hseSetFromLatitude"),
2599  DESCRIPTION(
2600  "Sets the vector of parameters for calculation of hydrostatic \n"
2601  "equilibrium (*hse*). The on/off flag is set to 1. The gravitational\n"
2602  "acceleration is calculated following the international gravity formula.\n"
2603  "\n"
2604  "Type \"arts -d hse\" for more information. \n"
2605  "\n"
2606  "Keywords \n"
2607  " pref : Pressure of the reference point. \n"
2608  " zref : The geometrical altitude at pref. \n"
2609  " latitude : Geocentric latitude of observation point (-90 to 90 Degree).\n"
2610  " niter : Number of iterations (1-2 should suffice normally)."),
2611  OUTPUT( hse_ ),
2612  INPUT(),
2613  GOUTPUT(),
2614  GINPUT(),
2615  KEYWORDS( "pref", "zref", "latitude", "niter" ),
2617 
2618  md_data.push_back
2619  ( MdRecord
2620  ( NAME("hseSetFromLatitudeIndex"),
2621  DESCRIPTION(
2622  "As hseSetFromLatitude, but sets pref, zref to the values given by index \n"
2623  "from vectors p_abs, z_abs (e.g. 0 = ground).\n"
2624  "\n"
2625  "Type \"arts -d hse\" for more information. \n"
2626  "\n"
2627  "Keywords \n"
2628  " latitude : Geocentric latitude of observation point (-90 to 90 Degree).\n"
2629  " index : Reference index within p_abs, z_abs for setting pref, zref.\n"
2630  " niter : Number of iterations (1-2 should suffice normally)."),
2631  OUTPUT( hse_ ),
2632  INPUT(p_abs_, z_abs_ ),
2633  GOUTPUT(),
2634  GINPUT(),
2635  KEYWORDS( "latitude", "index", "niter" ),
2636  TYPES( Numeric_t, Index_t, Index_t )));
2637 
2638  md_data.push_back
2639  ( MdRecord
2640  ( NAME("hseFromBottom"),
2641  DESCRIPTION(
2642  "As hseSet but uses the first values of p_abs and z_abs for pref\n"
2643  "and zref, respectively.\n"
2644  "\n"
2645  "Keywords \n"
2646  " g0 : Gravitational acceleration at the geoid surface.\n"
2647  " niter : Number of iterations (1-2 should suffice normally)."),
2648  OUTPUT( hse_ ),
2649  INPUT( p_abs_, z_abs_ ),
2650  GOUTPUT(),
2651  GINPUT(),
2652  KEYWORDS( "g0", "niter" ),
2653  TYPES( Numeric_t, Index_t )));
2654 
2655  md_data.push_back
2656  ( MdRecord
2657  ( NAME("hseOff"),
2658  DESCRIPTION(
2659  "Turns off hydrostatic equilibrium. \n"
2660  "\n"
2661  "The on/off flag off *hse* is set to 0 and *hse* is set to be a \n"
2662  "vector of length 1."),
2663  OUTPUT( hse_ ),
2664  INPUT(),
2665  GOUTPUT(),
2666  GINPUT(),
2667  KEYWORDS(),
2668  TYPES()));
2669 
2670  md_data.push_back
2671  ( MdRecord
2672  ( NAME("hseCalc"),
2673  DESCRIPTION(
2674  "Ensures that 'z_abs' fulfills hydrostatic equilibrium. \n"
2675  "\n"
2676  "Nothing is done if the on/off flag of *hse* is set to 0. The \n"
2677  "reference point, g at the ground and number of iterations \n"
2678  "are taken from *hse*. \n"
2679  " The given altitudes (*z_abs*) are used as a first guess when \n"
2680  "starting the calculations (to estimate g etc.). The altitude \n"
2681  "variation of the gravitational acceleration is considered. The \n"
2682  "average molecular weight is assumed to be 28.96 at all altitudes.\n"
2683  "The amount of water vapour is taken into account. \n"
2684  " The calculations are repeated according to the number of \n"
2685  "iterations specified. A higher number of iterations \n"
2686  "improves the accuracy, but one iteration should be normally \n"
2687  "enough if *z_abs* already has reasonable values. Two iterations \n"
2688  "should suffice for basically all applications."),
2689  OUTPUT( z_abs_ ),
2691  GOUTPUT(),
2692  GINPUT(),
2693  KEYWORDS(),
2694  TYPES()));
2695 
2696 
2697 
2698 //=== Absorption methods ===============================================
2699 
2700  md_data.push_back
2701  ( MdRecord
2702  ( NAME( "absCalc" ),
2703  DESCRIPTION(
2704  "Calculate absorption coefficients. \n"
2705  "\n"
2706  "This function calculates both, the total absorption (*abs*)\n"
2707  "and the absorption per tag group (*abs_per_tg*).\n"
2708  ) ,
2709  OUTPUT(abs_ , abs_per_tg_ ),
2714  GOUTPUT(),
2715  GINPUT(),
2716  KEYWORDS(),
2717  TYPES()));
2718 
2719  md_data.push_back
2720  ( MdRecord
2721  ( NAME( "absCalcSaveMemory" ),
2722  DESCRIPTION(
2723  "Calculate absorption coefficients, trying to conserve memory. \n"
2724  "\n"
2725  "This function calculates only the total absorption (*abs*),\n"
2726  "NOT the absorption per tag group (*abs_per_tg*).\n"
2727  "\n"
2728  "This means you cannot use it if you want to calculate Jacobians\n"
2729  "later.\n"
2730  "\n"
2731  "The implementation follows absCalc."
2732  ) ,
2733  OUTPUT(abs_ ),
2738  GOUTPUT(),
2739  GINPUT(),
2740  KEYWORDS(),
2741  TYPES()));
2742 
2743  md_data.push_back
2744  ( MdRecord
2745  ( NAME("absCalcFromXsec"),
2746  DESCRIPTION(
2747  "Calculate absorption coefficients from cross sections.\n"
2748  "\n"
2749  "This calculates both the total absorption and the\n"
2750  "absorption per tag group. \n"
2751  "This method calls three other methods:\n"
2752  "1. *xsec_per_tgInit* - initialize *xsec_per_tg* \n"
2753  "2. *xsec_per_tgAddLine* - calculate cross sections per \n"
2754  " tag group for line spectra.\n"
2755  "3. *xsec_per_tgAddConts* - calculate cross sections per \n"
2756  " tag group for continua.\n"
2757  "Then it calculates the absorption coefficient by multiplying\n"
2758  "the cross section by VMR.\n"
2759  "This is done once for each tag group (output: *abs_per_tg*)\n"
2760  "and for the sum of all tag group to get the total absorption\n"
2761  "coefficient (output: *abs*)\n"
2762  ),
2763  OUTPUT( abs_ , abs_per_tg_ ),
2764  INPUT( xsec_per_tg_, vmrs_ ),
2765  GOUTPUT(),
2766  GINPUT(),
2767  KEYWORDS(),
2768  TYPES()));
2769 
2770  md_data.push_back
2771  ( MdRecord
2772  ( NAME( "xsec_per_tgInit" ),
2773  DESCRIPTION(
2774  "Initialize *xsec_per_tg*.\n"
2775  "\n"
2776  "The initialization is\n"
2777  "necessary, because methods *xsec_per_tgAddLines*\n"
2778  "and *xsec_per_tgAddConts* just add to *xsec_per_tg*.\n"
2779  "The size is determined from *tgs*.\n"
2780  ),
2781  OUTPUT( xsec_per_tg_ ),
2782  INPUT(tgs_, f_mono_, p_abs_),
2783  GOUTPUT(),
2784  GINPUT(),
2785  KEYWORDS(),
2786  TYPES()));
2787 
2788  md_data.push_back
2789  ( MdRecord
2790  ( NAME("xsec_per_tgAddLines"),
2791  DESCRIPTION(
2792  "Calculate cross sections per tag group for line spectra.\n"
2793  ),
2794  OUTPUT( xsec_per_tg_ ),
2797  GOUTPUT(),
2798  GINPUT(),
2799  KEYWORDS(),
2800  TYPES()));
2801 
2802  md_data.push_back
2803  ( MdRecord
2804  ( NAME("xsec_per_tgAddConts"),
2805  DESCRIPTION(
2806  "Calculate cross sections per tag group for continua.\n"
2807  ),
2808  OUTPUT( xsec_per_tg_ ),
2812  GOUTPUT(),
2813  GINPUT(),
2814  KEYWORDS(),
2815  TYPES()));
2816 
2817 
2818 //=== Methods operating on absorption ========================================
2819 
2820  md_data.push_back
2821  ( MdRecord
2822  ( NAME("abs_per_tgReduce"),
2823  DESCRIPTION(
2824  "Reduces absorption coefficients. Only absorption\n"
2825  "coefficients for which weighting functions are\n"
2826  "calculated are kept in memory.\n"
2827  ),
2828  OUTPUT( abs_per_tg_ ),
2830  GOUTPUT(),
2831  GINPUT(),
2832  KEYWORDS(),
2833  TYPES()));
2834 
2835 
2836 //=== Refraction ==========================================================
2837 
2838  md_data.push_back
2839  ( MdRecord
2840  ( NAME("refrSet"),
2841  DESCRIPTION(
2842  "Sets the refraction input arguments (refr, refr_model and \n"
2843  "refr_lfac) to the specified values. \n"
2844  "\n"
2845  "Type \"arts -d refr\" etc. for more information on the input \n"
2846  "arguments. See *refrCalc* for avaliable refraction models.\n"
2847  "\n"
2848  "Keywords:\n"
2849  " on : On/off boolean.\n"
2850  " model : Name on parametization for the refractive index.\n"
2851  " lfac : Length factor for ray tracing." ),
2853  INPUT(),
2854  GOUTPUT(),
2855  GINPUT(),
2856  KEYWORDS( "on", "model", "lfac" ),
2857  TYPES( Index_t, String_t, Index_t )));
2858 
2859  md_data.push_back
2860  ( MdRecord
2861  ( NAME("refrOff"),
2862  DESCRIPTION(
2863  "Sets the refraction boolean (*refr*) to zero and gives the other \n"
2864  "refraction input arguments (*refr_lfac* and *refr_model*) dummy \n"
2865  "values (that will give error messages if used)."),
2867  INPUT(),
2868  GOUTPUT(),
2869  GINPUT(),
2870  KEYWORDS(),
2871  TYPES()));
2872 
2873  md_data.push_back
2874  ( MdRecord
2875  ( NAME("refrCalc"),
2876  DESCRIPTION(
2877  "Calculates the refractive index using the parameterization\n"
2878  "specified by *refr_model*. \n"
2879  "\n"
2880  "If *refr* is set to zero, the refractive index is set to be an \n"
2881  "empty vector. \n"
2882  "\n"
2883  "Existing parameterizations are: \n"
2884  "\n"
2885  " 'Unity': \n"
2886  " Sets the refractive index to 1 at all altitudes. \n"
2887  "\n"
2888  " 'Boudouris': \n"
2889  " Refractive index at microwave frequencies following \n"
2890  " Boudouris 1963. The k-parameter values were taken from \n"
2891  " Section 5.1.1 of the Janssen book. The Z parameters are \n"
2892  " set to 1. \n"
2893  "\n"
2894  " 'BoudourisDryAir': \n"
2895  " As Boudouris but setting the water content to zero. "),
2896  OUTPUT( refr_index_ ),
2898  GOUTPUT(),
2899  GINPUT(),
2900  KEYWORDS(),
2901  TYPES()));
2902 
2903 
2904 
2905 //======================================================================
2906 //=== LOS/RTE methods
2907 //======================================================================
2908 
2909  md_data.push_back
2910  ( MdRecord
2911  ( NAME("zaFromZtan"),
2912  DESCRIPTION(
2913  "Calculates the zenith angles corresponding to a set of tangent\n"
2914  "altitudes.\n"
2915  "\n"
2916  "Refraction is considered if it is turned on (refr=1)."),
2917  OUTPUT(),
2919  z_ground_ ),
2920  GOUTPUT( Vector_ ),
2921  GINPUT(),
2922  KEYWORDS(),
2923  TYPES()));
2924 
2925  md_data.push_back
2926  ( MdRecord
2927  ( NAME( "zaFromDeltat" ),
2928  DESCRIPTION(
2929  "Calculates the zenith angles for a LEO-LEO cross-link.\n"
2930  "\n"
2931  "The function calculates the zenith angles corresponding to a \n"
2932  "LEO-LEO cross-link for an occultation between two altitudes and \n"
2933  "the given time increment. The LEOs are supposed to be moving \n"
2934  "in opposite directions in identical orbits (but not colliding!).\n"
2935  " The time window where the LEOs are interacting is defined by \n"
2936  "a start and stop tangent altitudes.\n"
2937  " The function uses REFR to determine if refraction shall be \n"
2938  "considered or not. \n"
2939  "\n"
2940  "Generic output: \n"
2941  " Vector : Return vector for the zenith angles. The normal \n"
2942  " options are ZA_PENCIL and ZA_SENSOR. \n"
2943  "\n"
2944  "Keywords:\n"
2945  " delta_t : Time increment between observations.\n"
2946  " z_tan_lim : Vector with start and stop tangent altitudes." ),
2947  OUTPUT(),
2950  GOUTPUT( Vector_ ),
2951  GINPUT(),
2952  KEYWORDS( "delta_t", "z_tan_lim" ),
2953  TYPES( Numeric_t, Vector_t )));
2954 
2955  md_data.push_back
2956  ( MdRecord
2957  ( NAME("r_geoidStd"),
2958  DESCRIPTION(
2959  "Sets the geoid radius to the standard Earth radius defined in \n"
2960  "constants.cc."),
2961  OUTPUT( r_geoid_ ),
2962  INPUT(),
2963  GOUTPUT(),
2964  GINPUT(),
2965  KEYWORDS(),
2966  TYPES()));
2967 
2968  md_data.push_back
2969  ( MdRecord
2970  ( NAME("r_geoidWGS84"),
2971  DESCRIPTION(
2972  "Sets the geoid radius according to WGS-84. \n"
2973  "\n"
2974  "The function is based on Section 9.4.1 in the Rodgers book. \n"
2975  "The observation direction is given as the angle to the meridian \n" "plane (that is, S=N=0, W=E=90).\n"
2976  "\n"
2977  "Keywords \n"
2978  " latitude : Latitude at the measurement.\n"
2979  " obsdirection : Observation direction (see above)."),
2980  OUTPUT( r_geoid_ ),
2981  INPUT(),
2982  GOUTPUT(),
2983  GINPUT(),
2984  KEYWORDS( "latitude", "obsdirection" ),
2985  TYPES( Numeric_t, Numeric_t )));
2986 
2987  md_data.push_back
2988  ( MdRecord
2989  ( NAME("groundOff"),
2990  DESCRIPTION(
2991  "Sets dummy values to the ground variables. \n"
2992  "\n"
2993  "The ground altitude is set to the first element of 'z_abs'.\n"
2994  "The ground temperature (t_ground) is set to 0. \n"
2995  "The ground emission vector (e_ground) is set to be empty.\n"
2996  " If there is a ground intersection and only this function is\n"
2997  "used to set the ground variables, there will be error messages."),
2999  INPUT( z_abs_ ),
3000  GOUTPUT(),
3001  GINPUT(),
3002  KEYWORDS(),
3003  TYPES()));
3004 
3005  md_data.push_back
3006  ( MdRecord
3007  ( NAME("groundSet"),
3008  DESCRIPTION(
3009  "Sets the ground altitude and emission to the specified values,\n"
3010  "and selects a ground temperature.\n"
3011  "\n"
3012  "The emission is set to be identical for all frequencies. \n"
3013  "The ground temperature is obtained by interpolating *t_abs*.\n"
3014  "\n"
3015  "Keywords \n"
3016  " z : Altitude above the geoid of the ground.\n"
3017  " e : Ground emission factor."),
3020  GOUTPUT(),
3021  GINPUT(),
3022  KEYWORDS( "z", "e" ),
3023  TYPES( Numeric_t, Numeric_t )));
3024 
3025  md_data.push_back
3026  ( MdRecord
3027  ( NAME("groundAtBottom"),
3028  DESCRIPTION(
3029  "Sets the ground emission to the specified value, and sets ground \n"
3030  "altitude and temperature to the first values of z_abs and t_abs.\n"
3031  "\n"
3032  "The emission is set to be identical for all frequencies. \n"
3033  "\n"
3034  "Keywords \n"
3035  " e : Ground emission factor."),
3037  INPUT( t_abs_, z_abs_, f_mono_ ),
3038  GOUTPUT(),
3039  GINPUT(),
3040  KEYWORDS( "e" ),
3041  TYPES( Numeric_t )));
3042 
3043  md_data.push_back
3044  ( MdRecord
3045  ( NAME("groundFlatSea"),
3046  DESCRIPTION(
3047  "Models the emission from a flat sea. \n"
3048  "\n"
3049  "The method sets the ground variables to match the properties of \n"
3050  "the sea, without wind effects. The emissivity is calculated from\n"
3051  "the dielectric constant by the Fresnel equations.\n"
3052  "\n"
3053  "The altitude is set to 0 m. The skin temperature is set by the\n"
3054  "keyword argument *t_skin*. If this argument is set to be <= 0,\n"
3055  "the temperature is obtained by interpolating *t_abs*. \n"
3056  "\n"
3057  "The incident angle (of reflection) is calculated for max of \n"
3058  "*za_pencil*. Refraction is considered or not, depending on value \n"
3059  "of *refr*. This means that *refrCalc* must be called before this \n"
3060  "method if refraction is considered. The emissivity depends on the\n"
3061  "selected polarisation. The refractive index of air is set to 1.\n"
3062  "\n"
3063  "The relative dielectric constant is calculated following\n"
3064  "Liebe et al. 1991 Int. J. IR+mm Waves 12(12), 659-675. \n"
3065  "The method does not consider salinity and is restricted to the\n"
3066  "range 5 - 1000 GHz (below 5 GHz salinity must be considered).\n"
3067  "\n"
3068  "Keywords \n"
3069  " pol : Polarisation. Calid options are \"v\" or \"h\".\n"
3070  " t_skin : Skin temperature. "),
3073  refr_, refr_index_ ),
3074  GOUTPUT(),
3075  GINPUT(),
3076  KEYWORDS( "pol", "t_skin" ),
3077  TYPES( String_t, Numeric_t )));
3078 
3079  md_data.push_back
3080  ( MdRecord
3081  ( NAME("emissionOn"),
3082  DESCRIPTION(
3083  "Turns on emission by setting the emission flag to 1. \n"),
3084  OUTPUT( emission_ ),
3085  INPUT(),
3086  GOUTPUT(),
3087  GINPUT(),
3088  KEYWORDS(),
3089  TYPES()));
3090 
3091  md_data.push_back
3092  ( MdRecord
3093  ( NAME("emissionOff"),
3094  DESCRIPTION(
3095  "Turns off emission by setting the emission flag to 0."),
3096  OUTPUT( emission_ ),
3097  INPUT(),
3098  GOUTPUT(),
3099  GINPUT(),
3100  KEYWORDS(),
3101  TYPES()));
3102 
3103  md_data.push_back
3104  ( MdRecord
3105  ( NAME("losCalc"),
3106  DESCRIPTION(
3107  "Calculates the line-of-sight (LOS).\n"
3108  "\n"
3109  "See AUG for details about the calculations."),
3110  OUTPUT( los_, z_tan_ ),
3113  GOUTPUT(),
3114  GINPUT(),
3115  KEYWORDS(),
3116  TYPES()));
3117 
3118  md_data.push_back
3119  ( MdRecord
3120  ( NAME("sourceCalc"),
3121  DESCRIPTION(
3122  "Calculates source function values valid between the points "
3123  "of the LOS.\n"
3124  "\n"
3125  "No scattering and local thermodynamic equilibrium are assumed,\n"
3126  "that is, the source function equals the Planck function.\n"
3127  "The source function is set to the mean of the Planck function at\n"
3128  "the two LOS points limiting the steps. The temperature at the LOS\n"
3129  "points is obtained by linear interpolation.\n"
3130  " If emission is neglected (emission=0), the WSV source is set \n"
3131  "to be empty."),
3132  OUTPUT( source_ ),
3134  GOUTPUT(),
3135  GINPUT(),
3136  KEYWORDS(),
3137  TYPES()));
3138 
3139  md_data.push_back
3140  ( MdRecord
3141  ( NAME("transCalc"),
3142  DESCRIPTION(
3143  "Calculates the transmission between the points of the LOS.\n"
3144  "\n"
3145  "The absorption is assumed to vary linear between the LOS points."
3146  "The absorption at the LOS points is obtained by linear\n"
3147  "interpolation of *abs*."),
3148  OUTPUT( trans_ ),
3149  INPUT( los_, p_abs_, abs_ ),
3150  GOUTPUT(),
3151  GINPUT(),
3152  KEYWORDS(),
3153  TYPES()));
3154 
3155  md_data.push_back
3156  ( MdRecord
3157  ( NAME("y_spaceStd"),
3158  DESCRIPTION(
3159  "Standard choices for the radiation entering the atmosphere at\n"
3160  "the top of the atmosphere. \n"
3161  "\n"
3162  "The selections are:\n"
3163  " zero : no radiation\n"
3164  " cbgr : cosmic background radiation (planck for COSMIC_BG_TEMP)\n"
3165  " sun : solar radiation (planck for SUN_TEMP)\n"
3166  "\n"
3167  "COSMIC_BG_TEMP and SUN_TEMP are global variables, defined in\n"
3168  "constants.cc.\n"
3169  "\n"
3170  "Keywords \n"
3171  " choice : Selection String (see above)."),
3172  OUTPUT( y_space_ ),
3173  INPUT( f_mono_ ),
3174  GOUTPUT(),
3175  GINPUT(),
3176  KEYWORDS( "nr" ),
3177  TYPES( String_t )));
3178 
3179  md_data.push_back
3180  ( MdRecord
3181  ( NAME("yCalc"),
3182  DESCRIPTION(
3183  "Performs the integration of the radiative transfer equation\n"
3184  "along the LOS, with or without emission.\n"
3185  "\n"
3186  "If emission is considered (emission=1) the outout unit is \n"
3187  "intensity, while without emission (emission=0) optical \n"
3188  "thicknesses are returned. "),
3189  OUTPUT( y_ ),
3191  e_ground_, t_ground_ ),
3192  GOUTPUT(),
3193  GINPUT(),
3194  KEYWORDS(),
3195  TYPES()));
3196 
3197  md_data.push_back
3198  ( MdRecord
3199  ( NAME("sourcetransyCalcSaveMemory"),
3200  DESCRIPTION(
3201  "Combines:\nsourceCalc\ntransCalc\nyCalc\n\n"
3202  "Calculation is performed in frequency chunks thus allowing\n"
3203  "larger jobs to run. This means you cannot use it if you want \n"
3204  "to calculate Jacobians later on. "),
3205  OUTPUT( y_ ),
3207  e_ground_, t_ground_ ),
3208  GOUTPUT(),
3209  GINPUT(),
3210  KEYWORDS("f_chunksize"),
3211  TYPES(Index_t)));
3212 
3213  md_data.push_back
3214  ( MdRecord
3215  ( NAME("CoolingRates"),
3216  DESCRIPTION(
3217  "Calculates cooling rates due to exchange of longwave radiation.\n"
3218  "\n"
3219  "This function applies a straightforward algorith to obtain cooling \n"
3220  "rates. The algorithm is described in AUG. The basic idea is to \n"
3221  "calculate incoming radiation from all directions (by using yCalc), \n"
3222  "instead of follow the vertical flux through the atmosphere as usually \n"
3223  "done. No assumptions on a flat Earth is made.\n"
3224  "\n"
3225  "The atmosphere is described in usual way and absorption shall be pre- \n"
3226  "calculated. Emission is always activated (of course) and *y_space* is \n"
3227  "set to cosmic background radiation by calling *y_spaceStd*. Refraction\n"
3228  "follows corresponding WSV. \n"
3229  "\n"
3230  "The zenith angle grid is set by *Za_pencil*, where the vector must \n"
3231  "start with 0 and end with 180. \n"
3232  "\n"
3233  "The WSV *l_step* is here treated to give the radiative step length for\n"
3234  "the zenith and nadir directions. The step length is scaled by \n"
3235  "abs( 1/cos(za) ), where za is the zenith angle, for other directions. \n"
3236  "The keyword argument *lstep_limit* sets an upper limit for *l_step*. \n"
3237  "For example, for za=90, the expression above gives infinity for \n"
3238  "*l_step*.\n"
3239  "\n"
3240  "The function returns the spectral cooling rate (by *coolrate*).\n"
3241  "\n"
3242  "Keywords \n"
3243  " lstep_limit : Upper limit on l_step for off-zenith/nadir angles."),
3244  OUTPUT( coolrate_ ),
3248  GOUTPUT(),
3249  GINPUT(),
3250  KEYWORDS( "lstep_limit" ),
3251  TYPES( Numeric_t)));
3252 
3253  md_data.push_back
3254  ( MdRecord
3255  ( NAME("yTB"),
3256  DESCRIPTION(
3257  "Converts a radiance spectrum to Planck brightness temperatures.\n"
3258  "\n"
3259  "The conversion is done by the Planck expression.\n"
3260  " The frequency of each value of *y* is determined by *f_mono* \n"
3261  "and za_pencil."),
3262  OUTPUT( y_ ),
3263  INPUT( y_, f_mono_, za_pencil_ ),
3264  GOUTPUT(),
3265  GINPUT(),
3266  KEYWORDS(),
3267  TYPES()));
3268 
3269  md_data.push_back
3270  ( MdRecord
3271  ( NAME("MatrixTB"),
3272  DESCRIPTION(
3273  "Converts a radiance matrix to Planck brightness temperatures.\n"
3274  "\n"
3275  "Applies the function yTB on each column of the matrix. \n"
3276  "\n"
3277  "Generic input: \n"
3278  " Matrix : Any matrix, but typically *ybatch* or a WF matrix.\n"
3279  "\n"
3280  "Generic output: \n"
3281  " Matrix : Any matrix, but typically the same as the input \n"
3282  " matrix."),
3283  OUTPUT(),
3284  INPUT( f_mono_, za_pencil_ ),
3285  GOUTPUT( Matrix_ ),
3286  GINPUT( Matrix_ ),
3287  KEYWORDS(),
3288  TYPES()));
3289 
3290  md_data.push_back
3291  ( MdRecord
3292  ( NAME("yTRJ"),
3293  DESCRIPTION(
3294  "Converts a radiance spectrum to Rayleigh-Jean temperatures.\n"
3295  "\n"
3296  "The conversion is done by the Rayleigh-Jean approximation of the\n"
3297  "Planck expression.\n"
3298  " The frequency of each value of *y* is determined by *f_mono* \n"
3299  "and za_pencil."),
3300  OUTPUT( y_ ),
3301  INPUT( y_, f_mono_, za_pencil_ ),
3302  GOUTPUT(),
3303  GINPUT(),
3304  KEYWORDS(),
3305  TYPES()));
3306 
3307  md_data.push_back
3308  ( MdRecord
3309  ( NAME("MatrixTRJ"),
3310  DESCRIPTION(
3311  "Converts a radiance matrix to Rayleigh-Jean temperatures.\n"
3312  "\n"
3313  "Applies the function yTRJ on each column of the matrix. \n"
3314  "\n"
3315  "Generic input: \n"
3316  " Matrix : Any matrix, but typically *ybatch* or a WF matrix.\n"
3317  "\n"
3318  "Generic output: \n"
3319  " Matrix : Any matrix, but typically the same as the input \n"
3320  " matrix."),
3321  OUTPUT(),
3322  INPUT( f_mono_, za_pencil_ ),
3323  GOUTPUT( Matrix_ ),
3324  GINPUT( Matrix_ ),
3325  KEYWORDS(),
3326  TYPES()));
3327 
3328 
3329 
3330 //======================================================================
3331 //=== Weighting function (WF) methods
3332 //======================================================================
3333 
3334  md_data.push_back
3335  ( MdRecord
3336  ( NAME("wfs_tgsDefine"),
3337  DESCRIPTION(
3338  "Set up the list of tag groups for which weighting functions will \n"
3339  "be calculated. \n"
3340  "\n"
3341  "The *wfs_tgs* are specified exactly as *tgs* (see tgsDefine). \n"
3342  "The selected tag groups must be a subgroup of the absorption \n"
3343  "tags (*tgs*). \n"
3344  " See the functions abs_per_tgReduce and kSpecies for some more \n"
3345  "information around *wfs_tgs*. \n"
3346  "\n"
3347  "Keywords \n"
3348  " wfs_tgs : String with tag groups."),
3349  OUTPUT( wfs_tgs_ ),
3350  INPUT(),
3351  GOUTPUT(),
3352  GINPUT(),
3353  KEYWORDS( "wfs_tgs" ),
3354  TYPES( Array_String_t )));
3355 
3356 md_data.push_back
3357  ( MdRecord
3358  ( NAME("wfss_tgsDefine"),
3359  DESCRIPTION(
3360  "Set up the list of tag groups for which weighting functions will \n"
3361  "be calculated. \n"
3362  "\n"
3363  "The *wfs_tgs* are specified exactly as *tgs* (see tgsDefine). \n"
3364  "The selected tag groups must be a subgroup of the absorption \n"
3365  "tags (*tgs*). \n"
3366  " See the functions abs_per_tgReduce and kSpecies for some more \n"
3367  "information around *wfs_tgs*. \n"
3368  "\n"
3369  "Keywords \n"
3370  " wfss_tgs : String with tag groups."),
3371  OUTPUT( wfss_tgs_ ),
3372  INPUT(),
3373  GOUTPUT(),
3374  GINPUT(),
3375  KEYWORDS( "wfss_tgs" ),
3376  TYPES( Array_String_t )));
3377 
3378  md_data.push_back
3379  ( MdRecord
3380  ( NAME("absloswfsCalc"),
3381  DESCRIPTION(
3382  "Calculates absorption line of sight weighting functions (LOS WFs)\n"
3383  "\n"
3384  "These WFs are the derivative of the spectra with respect to the \n"
3385  "absorption at the LOS points. See AUG for more detailed \n"
3386  "definition and details about the calculations."),
3387  OUTPUT( absloswfs_ ),
3389  e_ground_, t_ground_ ),
3390  GOUTPUT(),
3391  GINPUT(),
3392  KEYWORDS(),
3393  TYPES()));
3394 
3395  md_data.push_back
3396  ( MdRecord
3397  ( NAME("kSpecies"),
3398  DESCRIPTION(
3399  "Calculates species weighting functions (WFs) for all *wfs_tgs*.\n"
3400  "\n"
3401  "This function is the simplest option if a single retrieval grid \n"
3402  "and a single retrieval unit are used for all species. If this is \n"
3403  "not the case, the function kSpeciesSingle must be used.\n"
3404  " The WFs are calculated by (semi-)analytical expressions, where\n"
3405  "it is assumed that there is a linear relationship between the \n"
3406  "amount of the species and the absorption, and that the LOS is not\n"
3407  "affected by changes of the species. These assumtions should be\n"
3408  "valid generally for observations above the tropopause (as long \n"
3409  "LTE applies), but is not true for tropospheric water vapor. \n"
3410  "See AUG for details about the calculations. \n"
3411  " The WFs for the different tag groups in *wfs_tgs* are appended\n"
3412  "to form a single matrix. The absorption array (*abs_per_tg*) must\n"
3413  "have been reduced to match *wfs_tags* (by using the function \n"
3414  "abs_per_tgReduce). The unit of the returned WFs are described \n"
3415  "below.\n"
3416  "\n"
3417  "The avaliable units are\n"
3418  " frac : fractions of linearisation profile \n"
3419  " vmr : volume mixing ratio \n"
3420  " nd : number density\n"
3421  "\n"
3422  "Keywords \n"
3423  " unit : Retrieval unit string (see above)."),
3424  OUTPUT( k_, k_names_, k_aux_ ),
3426  vmrs_, k_grid_ ),
3427  GOUTPUT(),
3428  GINPUT(),
3429  KEYWORDS( "unit" ),
3430  TYPES( String_t )));
3431 
3432  md_data.push_back
3433  ( MdRecord
3434  ( NAME("kSpeciesSingle"),
3435  DESCRIPTION(
3436  "Calculates species weighting functions (WFs) for a single tag \n"
3437  "group.\n"
3438  "\n"
3439  "The tag group is selected by the giving the full name. This \n"
3440  "string must match exactly the string in *wfs_tgs* (and then the \n"
3441  "string in *tgs*). Otherwise as the function kSpecies (this \n"
3442  "including units). \n"
3443  "\n"
3444  "Keywords \n"
3445  " tg : Tag group string.\n"
3446  " unit : Retrieval unit string (see kSpecies)."),
3447  OUTPUT( k_, k_names_, k_aux_ ),
3449  vmrs_, k_grid_ ),
3450  GOUTPUT(),
3451  GINPUT(),
3452  KEYWORDS( "tg", "unit" ),
3453  TYPES( String_t, String_t )));
3454 
3455  md_data.push_back
3456  ( MdRecord
3457  ( NAME("kContAbs"),
3458  DESCRIPTION(
3459  "Calculates weighting functions (WFs) for polynomial fit of \n"
3460  "continuum absorption. \n"
3461  "\n"
3462  "The continuum is fitted by determining an off-set at a number of \n"
3463  "points (order+1) that are evenly spread between the lowest and \n"
3464  "upper frequency limit. See AUG for more details.\n"
3465  " If the limits are set to be negative, *f_low* is set to the \n"
3466  "first value of *f_mono*, and *f_high* to the last value of \n"
3467  "*f_mono*. The frequency limits cannot be outside the range of \n"
3468  "*f_mono*. \n"
3469  " The WFs can be calculated for different length units, selected\n"
3470  "by the keyword *l_unit*. For example, if *l_unit* is set to \n"
3471  "\"km\", the WFs corresponds to an absorpion with unit [1/km]. \n"
3472  " The WFs for each frequency point are kept together, and the \n"
3473  "WF matrix for the different frequency points are appended. \n"
3474  "\n"
3475  "Keywords \n"
3476  " order : Polynomial order (>=0). \n"
3477  " f_low : Frequency of first fit point. \n"
3478  " f_high : Frequency of last fit point. \n"
3479  " l_unit : Length unit. Avaliable units are \"m\" and \"km\"." ),
3480  OUTPUT( k_, k_names_, k_aux_ ),
3482  GOUTPUT(),
3483  GINPUT(),
3484  KEYWORDS( "order", "f_low", "f_high", "l_unit" ),
3486 
3487  md_data.push_back
3488  ( MdRecord
3489  ( NAME("kTemp"),
3490  DESCRIPTION(
3491  "Calculates temperature weighting functions (WFs).\n"
3492  "\n"
3493  "The calculations can be performed both with and without \n"
3494  "hydrostatic equilibrium (HSE). \n"
3495  " If HSE is not considered (hse=0), the WFs are obtained by \n"
3496  "semi-analytical expressions and the calculations are relatively \n"
3497  "fast. See AUG for details. \n"
3498  " If HSE is considered (hse=1), perturbation calculations are \n"
3499  "done. If the keyword *fast* is set to 0, the absorption is re-\n"
3500  "calculated for each temperature disturbance and the calculations\n"
3501  "are slow. With fast=1, it is assumed that the absorption is \n"
3502  "linear with temparature between the present state and 1K higher \n"
3503  "temperature, and the new absorption is calculated once, that \n"
3504  "decreases the total calculation time considerbly. The accuracy of\n"
3505  "the latter option should suffice normally. \n"
3506  " Note that the keyword *hse* here is not the workspace variable\n"
3507  "*hse*. If the keyword *hse* is set to 1, a constraint is that \n"
3508  "HSE is considered generally, that is, that the do-field of the \n"
3509  "variable 'hse* is turned on. The data to calculate assure HSE is\n"
3510  "of course taken from the workspace variable *hse*. \n"
3511  " The fast keyword has no importance if the keyword hse is set \n"
3512  "to 0. \n"
3513  "\n"
3514  "Keywords \n"
3515  " hse : Flag for hydrostatic eq. 0=no HSE, 1=HSE. \n"
3516  " fast : Flag to perform fast calculations with hse=1. " ),
3517  OUTPUT( k_, k_names_, k_aux_ ),
3524  GOUTPUT(),
3525  GINPUT(),
3526  KEYWORDS( "hse", "fast" ),
3527  TYPES( Index_t, Index_t )));
3528 
3529  md_data.push_back
3530  ( MdRecord
3531  ( NAME("kSpectro"),
3532  DESCRIPTION(
3533  "Calculates the spectroscopic parameters weighting functions (WFs).\n"
3534  "\n"
3535  "The calculation can be performed for the intensity, line position, pressure \n"
3536  "broadening parameters and pressure shift.\n"
3537  "For each parameter a do flag has to be specified.\n"
3538  "\n"
3539  "Keywords \n"
3540  "do_intens: Flag for calculating the weighting function for"
3541  "the intensity do_intens=1. \n"
3542  "do_position: flag for line possition. \n"
3543  "do_agam: flag for agam. \n"
3544  "do_sgam: flag for sgam. \n"
3545  "do_nair: flag for temperature dependence of agam. \n"
3546  "do_nself: flag for temperature dependence of sgam. \n"
3547  "do_pSift: flag for pressure shift .\n" ),
3548 
3549  OUTPUT(k_, k_names_, k_aux_ , S_S_),
3552  GOUTPUT(),
3553  GINPUT(),
3554  KEYWORDS("do_intens", "do_position", "do_agam",
3555  "do_sgam", "do_nair", "do_nself", "do_pSift"),
3557 
3558  md_data.push_back
3559  ( MdRecord
3560  ( NAME("kFrequencyOffSet"),
3561  DESCRIPTION(
3562  "Calculates the weighting function (WF) for a frequency off-set.\n"
3563  "\n"
3564  "The Wf is simply the difference between *y* and the spectrum \n"
3565  "obtained when adding *delta* to *f_mono*, diveded by *delta*.\n"
3566  "That is, a pure perturbation calculation is performed. \n"
3567  "\n"
3568  " The WF can be calculated for different frequency units,\n"
3569  "selected by the keyword *f_unit*.\n"
3570  "\n"
3571  "Keywords \n"
3572  " delta : Size of frequency perturbation (in units of *l_unit*).\n"
3573  " l_unit : Frequency unit. Avaliable units are \"Hz\", \"kHz\"\n"
3574  " \"MHz\"." ),
3575  OUTPUT( k_, k_names_, k_aux_ ),
3580  GOUTPUT(),
3581  GINPUT(),
3582  KEYWORDS( "delta", "f_unit" ),
3583  TYPES( Numeric_t, String_t )));
3584 
3585  md_data.push_back
3586  ( MdRecord
3587  ( NAME("kPointingOffSet"),
3588  DESCRIPTION(
3589  "Calculates the WF for a pointing off-set.\n"
3590  "\n"
3591  "The Wf is simply the difference between *y* and the spectrum \n"
3592  "obtained when adding *delta* to *za_pencil*, diveded by *delta*.\n"
3593  "That is, a pure perturbation calculation is performed. \n"
3594  "\n"
3595  "Keywords \n"
3596  " delta : Size of zenith angle perturbation."),
3597  OUTPUT( k_, k_names_, k_aux_ ),
3601  GOUTPUT(),
3602  GINPUT(),
3603  KEYWORDS( "delta" ),
3604  TYPES( Numeric_t )));
3605 
3606  md_data.push_back
3607  ( MdRecord
3608  ( NAME( "kEground" ),
3609  DESCRIPTION(
3610  "Calculates the WF(s) for ground emission coefficent(s).\n"
3611  "\n"
3612  "The ground emission WF(s) are calculated by semi-analytical\n"
3613  "expressions (see AUG). With single_e=0, a WF is returned for \n"
3614  "the emission coefficient of each monochromatic frequency. \n"
3615  "On the other hand, when single_e=1, the ground emission is \n"
3616  "treated as a single varaible (that is, no frequency dependency) \n"
3617  "and there is only a single WF to be calculated. The latter \n"
3618  "option requieres that all elements of E_GROUND are set to the \n"
3619  "same value. \n"
3620  "\n"
3621  "Keywords:\n"
3622  " single_e : Boolean to treat the ground emission as a single\n"
3623  " variable. See further above." ),
3624  OUTPUT( k_, k_names_, k_aux_ ),
3626  los_, source_, trans_ ),
3627  GOUTPUT(),
3628  GINPUT(),
3629  KEYWORDS( "single_e" ),
3630  TYPES( Index_t )));
3631 
3632  md_data.push_back
3633  ( MdRecord
3634  ( NAME("kCalibration"),
3635  DESCRIPTION(
3636  "Calculates the WF for a proportional calibration error. \n"
3637  "\n"
3638  "The WF is simply : k = y - y0 where y0 is the specified \n"
3639  "vector. The y0-vector shhould typically be the radiance (or TB) \n"
3640  "of the load used for load switching. For example: \n"
3641  " VectorPlanck(y0,f_mono){temp=2.7} \n"
3642  " kCalibration(y0){} \n"
3643  "\n"
3644  "Generic input: \n"
3645  " Vector : A vector with spectrum for calibration reference \n"
3646  " point. This vector should typically be *y0*. "),
3647  OUTPUT( k_, k_names_, k_aux_ ),
3648  INPUT( y_, f_mono_ ),
3649  GOUTPUT(),
3650  GINPUT( Vector_ ),
3651  KEYWORDS(),
3652  TYPES()));
3653 
3654  md_data.push_back
3655  ( MdRecord
3656  ( NAME("kManual"),
3657  DESCRIPTION(
3658  "Calculates a weighting function using y and y0.\n"
3659  "\n"
3660  "The weighting function is calculated as: k = (y-y0)/delta\n"
3661  "That is, delta is the magnitude of the perturbation done.\n"
3662  "\n"
3663  "Keywords \n"
3664  " name : Name on retrieval/error identity.\n"
3665  " delta : Magnitude of perturbation.\n"
3666  " grid : Grid point value.\n"
3667  " apriori : A priori value."),
3668  OUTPUT( k_, k_names_, k_aux_ ),
3669  INPUT( y0_, y_ ),
3670  GOUTPUT(),
3671  GINPUT(),
3672  KEYWORDS( "name", "delta", "grid", "apriori" ),
3674 
3675  md_data.push_back
3676  ( MdRecord
3677  ( NAME("kxInit"),
3678  DESCRIPTION(
3679  "Initializes Kx weighting function matrix and help variables\n"
3680  "(kx_names, kx_lengths and kx_aux).\n"
3681  "\n"
3682  "Use this function before the WF calculations are started and\n"
3683  "together with kxAppend."),
3685  INPUT(),
3686  GOUTPUT(),
3687  GINPUT(),
3688  KEYWORDS(),
3689  TYPES()));
3690 
3691  md_data.push_back
3692  ( MdRecord
3693  ( NAME("kbInit"),
3694  DESCRIPTION(
3695  "Initializes Kb weighting function matrix and help variables\n"
3696  "(kb_names, kb_lengths and kb_aux).\n"
3697  "\n"
3698  "Use this function before the WF calculations are started and\n"
3699  "together with kbAppend."),
3701  INPUT(),
3702  GOUTPUT(),
3703  GINPUT(),
3704  KEYWORDS(),
3705  TYPES()));
3706 
3707  md_data.push_back
3708  ( MdRecord
3709  ( NAME("kxAppend"),
3710  DESCRIPTION(
3711  "Appends the K matrix to Kx and handles additional data\n"
3712  "correspondingly. \n"
3713  "\n"
3714  "All the data are reallocated to make space for the new data.\n"
3715  "This function is accordingly slow for large data sizes,\n"
3716  "and it can be better to use kxAllocate and kxPutInK."),
3719  GOUTPUT(),
3720  GINPUT(),
3721  KEYWORDS(),
3722  TYPES()));
3723 
3724  md_data.push_back
3725  ( MdRecord
3726  ( NAME("kbAppend"),
3727  DESCRIPTION(
3728  "Appends the K matrix to Kb and handles additional data\n"
3729  "correspondingly. \n"
3730  "\n"
3731  "All the data are reallocated to make space for the new data.\n"
3732  "This function is accordingly slow for large data sizes,\n"
3733  "and it can be better to use kbAllocate and kbPutInK."),
3736  GOUTPUT(),
3737  GINPUT(),
3738  KEYWORDS(),
3739  TYPES()));
3740 
3741  md_data.push_back
3742  ( MdRecord
3743  ( NAME("kxAllocate"),
3744  DESCRIPTION(
3745  "Allocates memory for kx and help variables (kx_names, kx_lengths \n"
3746  "and kx_aux).\n"
3747  "\n"
3748  "The total number of frequencies is taken from the length \n"
3749  "of the given vector (typically y).\n"
3750  " Use this function before the WF calculations are started and\n"
3751  "together with kxPutInK.\n"
3752  "\n"
3753  "Generic input: \n"
3754  " Vector : A vector with same length as the appended spectra.\n"
3755  " The typical choice is *y*.\n"
3756  "\n"
3757  "Keywords \n"
3758  " ni : Number of retrieval identities (species profiles,\n"
3759  " pointing off-set etc.).\n"
3760  " nx : Final length of x."),
3762  INPUT(),
3763  GOUTPUT(),
3764  GINPUT( Vector_ ),
3765  KEYWORDS( "ni", "nx" ),
3766  TYPES( Index_t, Index_t )));
3767 
3768  md_data.push_back
3769  ( MdRecord
3770  ( NAME("kbAllocate"),
3771  DESCRIPTION(
3772  "Allocates memory for kx and help variables (kb_names, kb_lengths \n"
3773  "and kb_aux). \n"
3774  "\n"
3775  "The total number of frequencies is taken from the length \n"
3776  "of the given vector (typically y).\n"
3777  " Use this function before the WF calculations are started and\n"
3778  "together with kbPutInK.\n"
3779  "\n"
3780  "Generic input: \n"
3781  " Vector : A vector with same length as the appended spectra.\n"
3782  " The typical choice is *y*.\n"
3783  "\n"
3784  "Keywords \n"
3785  " ni : Number of retrieval identities (species profiles,\n"
3786  " pointing off-set etc.).\n"
3787  " nb : Final length of b."),
3789  INPUT(),
3790  GOUTPUT(),
3791  GINPUT( Vector_ ),
3792  KEYWORDS( "ni", "nb" ),
3793  TYPES( Index_t, Index_t )));
3794 
3795  md_data.push_back
3796  ( MdRecord
3797  ( NAME("kxPutInK"),
3798  DESCRIPTION(
3799  "Puts K in Kx and handles additional data correspondingly.\n"
3800  "\n"
3801  "K is placed in the first free columns of Kx.\n"
3802  " No reallocation is performed (in contrast to kxAppend) and an\n"
3803  "error message is given if k does not fit into kx. The kx-data are\n"
3804  "allocated by the function kxAllocate."),
3807  GOUTPUT(),
3808  GINPUT(),
3809  KEYWORDS(),
3810  TYPES()));
3811 
3812  md_data.push_back
3813  ( MdRecord
3814  ( NAME("kbPutInK"),
3815  DESCRIPTION(
3816  "Puts K in Kb and handles additional data correspondingly.\n"
3817  "\n"
3818  "K is placed in the first free columns of Kb.\n"
3819  " No reallocation is performed (in contrast to kbAppend) and an\n"
3820  "error message is given if k does not fit into kb. The kb-data are\n"
3821  "allocated by the function kbAllocate."),
3824  GOUTPUT(),
3825  GINPUT(),
3826  KEYWORDS(),
3827  TYPES()));
3828 
3829 
3830 
3831 //======================================================================
3832 //=== Batch Calculation Methods
3833 //======================================================================
3834 
3835  md_data.push_back
3836  ( MdRecord
3837  ( NAME("ybatchCalc"),
3838  DESCRIPTION(
3839  "Calculates a batch of spectra from a set of profiles and\n"
3840  "frequency and viewing angle grids.\n"
3841  "The following workspace methods are used:\n"
3842  " absCalc \n"
3843  " losCalc \n"
3844  " sourceCalc \n"
3845  " transCalc \n"
3846  " yCalc \n"
3847  "and all the workspace variables needed by these functions must be\n"
3848  "set before starting this method.\n"
3849  "The refractive index is kept constant for all spectra.\n"
3850  "The values of the workspace variables are used as defaults when\n"
3851  "appropiate. For example, if temperature profiles are not read\n"
3852  "from a file (do_t=0), then the values of t_abs are used for all\n"
3853  "spectra.\n"
3854  "All input files shall be readable by MatrixReadBinary.\n"
3855  "The profiles and grids are stored as columns in the file matrix.\n"
3856  "When a filename is empty (""), filenames are created as:\n"
3857  " batchname.XXX.ab \n"
3858  "where XXX is\n"
3859  " t_abs : For temperature profiles.\n"
3860  " z_abs : For vertical altitude grids.\n"
3861  " f_mono : For frequency grids.\n"
3862  " za_pencil : For zenith angle grids.\n"
3863  "For species XXX is the molecule name, e.g. H2O and O3.\n"
3864  "If a filename is given, batchname is ignored.\n"
3865  "When a flag is 0, the corresponding filename is of no importance.\n"
3866  "The length of profiles (t, z and species) must match p_abs (no\n"
3867  "interpolation is performed).\n"
3868  "\n"
3869  "Keywords \n"
3870  " ncalc : The number of spectra to calculate. The files can\n"
3871  " contain data for more spectra (but not less).\n"
3872  " do_t : Temperature flag (0/1).\n"
3873  " t_file : Filename for temperature data.\n"
3874  " do_z : Vertical altitude flag (0/1).\n"
3875  " z_file : Filename for vertical grid data.\n"
3876  " do_f : Frequency flag (0/1).\n"
3877  " f_file : Filename for frequency data.\n"
3878  " do_za : Zenith angle flag (0/1).\n"
3879  " za_file : Filename for zenith angle data.\n"
3880  " do_tags : This String array gives the tags for which profiles\n"
3881  " shall be read from a file, e.g. [\"H2O\",\"O3\"].\n"
3882  " These tags must match some tag in tags.\n"
3883  " tag_files : Filenames for species data."),
3884  OUTPUT( ybatch_ ),
3885  INPUT( // Variables needed for absCalc
3888  // Additional variables for losCalc
3891  // Additional variables for yRte
3893  // Additional variables needed for this function
3896  GOUTPUT(),
3897  GINPUT(),
3898  KEYWORDS("ncalc", "do_t", "t_file", "do_z", "z_file",
3899  "do_tags", "tag_files",
3900  "do_f", "f_file", "do_za", "za_file"),
3904 
3905 
3906  md_data.push_back
3907  ( MdRecord
3908  ( NAME("ybatchFromRadiosonde"),
3909  DESCRIPTION
3910  ("Calculate spectra for a batch of radiosonde data."
3911  "\n"
3912  " We set the oxygen and nitrogen VMR to constant values of 0.209 and\n"
3913  "0.782, respectively. Some other methods are called implicitly by this\n"
3914  "method. Specifically:\n"
3915  "- absCalc\n"
3916  "- refrCalc\n"
3917  "- losCalc\n"
3918  "- sourceCalc\n"
3919  "- transCalc\n"
3920  "- yCalc\n"
3921  "\n"
3922  "Keywords: \n"
3923  "\n"
3924  " finegrid : Flag for a fine *p_abs* grid, 0 = Radiosonde levels, 1 = finer grid. \n"
3925  "\n"
3926  "If the keyword finegrid is set to 0 (finegrid = 0),\n"
3927  "absorption coeff. are calculated on the same grid as in the radiosonde launch.\n"
3928  "It does not check whether the launch has reached up to a certain height. \n"
3929  "\n"
3930  "If finegrid = 1, the absorption is calculated on a very fine grid (about 15 m)\n"
3931  "which is finer than the high resolution radiosonde levels (about 60 m). In this\n"
3932  "case *p_abs* grid is only up to 100 hPa so that we assume there is no atmosphere\n"
3933  "above this pressure level. The RT calculation is not done for any profile which\n"
3934  "do not fly up to 100 hPa. In this case we put -1 as the Tbs for all the frequencies.\n"
3935  "Planck brightness temperature is calculated for all the launches those reach 100 hPa.\n"
3936  "Note that *l_step* which is given by the user in the control file should be less than\n"
3937  "15 m, may be 5 m.\n"
3938  "\n"
3939  " interp_rh : Flag for interpolation of H2O profile in RH\n"
3940  " 0 = Normal ARTS interpolation in VMRs\n"
3941  " 1 = Interpolation in RH.\n"
3942  "\n"
3943  " za_per_profile : Flag for giving separate za_pencils for each profile\n"
3944  "\n"
3945  " 0 = As before, za_pencil(s) will be same for all profiles\n"
3946  " 1 = separate za_pencil for each profile\n"
3947  "If this keyword is set to 1, please make sure that the number of elements\n"
3948  "in the za_pencil and the number of radiosonde profiles are the same. The\n"
3949  "function now assumes that first element of the za_pencil is for the first\n"
3950  "radiosonde profile and the second element of the za_pencil is for the second\n"
3951  "radiosonde profile and so on.\n"
3952  "\n"
3953  " e_ground_per_profile : Flag for giving separate e_ground for each profile\n"
3954  "\n"
3955  "This assumes that same emissivity is used for all the given frequencies.\n"
3956  "\n"
3957  "calc_abs: Flag for storing the absorption coefficients.\n"
3958  "\n"
3959  "calc_jac: Flag for calculating Jacobian(only for H2O).\n"),
3961  INPUT( // Variables needed for absCalc
3963  // Additional variables for losCalc
3966  // Additional variables for yRte
3968  // Additional variables needed for this function
3969  tgs_,
3973  GOUTPUT(),
3974  GINPUT(),
3975  KEYWORDS("finegrid", "interp_rh", "za_per_profile", "e_ground_per_profile", "calc_abs", "calc_jac"),
3977 
3978 md_data.push_back
3979  ( MdRecord
3980  ( NAME("ybatchFromRadiosondeGlobal"),
3981  DESCRIPTION
3982  ("Calculate spectra for a batch of Global radiosonde data."
3983  "\n"
3984  "This method is almost similar to #ybatchFromRadiosonde#. Since the pressure \n"
3985  "grid in the global radiosonde data is coarse it is to be interpolated in a \n"
3986  "fine grid.\n"
3987  "\n"
3988  " We set the oxygen and nitrogen VMR to constant values of 0.209 and\n"
3989  "0.782, respectively. Some other methods are called implicitly by this\n"
3990  "method. Specifically:\n"
3991  "- absCalc\n"
3992  "- refrCalc\n"
3993  "- losCalc\n"
3994  "- sourceCalc\n"
3995  "- transCalc\n"
3996  "- yCalc"),
3997  OUTPUT( ybatch_ ),
3998  INPUT( // Variables needed for absCalc
4000  // Additional variables for losCalc
4003  // Additional variables for yRte
4005  // Additional variables needed for this function
4006  tgs_,
4010  GOUTPUT(),
4011  GINPUT(),
4012  KEYWORDS(),
4013  TYPES( )));
4014 
4015 //======================================================================
4016 //=== Methods as Workspace Variables
4017 //======================================================================
4018 
4019  md_data.push_back
4020  ( MdRecord
4021  ( NAME("MethodListDefine"),
4022  DESCRIPTION
4023  ( "Set up a method list.\n"
4024  "\n"
4025  "A method list just contains indices (in md_data) of methods\n"
4026  "intended for sequential execution. Only methods without keyword\n"
4027  "arguments are allowed. It is the task of this method to\n"
4028  "set this up. For example, it must be checked, whether the given\n"
4029  "names really correspond to methods.\n"
4030  "\n"
4031  "Generic Output:\n"
4032  " ArrayOfIndex : The newly generated method list.\n"
4033  "\n"
4034  "Keywords:\n"
4035  " methods : An array of names of methods." ),
4036  OUTPUT( ),
4037  INPUT( ),
4039  GINPUT(),
4040  KEYWORDS( "methods" ),
4041  TYPES( Array_String_t )));
4042 
4043 }
4044 
cont_description_parameters_
@ cont_description_parameters_
Definition: auto_wsv.h:30
kx_
@ kx_
Definition: auto_wsv.h:70
source_
@ source_
Definition: auto_wsv.h:59
z_ground_
@ z_ground_
Definition: auto_wsv.h:55
lines_per_tg_
@ lines_per_tg_
Definition: auto_wsv.h:23
jacbatch_
@ jacbatch_
Definition: auto_wsv.h:82
y_space_
@ y_space_
Definition: auto_wsv.h:61
z_abs_
@ z_abs_
Definition: auto_wsv.h:36
OUTPUT
#define OUTPUT
Definition: methods.h:134
lineshape_
@ lineshape_
Definition: auto_wsv.h:27
l_step_
@ l_step_
Definition: auto_wsv.h:49
wfss_tgs_
@ wfss_tgs_
Definition: auto_wsv.h:26
ArrayOfMatrix_
@ ArrayOfMatrix_
Definition: auto_wsv_groups.h:35
trans_
@ trans_
Definition: auto_wsv.h:60
n2_abs_
@ n2_abs_
Definition: auto_wsv.h:38
emission_
@ emission_
Definition: auto_wsv.h:45
ArrayOfString_
@ ArrayOfString_
Definition: auto_wsv_groups.h:33
TagGroups_
@ TagGroups_
Definition: auto_wsv_groups.h:39
auto_wsv_groups.h
Defines the enum type that acts as a handle for workspace variables groups.
absbatch_
@ absbatch_
Definition: auto_wsv.h:81
radiosonde_data_
@ radiosonde_data_
Definition: auto_wsv.h:83
refr_
@ refr_
Definition: auto_wsv.h:50
kb_names_
@ kb_names_
Definition: auto_wsv.h:75
coolrate_
@ coolrate_
Definition: auto_wsv.h:84
Los_
@ Los_
Definition: auto_wsv_groups.h:40
Vector_t
@ Vector_t
Definition: token.h:28
y0_
@ y0_
Definition: auto_wsv.h:63
kb_lengths_
@ kb_lengths_
Definition: auto_wsv.h:76
abs_
@ abs_
Definition: auto_wsv.h:40
vmrs_
@ vmrs_
Definition: auto_wsv.h:39
Index_t
@ Index_t
Definition: token.h:27
r_geoid_
@ r_geoid_
Definition: auto_wsv.h:54
NAME
#define NAME(x)
Definition: methods.h:132
cont_description_models_
@ cont_description_models_
Definition: auto_wsv.h:29
Array
This can be used to make arrays out of anything.
Definition: array.h:48
String_t
@ String_t
Definition: token.h:27
S_S_
@ S_S_
Definition: auto_wsv.h:78
k_names_
@ k_names_
Definition: auto_wsv.h:68
INPUT
#define INPUT
Definition: methods.h:135
z_tan_
@ z_tan_
Definition: auto_wsv.h:47
define_md_data
void define_md_data()
Define the lookup data for the workspace methods.
Definition: methods.cc:42
kx_lengths_
@ kx_lengths_
Definition: auto_wsv.h:72
lines_
@ lines_
Definition: auto_wsv.h:22
refr_model_
@ refr_model_
Definition: auto_wsv.h:52
String_
@ String_
Definition: auto_wsv_groups.h:29
refr_index_
@ refr_index_
Definition: auto_wsv.h:53
Index_
@ Index_
Definition: auto_wsv_groups.h:27
k_
@ k_
Definition: auto_wsv.h:67
ArrayOfVector_
@ ArrayOfVector_
Definition: auto_wsv_groups.h:34
GINPUT
#define GINPUT
Definition: methods.h:137
e_ground_
@ e_ground_
Definition: auto_wsv.h:57
ArrayOfIndex_
@ ArrayOfIndex_
Definition: auto_wsv_groups.h:32
Matrix_
@ Matrix_
Definition: auto_wsv_groups.h:31
z_plat_
@ z_plat_
Definition: auto_wsv.h:48
kb_
@ kb_
Definition: auto_wsv.h:74
batchname_
@ batchname_
Definition: auto_wsv.h:79
wfs_tgs_
@ wfs_tgs_
Definition: auto_wsv.h:25
t_ground_
@ t_ground_
Definition: auto_wsv.h:56
kb_aux_
@ kb_aux_
Definition: auto_wsv.h:77
los_
@ los_
Definition: auto_wsv.h:58
Numeric_
@ Numeric_
Definition: auto_wsv_groups.h:28
kx_aux_
@ kx_aux_
Definition: auto_wsv.h:73
Numeric_t
@ Numeric_t
Definition: token.h:27
k_aux_
@ k_aux_
Definition: auto_wsv.h:69
raw_ptz_
@ raw_ptz_
Definition: auto_wsv.h:31
k_grid_
@ k_grid_
Definition: auto_wsv.h:66
absloswfs_
@ absloswfs_
Definition: auto_wsv.h:65
t_abs_
@ t_abs_
Definition: auto_wsv.h:35
md_data
Array< MdRecord > md_data
The lookup information for the workspace methods.
Definition: globals_2.cc:53
kx_names_
@ kx_names_
Definition: auto_wsv.h:71
KEYWORDS
#define KEYWORDS
Definition: methods.h:138
MdRecord
This class contains all information for one workspace method.
Definition: methods.h:35
refr_lfac_
@ refr_lfac_
Definition: auto_wsv.h:51
xsec_per_tg_
@ xsec_per_tg_
Definition: auto_wsv.h:43
p_abs_
@ p_abs_
Definition: auto_wsv.h:33
za_pencil_
@ za_pencil_
Definition: auto_wsv.h:46
ybatch_
@ ybatch_
Definition: auto_wsv.h:80
p_coolrate_
@ p_coolrate_
Definition: auto_wsv.h:85
Array_String_t
@ Array_String_t
Definition: token.h:28
raw_vmrs_
@ raw_vmrs_
Definition: auto_wsv.h:32
Vector_
@ Vector_
Definition: auto_wsv_groups.h:30
tgs_
@ tgs_
Definition: auto_wsv.h:24
cont_description_names_
@ cont_description_names_
Definition: auto_wsv.h:28
f_mono_
@ f_mono_
Definition: auto_wsv.h:34
abs_per_tg_
@ abs_per_tg_
Definition: auto_wsv.h:42
y_
@ y_
Definition: auto_wsv.h:62
DESCRIPTION
#define DESCRIPTION(x)
Definition: methods.h:133
TYPES
#define TYPES
Definition: methods.h:139
h2o_abs_
@ h2o_abs_
Definition: auto_wsv.h:37
GOUTPUT
#define GOUTPUT
Definition: methods.h:136
methods.h
Declaration of the class MdRecord.
auto_wsv.h
Declares the enum type that acts as a handle for workspace variables. Also declares the workspace its...
arts.h
The global header file for ARTS.
hse_
@ hse_
Definition: auto_wsv.h:44