00001 
00002 
00003 
00004 
00005 #include "arts.h"
00006 #include "make_array.h"
00007 #include "auto_md.h"
00008 #include "auto_wsv_groups.h"
00009 #include "wsv_aux.h"
00010 
00011 
00012 extern const Array<WsvP*> wsv_pointers;
00013 
00014 
00015 extern const Array<WsvRecord> wsv_data;
00016 
00017 void Echo_g(WorkSpace&, const MRecord& mr)
00018 {
00019   Echo(mr.Values()[0],
00020        mr.Values()[1]);
00021 }
00022 
00023 void Exit_g(WorkSpace&, const MRecord&)
00024 {
00025   Exit();
00026 }
00027 
00028 void Test_g(WorkSpace&, const MRecord&)
00029 {
00030   Test();
00031 }
00032 
00033 void IndexSet_g(WorkSpace&, const MRecord& mr)
00034 {
00035   Index *GO0 = *wsv_pointers[mr.Output()[0]];
00036   IndexSet(*GO0,
00037            wsv_data[mr.Output()[0]].Name(),
00038            mr.Values()[0]);
00039 }
00040 
00041 void IndexWriteAscii_g(WorkSpace&, const MRecord& mr)
00042 {
00043   Index *GI0 = *wsv_pointers[mr.Input()[0]];
00044   IndexWriteAscii(*GI0,
00045                   wsv_data[mr.Input()[0]].Name(),
00046                   mr.Values()[0]);
00047 }
00048 
00049 void IndexReadAscii_g(WorkSpace&, const MRecord& mr)
00050 {
00051   Index *GO0 = *wsv_pointers[mr.Output()[0]];
00052   IndexReadAscii(*GO0,
00053                  wsv_data[mr.Output()[0]].Name(),
00054                  mr.Values()[0]);
00055 }
00056 
00057 void IndexWriteBinary_g(WorkSpace&, const MRecord& mr)
00058 {
00059   Index *GI0 = *wsv_pointers[mr.Input()[0]];
00060   IndexWriteBinary(*GI0,
00061                    wsv_data[mr.Input()[0]].Name(),
00062                    mr.Values()[0]);
00063 }
00064 
00065 void IndexReadBinary_g(WorkSpace&, const MRecord& mr)
00066 {
00067   Index *GO0 = *wsv_pointers[mr.Output()[0]];
00068   IndexReadBinary(*GO0,
00069                   wsv_data[mr.Output()[0]].Name(),
00070                   mr.Values()[0]);
00071 }
00072 
00073 void NumericSet_g(WorkSpace&, const MRecord& mr)
00074 {
00075   Numeric *GO0 = *wsv_pointers[mr.Output()[0]];
00076   NumericSet(*GO0,
00077              wsv_data[mr.Output()[0]].Name(),
00078              mr.Values()[0]);
00079 }
00080 
00081 void NumericCopyFirstOfVector_g(WorkSpace&, const MRecord& mr)
00082 {
00083   Numeric *GO0 = *wsv_pointers[mr.Output()[0]];
00084   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00085   NumericCopyFirstOfVector(*GO0,
00086                            wsv_data[mr.Output()[0]].Name(),
00087                            *GI0,
00088                            wsv_data[mr.Input()[0]].Name());
00089 }
00090 
00091 void NumericCopyLastOfVector_g(WorkSpace&, const MRecord& mr)
00092 {
00093   Numeric *GO0 = *wsv_pointers[mr.Output()[0]];
00094   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00095   NumericCopyLastOfVector(*GO0,
00096                           wsv_data[mr.Output()[0]].Name(),
00097                           *GI0,
00098                           wsv_data[mr.Input()[0]].Name());
00099 }
00100 
00101 void NumericWriteAscii_g(WorkSpace&, const MRecord& mr)
00102 {
00103   Numeric *GI0 = *wsv_pointers[mr.Input()[0]];
00104   NumericWriteAscii(*GI0,
00105                     wsv_data[mr.Input()[0]].Name(),
00106                     mr.Values()[0]);
00107 }
00108 
00109 void NumericReadAscii_g(WorkSpace&, const MRecord& mr)
00110 {
00111   Numeric *GO0 = *wsv_pointers[mr.Output()[0]];
00112   NumericReadAscii(*GO0,
00113                    wsv_data[mr.Output()[0]].Name(),
00114                    mr.Values()[0]);
00115 }
00116 
00117 void NumericWriteBinary_g(WorkSpace&, const MRecord& mr)
00118 {
00119   Numeric *GI0 = *wsv_pointers[mr.Input()[0]];
00120   NumericWriteBinary(*GI0,
00121                      wsv_data[mr.Input()[0]].Name(),
00122                      mr.Values()[0]);
00123 }
00124 
00125 void NumericReadBinary_g(WorkSpace&, const MRecord& mr)
00126 {
00127   Numeric *GO0 = *wsv_pointers[mr.Output()[0]];
00128   NumericReadBinary(*GO0,
00129                     wsv_data[mr.Output()[0]].Name(),
00130                     mr.Values()[0]);
00131 }
00132 
00133 void VectorCopy_g(WorkSpace&, const MRecord& mr)
00134 {
00135   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00136   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00137   VectorCopy(*GO0,
00138              wsv_data[mr.Output()[0]].Name(),
00139              *GI0,
00140              wsv_data[mr.Input()[0]].Name());
00141 }
00142 
00143 void VectorCopyFromMatrix_g(WorkSpace&, const MRecord& mr)
00144 {
00145   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00146   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00147   VectorCopyFromMatrix(*GO0,
00148                        wsv_data[mr.Output()[0]].Name(),
00149                        *GI0,
00150                        wsv_data[mr.Input()[0]].Name(),
00151                        mr.Values()[0],
00152                        mr.Values()[1]);
00153 }
00154 
00155 void VectorSet_g(WorkSpace&, const MRecord& mr)
00156 {
00157   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00158   VectorSet(*GO0,
00159             wsv_data[mr.Output()[0]].Name(),
00160             mr.Values()[0],
00161             mr.Values()[1]);
00162 }
00163 
00164 void VectorSetLengthFromVector_g(WorkSpace&, const MRecord& mr)
00165 {
00166   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00167   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00168   VectorSetLengthFromVector(*GO0,
00169                             wsv_data[mr.Output()[0]].Name(),
00170                             *GI0,
00171                             wsv_data[mr.Input()[0]].Name(),
00172                             mr.Values()[0]);
00173 }
00174 
00175 void VectorLinSpace_g(WorkSpace&, const MRecord& mr)
00176 {
00177   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00178   VectorLinSpace(*GO0,
00179                  wsv_data[mr.Output()[0]].Name(),
00180                  mr.Values()[0],
00181                  mr.Values()[1],
00182                  mr.Values()[2]);
00183 }
00184 
00185 void VectorNLinSpace_g(WorkSpace&, const MRecord& mr)
00186 {
00187   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00188   VectorNLinSpace(*GO0,
00189                   wsv_data[mr.Output()[0]].Name(),
00190                   mr.Values()[0],
00191                   mr.Values()[1],
00192                   mr.Values()[2]);
00193 }
00194 
00195 void VectorNLogSpace_g(WorkSpace&, const MRecord& mr)
00196 {
00197   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00198   VectorNLogSpace(*GO0,
00199                   wsv_data[mr.Output()[0]].Name(),
00200                   mr.Values()[0],
00201                   mr.Values()[1],
00202                   mr.Values()[2]);
00203 }
00204 
00205 void VectorPressuresForLinAltitudes_g(WorkSpace& ws, const MRecord& mr)
00206 {
00207   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00208   VectorPressuresForLinAltitudes(*GO0,
00209                                  wsv_data[mr.Output()[0]].Name(),
00210                                  ws.p_abs,
00211                                  ws.z_abs,
00212                                  mr.Values()[0],
00213                                  mr.Values()[1],
00214                                  mr.Values()[2]);
00215 }
00216 
00217 void VectorFlip_g(WorkSpace&, const MRecord& mr)
00218 {
00219   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00220   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00221   VectorFlip(*GO0,
00222              wsv_data[mr.Output()[0]].Name(),
00223              *GI0,
00224              wsv_data[mr.Input()[0]].Name());
00225 }
00226 
00227 void VectorMatrixMultiply_g(WorkSpace&, const MRecord& mr)
00228 {
00229   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00230   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00231   Vector *GI1 = *wsv_pointers[mr.Input()[1]];
00232   VectorMatrixMultiply(*GO0,
00233                        wsv_data[mr.Output()[0]].Name(),
00234                        *GI0,
00235                        *GI1,
00236                        wsv_data[mr.Input()[0]].Name(),
00237                        wsv_data[mr.Input()[1]].Name());
00238 }
00239 
00240 void VectorWriteAscii_g(WorkSpace&, const MRecord& mr)
00241 {
00242   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00243   VectorWriteAscii(*GI0,
00244                    wsv_data[mr.Input()[0]].Name(),
00245                    mr.Values()[0]);
00246 }
00247 
00248 void VectorReadAscii_g(WorkSpace&, const MRecord& mr)
00249 {
00250   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00251   VectorReadAscii(*GO0,
00252                   wsv_data[mr.Output()[0]].Name(),
00253                   mr.Values()[0]);
00254 }
00255 
00256 void VectorWriteBinary_g(WorkSpace&, const MRecord& mr)
00257 {
00258   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00259   VectorWriteBinary(*GI0,
00260                     wsv_data[mr.Input()[0]].Name(),
00261                     mr.Values()[0]);
00262 }
00263 
00264 void VectorReadBinary_g(WorkSpace&, const MRecord& mr)
00265 {
00266   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00267   VectorReadBinary(*GO0,
00268                    wsv_data[mr.Output()[0]].Name(),
00269                    mr.Values()[0]);
00270 }
00271 
00272 void VectorPlanck_g(WorkSpace&, const MRecord& mr)
00273 {
00274   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00275   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00276   VectorPlanck(*GO0,
00277                wsv_data[mr.Output()[0]].Name(),
00278                *GI0,
00279                wsv_data[mr.Input()[0]].Name(),
00280                mr.Values()[0]);
00281 }
00282 
00283 void VectorCalcLog10_g(WorkSpace&, const MRecord& mr)
00284 {
00285   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00286   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00287   VectorCalcLog10(*GO0,
00288                   wsv_data[mr.Output()[0]].Name(),
00289                   *GI0,
00290                   wsv_data[mr.Input()[0]].Name());
00291 }
00292 
00293 void VectorAdd_g(WorkSpace&, const MRecord& mr)
00294 {
00295   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00296   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00297   VectorAdd(*GO0,
00298             wsv_data[mr.Output()[0]].Name(),
00299             *GI0,
00300             wsv_data[mr.Input()[0]].Name(),
00301             mr.Values()[0]);
00302 }
00303 
00304 void VectorScale_g(WorkSpace&, const MRecord& mr)
00305 {
00306   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
00307   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00308   VectorScale(*GO0,
00309               wsv_data[mr.Output()[0]].Name(),
00310               *GI0,
00311               wsv_data[mr.Input()[0]].Name(),
00312               mr.Values()[0]);
00313 }
00314 
00315 void MatrixSet_g(WorkSpace&, const MRecord& mr)
00316 {
00317   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00318   MatrixSet(*GO0,
00319             wsv_data[mr.Output()[0]].Name(),
00320             mr.Values()[0],
00321             mr.Values()[1],
00322             mr.Values()[2]);
00323 }
00324 
00325 void MatrixCopy_g(WorkSpace&, const MRecord& mr)
00326 {
00327   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00328   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00329   MatrixCopy(*GO0,
00330              wsv_data[mr.Output()[0]].Name(),
00331              *GI0,
00332              wsv_data[mr.Input()[0]].Name());
00333 }
00334 
00335 void MatrixFillWithVector_g(WorkSpace&, const MRecord& mr)
00336 {
00337   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00338   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
00339   MatrixFillWithVector(*GO0,
00340                        wsv_data[mr.Output()[0]].Name(),
00341                        *GI0,
00342                        wsv_data[mr.Input()[0]].Name(),
00343                        mr.Values()[0]);
00344 }
00345 
00346 void MatrixMatrixMultiply_g(WorkSpace&, const MRecord& mr)
00347 {
00348   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00349   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00350   Matrix *GI1 = *wsv_pointers[mr.Input()[1]];
00351   MatrixMatrixMultiply(*GO0,
00352                        wsv_data[mr.Output()[0]].Name(),
00353                        *GI0,
00354                        *GI1,
00355                        wsv_data[mr.Input()[0]].Name(),
00356                        wsv_data[mr.Input()[1]].Name());
00357 }
00358 
00359 void ArrayOfMatrixMatrixMultiply_g(WorkSpace&, const MRecord& mr)
00360 {
00361   ArrayOfMatrix *GO0 = *wsv_pointers[mr.Output()[0]];
00362   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00363   ArrayOfMatrix *GI1 = *wsv_pointers[mr.Input()[1]];
00364   ArrayOfMatrixMatrixMultiply(*GO0,
00365                               wsv_data[mr.Output()[0]].Name(),
00366                               *GI0,
00367                               *GI1,
00368                               wsv_data[mr.Input()[0]].Name(),
00369                               wsv_data[mr.Input()[1]].Name());
00370 }
00371 
00372 void MatrixMatrixAdd_g(WorkSpace&, const MRecord& mr)
00373 {
00374   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00375   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00376   Matrix *GI1 = *wsv_pointers[mr.Input()[1]];
00377   MatrixMatrixAdd(*GO0,
00378                   wsv_data[mr.Output()[0]].Name(),
00379                   *GI0,
00380                   *GI1,
00381                   wsv_data[mr.Input()[0]].Name(),
00382                   wsv_data[mr.Input()[1]].Name());
00383 }
00384 
00385 void MatrixWriteAscii_g(WorkSpace&, const MRecord& mr)
00386 {
00387   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00388   MatrixWriteAscii(*GI0,
00389                    wsv_data[mr.Input()[0]].Name(),
00390                    mr.Values()[0]);
00391 }
00392 
00393 void MatrixReadAscii_g(WorkSpace&, const MRecord& mr)
00394 {
00395   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00396   MatrixReadAscii(*GO0,
00397                   wsv_data[mr.Output()[0]].Name(),
00398                   mr.Values()[0]);
00399 }
00400 
00401 void MatrixWriteBinary_g(WorkSpace&, const MRecord& mr)
00402 {
00403   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00404   MatrixWriteBinary(*GI0,
00405                     wsv_data[mr.Input()[0]].Name(),
00406                     mr.Values()[0]);
00407 }
00408 
00409 void MatrixReadBinary_g(WorkSpace&, const MRecord& mr)
00410 {
00411   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00412   MatrixReadBinary(*GO0,
00413                    wsv_data[mr.Output()[0]].Name(),
00414                    mr.Values()[0]);
00415 }
00416 
00417 void MatrixScale_g(WorkSpace&, const MRecord& mr)
00418 {
00419   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00420   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
00421   MatrixScale(*GO0,
00422               wsv_data[mr.Output()[0]].Name(),
00423               *GI0,
00424               wsv_data[mr.Input()[0]].Name(),
00425               mr.Values()[0]);
00426 }
00427 
00428 void MatrixDiagonal_g(WorkSpace&, const MRecord& mr)
00429 {
00430   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
00431   MatrixDiagonal(*GO0,
00432                  wsv_data[mr.Output()[0]].Name(),
00433                  mr.Values()[0],
00434                  mr.Values()[1]);
00435 }
00436 
00437 void ArrayOfIndexWriteAscii_g(WorkSpace&, const MRecord& mr)
00438 {
00439   ArrayOfIndex *GI0 = *wsv_pointers[mr.Input()[0]];
00440   ArrayOfIndexWriteAscii(*GI0,
00441                          wsv_data[mr.Input()[0]].Name(),
00442                          mr.Values()[0]);
00443 }
00444 
00445 void ArrayOfIndexReadAscii_g(WorkSpace&, const MRecord& mr)
00446 {
00447   ArrayOfIndex *GO0 = *wsv_pointers[mr.Output()[0]];
00448   ArrayOfIndexReadAscii(*GO0,
00449                         wsv_data[mr.Output()[0]].Name(),
00450                         mr.Values()[0]);
00451 }
00452 
00453 void ArrayOfIndexWriteBinary_g(WorkSpace&, const MRecord& mr)
00454 {
00455   ArrayOfIndex *GI0 = *wsv_pointers[mr.Input()[0]];
00456   ArrayOfIndexWriteBinary(*GI0,
00457                           wsv_data[mr.Input()[0]].Name(),
00458                           mr.Values()[0]);
00459 }
00460 
00461 void ArrayOfIndexReadBinary_g(WorkSpace&, const MRecord& mr)
00462 {
00463   ArrayOfIndex *GO0 = *wsv_pointers[mr.Output()[0]];
00464   ArrayOfIndexReadBinary(*GO0,
00465                          wsv_data[mr.Output()[0]].Name(),
00466                          mr.Values()[0]);
00467 }
00468 
00469 void ArrayOfVectorWriteAscii_g(WorkSpace&, const MRecord& mr)
00470 {
00471   ArrayOfVector *GI0 = *wsv_pointers[mr.Input()[0]];
00472   ArrayOfVectorWriteAscii(*GI0,
00473                           wsv_data[mr.Input()[0]].Name(),
00474                           mr.Values()[0]);
00475 }
00476 
00477 void ArrayOfVectorReadAscii_g(WorkSpace&, const MRecord& mr)
00478 {
00479   ArrayOfVector *GO0 = *wsv_pointers[mr.Output()[0]];
00480   ArrayOfVectorReadAscii(*GO0,
00481                          wsv_data[mr.Output()[0]].Name(),
00482                          mr.Values()[0]);
00483 }
00484 
00485 void ArrayOfVectorWriteBinary_g(WorkSpace&, const MRecord& mr)
00486 {
00487   ArrayOfVector *GI0 = *wsv_pointers[mr.Input()[0]];
00488   ArrayOfVectorWriteBinary(*GI0,
00489                            wsv_data[mr.Input()[0]].Name(),
00490                            mr.Values()[0]);
00491 }
00492 
00493 void ArrayOfVectorReadBinary_g(WorkSpace&, const MRecord& mr)
00494 {
00495   ArrayOfVector *GO0 = *wsv_pointers[mr.Output()[0]];
00496   ArrayOfVectorReadBinary(*GO0,
00497                           wsv_data[mr.Output()[0]].Name(),
00498                           mr.Values()[0]);
00499 }
00500 
00501 void ArrayOfMatrixWriteAscii_g(WorkSpace&, const MRecord& mr)
00502 {
00503   ArrayOfMatrix *GI0 = *wsv_pointers[mr.Input()[0]];
00504   ArrayOfMatrixWriteAscii(*GI0,
00505                           wsv_data[mr.Input()[0]].Name(),
00506                           mr.Values()[0]);
00507 }
00508 
00509 void ArrayOfMatrixReadAscii_g(WorkSpace&, const MRecord& mr)
00510 {
00511   ArrayOfMatrix *GO0 = *wsv_pointers[mr.Output()[0]];
00512   ArrayOfMatrixReadAscii(*GO0,
00513                          wsv_data[mr.Output()[0]].Name(),
00514                          mr.Values()[0]);
00515 }
00516 
00517 void ArrayOfMatrixWriteBinary_g(WorkSpace&, const MRecord& mr)
00518 {
00519   ArrayOfMatrix *GI0 = *wsv_pointers[mr.Input()[0]];
00520   ArrayOfMatrixWriteBinary(*GI0,
00521                            wsv_data[mr.Input()[0]].Name(),
00522                            mr.Values()[0]);
00523 }
00524 
00525 void ArrayOfMatrixReadBinary_g(WorkSpace&, const MRecord& mr)
00526 {
00527   ArrayOfMatrix *GO0 = *wsv_pointers[mr.Output()[0]];
00528   ArrayOfMatrixReadBinary(*GO0,
00529                           wsv_data[mr.Output()[0]].Name(),
00530                           mr.Values()[0]);
00531 }
00532 
00533 void StringSet_g(WorkSpace&, const MRecord& mr)
00534 {
00535   String *GO0 = *wsv_pointers[mr.Output()[0]];
00536   StringSet(*GO0,
00537             wsv_data[mr.Output()[0]].Name(),
00538             mr.Values()[0]);
00539 }
00540 
00541 void StringWriteAscii_g(WorkSpace&, const MRecord& mr)
00542 {
00543   String *GI0 = *wsv_pointers[mr.Input()[0]];
00544   StringWriteAscii(*GI0,
00545                    wsv_data[mr.Input()[0]].Name(),
00546                    mr.Values()[0]);
00547 }
00548 
00549 void StringReadAscii_g(WorkSpace&, const MRecord& mr)
00550 {
00551   String *GO0 = *wsv_pointers[mr.Output()[0]];
00552   StringReadAscii(*GO0,
00553                   wsv_data[mr.Output()[0]].Name(),
00554                   mr.Values()[0]);
00555 }
00556 
00557 void StringWriteBinary_g(WorkSpace&, const MRecord& mr)
00558 {
00559   String *GI0 = *wsv_pointers[mr.Input()[0]];
00560   StringWriteBinary(*GI0,
00561                     wsv_data[mr.Input()[0]].Name(),
00562                     mr.Values()[0]);
00563 }
00564 
00565 void StringReadBinary_g(WorkSpace&, const MRecord& mr)
00566 {
00567   String *GO0 = *wsv_pointers[mr.Output()[0]];
00568   StringReadBinary(*GO0,
00569                    wsv_data[mr.Output()[0]].Name(),
00570                    mr.Values()[0]);
00571 }
00572 
00573 void ArrayOfStringSet_g(WorkSpace&, const MRecord& mr)
00574 {
00575   ArrayOfString *GO0 = *wsv_pointers[mr.Output()[0]];
00576   ArrayOfStringSet(*GO0,
00577                    wsv_data[mr.Output()[0]].Name(),
00578                    mr.Values()[0]);
00579 }
00580 
00581 void ArrayOfStringWriteAscii_g(WorkSpace&, const MRecord& mr)
00582 {
00583   ArrayOfString *GI0 = *wsv_pointers[mr.Input()[0]];
00584   ArrayOfStringWriteAscii(*GI0,
00585                           wsv_data[mr.Input()[0]].Name(),
00586                           mr.Values()[0]);
00587 }
00588 
00589 void ArrayOfStringReadAscii_g(WorkSpace&, const MRecord& mr)
00590 {
00591   ArrayOfString *GO0 = *wsv_pointers[mr.Output()[0]];
00592   ArrayOfStringReadAscii(*GO0,
00593                          wsv_data[mr.Output()[0]].Name(),
00594                          mr.Values()[0]);
00595 }
00596 
00597 void ArrayOfStringWriteBinary_g(WorkSpace&, const MRecord& mr)
00598 {
00599   ArrayOfString *GI0 = *wsv_pointers[mr.Input()[0]];
00600   ArrayOfStringWriteBinary(*GI0,
00601                            wsv_data[mr.Input()[0]].Name(),
00602                            mr.Values()[0]);
00603 }
00604 
00605 void ArrayOfStringReadBinary_g(WorkSpace&, const MRecord& mr)
00606 {
00607   ArrayOfString *GO0 = *wsv_pointers[mr.Output()[0]];
00608   ArrayOfStringReadBinary(*GO0,
00609                           wsv_data[mr.Output()[0]].Name(),
00610                           mr.Values()[0]);
00611 }
00612 
00613 void TagGroupsSpeciesWriteAscii_g(WorkSpace&, const MRecord& mr)
00614 {
00615   TagGroups *GI0 = *wsv_pointers[mr.Input()[0]];
00616   TagGroupsSpeciesWriteAscii(*GI0,
00617                              wsv_data[mr.Input()[0]].Name(),
00618                              mr.Values()[0]);
00619 }
00620 
00621 void LosWriteBinary_g(WorkSpace&, const MRecord& mr)
00622 {
00623   Los *GI0 = *wsv_pointers[mr.Input()[0]];
00624   LosWriteBinary(*GI0,
00625                  wsv_data[mr.Input()[0]].Name(),
00626                  mr.Values()[0]);
00627 }
00628 
00629 void LosReadBinary_g(WorkSpace&, const MRecord& mr)
00630 {
00631   Los *GO0 = *wsv_pointers[mr.Output()[0]];
00632   LosReadBinary(*GO0,
00633                 wsv_data[mr.Output()[0]].Name(),
00634                 mr.Values()[0]);
00635 }
00636 
00637 void lines_per_tgSetEmpty_g(WorkSpace& ws, const MRecord&)
00638 {
00639   lines_per_tgSetEmpty(ws.lines_per_tg,
00640                        ws.tgs);
00641 }
00642 
00643 void lines_per_tgReadFromCatalogues_g(WorkSpace& ws, const MRecord& mr)
00644 {
00645   lines_per_tgReadFromCatalogues(ws.lines_per_tg,
00646                                  ws.tgs,
00647                                  mr.Values()[0],
00648                                  mr.Values()[1],
00649                                  mr.Values()[2],
00650                                  mr.Values()[3]);
00651 }
00652 
00653 void linesReadFromHitran_g(WorkSpace& ws, const MRecord& mr)
00654 {
00655   linesReadFromHitran(ws.lines,
00656                       mr.Values()[0],
00657                       mr.Values()[1],
00658                       mr.Values()[2]);
00659 }
00660 
00661 void linesReadFromHitran2004_g(WorkSpace& ws, const MRecord& mr)
00662 {
00663   linesReadFromHitran2004(ws.lines,
00664                           mr.Values()[0],
00665                           mr.Values()[1],
00666                           mr.Values()[2]);
00667 }
00668 
00669 void linesReadFromMytran2_g(WorkSpace& ws, const MRecord& mr)
00670 {
00671   linesReadFromMytran2(ws.lines,
00672                        mr.Values()[0],
00673                        mr.Values()[1],
00674                        mr.Values()[2]);
00675 }
00676 
00677 void linesReadFromJpl_g(WorkSpace& ws, const MRecord& mr)
00678 {
00679   linesReadFromJpl(ws.lines,
00680                    mr.Values()[0],
00681                    mr.Values()[1],
00682                    mr.Values()[2]);
00683 }
00684 
00685 void linesReadFromArts_g(WorkSpace& ws, const MRecord& mr)
00686 {
00687   linesReadFromArts(ws.lines,
00688                     mr.Values()[0],
00689                     mr.Values()[1],
00690                     mr.Values()[2]);
00691 }
00692 
00693 void linesElowToJoule_g(WorkSpace& ws, const MRecord&)
00694 {
00695   linesElowToJoule(ws.lines);
00696 }
00697 
00698 void lines_per_tgCreateFromLines_g(WorkSpace& ws, const MRecord&)
00699 {
00700   lines_per_tgCreateFromLines(ws.lines_per_tg,
00701                               ws.lines,
00702                               ws.tgs);
00703 }
00704 
00705 void lines_per_tgAddMirrorLines_g(WorkSpace& ws, const MRecord&)
00706 {
00707   lines_per_tgAddMirrorLines(ws.lines_per_tg);
00708 }
00709 
00710 void lines_per_tgCompact_g(WorkSpace& ws, const MRecord&)
00711 {
00712   lines_per_tgCompact(ws.lines_per_tg,
00713                       ws.lineshape,
00714                       ws.f_mono);
00715 }
00716 
00717 void linesWriteAscii_g(WorkSpace& ws, const MRecord& mr)
00718 {
00719   linesWriteAscii(ws.lines,
00720                   mr.Values()[0]);
00721 }
00722 
00723 void lines_per_tgWriteAscii_g(WorkSpace& ws, const MRecord& mr)
00724 {
00725   lines_per_tgWriteAscii(ws.lines_per_tg,
00726                          mr.Values()[0]);
00727 }
00728 
00729 void tgsDefine_g(WorkSpace& ws, const MRecord& mr)
00730 {
00731   tgsDefine(ws.tgs,
00732             mr.Values()[0]);
00733 }
00734 
00735 void tgsDefineAllInScenario_g(WorkSpace& ws, const MRecord& mr)
00736 {
00737   tgsDefineAllInScenario(ws.tgs,
00738                          mr.Values()[0]);
00739 }
00740 
00741 void lineshapeDefine_g(WorkSpace& ws, const MRecord& mr)
00742 {
00743   lineshapeDefine(ws.lineshape,
00744                   ws.tgs,
00745                   mr.Values()[0],
00746                   mr.Values()[1],
00747                   mr.Values()[2]);
00748 }
00749 
00750 void lineshape_per_tgDefine_g(WorkSpace& ws, const MRecord& mr)
00751 {
00752   lineshape_per_tgDefine(ws.lineshape,
00753                          ws.tgs,
00754                          mr.Values()[0],
00755                          mr.Values()[1],
00756                          mr.Values()[2]);
00757 }
00758 
00759 void cont_descriptionInit_g(WorkSpace& ws, const MRecord&)
00760 {
00761   cont_descriptionInit(ws.cont_description_names,
00762                        ws.cont_description_models,
00763                        ws.cont_description_parameters);
00764 }
00765 
00766 void cont_descriptionAppend_g(WorkSpace& ws, const MRecord& mr)
00767 {
00768   cont_descriptionAppend(ws.cont_description_names,
00769                          ws.cont_description_models,
00770                          ws.cont_description_parameters,
00771                          mr.Values()[0],
00772                          mr.Values()[1],
00773                          mr.Values()[2]);
00774 }
00775 
00776 void raw_vmrsReadFromFiles_g(WorkSpace& ws, const MRecord& mr)
00777 {
00778   raw_vmrsReadFromFiles(ws.raw_vmrs,
00779                         ws.tgs,
00780                         mr.Values()[0],
00781                         mr.Values()[1],
00782                         mr.Values()[2]);
00783 }
00784 
00785 void raw_vmrsReadFromScenario_g(WorkSpace& ws, const MRecord& mr)
00786 {
00787   raw_vmrsReadFromScenario(ws.raw_vmrs,
00788                            ws.tgs,
00789                            mr.Values()[0]);
00790 }
00791 
00792 void AtmFromRaw_g(WorkSpace& ws, const MRecord&)
00793 {
00794   AtmFromRaw(ws.t_abs,
00795              ws.z_abs,
00796              ws.vmrs,
00797              ws.tgs,
00798              ws.p_abs,
00799              ws.raw_ptz,
00800              ws.raw_vmrs);
00801 }
00802 
00803 void WaterVaporSaturationInClouds_g(WorkSpace& ws, const MRecord&)
00804 {
00805   WaterVaporSaturationInClouds(ws.vmrs,
00806                                ws.p_abs,
00807                                ws.t_abs,
00808                                ws.tgs);
00809 }
00810 
00811 void vmrsScale_g(WorkSpace& ws, const MRecord& mr)
00812 {
00813   vmrsScale(ws.vmrs,
00814             ws.tgs,
00815             mr.Values()[0],
00816             mr.Values()[1]);
00817 }
00818 
00819 void h2o_absSet_g(WorkSpace& ws, const MRecord&)
00820 {
00821   h2o_absSet(ws.h2o_abs,
00822              ws.tgs,
00823              ws.vmrs);
00824 }
00825 
00826 void n2_absSet_g(WorkSpace& ws, const MRecord&)
00827 {
00828   n2_absSet(ws.n2_abs,
00829             ws.tgs,
00830             ws.vmrs);
00831 }
00832 
00833 void hseSet_g(WorkSpace& ws, const MRecord& mr)
00834 {
00835   hseSet(ws.hse,
00836          mr.Values()[0],
00837          mr.Values()[1],
00838          mr.Values()[2],
00839          mr.Values()[3]);
00840 }
00841 
00842 void hseSetFromLatitude_g(WorkSpace& ws, const MRecord& mr)
00843 {
00844   hseSetFromLatitude(ws.hse,
00845                      mr.Values()[0],
00846                      mr.Values()[1],
00847                      mr.Values()[2],
00848                      mr.Values()[3]);
00849 }
00850 
00851 void hseSetFromLatitudeIndex_g(WorkSpace& ws, const MRecord& mr)
00852 {
00853   hseSetFromLatitudeIndex(ws.hse,
00854                           ws.p_abs,
00855                           ws.z_abs,
00856                           mr.Values()[0],
00857                           mr.Values()[1],
00858                           mr.Values()[2]);
00859 }
00860 
00861 void hseFromBottom_g(WorkSpace& ws, const MRecord& mr)
00862 {
00863   hseFromBottom(ws.hse,
00864                 ws.p_abs,
00865                 ws.z_abs,
00866                 mr.Values()[0],
00867                 mr.Values()[1]);
00868 }
00869 
00870 void hseOff_g(WorkSpace& ws, const MRecord&)
00871 {
00872   hseOff(ws.hse);
00873 }
00874 
00875 void hseCalc_g(WorkSpace& ws, const MRecord&)
00876 {
00877   hseCalc(ws.z_abs,
00878           ws.p_abs,
00879           ws.t_abs,
00880           ws.h2o_abs,
00881           ws.r_geoid,
00882           ws.hse);
00883 }
00884 
00885 void absCalc_g(WorkSpace& ws, const MRecord&)
00886 {
00887   absCalc(ws.abs,
00888           ws.abs_per_tg,
00889           ws.tgs,
00890           ws.f_mono,
00891           ws.p_abs,
00892           ws.t_abs,
00893           ws.n2_abs,
00894           ws.h2o_abs,
00895           ws.vmrs,
00896           ws.lines_per_tg,
00897           ws.lineshape,
00898           ws.cont_description_names,
00899           ws.cont_description_models,
00900           ws.cont_description_parameters);
00901 }
00902 
00903 void absCalcSaveMemory_g(WorkSpace& ws, const MRecord&)
00904 {
00905   absCalcSaveMemory(ws.abs,
00906                     ws.tgs,
00907                     ws.f_mono,
00908                     ws.p_abs,
00909                     ws.t_abs,
00910                     ws.n2_abs,
00911                     ws.h2o_abs,
00912                     ws.vmrs,
00913                     ws.lines_per_tg,
00914                     ws.lineshape,
00915                     ws.cont_description_names,
00916                     ws.cont_description_models,
00917                     ws.cont_description_parameters);
00918 }
00919 
00920 void absCalcFromXsec_g(WorkSpace& ws, const MRecord&)
00921 {
00922   absCalcFromXsec(ws.abs,
00923                   ws.abs_per_tg,
00924                   ws.xsec_per_tg,
00925                   ws.vmrs);
00926 }
00927 
00928 void xsec_per_tgInit_g(WorkSpace& ws, const MRecord&)
00929 {
00930   xsec_per_tgInit(ws.xsec_per_tg,
00931                   ws.tgs,
00932                   ws.f_mono,
00933                   ws.p_abs);
00934 }
00935 
00936 void xsec_per_tgAddLines_g(WorkSpace& ws, const MRecord&)
00937 {
00938   xsec_per_tgAddLines(ws.xsec_per_tg,
00939                       ws.tgs,
00940                       ws.f_mono,
00941                       ws.p_abs,
00942                       ws.t_abs,
00943                       ws.h2o_abs,
00944                       ws.vmrs,
00945                       ws.lines_per_tg,
00946                       ws.lineshape);
00947 }
00948 
00949 void xsec_per_tgAddConts_g(WorkSpace& ws, const MRecord&)
00950 {
00951   xsec_per_tgAddConts(ws.xsec_per_tg,
00952                       ws.tgs,
00953                       ws.f_mono,
00954                       ws.p_abs,
00955                       ws.t_abs,
00956                       ws.n2_abs,
00957                       ws.h2o_abs,
00958                       ws.vmrs,
00959                       ws.cont_description_names,
00960                       ws.cont_description_parameters,
00961                       ws.cont_description_models);
00962 }
00963 
00964 void abs_per_tgReduce_g(WorkSpace& ws, const MRecord&)
00965 {
00966   abs_per_tgReduce(ws.abs_per_tg,
00967                    ws.tgs,
00968                    ws.wfs_tgs);
00969 }
00970 
00971 void refrSet_g(WorkSpace& ws, const MRecord& mr)
00972 {
00973   refrSet(ws.refr,
00974           ws.refr_lfac,
00975           ws.refr_model,
00976           mr.Values()[0],
00977           mr.Values()[1],
00978           mr.Values()[2]);
00979 }
00980 
00981 void refrOff_g(WorkSpace& ws, const MRecord&)
00982 {
00983   refrOff(ws.refr,
00984           ws.refr_lfac,
00985           ws.refr_model);
00986 }
00987 
00988 void refrCalc_g(WorkSpace& ws, const MRecord&)
00989 {
00990   refrCalc(ws.refr_index,
00991            ws.p_abs,
00992            ws.t_abs,
00993            ws.h2o_abs,
00994            ws.refr,
00995            ws.refr_model);
00996 }
00997 
00998 void zaFromZtan_g(WorkSpace& ws, const MRecord& mr)
00999 {
01000   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
01001   zaFromZtan(*GO0,
01002              wsv_data[mr.Output()[0]].Name(),
01003              ws.z_tan,
01004              ws.z_plat,
01005              ws.p_abs,
01006              ws.z_abs,
01007              ws.refr,
01008              ws.refr_index,
01009              ws.r_geoid,
01010              ws.z_ground);
01011 }
01012 
01013 void zaFromDeltat_g(WorkSpace& ws, const MRecord& mr)
01014 {
01015   Vector *GO0 = *wsv_pointers[mr.Output()[0]];
01016   zaFromDeltat(*GO0,
01017                wsv_data[mr.Output()[0]].Name(),
01018                ws.z_plat,
01019                ws.p_abs,
01020                ws.z_abs,
01021                ws.l_step,
01022                ws.refr,
01023                ws.refr_lfac,
01024                ws.refr_index,
01025                ws.r_geoid,
01026                ws.z_ground,
01027                mr.Values()[0],
01028                mr.Values()[1]);
01029 }
01030 
01031 void r_geoidStd_g(WorkSpace& ws, const MRecord&)
01032 {
01033   r_geoidStd(ws.r_geoid);
01034 }
01035 
01036 void r_geoidWGS84_g(WorkSpace& ws, const MRecord& mr)
01037 {
01038   r_geoidWGS84(ws.r_geoid,
01039                mr.Values()[0],
01040                mr.Values()[1]);
01041 }
01042 
01043 void groundOff_g(WorkSpace& ws, const MRecord&)
01044 {
01045   groundOff(ws.z_ground,
01046             ws.t_ground,
01047             ws.e_ground,
01048             ws.z_abs);
01049 }
01050 
01051 void groundSet_g(WorkSpace& ws, const MRecord& mr)
01052 {
01053   groundSet(ws.z_ground,
01054             ws.t_ground,
01055             ws.e_ground,
01056             ws.p_abs,
01057             ws.t_abs,
01058             ws.z_abs,
01059             ws.f_mono,
01060             mr.Values()[0],
01061             mr.Values()[1]);
01062 }
01063 
01064 void groundAtBottom_g(WorkSpace& ws, const MRecord& mr)
01065 {
01066   groundAtBottom(ws.z_ground,
01067                  ws.t_ground,
01068                  ws.e_ground,
01069                  ws.t_abs,
01070                  ws.z_abs,
01071                  ws.f_mono,
01072                  mr.Values()[0]);
01073 }
01074 
01075 void groundFlatSea_g(WorkSpace& ws, const MRecord& mr)
01076 {
01077   groundFlatSea(ws.z_ground,
01078                 ws.t_ground,
01079                 ws.e_ground,
01080                 ws.p_abs,
01081                 ws.t_abs,
01082                 ws.z_abs,
01083                 ws.f_mono,
01084                 ws.za_pencil,
01085                 ws.z_plat,
01086                 ws.r_geoid,
01087                 ws.refr,
01088                 ws.refr_index,
01089                 mr.Values()[0],
01090                 mr.Values()[1]);
01091 }
01092 
01093 void emissionOn_g(WorkSpace& ws, const MRecord&)
01094 {
01095   emissionOn(ws.emission);
01096 }
01097 
01098 void emissionOff_g(WorkSpace& ws, const MRecord&)
01099 {
01100   emissionOff(ws.emission);
01101 }
01102 
01103 void losCalc_g(WorkSpace& ws, const MRecord&)
01104 {
01105   losCalc(ws.los,
01106           ws.z_tan,
01107           ws.z_plat,
01108           ws.za_pencil,
01109           ws.l_step,
01110           ws.p_abs,
01111           ws.z_abs,
01112           ws.refr,
01113           ws.refr_lfac,
01114           ws.refr_index,
01115           ws.z_ground,
01116           ws.r_geoid);
01117 }
01118 
01119 void sourceCalc_g(WorkSpace& ws, const MRecord&)
01120 {
01121   sourceCalc(ws.source,
01122              ws.emission,
01123              ws.los,
01124              ws.p_abs,
01125              ws.t_abs,
01126              ws.f_mono);
01127 }
01128 
01129 void transCalc_g(WorkSpace& ws, const MRecord&)
01130 {
01131   transCalc(ws.trans,
01132             ws.los,
01133             ws.p_abs,
01134             ws.abs);
01135 }
01136 
01137 void y_spaceStd_g(WorkSpace& ws, const MRecord& mr)
01138 {
01139   y_spaceStd(ws.y_space,
01140              ws.f_mono,
01141              mr.Values()[0]);
01142 }
01143 
01144 void yCalc_g(WorkSpace& ws, const MRecord&)
01145 {
01146   yCalc(ws.y,
01147         ws.emission,
01148         ws.los,
01149         ws.f_mono,
01150         ws.y_space,
01151         ws.source,
01152         ws.trans,
01153         ws.e_ground,
01154         ws.t_ground);
01155 }
01156 
01157 void sourcetransyCalcSaveMemory_g(WorkSpace& ws, const MRecord& mr)
01158 {
01159   sourcetransyCalcSaveMemory(ws.y,
01160                              ws.emission,
01161                              ws.los,
01162                              ws.p_abs,
01163                              ws.t_abs,
01164                              ws.f_mono,
01165                              ws.abs,
01166                              ws.y_space,
01167                              ws.e_ground,
01168                              ws.t_ground,
01169                              mr.Values()[0]);
01170 }
01171 
01172 void CoolingRates_g(WorkSpace& ws, const MRecord& mr)
01173 {
01174   CoolingRates(ws.coolrate,
01175                ws.l_step,
01176                ws.p_abs,
01177                ws.z_abs,
01178                ws.t_abs,
01179                ws.f_mono,
01180                ws.abs,
01181                ws.za_pencil,
01182                ws.refr,
01183                ws.refr_lfac,
01184                ws.refr_index,
01185                ws.r_geoid,
01186                ws.z_ground,
01187                ws.e_ground,
01188                ws.t_ground,
01189                ws.p_coolrate,
01190                mr.Values()[0]);
01191 }
01192 
01193 void yTB_g(WorkSpace& ws, const MRecord&)
01194 {
01195   yTB(ws.y,
01196       ws.f_mono,
01197       ws.za_pencil);
01198 }
01199 
01200 void MatrixTB_g(WorkSpace& ws, const MRecord& mr)
01201 {
01202   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
01203   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
01204   MatrixTB(*GO0,
01205            wsv_data[mr.Output()[0]].Name(),
01206            ws.f_mono,
01207            ws.za_pencil,
01208            *GI0,
01209            wsv_data[mr.Input()[0]].Name());
01210 }
01211 
01212 void yTRJ_g(WorkSpace& ws, const MRecord&)
01213 {
01214   yTRJ(ws.y,
01215        ws.f_mono,
01216        ws.za_pencil);
01217 }
01218 
01219 void MatrixTRJ_g(WorkSpace& ws, const MRecord& mr)
01220 {
01221   Matrix *GO0 = *wsv_pointers[mr.Output()[0]];
01222   Matrix *GI0 = *wsv_pointers[mr.Input()[0]];
01223   MatrixTRJ(*GO0,
01224             wsv_data[mr.Output()[0]].Name(),
01225             ws.f_mono,
01226             ws.za_pencil,
01227             *GI0,
01228             wsv_data[mr.Input()[0]].Name());
01229 }
01230 
01231 void wfs_tgsDefine_g(WorkSpace& ws, const MRecord& mr)
01232 {
01233   wfs_tgsDefine(ws.wfs_tgs,
01234                 mr.Values()[0]);
01235 }
01236 
01237 void wfss_tgsDefine_g(WorkSpace& ws, const MRecord& mr)
01238 {
01239   wfss_tgsDefine(ws.wfss_tgs,
01240                  mr.Values()[0]);
01241 }
01242 
01243 void absloswfsCalc_g(WorkSpace& ws, const MRecord&)
01244 {
01245   absloswfsCalc(ws.absloswfs,
01246                 ws.emission,
01247                 ws.los,
01248                 ws.source,
01249                 ws.trans,
01250                 ws.y,
01251                 ws.y_space,
01252                 ws.f_mono,
01253                 ws.e_ground,
01254                 ws.t_ground);
01255 }
01256 
01257 void kSpecies_g(WorkSpace& ws, const MRecord& mr)
01258 {
01259   kSpecies(ws.k,
01260            ws.k_names,
01261            ws.k_aux,
01262            ws.los,
01263            ws.absloswfs,
01264            ws.p_abs,
01265            ws.t_abs,
01266            ws.wfs_tgs,
01267            ws.abs_per_tg,
01268            ws.vmrs,
01269            ws.k_grid,
01270            mr.Values()[0]);
01271 }
01272 
01273 void kSpeciesSingle_g(WorkSpace& ws, const MRecord& mr)
01274 {
01275   kSpeciesSingle(ws.k,
01276                  ws.k_names,
01277                  ws.k_aux,
01278                  ws.los,
01279                  ws.absloswfs,
01280                  ws.p_abs,
01281                  ws.t_abs,
01282                  ws.wfs_tgs,
01283                  ws.abs_per_tg,
01284                  ws.vmrs,
01285                  ws.k_grid,
01286                  mr.Values()[0],
01287                  mr.Values()[1]);
01288 }
01289 
01290 void kContAbs_g(WorkSpace& ws, const MRecord& mr)
01291 {
01292   kContAbs(ws.k,
01293            ws.k_names,
01294            ws.k_aux,
01295            ws.los,
01296            ws.absloswfs,
01297            ws.f_mono,
01298            ws.k_grid,
01299            mr.Values()[0],
01300            mr.Values()[1],
01301            mr.Values()[2],
01302            mr.Values()[3]);
01303 }
01304 
01305 void kTemp_g(WorkSpace& ws, const MRecord& mr)
01306 {
01307   kTemp(ws.k,
01308         ws.k_names,
01309         ws.k_aux,
01310         ws.tgs,
01311         ws.f_mono,
01312         ws.p_abs,
01313         ws.t_abs,
01314         ws.n2_abs,
01315         ws.h2o_abs,
01316         ws.vmrs,
01317         ws.abs,
01318         ws.lines_per_tg,
01319         ws.lineshape,
01320         ws.e_ground,
01321         ws.emission,
01322         ws.k_grid,
01323         ws.cont_description_names,
01324         ws.cont_description_parameters,
01325         ws.cont_description_models,
01326         ws.los,
01327         ws.absloswfs,
01328         ws.trans,
01329         ws.z_plat,
01330         ws.za_pencil,
01331         ws.l_step,
01332         ws.z_abs,
01333         ws.refr,
01334         ws.refr_lfac,
01335         ws.refr_index,
01336         ws.refr_model,
01337         ws.z_ground,
01338         ws.t_ground,
01339         ws.y_space,
01340         ws.r_geoid,
01341         ws.hse,
01342         mr.Values()[0],
01343         mr.Values()[1]);
01344 }
01345 
01346 void kSpectro_g(WorkSpace& ws, const MRecord& mr)
01347 {
01348   kSpectro(ws.k,
01349            ws.k_names,
01350            ws.k_aux,
01351            ws.S_S,
01352            ws.wfss_tgs,
01353            ws.tgs,
01354            ws.f_mono,
01355            ws.p_abs,
01356            ws.t_abs,
01357            ws.z_abs,
01358            ws.h2o_abs,
01359            ws.vmrs,
01360            ws.lines_per_tg,
01361            ws.lineshape,
01362            ws.los,
01363            ws.absloswfs,
01364            mr.Values()[0],
01365            mr.Values()[1],
01366            mr.Values()[2],
01367            mr.Values()[3],
01368            mr.Values()[4],
01369            mr.Values()[5],
01370            mr.Values()[6]);
01371 }
01372 
01373 void kFrequencyOffSet_g(WorkSpace& ws, const MRecord& mr)
01374 {
01375   kFrequencyOffSet(ws.k,
01376                    ws.k_names,
01377                    ws.k_aux,
01378                    ws.tgs,
01379                    ws.f_mono,
01380                    ws.p_abs,
01381                    ws.t_abs,
01382                    ws.n2_abs,
01383                    ws.h2o_abs,
01384                    ws.vmrs,
01385                    ws.lines_per_tg,
01386                    ws.lineshape,
01387                    ws.e_ground,
01388                    ws.emission,
01389                    ws.cont_description_names,
01390                    ws.cont_description_parameters,
01391                    ws.cont_description_models,
01392                    ws.los,
01393                    ws.t_ground,
01394                    ws.y_space,
01395                    ws.y,
01396                    mr.Values()[0],
01397                    mr.Values()[1]);
01398 }
01399 
01400 void kPointingOffSet_g(WorkSpace& ws, const MRecord& mr)
01401 {
01402   kPointingOffSet(ws.k,
01403                   ws.k_names,
01404                   ws.k_aux,
01405                   ws.z_plat,
01406                   ws.za_pencil,
01407                   ws.l_step,
01408                   ws.p_abs,
01409                   ws.z_abs,
01410                   ws.t_abs,
01411                   ws.f_mono,
01412                   ws.refr,
01413                   ws.refr_lfac,
01414                   ws.refr_index,
01415                   ws.z_ground,
01416                   ws.r_geoid,
01417                   ws.abs,
01418                   ws.emission,
01419                   ws.y_space,
01420                   ws.e_ground,
01421                   ws.t_ground,
01422                   ws.y,
01423                   mr.Values()[0]);
01424 }
01425 
01426 void kEground_g(WorkSpace& ws, const MRecord& mr)
01427 {
01428   kEground(ws.k,
01429            ws.k_names,
01430            ws.k_aux,
01431            ws.za_pencil,
01432            ws.f_mono,
01433            ws.emission,
01434            ws.y_space,
01435            ws.e_ground,
01436            ws.t_ground,
01437            ws.los,
01438            ws.source,
01439            ws.trans,
01440            mr.Values()[0]);
01441 }
01442 
01443 void kCalibration_g(WorkSpace& ws, const MRecord& mr)
01444 {
01445   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
01446   kCalibration(ws.k,
01447                ws.k_names,
01448                ws.k_aux,
01449                ws.y,
01450                ws.f_mono,
01451                *GI0,
01452                wsv_data[mr.Input()[0]].Name());
01453 }
01454 
01455 void kManual_g(WorkSpace& ws, const MRecord& mr)
01456 {
01457   kManual(ws.k,
01458           ws.k_names,
01459           ws.k_aux,
01460           ws.y0,
01461           ws.y,
01462           mr.Values()[0],
01463           mr.Values()[1],
01464           mr.Values()[2],
01465           mr.Values()[3]);
01466 }
01467 
01468 void kxInit_g(WorkSpace& ws, const MRecord&)
01469 {
01470   kxInit(ws.kx,
01471          ws.kx_names,
01472          ws.kx_lengths,
01473          ws.kx_aux);
01474 }
01475 
01476 void kbInit_g(WorkSpace& ws, const MRecord&)
01477 {
01478   kbInit(ws.kb,
01479          ws.kb_names,
01480          ws.kb_lengths,
01481          ws.kb_aux);
01482 }
01483 
01484 void kxAppend_g(WorkSpace& ws, const MRecord&)
01485 {
01486   kxAppend(ws.kx,
01487            ws.kx_names,
01488            ws.kx_lengths,
01489            ws.kx_aux,
01490            ws.k,
01491            ws.k_names,
01492            ws.k_aux);
01493 }
01494 
01495 void kbAppend_g(WorkSpace& ws, const MRecord&)
01496 {
01497   kbAppend(ws.kb,
01498            ws.kb_names,
01499            ws.kb_lengths,
01500            ws.kb_aux,
01501            ws.k,
01502            ws.k_names,
01503            ws.k_aux);
01504 }
01505 
01506 void kxAllocate_g(WorkSpace& ws, const MRecord& mr)
01507 {
01508   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
01509   kxAllocate(ws.kx,
01510              ws.kx_names,
01511              ws.kx_lengths,
01512              ws.kx_aux,
01513              *GI0,
01514              wsv_data[mr.Input()[0]].Name(),
01515              mr.Values()[0],
01516              mr.Values()[1]);
01517 }
01518 
01519 void kbAllocate_g(WorkSpace& ws, const MRecord& mr)
01520 {
01521   Vector *GI0 = *wsv_pointers[mr.Input()[0]];
01522   kbAllocate(ws.kb,
01523              ws.kb_names,
01524              ws.kb_lengths,
01525              ws.kb_aux,
01526              *GI0,
01527              wsv_data[mr.Input()[0]].Name(),
01528              mr.Values()[0],
01529              mr.Values()[1]);
01530 }
01531 
01532 void kxPutInK_g(WorkSpace& ws, const MRecord&)
01533 {
01534   kxPutInK(ws.kx,
01535            ws.kx_names,
01536            ws.kx_lengths,
01537            ws.kx_aux,
01538            ws.k,
01539            ws.k_names,
01540            ws.k_aux);
01541 }
01542 
01543 void kbPutInK_g(WorkSpace& ws, const MRecord&)
01544 {
01545   kbPutInK(ws.kb,
01546            ws.kb_names,
01547            ws.kb_lengths,
01548            ws.kb_aux,
01549            ws.k,
01550            ws.k_names,
01551            ws.k_aux);
01552 }
01553 
01554 void ybatchCalc_g(WorkSpace& ws, const MRecord& mr)
01555 {
01556   ybatchCalc(ws.ybatch,
01557              ws.f_mono,
01558              ws.p_abs,
01559              ws.t_abs,
01560              ws.n2_abs,
01561              ws.h2o_abs,
01562              ws.vmrs,
01563              ws.lines_per_tg,
01564              ws.lineshape,
01565              ws.z_abs,
01566              ws.z_plat,
01567              ws.za_pencil,
01568              ws.l_step,
01569              ws.refr,
01570              ws.refr_lfac,
01571              ws.refr_index,
01572              ws.z_ground,
01573              ws.r_geoid,
01574              ws.emission,
01575              ws.y_space,
01576              ws.e_ground,
01577              ws.t_ground,
01578              ws.batchname,
01579              ws.tgs,
01580              ws.cont_description_names,
01581              ws.cont_description_parameters,
01582              ws.cont_description_models,
01583              mr.Values()[0],
01584              mr.Values()[1],
01585              mr.Values()[2],
01586              mr.Values()[3],
01587              mr.Values()[4],
01588              mr.Values()[5],
01589              mr.Values()[6],
01590              mr.Values()[7],
01591              mr.Values()[8],
01592              mr.Values()[9],
01593              mr.Values()[10]);
01594 }
01595 
01596 void ybatchFromRadiosonde_g(WorkSpace& ws, const MRecord& mr)
01597 {
01598   ybatchFromRadiosonde(ws.ybatch,
01599                        ws.absbatch,
01600                        ws.jacbatch,
01601                        ws.radiosonde_data,
01602                        ws.f_mono,
01603                        ws.lines_per_tg,
01604                        ws.lineshape,
01605                        ws.z_plat,
01606                        ws.za_pencil,
01607                        ws.l_step,
01608                        ws.refr,
01609                        ws.refr_model,
01610                        ws.refr_lfac,
01611                        ws.r_geoid,
01612                        ws.emission,
01613                        ws.y_space,
01614                        ws.e_ground,
01615                        ws.tgs,
01616                        ws.cont_description_names,
01617                        ws.cont_description_models,
01618                        ws.cont_description_parameters,
01619                        mr.Values()[0],
01620                        mr.Values()[1],
01621                        mr.Values()[2],
01622                        mr.Values()[3],
01623                        mr.Values()[4],
01624                        mr.Values()[5]);
01625 }
01626 
01627 void ybatchFromRadiosondeGlobal_g(WorkSpace& ws, const MRecord&)
01628 {
01629   ybatchFromRadiosondeGlobal(ws.ybatch,
01630                              ws.radiosonde_data,
01631                              ws.f_mono,
01632                              ws.lines_per_tg,
01633                              ws.lineshape,
01634                              ws.z_plat,
01635                              ws.za_pencil,
01636                              ws.l_step,
01637                              ws.refr,
01638                              ws.refr_model,
01639                              ws.refr_lfac,
01640                              ws.r_geoid,
01641                              ws.emission,
01642                              ws.y_space,
01643                              ws.e_ground,
01644                              ws.tgs,
01645                              ws.cont_description_names,
01646                              ws.cont_description_models,
01647                              ws.cont_description_parameters);
01648 }
01649 
01650 void MethodListDefine_g(WorkSpace&, const MRecord& mr)
01651 {
01652   ArrayOfIndex *GO0 = *wsv_pointers[mr.Output()[0]];
01653   MethodListDefine(*GO0,
01654                    wsv_data[mr.Output()[0]].Name(),
01655                    mr.Values()[0]);
01656 }
01657 
01658 
01659 void (*getaways[])(WorkSpace&, const MRecord&)
01660   = {Echo_g,
01661      Exit_g,
01662      Test_g,
01663      IndexSet_g,
01664      IndexWriteAscii_g,
01665      IndexReadAscii_g,
01666      IndexWriteBinary_g,
01667      IndexReadBinary_g,
01668      NumericSet_g,
01669      NumericCopyFirstOfVector_g,
01670      NumericCopyLastOfVector_g,
01671      NumericWriteAscii_g,
01672      NumericReadAscii_g,
01673      NumericWriteBinary_g,
01674      NumericReadBinary_g,
01675      VectorCopy_g,
01676      VectorCopyFromMatrix_g,
01677      VectorSet_g,
01678      VectorSetLengthFromVector_g,
01679      VectorLinSpace_g,
01680      VectorNLinSpace_g,
01681      VectorNLogSpace_g,
01682      VectorPressuresForLinAltitudes_g,
01683      VectorFlip_g,
01684      VectorMatrixMultiply_g,
01685      VectorWriteAscii_g,
01686      VectorReadAscii_g,
01687      VectorWriteBinary_g,
01688      VectorReadBinary_g,
01689      VectorPlanck_g,
01690      VectorCalcLog10_g,
01691      VectorAdd_g,
01692      VectorScale_g,
01693      MatrixSet_g,
01694      MatrixCopy_g,
01695      MatrixFillWithVector_g,
01696      MatrixMatrixMultiply_g,
01697      ArrayOfMatrixMatrixMultiply_g,
01698      MatrixMatrixAdd_g,
01699      MatrixWriteAscii_g,
01700      MatrixReadAscii_g,
01701      MatrixWriteBinary_g,
01702      MatrixReadBinary_g,
01703      MatrixScale_g,
01704      MatrixDiagonal_g,
01705      ArrayOfIndexWriteAscii_g,
01706      ArrayOfIndexReadAscii_g,
01707      ArrayOfIndexWriteBinary_g,
01708      ArrayOfIndexReadBinary_g,
01709      ArrayOfVectorWriteAscii_g,
01710      ArrayOfVectorReadAscii_g,
01711      ArrayOfVectorWriteBinary_g,
01712      ArrayOfVectorReadBinary_g,
01713      ArrayOfMatrixWriteAscii_g,
01714      ArrayOfMatrixReadAscii_g,
01715      ArrayOfMatrixWriteBinary_g,
01716      ArrayOfMatrixReadBinary_g,
01717      StringSet_g,
01718      StringWriteAscii_g,
01719      StringReadAscii_g,
01720      StringWriteBinary_g,
01721      StringReadBinary_g,
01722      ArrayOfStringSet_g,
01723      ArrayOfStringWriteAscii_g,
01724      ArrayOfStringReadAscii_g,
01725      ArrayOfStringWriteBinary_g,
01726      ArrayOfStringReadBinary_g,
01727      TagGroupsSpeciesWriteAscii_g,
01728      LosWriteBinary_g,
01729      LosReadBinary_g,
01730      lines_per_tgSetEmpty_g,
01731      lines_per_tgReadFromCatalogues_g,
01732      linesReadFromHitran_g,
01733      linesReadFromHitran2004_g,
01734      linesReadFromMytran2_g,
01735      linesReadFromJpl_g,
01736      linesReadFromArts_g,
01737      linesElowToJoule_g,
01738      lines_per_tgCreateFromLines_g,
01739      lines_per_tgAddMirrorLines_g,
01740      lines_per_tgCompact_g,
01741      linesWriteAscii_g,
01742      lines_per_tgWriteAscii_g,
01743      tgsDefine_g,
01744      tgsDefineAllInScenario_g,
01745      lineshapeDefine_g,
01746      lineshape_per_tgDefine_g,
01747      cont_descriptionInit_g,
01748      cont_descriptionAppend_g,
01749      raw_vmrsReadFromFiles_g,
01750      raw_vmrsReadFromScenario_g,
01751      AtmFromRaw_g,
01752      WaterVaporSaturationInClouds_g,
01753      vmrsScale_g,
01754      h2o_absSet_g,
01755      n2_absSet_g,
01756      hseSet_g,
01757      hseSetFromLatitude_g,
01758      hseSetFromLatitudeIndex_g,
01759      hseFromBottom_g,
01760      hseOff_g,
01761      hseCalc_g,
01762      absCalc_g,
01763      absCalcSaveMemory_g,
01764      absCalcFromXsec_g,
01765      xsec_per_tgInit_g,
01766      xsec_per_tgAddLines_g,
01767      xsec_per_tgAddConts_g,
01768      abs_per_tgReduce_g,
01769      refrSet_g,
01770      refrOff_g,
01771      refrCalc_g,
01772      zaFromZtan_g,
01773      zaFromDeltat_g,
01774      r_geoidStd_g,
01775      r_geoidWGS84_g,
01776      groundOff_g,
01777      groundSet_g,
01778      groundAtBottom_g,
01779      groundFlatSea_g,
01780      emissionOn_g,
01781      emissionOff_g,
01782      losCalc_g,
01783      sourceCalc_g,
01784      transCalc_g,
01785      y_spaceStd_g,
01786      yCalc_g,
01787      sourcetransyCalcSaveMemory_g,
01788      CoolingRates_g,
01789      yTB_g,
01790      MatrixTB_g,
01791      yTRJ_g,
01792      MatrixTRJ_g,
01793      wfs_tgsDefine_g,
01794      wfss_tgsDefine_g,
01795      absloswfsCalc_g,
01796      kSpecies_g,
01797      kSpeciesSingle_g,
01798      kContAbs_g,
01799      kTemp_g,
01800      kSpectro_g,
01801      kFrequencyOffSet_g,
01802      kPointingOffSet_g,
01803      kEground_g,
01804      kCalibration_g,
01805      kManual_g,
01806      kxInit_g,
01807      kbInit_g,
01808      kxAppend_g,
01809      kbAppend_g,
01810      kxAllocate_g,
01811      kbAllocate_g,
01812      kxPutInK_g,
01813      kbPutInK_g,
01814      ybatchCalc_g,
01815      ybatchFromRadiosonde_g,
01816      ybatchFromRadiosondeGlobal_g,
01817      MethodListDefine_g};
01818