00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00032 #if HAVE_CONFIG_H
00033 #include <config.h>
00034 #endif
00035 
00036 #include "arts.h"
00037 
00038 #include "auto_wsv.h"
00039 #include "methods.h"
00040 #include "auto_wsv_groups.h"
00041 
00042 void define_md_data()
00043 {
00044   
00045   extern Array<MdRecord> md_data;
00046 
00047   
00048   md_data.resize(0);
00049 
00050   
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095   
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126   md_data.push_back
00127     ( MdRecord
00128       ( NAME( "Echo" ),
00129         DESCRIPTION
00130         (
00131          "Outputs a string.\n"
00132          "\n"
00133          "Output the given message string, level follows the same convention as the -r\n"
00134          "command line flag of arts.\n"
00135          "\n"
00136          "Keywords:\n"
00137          "   message   : Message for output on screen.\n"
00138          "   level     : Output level for the message.\n"
00139         ),
00140         OUTPUT(),
00141         INPUT(),
00142         GOUTPUT(),
00143         GINPUT(),
00144         KEYWORDS( "message", "level" ),
00145         TYPES(    String_t, Index_t    )));
00146 
00147 
00148   md_data.push_back     
00149     ( MdRecord
00150       ( NAME("Exit"),
00151         DESCRIPTION
00152         (
00153          "Stops the execution and exits ARTS.\n"
00154          "\n"
00155          "This method is handy if you want to debug one of your\n"
00156          "controlfiles. You can insert it anywhere in the controlfile. When\n"
00157          "it is reached, it will terminate the program."
00158         ),
00159         OUTPUT( ),
00160         INPUT( ),
00161         GOUTPUT( ),
00162         GINPUT( ),
00163         KEYWORDS( ),
00164         TYPES( )));
00165 
00166   md_data.push_back     
00167     ( MdRecord
00168       ( NAME("Test"),
00169         DESCRIPTION
00170         (
00171          "A dummy method that can be used for test purposes.\n"
00172          "\n"
00173          "This method can be used by ARTS developers to quickly test stuff.\n"
00174          "The implementation is in file m_io.cc. This just saves you the \n"
00175          "trouble of adding a dummy method everytime you want to try \n"
00176          "something out quickly."
00177         ),
00178         OUTPUT( ),
00179         INPUT( ),
00180         GOUTPUT( ),
00181         GINPUT( ),
00182         KEYWORDS( ),
00183         TYPES( )));
00184 
00185 
00186 
00187 
00188 
00189 
00190 
00191 
00192 
00193 
00194   md_data.push_back     
00195     ( MdRecord
00196       ( NAME("IndexSet"),
00197         DESCRIPTION
00198         (
00199          "Sets an index workspace variable to the given value. \n"
00200          "\n"
00201          "Generic output: \n"
00202          "   Index : The index variable to be set. \n"
00203          "\n"
00204          "Keywords:\n"
00205          "   value : A positive integer." 
00206         ),
00207         OUTPUT( ),
00208         INPUT( ),
00209         GOUTPUT( Index_ ),
00210         GINPUT( ),
00211         KEYWORDS( "value" ),
00212         TYPES(     Index_t   )));
00213 
00214   md_data.push_back
00215     ( MdRecord
00216       ( NAME("IndexWriteAscii"),
00217         DESCRIPTION(
00218                     "Writes an index value to an ASCII file.\n"
00219                     "\n"
00220                     "The index value of the given workspace variable\n"
00221                     "is written to the file with the specified name.\n"
00222                     "If the filename is omitted, the index is written\n"
00223                     "to <basename>.<variable_name>.aa.\n"
00224                     "\n"
00225                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
00226                     "\n"
00227                     "Generic input: \n"
00228                     "   Index : Name of the workspace variable to write.\n"
00229                     "\n"
00230                     "Keywords: \n"
00231                     "   filename : Name of the output file.\n"
00232                     ),
00233         OUTPUT(),
00234         INPUT(),
00235         GOUTPUT(),
00236         GINPUT( Index_ ),
00237         KEYWORDS( "filename" ),
00238         TYPES(    String_t   )));
00239 
00240   md_data.push_back
00241     ( MdRecord
00242       ( NAME("IndexReadAscii"),
00243         DESCRIPTION(
00244                     "Reads a index value from an ASCII file.\n"
00245                     "\n"
00246                     "The index value is read from the file with the\n"
00247                     "specified name and stored in the given workspace\n"
00248                     "variable.\n"
00249                     "If the filename is omitted, the index is read\n"
00250                     "from <basename>.<variable_name>.aa.\n"
00251                     "\n"
00252                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
00253                     "\n"
00254                     "Generic output: \n"
00255                     "   Index : Name of the workspace variable to read.\n"
00256                     "\n"
00257                     "Keywords: \n"
00258                     "   filename : Name of the input file.\n"
00259                     ),
00260         OUTPUT(),
00261         INPUT(),
00262         GOUTPUT( Index_ ),
00263         GINPUT(),
00264         KEYWORDS( "filename" ),
00265         TYPES(    String_t   )));
00266 
00267   md_data.push_back
00268     ( MdRecord
00269       ( NAME("IndexWriteBinary"),
00270         DESCRIPTION(
00271                     "Writes an index to a binary file.\n"
00272                     "\n"
00273                     "The filename can be specified or an empty String.\n"
00274                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
00275                     "File is in HDF4 format.\n"
00276                     "\n"
00277                     "Generic input: \n"
00278                     "   Index : Name of the workspace variable to write.\n"
00279                     "\n"
00280                     "Keywords:\n"
00281                     "   filename: Name of the output file.\n"
00282                     ),
00283    
00284         OUTPUT(),
00285         INPUT(),
00286         GOUTPUT(),
00287         GINPUT( Index_ ),
00288         KEYWORDS( "filename" ),
00289         TYPES(    String_t   )));
00290 
00291   md_data.push_back
00292     ( MdRecord
00293       ( NAME("IndexReadBinary"),
00294         DESCRIPTION(
00295                     "Reads an index from a binary file.\n"
00296                     "\n"
00297                     "The filename can be specified or an empty String.\n"
00298                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
00299                     "File is in HDF4 format.\n"
00300                     "\n"
00301                     "Generic output: \n"
00302                     "   Index : Name of the workspace variable to read.\n"
00303                     "\n"
00304                     "Keywords:\n"
00305                     "   filename : Name of the input file.\n"
00306                     ),
00307         OUTPUT(),
00308         INPUT(),
00309         GOUTPUT( Index_ ),
00310         GINPUT(),
00311         KEYWORDS( "filename" ),
00312         TYPES(    String_t   )));
00313 
00314 
00315 
00316   md_data.push_back
00317     ( MdRecord
00318       ( NAME("NumericSet"),
00319         DESCRIPTION
00320         (
00321          "Sets a numeric workspace variable to the given value. \n"
00322          "\n"
00323          "Generic output: \n"
00324          "   Numeric : The numeric variable to be set. \n"
00325          "\n"
00326          "Keywords:\n"
00327          "   value : The value." 
00328         ),
00329         OUTPUT(),
00330         INPUT(),
00331         GOUTPUT( Numeric_ ),
00332         GINPUT(),
00333         KEYWORDS( "value"   ),
00334         TYPES(    Numeric_t )));
00335 
00336   md_data.push_back
00337     ( MdRecord
00338       ( NAME("NumericCopyFirstOfVector"),
00339         DESCRIPTION
00340         (
00341          "Sets a numeric workspace variable to the value of the first \n"
00342          "element of a vector. \n"
00343          "\n"
00344          "Generic output: \n"
00345          "   Numeric : The numeric variable to be set. \n"
00346          "\n"
00347          "Generic input:\n"
00348          "   Vector : The vector from which the value shall be obtained." 
00349         ),
00350         OUTPUT(),
00351         INPUT(),
00352         GOUTPUT( Numeric_ ),
00353         GINPUT(  Vector_ ),
00354         KEYWORDS(),
00355         TYPES()));
00356 
00357   md_data.push_back
00358     ( MdRecord
00359       ( NAME("NumericCopyLastOfVector"),
00360         DESCRIPTION
00361         (
00362          "Sets a numeric workspace variable to the value of the last \n"
00363          "element of a vector. \n"
00364          "\n"
00365          "Generic output: \n"
00366          "   Numeric : The numeric variable to be set. \n"
00367          "\n"
00368          "Generic input:\n"
00369          "   Vector : The vector from which the value shall be obtained." 
00370         ),
00371         OUTPUT(),
00372         INPUT(),
00373         GOUTPUT( Numeric_ ),
00374         GINPUT(  Vector_ ),
00375         KEYWORDS(),
00376         TYPES()));
00377 
00378   md_data.push_back
00379     ( MdRecord
00380       ( NAME("NumericWriteAscii"),
00381         DESCRIPTION(
00382                     "Writes a numeric value to an ASCII file.\n"
00383                     "\n"
00384                     "The numeric value of the given workspace variable\n"
00385                     "is written to the file with the specified name.\n"
00386                     "If the filename is omitted, the numeric is written\n"
00387                     "to <basename>.<variable_name>.aa.\n"
00388                     "\n"
00389                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
00390                     "\n"
00391                     "Generic input: \n"
00392                     "   Numeric : Name of the workspace variable to write.\n"
00393                     "\n"
00394                     "Keywords: \n"
00395                     "   filename : Name of the output file.\n"
00396                     ),
00397         OUTPUT(),
00398         INPUT(),
00399         GOUTPUT(),
00400         GINPUT( Numeric_ ),
00401         KEYWORDS( "filename" ),
00402         TYPES(    String_t   )));
00403 
00404   md_data.push_back
00405     ( MdRecord
00406       ( NAME("NumericReadAscii"),
00407         DESCRIPTION(
00408                     "Reads a numeric value from an ASCII file.\n"
00409                     "\n"
00410                     "The numeric value is read from the file with the\n"
00411                     "specified name and stored in the given workspace\n"
00412                     "variable.\n"
00413                     "If the filename is omitted, the numeric is read\n"
00414                     "from <basename>.<variable_name>.aa.\n"
00415                     "\n"
00416                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
00417                     "\n"
00418                     "Generic output: \n"
00419                     "   Numeric : Name of the workspace variable to read.\n"
00420                     "\n"
00421                     "Keywords: \n"
00422                     "   filename : Name of the input file.\n"
00423                     ),
00424         OUTPUT(),
00425         INPUT(),
00426         GOUTPUT( Numeric_ ),
00427         GINPUT(),
00428         KEYWORDS( "filename" ),
00429         TYPES(    String_t   )));
00430 
00431   md_data.push_back
00432     ( MdRecord
00433       ( NAME("NumericWriteBinary"),
00434         DESCRIPTION(
00435                     "Writes a numeric value to a binary file.\n"
00436                     "\n"
00437                     "The filename can be specified or an empty String.\n"
00438                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
00439                     "File is in HDF4 format.\n"
00440                     "\n"
00441                     "Generic input: \n"
00442                     "   Numeric : Name of the workspace variable to write.\n"
00443                     "\n"
00444                     "Keywords:\n"
00445                     "   filename : Name of the output file.\n"
00446                     ),
00447         OUTPUT(),
00448         INPUT(),
00449         GOUTPUT(),
00450         GINPUT( Numeric_ ),
00451         KEYWORDS( "filename" ),
00452         TYPES(    String_t   )));
00453 
00454   md_data.push_back
00455     ( MdRecord
00456       ( NAME("NumericReadBinary"),
00457         DESCRIPTION(
00458                     "Reads a numeric from a binary file.\n"
00459                     "\n"
00460                     "The filename can be specified or an empty String.\n"
00461                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
00462                     "File is in HDF4 format.\n"
00463                     "\n"
00464                     "Generic output: \n"
00465                     "   Numeric : Name of the workspace variable to read.\n"
00466                     "\n"
00467                     "Keywords:\n"
00468                     "   filename : Name of the input file.\n"
00469                     ),
00470         OUTPUT(),
00471         INPUT(),
00472         GOUTPUT( Numeric_ ),
00473         GINPUT(),
00474         KEYWORDS( "filename" ),
00475         TYPES(    String_t   )));
00476 
00477 
00478 
00479 
00480   md_data.push_back
00481     ( MdRecord
00482       ( NAME("VectorCopy"),
00483         DESCRIPTION
00484         (
00485          "Creates a copy of a vector. \n"
00486          "\n"
00487          "Generic output: \n"
00488          "   Vector : The vector to be created. \n"
00489          "\n"
00490          "Generic input: \n"
00491          "   Vector : The vector to be copied. "
00492         ),
00493         OUTPUT(),
00494         INPUT(),
00495         GOUTPUT( Vector_ ),
00496         GINPUT( Vector_ ),
00497         KEYWORDS(),
00498         TYPES()));
00499 
00500 
00501   md_data.push_back
00502     ( MdRecord
00503       ( NAME("VectorCopyFromMatrix"),
00504         DESCRIPTION
00505         (
00506          "Copies a row or a column from a matrix to a vector"
00507          "\n"
00508          "Generic output: \n"
00509          "   Vector : The vector to be created. \n"
00510          "\n"
00511          "Generic input: \n"
00512          "   Matrix : The source matrix. \n"
00513          "\n"
00514          "Keywords:\n"
00515          "   orientation : Could be either \"col\" or \"row\". \n"
00516          "   index       : Row or column number to be copied. \n"
00517         ),
00518         OUTPUT(),
00519         INPUT(),
00520         GOUTPUT( Vector_ ),
00521         GINPUT(  Matrix_ ),
00522         KEYWORDS( "orientation", "index"   ),
00523         TYPES(    String_t,      Index_t   )));
00524 
00525 
00526   md_data.push_back
00527     ( MdRecord
00528       ( NAME("VectorSet"),
00529         DESCRIPTION
00530         (
00531          "Creates a workspace vector with the specified length and sets \n"
00532          "all values of the vector to the specified value. \n"
00533          "\n"
00534          "Generic output: \n"
00535          "   Vector : The vector to be created. \n"
00536          "\n"
00537          "Keywords:\n"
00538          "   length : The length of the new vector. \n"
00539          "   value  : The value of the vector elements. " 
00540         ),
00541         OUTPUT(),
00542         INPUT(),
00543         GOUTPUT( Vector_ ),
00544         GINPUT(),
00545         KEYWORDS( "length", "value"   ),
00546         TYPES(    Index_t,    Numeric_t )));
00547 
00548   md_data.push_back
00549     ( MdRecord
00550       ( NAME("VectorSetLengthFromVector"),
00551         DESCRIPTION
00552         (
00553          "Creates a workspace vector with the same length as another vector,\n"
00554          "and sets all values of the new vector to the specified value. \n"
00555          "\n"
00556          "A common usage of the function should be: \n"
00557          "  VectorSetLengthFromVector(e_ground,f_mono){value=0.75} \n"
00558          "\n"
00559          "Generic output: \n"
00560          "   Vector : The vector to be created. \n"
00561          "\n"
00562          "Generic input: \n"
00563          "   Vector : The vector specifying the length.. \n"
00564          "\n"
00565          "Keywords:\n"
00566          "   value  : The value of the vector elements. " 
00567         ),
00568         OUTPUT(),
00569         INPUT(),
00570         GOUTPUT( Vector_ ),
00571         GINPUT( Vector_ ),
00572         KEYWORDS( "value"   ),
00573         TYPES(    Numeric_t )));
00574 
00575   md_data.push_back
00576     ( MdRecord
00577       ( NAME("VectorLinSpace"),
00578         DESCRIPTION
00579         (
00580          "Creates a vector with linear spacing.\n"
00581          "\n"
00582          "The first element equals always the start value, and the spacing\n"
00583          "equlas always the step value, but note that the last value can  \n"
00584          "deviate from the stop value. The keyword step can be both positive\n"
00585          "and negative. \n"
00586          "   The vector is [start, start+step, start+2*step, ...]\n "  
00587          "\n"
00588          "Generic output: \n"
00589          "   Vector : The vector to be created. \n"
00590          "\n"
00591          "Keywords:\n"
00592          "   start : The start value. \n"
00593          "    stop : The maximum value of the end value. \n"  
00594          "    step : The spacing of the vector. " 
00595         ),
00596         OUTPUT(),
00597         INPUT(),
00598         GOUTPUT( Vector_ ),
00599         GINPUT(),
00600         KEYWORDS( "start",   "stop",    "step"    ),
00601         TYPES(    Numeric_t, Numeric_t, Numeric_t )));
00602 
00603   md_data.push_back
00604     ( MdRecord
00605       ( NAME("VectorNLinSpace"),
00606         DESCRIPTION
00607         (
00608          "Creates a vector with defined length, equally spaced between the \n"
00609          "given end values. \n"
00610          "\n"
00611          "The length must be larger than 1. \n"
00612          "\n"
00613          "Generic output: \n"
00614          "   Vector : The vector to be created. \n"
00615          "\n"
00616          "Keywords:\n"
00617          "   start : The start value. \n"
00618          "    stop : The end value. \n"
00619          "       n : Number of elements of the vector. " 
00620         ),
00621         OUTPUT(),
00622         INPUT(),
00623         GOUTPUT(Vector_),
00624         GINPUT(),
00625         KEYWORDS( "start",   "stop",    "n"   ),
00626         TYPES(    Numeric_t, Numeric_t, Index_t )));
00627 
00628   md_data.push_back
00629     ( MdRecord
00630       ( NAME("VectorNLogSpace"),
00631         DESCRIPTION
00632         (
00633          "Creates a vector with defined length, equally logarithmically \n"
00634          "spaced between the given end values. \n"
00635          "\n"
00636          "The length must be larger than 1. \n"
00637          "\n"
00638          "Generic output: \n"
00639          "   Vector : The vector to be created. \n"
00640          "\n"
00641          "Keywords:\n"
00642          "   start : The start value. \n"
00643          "    stop : The end value. \n"  
00644          "       n : Number of elements of the vector. " 
00645         ),
00646         OUTPUT(),
00647         INPUT(),
00648         GOUTPUT(Vector_),
00649         GINPUT(),
00650         KEYWORDS( "start",   "stop",    "n"   ),
00651         TYPES(    Numeric_t, Numeric_t, Index_t )));
00652 
00653   md_data.push_back
00654     ( MdRecord
00655       ( NAME("VectorPressuresForLinAltitudes"),
00656         DESCRIPTION
00657         (
00658          "Calculates a set of pressures corresponding to a set of\n"
00659          "linearly spaced altitudes. \n"
00660          "\n"
00661          "The linear set of altitudes is defined by an altitude step and \n"
00662          "a start and stop pressure. \n"
00663          "   The conversions between pressures and altitudes are based on\n"
00664          "*p_abs* and *z_abs*. \n"
00665          "\n"
00666          "Generic output: \n"
00667          "   Vector : Return vector for the pressure grid created. \n"
00668          "\n"
00669          "Keywords:\n"
00670          "     delta_z : Altitude step.\n"
00671          "     p_start : Start pressure.\n"
00672          "     p_stop  : Stop pressure."  
00673         ),
00674         OUTPUT(),
00675         INPUT( p_abs_, z_abs_ ),
00676         GOUTPUT( Vector_ ),
00677         GINPUT(),
00678         KEYWORDS( "delta_z", "p_start", "p_stop"  ),
00679         TYPES(    Numeric_t, Numeric_t, Numeric_t )));
00680 
00681   md_data.push_back
00682     ( MdRecord
00683       ( NAME("VectorFlip"),
00684         DESCRIPTION
00685         (
00686          "Creates a copy of a vector in reversed order. \n"
00687          "\n"
00688          "Generic output: \n"
00689          "   Vector : The vector to be created. \n"
00690          "\n"
00691          "Generic input: \n"
00692          "   Vector : The vector to be copied. "
00693         ),
00694         OUTPUT(),
00695         INPUT(),
00696         GOUTPUT( Vector_ ),
00697         GINPUT( Vector_ ),
00698         KEYWORDS(),
00699         TYPES()));
00700 
00701   md_data.push_back
00702     ( MdRecord
00703       ( NAME("VectorMatrixMultiply"),
00704         DESCRIPTION
00705         (
00706          "Multiply a Vector with a Matrix and store the result in another\n"
00707          "Vector.\n"
00708          "\n"
00709          "This just computes the normal Matrix-Vector product, y=M*x. It is ok\n"
00710          "if input and output Vector are the same. This function is handy for\n"
00711          "multiplying the H Matrix to spectra.\n"
00712          "\n"
00713          "Generic output:\n"
00714          "   Vector : The result of the multiplication (dimension m).\n"
00715          "\n"
00716          "Generic input:\n"
00717          "   Matrix : The Matrix to multiply (dimension mxn).\n"
00718          "   Vector : The original Vector (dimension n).\n"
00719         ),
00720         OUTPUT(),
00721         INPUT(),
00722         GOUTPUT( Vector_ ),
00723         GINPUT( Matrix_, Vector_ ),
00724         KEYWORDS(),
00725         TYPES()));
00726 
00727   md_data.push_back
00728     ( MdRecord
00729       ( NAME("VectorWriteAscii"),
00730         DESCRIPTION(
00731                     "Writes a vector to an ASCII file.\n"
00732                     "\n"
00733                     "The vector of the given workspace variable\n"
00734                     "is written to the file with the specified name.\n"
00735                     "If the filename is omitted, the vector is written\n"
00736                     "to <basename>.<variable_name>.aa.\n"
00737                     "\n"
00738                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
00739                     "\n"
00740                     "Generic input: \n"
00741                     "   Vector : Name of the workspace variable to write.\n"
00742                     "\n"
00743                     "Keywords: \n"
00744                     "   filename : Name of the output file.\n"
00745                     ),
00746         OUTPUT(),
00747         INPUT(),
00748         GOUTPUT(),
00749         GINPUT( Vector_ ),
00750         KEYWORDS( "filename" ),
00751         TYPES(    String_t   )));
00752 
00753   md_data.push_back
00754     ( MdRecord
00755       ( NAME("VectorReadAscii"),
00756         DESCRIPTION(
00757                     "Reads a vector from an ASCII file.\n"
00758                     "\n"
00759                     "The vector is read from the file with the\n"
00760                     "specified name and stored in the given workspace\n"
00761                     "variable.\n"
00762                     "If the filename is omitted, the vector is read\n"
00763                     "from <basename>.<variable_name>.aa.\n"
00764                     "\n"
00765                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
00766                     "\n"
00767                     "Generic output: \n"
00768                     "   Vector : Name of the workspace variable to read.\n"
00769                     "\n"
00770                     "Keywords: \n"
00771                     "   filename : Name of the input file.\n"
00772                     ),
00773         OUTPUT(),
00774         INPUT(),
00775         GOUTPUT( Vector_ ),
00776         GINPUT(),
00777         KEYWORDS( "filename" ),
00778         TYPES(    String_t   )));
00779 
00780   md_data.push_back
00781     ( MdRecord
00782       ( NAME("VectorWriteBinary"),
00783         DESCRIPTION(
00784                     "Writes a vector to a binary file.\n"
00785                     "\n"
00786                     "The filename can be specified or an empty String.\n"
00787                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
00788                     "File is in HDF4 format.\n"
00789                     "\n"
00790                     "Generic input: \n"
00791                     "   Vector : Name of the workspace variable to write.\n"
00792                     "\n"
00793                     "Keywords:\n"
00794                     "   filename : Name of the output file.\n"
00795                     ),
00796         OUTPUT(),
00797         INPUT(),
00798         GOUTPUT(),
00799         GINPUT( Vector_ ),
00800         KEYWORDS( "filename" ),
00801         TYPES(    String_t   )));
00802 
00803   md_data.push_back
00804     ( MdRecord
00805       ( NAME("VectorReadBinary"),
00806         DESCRIPTION(
00807                     "Reads a vector from a binary file.\n"
00808                     "\n"
00809                     "The filename can be specified or an empty String.\n"
00810                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
00811                     "File is in HDF4 format.\n"
00812                     "\n" 
00813                     "Generic output: \n"
00814                     "   Vector : Name of the workspace variable to read.\n"
00815                     "\n"
00816                     "Keywords:\n"
00817                     "   filename : Name of the input file.\n"
00818                     ),
00819         OUTPUT(),
00820         INPUT(),
00821         GOUTPUT( Vector_ ),
00822         GINPUT(),
00823         KEYWORDS( "filename" ),
00824         TYPES(    String_t   )));
00825 
00826 
00827   md_data.push_back
00828     ( MdRecord
00829       ( NAME("VectorPlanck"),
00830         DESCRIPTION
00831         (
00832          "Sets a vector to the Planck function for the given frequencies\n"
00833          "and temperature. \n"
00834          "\n"
00835          "An example:\n"
00836          "   VectorPlanck(y_space,f_mono){temp=2.7} \n"
00837          "\n"
00838          "Generic output: \n"
00839          "   Vector : The vector to be created. \n"
00840          "\n"
00841          "Generic input: \n"
00842          "   Vector : Input frequencies. \n"
00843          "\n"
00844          "Keywords:\n"
00845          "   temp : The blackbody temperature."  
00846         ),
00847         OUTPUT( ),
00848         INPUT( ),
00849         GOUTPUT( Vector_ ),
00850         GINPUT( Vector_ ),
00851         KEYWORDS( "temp"    ),
00852         TYPES(    Numeric_t )));
00853 
00854   md_data.push_back
00855     ( MdRecord
00856       ( NAME("VectorCalcLog10"),
00857         DESCRIPTION
00858         (
00859          "Calculates the base 10 logarithm of a vector. \n"
00860          "\n"
00861          "The result can either be stored in the same or another vector. \n"
00862          "\n"
00863          "Generic output: \n"
00864          "   Vector : Return vector. \n"
00865          "\n"
00866          "Generic input: \n"
00867          "   Vector : Input vector. "
00868         ),
00869         OUTPUT( ),
00870         INPUT( ),
00871         GOUTPUT( Vector_ ),
00872         GINPUT( Vector_ ),
00873         KEYWORDS(),
00874         TYPES()));
00875 
00876   md_data.push_back
00877     ( MdRecord
00878       ( NAME("VectorAdd"),
00879         DESCRIPTION
00880         (
00881          "Adds a scalar to all elements of a vector. \n"
00882          "\n"
00883          "The result can either be stored in the same or another vector. \n"
00884          "\n"
00885          "Generic output: \n"
00886          "   Vector : Return vector. \n"
00887          "\n"
00888          "Generic input: \n"
00889          "   Vector : Original vector. \n"
00890          "\n"
00891          "Keywords:\n"
00892          "   value : The value to be added to the vector."  
00893         ),
00894         OUTPUT( ),
00895         INPUT( ),
00896         GOUTPUT( Vector_ ),
00897         GINPUT( Vector_ ),
00898         KEYWORDS( "value" ),
00899         TYPES( Numeric_t )));
00900 
00901   md_data.push_back
00902     ( MdRecord
00903       ( NAME("VectorScale"),
00904         DESCRIPTION
00905         (
00906          "Scales all elements of a vector with the same value. \n"
00907          "\n"
00908          "The result can either be stored in the same or another vector. \n"
00909          "\n"
00910          "Generic output: \n"
00911          "   Vector : Return vector. \n"
00912          "\n"
00913          "Generic input: \n"
00914          "   Vector : Original vector. \n"
00915          "\n"
00916          "Keywords:\n"
00917          "   value : The value to be multiplicated with the vector."  
00918         ),
00919         OUTPUT( ),
00920         INPUT( ),
00921         GOUTPUT( Vector_ ),
00922         GINPUT( Vector_ ),
00923         KEYWORDS( "value" ),
00924         TYPES( Numeric_t )));
00925 
00926 
00927 
00928 
00929   md_data.push_back
00930     ( MdRecord
00931       ( NAME("MatrixSet"),
00932         DESCRIPTION
00933         (
00934          "Creates a workspace matrix with the specified size and sets \n"
00935          "all values of the matrix to the specified value. \n"
00936          "\n"
00937          "Generic output: \n"
00938          "   Matrix : The matrix to be created. \n"
00939          "\n"
00940          "Keywords:\n"
00941          "   nrows : The number of rows of the matrix to create. \n"
00942          "   ncols : The number of columns of the matrix to create. \n"
00943          "   value : The value of the matrix elements. " 
00944         ),
00945         OUTPUT(),
00946         INPUT(),
00947         GOUTPUT( Matrix_ ),
00948         GINPUT(),
00949         KEYWORDS( "nrows", "ncols", "value"   ),
00950         TYPES(    Index_t, Index_t, Numeric_t )));
00951 
00952   md_data.push_back
00953     ( MdRecord
00954       ( NAME("MatrixCopy"),
00955         DESCRIPTION
00956         (
00957          "Creates a copy of a matrix. \n"
00958          "\n"
00959          "Generic output: \n"
00960          "   Matrix : The matrix to be created. \n"
00961          "\n"
00962          "Generic input: \n"
00963          "   Matrix : The matrix to be copied. "
00964         ),
00965         OUTPUT(),
00966         INPUT(),
00967         GOUTPUT( Matrix_ ),
00968         GINPUT( Matrix_ ),
00969         KEYWORDS(),
00970         TYPES()));
00971 
00972   md_data.push_back
00973     ( MdRecord
00974       ( NAME("MatrixFillWithVector"),
00975         DESCRIPTION
00976         (
00977          "Forms a matrix with n columns, and put the given vector in \n"
00978          "each column. \n"
00979          "\n"
00980          "Generic output: \n"
00981          "   Matrix : The matrix to be created. \n"
00982          "\n"
00983          "Generic input: \n"
00984          "   Vector : The vector to be copied. \n"
00985          "Keyword: \n"
00986          "   n : Number of columns in the matrix. "
00987         ),
00988         OUTPUT(),
00989         INPUT(),
00990         GOUTPUT( Matrix_ ),
00991         GINPUT( Vector_ ),
00992         KEYWORDS( "n"   ),
00993         TYPES(    Index_t )));
00994 
00995   md_data.push_back
00996     ( MdRecord
00997       ( NAME("MatrixMatrixMultiply"),
00998         DESCRIPTION
00999         (
01000          "Multiply a Matrix with another Matrix and store the result in the result\n"
01001          "Matrix.\n"
01002          "\n"
01003          "This just computes the normal Matrix-Matrix product, Y=M*X. It is ok\n"
01004          "if Y and X are the same Matrix. This function is handy for\n"
01005          "multiplying the H Matrix to weighting functions.\n"
01006          "\n"
01007          "Generic output:\n"
01008          "   Matrix : The result of the multiplication (dimension mxc).\n"
01009          "\n"
01010          "Generic input:\n"
01011          "   Matrix : The Matrix to multiply (dimension mxn).\n"
01012          "   Matrix : The original Matrix (dimension nxc).\n"
01013         ),
01014         OUTPUT(),
01015         INPUT(),
01016         GOUTPUT( Matrix_ ),
01017         GINPUT( Matrix_, Matrix_ ),
01018         KEYWORDS(),
01019         TYPES()));
01020 
01021   md_data.push_back
01022     ( MdRecord
01023       ( NAME("ArrayOfMatrixMatrixMultiply"),
01024         DESCRIPTION
01025         (
01026          "Multiply an array of Matrix with a Matrix and store the result in the result\n"
01027          "ArrayOfMatrix.\n"
01028          "\n"
01029          "This just computes the normal Matrix-Matrix product, Y[i]=M*X[i]. It is ok\n"
01030          "if Y and X are the same Array of Matrix. This function is handy for\n"
01031          "multiplying the H Matrix to weighting functions.\n"
01032          "\n"
01033          "Generic output:\n"
01034          "   ArrayOfMatrix : The result of the multiplication (dimension mxc).\n"
01035          "\n"
01036          "Generic input:\n"
01037          "   Matrix        : The Matrix to multiply (dimension mxn).\n"
01038          "   ArrayOfMatrix : The original Matrix (dimension nxc).\n"
01039         ),
01040         OUTPUT(),
01041         INPUT(),
01042         GOUTPUT( ArrayOfMatrix_ ),
01043         GINPUT( Matrix_, ArrayOfMatrix_ ),
01044         KEYWORDS(),
01045         TYPES()));
01046 
01047   md_data.push_back
01048     ( MdRecord
01049       ( NAME("MatrixMatrixAdd"),
01050         DESCRIPTION
01051         (
01052          "Adds two matrices. \n"
01053          "\n"
01054          "The function makes an element-wise addition. The size of the two \n"
01055          "matrices to add must have the same size. \n"
01056          "\n"
01057          "Generic output:\n"
01058          "   Matrix : The result of the addition (dimension m x n).\n"
01059          "\n"
01060          "Generic input:\n"
01061          "   Matrix : A matrix (dimension m x n).\n"
01062          "   Matrix : A matrix (dimension m x n)."
01063         ),
01064         OUTPUT(),
01065         INPUT(),
01066         GOUTPUT( Matrix_ ),
01067         GINPUT( Matrix_, Matrix_ ),
01068         KEYWORDS(),
01069         TYPES()));
01070 
01071   md_data.push_back
01072     ( MdRecord
01073       ( NAME("MatrixWriteAscii"),
01074         DESCRIPTION(
01075                     "Writes a matrix to an ASCII file.\n"
01076                     "\n"
01077                     "The matrix of the given workspace variable\n"
01078                     "is written to the file with the specified name.\n"
01079                     "If the filename is omitted, the matrix is written\n"
01080                     "to <basename>.<variable_name>.aa.\n"
01081                     "\n"
01082                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01083                     "\n"
01084                     "Generic input: \n"
01085                     "   Matrix : Name of the workspace variable to write.\n"
01086                     "\n"
01087                     "Keywords: \n"
01088                     "   filename : Name of the output file.\n"
01089                     ),
01090         OUTPUT(),
01091         INPUT(),
01092         GOUTPUT(),
01093         GINPUT( Matrix_ ),
01094         KEYWORDS( "filename" ),
01095         TYPES(    String_t   )));
01096 
01097   md_data.push_back
01098     ( MdRecord
01099       ( NAME("MatrixReadAscii"),
01100         DESCRIPTION(
01101                     "Reads a matrix from an ASCII file.\n"
01102                     "\n"
01103                     "The matrix is read from the file with the\n"
01104                     "specified name and stored in the given workspace\n"
01105                     "variable.\n"
01106                     "If the filename is omitted, the matrix is read\n"
01107                     "from <basename>.<variable_name>.aa.\n"
01108                     "\n"
01109                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01110                     "\n"
01111                     "Generic output: \n"
01112                     "   Matrix : Name of the workspace variable to read.\n"
01113                     "\n"
01114                     "Keywords: \n"
01115                     "   filename : Name of the input file.\n"
01116                     ),
01117         OUTPUT(),
01118         INPUT(),
01119         GOUTPUT( Matrix_ ),
01120         GINPUT(),
01121         KEYWORDS( "filename" ),
01122         TYPES(    String_t   )));
01123 
01124   md_data.push_back
01125     ( MdRecord
01126       ( NAME("MatrixWriteBinary"),
01127         DESCRIPTION(
01128                     "Writes a matrix to a binary file.\n"
01129                     "\n"
01130                     "The filename can be specified or an empty String.\n"
01131                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01132                     "File is in HDF4 format.\n"
01133                     "\n"
01134                     "Generic input: \n"
01135                     "   Matrix : Name of the workspace variable to write.\n"
01136                     "\n"
01137                     "Keywords:\n"
01138                     "   filename : Name of the output file.\n"
01139                     ),
01140         OUTPUT(),
01141         INPUT(),
01142         GOUTPUT(),
01143         GINPUT( Matrix_ ),
01144         KEYWORDS( "filename" ),
01145         TYPES(    String_t   )));
01146 
01147   md_data.push_back
01148     ( MdRecord
01149       ( NAME("MatrixReadBinary"),
01150         DESCRIPTION(
01151                     "Reads a matrix from a binary file.\n"
01152                     "\n"
01153                     "The filename can be specified or an empty String.\n"
01154                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01155                     "File is in HDF4 format.\n"
01156                     "\n"
01157                     "Generic output: \n"
01158                     "   Matrix : Name of the workspace variable to read.\n"
01159                     "\n"
01160                     "Keywords:\n"
01161                     "   filename : Name of the input file.\n"
01162                     ),
01163         OUTPUT(),
01164         INPUT(),
01165         GOUTPUT( Matrix_ ),
01166         GINPUT(),
01167         KEYWORDS( "filename" ),
01168         TYPES(    String_t   )));
01169 
01170   md_data.push_back
01171     ( MdRecord
01172       ( NAME("MatrixScale"),
01173         DESCRIPTION
01174         (
01175          "Scales all elements of a matrix with the same value. \n"
01176          "\n"
01177          "The result can either be stored in the same or another matrix. \n"
01178          "\n"
01179          "Generic output: \n"
01180          "   Matrix : Return matrix. \n"
01181          "\n"
01182          "Generic input: \n"
01183          "   Matrix : Original matrix. \n"
01184          "\n"
01185          "Keywords: \n"
01186          "   value : The value to be multiplicated with the matrix."  
01187         ),
01188         OUTPUT(),
01189         INPUT(),
01190         GOUTPUT( Matrix_ ),
01191         GINPUT( Matrix_ ),
01192         KEYWORDS( "value" ),
01193         TYPES(    Numeric_t   )));
01194 
01195   md_data.push_back
01196     ( MdRecord
01197       ( NAME("MatrixDiagonal"),
01198         DESCRIPTION
01199         (
01200          "Creates a diagonal matrix. \n"
01201          "\n"
01202          "All diagonal elements are set to the same value.\n"
01203          "\n"
01204          "Generic output: \n"
01205          "   Matrix : The matrix to be created. \n"
01206          "\n"
01207          "Keywords: \n"
01208          "   nrows : The number of rows (and columns) of the matrix to \n"
01209          "           create. \n"
01210          "   value : The value of the diagonal matrix elements. " 
01211         ),
01212         OUTPUT(),
01213         INPUT(),
01214         GOUTPUT( Matrix_ ),
01215         GINPUT(),
01216         KEYWORDS( "nrows", "value"   ),
01217         TYPES(    Index_t,   Numeric_t )));
01218 
01219 
01220 
01221 
01222 
01223   md_data.push_back
01224     ( MdRecord
01225       ( NAME("ArrayOfIndexWriteAscii"),
01226         DESCRIPTION(
01227                     "Writes a index array to an ASCII file.\n"
01228                     "\n"
01229                     "The index array of the given workspace variable\n"
01230                     "is written to the file with the specified name.\n"
01231                     "If the filename is omitted, the index array is written\n"
01232                     "to <basename>.<variable_name>.aa.\n"
01233                     "\n"
01234                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01235                     "\n"
01236                     "Generic input: \n"
01237                     "   ArrayOfIndex : Name of the workspace variable to write.\n"
01238                     "\n"
01239                     "Keywords: \n"
01240                     "   filename : Name of the output file.\n"
01241                     ),
01242         OUTPUT(),
01243         INPUT(),
01244         GOUTPUT(),
01245         GINPUT( ArrayOfIndex_ ),
01246         KEYWORDS( "filename" ),
01247         TYPES(    String_t   )));
01248 
01249   md_data.push_back
01250     ( MdRecord
01251       ( NAME("ArrayOfIndexReadAscii"),
01252         DESCRIPTION(
01253                     "Reads a index array from an ASCII file.\n"
01254                     "\n"
01255                     "The index array is read from the file with the\n"
01256                     "specified name and stored in the given workspace\n"
01257                     "variable.\n"
01258                     "If the filename is omitted, the index array is read\n"
01259                     "from <basename>.<variable_name>.aa.\n"
01260                     "\n"
01261                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01262                     "\n"
01263                     "Generic output: \n"
01264                     "   ArrayOfIndex : Name of the workspace variable to read.\n"
01265                     "\n"
01266                     "Keywords: \n"
01267                     "   filename : Name of the input file.\n"                    
01268                     ),
01269         OUTPUT(),
01270         INPUT(),
01271         GOUTPUT( ArrayOfIndex_ ),
01272         GINPUT(),
01273         KEYWORDS( "filename" ),
01274         TYPES(    String_t   )));
01275 
01276   md_data.push_back
01277     ( MdRecord
01278       ( NAME("ArrayOfIndexWriteBinary"),
01279         DESCRIPTION(
01280                     "Writes an index array to a binary file.\n"
01281                     "\n"
01282                     "The filename can be specified or an empty String.\n"
01283                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01284                     "File is in HDF4 format.\n"
01285                     "\n"
01286                     "Generic input: \n"
01287                     "   ArrayOfIndex : Name of the workspace variable to write.\n"
01288                     "\n"
01289                     "Keywords:\n"
01290                     "   filename : Name of the output file.\n"
01291                     ),
01292         OUTPUT(),
01293         INPUT(),
01294         GOUTPUT(),
01295         GINPUT( ArrayOfIndex_ ),
01296         KEYWORDS( "filename" ),
01297         TYPES(    String_t   )));
01298 
01299   md_data.push_back
01300     ( MdRecord
01301       ( NAME("ArrayOfIndexReadBinary"),
01302         DESCRIPTION(
01303                     "Reads an index array from a binary file.\n"
01304                     "\n"
01305                     "The filename can be specified or an empty String.\n"
01306                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01307                     "File is in HDF4 format.\n"
01308                     "\n"
01309                     "Generic output: \n"
01310                     "   ArrayOfIndex : Name of the workspace variable to read.\n"
01311                     "\n"
01312                     "Keywords:\n"
01313                     "   filename : Name of the input file.\n"
01314                     ),
01315         OUTPUT(),
01316         INPUT(),
01317         GOUTPUT( ArrayOfIndex_ ),
01318         GINPUT(),
01319         KEYWORDS( "filename" ),
01320         TYPES(    String_t   )));
01321 
01322 
01323 
01324 
01325   md_data.push_back
01326     ( MdRecord
01327       ( NAME("ArrayOfVectorWriteAscii"),
01328         DESCRIPTION(
01329                     "Writes an array of vectors to an ASCII file.\n"
01330                     "\n"
01331                     "The array of vectors of the given workspace variable\n"
01332                     "is written to the file with the specified name.\n"
01333                     "If the filename is omitted, the array of vectors is written\n"
01334                     "to <basename>.<variable_name>.aa.\n"
01335                     "\n"
01336                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01337                     "\n"
01338                     "Generic input: \n"
01339                     "   ArrayOfVector : Name of the workspace variable to write.\n"
01340                     "\n"
01341                     "Keywords: \n"
01342                     "   filename : Name of the output file.\n"
01343                     ),
01344         OUTPUT(),
01345         INPUT(),
01346         GOUTPUT(),
01347         GINPUT( ArrayOfVector_ ),
01348         KEYWORDS( "filename" ),
01349         TYPES(    String_t   )));
01350 
01351   md_data.push_back
01352     ( MdRecord
01353       ( NAME("ArrayOfVectorReadAscii"),
01354         DESCRIPTION(
01355                     "Reads an array of vectors from an ASCII file.\n"
01356                     "\n"
01357                     "The array of vectors is read from the file with the\n"
01358                     "specified name and stored in the given workspace\n"
01359                     "variable.\n"
01360                     "If the filename is omitted, the array of vectors is read\n"
01361                     "from <basename>.<variable_name>.aa.\n"
01362                     "\n"
01363                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01364                     "\n"
01365                     "Generic output: \n"
01366                     "   ArrayOfVector : Name of the workspace variable to read.\n"
01367                     "\n"
01368                     "Keywords: \n"
01369                     "   filename : Name of the input file.\n"
01370                     ),
01371         OUTPUT(),
01372         INPUT(),
01373         GOUTPUT( ArrayOfVector_ ),
01374         GINPUT(),
01375         KEYWORDS( "filename" ),
01376         TYPES(    String_t   )));
01377 
01378   md_data.push_back
01379     ( MdRecord
01380       ( NAME("ArrayOfVectorWriteBinary"),
01381         DESCRIPTION(
01382                     "Writes a vector array to a binary file.\n"
01383                     "\n"
01384                     "The filename can be specified or an empty String.\n"
01385                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01386                     "File is in HDF4 format.\n"
01387                     "\n"
01388                     "Generic input: \n"
01389                     "   ArrayOfVector : Name of the workspace variable to write.\n"
01390                     "\n"
01391                     "Keywords:\n"
01392                     "   filename : Name of the output file.\n"
01393                     ),
01394         OUTPUT(),
01395         INPUT(),
01396         GOUTPUT(),
01397         GINPUT( ArrayOfVector_ ),
01398         KEYWORDS( "filename" ),
01399         TYPES(    String_t   )));
01400 
01401   md_data.push_back
01402     ( MdRecord
01403       ( NAME("ArrayOfVectorReadBinary"),
01404         DESCRIPTION(
01405                     "Reads a vector array from a binary file.\n"
01406                     "\n"
01407                     "The filename can be specified or an empty String.\n"
01408                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01409                     "File is in HDF4 format.\n"
01410                     "\n"
01411                     "Generic output:  \n"
01412                     "   ArrayOfVector : Name of the workspace variable to read.\n"
01413                     "\n"
01414                     "Keywords:\n"
01415                     "   filename : Name of the input file.\n"
01416                     ),
01417         OUTPUT(),
01418         INPUT(),
01419         GOUTPUT( ArrayOfVector_ ),
01420         GINPUT(),
01421         KEYWORDS( "filename" ),
01422         TYPES(    String_t   )));
01423 
01424 
01425 
01426 
01427 
01428   md_data.push_back
01429     ( MdRecord
01430       ( NAME("ArrayOfMatrixWriteAscii"),
01431         DESCRIPTION(
01432                     "Writes an array of matrices to an ASCII file.\n"
01433                     "\n"
01434                     "The array of matrices of the given workspace variable\n"
01435                     "is written to the file with the specified name.\n"
01436                     "If the filename is omitted, the array of matrices is written\n"
01437                     "to <basename>.<variable_name>.aa.\n"
01438                     "\n"
01439                     "The format is as follows:\n"
01440                     "\n"
01441                     "# <comments>\n"
01442                     "<n_array_elements>\n"
01443                     "<n_rows> <n_columns>\n"
01444                     "<elements>\n"
01445                     "<n_rows> <n_columns>\n"
01446                     "<elements>\n"
01447                     "...\n"
01448                     "\n"
01449                     "Example:\n"
01450                     "# Generated by arts-0.0.16, Apr 29 2000, 17:38:44\n"
01451                     "2\n"
01452                     "3 4\n"
01453                     "xx xx xx xx\n"
01454                     "xx xx xx xx\n"
01455                     "xx xx xx xx\n"
01456                     "2 2\n"
01457                     "yy yy\n"
01458                     "yy yy"
01459                     "\n"
01460                     "Generic input: \n"
01461                     "   ArrayOfMatrix : Name of the workspace variable to write.\n"
01462                     "\n"
01463                     "Keywords: \n"
01464                     "   filename : Name of the output file.\n"
01465                     ),
01466         OUTPUT(),
01467         INPUT(),
01468         GOUTPUT(),
01469         GINPUT( ArrayOfMatrix_ ),
01470         KEYWORDS( "filename" ),
01471         TYPES(    String_t   )));
01472 
01473   md_data.push_back
01474     ( MdRecord
01475       ( NAME("ArrayOfMatrixReadAscii"),
01476         DESCRIPTION(
01477                     "Reads an array of matrices from an ASCII file.\n"
01478                     "\n"
01479                     "The array of matrices is read from the file with the\n"
01480                     "specified name and stored in the given workspace\n"
01481                     "variable.\n"
01482                     "If the filename is omitted, the array of matrices is read\n"
01483                     "from <basename>.<variable_name>.aa.\n"
01484                     "\n"
01485                     "See *ArrayOfMatrixWriteAscii* for file format.\n"
01486                     "\n"
01487                     "Generic output: \n"
01488                     "   ArrayOfMatrix : Name of the workspace variable to read.\n"
01489                     "\n"
01490                     "Keywords: \n"
01491                     "   filename : Name of the input file.\n"
01492                     ),
01493         OUTPUT(),
01494         INPUT(),
01495         GOUTPUT( ArrayOfMatrix_ ),
01496         GINPUT(),
01497         KEYWORDS( "filename" ),
01498         TYPES(    String_t   )));
01499 
01500   md_data.push_back
01501     ( MdRecord
01502       ( NAME("ArrayOfMatrixWriteBinary"),
01503         DESCRIPTION(
01504                     "Writes a matrix array to a binary file.\n"
01505                     "\n"
01506                     "The filename can be specified or an empty String.\n"
01507                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01508                     "File is in HDF4 format.\n"
01509                     "\n"
01510                     "Generic input: \n"
01511                     "   ArrayOfMatrix : Name of the workspace variable to write.\n"
01512                     "\n"
01513                     "Keywords:\n"
01514                     "   filename : Name of the output file.\n"
01515                     ),
01516         OUTPUT(),
01517         INPUT(),
01518         GOUTPUT(),
01519         GINPUT( ArrayOfMatrix_ ),
01520         KEYWORDS( "filename" ),
01521         TYPES(    String_t   )));
01522 
01523   md_data.push_back
01524     ( MdRecord
01525       ( NAME("ArrayOfMatrixReadBinary"),
01526         DESCRIPTION(
01527                     "Reads a matrix array from a binary file.\n"
01528                     "\n"
01529                     "The filename can be specified or an empty String.\n"
01530                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01531                     "File is in HDF4 format.\n"
01532                     "\n"
01533                     "Generic output: \n"
01534                     "   ArrayOfMatrix : Name of the workspace variable to read.\n"
01535                     "\n"
01536                     "Keywords:\n"
01537                     "   filename : Name of the input file.\n"
01538                     ),
01539         OUTPUT(),
01540         INPUT(),
01541         GOUTPUT( ArrayOfMatrix_ ),
01542         GINPUT(),
01543         KEYWORDS( "filename" ),
01544         TYPES(    String_t   )));
01545 
01546 
01547 
01548   md_data.push_back
01549     ( MdRecord
01550       ( NAME("StringSet"),
01551         DESCRIPTION("Sets a String to the given text String."),
01552         OUTPUT(),
01553         INPUT(),
01554         GOUTPUT( String_ ),
01555         GINPUT(),
01556         KEYWORDS( "text"   ),
01557         TYPES(    String_t )));
01558 
01559   md_data.push_back
01560     ( MdRecord
01561       ( NAME("StringWriteAscii"),
01562         DESCRIPTION(
01563                     "Writes a string to an ASCII file.\n"
01564                     "\n"
01565                     "The string of the given workspace variable\n"
01566                     "is written to the file with the specified name.\n"
01567                     "If the filename is omitted, the string is written\n"
01568                     "to <basename>.<variable_name>.aa.\n"
01569                     "\n"
01570                     "See *ArrayOfStringWriteAscii* for file format.\n"
01571                     "\n"
01572                     "Generic input: \n"
01573                     "   String : Name of the workspace variable to write.\n"
01574                     "\n"
01575                     "Keywords: \n"
01576                     "   filename : Name of the output file.\n"
01577                     ),
01578         OUTPUT(),
01579         INPUT(),
01580         GOUTPUT(),
01581         GINPUT( String_ ),
01582         KEYWORDS( "filename" ),
01583         TYPES(    String_t   )));
01584 
01585   md_data.push_back
01586     ( MdRecord
01587       ( NAME("StringReadAscii"),
01588         DESCRIPTION(
01589                     "Reads a string from an ASCII file.\n"
01590                     "\n"
01591                     "The string is read from the file with the\n"
01592                     "specified name and stored in the given workspace\n"
01593                     "variable.\n"
01594                     "If the filename is omitted, the string is read\n"
01595                     "from <basename>.<variable_name>.aa.\n"
01596                     "\n"
01597                     "See *ArrayOfStringWriteAscii* for file format.\n"
01598                     "\n"
01599                     "Generic output: \n"
01600                     "   String : Name of the workspace variable to read.\n"
01601                     "\n"
01602                     "Keywords: \n"
01603                     "   filename : Name of the input file.\n"
01604                     ),
01605         OUTPUT(),
01606         INPUT(),
01607         GOUTPUT( String_ ),
01608         GINPUT(),
01609         KEYWORDS( "filename" ),
01610         TYPES(    String_t   )));
01611 
01612   md_data.push_back
01613     ( MdRecord
01614       ( NAME("StringWriteBinary"),
01615         DESCRIPTION(
01616                     "Writes a String to a binary file.\n"
01617                     "\n"
01618                     "The filename can be specified or an empty String.\n"
01619                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01620                     "File is in HDF4 format.\n"
01621                     "\n"
01622                     "Generic input: \n"
01623                     "   String : Name of the workspace variable to write.\n"
01624                     "\n"
01625                     "Keywords:\n"
01626                     "   filename : Name of the output file.\n"
01627                     ),
01628         OUTPUT(),
01629         INPUT(),
01630         GOUTPUT(),
01631         GINPUT( String_ ),
01632         KEYWORDS( "filename" ),
01633         TYPES(    String_t   )));
01634 
01635   md_data.push_back
01636     ( MdRecord
01637       ( NAME("StringReadBinary"),
01638         DESCRIPTION(
01639                     "Reads a String from a binary file.\n"
01640                     "\n"
01641                     "The filename can be specified or an empty String.\n"
01642                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01643                     "File is in HDF4 format.\n"
01644                     "\n"
01645                     "Generic output: \n"
01646                     "   String : Name of the workspace variable to read.\n"
01647                     "\n"
01648                     "Keywords:\n"
01649                     "   filename : Name of the input file.\n"
01650                     ),
01651         OUTPUT(),
01652         INPUT(),
01653         GOUTPUT( String_ ),
01654         GINPUT(),
01655         KEYWORDS( "filename" ),
01656         TYPES(    String_t   )));
01657 
01658 
01659 
01660 
01661   md_data.push_back
01662     ( MdRecord
01663       ( NAME("ArrayOfStringSet"),
01664         DESCRIPTION("Sets a String array according the given text.\n"
01665                     "The format is text = [\"String1\",\"String2\",...]"),
01666         OUTPUT(),
01667         INPUT(),
01668         GOUTPUT( ArrayOfString_ ),
01669         GINPUT(),
01670         KEYWORDS( "text"         ),
01671         TYPES(    Array_String_t )));
01672 
01673   md_data.push_back
01674     ( MdRecord
01675       ( NAME("ArrayOfStringWriteAscii"),
01676         DESCRIPTION(
01677                     "Writes an array of strings to an ASCII file.\n"
01678                     "\n"
01679                     "The array of strings of the given workspace variable\n"
01680                     "is written to the file with the specified name.\n"
01681                     "If the filename is omitted, the string is written\n"
01682                     "to <basename>.<variable_name>.aa.\n"
01683                     "\n"
01684                     "The format is as follows:\n"
01685                     "\n"
01686                     "# <comments>\n"
01687                     "<n_Strings>\n"
01688                     "<String 1>\n"
01689                     "<String 2>\n"
01690                     "...\n"
01691                     "\n"
01692                     "Example:\n"
01693                     "# Generated by arts-0.0.16, Apr 29 2000, 17:38:44\n"
01694                     "2\n"
01695                     "A String\n"
01696                     "Another String\n"
01697                     "\n"
01698                     "Generic input: \n"
01699                     "   ArrayOfString : Name of the workspace variable to write.\n"
01700                     "\n"
01701                     "Keywords: \n"
01702                     "   filename : Name of the output file.\n"
01703                     ),
01704         OUTPUT(),
01705         INPUT(),
01706         GOUTPUT(),
01707         GINPUT( ArrayOfString_ ),
01708         KEYWORDS( "filename" ),
01709         TYPES(    String_t   )));
01710 
01711   md_data.push_back
01712     ( MdRecord
01713       ( NAME("ArrayOfStringReadAscii"),
01714         DESCRIPTION(
01715                     "Reads an array of strings from an ASCII file.\n"
01716                     "\n"
01717                     "The array of strings is read from the file with the\n"
01718                     "specified name and stored in the given workspace\n"
01719                     "variable.\n"
01720                     "If the filename is omitted, the string is read\n"
01721                     "from <basename>.<variable_name>.aa.\n"
01722                     "\n"
01723                     "See *ArrayOfStringWriteAscii* for file format.\n"
01724                     "\n"
01725                     "Generic output: \n"
01726                     "   ArrayOfString : Name of the workspace variable to read.\n"
01727                     "\n"
01728                     "Keywords: \n"
01729                     "   filename : Name of the input file.\n"
01730                     ),
01731         OUTPUT(),
01732         INPUT(),
01733         GOUTPUT( ArrayOfString_ ),
01734         GINPUT(),
01735         KEYWORDS( "filename" ),
01736         TYPES(    String_t   )));
01737 
01738   md_data.push_back
01739     ( MdRecord
01740       ( NAME("ArrayOfStringWriteBinary"),
01741         DESCRIPTION(
01742                     "Writes a String array to a binary file.\n"
01743                     "\n"
01744                     "The filename can be specified or an empty String.\n"
01745                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01746                     "File is in HDF4 format.\n"
01747                     "\n"
01748                     "Generic input: \n"
01749                     "   ArrayOfString : Name of the workspace variable to write.\n"
01750                     "\n"
01751                     "Keywords:\n"
01752                     "   filename : Name of the output file.\n"
01753                     ),
01754         OUTPUT(),
01755         INPUT(),
01756         GOUTPUT(),
01757         GINPUT( ArrayOfString_ ),
01758         KEYWORDS( "filename" ),
01759         TYPES(    String_t   )));
01760 
01761   md_data.push_back
01762     ( MdRecord
01763       ( NAME("ArrayOfStringReadBinary"),
01764         DESCRIPTION(
01765                     "Reads a String array from a binary file.\n"
01766                     "\n"
01767                     "The filename can be specified or an empty String.\n"
01768                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01769                     "File is in HDF4 format.\n"
01770                     "\n"
01771                     "Generic output: \n"
01772                     "   ArrayOfString : Name of the workspace variable to read.\n"
01773                     "\n"
01774                     "Keywords:\n"
01775                     "   filename : Name of the input file.\n"
01776                     ),
01777         OUTPUT(),
01778         INPUT(),
01779         GOUTPUT( ArrayOfString_ ),
01780         GINPUT(),
01781         KEYWORDS( "filename" ),
01782         TYPES(    String_t   )));
01783 
01784 
01785 
01786 md_data.push_back
01787     ( MdRecord
01788       ( NAME("TagGroupsSpeciesWriteAscii"),
01789         DESCRIPTION(
01790                     "Writes TagGroup Species to an ASCII file.\n"
01791                     "\n"
01792                     "The tags which are defined by *tgsDefine*\n"
01793                     "is written to the file with the specified name.\n"
01794                     "If the filename is omitted, the string is written\n"
01795                     "to <basename>.<variable_name>.aa.\n"
01796                     "\n"
01797                     "Generic input: \n"
01798                     "   tgs : The tags which are defined.\n"
01799                     "\n"
01800                     "Keywords: \n"
01801                     "   filename : Name of the output file.\n"
01802                     ),
01803         OUTPUT(),
01804         INPUT(),
01805         GOUTPUT(),
01806         GINPUT( TagGroups_ ),
01807         KEYWORDS( "filename" ),
01808         TYPES(    String_t   )));
01809 
01810 
01811 
01812 
01813   md_data.push_back
01814     ( MdRecord
01815       ( NAME("LosWriteBinary"),
01816         DESCRIPTION(
01817                     "Writes a LOS structure to a binary file.\n"
01818                     "\n"
01819                     "The filename can be specified or an empty String.\n"
01820                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01821                     "File is in HDF4 format.\n"
01822                     "\n"
01823                     "Generic input: \n"
01824                     "   LOS : Name of the workspace variable to write.\n"
01825                     "\n"
01826                     "Keywords:\n"
01827                     "   filename : Name of the output file.\n"
01828                     ),
01829         OUTPUT(),
01830         INPUT(),
01831         GOUTPUT(),
01832         GINPUT( Los_ ),
01833         KEYWORDS( "filename" ),
01834         TYPES(    String_t   )));
01835 
01836   md_data.push_back
01837     ( MdRecord
01838       ( NAME("LosReadBinary"),
01839         DESCRIPTION(
01840                     "Reads a LOS structure from a binary file.\n"
01841                     "\n"
01842                     "The filename can be specified or an empty String.\n"
01843                     "If empty, it is set to <basename>.<variable_name>.ab.\n"
01844                     "File is in HDF4 format.\n"
01845                     "\n"
01846                     "Generic output: \n"
01847                     "   LOS : Name of the workspace variable to read.\n"
01848                     "\n"
01849                     "Keywords:\n"
01850                     "   filename : Name of the input file.\n"
01851                     ),
01852         OUTPUT(),
01853         INPUT(),
01854         GOUTPUT( Los_ ),
01855         GINPUT(),
01856         KEYWORDS( "filename" ),
01857         TYPES(    String_t   )));
01858 
01859 
01860 
01861 
01862 
01863 
01864 
01865 
01866 
01867   md_data.push_back
01868     ( MdRecord
01869       ( NAME("lines_per_tgSetEmpty"),
01870         DESCRIPTION
01871         (
01872          "Sets lines_per_tg to empty line lists.\n"
01873          "\n"
01874          "You can use this method to set lines per tag if you do not reall want\n"
01875          "to compute line spectra. Formally, absCalc will still require\n"
01876          "lines_per_tg to be set.\n"
01877          ),
01878         OUTPUT(   lines_per_tg_      ),
01879         INPUT(    tgs_        ),
01880         GOUTPUT(),
01881         GINPUT(),
01882         KEYWORDS(  ),
01883         TYPES(    )));
01884   
01885   md_data.push_back
01886     ( MdRecord
01887       ( NAME("lines_per_tgReadFromCatalogues"),
01888         DESCRIPTION(
01889                     "This method can read lines from different line \n"
01890                     "catalogues.\n"
01891                     "\n"
01892                     "For each tag group, you can specify which catalogue\n"
01893                     "to use. Because the method creates lines_per_tg directly,\n"
01894                     "it replaces for example thefollowing two method calls:\n"
01895                     "  - linesReadFromHitran\n"
01896                     "  - lines_per_tgCreateFromLines\n"
01897                     "   This method needs as input WSVs the list of tag \n"
01898                     "groups. Keyword parameters must specify the names of\n"
01899                     "the catalogue files to use and the matching formats.\n"
01900                     "Names can be anything, formats can currently be \n"
01901                     "HITRAN96 (for HITRAN 1986-2001 databases), HITRAN04 \n"
01902                     "(for HITRAN 2004 database), MYTRAN2, JPL, or ARTS. \n"
01903                     "Furthermore, keyword parameters have to specify minimum \n"
01904                     "and maximum frequency for each tag group. To safe typing, \n"
01905                     "if there are less elements in the keyword parameters than \n"
01906                     "there are tag groups, the last parameters are applied to \n"
01907                     "all following tag groups.\n"
01908                     "\n"
01909                     "Example usage:\n"
01910                     "\n"
01911                     "lines_per_tgReadFromCatalogues{\n"
01912                     "  filenames = [ \"../data/cat1.dat\", \"../data/cat2.dat\" ]\n"
01913                     "  formats   = [ \"MYTRAN2\",          \"HITRAN96\"         ]\n"
01914                     "  fmin      = [ 0,                  0                  ]\n"
01915                     "  fmax      = [ 2000e9,             100e9              ]\n"
01916                     "}\n"
01917                     "   In this example, lines for the first tag group will\n"
01918                     "be taken from cat1, lines for all other tag groups \n"
01919                     "will be taken from cat2.\n"
01920                     "   This methods allows you for example to use a \n"
01921                     "special line file just for water vapor lines. This\n"
01922                     "could be the  improved water vapor line file \n"
01923                     "generated by Thomas Kuhn.\n"
01924                     "   Catalogues are only read once, even if several tag\n"
01925                     "groups have the same catalogue. However, in that case\n"
01926                     "the frequency ranges MUST be the same. (If you want \n"
01927                     "to do fine-tuning of the frequency ranges, you can do \n"
01928                     "this inside the tag definitions, e.g., \"H2O-*-0-2000e9\".)\n"
01929                     "   This function uses the various reading routines\n"
01930                     "(linesReadFromHitran, etc.), as well as\n"
01931                     "lines_per_tgCreateFromLines.\n"
01932                     "\n"
01933                     "Keywords: \n"
01934                     "   filenames = Name (and path) of the catalogue files.\n"
01935                     "   formats   = allowed formats are HITRAN96,MYTRAN2,JPL,ARTS \n"
01936                     "   fmin      = Minimum frequency for lines to read in Hz.\n"
01937                     "   fmax      = Maximum frequency for lines to read in Hz.\n"),
01938         OUTPUT(   lines_per_tg_      ),
01939         INPUT(    tgs_        ),
01940         GOUTPUT(),
01941         GINPUT(),
01942         KEYWORDS( "filenames",    "formats",      "fmin",   "fmax" ),
01943         TYPES(    Array_String_t, Array_String_t, Vector_t, Vector_t)));
01944   
01945   md_data.push_back
01946     ( MdRecord
01947       ( NAME("linesReadFromHitran"),
01948         DESCRIPTION(
01949                     "Read all the lines from a HITRAN 1986-2001 catalogue file in\n"
01950                     "the given frequency range. Otherwise a runtime error will be\n"
01951                     "thrown. For HITRAN 2004 line data use the workspace method \n"
01952                     "linesReadFromHitran. \n"
01953                     "\n"
01954                     "Please note that all lines must correspond to the legal\n"
01955                     "species / isotope combinations and that the line data \n"
01956                     "file must be sorted by increasing frequency\n"
01957                     "\n"
01958                     "Keywords: \n"
01959                     "   filename = Name (and path) of the catalogue file.\n"
01960                     "   fmin     = Minimum frequency for lines to read in Hz.\n"
01961                     "   fmax     = Maximum frequency for lines to read in Hz."),
01962         OUTPUT(   lines_   ),
01963         INPUT(),
01964         GOUTPUT(),
01965         GINPUT(),
01966         KEYWORDS( "filename",  "fmin",    "fmax"),
01967         TYPES(    String_t,    Numeric_t, Numeric_t)));
01968   
01969   md_data.push_back
01970     ( MdRecord
01971       ( NAME("linesReadFromHitran2004"),
01972         DESCRIPTION(
01973         "Read all the lines from a HITRAN 2004 catalogue file in the \n"
01974         "given frequency range. Otherwise a runtime error is thrown. \n"
01975         "\n"
01976         "Records of molecules unknown to ARTS are ignored but a \n"
01977         "warning is issued. In particular this happens to CH3OH \n"
01978         "(HITRAN molecule number 39) because there is no total internal \n"
01979         "partition sum available. \n"
01980         "\n"
01981         "The database must be sorted by increasing frequency!\n"
01982                     "\n"
01983                     "For data in the Hitran 1986-2001 format use the workspace \n"
01984                     "method: linesReadFromHitran\n"
01985                     "\n"
01986                     "Keywords: \n"
01987                     "   filename = Name (and path) of the catalogue file.\n"
01988                     "   fmin     = Minimum frequency for lines to read in Hz.\n"
01989                     "   fmax     = Maximum frequency for lines to read in Hz."),
01990         OUTPUT(   lines_   ),
01991         INPUT(),
01992         GOUTPUT(),
01993         GINPUT(),
01994         KEYWORDS( "filename",  "fmin",    "fmax"),
01995         TYPES(    String_t,    Numeric_t, Numeric_t)));
01996 
01997   md_data.push_back
01998     ( MdRecord
01999       ( NAME("linesReadFromMytran2"),
02000         DESCRIPTION(
02001                     "Read all the lines from a MYTRAN2 catalogue file in the \n"
02002                     "given frequency range. Otherwise a runtime error will be\n"
02003                     "thrown\n"
02004                     "\n"
02005                     "Please note that all lines must correspond\n"
02006                     "to the legal species / isotope combinations\n"
02007                     "\n"
02008                     "Keywords: \n"
02009                     "   filename = Name (and path) of the catalogue file.\n"
02010                     "   fmin     = Minimum frequency for lines to read in Hz.\n"
02011                     "   fmax     = Maximum frequency for lines to read in Hz."),
02012         OUTPUT(   lines_   ),
02013         INPUT(),
02014         GOUTPUT(),
02015         GINPUT(),
02016         KEYWORDS( "filename",  "fmin",    "fmax"),
02017         TYPES(    String_t,    Numeric_t, Numeric_t)));
02018   
02019   md_data.push_back
02020     ( MdRecord
02021       ( NAME("linesReadFromJpl"),
02022         DESCRIPTION(
02023                     "Read all the lines from a JPL catalogue file in the \n"
02024                     "given frequency range. Otherwise a runtime error will be\n"
02025                     "thrown\n"
02026                     "\n"
02027                     "Please note that all lines must correspond\n"
02028                     "to the legal species / isotope combinations.\n"
02029                     "\n"
02030                     "Keywords: \n"
02031                     "   filename = Name (and path) of the catalogue file.\n"
02032                     "   fmin     = Minimum frequency for lines to read in Hz.\n"
02033                     "   fmax     = Maximum frequency for lines to read in Hz."),
02034         OUTPUT(   lines_   ),
02035         INPUT(),
02036         GOUTPUT(),
02037         GINPUT(),
02038         KEYWORDS( "filename",  "fmin",    "fmax"),
02039         TYPES(    String_t,    Numeric_t, Numeric_t)));
02040   
02041   md_data.push_back
02042     ( MdRecord
02043       ( NAME("linesReadFromArts"),
02044         DESCRIPTION(
02045                     "Read all the lines from an Arts catalogue file in the \n"
02046                     "given frequency range. Otherwise a runtime error will be\n"
02047                     "thrown \n"
02048                     "\n"
02049                     "Please note that all lines must correspond\n"
02050                     "to the legal species / isotope combinations\n"
02051                     "\n"
02052                     "Keywords: \n"
02053                     "   filename = Name (and path) of the catalogue file.\n"
02054                     "   fmin     = Minimum frequency for lines to read in Hz.\n"
02055                     "   fmax     = Maximum frequency for lines to read in Hz."),
02056         OUTPUT(   lines_   ),
02057         INPUT(),
02058         GOUTPUT(),
02059         GINPUT(),
02060         KEYWORDS( "filename",  "fmin",    "fmax"),
02061         TYPES(    String_t,    Numeric_t, Numeric_t)));
02062   
02063   
02064   md_data.push_back
02065     ( MdRecord
02066       ( NAME("linesElowToJoule"),
02067         DESCRIPTION(
02068                     "Just a little helper to convert the lower state energy from cm^-1\n"
02069                     "(ARTSCAT-2) to Joule (ARTSCAT-3). This should be removed soon\n"),
02070         OUTPUT(   lines_   ),
02071         INPUT(),
02072         GOUTPUT(),
02073         GINPUT(),
02074         KEYWORDS( ),
02075         TYPES(    )));
02076       
02077   md_data.push_back
02078     ( MdRecord
02079       ( NAME("lines_per_tgCreateFromLines"),
02080         DESCRIPTION(
02081                     "Split lines up into the different tag groups.\n"
02082                     "\n"
02083                     "The tag groups are tested in the order in which they are\n" 
02084                     "specified in the controlfile. The lines are assigned to \n"
02085                     "the tag groups in the order as the groups  are specified.\n"
02086                     "That means if you do [\"O3-666\",\"O3\"],the last group O3 \n"
02087                     "gets assigned all the O3 lines that do not fit in the first group."),
02088         OUTPUT(   lines_per_tg_      ),
02089         INPUT(    lines_, tgs_ ),
02090         GOUTPUT(),
02091         GINPUT(),
02092         KEYWORDS(),
02093         TYPES()));
02094   
02095   md_data.push_back
02096     ( MdRecord
02097       ( NAME("lines_per_tgAddMirrorLines"),
02098         DESCRIPTION(
02099                     "Adds mirror lines at negative frequencies to the *lines_per_tg*.\n"
02100                     "\n"
02101                     "For each line at frequency +f in *lines_per_tg* a corresponding\n"
02102                     "entry at frequency -f is added to *lines_per_tg*.The mirror \n"
02103                     "lines are appended to the line lists after the original lines."),
02104         OUTPUT(   lines_per_tg_      ),
02105         INPUT(    lines_per_tg_      ),
02106         GOUTPUT(),
02107         GINPUT(),
02108         KEYWORDS(),
02109         TYPES()));
02110   
02111   md_data.push_back
02112     ( MdRecord
02113       ( NAME("lines_per_tgCompact"),
02114         DESCRIPTION(
02115                     "Removes all lines outside the defined lineshape cutoff frequency\n"
02116                     "from the *lines_per_tg*. This can save computation time.\n"
02117                     "It should be particularly useful to call this method after\n"
02118                     "*lines_per_tgAddMirrorLines*."),
02119         OUTPUT(   lines_per_tg_      ),
02120         INPUT(    lines_per_tg_, lineshape_, f_mono_  ),
02121         GOUTPUT(),
02122         GINPUT(),
02123         KEYWORDS(),
02124         TYPES()));
02125   
02126   md_data.push_back
02127     ( MdRecord
02128       ( NAME("linesWriteAscii"),
02129         DESCRIPTION(
02130                     "Writes the workspace variable *lines* to an ASCII file.\n"
02131                     "\n"
02132                     "The content of the workspace variable 'lines`\n"
02133                     "The content of the workspace variable *lines*\n"
02134                     "is written in ARTS line format to the file with\n"
02135                     "the specified name. If the filename is omitted, the\n"
02136                     "lines are written to <basename>.lines.aa.\n"
02137                     "\n"
02138                     "Keywords: \n"
02139                     "   filename : Name of the output file.\n"
02140                     ), 
02141         OUTPUT(),
02142         INPUT( lines_ ),
02143         GOUTPUT(),
02144         GINPUT(),
02145         KEYWORDS( "filename" ),
02146         TYPES(    String_t   )));
02147   
02148   md_data.push_back
02149     ( MdRecord
02150       ( NAME("lines_per_tgWriteAscii"),
02151         DESCRIPTION(
02152                     "Writes the workspace variable *lines_per_tg* to an ASCII file.\n"
02153                     "\n"
02154                     "The content of the workspace variable *lines_per_tg*\n"
02155                     "is written in ARTS line format to the file with\n"
02156                     "the specified name. If the filename is omitted, the\n"
02157                     "lines are written to <basename>.lines_per_tg.aa.\n"
02158                     "\n"
02159                     "The array dimension is handled in a similar way as by the\n"
02160                     "array of vector and matrix output functions:\n"
02161                     "First an integer stating the number of tag groups.\n"
02162                     "Then an integer specifying the number of lines for the\n"
02163                     "first group. Then the other groups in similar fashion."
02164                     "\n"
02165                     "Keywords: \n"
02166                     "   filename : Name of the output file.\n"
02167                     ),
02168         OUTPUT(),
02169         INPUT( lines_per_tg_ ),
02170         GOUTPUT(),
02171         GINPUT(),
02172         KEYWORDS( "filename" ),
02173         TYPES(    String_t   )));
02174   
02175   md_data.push_back
02176     ( MdRecord
02177       ( NAME("tgsDefine"),
02178         DESCRIPTION(
02179                     "Set up the list of tag groups.\n"
02180                     "\n"
02181                     "The workspace variable *tgs* contains several tag groups. Each \n"
02182                     "tag group contain one or more tags. This method converts \n"
02183                     "description of tag groups  given in the keyword to the internal \n"
02184                     "representation *tgs*. A tag group selects spectral features which \n"
02185                     "belong to the same species. \n"
02186                     "   A tag group can contain a mixture of general and special \n"
02187                     "tags.  All the continuum tags belong to the special tags and \n"
02188                     "the rest come under the general tags.\n"
02189                     "   A general tag is defined in terms of the name of the species,\n"
02190                     "isotope and a range of frequencies. Species are named after the \n"
02191                     "standard chemical names,e.g., \"O3\".  Isotopes are given by the \n"
02192                     "last digit of the atomic weight, i.e., \"O3-668\" for the \n"
02193                     "asymmetric ozone molecule including an oxygen 18 atom.  Groups\n"
02194                     "of transitions are specified by giving a lower and upper limit \n"
02195                     "of a frequency range,\"O3-666-500e9-501e9\".Moreover the symbol\n"
02196                     "'*' acts as a wild card. Furthermore, frequency range or frequency\n"
02197                     "range and isotope may be omitted.\n"
02198                     "Example for some tag groups containing only general tags:\n"
02199                     "tags = [\"O3-666-500e9-501e9, O3-686\",\"O3\"]\n"
02200                     "The first tag group consist of all O3-666 lines between 500 and\n"
02201                     "501 GHz plus all O3-686 lines.  The second tag group will contain\n"
02202                     "all remaining O3 transitions.\n"
02203                     "\n"
02204                     "Keywords:\n"
02205                     "   tags : Specify one String for each tag group that you want to create.\n"
02206                     "   Inside the String, separate the tags by comma (plus optional blanks).\n"
02207                     "   Example:\n"
02208                     "   tag = [\"O3-686\",\"H2O\"]"),
02209         OUTPUT( tgs_ ),
02210         INPUT(),
02211         GOUTPUT(),
02212         GINPUT(),
02213         KEYWORDS( "tags" ),
02214         TYPES(    Array_String_t   )));
02215   
02216   md_data.push_back
02217     ( MdRecord
02218       ( NAME("tgsDefineAllInScenario"),
02219         DESCRIPTION
02220         (
02221          "Define one tag group for each species known to ARTS and included in an\n"
02222          "atmospheric scenario.\n"
02223          "\n"
02224          "You can use this as an alternative to tgsDefine if you want to make an\n"
02225          "absorption calculation that is as complete as possible. The method\n"
02226          "goes through all defined species and tries to open the VMR file. If\n"
02227          "this works the tag is included, otherwise it is skipped.\n"
02228          "\n"
02229          "Keywords:\n"
02230          "   basename : The name and path of a particular atmospheric scenario.\n"
02231          "              For example: /pool/lookup2/arts-data/atmosphere/fascod/tropical"
02232            ),
02233         OUTPUT( tgs_ ),
02234         INPUT(),
02235         GOUTPUT(),
02236         GINPUT(),
02237         KEYWORDS( "basename" ),
02238         TYPES(    String_t   )));
02239 
02240   md_data.push_back
02241     ( MdRecord
02242       ( NAME("lineshapeDefine"),
02243         DESCRIPTION(
02244           "Sets the lineshape for all calculated lines.\n"
02245           "\n"
02246           "   A general lineshape profile is specified, according to a given  \n"
02247           "approximation. Alongside a normalization factor is to be set - a \n"
02248           "multiplicative forefactor through which the profile can be \n"
02249           "modified. This factor is just the 0th or 1st, or 2nd power of the\n"
02250           "ratio between the frequency of calculation f and the center frequency\n"
02251           "for a specific line f0. A cutoff frequency must also be specified in\n"
02252           "order to restrict the calculation within a desired frequency region or\n"
02253           "not, when there's no such region.\n"
02254           "   The general lineshape profile is given by the keyword shape,\n"
02255           "while the normalization factor and the cutoff frequency by\n"
02256           "normalizationfactor and cutoff respectively.\n"
02257           "\n"
02258           "   The available values for these keywords are given below.\n"
02259           "shape - \"no_shape\" : no specified shape\n"
02260           "        \"Doppler\" : Doppler lineshape\n"
02261           "        \"Lorentz\" : Lorentz lineshape\n"
02262           "        \"Voigt_Kuntz3\" : Kuntz approximation to the Voigt profile,\n"
02263           "                         accuracy > 2x10^(-3)\n"
02264           "        \"Voigt_Kuntz4\" : Kuntz approximation to the Voigt profile,\n"
02265           "                         accuracy > 2x10^(-4)\n"
02266           "        \"Voigt_Kuntz6\" : Kuntz approximation to the Voigt profile,\n"
02267           "                         accuracy > 2x10^(-6)\n"   
02268           "        \"Voigt_Drayson\" : Drayson approximation to the Voigt profile \n"
02269           "        \"Rosenkranz_Voigt_Drayson\" : Rosenkrantz oxygen absortion with overlap correction\n" 
02270           "                                     on the basis of Drayson routine\n"                                    
02271           "        \"Rosenkranz_Voigt_Kuntz6\" : Rosenkrantz oxygen absortion with overlap correction\n"
02272           "                                    on the basis of Kuntz routine, accuracy > 2x10^(-6)\n"
02273           "        \"CO2_Lorentz\" : Lorentz multiplicated with Cousin's chi factors\n"
02274           "        \"CO2_Drayson\" : Drayson multiplicated with Cousin's chi factors\n"
02275           "\n"
02276           "normalizationfactor - \"no_norm\": 1\n"
02277           "                      \"linear\": f/f0\n" 
02278           "                      \"quadratic\": (f/f0)^2.\n"
02279           "                      \"VVH\": (f*tanh(h*f/(2*k*T))) / (f0*tanh(h*f0/(2*k*T))).\n"
02280           "\n"
02281           "cutoff - \" -1\" : no cutoff\n"
02282           "         \"Number\": positive cutoff frequency in Hz.\n"
02283           "\n"
02284           "Example usage:\n"
02285           "shape=[\"Lorentz\"]\n"
02286           "normalizationfactor=[\"linear\"]\n"
02287           "cutoff= [650e9]"
02288           "\n"
02289           "Keywords:\n"
02290           "   shape               : The general profile according to an approximation.\n"
02291           "   normalizationfactor : The multiplicative forefactor for the general profile.\n"
02292           "   cutoff              : The frequency at which a cutoff can be made.\n"),
02293         OUTPUT( lineshape_ ),
02294         INPUT( tgs_ ),
02295         GOUTPUT(),
02296         GINPUT(),
02297         KEYWORDS(  "shape",    "normalizationfactor",  "cutoff" ),
02298         TYPES(     String_t,        String_t,         Numeric_t )));
02299 
02300   md_data.push_back
02301     ( MdRecord
02302       ( NAME("lineshape_per_tgDefine"),
02303         DESCRIPTION(
02304           "Sets the lineshape per tag group for all calculated lines.\n\n"
02305           "\n" 
02306           "   A general lineshape profile is specified, according to a given  \n"
02307           "approximation for each tag group. Alongside a normalization factor\n" 
02308           "is to be set also for each tag group - a multiplicative forefactor through\n"
02309           "which the profile can be modified. This factor is just the 0th or 1st,\n"
02310           "or 2nd power of the ratio between the frequency of calculation f and\n"
02311           "the center frequency for a specific line f0. A cutoff frequency must also be\n"
02312           "specified for each of the tags in  order to restrict the calculation within\n" 
02313           "a desired region or not, when there's no such region.\n"
02314           "   The general lineshape profile is given by the keyword shape,\n"
02315           "while the normalization factor and the cutoff frequency by\n"
02316           "normalizationfactor and cutoff respectively.\n"
02317           "\n"
02318           "   The available values for these keywords are given below.\n"
02319           "shape - \"no_shape\" : no specified shape\n"
02320           "        \"Doppler\" : Doppler lineshape\n"
02321           "        \"Lorentz\" : Lorentz lineshape\n"
02322           "        \"Voigt_Kuntz3\" : Kuntz approximation to the Voigt profile,\n"
02323           "                        accuracy > 2x10^(-3)\n"
02324           "        \"Voigt_Kuntz4\" : Kuntz approximation to the Voigt profile,\n"
02325           "                         accuracy > 2x10^(-4)\n"
02326           "        \"Voigt_Kuntz6\" : Kuntz approximation to the Voigt profile,\n"
02327           "                         accuracy > 2x10^(-6)\n"   
02328           "        \"Voigt_Drayson\" : Drayson approximation to the Voigt profile \n"
02329           "        \"Rosenkranz_Voigt_Drayson\" : Rosenkrantz oxygen absortion with overlap correction\n" 
02330           "                                     on the basis of Drayson routine\n"                                    
02331           "        \"Rosenkranz_Voigt_Kuntz6\" : Rosenkrantz oxygen absortion with overlap correction\n"
02332           "                                    on the basis of Kuntz routine, accuracy > 2x10^(-6)\n"
02333           "normalizationfactor - \"no_norm\": 1\n"
02334           "                      \"linear\": f/f0\n" 
02335           "                      \"quadratic\": (f/f0)^2.\n"
02336           "cutoff - \" -1\" : no cutoff\n"
02337           "           \"Number\": positive cutoff frequency in Hz.\n"
02338           "\n"
02339           "Example usage:\n"
02340           "shape = [\"Lorentz\",\"Voigt_Kuntz6\"] \n"
02341           "normalizationfactor= [\"linear\", \"quadratic\"] \n"
02342           "cutoff = [ 650e9, -1 ]"
02343           "\n"
02344           "Keywords:\n"
02345           "   shape               : The general profile according to an approximation.\n"
02346           "   normalizationfactor : The multiplicative forefactor for the general profile.\n"
02347           "   cutoff              : The frequency at which a cutoff can be made.\n"),
02348         OUTPUT( lineshape_ ),
02349         INPUT( tgs_ ),
02350         GOUTPUT(),
02351         GINPUT(),
02352         KEYWORDS(  "shape",           "normalizationfactor",    "cutoff" ),
02353         TYPES(   Array_String_t,         Array_String_t,        Vector_t )));
02354 
02355 
02356 
02357 
02358   md_data.push_back
02359     ( MdRecord
02360       ( NAME("cont_descriptionInit"),
02361         DESCRIPTION
02362         (
02363          "Initializes the two workspace variables for the continuum description,\n"
02364          "*cont_description_names* and *cont_description_parameters*.\n"
02365          " \n"
02366          "This method does not really do anything, except setting the two\n"
02367          "variables to empty Arrays. It is just necessary because the method\n"
02368          "*cont_descriptionAppend* wants to append to the variables.\n"
02369          "   Formally, the continuum description workspace variables are required\n"
02370          "by the absorption calculation methods (e.g., *absCalc*). Therefore you\n"
02371          "always have to call at least *cont_descriptionInit*, even if you do\n"
02372          "not want to use any continua."
02373          ),
02374         OUTPUT( cont_description_names_, 
02375                 cont_description_models_,
02376                 cont_description_parameters_ ),
02377         INPUT(),
02378         GOUTPUT(),
02379         GINPUT(),
02380         KEYWORDS(),
02381         TYPES()));
02382 
02383   md_data.push_back
02384     ( MdRecord
02385       ( NAME("cont_descriptionAppend"),
02386         DESCRIPTION
02387         (
02388          "Appends the description of a continuum model or a complete absorption\n"
02389          "model to *cont_description_names* and *cont_description_parameters*.\n"
02390          "\n"
02391          "See online documentation for *cont_description_names* for a list of\n"
02392          "allowed models and for information what parameters they require. See\n"
02393          "file cont.arts in the doc/examples directory for usage examples and\n"
02394          "default parameters for the various models. \n"
02395          "\n"
02396          "Keywords:\n"
02397          "   name       : The name of a continuum model. Must match one of the models\n"
02398          "                implemented in ARTS. \n"
02399          "   option     : give here the option of this continuum/full model.\n"
02400          "   parameters : A Vector containing the required number of parameters\n"
02401          "                for the model given. The meaning of the parameters and\n"
02402          "                how many parameters are required depends on the model.\n"
02403          ),
02404         OUTPUT( cont_description_names_, 
02405                 cont_description_models_,
02406                 cont_description_parameters_ ),
02407         INPUT(  cont_description_names_, 
02408                 cont_description_models_,
02409                 cont_description_parameters_),
02410         GOUTPUT(),
02411         GINPUT(),
02412         KEYWORDS( "tagname",  "model",   "userparameters" ),
02413         TYPES(    String_t,   String_t,   Vector_t         )));
02414 
02415 
02416 
02417 
02418   md_data.push_back
02419     ( MdRecord
02420       ( NAME("raw_vmrsReadFromFiles"),
02421         DESCRIPTION(
02422           "Reads the individual VMR profile for each TAGS from file.\n"
02423           "\n"
02424           "Using this function one can read VMRs of specific TAGS from\n"
02425           "explicitly specified files and the remaing from a scenario.\n"
02426           "The filenames and the base name of atmospheric scenario\n"
02427           "should be specified as keywords. One file name must\n"
02428           "be specified for each tag group(each element of *tgs*).\n"
02429           "The name may include a path.\n"
02430           "\n"
02431           "Keywords:\n"
02432           "   seltags   : Must be a sub group of tags which should be read from files.\n"
02433           "   filenames : Names of the files containing VMR profiles of seltags.\n"
02434           "   basename  : The name of a particular atmospheric scenario.\n"
02435           "               See *raw_vmrsReadFromScenario* for details. Remaining\n"
02436           "               VMRs will be read from the scenario.\n"
02437           "\n"
02438           ),
02439         OUTPUT(   raw_vmrs_         ),
02440         INPUT(    tgs_                 ),
02441         GOUTPUT(                       ),
02442         GINPUT(                        ),
02443         KEYWORDS( "seltags",       "filenames",    "basename"),
02444         TYPES(    Array_String_t,  Array_String_t, String_t)));
02445 
02446   md_data.push_back
02447     ( MdRecord
02448       ( NAME("raw_vmrsReadFromScenario"),
02449         DESCRIPTION(
02450           "Reads the individual VMR profile for each tag group from a standard\n"
02451           "atmospheric scenario.\n" 
02452           "\n"
02453           "Five different atmospheric scenarios are available in arts data:\n"
02454           "tropical, midlatitude-summer, midlatitude-winter, subartic-summer\n"
02455           "and subartic-winter.\n"
02456           "\n"
02457           "   Files in the scenarios look like this: tropical.H2O.aa\n"
02458           "\n"
02459           "   The basename must include the path, i.e., the files can be anywhere,\n"
02460           "but they must be all in the same directory.\n"
02461           "   The profile is chosen by the species name. If you have more than one\n"
02462           "tag group for the same species, the same profile will be used.\n"
02463           "\n"
02464           "Keywords:\n"
02465           "   basename :The name and path of a particular atmospheric scenario.\n"
02466           "   For example:\n"
02467           "   /pool/lookup2/arts-data/atmosphere/fascod/tropical\n"
02468           "\n"
02469           ),
02470         OUTPUT(   raw_vmrs_    ),
02471         INPUT(    tgs_                 ),
02472         GOUTPUT(                       ),
02473         GINPUT(                        ),
02474         KEYWORDS( "basename"           ),
02475         TYPES(    String_t             )));
02476 
02477   md_data.push_back
02478     ( MdRecord
02479       ( NAME("AtmFromRaw"),
02480         DESCRIPTION(
02481           "Interpolates temperature, altitude, and VMRs to the pressure grid\n"
02482           "given by p_abs.\n" 
02483           "\n"
02484           "The altitude is not used by the absorption routines,\n"
02485           "but later on by the RT routines.\n"
02486           "\n"
02487           "Interpolations used: \n"
02488           "\n"
02489           "Temperature      : Linear interpolation in ln(p)\n"
02490           "Altitude         : Linear interpolation in ln(p)\n"
02491           "VMRs             : Linear interpolation in ln(p)\n"
02492           "Cloud Parameters : Linear interpolation in ln(p)\n"
02493           "\n"
02494           ),
02495         OUTPUT(   t_abs_    , z_abs_   , vmrs_           ),
02496         INPUT(    tgs_, p_abs_    , raw_ptz_ , raw_vmrs_ ),
02497         GOUTPUT(                                         ),         
02498         GINPUT(                                          ),
02499         KEYWORDS(                                        ),
02500         TYPES(                                           )));
02501 
02502   md_data.push_back
02503     ( MdRecord
02504       ( NAME("WaterVaporSaturationInClouds"),
02505         DESCRIPTION(
02506           "Calculates the water vapor saturation volume mixing ratio (VMR) in the\n"
02507           "vertical range where liquid or ice clouds are in the atmosphere.\n"
02508           "At the pressure/altitude grid points where the liquid water content (LWC)\n"
02509           "or ice water content (IWC) of the clouds (tags 'liquidcloud' and 'icecloud')\n"
02510           "is larger than zero the H2O-VMR is set to liquid water/ice saturation VMR.\n"
02511           "The saturation pressure is calculated according to Goff-Gratch equations.\n"
02512           ),
02513         OUTPUT(   vmrs_ , p_abs_                         ),
02514         INPUT(    vmrs_ , p_abs_ , t_abs_ , tgs_         ),
02515         GOUTPUT(                                         ),         
02516         GINPUT(                                          ),
02517         KEYWORDS(                                        ),
02518         TYPES(                                           )));
02519 
02520   md_data.push_back
02521     ( MdRecord
02522       ( NAME("vmrsScale"),
02523         DESCRIPTION(
02524           "Scales the vmr input of the tgs given in scaltgs by the\n"
02525           "factors given in scalfac.\n"
02526           "\n"
02527           "Keywords:\n"
02528           "   scaltgs : subgroup of tags which has to be scaled.\n"
02529           "   scalfac : the factor with which vmr to be scaled.\n"
02530           "\n"
02531           ),
02532         OUTPUT( vmrs_ ),
02533         INPUT(  tgs_, vmrs_  ),
02534         GOUTPUT(),
02535         GINPUT(),
02536         KEYWORDS( "scaltgs", "scalfac"),
02537         TYPES( Array_String_t, Vector_t)));
02538 
02539   md_data.push_back
02540     ( MdRecord
02541       ( NAME("h2o_absSet"),
02542         DESCRIPTION(
02543           "Sets h2o_abs to the profile of the first tag group containing\n"
02544           "water.\n" 
02545           "\n"
02546           "This is necessary, because for example *absCalc* requires h2o_abs\n"
02547           "to contain the water vapour profile(the reason for this is the\n"
02548           "calculation of oxygen line brodening requires water vapour profile).\n"
02549           "Then this function can be used to copy the profile of the first tag\n"
02550           "group of water.\n"
02551           "\n"
02552           ),
02553         OUTPUT( h2o_abs_ ),
02554         INPUT(  tgs_, vmrs_  ),
02555         GOUTPUT(),
02556         GINPUT(),
02557         KEYWORDS(),
02558         TYPES()));
02559 
02560   md_data.push_back
02561     ( MdRecord
02562       ( NAME("n2_absSet"),
02563         DESCRIPTION(
02564           "Sets n2_abs to the profile of the first tag group containing\n"
02565           "molecular nitrogen. See *h2o_absSet* for more details.\n"
02566           "\n"
02567           ),
02568         OUTPUT(     n2_abs_ ),
02569         INPUT(  tgs_, vmrs_  ),
02570         GOUTPUT(),
02571         GINPUT(),
02572         KEYWORDS(),
02573         TYPES()));
02574 
02575   md_data.push_back
02576     ( MdRecord
02577       ( NAME("hseSet"),
02578         DESCRIPTION(
02579           "Sets the vector of parameters for calculation of hydrostatic \n"
02580           "equilibrium (*hse*). The on/off flag is set to 1. \n"
02581           "\n"
02582           "Type \"arts -d hse\" for more information. \n"
02583           "\n"
02584           "Keywords \n"
02585           "  pref  : Pressure of the reference point. \n"
02586           "  zref  : The geometrical altitude at pref. \n"
02587           "  g0    : Gravitational acceleration at the geoid surface.\n"
02588           "  niter : Number of iterations (1-2 should suffice normally)."),
02589         OUTPUT( hse_ ),
02590         INPUT(),
02591         GOUTPUT(),
02592         GINPUT(),
02593         KEYWORDS( "pref",    "zref",    "g0",      "niter" ),
02594         TYPES(    Numeric_t, Numeric_t, Numeric_t, Index_t   )));
02595 
02596   md_data.push_back
02597     ( MdRecord
02598       ( NAME("hseSetFromLatitude"),
02599         DESCRIPTION(
02600           "Sets the vector of parameters for calculation of hydrostatic \n"
02601           "equilibrium (*hse*). The on/off flag is set to 1. The gravitational\n"
02602           "acceleration is calculated following the international gravity formula.\n"
02603           "\n"
02604           "Type \"arts -d hse\" for more information. \n"
02605           "\n"
02606           "Keywords \n"
02607           "  pref     : Pressure of the reference point. \n"
02608           "  zref     : The geometrical altitude at pref. \n"
02609           "  latitude : Geocentric latitude of observation point (-90 to 90 Degree).\n"
02610           "  niter    : Number of iterations (1-2 should suffice normally)."),
02611         OUTPUT( hse_ ),
02612         INPUT(),
02613         GOUTPUT(),
02614         GINPUT(),
02615         KEYWORDS( "pref",    "zref",    "latitude", "niter" ),
02616         TYPES(    Numeric_t, Numeric_t, Numeric_t,  Index_t   )));
02617 
02618   md_data.push_back
02619     ( MdRecord
02620       ( NAME("hseSetFromLatitudeIndex"),
02621         DESCRIPTION(
02622           "As hseSetFromLatitude, but sets pref, zref to the values given by index \n"
02623           "from vectors p_abs, z_abs (e.g. 0 = ground).\n"
02624           "\n"
02625           "Type \"arts -d hse\" for more information. \n"
02626           "\n"
02627           "Keywords \n"
02628           "  latitude : Geocentric latitude of observation point (-90 to 90 Degree).\n"
02629           "  index    : Reference index within p_abs, z_abs for setting pref, zref.\n"
02630           "  niter    : Number of iterations (1-2 should suffice normally)."),
02631         OUTPUT( hse_ ),
02632         INPUT(p_abs_, z_abs_ ),
02633         GOUTPUT(),
02634         GINPUT(),
02635         KEYWORDS( "latitude", "index", "niter" ),
02636         TYPES(    Numeric_t,  Index_t, Index_t   )));
02637 
02638   md_data.push_back
02639     ( MdRecord
02640       ( NAME("hseFromBottom"),
02641         DESCRIPTION(
02642           "As hseSet but uses the first values of p_abs and z_abs for pref\n"
02643           "and zref, respectively.\n"
02644           "\n"
02645           "Keywords \n"
02646           "  g0    : Gravitational acceleration at the geoid surface.\n"
02647           "  niter : Number of iterations (1-2 should suffice normally)."),
02648         OUTPUT( hse_ ),
02649         INPUT( p_abs_, z_abs_ ),
02650         GOUTPUT(),
02651         GINPUT(),
02652         KEYWORDS( "g0",      "niter" ),
02653         TYPES(    Numeric_t, Index_t   )));
02654 
02655   md_data.push_back
02656     ( MdRecord
02657       ( NAME("hseOff"),
02658         DESCRIPTION(
02659           "Turns off hydrostatic equilibrium. \n"
02660           "\n"
02661           "The on/off flag off *hse* is set to 0 and *hse* is set to be a \n"
02662           "vector of length 1."),
02663         OUTPUT( hse_ ),
02664         INPUT(),
02665         GOUTPUT(),
02666         GINPUT(),
02667         KEYWORDS(),
02668         TYPES()));
02669 
02670   md_data.push_back
02671     ( MdRecord
02672       ( NAME("hseCalc"),
02673         DESCRIPTION(
02674           "Ensures that 'z_abs' fulfills hydrostatic equilibrium. \n"
02675           "\n"
02676           "Nothing is done if the on/off flag of *hse* is set to 0. The \n"
02677           "reference point, g at the ground and number of iterations \n"
02678           "are taken from *hse*. \n"
02679           "   The given altitudes (*z_abs*) are used as a first guess when \n"
02680           "starting the calculations (to estimate g etc.). The altitude \n"
02681           "variation of the gravitational acceleration is considered. The \n"
02682           "average molecular weight is assumed to be 28.96 at all altitudes.\n"
02683           "The amount of water vapour is taken into account. \n"
02684           "    The calculations are repeated according to the number of \n"
02685           "iterations specified. A higher number of iterations \n" 
02686           "improves the accuracy, but one iteration should be normally \n"
02687           "enough if *z_abs* already has reasonable values. Two iterations \n"
02688           "should suffice for basically all applications."),
02689         OUTPUT( z_abs_ ),
02690         INPUT( z_abs_, p_abs_, t_abs_, h2o_abs_, r_geoid_, hse_ ),
02691         GOUTPUT(),
02692         GINPUT(),
02693         KEYWORDS(),
02694         TYPES()));
02695 
02696 
02697 
02698 
02699 
02700   md_data.push_back
02701     ( MdRecord
02702       ( NAME( "absCalc" ),
02703         DESCRIPTION(
02704            "Calculate absorption coefficients. \n"
02705            "\n"
02706            "This function calculates both, the total absorption (*abs*)\n"
02707            "and the absorption per tag group (*abs_per_tg*).\n"
02708             ) ,
02709         OUTPUT(abs_  , abs_per_tg_ ),
02710         INPUT(tgs_, f_mono_, p_abs_, t_abs_, n2_abs_, h2o_abs_, vmrs_, 
02711               lines_per_tg_, lineshape_,
02712               cont_description_names_, cont_description_models_, 
02713               cont_description_parameters_ ),
02714         GOUTPUT(),
02715         GINPUT(),
02716         KEYWORDS(),
02717         TYPES()));
02718 
02719   md_data.push_back
02720     ( MdRecord
02721       ( NAME( "absCalcSaveMemory" ),
02722         DESCRIPTION(
02723            "Calculate absorption coefficients, trying to conserve memory. \n"
02724            "\n"
02725            "This function calculates only the total absorption (*abs*),\n"
02726            "NOT the absorption per tag group (*abs_per_tg*).\n"
02727            "\n"
02728            "This means you cannot use it if you want to calculate Jacobians\n"
02729            "later.\n"
02730            "\n"
02731            "The implementation follows absCalc."
02732             ) ,
02733         OUTPUT(abs_ ),
02734         INPUT(tgs_, f_mono_, p_abs_, t_abs_, n2_abs_, h2o_abs_, vmrs_, 
02735               lines_per_tg_, lineshape_,
02736               cont_description_names_, cont_description_models_, 
02737               cont_description_parameters_ ),
02738         GOUTPUT(),
02739         GINPUT(),
02740         KEYWORDS(),
02741         TYPES()));
02742 
02743   md_data.push_back
02744     ( MdRecord
02745       ( NAME("absCalcFromXsec"),
02746         DESCRIPTION(
02747                     "Calculate absorption coefficients from cross sections.\n"
02748                     "\n"
02749                     "This calculates both the total absorption and the\n"
02750                     "absorption per tag group. \n"
02751                     "This method calls three other  methods:\n"
02752                     "1. *xsec_per_tgInit* - initialize *xsec_per_tg* \n"
02753                     "2. *xsec_per_tgAddLine* - calculate cross sections per \n"
02754                     "                   tag group for line spectra.\n"
02755                     "3. *xsec_per_tgAddConts* - calculate cross sections per \n"
02756                     "                   tag group for continua.\n"
02757                     "Then it calculates the absorption coefficient by multiplying\n"
02758                     "the cross section by VMR.\n"
02759                     "This is done once for each tag group (output: *abs_per_tg*)\n"
02760                     "and for the sum of all tag group to get the total absorption\n"
02761                     "coefficient (output: *abs*)\n"
02762                     ),
02763         OUTPUT(     abs_  , abs_per_tg_ ),
02764         INPUT(      xsec_per_tg_, vmrs_ ),
02765         GOUTPUT(),
02766         GINPUT(),
02767         KEYWORDS(),
02768         TYPES()));
02769 
02770   md_data.push_back
02771     ( MdRecord
02772       ( NAME( "xsec_per_tgInit" ),
02773         DESCRIPTION(
02774            "Initialize *xsec_per_tg*.\n"
02775            "\n"
02776            "The initialization is\n"
02777            "necessary, because methods *xsec_per_tgAddLines*\n"
02778            "and *xsec_per_tgAddConts* just add to *xsec_per_tg*.\n"
02779            "The size is determined from *tgs*.\n"
02780            ),
02781         OUTPUT( xsec_per_tg_ ),
02782         INPUT(tgs_, f_mono_, p_abs_),
02783         GOUTPUT(),
02784         GINPUT(),
02785         KEYWORDS(),
02786         TYPES()));
02787 
02788   md_data.push_back
02789     ( MdRecord
02790       ( NAME("xsec_per_tgAddLines"),
02791         DESCRIPTION(
02792                     "Calculate cross sections per tag group for line spectra.\n"
02793                    ),
02794         OUTPUT(     xsec_per_tg_                             ),
02795         INPUT(      tgs_, f_mono_, p_abs_, t_abs_, h2o_abs_, vmrs_, 
02796                     lines_per_tg_, lineshape_ ),
02797         GOUTPUT(),
02798         GINPUT(),
02799         KEYWORDS(),
02800         TYPES()));
02801 
02802   md_data.push_back
02803     ( MdRecord
02804       ( NAME("xsec_per_tgAddConts"),
02805         DESCRIPTION(
02806                     "Calculate cross sections per tag group for continua.\n"
02807                      ),
02808         OUTPUT(     xsec_per_tg_                             ),
02809         INPUT(      tgs_, f_mono_, p_abs_, t_abs_, n2_abs_, h2o_abs_, vmrs_,
02810                     cont_description_names_, cont_description_parameters_,
02811                     cont_description_models_),
02812         GOUTPUT(),
02813         GINPUT(),
02814         KEYWORDS(),
02815         TYPES()));
02816 
02817 
02818 
02819 
02820   md_data.push_back
02821     ( MdRecord
02822       ( NAME("abs_per_tgReduce"),
02823         DESCRIPTION(
02824                     "Reduces absorption coefficients. Only absorption\n"
02825                     "coefficients for which weighting functions are\n"
02826                     "calculated are kept in memory.\n"
02827                     ),
02828         OUTPUT(     abs_per_tg_ ),
02829         INPUT(      abs_per_tg_, tgs_, wfs_tgs_ ),
02830         GOUTPUT(),
02831         GINPUT(),
02832         KEYWORDS(),
02833         TYPES()));
02834 
02835 
02836 
02837 
02838   md_data.push_back
02839     ( MdRecord
02840       ( NAME("refrSet"),
02841         DESCRIPTION(
02842            "Sets the refraction input arguments (refr, refr_model and \n"
02843            "refr_lfac) to the specified values. \n"
02844            "\n"
02845            "Type \"arts -d refr\" etc. for more information on the input \n"
02846            "arguments. See *refrCalc* for avaliable refraction models.\n"
02847            "\n"
02848            "Keywords:\n"
02849            "     on    : On/off boolean.\n"
02850            "     model : Name on parametization for the refractive index.\n"
02851            "     lfac  : Length factor for ray tracing."  ),
02852         OUTPUT( refr_, refr_lfac_, refr_model_ ),
02853         INPUT(),
02854         GOUTPUT(),
02855         GINPUT(),
02856         KEYWORDS( "on",  "model",  "lfac"    ),
02857         TYPES(    Index_t, String_t, Index_t )));
02858 
02859   md_data.push_back
02860     ( MdRecord
02861       ( NAME("refrOff"),
02862         DESCRIPTION(
02863           "Sets the refraction boolean (*refr*) to zero and gives the other \n"
02864           "refraction input arguments (*refr_lfac* and *refr_model*) dummy \n"
02865           "values (that will give error messages if used)."),
02866         OUTPUT( refr_, refr_lfac_, refr_model_ ),
02867         INPUT(),
02868         GOUTPUT(),
02869         GINPUT(),
02870         KEYWORDS(),
02871         TYPES()));
02872 
02873   md_data.push_back
02874     ( MdRecord
02875       ( NAME("refrCalc"),
02876         DESCRIPTION(
02877            "Calculates the refractive index using the parameterization\n"
02878            "specified by *refr_model*. \n"
02879            "\n"
02880            "If *refr* is set to zero, the refractive index is set to be an \n"
02881            "empty vector. \n"
02882            "\n"
02883            "Existing parameterizations are: \n"
02884            "\n"
02885            "   'Unity': \n"
02886            "      Sets the refractive index to 1 at all altitudes. \n"
02887            "\n"
02888            "   'Boudouris': \n"
02889            "      Refractive index at microwave frequencies following \n"
02890            "      Boudouris 1963. The k-parameter values were taken from \n"
02891            "      Section 5.1.1 of the Janssen book. The Z parameters are \n"
02892            "      set to 1. \n"
02893            "\n"
02894            "  'BoudourisDryAir': \n"
02895            "      As Boudouris but setting the water content to zero. "),
02896         OUTPUT( refr_index_ ),
02897         INPUT(  p_abs_, t_abs_, h2o_abs_, refr_, refr_model_ ),
02898         GOUTPUT(),
02899         GINPUT(),
02900         KEYWORDS(),
02901         TYPES()));
02902 
02903 
02904 
02905 
02906 
02907 
02908 
02909   md_data.push_back
02910     ( MdRecord
02911       ( NAME("zaFromZtan"),
02912         DESCRIPTION(
02913            "Calculates the zenith angles corresponding to a set of tangent\n"
02914            "altitudes.\n"
02915            "\n"
02916            "Refraction is considered if it is turned on (refr=1)."),
02917         OUTPUT(),
02918         INPUT( z_tan_, z_plat_ , p_abs_, z_abs_, refr_, refr_index_, r_geoid_,
02919                z_ground_ ),
02920         GOUTPUT( Vector_ ),
02921         GINPUT(),
02922         KEYWORDS(),
02923         TYPES()));
02924 
02925   md_data.push_back
02926     ( MdRecord
02927       ( NAME( "zaFromDeltat" ),
02928         DESCRIPTION(
02929            "Calculates the zenith angles for a LEO-LEO cross-link.\n"
02930            "\n"
02931            "The function calculates the zenith angles corresponding to a \n"
02932            "LEO-LEO cross-link for an occultation between two altitudes and \n"
02933            "the given time increment. The LEOs are supposed to be moving \n"
02934            "in opposite directions in identical orbits (but not colliding!).\n"
02935            "   The time window where the LEOs are interacting is defined by \n"
02936            "a start and stop tangent altitudes.\n"
02937            "   The function uses REFR to determine if refraction shall be \n"
02938            "considered or not. \n"
02939            "\n"
02940            "Generic output: \n"
02941            "   Vector : Return vector for the zenith angles. The normal \n"
02942            "            options are ZA_PENCIL and ZA_SENSOR. \n"
02943            "\n"
02944            "Keywords:\n"
02945            "   delta_t   : Time increment between observations.\n"
02946            "   z_tan_lim : Vector with start and stop tangent altitudes." ),
02947         OUTPUT(),
02948         INPUT( z_plat_ , p_abs_, z_abs_, l_step_, refr_, refr_lfac_, 
02949                refr_index_, r_geoid_, z_ground_ ),
02950         GOUTPUT( Vector_ ),
02951         GINPUT(),
02952         KEYWORDS( "delta_t", "z_tan_lim" ),
02953         TYPES(    Numeric_t, Vector_t    )));
02954 
02955   md_data.push_back
02956     ( MdRecord
02957       ( NAME("r_geoidStd"),
02958         DESCRIPTION(
02959           "Sets the geoid radius to the standard Earth radius defined in \n"
02960           "constants.cc."),
02961         OUTPUT( r_geoid_ ),
02962         INPUT(),
02963         GOUTPUT(),
02964         GINPUT(),
02965         KEYWORDS(),
02966         TYPES()));
02967 
02968   md_data.push_back
02969     ( MdRecord
02970       ( NAME("r_geoidWGS84"),
02971         DESCRIPTION(
02972           "Sets the geoid radius according to WGS-84. \n"
02973           "\n"
02974           "The function is based on Section 9.4.1 in the Rodgers book. \n"
02975           "The observation direction is given as the angle to the meridian \n"           "plane (that is, S=N=0, W=E=90).\n"
02976           "\n"
02977           "Keywords \n"
02978           "      latitude : Latitude at the measurement.\n"
02979           "  obsdirection : Observation direction (see above)."),
02980         OUTPUT( r_geoid_ ),
02981         INPUT(),
02982         GOUTPUT(),
02983         GINPUT(),
02984         KEYWORDS( "latitude", "obsdirection" ),
02985         TYPES(    Numeric_t,  Numeric_t )));
02986 
02987   md_data.push_back
02988     ( MdRecord
02989       ( NAME("groundOff"),
02990         DESCRIPTION(
02991           "Sets dummy values to the ground variables. \n"
02992           "\n"
02993           "The ground altitude is set to the first element of 'z_abs'.\n"
02994           "The ground temperature (t_ground) is set to 0. \n"
02995           "The ground emission vector (e_ground) is set to be empty.\n"
02996           "   If there is a ground intersection and only this function is\n"
02997           "used to set the ground variables, there will be error messages."),
02998         OUTPUT( z_ground_, t_ground_, e_ground_ ),
02999         INPUT( z_abs_ ),
03000         GOUTPUT(),
03001         GINPUT(),
03002         KEYWORDS(),
03003         TYPES()));
03004 
03005   md_data.push_back
03006     ( MdRecord
03007       ( NAME("groundSet"),
03008         DESCRIPTION(
03009           "Sets the ground altitude and emission to the specified values,\n"
03010           "and selects a ground temperature.\n"
03011           "\n"
03012           "The emission is set to be identical for all frequencies. \n"
03013           "The ground temperature is obtained by interpolating *t_abs*.\n"
03014           "\n"
03015           "Keywords \n"
03016           "  z : Altitude above the geoid of the ground.\n"
03017           "  e : Ground emission factor."),
03018         OUTPUT( z_ground_, t_ground_, e_ground_ ),
03019         INPUT( p_abs_, t_abs_, z_abs_, f_mono_ ),
03020         GOUTPUT(),
03021         GINPUT(),
03022         KEYWORDS( "z",       "e"       ),
03023         TYPES(    Numeric_t, Numeric_t )));
03024 
03025   md_data.push_back
03026     ( MdRecord
03027       ( NAME("groundAtBottom"),
03028         DESCRIPTION(
03029           "Sets the ground emission to the specified value, and sets ground \n"
03030           "altitude and temperature to the first values of z_abs and t_abs.\n"
03031           "\n"
03032           "The emission is set to be identical for all frequencies. \n"
03033           "\n"
03034           "Keywords \n"
03035           "  e : Ground emission factor."),
03036         OUTPUT( z_ground_, t_ground_, e_ground_ ),
03037         INPUT( t_abs_, z_abs_, f_mono_ ),
03038         GOUTPUT(),
03039         GINPUT(),
03040         KEYWORDS( "e"       ),
03041         TYPES(    Numeric_t )));
03042 
03043   md_data.push_back
03044     ( MdRecord
03045       ( NAME("groundFlatSea"),
03046         DESCRIPTION(
03047           "Models the emission from a flat sea. \n"
03048           "\n"
03049           "The method sets the ground variables to match the properties of \n"
03050           "the sea, without wind effects. The emissivity is calculated from\n"
03051           "the dielectric constant by the Fresnel equations.\n"
03052           "\n"
03053           "The altitude is set to 0 m. The skin temperature is set by the\n"
03054           "keyword argument *t_skin*. If this argument is set to be <= 0,\n"
03055           "the temperature is obtained by interpolating *t_abs*. \n"
03056           "\n"
03057           "The incident angle (of reflection) is calculated for max of \n"
03058           "*za_pencil*. Refraction is considered or not, depending on value \n"
03059           "of *refr*. This means that *refrCalc* must be called before this \n"
03060           "method if refraction is considered. The emissivity depends on the\n"
03061           "selected polarisation. The refractive index of air is set to 1.\n"
03062           "\n"
03063           "The relative dielectric constant is calculated following\n"
03064           "Liebe et al. 1991 Int. J. IR+mm Waves 12(12), 659-675. \n"
03065           "The method does not consider salinity and is restricted to the\n"
03066           "range 5 - 1000 GHz (below 5 GHz salinity must be considered).\n"
03067           "\n"
03068           "Keywords \n"
03069           "  pol    : Polarisation. Calid options are \"v\" or \"h\".\n"
03070           "  t_skin : Skin temperature. "),
03071         OUTPUT( z_ground_, t_ground_, e_ground_ ),
03072         INPUT( p_abs_, t_abs_, z_abs_, f_mono_, za_pencil_, z_plat_, r_geoid_,
03073            refr_, refr_index_ ),
03074         GOUTPUT(),
03075         GINPUT(),
03076         KEYWORDS( "pol",    "t_skin"  ),
03077         TYPES(    String_t, Numeric_t )));
03078 
03079   md_data.push_back
03080     ( MdRecord
03081       ( NAME("emissionOn"),
03082         DESCRIPTION(
03083           "Turns on emission by setting the emission flag to 1. \n"),
03084         OUTPUT( emission_ ),
03085         INPUT(),
03086         GOUTPUT(),
03087         GINPUT(),
03088         KEYWORDS(),
03089         TYPES()));
03090 
03091   md_data.push_back
03092     ( MdRecord
03093       ( NAME("emissionOff"),
03094         DESCRIPTION(
03095           "Turns off emission by setting the emission flag to 0."),
03096         OUTPUT( emission_ ),
03097         INPUT(),
03098         GOUTPUT(),
03099         GINPUT(),
03100         KEYWORDS(),
03101         TYPES()));
03102 
03103   md_data.push_back
03104     ( MdRecord
03105       ( NAME("losCalc"),
03106         DESCRIPTION(
03107           "Calculates the line-of-sight (LOS).\n"
03108           "\n"
03109           "See AUG for details about the calculations."),
03110         OUTPUT( los_, z_tan_ ),
03111         INPUT( z_plat_ ,za_pencil_, l_step_, p_abs_, z_abs_, 
03112                 refr_, refr_lfac_, refr_index_, z_ground_, r_geoid_ ),
03113         GOUTPUT(),
03114         GINPUT(),
03115         KEYWORDS(),
03116         TYPES()));
03117 
03118   md_data.push_back
03119     ( MdRecord
03120       ( NAME("sourceCalc"),
03121         DESCRIPTION(
03122           "Calculates source function values valid between the points "
03123           "of the LOS.\n"
03124           "\n" 
03125           "No scattering and local thermodynamic equilibrium are assumed,\n"
03126           "that is, the source function equals the Planck function.\n"
03127           "The source function is set to the mean of the Planck function at\n"
03128           "the two LOS points limiting the steps. The temperature at the LOS\n"
03129           "points is obtained by linear interpolation.\n"
03130           "   If emission is neglected (emission=0), the WSV source is set \n"
03131           "to be empty."),
03132         OUTPUT( source_ ),
03133         INPUT( emission_, los_, p_abs_, t_abs_, f_mono_ ),
03134         GOUTPUT(),
03135         GINPUT(),
03136         KEYWORDS(),
03137         TYPES()));
03138 
03139   md_data.push_back
03140     ( MdRecord
03141       ( NAME("transCalc"),
03142         DESCRIPTION(
03143           "Calculates the transmission between the points of the LOS.\n"
03144           "\n"
03145           "The absorption is assumed to vary linear between the LOS points."
03146           "The absorption at the LOS points is obtained by linear\n"
03147           "interpolation of *abs*."),
03148         OUTPUT( trans_ ),
03149         INPUT( los_, p_abs_, abs_ ),
03150         GOUTPUT(),
03151         GINPUT(),
03152         KEYWORDS(),
03153         TYPES()));
03154 
03155   md_data.push_back
03156     ( MdRecord
03157       ( NAME("y_spaceStd"),
03158         DESCRIPTION(
03159           "Standard choices for the radiation entering the atmosphere at\n"
03160           "the top of the atmosphere. \n"
03161           "\n"
03162           "The selections are:\n"
03163           "  zero : no radiation\n"
03164           "  cbgr : cosmic background radiation (planck for COSMIC_BG_TEMP)\n"
03165           "  sun  : solar radiation (planck for SUN_TEMP)\n"
03166           "\n"
03167           "COSMIC_BG_TEMP and SUN_TEMP are global variables, defined in\n"
03168           "constants.cc.\n"
03169           "\n"
03170           "Keywords \n"
03171           "  choice : Selection String (see above)."),
03172         OUTPUT( y_space_ ),
03173         INPUT( f_mono_ ),
03174         GOUTPUT(),
03175         GINPUT(),
03176         KEYWORDS( "nr"  ),
03177         TYPES(    String_t )));
03178 
03179   md_data.push_back
03180     ( MdRecord
03181       ( NAME("yCalc"),
03182         DESCRIPTION(
03183           "Performs the integration of the radiative transfer equation\n"
03184           "along the LOS, with or without emission.\n"
03185           "\n"
03186           "If emission is considered (emission=1) the outout unit is \n"
03187           "intensity, while without emission (emission=0) optical \n"
03188           "thicknesses are returned. "),
03189         OUTPUT( y_ ),
03190         INPUT( emission_, los_, f_mono_, y_space_, source_, trans_, 
03191                                                      e_ground_, t_ground_ ),
03192         GOUTPUT(),
03193         GINPUT(),
03194         KEYWORDS(),
03195         TYPES()));
03196 
03197   md_data.push_back
03198     ( MdRecord
03199       ( NAME("sourcetransyCalcSaveMemory"),
03200         DESCRIPTION(
03201           "Combines:\nsourceCalc\ntransCalc\nyCalc\n\n"
03202           "Calculation is performed in frequency chunks thus allowing\n"
03203           "larger jobs to run. This means you cannot use it if you want \n"
03204            "to calculate Jacobians later on. "),
03205         OUTPUT( y_ ),
03206         INPUT( emission_, los_, p_abs_, t_abs_, f_mono_, abs_, y_space_,
03207                                           e_ground_, t_ground_ ),
03208         GOUTPUT(),
03209         GINPUT(),
03210         KEYWORDS("f_chunksize"),
03211         TYPES(Index_t)));
03212 
03213   md_data.push_back
03214     ( MdRecord
03215       ( NAME("CoolingRates"),
03216         DESCRIPTION(
03217      "Calculates cooling rates due to exchange of longwave radiation.\n"
03218      "\n"
03219      "This function applies a straightforward algorith to obtain cooling \n"
03220      "rates. The algorithm is described in AUG. The basic idea is to \n"
03221      "calculate incoming radiation from all directions (by using yCalc), \n"
03222      "instead of follow the vertical flux through the atmosphere as usually \n"
03223      "done. No assumptions on a flat Earth is made.\n"
03224      "\n"
03225      "The atmosphere is described in usual way and absorption shall be pre- \n"
03226      "calculated. Emission is always activated (of course) and *y_space* is \n"
03227      "set to cosmic background radiation by calling *y_spaceStd*. Refraction\n"
03228      "follows corresponding WSV. \n" 
03229      "\n"
03230      "The zenith angle grid is set by *Za_pencil*, where the vector must \n"
03231      "start with 0 and end with 180. \n"
03232      "\n"
03233      "The WSV *l_step* is here treated to give the radiative step length for\n"
03234      "the zenith and nadir directions. The step length is scaled by \n"
03235      "abs( 1/cos(za) ), where za is the zenith angle, for other directions. \n"
03236      "The keyword argument *lstep_limit* sets an upper limit for *l_step*.  \n"
03237      "For example, for za=90, the expression above gives infinity for  \n"
03238      "*l_step*.\n"
03239      "\n"
03240      "The function returns the spectral cooling rate (by *coolrate*).\n"
03241      "\n"
03242      "Keywords \n"
03243      "  lstep_limit : Upper limit on l_step for off-zenith/nadir angles."),
03244         OUTPUT( coolrate_ ),
03245         INPUT( l_step_, p_abs_, z_abs_, t_abs_, f_mono_, abs_, za_pencil_,
03246                refr_, refr_lfac_, refr_index_, 
03247                r_geoid_, z_ground_, e_ground_, t_ground_, p_coolrate_ ),
03248         GOUTPUT(),
03249         GINPUT(),
03250         KEYWORDS( "lstep_limit" ),
03251         TYPES(    Numeric_t)));
03252 
03253   md_data.push_back
03254     ( MdRecord
03255       ( NAME("yTB"),
03256         DESCRIPTION(
03257            "Converts a radiance spectrum to Planck brightness temperatures.\n"
03258            "\n"
03259            "The conversion is done by the Planck expression.\n"
03260            "   The frequency of each value of *y* is determined by *f_mono* \n"
03261            "and za_pencil."),
03262         OUTPUT( y_ ),
03263         INPUT( y_, f_mono_, za_pencil_ ),
03264         GOUTPUT(),
03265         GINPUT(),
03266         KEYWORDS(),
03267         TYPES()));
03268 
03269   md_data.push_back
03270     ( MdRecord
03271       ( NAME("MatrixTB"),
03272         DESCRIPTION(
03273            "Converts a radiance matrix to Planck brightness temperatures.\n"
03274            "\n"
03275            "Applies the function yTB on each column of the matrix. \n"
03276            "\n"
03277            "Generic input: \n"
03278            "   Matrix : Any matrix, but typically *ybatch* or a WF matrix.\n"
03279            "\n"
03280            "Generic output: \n"
03281            "   Matrix : Any matrix, but typically the same as the input \n"
03282            "            matrix."),
03283         OUTPUT(),
03284         INPUT(   f_mono_, za_pencil_ ),
03285         GOUTPUT( Matrix_ ),
03286         GINPUT(  Matrix_ ),
03287         KEYWORDS(),
03288         TYPES()));
03289 
03290   md_data.push_back
03291     ( MdRecord
03292       ( NAME("yTRJ"),
03293         DESCRIPTION(
03294            "Converts a radiance spectrum to Rayleigh-Jean temperatures.\n"
03295            "\n"
03296            "The conversion is done by the Rayleigh-Jean approximation of the\n"
03297            "Planck expression.\n"
03298            "   The frequency of each value of *y* is determined by *f_mono* \n"
03299            "and za_pencil."),
03300         OUTPUT( y_ ),
03301         INPUT( y_, f_mono_, za_pencil_ ),
03302         GOUTPUT(),
03303         GINPUT(),
03304         KEYWORDS(),
03305         TYPES()));
03306 
03307   md_data.push_back
03308     ( MdRecord
03309       ( NAME("MatrixTRJ"),
03310         DESCRIPTION(
03311            "Converts a radiance matrix to Rayleigh-Jean temperatures.\n"
03312            "\n"
03313            "Applies the function yTRJ on each column of the matrix. \n"
03314            "\n"
03315            "Generic input: \n"
03316            "   Matrix : Any matrix, but typically *ybatch* or a WF matrix.\n"
03317            "\n"
03318            "Generic output: \n"
03319            "   Matrix : Any matrix, but typically the same as the input \n"
03320            "            matrix."),
03321         OUTPUT(),
03322         INPUT(   f_mono_, za_pencil_ ),
03323         GOUTPUT( Matrix_ ),
03324         GINPUT(  Matrix_ ),
03325         KEYWORDS(),
03326         TYPES()));
03327 
03328 
03329 
03330 
03331 
03332 
03333 
03334   md_data.push_back
03335     ( MdRecord
03336       ( NAME("wfs_tgsDefine"),
03337         DESCRIPTION(
03338           "Set up the list of tag groups for which weighting functions will \n"
03339           "be calculated. \n"
03340           "\n"
03341           "The *wfs_tgs* are specified exactly as *tgs* (see tgsDefine). \n"
03342           "The selected tag groups must be a subgroup of the absorption \n"
03343           "tags (*tgs*). \n"
03344           "   See the functions abs_per_tgReduce and kSpecies for some more \n"
03345           "information around *wfs_tgs*. \n"
03346           "\n"
03347           "Keywords \n"
03348           "  wfs_tgs : String with tag groups."),
03349         OUTPUT( wfs_tgs_ ),
03350         INPUT(),
03351         GOUTPUT(),
03352         GINPUT(),
03353         KEYWORDS( "wfs_tgs" ),
03354         TYPES(    Array_String_t   )));
03355 
03356 md_data.push_back
03357     ( MdRecord
03358       ( NAME("wfss_tgsDefine"),
03359         DESCRIPTION(
03360           "Set up the list of tag groups for which weighting functions will \n"
03361           "be calculated. \n"
03362           "\n"
03363           "The *wfs_tgs* are specified exactly as *tgs* (see tgsDefine). \n"
03364           "The selected tag groups must be a subgroup of the absorption \n"
03365           "tags (*tgs*). \n"
03366           "   See the functions abs_per_tgReduce and kSpecies for some more \n"
03367           "information around *wfs_tgs*. \n"
03368           "\n"
03369           "Keywords \n"
03370           "  wfss_tgs : String with tag groups."),
03371         OUTPUT( wfss_tgs_ ),
03372         INPUT(),
03373         GOUTPUT(),
03374         GINPUT(),
03375         KEYWORDS( "wfss_tgs" ),
03376         TYPES(    Array_String_t   )));
03377 
03378   md_data.push_back
03379     ( MdRecord
03380       ( NAME("absloswfsCalc"),
03381         DESCRIPTION(
03382           "Calculates absorption line of sight weighting functions (LOS WFs)\n"
03383           "\n"
03384           "These WFs are the derivative of the spectra with respect to the \n"
03385           "absorption at the LOS points. See AUG for more detailed \n"
03386           "definition and details about the calculations."),
03387         OUTPUT( absloswfs_ ),
03388         INPUT( emission_, los_, source_, trans_, y_, y_space_, f_mono_, 
03389                                                         e_ground_, t_ground_ ),
03390         GOUTPUT(),
03391         GINPUT(),
03392         KEYWORDS(),
03393         TYPES()));
03394 
03395   md_data.push_back
03396     ( MdRecord
03397       ( NAME("kSpecies"),
03398         DESCRIPTION(
03399           "Calculates species weighting functions (WFs) for all *wfs_tgs*.\n"
03400           "\n"
03401           "This function is the simplest option if a single retrieval grid \n"
03402           "and a single retrieval unit are used for all species. If this is \n"
03403           "not the case, the function kSpeciesSingle must be used.\n"
03404           "   The WFs are calculated by (semi-)analytical expressions, where\n"
03405           "it is assumed that there is a linear relationship between the \n"
03406           "amount of the species and the absorption, and that the LOS is not\n"
03407           "affected by changes of the species. These assumtions should be\n"
03408           "valid generally for observations above the tropopause (as long \n"
03409           "LTE applies), but is not true for tropospheric water vapor. \n"
03410           "See AUG for details about the calculations. \n"
03411           "   The WFs for the different tag groups in *wfs_tgs* are appended\n"
03412           "to form a single matrix. The absorption array (*abs_per_tg*) must\n"
03413           "have been reduced to match *wfs_tags* (by using the function \n"
03414           "abs_per_tgReduce). The unit of the returned WFs are described \n"
03415           "below.\n"
03416           "\n"
03417           "The avaliable units are\n"
03418           "  frac : fractions of linearisation profile \n"
03419           "  vmr  : volume mixing ratio \n"
03420           "  nd   : number density\n"
03421           "\n"
03422           "Keywords \n"
03423           "  unit : Retrieval unit string (see above)."),
03424         OUTPUT( k_, k_names_, k_aux_ ),
03425         INPUT( los_, absloswfs_, p_abs_, t_abs_, wfs_tgs_, abs_per_tg_, 
03426                                                               vmrs_, k_grid_ ),
03427         GOUTPUT(),
03428         GINPUT(),
03429         KEYWORDS( "unit"   ),
03430         TYPES(    String_t )));
03431 
03432   md_data.push_back
03433     ( MdRecord
03434       ( NAME("kSpeciesSingle"),
03435         DESCRIPTION(
03436           "Calculates species weighting functions (WFs) for a single tag \n"
03437           "group.\n"
03438           "\n"
03439           "The tag group is selected by the giving the full name. This \n"
03440           "string must match exactly the string in *wfs_tgs* (and then the \n"
03441           "string in *tgs*). Otherwise as the function kSpecies (this \n"
03442           "including units). \n"
03443           "\n"
03444           "Keywords \n"
03445           "  tg   : Tag group string.\n"
03446           "  unit : Retrieval unit string (see kSpecies)."),
03447         OUTPUT( k_, k_names_, k_aux_ ),
03448         INPUT( los_, absloswfs_, p_abs_, t_abs_, wfs_tgs_, abs_per_tg_, 
03449                                                               vmrs_, k_grid_ ),
03450         GOUTPUT(),
03451         GINPUT(),
03452         KEYWORDS( "tg",      "unit"  ),
03453         TYPES(    String_t,  String_t )));
03454 
03455   md_data.push_back
03456     ( MdRecord
03457       ( NAME("kContAbs"),
03458         DESCRIPTION(
03459           "Calculates weighting functions (WFs) for polynomial fit of \n"
03460           "continuum  absorption. \n"
03461           "\n"  
03462           "The continuum is fitted by determining an off-set at a number of \n"
03463           "points (order+1) that are evenly spread between the lowest and \n"
03464           "upper frequency limit. See AUG for more details.\n"
03465           "   If the limits are set to be negative, *f_low* is set to the \n"
03466           "first value of *f_mono*, and *f_high* to the last value of \n"
03467           "*f_mono*. The frequency limits cannot be outside the range of \n"
03468           "*f_mono*. \n"
03469           "   The WFs can be calculated for different length units, selected\n"
03470           "by the keyword *l_unit*. For example, if *l_unit* is set to \n"
03471           "\"km\", the WFs corresponds to an absorpion with unit [1/km]. \n"
03472           "   The WFs for each frequency point are kept together, and the \n"
03473           "WF matrix for the different frequency points are appended. \n"
03474           "\n"
03475           "Keywords \n"
03476           "  order : Polynomial order (>=0). \n"
03477           "  f_low : Frequency of first fit point. \n"
03478           " f_high : Frequency of last fit point. \n"
03479           " l_unit : Length unit. Avaliable units are \"m\" and \"km\"." ),
03480         OUTPUT( k_, k_names_, k_aux_ ),
03481         INPUT( los_, absloswfs_, f_mono_, k_grid_ ),
03482         GOUTPUT(),
03483         GINPUT(),
03484         KEYWORDS( "order", "f_low",   "f_high",    "l_unit" ),
03485         TYPES(    Index_t,   Numeric_t, Numeric_t, String_t )));
03486 
03487   md_data.push_back
03488     ( MdRecord
03489       ( NAME("kTemp"),
03490         DESCRIPTION(
03491           "Calculates temperature weighting functions (WFs).\n"
03492           "\n"
03493           "The calculations can be performed both with and without \n"
03494           "hydrostatic equilibrium (HSE). \n"
03495           "   If HSE is not considered (hse=0), the WFs are obtained by \n"
03496           "semi-analytical expressions and the calculations are relatively \n"
03497           "fast. See AUG for details. \n"
03498           "  If HSE is considered (hse=1), perturbation calculations are \n"
03499           "done. If the keyword *fast* is set to 0, the absorption is re-\n"
03500           "calculated for each temperature disturbance and the calculations\n"
03501           "are slow. With fast=1, it is assumed that the absorption is \n" 
03502           "linear with temparature between the present state and 1K higher \n"
03503           "temperature, and the new absorption is calculated once, that \n"
03504           "decreases the total calculation time considerbly. The accuracy of\n"
03505           "the latter option should suffice normally. \n"
03506           "   Note that the keyword *hse* here is not the workspace variable\n"
03507           "*hse*. If the keyword *hse* is set to 1, a constraint is that \n"
03508           "HSE is considered generally, that is, that the do-field of the \n"
03509           "variable 'hse* is turned on. The data to calculate assure HSE is\n"
03510           "of course taken from the workspace variable *hse*. \n"
03511           "   The fast keyword has no importance if the keyword hse is set \n"
03512           "to 0. \n"
03513           "\n"
03514           "Keywords \n"
03515           "  hse : Flag for hydrostatic eq. 0=no HSE, 1=HSE. \n"
03516           " fast : Flag to perform fast calculations with hse=1. " ),
03517         OUTPUT( k_, k_names_, k_aux_ ),
03518         INPUT( tgs_, f_mono_, p_abs_, t_abs_, n2_abs_, h2o_abs_, vmrs_, abs_, 
03519           lines_per_tg_, lineshape_, e_ground_, emission_, k_grid_, 
03520           cont_description_names_, cont_description_parameters_,
03521           cont_description_models_, los_, absloswfs_, trans_,
03522           z_plat_ ,za_pencil_, l_step_, z_abs_, refr_, refr_lfac_, refr_index_,
03523           refr_model_, z_ground_, t_ground_, y_space_, r_geoid_, hse_ ),
03524         GOUTPUT(),
03525         GINPUT(),
03526         KEYWORDS( "hse",   "fast"  ),
03527         TYPES(    Index_t, Index_t )));
03528         
03529   md_data.push_back
03530     ( MdRecord
03531       ( NAME("kSpectro"),
03532         DESCRIPTION(
03533           "Calculates the spectroscopic parameters weighting functions (WFs).\n"
03534           "\n"
03535           "The calculation can be performed for the intensity,  line position, pressure \n"
03536            "broadening parameters  and pressure shift.\n"
03537            "For each parameter a do flag has to be specified.\n"
03538           "\n"
03539           "Keywords \n"
03540           "do_intens: Flag for calculating the weighting function for"
03541            "the intensity do_intens=1. \n" 
03542           "do_position: flag for line possition. \n"
03543           "do_agam: flag for agam. \n"
03544           "do_sgam: flag for sgam. \n" 
03545           "do_nair: flag for temperature dependence of agam. \n"
03546           "do_nself: flag for temperature dependence of sgam. \n" 
03547           "do_pSift: flag for pressure shift .\n" ),
03548 
03549         OUTPUT(k_, k_names_, k_aux_ , S_S_),
03550         INPUT( wfss_tgs_, tgs_, f_mono_, p_abs_, t_abs_, z_abs_, h2o_abs_, vmrs_, 
03551           lines_per_tg_, lineshape_, los_, absloswfs_),
03552         GOUTPUT(),
03553         GINPUT(),
03554         KEYWORDS("do_intens",  "do_position",  "do_agam", 
03555                   "do_sgam", "do_nair", "do_nself", "do_pSift"),
03556         TYPES(  Index_t, Index_t, Index_t, Index_t, Index_t, Index_t, Index_t)));
03557         
03558   md_data.push_back
03559     ( MdRecord
03560       ( NAME("kFrequencyOffSet"),
03561         DESCRIPTION(
03562           "Calculates the weighting function (WF) for a frequency off-set.\n"
03563           "\n"
03564           "The Wf is simply the difference between *y* and the spectrum \n"
03565           "obtained when adding *delta* to *f_mono*, diveded by *delta*.\n"
03566           "That is, a pure perturbation calculation is performed. \n"
03567           "\n"
03568           "   The WF can be calculated for different frequency units,\n"
03569           "selected by the keyword *f_unit*.\n"
03570           "\n"
03571           "Keywords \n"
03572           "  delta  : Size of frequency perturbation (in units of *l_unit*).\n"
03573           "  l_unit : Frequency unit. Avaliable units are \"Hz\", \"kHz\"\n"
03574           "           \"MHz\"." ),
03575         OUTPUT( k_, k_names_, k_aux_ ),
03576         INPUT( tgs_, f_mono_, p_abs_, t_abs_, n2_abs_, h2o_abs_, vmrs_, 
03577           lines_per_tg_, lineshape_, e_ground_, emission_, 
03578           cont_description_names_, cont_description_parameters_,
03579           cont_description_models_, los_, t_ground_, y_space_, y_ ),
03580         GOUTPUT(),
03581         GINPUT(),
03582         KEYWORDS( "delta",   "f_unit"  ),
03583         TYPES(    Numeric_t, String_t  )));
03584 
03585   md_data.push_back
03586     ( MdRecord
03587       ( NAME("kPointingOffSet"),
03588         DESCRIPTION(
03589           "Calculates the WF for a pointing off-set.\n"
03590           "\n"
03591           "The Wf is simply the difference between *y* and the spectrum \n"
03592           "obtained when adding *delta* to *za_pencil*, diveded by *delta*.\n"
03593           "That is, a pure perturbation calculation is performed. \n"
03594           "\n"
03595           "Keywords \n"
03596           "  delta : Size of zenith angle perturbation."),
03597         OUTPUT( k_, k_names_, k_aux_ ),
03598         INPUT( z_plat_, za_pencil_, l_step_, p_abs_, z_abs_, t_abs_, f_mono_,
03599                refr_, refr_lfac_, refr_index_, z_ground_, r_geoid_, 
03600                abs_, emission_, y_space_, e_ground_, t_ground_, y_ ),
03601         GOUTPUT(),
03602         GINPUT(),
03603         KEYWORDS( "delta"   ),
03604         TYPES(    Numeric_t )));
03605 
03606   md_data.push_back
03607     ( MdRecord
03608       ( NAME( "kEground" ),
03609         DESCRIPTION(
03610            "Calculates the WF(s) for ground emission coefficent(s).\n"
03611            "\n"
03612            "The ground emission WF(s) are calculated by semi-analytical\n"
03613            "expressions (see AUG). With single_e=0, a WF is returned for \n"
03614            "the emission coefficient of each monochromatic frequency. \n"
03615            "On the other hand, when single_e=1, the ground emission is \n"
03616            "treated as a single varaible (that is, no frequency dependency) \n"
03617            "and there is only a single WF to be calculated. The latter \n"
03618            "option requieres that all elements of E_GROUND are set to the \n"
03619            "same value. \n"
03620            "\n"
03621            "Keywords:\n"
03622            "   single_e : Boolean to treat the ground emission as a single\n"
03623            "              variable. See further above." ),
03624         OUTPUT( k_, k_names_, k_aux_ ),
03625         INPUT( za_pencil_, f_mono_, emission_, y_space_, e_ground_, t_ground_,
03626                los_, source_, trans_ ),
03627         GOUTPUT(),
03628         GINPUT(),
03629         KEYWORDS( "single_e" ),
03630         TYPES(    Index_t )));
03631 
03632   md_data.push_back
03633     ( MdRecord
03634       ( NAME("kCalibration"),
03635         DESCRIPTION(
03636           "Calculates the WF for a proportional calibration error. \n"
03637           "\n"
03638           "The WF is simply : k = y - y0 where y0 is the specified \n"
03639           "vector. The y0-vector shhould typically be the radiance (or TB) \n"
03640           "of the load used for load switching. For example: \n"
03641           "   VectorPlanck(y0,f_mono){temp=2.7} \n"
03642           "   kCalibration(y0){} \n"
03643           "\n"
03644           "Generic input: \n"
03645           "   Vector : A vector with spectrum for calibration reference \n"
03646           "            point. This vector should typically be *y0*. "),
03647         OUTPUT( k_, k_names_, k_aux_ ),
03648         INPUT( y_, f_mono_ ),
03649         GOUTPUT(),
03650         GINPUT( Vector_ ),
03651         KEYWORDS(),
03652         TYPES()));
03653 
03654   md_data.push_back
03655     ( MdRecord
03656       ( NAME("kManual"),
03657         DESCRIPTION(
03658           "Calculates a weighting function using y and y0.\n"
03659           "\n"
03660           "The weighting function is calculated as: k = (y-y0)/delta\n"
03661           "That is, delta is the magnitude of the perturbation done.\n"
03662           "\n"
03663           "Keywords \n"
03664           "  name    : Name on retrieval/error identity.\n"
03665           "  delta   : Magnitude of perturbation.\n"
03666           "  grid    : Grid point value.\n"
03667           "  apriori : A priori value."),
03668         OUTPUT( k_, k_names_, k_aux_ ),
03669         INPUT( y0_, y_ ),
03670         GOUTPUT(),
03671         GINPUT(),
03672         KEYWORDS( "name",   "delta",   "grid",    "apriori" ),
03673         TYPES(    String_t, Numeric_t, Numeric_t, Numeric_t )));
03674 
03675   md_data.push_back
03676     ( MdRecord
03677       ( NAME("kxInit"),
03678         DESCRIPTION(
03679           "Initializes Kx weighting function matrix and help variables\n"
03680           "(kx_names, kx_lengths and kx_aux).\n"
03681           "\n"
03682           "Use this function before the WF calculations are started and\n"
03683           "together with kxAppend."),
03684         OUTPUT( kx_, kx_names_, kx_lengths_, kx_aux_ ),
03685         INPUT(),
03686         GOUTPUT(),
03687         GINPUT(),
03688         KEYWORDS(),
03689         TYPES()));
03690 
03691   md_data.push_back
03692     ( MdRecord
03693       ( NAME("kbInit"),
03694         DESCRIPTION(
03695           "Initializes Kb weighting function matrix and help variables\n"
03696           "(kb_names, kb_lengths and kb_aux).\n"
03697           "\n"
03698           "Use this function before the WF calculations are started and\n"
03699           "together with kbAppend."),
03700         OUTPUT( kb_, kb_names_, kb_lengths_, kb_aux_ ),
03701         INPUT(),
03702         GOUTPUT(),
03703         GINPUT(),
03704         KEYWORDS(),
03705         TYPES()));
03706 
03707   md_data.push_back
03708     ( MdRecord
03709       ( NAME("kxAppend"),
03710         DESCRIPTION(
03711           "Appends the K matrix to Kx and handles additional data\n"
03712           "correspondingly. \n"
03713           "\n"
03714           "All the data are reallocated to make space for the new data.\n"
03715           "This function is accordingly slow for large data sizes,\n"
03716           "and it can be better to use kxAllocate and kxPutInK."),
03717         OUTPUT( kx_, kx_names_, kx_lengths_, kx_aux_ ),
03718         INPUT( kx_, kx_names_, kx_lengths_, kx_aux_, k_, k_names_, k_aux_ ),
03719         GOUTPUT(),
03720         GINPUT(),
03721         KEYWORDS(),
03722         TYPES()));
03723 
03724   md_data.push_back
03725     ( MdRecord
03726       ( NAME("kbAppend"),
03727         DESCRIPTION(
03728           "Appends the K matrix to Kb and handles additional data\n"
03729           "correspondingly. \n"
03730           "\n"
03731           "All the data are reallocated to make space for the new data.\n"
03732           "This function is accordingly slow for large data sizes,\n"
03733           "and it can be better to use kbAllocate and kbPutInK."),
03734         OUTPUT( kb_, kb_names_, kb_lengths_, kb_aux_ ),
03735         INPUT( kb_, kb_names_, kb_lengths_, kb_aux_, k_, k_names_, k_aux_ ),
03736         GOUTPUT(),
03737         GINPUT(),
03738         KEYWORDS(),
03739         TYPES()));
03740 
03741   md_data.push_back
03742     ( MdRecord
03743       ( NAME("kxAllocate"),
03744         DESCRIPTION(
03745           "Allocates memory for kx and help variables (kx_names, kx_lengths \n"
03746           "and kx_aux).\n" 
03747           "\n"
03748           "The total number of frequencies is taken from the length \n"
03749           "of the given vector (typically y).\n"
03750           "   Use this function before the WF calculations are started and\n"
03751           "together with kxPutInK.\n"
03752           "\n"
03753           "Generic input: \n"
03754           "   Vector : A vector with same length as the appended spectra.\n"
03755           "            The typical choice is *y*.\n"
03756           "\n"
03757           "Keywords \n"
03758           "  ni : Number of retrieval identities (species profiles,\n"
03759           "              pointing off-set etc.).\n"
03760           "  nx : Final length of x."),
03761         OUTPUT( kx_, kx_names_, kx_lengths_, kx_aux_ ),
03762         INPUT(),
03763         GOUTPUT(),
03764         GINPUT( Vector_ ),
03765         KEYWORDS( "ni",  "nx"  ),
03766         TYPES(    Index_t, Index_t )));
03767 
03768   md_data.push_back
03769     ( MdRecord
03770       ( NAME("kbAllocate"),
03771         DESCRIPTION(
03772           "Allocates memory for kx and help variables (kb_names, kb_lengths \n"
03773           "and kb_aux). \n"
03774           "\n"
03775           "The total number of frequencies is taken from the length \n"
03776           "of the given vector (typically y).\n"
03777           "   Use this function before the WF calculations are started and\n"
03778           "together with kbPutInK.\n"
03779           "\n"
03780           "Generic input: \n"
03781           "   Vector : A vector with same length as the appended spectra.\n"
03782           "            The typical choice is *y*.\n"
03783           "\n"
03784           "Keywords \n"
03785           "  ni : Number of retrieval identities (species profiles,\n"
03786           "              pointing off-set etc.).\n"
03787           "  nb : Final length of b."),
03788         OUTPUT( kb_, kb_names_, kb_lengths_, kb_aux_ ),
03789         INPUT(),
03790         GOUTPUT(),
03791         GINPUT( Vector_ ),
03792         KEYWORDS( "ni",  "nb"  ),
03793         TYPES(    Index_t, Index_t )));
03794 
03795   md_data.push_back
03796     ( MdRecord
03797       ( NAME("kxPutInK"),
03798         DESCRIPTION(
03799           "Puts K in Kx and handles additional data correspondingly.\n"
03800           "\n"
03801           "K is placed in the first free columns of Kx.\n"
03802           "   No reallocation is performed (in contrast to kxAppend) and an\n"
03803           "error message is given if k does not fit into kx. The kx-data are\n"
03804           "allocated by the function kxAllocate."),
03805         OUTPUT( kx_, kx_names_, kx_lengths_, kx_aux_ ),
03806         INPUT( kx_, kx_names_, kx_lengths_, kx_aux_, k_, k_names_, k_aux_ ),
03807         GOUTPUT(),
03808         GINPUT(),
03809         KEYWORDS(),
03810         TYPES()));
03811 
03812   md_data.push_back
03813     ( MdRecord
03814       ( NAME("kbPutInK"),
03815         DESCRIPTION(
03816           "Puts K in Kb and handles additional data correspondingly.\n"
03817           "\n"
03818           "K is placed in the first free columns of Kb.\n"
03819           "   No reallocation is performed (in contrast to kbAppend) and an\n"
03820           "error message is given if k does not fit into kb. The kb-data are\n"
03821           "allocated by the function kbAllocate."),
03822         OUTPUT( kb_, kb_names_, kb_lengths_, kb_aux_ ),
03823         INPUT( kb_, kb_names_, kb_lengths_, kb_aux_, k_, k_names_, k_aux_ ),
03824         GOUTPUT(),
03825         GINPUT(),
03826         KEYWORDS(),
03827         TYPES()));
03828 
03829 
03830 
03831 
03832 
03833 
03834 
03835   md_data.push_back
03836     ( MdRecord
03837       ( NAME("ybatchCalc"),
03838         DESCRIPTION(
03839           "Calculates a batch of spectra from a set of profiles and\n"
03840           "frequency and viewing angle grids.\n"
03841           "The following workspace methods are used:\n"
03842           "   absCalc    \n"
03843           "   losCalc    \n"
03844           "   sourceCalc \n"
03845           "   transCalc  \n"
03846           "   yCalc  \n"
03847           "and all the workspace variables needed by these functions must be\n"
03848           "set before starting this method.\n"
03849           "The refractive index is kept constant for all spectra.\n"
03850           "The values of the workspace variables are used as defaults when\n"
03851           "appropiate. For example, if temperature profiles are not read\n"
03852           "from a file (do_t=0), then the values of t_abs are used for all\n"
03853           "spectra.\n"
03854           "All input files shall be readable by MatrixReadBinary.\n"
03855           "The profiles and grids are stored as columns in the file matrix.\n"
03856           "When a filename is empty (""), filenames are created as:\n"
03857           "   batchname.XXX.ab \n"
03858           "where XXX is\n"
03859           "   t_abs     : For temperature profiles.\n" 
03860           "   z_abs     : For vertical altitude grids.\n" 
03861           "   f_mono    : For frequency grids.\n" 
03862           "   za_pencil : For zenith angle grids.\n" 
03863           "For species XXX is the molecule name, e.g. H2O and O3.\n" 
03864           "If a filename is given, batchname is ignored.\n"
03865           "When a flag is 0, the corresponding filename is of no importance.\n"
03866           "The length of profiles (t, z and species) must match p_abs (no\n"
03867           "interpolation is performed).\n" 
03868           "\n"
03869           "Keywords \n"
03870           "  ncalc     : The number of spectra to calculate. The files can\n"
03871           "              contain data for more spectra (but not less).\n"
03872           "  do_t      : Temperature flag (0/1).\n"
03873           "  t_file    : Filename for temperature data.\n"
03874           "  do_z      : Vertical altitude flag (0/1).\n"
03875           "  z_file    : Filename for vertical grid data.\n"
03876           "  do_f      : Frequency flag (0/1).\n"
03877           "  f_file    : Filename for frequency data.\n"
03878           "  do_za     : Zenith angle flag (0/1).\n"
03879           "  za_file   : Filename for zenith angle data.\n"
03880           "  do_tags   : This String array gives the tags for which profiles\n"
03881           "              shall be read from a file, e.g. [\"H2O\",\"O3\"].\n"
03882           "              These tags must match some tag in tags.\n"
03883           "  tag_files : Filenames for species data."),
03884         OUTPUT( ybatch_ ),
03885         INPUT( 
03886                f_mono_, p_abs_, t_abs_, n2_abs_, h2o_abs_, vmrs_, 
03887                lines_per_tg_, lineshape_, 
03888                
03889                z_abs_, z_plat_ ,za_pencil_, l_step_, refr_, 
03890                refr_lfac_, refr_index_, z_ground_, r_geoid_,
03891                
03892                emission_, y_space_, e_ground_, t_ground_,
03893                
03894                batchname_, tgs_, cont_description_names_, cont_description_parameters_,
03895                cont_description_models_),
03896         GOUTPUT(),
03897         GINPUT(),
03898         KEYWORDS("ncalc", "do_t", "t_file", "do_z", "z_file",
03899                  "do_tags", "tag_files",
03900                  "do_f", "f_file", "do_za", "za_file"),
03901         TYPES(   Index_t,   Index_t,  String_t, Index_t,  String_t, 
03902                  Array_String_t, Array_String_t,
03903                  Index_t,  String_t, Index_t,   String_t  )));
03904 
03905   
03906   md_data.push_back
03907     ( MdRecord
03908       ( NAME("ybatchFromRadiosonde"),
03909         DESCRIPTION
03910         ("Calculate spectra for a batch of radiosonde data."
03911          "\n"
03912          "   We set the oxygen and nitrogen VMR to constant values of 0.209 and\n"
03913          "0.782, respectively. Some other methods are called implicitly by this\n"
03914          "method. Specifically:\n"
03915          "- absCalc\n"
03916          "- refrCalc\n"
03917          "- losCalc\n"
03918          "- sourceCalc\n"
03919          "- transCalc\n"
03920          "- yCalc\n"
03921          "\n"
03922          "Keywords: \n"
03923          "\n"
03924          "  finegrid : Flag for a fine *p_abs* grid, 0 = Radiosonde levels, 1 = finer grid. \n"
03925          "\n"
03926          "If the keyword finegrid is set to 0 (finegrid = 0),\n"
03927          "absorption coeff. are calculated on the same grid as in the radiosonde launch.\n" 
03928          "It does not check whether the launch has reached up to a certain height. \n"
03929          "\n"
03930          "If finegrid = 1, the absorption is calculated on a very fine grid (about 15 m)\n"
03931          "which is finer than the high resolution radiosonde levels (about 60 m). In this\n"
03932          "case *p_abs* grid is only up to 100 hPa so that we assume there is no atmosphere\n"
03933          "above this pressure level. The RT calculation is not done for any profile which\n"
03934          "do not fly up to 100 hPa. In this case we put -1 as the Tbs for all the frequencies.\n"
03935          "Planck brightness temperature is calculated for all the launches those reach 100 hPa.\n"
03936          "Note that *l_step* which is given by the user in the control file should be less than\n"
03937          "15 m, may be 5 m.\n"
03938          "\n"
03939          "  interp_rh : Flag for interpolation of H2O profile in RH\n"
03940          "  0 = Normal ARTS interpolation in VMRs\n"
03941          "  1 = Interpolation in RH.\n"
03942          "\n"
03943          "  za_per_profile : Flag for giving separate za_pencils for each profile\n"
03944          "\n"
03945          "  0 = As before, za_pencil(s) will be same for all profiles\n"
03946          "  1 = separate za_pencil for each profile\n"
03947          "If this keyword is set to 1, please make sure that the number of elements\n"
03948          "in the za_pencil and the number of radiosonde profiles are the same. The\n"
03949          "function now assumes that first element of the za_pencil is for the first\n"
03950          "radiosonde profile and the second element of the za_pencil is for the second\n"
03951          "radiosonde profile and so on.\n"
03952          "\n"
03953          "  e_ground_per_profile : Flag for giving separate e_ground for each profile\n"
03954          "\n"
03955          "This assumes that same emissivity is used for all the given frequencies.\n"
03956          "\n"
03957          "calc_abs: Flag for storing the absorption coefficients.\n"
03958          "\n"
03959          "calc_abs: Flag for calculating Jacobian(only for H2O).\n"),
03960         OUTPUT( ybatch_, absbatch_, jacbatch_ ),
03961         INPUT( 
03962                radiosonde_data_, f_mono_, lines_per_tg_, lineshape_, 
03963                
03964                z_plat_ ,za_pencil_, l_step_, refr_, refr_model_,
03965                refr_lfac_, r_geoid_,
03966                
03967                emission_, y_space_, e_ground_, 
03968                
03969                tgs_, 
03970                cont_description_names_, 
03971                cont_description_models_, 
03972                cont_description_parameters_ ),
03973         GOUTPUT(),
03974         GINPUT(),
03975         KEYWORDS("finegrid", "interp_rh", "za_per_profile", "e_ground_per_profile", "calc_abs", "calc_jac"),
03976         TYPES(  Index_t, Index_t, Index_t, Index_t, Index_t, Index_t )));
03977 
03978 md_data.push_back
03979     ( MdRecord
03980       ( NAME("ybatchFromRadiosondeGlobal"),
03981         DESCRIPTION
03982         ("Calculate spectra for a batch of Global radiosonde data."
03983          "\n"
03984          "This method is almost similar to #ybatchFromRadiosonde#. Since the pressure \n"
03985          "grid in the global radiosonde data is coarse it is to be interpolated in a \n"
03986          "fine grid.\n"
03987          "\n"
03988          "   We set the oxygen and nitrogen VMR to constant values of 0.209 and\n"
03989          "0.782, respectively. Some other methods are called implicitly by this\n"
03990          "method. Specifically:\n"
03991          "- absCalc\n"
03992          "- refrCalc\n"
03993          "- losCalc\n"
03994          "- sourceCalc\n"
03995          "- transCalc\n"
03996          "- yCalc"),
03997         OUTPUT( ybatch_ ),
03998         INPUT( 
03999                radiosonde_data_, f_mono_, lines_per_tg_, lineshape_, 
04000                
04001                z_plat_ ,za_pencil_, l_step_, refr_, refr_model_,
04002                refr_lfac_, r_geoid_,
04003                
04004                emission_, y_space_, e_ground_, 
04005                
04006                tgs_, 
04007                cont_description_names_, 
04008                cont_description_models_, 
04009                cont_description_parameters_ ),
04010         GOUTPUT(),
04011         GINPUT(),
04012         KEYWORDS(),
04013         TYPES(     )));
04014 
04015 
04016 
04017 
04018 
04019   md_data.push_back
04020     ( MdRecord
04021       ( NAME("MethodListDefine"),
04022         DESCRIPTION
04023         ( "Set up a method list.\n"
04024           "\n"
04025           "A method list just contains indices (in md_data) of methods\n"
04026           "intended for sequential execution. Only methods without keyword\n"
04027           "arguments are allowed. It is the task of this method to\n"
04028           "set this up. For example, it must be checked, whether the given\n"
04029           "names really correspond to methods.\n"
04030           "\n"
04031           "Generic Output:\n"
04032           "   ArrayOfIndex : The newly generated method list.\n"
04033           "\n"
04034           "Keywords:\n"
04035           "   methods      : An array of names of methods." ),
04036         OUTPUT(  ),
04037         INPUT(  ),
04038         GOUTPUT( ArrayOfIndex_ ),
04039         GINPUT(),
04040         KEYWORDS( "methods" ),
04041         TYPES(    Array_String_t )));
04042 
04043 }
04044