00001
00002
00003
00004
00005 #include "arts.h"
00006 #include "make_array.h"
00007 #include "auto_md.h"
00008 #include "wsv_aux.h"
00009 #include "mc_interp.h"
00010 #include "m_append.h"
00011 #include "m_delete.h"
00012 #include "m_copy.h"
00013 #include "m_extract.h"
00014 #include "m_general.h"
00015 #include "m_ignore.h"
00016 #include "m_nc.h"
00017 #include "m_select.h"
00018 #include "m_xml.h"
00019 #include "m_basic_types.h"
00020 #include "agenda_record.h"
00021 #include "workspace_ng.h"
00022
00023 void AbsInputFromAtmFields_g(Workspace& ws, const MRecord& mr)
00024 {
00025 AbsInputFromAtmFields(*((Vector *)ws[mr.Out()[0]]),
00026 *((Vector *)ws[mr.Out()[1]]),
00027 *((Matrix *)ws[mr.Out()[2]]),
00028 *((Index *)ws[mr.In()[0]]),
00029 *((Vector *)ws[mr.In()[1]]),
00030 *((Tensor3 *)ws[mr.In()[2]]),
00031 *((Tensor4 *)ws[mr.In()[3]]));
00032 }
00033
00034 void AbsInputFromRteScalars_g(Workspace& ws, const MRecord& mr)
00035 {
00036 AbsInputFromRteScalars(*((Vector *)ws[mr.Out()[0]]),
00037 *((Vector *)ws[mr.Out()[1]]),
00038 *((Matrix *)ws[mr.Out()[2]]),
00039 *((Numeric *)ws[mr.In()[0]]),
00040 *((Numeric *)ws[mr.In()[1]]),
00041 *((Vector *)ws[mr.In()[2]]));
00042 }
00043
00044 void abs_coefCalc_g(Workspace& ws, const MRecord& mr)
00045 {
00046 abs_coefCalc(*((Matrix *)ws[mr.Out()[0]]),
00047 *((ArrayOfMatrix *)ws[mr.Out()[1]]),
00048 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00049 *((Vector *)ws[mr.In()[1]]),
00050 *((Vector *)ws[mr.In()[2]]),
00051 *((Vector *)ws[mr.In()[3]]),
00052 *((Vector *)ws[mr.In()[4]]),
00053 *((Vector *)ws[mr.In()[5]]),
00054 *((Matrix *)ws[mr.In()[6]]),
00055 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[7]]),
00056 *((ArrayOfLineshapeSpec *)ws[mr.In()[8]]),
00057 *((ArrayOfString *)ws[mr.In()[9]]),
00058 *((ArrayOfString *)ws[mr.In()[10]]),
00059 *((ArrayOfVector *)ws[mr.In()[11]]));
00060 }
00061
00062 void abs_coefCalcFromXsec_g(Workspace& ws, const MRecord& mr)
00063 {
00064 abs_coefCalcFromXsec(*((Matrix *)ws[mr.Out()[0]]),
00065 *((ArrayOfMatrix *)ws[mr.Out()[1]]),
00066 *((ArrayOfMatrix *)ws[mr.In()[0]]),
00067 *((Matrix *)ws[mr.In()[1]]),
00068 *((Vector *)ws[mr.In()[2]]),
00069 *((Vector *)ws[mr.In()[3]]));
00070 }
00071
00072 void abs_coefCalcSaveMemory_g(Workspace& ws, const MRecord& mr)
00073 {
00074 abs_coefCalcSaveMemory(*((Matrix *)ws[mr.Out()[0]]),
00075 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00076 *((Vector *)ws[mr.In()[1]]),
00077 *((Vector *)ws[mr.In()[2]]),
00078 *((Vector *)ws[mr.In()[3]]),
00079 *((Vector *)ws[mr.In()[4]]),
00080 *((Vector *)ws[mr.In()[5]]),
00081 *((Matrix *)ws[mr.In()[6]]),
00082 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[7]]),
00083 *((ArrayOfLineshapeSpec *)ws[mr.In()[8]]),
00084 *((ArrayOfString *)ws[mr.In()[9]]),
00085 *((ArrayOfString *)ws[mr.In()[10]]),
00086 *((ArrayOfVector *)ws[mr.In()[11]]));
00087 }
00088
00089 void abs_cont_descriptionAppend_g(Workspace& ws, const MRecord& mr)
00090 {
00091 abs_cont_descriptionAppend(*((ArrayOfString *)ws[mr.Out()[0]]),
00092 *((ArrayOfString *)ws[mr.Out()[1]]),
00093 *((ArrayOfVector *)ws[mr.Out()[2]]),
00094 *((String *)ws[mr.In()[0]]),
00095 *((String *)ws[mr.In()[1]]),
00096 *((Vector *)ws[mr.In()[2]]));
00097 }
00098
00099 void abs_cont_descriptionInit_g(Workspace& ws, const MRecord& mr)
00100 {
00101 abs_cont_descriptionInit(*((ArrayOfString *)ws[mr.Out()[0]]),
00102 *((ArrayOfString *)ws[mr.Out()[1]]),
00103 *((ArrayOfVector *)ws[mr.Out()[2]]));
00104 }
00105
00106 void abs_h2oSet_g(Workspace& ws, const MRecord& mr)
00107 {
00108 abs_h2oSet(*((Vector *)ws[mr.Out()[0]]),
00109 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00110 *((Matrix *)ws[mr.In()[1]]));
00111 }
00112
00113 void abs_lineshapeDefine_g(Workspace& ws, const MRecord& mr)
00114 {
00115 abs_lineshapeDefine(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
00116 *((String *)ws[mr.In()[0]]),
00117 *((String *)ws[mr.In()[1]]),
00118 *((Numeric *)ws[mr.In()[2]]));
00119 }
00120
00121 void abs_lineshape_per_tgDefine_g(Workspace& ws, const MRecord& mr)
00122 {
00123 abs_lineshape_per_tgDefine(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
00124 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00125 *((ArrayOfString *)ws[mr.In()[1]]),
00126 *((ArrayOfString *)ws[mr.In()[2]]),
00127 *((Vector *)ws[mr.In()[3]]));
00128 }
00129
00130 void abs_linesReadFromArts_g(Workspace& ws, const MRecord& mr)
00131 {
00132 abs_linesReadFromArts(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00133 *((String *)ws[mr.In()[0]]),
00134 *((Numeric *)ws[mr.In()[1]]),
00135 *((Numeric *)ws[mr.In()[2]]));
00136 }
00137
00138 void abs_linesReadFromArtsObsolete_g(Workspace& ws, const MRecord& mr)
00139 {
00140 abs_linesReadFromArtsObsolete(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00141 *((String *)ws[mr.In()[0]]),
00142 *((Numeric *)ws[mr.In()[1]]),
00143 *((Numeric *)ws[mr.In()[2]]));
00144 }
00145
00146 void abs_linesReadFromHitran_g(Workspace& ws, const MRecord& mr)
00147 {
00148 abs_linesReadFromHitran(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00149 *((String *)ws[mr.In()[0]]),
00150 *((Numeric *)ws[mr.In()[1]]),
00151 *((Numeric *)ws[mr.In()[2]]));
00152 }
00153
00154 void abs_linesReadFromHitran2004_g(Workspace& ws, const MRecord& mr)
00155 {
00156 abs_linesReadFromHitran2004(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00157 *((String *)ws[mr.In()[0]]),
00158 *((Numeric *)ws[mr.In()[1]]),
00159 *((Numeric *)ws[mr.In()[2]]));
00160 }
00161
00162 void abs_linesReadFromJpl_g(Workspace& ws, const MRecord& mr)
00163 {
00164 abs_linesReadFromJpl(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00165 *((String *)ws[mr.In()[0]]),
00166 *((Numeric *)ws[mr.In()[1]]),
00167 *((Numeric *)ws[mr.In()[2]]));
00168 }
00169
00170 void abs_linesReadFromMytran2_g(Workspace& ws, const MRecord& mr)
00171 {
00172 abs_linesReadFromMytran2(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00173 *((String *)ws[mr.In()[0]]),
00174 *((Numeric *)ws[mr.In()[1]]),
00175 *((Numeric *)ws[mr.In()[2]]));
00176 }
00177
00178 void abs_lines_per_speciesAddMirrorLines_g(Workspace& ws, const MRecord& mr)
00179 {
00180 abs_lines_per_speciesAddMirrorLines(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]));
00181 }
00182
00183 void abs_lines_per_speciesCompact_g(Workspace& ws, const MRecord& mr)
00184 {
00185 abs_lines_per_speciesCompact(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
00186 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]),
00187 *((Vector *)ws[mr.In()[1]]));
00188 }
00189
00190 void abs_lines_per_speciesCreateFromLines_g(Workspace& ws, const MRecord& mr)
00191 {
00192 abs_lines_per_speciesCreateFromLines(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
00193 *((ArrayOfLineRecord *)ws[mr.In()[0]]),
00194 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[1]]));
00195 }
00196
00197 void abs_lines_per_speciesReadFromCatalogues_g(Workspace& ws, const MRecord& mr)
00198 {
00199 abs_lines_per_speciesReadFromCatalogues(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
00200 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00201 *((ArrayOfString *)ws[mr.In()[1]]),
00202 *((ArrayOfString *)ws[mr.In()[2]]),
00203 *((Vector *)ws[mr.In()[3]]),
00204 *((Vector *)ws[mr.In()[4]]));
00205 }
00206
00207 void abs_lines_per_speciesSetEmpty_g(Workspace& ws, const MRecord& mr)
00208 {
00209 abs_lines_per_speciesSetEmpty(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
00210 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]));
00211 }
00212
00213 void abs_lookupAdapt_g(Workspace& ws, const MRecord& mr)
00214 {
00215 abs_lookupAdapt(*((GasAbsLookup *)ws[mr.Out()[0]]),
00216 *((Index *)ws[mr.Out()[1]]),
00217 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00218 *((Vector *)ws[mr.In()[1]]));
00219 }
00220
00221 void abs_lookupCreate_g(Workspace& ws, const MRecord& mr)
00222 {
00223 abs_lookupCreate(*((GasAbsLookup *)ws[mr.Out()[0]]),
00224 *((Index *)ws[mr.Out()[1]]),
00225 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00226 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[1]]),
00227 *((ArrayOfLineshapeSpec *)ws[mr.In()[2]]),
00228 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[3]]),
00229 *((Vector *)ws[mr.In()[4]]),
00230 *((Vector *)ws[mr.In()[5]]),
00231 *((Matrix *)ws[mr.In()[6]]),
00232 *((Vector *)ws[mr.In()[7]]),
00233 *((Vector *)ws[mr.In()[8]]),
00234 *((Vector *)ws[mr.In()[9]]),
00235 *((Vector *)ws[mr.In()[10]]),
00236 *((ArrayOfString *)ws[mr.In()[11]]),
00237 *((ArrayOfString *)ws[mr.In()[12]]),
00238 *((ArrayOfVector *)ws[mr.In()[13]]));
00239 }
00240
00241 void abs_lookupInit_g(Workspace& ws, const MRecord& mr)
00242 {
00243 abs_lookupInit(*((GasAbsLookup *)ws[mr.Out()[0]]));
00244 }
00245
00246 void abs_lookupSetup_g(Workspace& ws, const MRecord& mr)
00247 {
00248 abs_lookupSetup(*((Vector *)ws[mr.Out()[0]]),
00249 *((Vector *)ws[mr.Out()[1]]),
00250 *((Vector *)ws[mr.Out()[2]]),
00251 *((Matrix *)ws[mr.Out()[3]]),
00252 *((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[4]]),
00253 *((Vector *)ws[mr.Out()[5]]),
00254 *((Index *)ws[mr.In()[0]]),
00255 *((Vector *)ws[mr.In()[1]]),
00256 *((Vector *)ws[mr.In()[2]]),
00257 *((Vector *)ws[mr.In()[3]]),
00258 *((Tensor3 *)ws[mr.In()[4]]),
00259 *((Tensor4 *)ws[mr.In()[5]]),
00260 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[6]]),
00261 *((Index *)ws[mr.In()[7]]),
00262 *((Index *)ws[mr.In()[8]]),
00263 *((Index *)ws[mr.In()[9]]),
00264 *((Numeric *)ws[mr.In()[10]]),
00265 *((Numeric *)ws[mr.In()[11]]),
00266 *((Numeric *)ws[mr.In()[12]]));
00267 }
00268
00269 void abs_lookupSetupBatch_g(Workspace& ws, const MRecord& mr)
00270 {
00271 abs_lookupSetupBatch(*((Vector *)ws[mr.Out()[0]]),
00272 *((Vector *)ws[mr.Out()[1]]),
00273 *((Vector *)ws[mr.Out()[2]]),
00274 *((Matrix *)ws[mr.Out()[3]]),
00275 *((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[4]]),
00276 *((Vector *)ws[mr.Out()[5]]),
00277 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00278 *((ArrayOfGField4 *)ws[mr.In()[1]]),
00279 *((Index *)ws[mr.In()[2]]),
00280 *((Index *)ws[mr.In()[3]]),
00281 *((Index *)ws[mr.In()[4]]),
00282 *((Numeric *)ws[mr.In()[5]]),
00283 *((Numeric *)ws[mr.In()[6]]),
00284 *((Numeric *)ws[mr.In()[7]]),
00285 *((Vector *)ws[mr.In()[8]]));
00286 }
00287
00288 void abs_lookupSetupWide_g(Workspace& ws, const MRecord& mr)
00289 {
00290 abs_lookupSetupWide(*((Vector *)ws[mr.Out()[0]]),
00291 *((Vector *)ws[mr.Out()[1]]),
00292 *((Vector *)ws[mr.Out()[2]]),
00293 *((Matrix *)ws[mr.Out()[3]]),
00294 *((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[4]]),
00295 *((Vector *)ws[mr.Out()[5]]),
00296 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00297 *((Index *)ws[mr.In()[1]]),
00298 *((Index *)ws[mr.In()[2]]),
00299 *((Index *)ws[mr.In()[3]]),
00300 *((Numeric *)ws[mr.In()[4]]),
00301 *((Numeric *)ws[mr.In()[5]]),
00302 *((Numeric *)ws[mr.In()[6]]),
00303 *((Numeric *)ws[mr.In()[7]]),
00304 *((Numeric *)ws[mr.In()[8]]),
00305 *((Numeric *)ws[mr.In()[9]]),
00306 *((Numeric *)ws[mr.In()[10]]));
00307 }
00308
00309 void abs_lookupTestAccuracy_g(Workspace& ws, const MRecord& mr)
00310 {
00311 abs_lookupTestAccuracy(*((GasAbsLookup *)ws[mr.In()[0]]),
00312 *((Index *)ws[mr.In()[1]]),
00313 *((Index *)ws[mr.In()[2]]),
00314 *((Index *)ws[mr.In()[3]]),
00315 *((Index *)ws[mr.In()[4]]),
00316 *((Vector *)ws[mr.In()[5]]),
00317 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[6]]),
00318 *((ArrayOfLineshapeSpec *)ws[mr.In()[7]]),
00319 *((ArrayOfString *)ws[mr.In()[8]]),
00320 *((ArrayOfString *)ws[mr.In()[9]]),
00321 *((ArrayOfVector *)ws[mr.In()[10]]));
00322 }
00323
00324 void abs_n2Set_g(Workspace& ws, const MRecord& mr)
00325 {
00326 abs_n2Set(*((Vector *)ws[mr.Out()[0]]),
00327 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00328 *((Matrix *)ws[mr.In()[1]]));
00329 }
00330
00331 void abs_scalar_gasCalcLBL_g(Workspace& ws, const MRecord& mr)
00332 {
00333 abs_scalar_gasCalcLBL(*((Matrix *)ws[mr.Out()[0]]),
00334 *((Vector *)ws[mr.In()[0]]),
00335 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[1]]),
00336 *((Vector *)ws[mr.In()[2]]),
00337 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[3]]),
00338 *((ArrayOfLineshapeSpec *)ws[mr.In()[4]]),
00339 *((ArrayOfString *)ws[mr.In()[5]]),
00340 *((ArrayOfString *)ws[mr.In()[6]]),
00341 *((ArrayOfVector *)ws[mr.In()[7]]),
00342 *((Index *)ws[mr.In()[8]]),
00343 *((Numeric *)ws[mr.In()[9]]),
00344 *((Numeric *)ws[mr.In()[10]]),
00345 *((Vector *)ws[mr.In()[11]]));
00346 }
00347
00348 void abs_scalar_gasExtractFromLookup_g(Workspace& ws, const MRecord& mr)
00349 {
00350 abs_scalar_gasExtractFromLookup(*((Matrix *)ws[mr.Out()[0]]),
00351 *((GasAbsLookup *)ws[mr.In()[0]]),
00352 *((Index *)ws[mr.In()[1]]),
00353 *((Index *)ws[mr.In()[2]]),
00354 *((Index *)ws[mr.In()[3]]),
00355 *((Index *)ws[mr.In()[4]]),
00356 *((Index *)ws[mr.In()[5]]),
00357 *((Numeric *)ws[mr.In()[6]]),
00358 *((Numeric *)ws[mr.In()[7]]),
00359 *((Vector *)ws[mr.In()[8]]));
00360 }
00361
00362 void abs_scalar_gasFromAbsCoef_g(Workspace& ws, const MRecord& mr)
00363 {
00364 abs_scalar_gasFromAbsCoef(*((Matrix *)ws[mr.Out()[0]]),
00365 *((ArrayOfMatrix *)ws[mr.In()[0]]));
00366 }
00367
00368 void abs_fieldCalc_g(Workspace& ws, const MRecord& mr)
00369 {
00370 abs_fieldCalc(ws,
00371 *((Tensor5 *)ws[mr.Out()[0]]),
00372 *((Agenda *)ws[mr.In()[0]]),
00373 *((Index *)ws[mr.In()[1]]),
00374 *((Vector *)ws[mr.In()[2]]),
00375 *((Index *)ws[mr.In()[3]]),
00376 *((Vector *)ws[mr.In()[4]]),
00377 *((Vector *)ws[mr.In()[5]]),
00378 *((Vector *)ws[mr.In()[6]]),
00379 *((Tensor3 *)ws[mr.In()[7]]),
00380 *((Tensor4 *)ws[mr.In()[8]]));
00381 }
00382
00383 void abs_speciesAdd_g(Workspace& ws, const MRecord& mr)
00384 {
00385 abs_speciesAdd(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
00386 *((ArrayOfString *)ws[mr.In()[0]]));
00387 }
00388
00389 void abs_speciesAdd2_g(Workspace& ws, const MRecord& mr)
00390 {
00391 abs_speciesAdd2(ws,
00392 *((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
00393 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[1]]),
00394 *((Agenda *)ws[mr.Out()[2]]),
00395 *((Matrix *)ws[mr.In()[0]]),
00396 *((Index *)ws[mr.In()[1]]),
00397 *((Vector *)ws[mr.In()[2]]),
00398 *((Vector *)ws[mr.In()[3]]),
00399 *((Vector *)ws[mr.In()[4]]),
00400 *((Vector *)ws[mr.In()[5]]),
00401 *((Vector *)ws[mr.In()[6]]),
00402 *((Vector *)ws[mr.In()[7]]),
00403 *((String *)ws[mr.In()[8]]),
00404 *((String *)ws[mr.In()[9]]),
00405 *((String *)ws[mr.In()[10]]),
00406 *((Numeric *)ws[mr.In()[11]]));
00407 }
00408
00409 void abs_speciesDefineAllInScenario_g(Workspace& ws, const MRecord& mr)
00410 {
00411 abs_speciesDefineAllInScenario(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
00412 *((String *)ws[mr.In()[0]]));
00413 }
00414
00415 void abs_speciesInit_g(Workspace& ws, const MRecord& mr)
00416 {
00417 abs_speciesInit(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]));
00418 }
00419
00420 void SpeciesSet_g(Workspace& ws, const MRecord& mr)
00421 {
00422 SpeciesSet(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
00423 *((ArrayOfString *)ws[mr.In()[0]]));
00424 }
00425
00426 void abs_vecAddGas_g(Workspace& ws, const MRecord& mr)
00427 {
00428 abs_vecAddGas(*((Matrix *)ws[mr.Out()[0]]),
00429 *((Matrix *)ws[mr.In()[0]]));
00430 }
00431
00432 void abs_vecAddPart_g(Workspace& ws, const MRecord& mr)
00433 {
00434 abs_vecAddPart(*((Matrix *)ws[mr.Out()[0]]),
00435 *((Matrix *)ws[mr.In()[0]]),
00436 *((Tensor4 *)ws[mr.In()[1]]),
00437 *((Index *)ws[mr.In()[2]]),
00438 *((Index *)ws[mr.In()[3]]),
00439 *((Index *)ws[mr.In()[4]]),
00440 *((Index *)ws[mr.In()[5]]));
00441 }
00442
00443 void abs_vecInit_g(Workspace& ws, const MRecord& mr)
00444 {
00445 abs_vecInit(*((Matrix *)ws[mr.Out()[0]]),
00446 *((Vector *)ws[mr.In()[0]]),
00447 *((Index *)ws[mr.In()[1]]),
00448 *((Index *)ws[mr.In()[2]]));
00449 }
00450
00451 void abs_xsec_per_speciesAddConts_g(Workspace& ws, const MRecord& mr)
00452 {
00453 abs_xsec_per_speciesAddConts(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
00454 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00455 *((Vector *)ws[mr.In()[1]]),
00456 *((Vector *)ws[mr.In()[2]]),
00457 *((Vector *)ws[mr.In()[3]]),
00458 *((Vector *)ws[mr.In()[4]]),
00459 *((Vector *)ws[mr.In()[5]]),
00460 *((Matrix *)ws[mr.In()[6]]),
00461 *((ArrayOfString *)ws[mr.In()[7]]),
00462 *((ArrayOfVector *)ws[mr.In()[8]]),
00463 *((ArrayOfString *)ws[mr.In()[9]]));
00464 }
00465
00466 void abs_xsec_per_speciesAddLines_g(Workspace& ws, const MRecord& mr)
00467 {
00468 abs_xsec_per_speciesAddLines(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
00469 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00470 *((Vector *)ws[mr.In()[1]]),
00471 *((Vector *)ws[mr.In()[2]]),
00472 *((Vector *)ws[mr.In()[3]]),
00473 *((Vector *)ws[mr.In()[4]]),
00474 *((Matrix *)ws[mr.In()[5]]),
00475 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[6]]),
00476 *((ArrayOfLineshapeSpec *)ws[mr.In()[7]]));
00477 }
00478
00479 void abs_xsec_per_speciesInit_g(Workspace& ws, const MRecord& mr)
00480 {
00481 abs_xsec_per_speciesInit(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
00482 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00483 *((Vector *)ws[mr.In()[1]]),
00484 *((Vector *)ws[mr.In()[2]]));
00485 }
00486
00487 void AgendaExecute_g(Workspace& ws, const MRecord& mr)
00488 {
00489 AgendaExecute(ws,
00490 *((Agenda *)ws[mr.In()[0]]));
00491 }
00492
00493 void AgendaAppend_g(Workspace& ws, const MRecord& mr)
00494 {
00495 AgendaAppend(ws,
00496 *((Agenda *)ws[mr.Out()[0]]),
00497 Workspace::wsv_data[mr.Out()[0]].Name(),
00498 *((Agenda *)ws[mr.In()[0]]),
00499 Workspace::wsv_data[mr.In()[0]].Name(),
00500 mr.Tasks());
00501 }
00502
00503 void AgendaSet_g(Workspace& ws, const MRecord& mr)
00504 {
00505 AgendaSet(ws,
00506 *((Agenda *)ws[mr.Out()[0]]),
00507 Workspace::wsv_data[mr.Out()[0]].Name(),
00508 mr.Tasks());
00509 }
00510
00511 void AntennaOff_g(Workspace& ws, const MRecord& mr)
00512 {
00513 AntennaOff(*((Index *)ws[mr.Out()[0]]),
00514 *((Vector *)ws[mr.Out()[1]]),
00515 *((Vector *)ws[mr.Out()[2]]));
00516 }
00517
00518 void AntennaSet1D_g(Workspace& ws, const MRecord& mr)
00519 {
00520 AntennaSet1D(*((Index *)ws[mr.Out()[0]]),
00521 *((Vector *)ws[mr.Out()[1]]));
00522 }
00523
00524 void AntennaSet2D_g(Workspace& ws, const MRecord& mr)
00525 {
00526 AntennaSet2D(*((Index *)ws[mr.Out()[0]]),
00527 *((Index *)ws[mr.In()[0]]));
00528 }
00529
00530 void Append_sg_ArrayOfIndexArrayOfIndex_g(Workspace& ws, const MRecord& mr)
00531 {
00532 Append(*((ArrayOfIndex *)ws[mr.Out()[0]]),
00533 *((ArrayOfIndex *)ws[mr.In()[0]]));
00534 }
00535
00536 void Append_sg_ArrayOfArrayOfIndexArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
00537 {
00538 Append(*((ArrayOfArrayOfIndex *)ws[mr.Out()[0]]),
00539 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]));
00540 }
00541
00542 void Append_sg_ArrayOfStringArrayOfString_g(Workspace& ws, const MRecord& mr)
00543 {
00544 Append(*((ArrayOfString *)ws[mr.Out()[0]]),
00545 *((ArrayOfString *)ws[mr.In()[0]]));
00546 }
00547
00548 void Append_sg_ArrayOfVectorArrayOfVector_g(Workspace& ws, const MRecord& mr)
00549 {
00550 Append(*((ArrayOfVector *)ws[mr.Out()[0]]),
00551 *((ArrayOfVector *)ws[mr.In()[0]]));
00552 }
00553
00554 void Append_sg_ArrayOfMatrixArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
00555 {
00556 Append(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
00557 *((ArrayOfMatrix *)ws[mr.In()[0]]));
00558 }
00559
00560 void Append_sg_ArrayOfArrayOfMatrixArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
00561 {
00562 Append(*((ArrayOfArrayOfMatrix *)ws[mr.Out()[0]]),
00563 *((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]));
00564 }
00565
00566 void Append_sg_ArrayOfTensor3ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
00567 {
00568 Append(*((ArrayOfTensor3 *)ws[mr.Out()[0]]),
00569 *((ArrayOfTensor3 *)ws[mr.In()[0]]));
00570 }
00571
00572 void Append_sg_ArrayOfArrayOfTensor3ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
00573 {
00574 Append(*((ArrayOfArrayOfTensor3 *)ws[mr.Out()[0]]),
00575 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]));
00576 }
00577
00578 void Append_sg_ArrayOfTensor4ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
00579 {
00580 Append(*((ArrayOfTensor4 *)ws[mr.Out()[0]]),
00581 *((ArrayOfTensor4 *)ws[mr.In()[0]]));
00582 }
00583
00584 void Append_sg_ArrayOfTensor6ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
00585 {
00586 Append(*((ArrayOfTensor6 *)ws[mr.Out()[0]]),
00587 *((ArrayOfTensor6 *)ws[mr.In()[0]]));
00588 }
00589
00590 void Append_sg_ArrayOfTensor7ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
00591 {
00592 Append(*((ArrayOfTensor7 *)ws[mr.Out()[0]]),
00593 *((ArrayOfTensor7 *)ws[mr.In()[0]]));
00594 }
00595
00596 void Append_sg_ArrayOfArrayOfTensor6ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
00597 {
00598 Append(*((ArrayOfArrayOfTensor6 *)ws[mr.Out()[0]]),
00599 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]));
00600 }
00601
00602 void Append_sg_ArrayOfLineRecordArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
00603 {
00604 Append(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
00605 *((ArrayOfLineRecord *)ws[mr.In()[0]]));
00606 }
00607
00608 void Append_sg_ArrayOfArrayOfLineRecordArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
00609 {
00610 Append(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
00611 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]));
00612 }
00613
00614 void Append_sg_ArrayOfLineshapeSpecArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
00615 {
00616 Append(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
00617 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]));
00618 }
00619
00620 void Append_sg_ArrayOfArrayOfSpeciesTagArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
00621 {
00622 Append(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
00623 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]));
00624 }
00625
00626 void Append_sg_ArrayOfPpathArrayOfPpath_g(Workspace& ws, const MRecord& mr)
00627 {
00628 Append(*((ArrayOfPpath *)ws[mr.Out()[0]]),
00629 *((ArrayOfPpath *)ws[mr.In()[0]]));
00630 }
00631
00632 void Append_sg_ArrayOfArrayOfArrayOfArrayOfGridPosArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
00633 {
00634 Append(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.Out()[0]]),
00635 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]));
00636 }
00637
00638 void Append_sg_ArrayOfSingleScatteringDataArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
00639 {
00640 Append(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
00641 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]));
00642 }
00643
00644 void Append_sg_ArrayOfGField1ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
00645 {
00646 Append(*((ArrayOfGField1 *)ws[mr.Out()[0]]),
00647 *((ArrayOfGField1 *)ws[mr.In()[0]]));
00648 }
00649
00650 void Append_sg_ArrayOfGField2ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
00651 {
00652 Append(*((ArrayOfGField2 *)ws[mr.Out()[0]]),
00653 *((ArrayOfGField2 *)ws[mr.In()[0]]));
00654 }
00655
00656 void Append_sg_ArrayOfGField3ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
00657 {
00658 Append(*((ArrayOfGField3 *)ws[mr.Out()[0]]),
00659 *((ArrayOfGField3 *)ws[mr.In()[0]]));
00660 }
00661
00662 void Append_sg_ArrayOfGField4ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
00663 {
00664 Append(*((ArrayOfGField4 *)ws[mr.Out()[0]]),
00665 *((ArrayOfGField4 *)ws[mr.In()[0]]));
00666 }
00667
00668 void Append_sg_ArrayOfArrayOfGField1ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
00669 {
00670 Append(*((ArrayOfArrayOfGField1 *)ws[mr.Out()[0]]),
00671 *((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]));
00672 }
00673
00674 void Append_sg_ArrayOfArrayOfGField3ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
00675 {
00676 Append(*((ArrayOfArrayOfGField3 *)ws[mr.Out()[0]]),
00677 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]));
00678 }
00679
00680 void Append_sg_ArrayOfRetrievalQuantityArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
00681 {
00682 Append(*((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
00683 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]));
00684 }
00685
00686 void Append_sg_VectorVector_g(Workspace& ws, const MRecord& mr)
00687 {
00688 Append(*((Vector *)ws[mr.Out()[0]]),
00689 *((Vector *)ws[mr.In()[0]]));
00690 }
00691
00692 void Append_sg_StringString_g(Workspace& ws, const MRecord& mr)
00693 {
00694 Append(*((String *)ws[mr.Out()[0]]),
00695 *((String *)ws[mr.In()[0]]));
00696 }
00697
00698 void ArrayOfGField1Create_g(Workspace& ws, const MRecord& mr)
00699 {
00700 ArrayOfGField1Create(*((ArrayOfGField1 *)ws[mr.Out()[0]]));
00701 }
00702
00703 void ArrayOfIndexCreate_g(Workspace& ws, const MRecord& mr)
00704 {
00705 ArrayOfIndexCreate(*((ArrayOfIndex *)ws[mr.Out()[0]]));
00706 }
00707
00708 void ArrayOfIndexSet_g(Workspace& ws, const MRecord& mr)
00709 {
00710 ArrayOfIndexSet(*((ArrayOfIndex *)ws[mr.Out()[0]]),
00711 mr.SetValue());
00712 }
00713
00714 void ArrayOfLineRecordCreate_g(Workspace& ws, const MRecord& mr)
00715 {
00716 ArrayOfLineRecordCreate(*((ArrayOfLineRecord *)ws[mr.Out()[0]]));
00717 }
00718
00719 void ArrayOfLineshapeSpecCreate_g(Workspace& ws, const MRecord& mr)
00720 {
00721 ArrayOfLineshapeSpecCreate(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]));
00722 }
00723
00724 void ArrayOfMatrixCreate_g(Workspace& ws, const MRecord& mr)
00725 {
00726 ArrayOfMatrixCreate(*((ArrayOfMatrix *)ws[mr.Out()[0]]));
00727 }
00728
00729 void ArrayOfMatrixInsert_g(Workspace& ws, const MRecord& mr)
00730 {
00731 ArrayOfMatrixInsert(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
00732 *((ArrayOfMatrix *)ws[mr.In()[0]]),
00733 *((Matrix *)ws[mr.In()[1]]),
00734 *((Index *)ws[mr.In()[2]]));
00735 }
00736
00737 void ArrayOfStringCreate_g(Workspace& ws, const MRecord& mr)
00738 {
00739 ArrayOfStringCreate(*((ArrayOfString *)ws[mr.Out()[0]]));
00740 }
00741
00742 void ArrayOfStringSet_g(Workspace& ws, const MRecord& mr)
00743 {
00744 ArrayOfStringSet(*((ArrayOfString *)ws[mr.Out()[0]]),
00745 mr.SetValue());
00746 }
00747
00748 void ArrayOfVectorCreate_g(Workspace& ws, const MRecord& mr)
00749 {
00750 ArrayOfVectorCreate(*((ArrayOfVector *)ws[mr.Out()[0]]));
00751 }
00752
00753 void Arts_g(Workspace& ws, const MRecord& mr)
00754 {
00755 Arts(ws,
00756 mr.Tasks());
00757 }
00758
00759 void AtmFieldsCalc_g(Workspace& ws, const MRecord& mr)
00760 {
00761 AtmFieldsCalc(*((Tensor3 *)ws[mr.Out()[0]]),
00762 *((Tensor3 *)ws[mr.Out()[1]]),
00763 *((Tensor4 *)ws[mr.Out()[2]]),
00764 *((Vector *)ws[mr.In()[0]]),
00765 *((Vector *)ws[mr.In()[1]]),
00766 *((Vector *)ws[mr.In()[2]]),
00767 *((GField3 *)ws[mr.In()[3]]),
00768 *((GField3 *)ws[mr.In()[4]]),
00769 *((ArrayOfGField3 *)ws[mr.In()[5]]),
00770 *((Index *)ws[mr.In()[6]]));
00771 }
00772
00773 void AtmFieldsCalcExpand1D_g(Workspace& ws, const MRecord& mr)
00774 {
00775 AtmFieldsCalcExpand1D(*((Tensor3 *)ws[mr.Out()[0]]),
00776 *((Tensor3 *)ws[mr.Out()[1]]),
00777 *((Tensor4 *)ws[mr.Out()[2]]),
00778 *((Vector *)ws[mr.In()[0]]),
00779 *((Vector *)ws[mr.In()[1]]),
00780 *((Vector *)ws[mr.In()[2]]),
00781 *((GField3 *)ws[mr.In()[3]]),
00782 *((GField3 *)ws[mr.In()[4]]),
00783 *((ArrayOfGField3 *)ws[mr.In()[5]]),
00784 *((Index *)ws[mr.In()[6]]));
00785 }
00786
00787 void AtmFieldsRefinePgrid_g(Workspace& ws, const MRecord& mr)
00788 {
00789 AtmFieldsRefinePgrid(*((Vector *)ws[mr.Out()[0]]),
00790 *((Tensor3 *)ws[mr.Out()[1]]),
00791 *((Tensor3 *)ws[mr.Out()[2]]),
00792 *((Tensor4 *)ws[mr.Out()[3]]),
00793 *((Vector *)ws[mr.In()[0]]),
00794 *((Vector *)ws[mr.In()[1]]),
00795 *((Index *)ws[mr.In()[2]]),
00796 *((Numeric *)ws[mr.In()[3]]));
00797 }
00798
00799 void atm_fields_compactAddConstant_g(Workspace& ws, const MRecord& mr)
00800 {
00801 atm_fields_compactAddConstant(*((GField4 *)ws[mr.Out()[0]]),
00802 *((String *)ws[mr.In()[0]]),
00803 *((Numeric *)ws[mr.In()[1]]));
00804 }
00805
00806 void atm_fields_compactFromMatrix_g(Workspace& ws, const MRecord& mr)
00807 {
00808 atm_fields_compactFromMatrix(*((GField4 *)ws[mr.Out()[0]]),
00809 *((Index *)ws[mr.In()[0]]),
00810 *((Matrix *)ws[mr.In()[1]]),
00811 *((ArrayOfString *)ws[mr.In()[2]]));
00812 }
00813
00814 void batch_atm_fields_compactFromArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
00815 {
00816 batch_atm_fields_compactFromArrayOfMatrix(*((ArrayOfGField4 *)ws[mr.Out()[0]]),
00817 *((Index *)ws[mr.In()[0]]),
00818 *((ArrayOfMatrix *)ws[mr.In()[1]]),
00819 *((ArrayOfString *)ws[mr.In()[2]]),
00820 *((ArrayOfString *)ws[mr.In()[3]]),
00821 *((Vector *)ws[mr.In()[4]]));
00822 }
00823
00824 void AtmFieldsFromCompact_g(Workspace& ws, const MRecord& mr)
00825 {
00826 AtmFieldsFromCompact(*((Vector *)ws[mr.Out()[0]]),
00827 *((Vector *)ws[mr.Out()[1]]),
00828 *((Vector *)ws[mr.Out()[2]]),
00829 *((Tensor3 *)ws[mr.Out()[3]]),
00830 *((Tensor3 *)ws[mr.Out()[4]]),
00831 *((Tensor4 *)ws[mr.Out()[5]]),
00832 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00833 *((GField4 *)ws[mr.In()[1]]),
00834 *((Index *)ws[mr.In()[2]]));
00835 }
00836
00837 void AtmosphereSet1D_g(Workspace& ws, const MRecord& mr)
00838 {
00839 AtmosphereSet1D(*((Index *)ws[mr.Out()[0]]),
00840 *((Vector *)ws[mr.Out()[1]]),
00841 *((Vector *)ws[mr.Out()[2]]));
00842 }
00843
00844 void AtmosphereSet2D_g(Workspace& ws, const MRecord& mr)
00845 {
00846 AtmosphereSet2D(*((Index *)ws[mr.Out()[0]]),
00847 *((Vector *)ws[mr.Out()[1]]),
00848 *((Numeric *)ws[mr.Out()[2]]),
00849 *((Numeric *)ws[mr.Out()[3]]));
00850 }
00851
00852 void AtmosphereSet3D_g(Workspace& ws, const MRecord& mr)
00853 {
00854 AtmosphereSet3D(*((Index *)ws[mr.Out()[0]]),
00855 *((Numeric *)ws[mr.Out()[1]]),
00856 *((Numeric *)ws[mr.Out()[2]]));
00857 }
00858
00859 void AtmRawRead_g(Workspace& ws, const MRecord& mr)
00860 {
00861 AtmRawRead(*((GField3 *)ws[mr.Out()[0]]),
00862 *((GField3 *)ws[mr.Out()[1]]),
00863 *((ArrayOfGField3 *)ws[mr.Out()[2]]),
00864 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
00865 *((String *)ws[mr.In()[1]]));
00866 }
00867
00868 void CloudboxGetIncoming_g(Workspace& ws, const MRecord& mr)
00869 {
00870 CloudboxGetIncoming(ws,
00871 *((Tensor7 *)ws[mr.Out()[0]]),
00872 *((Tensor7 *)ws[mr.Out()[1]]),
00873 *((Tensor7 *)ws[mr.Out()[2]]),
00874 *((Index *)ws[mr.Out()[3]]),
00875 *((Agenda *)ws[mr.In()[0]]),
00876 *((Agenda *)ws[mr.In()[1]]),
00877 *((Agenda *)ws[mr.In()[2]]),
00878 *((Agenda *)ws[mr.In()[3]]),
00879 *((Agenda *)ws[mr.In()[4]]),
00880 *((Index *)ws[mr.In()[5]]),
00881 *((Vector *)ws[mr.In()[6]]),
00882 *((Vector *)ws[mr.In()[7]]),
00883 *((Vector *)ws[mr.In()[8]]),
00884 *((Tensor3 *)ws[mr.In()[9]]),
00885 *((Tensor3 *)ws[mr.In()[10]]),
00886 *((Tensor4 *)ws[mr.In()[11]]),
00887 *((Matrix *)ws[mr.In()[12]]),
00888 *((Matrix *)ws[mr.In()[13]]),
00889 *((ArrayOfIndex *)ws[mr.In()[14]]),
00890 *((Vector *)ws[mr.In()[15]]),
00891 *((Index *)ws[mr.In()[16]]),
00892 *((Vector *)ws[mr.In()[17]]),
00893 *((Vector *)ws[mr.In()[18]]));
00894 }
00895
00896 void CloudboxGetIncoming1DAtm_g(Workspace& ws, const MRecord& mr)
00897 {
00898 CloudboxGetIncoming1DAtm(ws,
00899 *((Tensor7 *)ws[mr.Out()[0]]),
00900 *((Tensor7 *)ws[mr.Out()[1]]),
00901 *((Tensor7 *)ws[mr.Out()[2]]),
00902 *((Index *)ws[mr.Out()[3]]),
00903 *((Agenda *)ws[mr.In()[0]]),
00904 *((Agenda *)ws[mr.In()[1]]),
00905 *((Agenda *)ws[mr.In()[2]]),
00906 *((Agenda *)ws[mr.In()[3]]),
00907 *((Agenda *)ws[mr.In()[4]]),
00908 *((Index *)ws[mr.In()[5]]),
00909 *((Vector *)ws[mr.In()[6]]),
00910 *((Vector *)ws[mr.In()[7]]),
00911 *((Vector *)ws[mr.In()[8]]),
00912 *((Tensor3 *)ws[mr.In()[9]]),
00913 *((Tensor3 *)ws[mr.In()[10]]),
00914 *((Tensor4 *)ws[mr.In()[11]]),
00915 *((Matrix *)ws[mr.In()[12]]),
00916 *((Matrix *)ws[mr.In()[13]]),
00917 *((ArrayOfIndex *)ws[mr.In()[14]]),
00918 *((Vector *)ws[mr.In()[15]]),
00919 *((Index *)ws[mr.In()[16]]),
00920 *((Vector *)ws[mr.In()[17]]),
00921 *((Vector *)ws[mr.In()[18]]));
00922 }
00923
00924 void cloudboxOff_g(Workspace& ws, const MRecord& mr)
00925 {
00926 cloudboxOff(*((Index *)ws[mr.Out()[0]]),
00927 *((ArrayOfIndex *)ws[mr.Out()[1]]),
00928 *((Agenda *)ws[mr.Out()[2]]));
00929 }
00930
00931 void cloudboxSetDisort_g(Workspace& ws, const MRecord& mr)
00932 {
00933 cloudboxSetDisort(*((Index *)ws[mr.Out()[0]]),
00934 *((ArrayOfIndex *)ws[mr.Out()[1]]),
00935 *((Vector *)ws[mr.In()[0]]));
00936 }
00937
00938 void cloudboxSetEmpty_g(Workspace& ws, const MRecord& mr)
00939 {
00940 cloudboxSetEmpty(*((Tensor4 *)ws[mr.Out()[0]]),
00941 *((ArrayOfSingleScatteringData *)ws[mr.Out()[1]]),
00942 *((Vector *)ws[mr.In()[0]]),
00943 *((Vector *)ws[mr.In()[1]]),
00944 *((Vector *)ws[mr.In()[2]]));
00945 }
00946
00947 void cloudboxSetManually_g(Workspace& ws, const MRecord& mr)
00948 {
00949 cloudboxSetManually(*((Index *)ws[mr.Out()[0]]),
00950 *((ArrayOfIndex *)ws[mr.Out()[1]]),
00951 *((Index *)ws[mr.In()[0]]),
00952 *((Vector *)ws[mr.In()[1]]),
00953 *((Vector *)ws[mr.In()[2]]),
00954 *((Vector *)ws[mr.In()[3]]),
00955 *((Numeric *)ws[mr.In()[4]]),
00956 *((Numeric *)ws[mr.In()[5]]),
00957 *((Numeric *)ws[mr.In()[6]]),
00958 *((Numeric *)ws[mr.In()[7]]),
00959 *((Numeric *)ws[mr.In()[8]]),
00960 *((Numeric *)ws[mr.In()[9]]));
00961 }
00962
00963 void cloudboxSetManuallyAltitude_g(Workspace& ws, const MRecord& mr)
00964 {
00965 cloudboxSetManuallyAltitude(*((Index *)ws[mr.Out()[0]]),
00966 *((ArrayOfIndex *)ws[mr.Out()[1]]),
00967 *((Index *)ws[mr.In()[0]]),
00968 *((Tensor3 *)ws[mr.In()[1]]),
00969 *((Vector *)ws[mr.In()[2]]),
00970 *((Vector *)ws[mr.In()[3]]),
00971 *((Numeric *)ws[mr.In()[4]]),
00972 *((Numeric *)ws[mr.In()[5]]),
00973 *((Numeric *)ws[mr.In()[6]]),
00974 *((Numeric *)ws[mr.In()[7]]),
00975 *((Numeric *)ws[mr.In()[8]]),
00976 *((Numeric *)ws[mr.In()[9]]));
00977 }
00978
00979 void complex_nWaterLiebe93_g(Workspace& ws, const MRecord& mr)
00980 {
00981 complex_nWaterLiebe93(*((Matrix *)ws[mr.Out()[0]]),
00982 *((Vector *)ws[mr.In()[0]]),
00983 *((Numeric *)ws[mr.In()[1]]));
00984 }
00985
00986 void Copy_sg_Index_g(Workspace& ws, const MRecord& mr)
00987 {
00988 Copy(*((Index *)ws[mr.Out()[0]]),
00989 *((Index *)ws[mr.In()[0]]));
00990 }
00991
00992 void Copy_sg_Numeric_g(Workspace& ws, const MRecord& mr)
00993 {
00994 Copy(*((Numeric *)ws[mr.Out()[0]]),
00995 *((Numeric *)ws[mr.In()[0]]));
00996 }
00997
00998 void Copy_sg_String_g(Workspace& ws, const MRecord& mr)
00999 {
01000 Copy(*((String *)ws[mr.Out()[0]]),
01001 *((String *)ws[mr.In()[0]]));
01002 }
01003
01004 void Copy_sg_Vector_g(Workspace& ws, const MRecord& mr)
01005 {
01006 Copy(*((Vector *)ws[mr.Out()[0]]),
01007 *((Vector *)ws[mr.In()[0]]));
01008 }
01009
01010 void Copy_sg_Matrix_g(Workspace& ws, const MRecord& mr)
01011 {
01012 Copy(*((Matrix *)ws[mr.Out()[0]]),
01013 *((Matrix *)ws[mr.In()[0]]));
01014 }
01015
01016 void Copy_sg_Sparse_g(Workspace& ws, const MRecord& mr)
01017 {
01018 Copy(*((Sparse *)ws[mr.Out()[0]]),
01019 *((Sparse *)ws[mr.In()[0]]));
01020 }
01021
01022 void Copy_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
01023 {
01024 Copy(*((Tensor3 *)ws[mr.Out()[0]]),
01025 *((Tensor3 *)ws[mr.In()[0]]));
01026 }
01027
01028 void Copy_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
01029 {
01030 Copy(*((Tensor4 *)ws[mr.Out()[0]]),
01031 *((Tensor4 *)ws[mr.In()[0]]));
01032 }
01033
01034 void Copy_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
01035 {
01036 Copy(*((Tensor5 *)ws[mr.Out()[0]]),
01037 *((Tensor5 *)ws[mr.In()[0]]));
01038 }
01039
01040 void Copy_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
01041 {
01042 Copy(*((Tensor6 *)ws[mr.Out()[0]]),
01043 *((Tensor6 *)ws[mr.In()[0]]));
01044 }
01045
01046 void Copy_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
01047 {
01048 Copy(*((Tensor7 *)ws[mr.Out()[0]]),
01049 *((Tensor7 *)ws[mr.In()[0]]));
01050 }
01051
01052 void Copy_sg_Timer_g(Workspace& ws, const MRecord& mr)
01053 {
01054 Copy(*((Timer *)ws[mr.Out()[0]]),
01055 *((Timer *)ws[mr.In()[0]]));
01056 }
01057
01058 void Copy_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
01059 {
01060 Copy(*((ArrayOfIndex *)ws[mr.Out()[0]]),
01061 *((ArrayOfIndex *)ws[mr.In()[0]]));
01062 }
01063
01064 void Copy_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
01065 {
01066 Copy(*((ArrayOfArrayOfIndex *)ws[mr.Out()[0]]),
01067 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]));
01068 }
01069
01070 void Copy_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
01071 {
01072 Copy(*((ArrayOfString *)ws[mr.Out()[0]]),
01073 *((ArrayOfString *)ws[mr.In()[0]]));
01074 }
01075
01076 void Copy_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
01077 {
01078 Copy(*((ArrayOfVector *)ws[mr.Out()[0]]),
01079 *((ArrayOfVector *)ws[mr.In()[0]]));
01080 }
01081
01082 void Copy_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
01083 {
01084 Copy(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
01085 *((ArrayOfMatrix *)ws[mr.In()[0]]));
01086 }
01087
01088 void Copy_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
01089 {
01090 Copy(*((ArrayOfArrayOfMatrix *)ws[mr.Out()[0]]),
01091 *((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]));
01092 }
01093
01094 void Copy_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
01095 {
01096 Copy(*((ArrayOfTensor3 *)ws[mr.Out()[0]]),
01097 *((ArrayOfTensor3 *)ws[mr.In()[0]]));
01098 }
01099
01100 void Copy_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
01101 {
01102 Copy(*((ArrayOfArrayOfTensor3 *)ws[mr.Out()[0]]),
01103 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]));
01104 }
01105
01106 void Copy_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
01107 {
01108 Copy(*((ArrayOfTensor4 *)ws[mr.Out()[0]]),
01109 *((ArrayOfTensor4 *)ws[mr.In()[0]]));
01110 }
01111
01112 void Copy_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
01113 {
01114 Copy(*((ArrayOfTensor6 *)ws[mr.Out()[0]]),
01115 *((ArrayOfTensor6 *)ws[mr.In()[0]]));
01116 }
01117
01118 void Copy_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
01119 {
01120 Copy(*((ArrayOfTensor7 *)ws[mr.Out()[0]]),
01121 *((ArrayOfTensor7 *)ws[mr.In()[0]]));
01122 }
01123
01124 void Copy_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
01125 {
01126 Copy(*((ArrayOfArrayOfTensor6 *)ws[mr.Out()[0]]),
01127 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]));
01128 }
01129
01130 void Copy_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
01131 {
01132 Copy(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
01133 *((ArrayOfLineRecord *)ws[mr.In()[0]]));
01134 }
01135
01136 void Copy_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
01137 {
01138 Copy(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
01139 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]));
01140 }
01141
01142 void Copy_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
01143 {
01144 Copy(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
01145 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]));
01146 }
01147
01148 void Copy_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
01149 {
01150 Copy(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
01151 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]));
01152 }
01153
01154 void Copy_sg_Ppath_g(Workspace& ws, const MRecord& mr)
01155 {
01156 Copy(*((Ppath *)ws[mr.Out()[0]]),
01157 *((Ppath *)ws[mr.In()[0]]));
01158 }
01159
01160 void Copy_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
01161 {
01162 Copy(*((ArrayOfPpath *)ws[mr.Out()[0]]),
01163 *((ArrayOfPpath *)ws[mr.In()[0]]));
01164 }
01165
01166 void Copy_sg_Agenda_g(Workspace& ws, const MRecord& mr)
01167 {
01168 Copy(ws,
01169 *((Agenda *)ws[mr.Out()[0]]),
01170 *((Agenda *)ws[mr.In()[0]]));
01171 }
01172
01173 void Copy_sg_GridPos_g(Workspace& ws, const MRecord& mr)
01174 {
01175 Copy(*((GridPos *)ws[mr.Out()[0]]),
01176 *((GridPos *)ws[mr.In()[0]]));
01177 }
01178
01179 void Copy_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
01180 {
01181 Copy(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.Out()[0]]),
01182 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]));
01183 }
01184
01185 void Copy_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
01186 {
01187 Copy(*((GasAbsLookup *)ws[mr.Out()[0]]),
01188 *((GasAbsLookup *)ws[mr.In()[0]]));
01189 }
01190
01191 void Copy_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
01192 {
01193 Copy(*((SingleScatteringData *)ws[mr.Out()[0]]),
01194 *((SingleScatteringData *)ws[mr.In()[0]]));
01195 }
01196
01197 void Copy_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
01198 {
01199 Copy(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
01200 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]));
01201 }
01202
01203 void Copy_sg_GField1_g(Workspace& ws, const MRecord& mr)
01204 {
01205 Copy(*((GField1 *)ws[mr.Out()[0]]),
01206 *((GField1 *)ws[mr.In()[0]]));
01207 }
01208
01209 void Copy_sg_GField2_g(Workspace& ws, const MRecord& mr)
01210 {
01211 Copy(*((GField2 *)ws[mr.Out()[0]]),
01212 *((GField2 *)ws[mr.In()[0]]));
01213 }
01214
01215 void Copy_sg_GField3_g(Workspace& ws, const MRecord& mr)
01216 {
01217 Copy(*((GField3 *)ws[mr.Out()[0]]),
01218 *((GField3 *)ws[mr.In()[0]]));
01219 }
01220
01221 void Copy_sg_GField4_g(Workspace& ws, const MRecord& mr)
01222 {
01223 Copy(*((GField4 *)ws[mr.Out()[0]]),
01224 *((GField4 *)ws[mr.In()[0]]));
01225 }
01226
01227 void Copy_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
01228 {
01229 Copy(*((ArrayOfGField1 *)ws[mr.Out()[0]]),
01230 *((ArrayOfGField1 *)ws[mr.In()[0]]));
01231 }
01232
01233 void Copy_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
01234 {
01235 Copy(*((ArrayOfGField2 *)ws[mr.Out()[0]]),
01236 *((ArrayOfGField2 *)ws[mr.In()[0]]));
01237 }
01238
01239 void Copy_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
01240 {
01241 Copy(*((ArrayOfGField3 *)ws[mr.Out()[0]]),
01242 *((ArrayOfGField3 *)ws[mr.In()[0]]));
01243 }
01244
01245 void Copy_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
01246 {
01247 Copy(*((ArrayOfGField4 *)ws[mr.Out()[0]]),
01248 *((ArrayOfGField4 *)ws[mr.In()[0]]));
01249 }
01250
01251 void Copy_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
01252 {
01253 Copy(*((ArrayOfArrayOfGField1 *)ws[mr.Out()[0]]),
01254 *((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]));
01255 }
01256
01257 void Copy_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
01258 {
01259 Copy(*((ArrayOfArrayOfGField3 *)ws[mr.Out()[0]]),
01260 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]));
01261 }
01262
01263 void Copy_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
01264 {
01265 Copy(*((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
01266 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]));
01267 }
01268
01269 void Copy_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
01270 {
01271 Copy(*((MCAntenna *)ws[mr.Out()[0]]),
01272 *((MCAntenna *)ws[mr.In()[0]]));
01273 }
01274
01275 void Copy_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
01276 {
01277 Copy(*((SLIData2 *)ws[mr.Out()[0]]),
01278 *((SLIData2 *)ws[mr.In()[0]]));
01279 }
01280
01281 void Delete_sg_Index_g(Workspace& ws, const MRecord& mr)
01282 {
01283 Delete(ws,
01284 *((Index *)ws[mr.In()[0]]),
01285 Workspace::wsv_data[mr.In()[0]].Name());
01286 }
01287
01288 void Delete_sg_Numeric_g(Workspace& ws, const MRecord& mr)
01289 {
01290 Delete(ws,
01291 *((Numeric *)ws[mr.In()[0]]),
01292 Workspace::wsv_data[mr.In()[0]].Name());
01293 }
01294
01295 void Delete_sg_String_g(Workspace& ws, const MRecord& mr)
01296 {
01297 Delete(ws,
01298 *((String *)ws[mr.In()[0]]),
01299 Workspace::wsv_data[mr.In()[0]].Name());
01300 }
01301
01302 void Delete_sg_Vector_g(Workspace& ws, const MRecord& mr)
01303 {
01304 Delete(ws,
01305 *((Vector *)ws[mr.In()[0]]),
01306 Workspace::wsv_data[mr.In()[0]].Name());
01307 }
01308
01309 void Delete_sg_Matrix_g(Workspace& ws, const MRecord& mr)
01310 {
01311 Delete(ws,
01312 *((Matrix *)ws[mr.In()[0]]),
01313 Workspace::wsv_data[mr.In()[0]].Name());
01314 }
01315
01316 void Delete_sg_Sparse_g(Workspace& ws, const MRecord& mr)
01317 {
01318 Delete(ws,
01319 *((Sparse *)ws[mr.In()[0]]),
01320 Workspace::wsv_data[mr.In()[0]].Name());
01321 }
01322
01323 void Delete_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
01324 {
01325 Delete(ws,
01326 *((Tensor3 *)ws[mr.In()[0]]),
01327 Workspace::wsv_data[mr.In()[0]].Name());
01328 }
01329
01330 void Delete_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
01331 {
01332 Delete(ws,
01333 *((Tensor4 *)ws[mr.In()[0]]),
01334 Workspace::wsv_data[mr.In()[0]].Name());
01335 }
01336
01337 void Delete_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
01338 {
01339 Delete(ws,
01340 *((Tensor5 *)ws[mr.In()[0]]),
01341 Workspace::wsv_data[mr.In()[0]].Name());
01342 }
01343
01344 void Delete_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
01345 {
01346 Delete(ws,
01347 *((Tensor6 *)ws[mr.In()[0]]),
01348 Workspace::wsv_data[mr.In()[0]].Name());
01349 }
01350
01351 void Delete_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
01352 {
01353 Delete(ws,
01354 *((Tensor7 *)ws[mr.In()[0]]),
01355 Workspace::wsv_data[mr.In()[0]].Name());
01356 }
01357
01358 void Delete_sg_Timer_g(Workspace& ws, const MRecord& mr)
01359 {
01360 Delete(ws,
01361 *((Timer *)ws[mr.In()[0]]),
01362 Workspace::wsv_data[mr.In()[0]].Name());
01363 }
01364
01365 void Delete_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
01366 {
01367 Delete(ws,
01368 *((ArrayOfIndex *)ws[mr.In()[0]]),
01369 Workspace::wsv_data[mr.In()[0]].Name());
01370 }
01371
01372 void Delete_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
01373 {
01374 Delete(ws,
01375 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]),
01376 Workspace::wsv_data[mr.In()[0]].Name());
01377 }
01378
01379 void Delete_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
01380 {
01381 Delete(ws,
01382 *((ArrayOfString *)ws[mr.In()[0]]),
01383 Workspace::wsv_data[mr.In()[0]].Name());
01384 }
01385
01386 void Delete_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
01387 {
01388 Delete(ws,
01389 *((ArrayOfVector *)ws[mr.In()[0]]),
01390 Workspace::wsv_data[mr.In()[0]].Name());
01391 }
01392
01393 void Delete_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
01394 {
01395 Delete(ws,
01396 *((ArrayOfMatrix *)ws[mr.In()[0]]),
01397 Workspace::wsv_data[mr.In()[0]].Name());
01398 }
01399
01400 void Delete_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
01401 {
01402 Delete(ws,
01403 *((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]),
01404 Workspace::wsv_data[mr.In()[0]].Name());
01405 }
01406
01407 void Delete_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
01408 {
01409 Delete(ws,
01410 *((ArrayOfTensor3 *)ws[mr.In()[0]]),
01411 Workspace::wsv_data[mr.In()[0]].Name());
01412 }
01413
01414 void Delete_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
01415 {
01416 Delete(ws,
01417 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]),
01418 Workspace::wsv_data[mr.In()[0]].Name());
01419 }
01420
01421 void Delete_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
01422 {
01423 Delete(ws,
01424 *((ArrayOfTensor4 *)ws[mr.In()[0]]),
01425 Workspace::wsv_data[mr.In()[0]].Name());
01426 }
01427
01428 void Delete_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
01429 {
01430 Delete(ws,
01431 *((ArrayOfTensor6 *)ws[mr.In()[0]]),
01432 Workspace::wsv_data[mr.In()[0]].Name());
01433 }
01434
01435 void Delete_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
01436 {
01437 Delete(ws,
01438 *((ArrayOfTensor7 *)ws[mr.In()[0]]),
01439 Workspace::wsv_data[mr.In()[0]].Name());
01440 }
01441
01442 void Delete_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
01443 {
01444 Delete(ws,
01445 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]),
01446 Workspace::wsv_data[mr.In()[0]].Name());
01447 }
01448
01449 void Delete_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
01450 {
01451 Delete(ws,
01452 *((ArrayOfLineRecord *)ws[mr.In()[0]]),
01453 Workspace::wsv_data[mr.In()[0]].Name());
01454 }
01455
01456 void Delete_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
01457 {
01458 Delete(ws,
01459 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]),
01460 Workspace::wsv_data[mr.In()[0]].Name());
01461 }
01462
01463 void Delete_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
01464 {
01465 Delete(ws,
01466 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]),
01467 Workspace::wsv_data[mr.In()[0]].Name());
01468 }
01469
01470 void Delete_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
01471 {
01472 Delete(ws,
01473 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
01474 Workspace::wsv_data[mr.In()[0]].Name());
01475 }
01476
01477 void Delete_sg_Ppath_g(Workspace& ws, const MRecord& mr)
01478 {
01479 Delete(ws,
01480 *((Ppath *)ws[mr.In()[0]]),
01481 Workspace::wsv_data[mr.In()[0]].Name());
01482 }
01483
01484 void Delete_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
01485 {
01486 Delete(ws,
01487 *((ArrayOfPpath *)ws[mr.In()[0]]),
01488 Workspace::wsv_data[mr.In()[0]].Name());
01489 }
01490
01491 void Delete_sg_Agenda_g(Workspace& ws, const MRecord& mr)
01492 {
01493 Delete(ws,
01494 *((Agenda *)ws[mr.In()[0]]),
01495 Workspace::wsv_data[mr.In()[0]].Name());
01496 }
01497
01498 void Delete_sg_GridPos_g(Workspace& ws, const MRecord& mr)
01499 {
01500 Delete(ws,
01501 *((GridPos *)ws[mr.In()[0]]),
01502 Workspace::wsv_data[mr.In()[0]].Name());
01503 }
01504
01505 void Delete_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
01506 {
01507 Delete(ws,
01508 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]),
01509 Workspace::wsv_data[mr.In()[0]].Name());
01510 }
01511
01512 void Delete_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
01513 {
01514 Delete(ws,
01515 *((GasAbsLookup *)ws[mr.In()[0]]),
01516 Workspace::wsv_data[mr.In()[0]].Name());
01517 }
01518
01519 void Delete_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
01520 {
01521 Delete(ws,
01522 *((SingleScatteringData *)ws[mr.In()[0]]),
01523 Workspace::wsv_data[mr.In()[0]].Name());
01524 }
01525
01526 void Delete_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
01527 {
01528 Delete(ws,
01529 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
01530 Workspace::wsv_data[mr.In()[0]].Name());
01531 }
01532
01533 void Delete_sg_GField1_g(Workspace& ws, const MRecord& mr)
01534 {
01535 Delete(ws,
01536 *((GField1 *)ws[mr.In()[0]]),
01537 Workspace::wsv_data[mr.In()[0]].Name());
01538 }
01539
01540 void Delete_sg_GField2_g(Workspace& ws, const MRecord& mr)
01541 {
01542 Delete(ws,
01543 *((GField2 *)ws[mr.In()[0]]),
01544 Workspace::wsv_data[mr.In()[0]].Name());
01545 }
01546
01547 void Delete_sg_GField3_g(Workspace& ws, const MRecord& mr)
01548 {
01549 Delete(ws,
01550 *((GField3 *)ws[mr.In()[0]]),
01551 Workspace::wsv_data[mr.In()[0]].Name());
01552 }
01553
01554 void Delete_sg_GField4_g(Workspace& ws, const MRecord& mr)
01555 {
01556 Delete(ws,
01557 *((GField4 *)ws[mr.In()[0]]),
01558 Workspace::wsv_data[mr.In()[0]].Name());
01559 }
01560
01561 void Delete_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
01562 {
01563 Delete(ws,
01564 *((ArrayOfGField1 *)ws[mr.In()[0]]),
01565 Workspace::wsv_data[mr.In()[0]].Name());
01566 }
01567
01568 void Delete_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
01569 {
01570 Delete(ws,
01571 *((ArrayOfGField2 *)ws[mr.In()[0]]),
01572 Workspace::wsv_data[mr.In()[0]].Name());
01573 }
01574
01575 void Delete_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
01576 {
01577 Delete(ws,
01578 *((ArrayOfGField3 *)ws[mr.In()[0]]),
01579 Workspace::wsv_data[mr.In()[0]].Name());
01580 }
01581
01582 void Delete_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
01583 {
01584 Delete(ws,
01585 *((ArrayOfGField4 *)ws[mr.In()[0]]),
01586 Workspace::wsv_data[mr.In()[0]].Name());
01587 }
01588
01589 void Delete_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
01590 {
01591 Delete(ws,
01592 *((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]),
01593 Workspace::wsv_data[mr.In()[0]].Name());
01594 }
01595
01596 void Delete_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
01597 {
01598 Delete(ws,
01599 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]),
01600 Workspace::wsv_data[mr.In()[0]].Name());
01601 }
01602
01603 void Delete_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
01604 {
01605 Delete(ws,
01606 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]),
01607 Workspace::wsv_data[mr.In()[0]].Name());
01608 }
01609
01610 void Delete_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
01611 {
01612 Delete(ws,
01613 *((MCAntenna *)ws[mr.In()[0]]),
01614 Workspace::wsv_data[mr.In()[0]].Name());
01615 }
01616
01617 void Delete_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
01618 {
01619 Delete(ws,
01620 *((SLIData2 *)ws[mr.In()[0]]),
01621 Workspace::wsv_data[mr.In()[0]].Name());
01622 }
01623
01624 void ScatteringDisort_g(Workspace& ws, const MRecord& mr)
01625 {
01626 ScatteringDisort(ws,
01627 *((Tensor7 *)ws[mr.Out()[0]]),
01628 *((Tensor7 *)ws[mr.Out()[1]]),
01629 *((Tensor7 *)ws[mr.Out()[2]]),
01630 *((Index *)ws[mr.Out()[3]]),
01631 *((ArrayOfSingleScatteringData *)ws[mr.Out()[4]]),
01632 *((Tensor4 *)ws[mr.Out()[5]]),
01633 *((ArrayOfIndex *)ws[mr.In()[0]]),
01634 *((Index *)ws[mr.In()[1]]),
01635 *((Agenda *)ws[mr.In()[2]]),
01636 *((Agenda *)ws[mr.In()[3]]),
01637 *((Agenda *)ws[mr.In()[4]]),
01638 *((Tensor4 *)ws[mr.In()[5]]),
01639 *((Tensor3 *)ws[mr.In()[6]]),
01640 *((Tensor3 *)ws[mr.In()[7]]),
01641 *((Vector *)ws[mr.In()[8]]),
01642 *((Tensor4 *)ws[mr.In()[9]]),
01643 *((ArrayOfSingleScatteringData *)ws[mr.In()[10]]),
01644 *((Vector *)ws[mr.In()[11]]),
01645 *((Vector *)ws[mr.In()[12]]),
01646 *((Matrix *)ws[mr.In()[13]]));
01647 }
01648
01649 void DoitAngularGridsSet_g(Workspace& ws, const MRecord& mr)
01650 {
01651 DoitAngularGridsSet(*((Index *)ws[mr.Out()[0]]),
01652 *((Vector *)ws[mr.Out()[1]]),
01653 *((Vector *)ws[mr.Out()[2]]),
01654 *((Index *)ws[mr.In()[0]]),
01655 *((Index *)ws[mr.In()[1]]),
01656 *((String *)ws[mr.In()[2]]));
01657 }
01658
01659 void DoitCloudboxFieldPut_g(Workspace& ws, const MRecord& mr)
01660 {
01661 DoitCloudboxFieldPut(*((Tensor7 *)ws[mr.Out()[0]]),
01662 *((Tensor7 *)ws[mr.Out()[1]]),
01663 *((Tensor7 *)ws[mr.Out()[2]]),
01664 *((Tensor4 *)ws[mr.Out()[3]]),
01665 *((Tensor6 *)ws[mr.In()[0]]),
01666 *((Vector *)ws[mr.In()[1]]),
01667 *((Index *)ws[mr.In()[2]]),
01668 *((Vector *)ws[mr.In()[3]]),
01669 *((Vector *)ws[mr.In()[4]]),
01670 *((Vector *)ws[mr.In()[5]]),
01671 *((Vector *)ws[mr.In()[6]]),
01672 *((Vector *)ws[mr.In()[7]]),
01673 *((Index *)ws[mr.In()[8]]),
01674 *((Index *)ws[mr.In()[9]]),
01675 *((ArrayOfIndex *)ws[mr.In()[10]]),
01676 *((Matrix *)ws[mr.In()[11]]),
01677 *((Tensor3 *)ws[mr.In()[12]]));
01678 }
01679
01680 void doit_conv_flagAbs_g(Workspace& ws, const MRecord& mr)
01681 {
01682 doit_conv_flagAbs(*((Index *)ws[mr.Out()[0]]),
01683 *((Index *)ws[mr.Out()[1]]),
01684 *((Tensor6 *)ws[mr.In()[0]]),
01685 *((Tensor6 *)ws[mr.In()[1]]),
01686 *((Vector *)ws[mr.In()[2]]));
01687 }
01688
01689 void doit_conv_flagLsq_g(Workspace& ws, const MRecord& mr)
01690 {
01691 doit_conv_flagLsq(*((Index *)ws[mr.Out()[0]]),
01692 *((Index *)ws[mr.Out()[1]]),
01693 *((Tensor6 *)ws[mr.In()[0]]),
01694 *((Tensor6 *)ws[mr.In()[1]]),
01695 *((Vector *)ws[mr.In()[2]]),
01696 *((Index *)ws[mr.In()[3]]),
01697 *((Vector *)ws[mr.In()[4]]));
01698 }
01699
01700 void doit_conv_flagAbsBT_g(Workspace& ws, const MRecord& mr)
01701 {
01702 doit_conv_flagAbsBT(*((Index *)ws[mr.Out()[0]]),
01703 *((Index *)ws[mr.Out()[1]]),
01704 *((Tensor6 *)ws[mr.In()[0]]),
01705 *((Tensor6 *)ws[mr.In()[1]]),
01706 *((Vector *)ws[mr.In()[2]]),
01707 *((Index *)ws[mr.In()[3]]),
01708 *((Vector *)ws[mr.In()[4]]));
01709 }
01710
01711 void DoitInit_g(Workspace& ws, const MRecord& mr)
01712 {
01713 DoitInit(*((Index *)ws[mr.Out()[0]]),
01714 *((Index *)ws[mr.Out()[1]]),
01715 *((Index *)ws[mr.Out()[2]]),
01716 *((Index *)ws[mr.Out()[3]]),
01717 *((Index *)ws[mr.Out()[4]]),
01718 *((Tensor6 *)ws[mr.Out()[5]]),
01719 *((Tensor6 *)ws[mr.Out()[6]]),
01720 *((Index *)ws[mr.Out()[7]]),
01721 *((Index *)ws[mr.Out()[8]]),
01722 *((Index *)ws[mr.In()[0]]),
01723 *((Index *)ws[mr.In()[1]]),
01724 *((Vector *)ws[mr.In()[2]]),
01725 *((Vector *)ws[mr.In()[3]]),
01726 *((Index *)ws[mr.In()[4]]),
01727 *((ArrayOfIndex *)ws[mr.In()[5]]),
01728 *((ArrayOfSingleScatteringData *)ws[mr.In()[6]]));
01729 }
01730
01731 void doit_i_fieldIterate_g(Workspace& ws, const MRecord& mr)
01732 {
01733 doit_i_fieldIterate(ws,
01734 *((Tensor6 *)ws[mr.Out()[0]]),
01735 *((Agenda *)ws[mr.In()[0]]),
01736 *((Agenda *)ws[mr.In()[1]]),
01737 *((Agenda *)ws[mr.In()[2]]));
01738 }
01739
01740 void doit_i_fieldSetClearsky_g(Workspace& ws, const MRecord& mr)
01741 {
01742 doit_i_fieldSetClearsky(*((Tensor6 *)ws[mr.Out()[0]]),
01743 *((Tensor7 *)ws[mr.In()[0]]),
01744 *((Tensor7 *)ws[mr.In()[1]]),
01745 *((Tensor7 *)ws[mr.In()[2]]),
01746 *((Vector *)ws[mr.In()[3]]),
01747 *((Index *)ws[mr.In()[4]]),
01748 *((Vector *)ws[mr.In()[5]]),
01749 *((Vector *)ws[mr.In()[6]]),
01750 *((Vector *)ws[mr.In()[7]]),
01751 *((ArrayOfIndex *)ws[mr.In()[8]]),
01752 *((Index *)ws[mr.In()[9]]),
01753 *((Index *)ws[mr.In()[10]]));
01754 }
01755
01756 void doit_i_fieldSetConst_g(Workspace& ws, const MRecord& mr)
01757 {
01758 doit_i_fieldSetConst(*((Tensor6 *)ws[mr.Out()[0]]),
01759 *((Tensor7 *)ws[mr.In()[0]]),
01760 *((Tensor7 *)ws[mr.In()[1]]),
01761 *((Tensor7 *)ws[mr.In()[2]]),
01762 *((Vector *)ws[mr.In()[3]]),
01763 *((Vector *)ws[mr.In()[4]]),
01764 *((Vector *)ws[mr.In()[5]]),
01765 *((ArrayOfIndex *)ws[mr.In()[6]]),
01766 *((Index *)ws[mr.In()[7]]),
01767 *((Index *)ws[mr.In()[8]]),
01768 *((Vector *)ws[mr.In()[9]]));
01769 }
01770
01771 void doit_i_fieldUpdate1D_g(Workspace& ws, const MRecord& mr)
01772 {
01773 doit_i_fieldUpdate1D(ws,
01774 *((Tensor6 *)ws[mr.Out()[0]]),
01775 *((Tensor6 *)ws[mr.In()[0]]),
01776 *((Tensor6 *)ws[mr.In()[1]]),
01777 *((ArrayOfIndex *)ws[mr.In()[2]]),
01778 *((Agenda *)ws[mr.In()[3]]),
01779 *((Tensor4 *)ws[mr.In()[4]]),
01780 *((Agenda *)ws[mr.In()[5]]),
01781 *((Vector *)ws[mr.In()[6]]),
01782 *((Tensor4 *)ws[mr.In()[7]]),
01783 *((Agenda *)ws[mr.In()[8]]),
01784 *((Agenda *)ws[mr.In()[9]]),
01785 *((Agenda *)ws[mr.In()[10]]),
01786 *((Vector *)ws[mr.In()[11]]),
01787 *((Tensor3 *)ws[mr.In()[12]]),
01788 *((Matrix *)ws[mr.In()[13]]),
01789 *((Matrix *)ws[mr.In()[14]]),
01790 *((Tensor3 *)ws[mr.In()[15]]),
01791 *((Vector *)ws[mr.In()[16]]),
01792 *((Index *)ws[mr.In()[17]]),
01793 *((Agenda *)ws[mr.In()[18]]),
01794 *((Index *)ws[mr.In()[19]]));
01795 }
01796
01797 void doit_i_fieldUpdateSeq1D_g(Workspace& ws, const MRecord& mr)
01798 {
01799 doit_i_fieldUpdateSeq1D(ws,
01800 *((Tensor6 *)ws[mr.Out()[0]]),
01801 *((Tensor6 *)ws[mr.In()[0]]),
01802 *((ArrayOfIndex *)ws[mr.In()[1]]),
01803 *((Agenda *)ws[mr.In()[2]]),
01804 *((Tensor4 *)ws[mr.In()[3]]),
01805 *((Agenda *)ws[mr.In()[4]]),
01806 *((Vector *)ws[mr.In()[5]]),
01807 *((Tensor4 *)ws[mr.In()[6]]),
01808 *((Agenda *)ws[mr.In()[7]]),
01809 *((Agenda *)ws[mr.In()[8]]),
01810 *((Agenda *)ws[mr.In()[9]]),
01811 *((Vector *)ws[mr.In()[10]]),
01812 *((Tensor3 *)ws[mr.In()[11]]),
01813 *((Matrix *)ws[mr.In()[12]]),
01814 *((Matrix *)ws[mr.In()[13]]),
01815 *((Tensor3 *)ws[mr.In()[14]]),
01816 *((Vector *)ws[mr.In()[15]]),
01817 *((Index *)ws[mr.In()[16]]),
01818 *((Agenda *)ws[mr.In()[17]]),
01819 *((Index *)ws[mr.In()[18]]));
01820 }
01821
01822 void doit_i_fieldUpdateSeq1DPP_g(Workspace& ws, const MRecord& mr)
01823 {
01824 doit_i_fieldUpdateSeq1DPP(ws,
01825 *((Tensor6 *)ws[mr.Out()[0]]),
01826 *((Index *)ws[mr.Out()[1]]),
01827 *((Tensor6 *)ws[mr.In()[0]]),
01828 *((ArrayOfIndex *)ws[mr.In()[1]]),
01829 *((Agenda *)ws[mr.In()[2]]),
01830 *((Tensor4 *)ws[mr.In()[3]]),
01831 *((Agenda *)ws[mr.In()[4]]),
01832 *((Vector *)ws[mr.In()[5]]),
01833 *((Tensor4 *)ws[mr.In()[6]]),
01834 *((Agenda *)ws[mr.In()[7]]),
01835 *((Agenda *)ws[mr.In()[8]]),
01836 *((Agenda *)ws[mr.In()[9]]),
01837 *((Vector *)ws[mr.In()[10]]),
01838 *((Tensor3 *)ws[mr.In()[11]]),
01839 *((Matrix *)ws[mr.In()[12]]),
01840 *((Tensor3 *)ws[mr.In()[13]]),
01841 *((Vector *)ws[mr.In()[14]]),
01842 *((Index *)ws[mr.In()[15]]));
01843 }
01844
01845 void doit_i_fieldUpdateSeq3D_g(Workspace& ws, const MRecord& mr)
01846 {
01847 doit_i_fieldUpdateSeq3D(ws,
01848 *((Tensor6 *)ws[mr.Out()[0]]),
01849 *((Tensor6 *)ws[mr.In()[0]]),
01850 *((ArrayOfIndex *)ws[mr.In()[1]]),
01851 *((Agenda *)ws[mr.In()[2]]),
01852 *((Tensor4 *)ws[mr.In()[3]]),
01853 *((Agenda *)ws[mr.In()[4]]),
01854 *((Vector *)ws[mr.In()[5]]),
01855 *((Vector *)ws[mr.In()[6]]),
01856 *((Tensor4 *)ws[mr.In()[7]]),
01857 *((Agenda *)ws[mr.In()[8]]),
01858 *((Agenda *)ws[mr.In()[9]]),
01859 *((Agenda *)ws[mr.In()[10]]),
01860 *((Vector *)ws[mr.In()[11]]),
01861 *((Vector *)ws[mr.In()[12]]),
01862 *((Vector *)ws[mr.In()[13]]),
01863 *((Tensor3 *)ws[mr.In()[14]]),
01864 *((Matrix *)ws[mr.In()[15]]),
01865 *((Matrix *)ws[mr.In()[16]]),
01866 *((Tensor3 *)ws[mr.In()[17]]),
01867 *((Vector *)ws[mr.In()[18]]),
01868 *((Index *)ws[mr.In()[19]]),
01869 *((Index *)ws[mr.In()[20]]));
01870 }
01871
01872 void doit_scat_fieldCalc_g(Workspace& ws, const MRecord& mr)
01873 {
01874 doit_scat_fieldCalc(ws,
01875 *((Tensor6 *)ws[mr.Out()[0]]),
01876 *((Agenda *)ws[mr.In()[0]]),
01877 *((Tensor6 *)ws[mr.In()[1]]),
01878 *((Tensor4 *)ws[mr.In()[2]]),
01879 *((Tensor3 *)ws[mr.In()[3]]),
01880 *((Index *)ws[mr.In()[4]]),
01881 *((ArrayOfIndex *)ws[mr.In()[5]]),
01882 *((Vector *)ws[mr.In()[6]]),
01883 *((Vector *)ws[mr.In()[7]]),
01884 *((Index *)ws[mr.In()[8]]));
01885 }
01886
01887 void doit_scat_fieldCalcLimb_g(Workspace& ws, const MRecord& mr)
01888 {
01889 doit_scat_fieldCalcLimb(ws,
01890 *((Tensor6 *)ws[mr.Out()[0]]),
01891 *((Agenda *)ws[mr.In()[0]]),
01892 *((Tensor6 *)ws[mr.In()[1]]),
01893 *((Tensor4 *)ws[mr.In()[2]]),
01894 *((Tensor3 *)ws[mr.In()[3]]),
01895 *((Index *)ws[mr.In()[4]]),
01896 *((ArrayOfIndex *)ws[mr.In()[5]]),
01897 *((Vector *)ws[mr.In()[6]]),
01898 *((Vector *)ws[mr.In()[7]]),
01899 *((Index *)ws[mr.In()[8]]),
01900 *((Index *)ws[mr.In()[9]]));
01901 }
01902
01903 void DoitScatteringDataPrepare_g(Workspace& ws, const MRecord& mr)
01904 {
01905 DoitScatteringDataPrepare(*((ArrayOfTensor7 *)ws[mr.Out()[0]]),
01906 *((ArrayOfSingleScatteringData *)ws[mr.Out()[1]]),
01907 *((Index *)ws[mr.In()[0]]),
01908 *((Vector *)ws[mr.In()[1]]),
01909 *((ArrayOfSingleScatteringData *)ws[mr.In()[2]]),
01910 *((Vector *)ws[mr.In()[3]]),
01911 *((Index *)ws[mr.In()[4]]),
01912 *((Index *)ws[mr.In()[5]]),
01913 *((Index *)ws[mr.In()[6]]));
01914 }
01915
01916 void DoitWriteIterationFields_g(Workspace& ws, const MRecord& mr)
01917 {
01918 DoitWriteIterationFields(*((Index *)ws[mr.In()[0]]),
01919 *((Tensor6 *)ws[mr.In()[1]]),
01920 *((ArrayOfIndex *)ws[mr.In()[2]]));
01921 }
01922
01923 void doit_za_grid_optCalc_g(Workspace& ws, const MRecord& mr)
01924 {
01925 doit_za_grid_optCalc(*((Vector *)ws[mr.Out()[0]]),
01926 *((Tensor6 *)ws[mr.In()[0]]),
01927 *((Vector *)ws[mr.In()[1]]),
01928 *((Index *)ws[mr.In()[2]]),
01929 *((Numeric *)ws[mr.In()[3]]));
01930 }
01931
01932 void doit_za_interpSet_g(Workspace& ws, const MRecord& mr)
01933 {
01934 doit_za_interpSet(*((Index *)ws[mr.Out()[0]]),
01935 *((Index *)ws[mr.In()[0]]),
01936 *((String *)ws[mr.In()[1]]));
01937 }
01938
01939 void DoNothing_sg_Index_g(Workspace& ws, const MRecord& mr)
01940 {
01941 DoNothing(*((Index *)ws[mr.Out()[0]]),
01942 *((Index *)ws[mr.In()[0]]));
01943 }
01944
01945 void DoNothing_sg_Numeric_g(Workspace& ws, const MRecord& mr)
01946 {
01947 DoNothing(*((Numeric *)ws[mr.Out()[0]]),
01948 *((Numeric *)ws[mr.In()[0]]));
01949 }
01950
01951 void DoNothing_sg_String_g(Workspace& ws, const MRecord& mr)
01952 {
01953 DoNothing(*((String *)ws[mr.Out()[0]]),
01954 *((String *)ws[mr.In()[0]]));
01955 }
01956
01957 void DoNothing_sg_Vector_g(Workspace& ws, const MRecord& mr)
01958 {
01959 DoNothing(*((Vector *)ws[mr.Out()[0]]),
01960 *((Vector *)ws[mr.In()[0]]));
01961 }
01962
01963 void DoNothing_sg_Matrix_g(Workspace& ws, const MRecord& mr)
01964 {
01965 DoNothing(*((Matrix *)ws[mr.Out()[0]]),
01966 *((Matrix *)ws[mr.In()[0]]));
01967 }
01968
01969 void DoNothing_sg_Sparse_g(Workspace& ws, const MRecord& mr)
01970 {
01971 DoNothing(*((Sparse *)ws[mr.Out()[0]]),
01972 *((Sparse *)ws[mr.In()[0]]));
01973 }
01974
01975 void DoNothing_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
01976 {
01977 DoNothing(*((Tensor3 *)ws[mr.Out()[0]]),
01978 *((Tensor3 *)ws[mr.In()[0]]));
01979 }
01980
01981 void DoNothing_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
01982 {
01983 DoNothing(*((Tensor4 *)ws[mr.Out()[0]]),
01984 *((Tensor4 *)ws[mr.In()[0]]));
01985 }
01986
01987 void DoNothing_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
01988 {
01989 DoNothing(*((Tensor5 *)ws[mr.Out()[0]]),
01990 *((Tensor5 *)ws[mr.In()[0]]));
01991 }
01992
01993 void DoNothing_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
01994 {
01995 DoNothing(*((Tensor6 *)ws[mr.Out()[0]]),
01996 *((Tensor6 *)ws[mr.In()[0]]));
01997 }
01998
01999 void DoNothing_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
02000 {
02001 DoNothing(*((Tensor7 *)ws[mr.Out()[0]]),
02002 *((Tensor7 *)ws[mr.In()[0]]));
02003 }
02004
02005 void DoNothing_sg_Timer_g(Workspace& ws, const MRecord& mr)
02006 {
02007 DoNothing(*((Timer *)ws[mr.Out()[0]]),
02008 *((Timer *)ws[mr.In()[0]]));
02009 }
02010
02011 void DoNothing_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
02012 {
02013 DoNothing(*((ArrayOfIndex *)ws[mr.Out()[0]]),
02014 *((ArrayOfIndex *)ws[mr.In()[0]]));
02015 }
02016
02017 void DoNothing_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
02018 {
02019 DoNothing(*((ArrayOfArrayOfIndex *)ws[mr.Out()[0]]),
02020 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]));
02021 }
02022
02023 void DoNothing_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
02024 {
02025 DoNothing(*((ArrayOfString *)ws[mr.Out()[0]]),
02026 *((ArrayOfString *)ws[mr.In()[0]]));
02027 }
02028
02029 void DoNothing_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
02030 {
02031 DoNothing(*((ArrayOfVector *)ws[mr.Out()[0]]),
02032 *((ArrayOfVector *)ws[mr.In()[0]]));
02033 }
02034
02035 void DoNothing_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
02036 {
02037 DoNothing(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
02038 *((ArrayOfMatrix *)ws[mr.In()[0]]));
02039 }
02040
02041 void DoNothing_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
02042 {
02043 DoNothing(*((ArrayOfArrayOfMatrix *)ws[mr.Out()[0]]),
02044 *((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]));
02045 }
02046
02047 void DoNothing_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
02048 {
02049 DoNothing(*((ArrayOfTensor3 *)ws[mr.Out()[0]]),
02050 *((ArrayOfTensor3 *)ws[mr.In()[0]]));
02051 }
02052
02053 void DoNothing_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
02054 {
02055 DoNothing(*((ArrayOfArrayOfTensor3 *)ws[mr.Out()[0]]),
02056 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]));
02057 }
02058
02059 void DoNothing_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
02060 {
02061 DoNothing(*((ArrayOfTensor4 *)ws[mr.Out()[0]]),
02062 *((ArrayOfTensor4 *)ws[mr.In()[0]]));
02063 }
02064
02065 void DoNothing_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
02066 {
02067 DoNothing(*((ArrayOfTensor6 *)ws[mr.Out()[0]]),
02068 *((ArrayOfTensor6 *)ws[mr.In()[0]]));
02069 }
02070
02071 void DoNothing_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
02072 {
02073 DoNothing(*((ArrayOfTensor7 *)ws[mr.Out()[0]]),
02074 *((ArrayOfTensor7 *)ws[mr.In()[0]]));
02075 }
02076
02077 void DoNothing_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
02078 {
02079 DoNothing(*((ArrayOfArrayOfTensor6 *)ws[mr.Out()[0]]),
02080 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]));
02081 }
02082
02083 void DoNothing_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
02084 {
02085 DoNothing(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
02086 *((ArrayOfLineRecord *)ws[mr.In()[0]]));
02087 }
02088
02089 void DoNothing_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
02090 {
02091 DoNothing(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
02092 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]));
02093 }
02094
02095 void DoNothing_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
02096 {
02097 DoNothing(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
02098 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]));
02099 }
02100
02101 void DoNothing_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
02102 {
02103 DoNothing(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
02104 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]));
02105 }
02106
02107 void DoNothing_sg_Ppath_g(Workspace& ws, const MRecord& mr)
02108 {
02109 DoNothing(*((Ppath *)ws[mr.Out()[0]]),
02110 *((Ppath *)ws[mr.In()[0]]));
02111 }
02112
02113 void DoNothing_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
02114 {
02115 DoNothing(*((ArrayOfPpath *)ws[mr.Out()[0]]),
02116 *((ArrayOfPpath *)ws[mr.In()[0]]));
02117 }
02118
02119 void DoNothing_sg_Agenda_g(Workspace& ws, const MRecord& mr)
02120 {
02121 DoNothing(ws,
02122 *((Agenda *)ws[mr.Out()[0]]),
02123 *((Agenda *)ws[mr.In()[0]]));
02124 }
02125
02126 void DoNothing_sg_GridPos_g(Workspace& ws, const MRecord& mr)
02127 {
02128 DoNothing(*((GridPos *)ws[mr.Out()[0]]),
02129 *((GridPos *)ws[mr.In()[0]]));
02130 }
02131
02132 void DoNothing_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
02133 {
02134 DoNothing(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.Out()[0]]),
02135 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]));
02136 }
02137
02138 void DoNothing_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
02139 {
02140 DoNothing(*((GasAbsLookup *)ws[mr.Out()[0]]),
02141 *((GasAbsLookup *)ws[mr.In()[0]]));
02142 }
02143
02144 void DoNothing_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
02145 {
02146 DoNothing(*((SingleScatteringData *)ws[mr.Out()[0]]),
02147 *((SingleScatteringData *)ws[mr.In()[0]]));
02148 }
02149
02150 void DoNothing_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
02151 {
02152 DoNothing(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
02153 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]));
02154 }
02155
02156 void DoNothing_sg_GField1_g(Workspace& ws, const MRecord& mr)
02157 {
02158 DoNothing(*((GField1 *)ws[mr.Out()[0]]),
02159 *((GField1 *)ws[mr.In()[0]]));
02160 }
02161
02162 void DoNothing_sg_GField2_g(Workspace& ws, const MRecord& mr)
02163 {
02164 DoNothing(*((GField2 *)ws[mr.Out()[0]]),
02165 *((GField2 *)ws[mr.In()[0]]));
02166 }
02167
02168 void DoNothing_sg_GField3_g(Workspace& ws, const MRecord& mr)
02169 {
02170 DoNothing(*((GField3 *)ws[mr.Out()[0]]),
02171 *((GField3 *)ws[mr.In()[0]]));
02172 }
02173
02174 void DoNothing_sg_GField4_g(Workspace& ws, const MRecord& mr)
02175 {
02176 DoNothing(*((GField4 *)ws[mr.Out()[0]]),
02177 *((GField4 *)ws[mr.In()[0]]));
02178 }
02179
02180 void DoNothing_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
02181 {
02182 DoNothing(*((ArrayOfGField1 *)ws[mr.Out()[0]]),
02183 *((ArrayOfGField1 *)ws[mr.In()[0]]));
02184 }
02185
02186 void DoNothing_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
02187 {
02188 DoNothing(*((ArrayOfGField2 *)ws[mr.Out()[0]]),
02189 *((ArrayOfGField2 *)ws[mr.In()[0]]));
02190 }
02191
02192 void DoNothing_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
02193 {
02194 DoNothing(*((ArrayOfGField3 *)ws[mr.Out()[0]]),
02195 *((ArrayOfGField3 *)ws[mr.In()[0]]));
02196 }
02197
02198 void DoNothing_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
02199 {
02200 DoNothing(*((ArrayOfGField4 *)ws[mr.Out()[0]]),
02201 *((ArrayOfGField4 *)ws[mr.In()[0]]));
02202 }
02203
02204 void DoNothing_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
02205 {
02206 DoNothing(*((ArrayOfArrayOfGField1 *)ws[mr.Out()[0]]),
02207 *((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]));
02208 }
02209
02210 void DoNothing_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
02211 {
02212 DoNothing(*((ArrayOfArrayOfGField3 *)ws[mr.Out()[0]]),
02213 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]));
02214 }
02215
02216 void DoNothing_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
02217 {
02218 DoNothing(*((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
02219 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]));
02220 }
02221
02222 void DoNothing_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
02223 {
02224 DoNothing(*((MCAntenna *)ws[mr.Out()[0]]),
02225 *((MCAntenna *)ws[mr.In()[0]]));
02226 }
02227
02228 void DoNothing_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
02229 {
02230 DoNothing(*((SLIData2 *)ws[mr.Out()[0]]),
02231 *((SLIData2 *)ws[mr.In()[0]]));
02232 }
02233
02234 void emissionPlanck_g(Workspace& ws, const MRecord& mr)
02235 {
02236 emissionPlanck(*((Vector *)ws[mr.Out()[0]]),
02237 *((Vector *)ws[mr.In()[0]]),
02238 *((Numeric *)ws[mr.In()[1]]));
02239 }
02240
02241 void Error_g(Workspace& ws, const MRecord& mr)
02242 {
02243 Error(*((String *)ws[mr.In()[0]]));
02244 }
02245
02246 void Exit_g(Workspace&, const MRecord&)
02247 {
02248 Exit();
02249 }
02250
02251 void Extract_sg_ArrayOfIndexArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
02252 {
02253 Extract(*((ArrayOfIndex *)ws[mr.Out()[0]]),
02254 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]),
02255 *((Index *)ws[mr.In()[1]]));
02256 }
02257
02258 void Extract_sg_NumericVector_g(Workspace& ws, const MRecord& mr)
02259 {
02260 Extract(*((Numeric *)ws[mr.Out()[0]]),
02261 *((Vector *)ws[mr.In()[0]]),
02262 *((Index *)ws[mr.In()[1]]));
02263 }
02264
02265 void Extract_sg_MatrixArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
02266 {
02267 Extract(*((Matrix *)ws[mr.Out()[0]]),
02268 *((ArrayOfMatrix *)ws[mr.In()[0]]),
02269 *((Index *)ws[mr.In()[1]]));
02270 }
02271
02272 void Extract_sg_MatrixTensor3_g(Workspace& ws, const MRecord& mr)
02273 {
02274 Extract(*((Matrix *)ws[mr.Out()[0]]),
02275 *((Tensor3 *)ws[mr.In()[0]]),
02276 *((Index *)ws[mr.In()[1]]));
02277 }
02278
02279 void Extract_sg_Tensor3Tensor4_g(Workspace& ws, const MRecord& mr)
02280 {
02281 Extract(*((Tensor3 *)ws[mr.Out()[0]]),
02282 *((Tensor4 *)ws[mr.In()[0]]),
02283 *((Index *)ws[mr.In()[1]]));
02284 }
02285
02286 void Extract_sg_Tensor4ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
02287 {
02288 Extract(*((Tensor4 *)ws[mr.Out()[0]]),
02289 *((ArrayOfTensor4 *)ws[mr.In()[0]]),
02290 *((Index *)ws[mr.In()[1]]));
02291 }
02292
02293 void Extract_sg_Tensor4Tensor5_g(Workspace& ws, const MRecord& mr)
02294 {
02295 Extract(*((Tensor4 *)ws[mr.Out()[0]]),
02296 *((Tensor5 *)ws[mr.In()[0]]),
02297 *((Index *)ws[mr.In()[1]]));
02298 }
02299
02300 void Extract_sg_ArrayOfGField3ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
02301 {
02302 Extract(*((ArrayOfGField3 *)ws[mr.Out()[0]]),
02303 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]),
02304 *((Index *)ws[mr.In()[1]]));
02305 }
02306
02307 void Extract_sg_GField4ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
02308 {
02309 Extract(*((GField4 *)ws[mr.Out()[0]]),
02310 *((ArrayOfGField4 *)ws[mr.In()[0]]),
02311 *((Index *)ws[mr.In()[1]]));
02312 }
02313
02314 void ext_matAddGas_g(Workspace& ws, const MRecord& mr)
02315 {
02316 ext_matAddGas(*((Tensor3 *)ws[mr.Out()[0]]),
02317 *((Matrix *)ws[mr.In()[0]]));
02318 }
02319
02320 void ext_matAddPart_g(Workspace& ws, const MRecord& mr)
02321 {
02322 ext_matAddPart(*((Tensor3 *)ws[mr.Out()[0]]),
02323 *((Tensor3 *)ws[mr.In()[0]]),
02324 *((Tensor4 *)ws[mr.In()[1]]),
02325 *((Index *)ws[mr.In()[2]]),
02326 *((Index *)ws[mr.In()[3]]),
02327 *((Index *)ws[mr.In()[4]]),
02328 *((Index *)ws[mr.In()[5]]));
02329 }
02330
02331 void ext_matInit_g(Workspace& ws, const MRecord& mr)
02332 {
02333 ext_matInit(*((Tensor3 *)ws[mr.Out()[0]]),
02334 *((Vector *)ws[mr.In()[0]]),
02335 *((Index *)ws[mr.In()[1]]),
02336 *((Index *)ws[mr.In()[2]]));
02337 }
02338
02339 void f_gridFromSensorAMSU_g(Workspace& ws, const MRecord& mr)
02340 {
02341 f_gridFromSensorAMSU(*((Vector *)ws[mr.Out()[0]]),
02342 *((Vector *)ws[mr.In()[0]]),
02343 *((ArrayOfVector *)ws[mr.In()[1]]),
02344 *((ArrayOfArrayOfGField1 *)ws[mr.In()[2]]),
02345 *((Numeric *)ws[mr.In()[3]]));
02346 }
02347
02348 void f_gridFromSensorHIRS_g(Workspace& ws, const MRecord& mr)
02349 {
02350 f_gridFromSensorHIRS(*((Vector *)ws[mr.Out()[0]]),
02351 *((Vector *)ws[mr.In()[0]]),
02352 *((ArrayOfGField1 *)ws[mr.In()[1]]),
02353 *((Numeric *)ws[mr.In()[2]]));
02354 }
02355
02356 void f_gridSelectFIndex_g(Workspace& ws, const MRecord& mr)
02357 {
02358 f_gridSelectFIndex(*((Vector *)ws[mr.Out()[0]]),
02359 *((Index *)ws[mr.In()[0]]));
02360 }
02361
02362 void FlagOff_g(Workspace& ws, const MRecord& mr)
02363 {
02364 FlagOff(*((Index *)ws[mr.Out()[0]]));
02365 }
02366
02367 void FlagOn_g(Workspace& ws, const MRecord& mr)
02368 {
02369 FlagOn(*((Index *)ws[mr.Out()[0]]));
02370 }
02371
02372 void f_gridFromGasAbsLookup_g(Workspace& ws, const MRecord& mr)
02373 {
02374 f_gridFromGasAbsLookup(*((Vector *)ws[mr.Out()[0]]),
02375 *((GasAbsLookup *)ws[mr.In()[0]]));
02376 }
02377
02378 void ForLoop_g(Workspace& ws, const MRecord& mr)
02379 {
02380 ForLoop(ws,
02381 *((Agenda *)ws[mr.In()[0]]),
02382 *((Index *)ws[mr.In()[1]]),
02383 *((Index *)ws[mr.In()[2]]),
02384 *((Index *)ws[mr.In()[3]]));
02385 }
02386
02387 void GField1Create_g(Workspace& ws, const MRecord& mr)
02388 {
02389 GField1Create(*((GField1 *)ws[mr.Out()[0]]));
02390 }
02391
02392 void GField2Create_g(Workspace& ws, const MRecord& mr)
02393 {
02394 GField2Create(*((GField2 *)ws[mr.Out()[0]]));
02395 }
02396
02397 void GField3Create_g(Workspace& ws, const MRecord& mr)
02398 {
02399 GField3Create(*((GField3 *)ws[mr.Out()[0]]));
02400 }
02401
02402 void GField4Create_g(Workspace& ws, const MRecord& mr)
02403 {
02404 GField4Create(*((GField4 *)ws[mr.Out()[0]]));
02405 }
02406
02407 void Ignore_sg_Index_g(Workspace& ws, const MRecord& mr)
02408 {
02409 Ignore(*((Index *)ws[mr.In()[0]]));
02410 }
02411
02412 void Ignore_sg_Numeric_g(Workspace& ws, const MRecord& mr)
02413 {
02414 Ignore(*((Numeric *)ws[mr.In()[0]]));
02415 }
02416
02417 void Ignore_sg_String_g(Workspace& ws, const MRecord& mr)
02418 {
02419 Ignore(*((String *)ws[mr.In()[0]]));
02420 }
02421
02422 void Ignore_sg_Vector_g(Workspace& ws, const MRecord& mr)
02423 {
02424 Ignore(*((Vector *)ws[mr.In()[0]]));
02425 }
02426
02427 void Ignore_sg_Matrix_g(Workspace& ws, const MRecord& mr)
02428 {
02429 Ignore(*((Matrix *)ws[mr.In()[0]]));
02430 }
02431
02432 void Ignore_sg_Sparse_g(Workspace& ws, const MRecord& mr)
02433 {
02434 Ignore(*((Sparse *)ws[mr.In()[0]]));
02435 }
02436
02437 void Ignore_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
02438 {
02439 Ignore(*((Tensor3 *)ws[mr.In()[0]]));
02440 }
02441
02442 void Ignore_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
02443 {
02444 Ignore(*((Tensor4 *)ws[mr.In()[0]]));
02445 }
02446
02447 void Ignore_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
02448 {
02449 Ignore(*((Tensor5 *)ws[mr.In()[0]]));
02450 }
02451
02452 void Ignore_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
02453 {
02454 Ignore(*((Tensor6 *)ws[mr.In()[0]]));
02455 }
02456
02457 void Ignore_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
02458 {
02459 Ignore(*((Tensor7 *)ws[mr.In()[0]]));
02460 }
02461
02462 void Ignore_sg_Timer_g(Workspace& ws, const MRecord& mr)
02463 {
02464 Ignore(*((Timer *)ws[mr.In()[0]]));
02465 }
02466
02467 void Ignore_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
02468 {
02469 Ignore(*((ArrayOfIndex *)ws[mr.In()[0]]));
02470 }
02471
02472 void Ignore_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
02473 {
02474 Ignore(*((ArrayOfArrayOfIndex *)ws[mr.In()[0]]));
02475 }
02476
02477 void Ignore_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
02478 {
02479 Ignore(*((ArrayOfString *)ws[mr.In()[0]]));
02480 }
02481
02482 void Ignore_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
02483 {
02484 Ignore(*((ArrayOfVector *)ws[mr.In()[0]]));
02485 }
02486
02487 void Ignore_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
02488 {
02489 Ignore(*((ArrayOfMatrix *)ws[mr.In()[0]]));
02490 }
02491
02492 void Ignore_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
02493 {
02494 Ignore(*((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]));
02495 }
02496
02497 void Ignore_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
02498 {
02499 Ignore(*((ArrayOfTensor3 *)ws[mr.In()[0]]));
02500 }
02501
02502 void Ignore_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
02503 {
02504 Ignore(*((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]));
02505 }
02506
02507 void Ignore_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
02508 {
02509 Ignore(*((ArrayOfTensor4 *)ws[mr.In()[0]]));
02510 }
02511
02512 void Ignore_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
02513 {
02514 Ignore(*((ArrayOfTensor6 *)ws[mr.In()[0]]));
02515 }
02516
02517 void Ignore_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
02518 {
02519 Ignore(*((ArrayOfTensor7 *)ws[mr.In()[0]]));
02520 }
02521
02522 void Ignore_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
02523 {
02524 Ignore(*((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]));
02525 }
02526
02527 void Ignore_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
02528 {
02529 Ignore(*((ArrayOfLineRecord *)ws[mr.In()[0]]));
02530 }
02531
02532 void Ignore_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
02533 {
02534 Ignore(*((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]));
02535 }
02536
02537 void Ignore_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
02538 {
02539 Ignore(*((ArrayOfLineshapeSpec *)ws[mr.In()[0]]));
02540 }
02541
02542 void Ignore_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
02543 {
02544 Ignore(*((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]));
02545 }
02546
02547 void Ignore_sg_Ppath_g(Workspace& ws, const MRecord& mr)
02548 {
02549 Ignore(*((Ppath *)ws[mr.In()[0]]));
02550 }
02551
02552 void Ignore_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
02553 {
02554 Ignore(*((ArrayOfPpath *)ws[mr.In()[0]]));
02555 }
02556
02557 void Ignore_sg_Agenda_g(Workspace& ws, const MRecord& mr)
02558 {
02559 Ignore(ws,
02560 *((Agenda *)ws[mr.In()[0]]));
02561 }
02562
02563 void Ignore_sg_GridPos_g(Workspace& ws, const MRecord& mr)
02564 {
02565 Ignore(*((GridPos *)ws[mr.In()[0]]));
02566 }
02567
02568 void Ignore_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
02569 {
02570 Ignore(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]));
02571 }
02572
02573 void Ignore_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
02574 {
02575 Ignore(*((GasAbsLookup *)ws[mr.In()[0]]));
02576 }
02577
02578 void Ignore_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
02579 {
02580 Ignore(*((SingleScatteringData *)ws[mr.In()[0]]));
02581 }
02582
02583 void Ignore_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
02584 {
02585 Ignore(*((ArrayOfSingleScatteringData *)ws[mr.In()[0]]));
02586 }
02587
02588 void Ignore_sg_GField1_g(Workspace& ws, const MRecord& mr)
02589 {
02590 Ignore(*((GField1 *)ws[mr.In()[0]]));
02591 }
02592
02593 void Ignore_sg_GField2_g(Workspace& ws, const MRecord& mr)
02594 {
02595 Ignore(*((GField2 *)ws[mr.In()[0]]));
02596 }
02597
02598 void Ignore_sg_GField3_g(Workspace& ws, const MRecord& mr)
02599 {
02600 Ignore(*((GField3 *)ws[mr.In()[0]]));
02601 }
02602
02603 void Ignore_sg_GField4_g(Workspace& ws, const MRecord& mr)
02604 {
02605 Ignore(*((GField4 *)ws[mr.In()[0]]));
02606 }
02607
02608 void Ignore_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
02609 {
02610 Ignore(*((ArrayOfGField1 *)ws[mr.In()[0]]));
02611 }
02612
02613 void Ignore_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
02614 {
02615 Ignore(*((ArrayOfGField2 *)ws[mr.In()[0]]));
02616 }
02617
02618 void Ignore_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
02619 {
02620 Ignore(*((ArrayOfGField3 *)ws[mr.In()[0]]));
02621 }
02622
02623 void Ignore_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
02624 {
02625 Ignore(*((ArrayOfGField4 *)ws[mr.In()[0]]));
02626 }
02627
02628 void Ignore_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
02629 {
02630 Ignore(*((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]));
02631 }
02632
02633 void Ignore_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
02634 {
02635 Ignore(*((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]));
02636 }
02637
02638 void Ignore_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
02639 {
02640 Ignore(*((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]));
02641 }
02642
02643 void Ignore_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
02644 {
02645 Ignore(*((MCAntenna *)ws[mr.In()[0]]));
02646 }
02647
02648 void Ignore_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
02649 {
02650 Ignore(*((SLIData2 *)ws[mr.In()[0]]));
02651 }
02652
02653 void INCLUDE_g(Workspace&, const MRecord&)
02654 {
02655 INCLUDE();
02656 }
02657
02658 void IndexCreate_g(Workspace& ws, const MRecord& mr)
02659 {
02660 IndexCreate(*((Index *)ws[mr.Out()[0]]));
02661 }
02662
02663 void IndexSet_g(Workspace& ws, const MRecord& mr)
02664 {
02665 IndexSet(*((Index *)ws[mr.Out()[0]]),
02666 mr.SetValue());
02667 }
02668
02669 void IndexStep_g(Workspace& ws, const MRecord& mr)
02670 {
02671 IndexStep(*((Index *)ws[mr.Out()[0]]),
02672 *((Index *)ws[mr.In()[0]]));
02673 }
02674
02675 void InterpAtmFieldToRteGps_g(Workspace& ws, const MRecord& mr)
02676 {
02677 InterpAtmFieldToRteGps(*((Numeric *)ws[mr.Out()[0]]),
02678 *((Index *)ws[mr.In()[0]]),
02679 *((Vector *)ws[mr.In()[1]]),
02680 *((Vector *)ws[mr.In()[2]]),
02681 *((Vector *)ws[mr.In()[3]]),
02682 *((GridPos *)ws[mr.In()[4]]),
02683 *((GridPos *)ws[mr.In()[5]]),
02684 *((GridPos *)ws[mr.In()[6]]),
02685 *((Tensor3 *)ws[mr.In()[7]]));
02686 }
02687
02688 void InterpSurfaceEmissivityFieldIncLatLon_g(Workspace& ws, const MRecord& mr)
02689 {
02690 InterpSurfaceEmissivityFieldIncLatLon(*((Numeric *)ws[mr.Out()[0]]),
02691 *((Index *)ws[mr.In()[0]]),
02692 *((Vector *)ws[mr.In()[1]]),
02693 *((Vector *)ws[mr.In()[2]]),
02694 *((GField3 *)ws[mr.In()[3]]));
02695 }
02696
02697 void InterpSurfaceFieldToRteGps_g(Workspace& ws, const MRecord& mr)
02698 {
02699 InterpSurfaceFieldToRteGps(*((Numeric *)ws[mr.Out()[0]]),
02700 *((Index *)ws[mr.In()[0]]),
02701 *((Vector *)ws[mr.In()[1]]),
02702 *((Vector *)ws[mr.In()[2]]),
02703 *((GridPos *)ws[mr.In()[3]]),
02704 *((GridPos *)ws[mr.In()[4]]),
02705 *((Matrix *)ws[mr.In()[5]]));
02706 }
02707
02708 void iyInterpCloudboxField_g(Workspace& ws, const MRecord& mr)
02709 {
02710 iyInterpCloudboxField(*((Matrix *)ws[mr.Out()[0]]),
02711 *((Tensor7 *)ws[mr.In()[0]]),
02712 *((Tensor7 *)ws[mr.In()[1]]),
02713 *((Tensor7 *)ws[mr.In()[2]]),
02714 *((Tensor4 *)ws[mr.In()[3]]),
02715 *((GridPos *)ws[mr.In()[4]]),
02716 *((GridPos *)ws[mr.In()[5]]),
02717 *((GridPos *)ws[mr.In()[6]]),
02718 *((Vector *)ws[mr.In()[7]]),
02719 *((Index *)ws[mr.In()[8]]),
02720 *((ArrayOfIndex *)ws[mr.In()[9]]),
02721 *((Index *)ws[mr.In()[10]]),
02722 *((Index *)ws[mr.In()[11]]),
02723 *((Vector *)ws[mr.In()[12]]),
02724 *((Vector *)ws[mr.In()[13]]),
02725 *((Vector *)ws[mr.In()[14]]));
02726 }
02727
02728 void iyInterpPolyCloudboxField_g(Workspace& ws, const MRecord& mr)
02729 {
02730 iyInterpPolyCloudboxField(*((Matrix *)ws[mr.Out()[0]]),
02731 *((Tensor7 *)ws[mr.In()[0]]),
02732 *((Tensor7 *)ws[mr.In()[1]]),
02733 *((Tensor7 *)ws[mr.In()[2]]),
02734 *((Tensor4 *)ws[mr.In()[3]]),
02735 *((GridPos *)ws[mr.In()[4]]),
02736 *((GridPos *)ws[mr.In()[5]]),
02737 *((GridPos *)ws[mr.In()[6]]),
02738 *((Vector *)ws[mr.In()[7]]),
02739 *((Index *)ws[mr.In()[8]]),
02740 *((ArrayOfIndex *)ws[mr.In()[9]]),
02741 *((Index *)ws[mr.In()[10]]),
02742 *((Index *)ws[mr.In()[11]]),
02743 *((Vector *)ws[mr.In()[12]]),
02744 *((Vector *)ws[mr.In()[13]]),
02745 *((Vector *)ws[mr.In()[14]]));
02746 }
02747
02748 void jacobianAddAbsSpecies_g(Workspace& ws, const MRecord& mr)
02749 {
02750 jacobianAddAbsSpecies(ws,
02751 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
02752 *((Agenda *)ws[mr.Out()[1]]),
02753 *((Matrix *)ws[mr.In()[0]]),
02754 *((Index *)ws[mr.In()[1]]),
02755 *((Vector *)ws[mr.In()[2]]),
02756 *((Vector *)ws[mr.In()[3]]),
02757 *((Vector *)ws[mr.In()[4]]),
02758 *((Vector *)ws[mr.In()[5]]),
02759 *((Vector *)ws[mr.In()[6]]),
02760 *((Vector *)ws[mr.In()[7]]),
02761 *((String *)ws[mr.In()[8]]),
02762 *((String *)ws[mr.In()[9]]),
02763 *((String *)ws[mr.In()[10]]),
02764 *((Numeric *)ws[mr.In()[11]]));
02765 }
02766
02767 void jacobianAddPointing_g(Workspace& ws, const MRecord& mr)
02768 {
02769 jacobianAddPointing(ws,
02770 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
02771 *((Agenda *)ws[mr.Out()[1]]),
02772 *((Matrix *)ws[mr.In()[0]]),
02773 *((Matrix *)ws[mr.In()[1]]),
02774 *((Vector *)ws[mr.In()[2]]),
02775 *((Numeric *)ws[mr.In()[3]]),
02776 *((Index *)ws[mr.In()[4]]));
02777 }
02778
02779 void jacobianAddPolyfit_g(Workspace& ws, const MRecord& mr)
02780 {
02781 jacobianAddPolyfit(ws,
02782 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
02783 *((Agenda *)ws[mr.Out()[1]]),
02784 *((Matrix *)ws[mr.In()[0]]),
02785 *((ArrayOfIndex *)ws[mr.In()[1]]),
02786 *((Vector *)ws[mr.In()[2]]),
02787 *((Vector *)ws[mr.In()[3]]),
02788 *((Matrix *)ws[mr.In()[4]]),
02789 *((Index *)ws[mr.In()[5]]),
02790 *((Index *)ws[mr.In()[6]]),
02791 *((Index *)ws[mr.In()[7]]),
02792 *((Index *)ws[mr.In()[8]]));
02793 }
02794
02795 void jacobianAddTemperature_g(Workspace& ws, const MRecord& mr)
02796 {
02797 jacobianAddTemperature(ws,
02798 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
02799 *((Agenda *)ws[mr.Out()[1]]),
02800 *((Matrix *)ws[mr.In()[0]]),
02801 *((Index *)ws[mr.In()[1]]),
02802 *((Vector *)ws[mr.In()[2]]),
02803 *((Vector *)ws[mr.In()[3]]),
02804 *((Vector *)ws[mr.In()[4]]),
02805 *((Vector *)ws[mr.In()[5]]),
02806 *((Vector *)ws[mr.In()[6]]),
02807 *((Vector *)ws[mr.In()[7]]),
02808 *((String *)ws[mr.In()[8]]),
02809 *((String *)ws[mr.In()[9]]),
02810 *((Numeric *)ws[mr.In()[10]]));
02811 }
02812
02813 void jacobianCalc_g(Workspace& ws, const MRecord& mr)
02814 {
02815 jacobianCalc(ws,
02816 *((Matrix *)ws[mr.Out()[0]]),
02817 *((Agenda *)ws[mr.In()[0]]),
02818 *((ArrayOfArrayOfIndex *)ws[mr.In()[1]]));
02819 }
02820
02821 void jacobianCalcAbsSpecies_g(Workspace& ws, const MRecord& mr)
02822 {
02823 jacobianCalcAbsSpecies(ws,
02824 *((Matrix *)ws[mr.Out()[0]]),
02825 *((Agenda *)ws[mr.In()[0]]),
02826 *((ArrayOfRetrievalQuantity *)ws[mr.In()[1]]),
02827 *((ArrayOfArrayOfIndex *)ws[mr.In()[2]]),
02828 *((Index *)ws[mr.In()[3]]),
02829 *((Vector *)ws[mr.In()[4]]),
02830 *((Vector *)ws[mr.In()[5]]),
02831 *((Vector *)ws[mr.In()[6]]),
02832 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[7]]),
02833 *((Tensor4 *)ws[mr.In()[8]]),
02834 *((Tensor3 *)ws[mr.In()[9]]),
02835 *((Tensor4 *)ws[mr.In()[10]]),
02836 *((Matrix *)ws[mr.In()[11]]),
02837 *((Vector *)ws[mr.In()[12]]),
02838 mr.SetValue());
02839 }
02840
02841 void jacobianCalcPointing_g(Workspace& ws, const MRecord& mr)
02842 {
02843 jacobianCalcPointing(ws,
02844 *((Matrix *)ws[mr.Out()[0]]),
02845 *((Agenda *)ws[mr.In()[0]]),
02846 *((ArrayOfRetrievalQuantity *)ws[mr.In()[1]]),
02847 *((ArrayOfArrayOfIndex *)ws[mr.In()[2]]),
02848 *((Tensor4 *)ws[mr.In()[3]]),
02849 *((Tensor3 *)ws[mr.In()[4]]),
02850 *((Tensor4 *)ws[mr.In()[5]]),
02851 *((Matrix *)ws[mr.In()[6]]),
02852 *((Vector *)ws[mr.In()[7]]),
02853 *((Vector *)ws[mr.In()[8]]));
02854 }
02855
02856 void jacobianCalcPolyfit_g(Workspace& ws, const MRecord& mr)
02857 {
02858 jacobianCalcPolyfit(*((Matrix *)ws[mr.Out()[0]]),
02859 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]),
02860 *((ArrayOfArrayOfIndex *)ws[mr.In()[1]]),
02861 *((ArrayOfIndex *)ws[mr.In()[2]]),
02862 *((Vector *)ws[mr.In()[3]]),
02863 *((Vector *)ws[mr.In()[4]]),
02864 *((Matrix *)ws[mr.In()[5]]),
02865 mr.SetValue());
02866 }
02867
02868 void jacobianCalcTemperature_g(Workspace& ws, const MRecord& mr)
02869 {
02870 jacobianCalcTemperature(ws,
02871 *((Matrix *)ws[mr.Out()[0]]),
02872 *((Agenda *)ws[mr.In()[0]]),
02873 *((ArrayOfRetrievalQuantity *)ws[mr.In()[1]]),
02874 *((ArrayOfArrayOfIndex *)ws[mr.In()[2]]),
02875 *((Index *)ws[mr.In()[3]]),
02876 *((Vector *)ws[mr.In()[4]]),
02877 *((Vector *)ws[mr.In()[5]]),
02878 *((Vector *)ws[mr.In()[6]]),
02879 *((Tensor4 *)ws[mr.In()[7]]),
02880 *((Tensor3 *)ws[mr.In()[8]]),
02881 *((Tensor4 *)ws[mr.In()[9]]),
02882 *((Matrix *)ws[mr.In()[10]]),
02883 *((Vector *)ws[mr.In()[11]]));
02884 }
02885
02886 void jacobianClose_g(Workspace& ws, const MRecord& mr)
02887 {
02888 jacobianClose(*((Matrix *)ws[mr.Out()[0]]),
02889 *((ArrayOfArrayOfIndex *)ws[mr.Out()[1]]),
02890 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]),
02891 *((Matrix *)ws[mr.In()[1]]),
02892 *((Sparse *)ws[mr.In()[2]]));
02893 }
02894
02895 void jacobianInit_g(Workspace& ws, const MRecord& mr)
02896 {
02897 jacobianInit(*((Matrix *)ws[mr.Out()[0]]),
02898 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[1]]),
02899 *((ArrayOfArrayOfIndex *)ws[mr.Out()[2]]),
02900 *((Agenda *)ws[mr.Out()[3]]));
02901 }
02902
02903 void jacobianOff_g(Workspace& ws, const MRecord& mr)
02904 {
02905 jacobianOff(*((Matrix *)ws[mr.Out()[0]]),
02906 *((ArrayOfRetrievalQuantity *)ws[mr.Out()[1]]),
02907 *((ArrayOfArrayOfIndex *)ws[mr.Out()[2]]),
02908 *((String *)ws[mr.Out()[3]]));
02909 }
02910
02911 void jacobianUnit_g(Workspace& ws, const MRecord& mr)
02912 {
02913 jacobianUnit(*((Matrix *)ws[mr.Out()[0]]),
02914 *((String *)ws[mr.In()[0]]),
02915 *((String *)ws[mr.In()[1]]),
02916 *((Vector *)ws[mr.In()[2]]));
02917 }
02918
02919 void MatrixCBR_g(Workspace& ws, const MRecord& mr)
02920 {
02921 MatrixCBR(*((Matrix *)ws[mr.Out()[0]]),
02922 *((Index *)ws[mr.In()[0]]),
02923 *((Vector *)ws[mr.In()[1]]));
02924 }
02925
02926 void MatrixCreate_g(Workspace& ws, const MRecord& mr)
02927 {
02928 MatrixCreate(*((Matrix *)ws[mr.Out()[0]]));
02929 }
02930
02931 void MatrixMatrixMultiply_g(Workspace& ws, const MRecord& mr)
02932 {
02933 MatrixMatrixMultiply(*((Matrix *)ws[mr.Out()[0]]),
02934 *((Matrix *)ws[mr.In()[0]]),
02935 *((Matrix *)ws[mr.In()[1]]));
02936 }
02937
02938 void Matrix1ColFromVector_g(Workspace& ws, const MRecord& mr)
02939 {
02940 Matrix1ColFromVector(*((Matrix *)ws[mr.Out()[0]]),
02941 *((Vector *)ws[mr.In()[0]]));
02942 }
02943
02944 void Matrix2ColFromVectors_g(Workspace& ws, const MRecord& mr)
02945 {
02946 Matrix2ColFromVectors(*((Matrix *)ws[mr.Out()[0]]),
02947 *((Vector *)ws[mr.In()[0]]),
02948 *((Vector *)ws[mr.In()[1]]));
02949 }
02950
02951 void Matrix3ColFromVectors_g(Workspace& ws, const MRecord& mr)
02952 {
02953 Matrix3ColFromVectors(*((Matrix *)ws[mr.Out()[0]]),
02954 *((Vector *)ws[mr.In()[0]]),
02955 *((Vector *)ws[mr.In()[1]]),
02956 *((Vector *)ws[mr.In()[2]]));
02957 }
02958
02959 void Matrix1RowFromVector_g(Workspace& ws, const MRecord& mr)
02960 {
02961 Matrix1RowFromVector(*((Matrix *)ws[mr.Out()[0]]),
02962 *((Vector *)ws[mr.In()[0]]));
02963 }
02964
02965 void Matrix2RowFromVectors_g(Workspace& ws, const MRecord& mr)
02966 {
02967 Matrix2RowFromVectors(*((Matrix *)ws[mr.Out()[0]]),
02968 *((Vector *)ws[mr.In()[0]]),
02969 *((Vector *)ws[mr.In()[1]]));
02970 }
02971
02972 void Matrix3RowFromVectors_g(Workspace& ws, const MRecord& mr)
02973 {
02974 Matrix3RowFromVectors(*((Matrix *)ws[mr.Out()[0]]),
02975 *((Vector *)ws[mr.In()[0]]),
02976 *((Vector *)ws[mr.In()[1]]),
02977 *((Vector *)ws[mr.In()[2]]));
02978 }
02979
02980 void MatrixPlanck_g(Workspace& ws, const MRecord& mr)
02981 {
02982 MatrixPlanck(*((Matrix *)ws[mr.Out()[0]]),
02983 *((Index *)ws[mr.In()[0]]),
02984 *((Vector *)ws[mr.In()[1]]),
02985 *((Numeric *)ws[mr.In()[2]]));
02986 }
02987
02988 void MatrixScale_g(Workspace& ws, const MRecord& mr)
02989 {
02990 MatrixScale(*((Matrix *)ws[mr.Out()[0]]),
02991 *((Matrix *)ws[mr.In()[0]]),
02992 *((Numeric *)ws[mr.In()[1]]));
02993 }
02994
02995 void MatrixSetConstant_g(Workspace& ws, const MRecord& mr)
02996 {
02997 MatrixSetConstant(*((Matrix *)ws[mr.Out()[0]]),
02998 *((Index *)ws[mr.In()[0]]),
02999 *((Index *)ws[mr.In()[1]]),
03000 *((Numeric *)ws[mr.In()[2]]));
03001 }
03002
03003 void MatrixUnitIntensity_g(Workspace& ws, const MRecord& mr)
03004 {
03005 MatrixUnitIntensity(*((Matrix *)ws[mr.Out()[0]]),
03006 *((Index *)ws[mr.In()[0]]),
03007 *((Vector *)ws[mr.In()[1]]));
03008 }
03009
03010 void mc_antennaSetGaussian_g(Workspace& ws, const MRecord& mr)
03011 {
03012 mc_antennaSetGaussian(*((MCAntenna *)ws[mr.Out()[0]]),
03013 *((Numeric *)ws[mr.In()[0]]),
03014 *((Numeric *)ws[mr.In()[1]]));
03015 }
03016
03017 void mc_antennaSetGaussianByFWHM_g(Workspace& ws, const MRecord& mr)
03018 {
03019 mc_antennaSetGaussianByFWHM(*((MCAntenna *)ws[mr.Out()[0]]),
03020 *((Numeric *)ws[mr.In()[0]]),
03021 *((Numeric *)ws[mr.In()[1]]));
03022 }
03023
03024 void mc_antennaSetPencilBeam_g(Workspace& ws, const MRecord& mr)
03025 {
03026 mc_antennaSetPencilBeam(*((MCAntenna *)ws[mr.Out()[0]]));
03027 }
03028
03029 void mc_IWP_cloud_opt_pathCalc_g(Workspace& ws, const MRecord& mr)
03030 {
03031 mc_IWP_cloud_opt_pathCalc(ws,
03032 *((Numeric *)ws[mr.Out()[0]]),
03033 *((Numeric *)ws[mr.Out()[1]]),
03034 *((Numeric *)ws[mr.Out()[2]]),
03035 *((Numeric *)ws[mr.Out()[3]]),
03036 *((Index *)ws[mr.Out()[4]]),
03037 *((MCAntenna *)ws[mr.In()[0]]),
03038 *((Matrix *)ws[mr.In()[1]]),
03039 *((Matrix *)ws[mr.In()[2]]),
03040 *((Agenda *)ws[mr.In()[3]]),
03041 *((Vector *)ws[mr.In()[4]]),
03042 *((Vector *)ws[mr.In()[5]]),
03043 *((Vector *)ws[mr.In()[6]]),
03044 *((Matrix *)ws[mr.In()[7]]),
03045 *((Matrix *)ws[mr.In()[8]]),
03046 *((Tensor3 *)ws[mr.In()[9]]),
03047 *((Tensor3 *)ws[mr.In()[10]]),
03048 *((Tensor4 *)ws[mr.In()[11]]),
03049 *((ArrayOfIndex *)ws[mr.In()[12]]),
03050 *((Tensor4 *)ws[mr.In()[13]]),
03051 *((ArrayOfSingleScatteringData *)ws[mr.In()[14]]),
03052 *((Vector *)ws[mr.In()[15]]),
03053 *((Index *)ws[mr.In()[16]]),
03054 *((Index *)ws[mr.In()[17]]));
03055 }
03056
03057 void MCGeneral_g(Workspace& ws, const MRecord& mr)
03058 {
03059 MCGeneral(ws,
03060 *((Vector *)ws[mr.Out()[0]]),
03061 *((Index *)ws[mr.Out()[1]]),
03062 *((Vector *)ws[mr.Out()[2]]),
03063 *((Tensor3 *)ws[mr.Out()[3]]),
03064 *((MCAntenna *)ws[mr.In()[0]]),
03065 *((Vector *)ws[mr.In()[1]]),
03066 *((Index *)ws[mr.In()[2]]),
03067 *((Matrix *)ws[mr.In()[3]]),
03068 *((Matrix *)ws[mr.In()[4]]),
03069 *((Index *)ws[mr.In()[5]]),
03070 *((Agenda *)ws[mr.In()[6]]),
03071 *((Agenda *)ws[mr.In()[7]]),
03072 *((Agenda *)ws[mr.In()[8]]),
03073 *((Agenda *)ws[mr.In()[9]]),
03074 *((Vector *)ws[mr.In()[10]]),
03075 *((Vector *)ws[mr.In()[11]]),
03076 *((Vector *)ws[mr.In()[12]]),
03077 *((Tensor3 *)ws[mr.In()[13]]),
03078 *((Matrix *)ws[mr.In()[14]]),
03079 *((Matrix *)ws[mr.In()[15]]),
03080 *((Tensor3 *)ws[mr.In()[16]]),
03081 *((Tensor4 *)ws[mr.In()[17]]),
03082 *((ArrayOfIndex *)ws[mr.In()[18]]),
03083 *((Tensor4 *)ws[mr.In()[19]]),
03084 *((ArrayOfSingleScatteringData *)ws[mr.In()[20]]),
03085 *((Index *)ws[mr.In()[21]]),
03086 *((String *)ws[mr.In()[22]]),
03087 *((Numeric *)ws[mr.In()[23]]),
03088 *((Index *)ws[mr.In()[24]]),
03089 *((Index *)ws[mr.In()[25]]),
03090 *((Index *)ws[mr.In()[26]]));
03091 }
03092
03093 void MCIPA_g(Workspace& ws, const MRecord& mr)
03094 {
03095 MCIPA(ws,
03096 *((Vector *)ws[mr.Out()[0]]),
03097 *((Index *)ws[mr.Out()[1]]),
03098 *((Vector *)ws[mr.Out()[2]]),
03099 *((Tensor3 *)ws[mr.Out()[3]]),
03100 *((MCAntenna *)ws[mr.In()[0]]),
03101 *((Vector *)ws[mr.In()[1]]),
03102 *((Index *)ws[mr.In()[2]]),
03103 *((Matrix *)ws[mr.In()[3]]),
03104 *((Matrix *)ws[mr.In()[4]]),
03105 *((Index *)ws[mr.In()[5]]),
03106 *((Agenda *)ws[mr.In()[6]]),
03107 *((Agenda *)ws[mr.In()[7]]),
03108 *((Agenda *)ws[mr.In()[8]]),
03109 *((Agenda *)ws[mr.In()[9]]),
03110 *((Agenda *)ws[mr.In()[10]]),
03111 *((Vector *)ws[mr.In()[11]]),
03112 *((Vector *)ws[mr.In()[12]]),
03113 *((Vector *)ws[mr.In()[13]]),
03114 *((Tensor3 *)ws[mr.In()[14]]),
03115 *((Matrix *)ws[mr.In()[15]]),
03116 *((Matrix *)ws[mr.In()[16]]),
03117 *((Tensor3 *)ws[mr.In()[17]]),
03118 *((Tensor4 *)ws[mr.In()[18]]),
03119 *((ArrayOfIndex *)ws[mr.In()[19]]),
03120 *((Tensor4 *)ws[mr.In()[20]]),
03121 *((ArrayOfSingleScatteringData *)ws[mr.In()[21]]),
03122 *((Index *)ws[mr.In()[22]]),
03123 *((String *)ws[mr.In()[23]]),
03124 *((Numeric *)ws[mr.In()[24]]),
03125 *((Index *)ws[mr.In()[25]]),
03126 *((Index *)ws[mr.In()[26]]),
03127 *((Index *)ws[mr.In()[27]]));
03128 }
03129
03130 void MCSetSeedFromTime_g(Workspace& ws, const MRecord& mr)
03131 {
03132 MCSetSeedFromTime(*((Index *)ws[mr.Out()[0]]));
03133 }
03134
03135 void NumericCreate_g(Workspace& ws, const MRecord& mr)
03136 {
03137 NumericCreate(*((Numeric *)ws[mr.Out()[0]]));
03138 }
03139
03140 void NumericSet_g(Workspace& ws, const MRecord& mr)
03141 {
03142 NumericSet(*((Numeric *)ws[mr.Out()[0]]),
03143 mr.SetValue());
03144 }
03145
03146 void nelemGet_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
03147 {
03148 nelemGet(*((Index *)ws[mr.Out()[0]]),
03149 *((ArrayOfIndex *)ws[mr.In()[0]]));
03150 }
03151
03152 void nelemGet_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
03153 {
03154 nelemGet(*((Index *)ws[mr.Out()[0]]),
03155 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]));
03156 }
03157
03158 void nelemGet_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
03159 {
03160 nelemGet(*((Index *)ws[mr.Out()[0]]),
03161 *((ArrayOfString *)ws[mr.In()[0]]));
03162 }
03163
03164 void nelemGet_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
03165 {
03166 nelemGet(*((Index *)ws[mr.Out()[0]]),
03167 *((ArrayOfVector *)ws[mr.In()[0]]));
03168 }
03169
03170 void nelemGet_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
03171 {
03172 nelemGet(*((Index *)ws[mr.Out()[0]]),
03173 *((ArrayOfMatrix *)ws[mr.In()[0]]));
03174 }
03175
03176 void nelemGet_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
03177 {
03178 nelemGet(*((Index *)ws[mr.Out()[0]]),
03179 *((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]));
03180 }
03181
03182 void nelemGet_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
03183 {
03184 nelemGet(*((Index *)ws[mr.Out()[0]]),
03185 *((ArrayOfTensor3 *)ws[mr.In()[0]]));
03186 }
03187
03188 void nelemGet_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
03189 {
03190 nelemGet(*((Index *)ws[mr.Out()[0]]),
03191 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]));
03192 }
03193
03194 void nelemGet_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
03195 {
03196 nelemGet(*((Index *)ws[mr.Out()[0]]),
03197 *((ArrayOfTensor4 *)ws[mr.In()[0]]));
03198 }
03199
03200 void nelemGet_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
03201 {
03202 nelemGet(*((Index *)ws[mr.Out()[0]]),
03203 *((ArrayOfTensor6 *)ws[mr.In()[0]]));
03204 }
03205
03206 void nelemGet_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
03207 {
03208 nelemGet(*((Index *)ws[mr.Out()[0]]),
03209 *((ArrayOfTensor7 *)ws[mr.In()[0]]));
03210 }
03211
03212 void nelemGet_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
03213 {
03214 nelemGet(*((Index *)ws[mr.Out()[0]]),
03215 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]));
03216 }
03217
03218 void nelemGet_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
03219 {
03220 nelemGet(*((Index *)ws[mr.Out()[0]]),
03221 *((ArrayOfLineRecord *)ws[mr.In()[0]]));
03222 }
03223
03224 void nelemGet_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
03225 {
03226 nelemGet(*((Index *)ws[mr.Out()[0]]),
03227 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]));
03228 }
03229
03230 void nelemGet_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
03231 {
03232 nelemGet(*((Index *)ws[mr.Out()[0]]),
03233 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]));
03234 }
03235
03236 void nelemGet_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
03237 {
03238 nelemGet(*((Index *)ws[mr.Out()[0]]),
03239 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]));
03240 }
03241
03242 void nelemGet_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
03243 {
03244 nelemGet(*((Index *)ws[mr.Out()[0]]),
03245 *((ArrayOfPpath *)ws[mr.In()[0]]));
03246 }
03247
03248 void nelemGet_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
03249 {
03250 nelemGet(*((Index *)ws[mr.Out()[0]]),
03251 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]));
03252 }
03253
03254 void nelemGet_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
03255 {
03256 nelemGet(*((Index *)ws[mr.Out()[0]]),
03257 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]));
03258 }
03259
03260 void nelemGet_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
03261 {
03262 nelemGet(*((Index *)ws[mr.Out()[0]]),
03263 *((ArrayOfGField1 *)ws[mr.In()[0]]));
03264 }
03265
03266 void nelemGet_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
03267 {
03268 nelemGet(*((Index *)ws[mr.Out()[0]]),
03269 *((ArrayOfGField2 *)ws[mr.In()[0]]));
03270 }
03271
03272 void nelemGet_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
03273 {
03274 nelemGet(*((Index *)ws[mr.Out()[0]]),
03275 *((ArrayOfGField3 *)ws[mr.In()[0]]));
03276 }
03277
03278 void nelemGet_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
03279 {
03280 nelemGet(*((Index *)ws[mr.Out()[0]]),
03281 *((ArrayOfGField4 *)ws[mr.In()[0]]));
03282 }
03283
03284 void nelemGet_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
03285 {
03286 nelemGet(*((Index *)ws[mr.Out()[0]]),
03287 *((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]));
03288 }
03289
03290 void nelemGet_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
03291 {
03292 nelemGet(*((Index *)ws[mr.Out()[0]]),
03293 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]));
03294 }
03295
03296 void nelemGet_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
03297 {
03298 nelemGet(*((Index *)ws[mr.Out()[0]]),
03299 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]));
03300 }
03301
03302 void nelemGet_sg_Vector_g(Workspace& ws, const MRecord& mr)
03303 {
03304 nelemGet(*((Index *)ws[mr.Out()[0]]),
03305 *((Vector *)ws[mr.In()[0]]));
03306 }
03307
03308 void ncolsGet_sg_Matrix_g(Workspace& ws, const MRecord& mr)
03309 {
03310 ncolsGet(*((Index *)ws[mr.Out()[0]]),
03311 *((Matrix *)ws[mr.In()[0]]));
03312 }
03313
03314 void ncolsGet_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
03315 {
03316 ncolsGet(*((Index *)ws[mr.Out()[0]]),
03317 *((Tensor3 *)ws[mr.In()[0]]));
03318 }
03319
03320 void ncolsGet_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
03321 {
03322 ncolsGet(*((Index *)ws[mr.Out()[0]]),
03323 *((Tensor4 *)ws[mr.In()[0]]));
03324 }
03325
03326 void ncolsGet_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
03327 {
03328 ncolsGet(*((Index *)ws[mr.Out()[0]]),
03329 *((Tensor5 *)ws[mr.In()[0]]));
03330 }
03331
03332 void ncolsGet_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03333 {
03334 ncolsGet(*((Index *)ws[mr.Out()[0]]),
03335 *((Tensor6 *)ws[mr.In()[0]]));
03336 }
03337
03338 void ncolsGet_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03339 {
03340 ncolsGet(*((Index *)ws[mr.Out()[0]]),
03341 *((Tensor7 *)ws[mr.In()[0]]));
03342 }
03343
03344 void nrowsGet_sg_Matrix_g(Workspace& ws, const MRecord& mr)
03345 {
03346 nrowsGet(*((Index *)ws[mr.Out()[0]]),
03347 *((Matrix *)ws[mr.In()[0]]));
03348 }
03349
03350 void nrowsGet_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
03351 {
03352 nrowsGet(*((Index *)ws[mr.Out()[0]]),
03353 *((Tensor3 *)ws[mr.In()[0]]));
03354 }
03355
03356 void nrowsGet_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
03357 {
03358 nrowsGet(*((Index *)ws[mr.Out()[0]]),
03359 *((Tensor4 *)ws[mr.In()[0]]));
03360 }
03361
03362 void nrowsGet_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
03363 {
03364 nrowsGet(*((Index *)ws[mr.Out()[0]]),
03365 *((Tensor5 *)ws[mr.In()[0]]));
03366 }
03367
03368 void nrowsGet_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03369 {
03370 nrowsGet(*((Index *)ws[mr.Out()[0]]),
03371 *((Tensor6 *)ws[mr.In()[0]]));
03372 }
03373
03374 void nrowsGet_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03375 {
03376 nrowsGet(*((Index *)ws[mr.Out()[0]]),
03377 *((Tensor7 *)ws[mr.In()[0]]));
03378 }
03379
03380 void npagesGet_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
03381 {
03382 npagesGet(*((Index *)ws[mr.Out()[0]]),
03383 *((Tensor3 *)ws[mr.In()[0]]));
03384 }
03385
03386 void npagesGet_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
03387 {
03388 npagesGet(*((Index *)ws[mr.Out()[0]]),
03389 *((Tensor4 *)ws[mr.In()[0]]));
03390 }
03391
03392 void npagesGet_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
03393 {
03394 npagesGet(*((Index *)ws[mr.Out()[0]]),
03395 *((Tensor5 *)ws[mr.In()[0]]));
03396 }
03397
03398 void npagesGet_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03399 {
03400 npagesGet(*((Index *)ws[mr.Out()[0]]),
03401 *((Tensor6 *)ws[mr.In()[0]]));
03402 }
03403
03404 void npagesGet_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03405 {
03406 npagesGet(*((Index *)ws[mr.Out()[0]]),
03407 *((Tensor7 *)ws[mr.In()[0]]));
03408 }
03409
03410 void nbooksGet_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
03411 {
03412 nbooksGet(*((Index *)ws[mr.Out()[0]]),
03413 *((Tensor4 *)ws[mr.In()[0]]));
03414 }
03415
03416 void nbooksGet_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
03417 {
03418 nbooksGet(*((Index *)ws[mr.Out()[0]]),
03419 *((Tensor5 *)ws[mr.In()[0]]));
03420 }
03421
03422 void nbooksGet_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03423 {
03424 nbooksGet(*((Index *)ws[mr.Out()[0]]),
03425 *((Tensor6 *)ws[mr.In()[0]]));
03426 }
03427
03428 void nbooksGet_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03429 {
03430 nbooksGet(*((Index *)ws[mr.Out()[0]]),
03431 *((Tensor7 *)ws[mr.In()[0]]));
03432 }
03433
03434 void nshelvesGet_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
03435 {
03436 nshelvesGet(*((Index *)ws[mr.Out()[0]]),
03437 *((Tensor5 *)ws[mr.In()[0]]));
03438 }
03439
03440 void nshelvesGet_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03441 {
03442 nshelvesGet(*((Index *)ws[mr.Out()[0]]),
03443 *((Tensor6 *)ws[mr.In()[0]]));
03444 }
03445
03446 void nshelvesGet_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03447 {
03448 nshelvesGet(*((Index *)ws[mr.Out()[0]]),
03449 *((Tensor7 *)ws[mr.In()[0]]));
03450 }
03451
03452 void nvitrinesGet_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03453 {
03454 nvitrinesGet(*((Index *)ws[mr.Out()[0]]),
03455 *((Tensor6 *)ws[mr.In()[0]]));
03456 }
03457
03458 void nvitrinesGet_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03459 {
03460 nvitrinesGet(*((Index *)ws[mr.Out()[0]]),
03461 *((Tensor7 *)ws[mr.In()[0]]));
03462 }
03463
03464 void nlibrariesGet_g(Workspace& ws, const MRecord& mr)
03465 {
03466 nlibrariesGet(*((Index *)ws[mr.Out()[0]]),
03467 *((Tensor7 *)ws[mr.In()[0]]));
03468 }
03469
03470 void opt_prop_sptFromData_g(Workspace& ws, const MRecord& mr)
03471 {
03472 opt_prop_sptFromData(*((Tensor3 *)ws[mr.Out()[0]]),
03473 *((Matrix *)ws[mr.Out()[1]]),
03474 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
03475 *((Vector *)ws[mr.In()[1]]),
03476 *((Vector *)ws[mr.In()[2]]),
03477 *((Index *)ws[mr.In()[3]]),
03478 *((Index *)ws[mr.In()[4]]),
03479 *((Index *)ws[mr.In()[5]]),
03480 *((Vector *)ws[mr.In()[6]]),
03481 *((Numeric *)ws[mr.In()[7]]),
03482 *((Tensor4 *)ws[mr.In()[8]]),
03483 *((Index *)ws[mr.In()[9]]),
03484 *((Index *)ws[mr.In()[10]]),
03485 *((Index *)ws[mr.In()[11]]));
03486 }
03487
03488 void opt_prop_sptFromMonoData_g(Workspace& ws, const MRecord& mr)
03489 {
03490 opt_prop_sptFromMonoData(*((Tensor3 *)ws[mr.Out()[0]]),
03491 *((Matrix *)ws[mr.Out()[1]]),
03492 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
03493 *((Vector *)ws[mr.In()[1]]),
03494 *((Vector *)ws[mr.In()[2]]),
03495 *((Index *)ws[mr.In()[3]]),
03496 *((Index *)ws[mr.In()[4]]),
03497 *((Numeric *)ws[mr.In()[5]]),
03498 *((Tensor4 *)ws[mr.In()[6]]),
03499 *((Index *)ws[mr.In()[7]]),
03500 *((Index *)ws[mr.In()[8]]),
03501 *((Index *)ws[mr.In()[9]]));
03502 }
03503
03504 void output_file_formatSetAscii_g(Workspace& ws, const MRecord& mr)
03505 {
03506 output_file_formatSetAscii(*((String *)ws[mr.Out()[0]]));
03507 }
03508
03509 void output_file_formatSetBinary_g(Workspace& ws, const MRecord& mr)
03510 {
03511 output_file_formatSetBinary(*((String *)ws[mr.Out()[0]]));
03512 }
03513
03514 void output_file_formatSetZippedAscii_g(Workspace& ws, const MRecord& mr)
03515 {
03516 output_file_formatSetZippedAscii(*((String *)ws[mr.Out()[0]]));
03517 }
03518
03519 void ParticleTypeAddAll_g(Workspace& ws, const MRecord& mr)
03520 {
03521 ParticleTypeAddAll(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
03522 *((ArrayOfGField3 *)ws[mr.Out()[1]]),
03523 *((Index *)ws[mr.In()[0]]),
03524 *((Vector *)ws[mr.In()[1]]),
03525 *((Vector *)ws[mr.In()[2]]),
03526 *((Vector *)ws[mr.In()[3]]),
03527 *((Vector *)ws[mr.In()[4]]),
03528 *((ArrayOfIndex *)ws[mr.In()[5]]),
03529 *((String *)ws[mr.In()[6]]),
03530 *((String *)ws[mr.In()[7]]));
03531 }
03532
03533 void ParticleTypeAdd_g(Workspace& ws, const MRecord& mr)
03534 {
03535 ParticleTypeAdd(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
03536 *((ArrayOfGField3 *)ws[mr.Out()[1]]),
03537 *((Index *)ws[mr.In()[0]]),
03538 *((Vector *)ws[mr.In()[1]]),
03539 *((Vector *)ws[mr.In()[2]]),
03540 *((Vector *)ws[mr.In()[3]]),
03541 *((Vector *)ws[mr.In()[4]]),
03542 *((ArrayOfIndex *)ws[mr.In()[5]]),
03543 *((String *)ws[mr.In()[6]]),
03544 *((String *)ws[mr.In()[7]]));
03545 }
03546
03547 void ParticleTypeInit_g(Workspace& ws, const MRecord& mr)
03548 {
03549 ParticleTypeInit(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
03550 *((ArrayOfGField3 *)ws[mr.Out()[1]]));
03551 }
03552
03553 void pha_matCalc_g(Workspace& ws, const MRecord& mr)
03554 {
03555 pha_matCalc(*((Tensor4 *)ws[mr.Out()[0]]),
03556 *((Tensor5 *)ws[mr.In()[0]]),
03557 *((Tensor4 *)ws[mr.In()[1]]),
03558 *((Index *)ws[mr.In()[2]]),
03559 *((Index *)ws[mr.In()[3]]),
03560 *((Index *)ws[mr.In()[4]]),
03561 *((Index *)ws[mr.In()[5]]));
03562 }
03563
03564 void pha_mat_sptFromData_g(Workspace& ws, const MRecord& mr)
03565 {
03566 pha_mat_sptFromData(*((Tensor5 *)ws[mr.Out()[0]]),
03567 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
03568 *((Vector *)ws[mr.In()[1]]),
03569 *((Vector *)ws[mr.In()[2]]),
03570 *((Index *)ws[mr.In()[3]]),
03571 *((Index *)ws[mr.In()[4]]),
03572 *((Index *)ws[mr.In()[5]]),
03573 *((Vector *)ws[mr.In()[6]]),
03574 *((Numeric *)ws[mr.In()[7]]),
03575 *((Tensor4 *)ws[mr.In()[8]]),
03576 *((Index *)ws[mr.In()[9]]),
03577 *((Index *)ws[mr.In()[10]]),
03578 *((Index *)ws[mr.In()[11]]));
03579 }
03580
03581 void pha_mat_sptFromMonoData_g(Workspace& ws, const MRecord& mr)
03582 {
03583 pha_mat_sptFromMonoData(*((Tensor5 *)ws[mr.Out()[0]]),
03584 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
03585 *((Index *)ws[mr.In()[1]]),
03586 *((Vector *)ws[mr.In()[2]]),
03587 *((Index *)ws[mr.In()[3]]),
03588 *((Index *)ws[mr.In()[4]]),
03589 *((Numeric *)ws[mr.In()[5]]),
03590 *((Tensor4 *)ws[mr.In()[6]]),
03591 *((Index *)ws[mr.In()[7]]),
03592 *((Index *)ws[mr.In()[8]]),
03593 *((Index *)ws[mr.In()[9]]));
03594 }
03595
03596 void pha_mat_sptFromDataDOITOpt_g(Workspace& ws, const MRecord& mr)
03597 {
03598 pha_mat_sptFromDataDOITOpt(*((Tensor5 *)ws[mr.Out()[0]]),
03599 *((ArrayOfTensor7 *)ws[mr.In()[0]]),
03600 *((ArrayOfSingleScatteringData *)ws[mr.In()[1]]),
03601 *((Index *)ws[mr.In()[2]]),
03602 *((Vector *)ws[mr.In()[3]]),
03603 *((Index *)ws[mr.In()[4]]),
03604 *((Index *)ws[mr.In()[5]]),
03605 *((Numeric *)ws[mr.In()[6]]),
03606 *((Tensor4 *)ws[mr.In()[7]]),
03607 *((Index *)ws[mr.In()[8]]),
03608 *((Index *)ws[mr.In()[9]]),
03609 *((Index *)ws[mr.In()[10]]));
03610 }
03611
03612 void pnd_fieldCalc_g(Workspace& ws, const MRecord& mr)
03613 {
03614 pnd_fieldCalc(*((Tensor4 *)ws[mr.Out()[0]]),
03615 *((Vector *)ws[mr.In()[0]]),
03616 *((Vector *)ws[mr.In()[1]]),
03617 *((Vector *)ws[mr.In()[2]]),
03618 *((ArrayOfGField3 *)ws[mr.In()[3]]),
03619 *((Index *)ws[mr.In()[4]]),
03620 *((ArrayOfIndex *)ws[mr.In()[5]]));
03621 }
03622
03623 void ppathCalc_g(Workspace& ws, const MRecord& mr)
03624 {
03625 ppathCalc(ws,
03626 *((Ppath *)ws[mr.Out()[0]]),
03627 *((Agenda *)ws[mr.In()[0]]),
03628 *((Index *)ws[mr.In()[1]]),
03629 *((Vector *)ws[mr.In()[2]]),
03630 *((Vector *)ws[mr.In()[3]]),
03631 *((Vector *)ws[mr.In()[4]]),
03632 *((Tensor3 *)ws[mr.In()[5]]),
03633 *((Matrix *)ws[mr.In()[6]]),
03634 *((Matrix *)ws[mr.In()[7]]),
03635 *((Index *)ws[mr.In()[8]]),
03636 *((ArrayOfIndex *)ws[mr.In()[9]]),
03637 *((Vector *)ws[mr.In()[10]]),
03638 *((Vector *)ws[mr.In()[11]]));
03639 }
03640
03641 void ppath_stepGeometric_g(Workspace& ws, const MRecord& mr)
03642 {
03643 ppath_stepGeometric(*((Ppath *)ws[mr.Out()[0]]),
03644 *((Index *)ws[mr.In()[0]]),
03645 *((Vector *)ws[mr.In()[1]]),
03646 *((Vector *)ws[mr.In()[2]]),
03647 *((Vector *)ws[mr.In()[3]]),
03648 *((Tensor3 *)ws[mr.In()[4]]),
03649 *((Matrix *)ws[mr.In()[5]]),
03650 *((Matrix *)ws[mr.In()[6]]),
03651 *((Numeric *)ws[mr.In()[7]]));
03652 }
03653
03654 void ppath_stepRefractionEuler_g(Workspace& ws, const MRecord& mr)
03655 {
03656 ppath_stepRefractionEuler(ws,
03657 *((Ppath *)ws[mr.Out()[0]]),
03658 *((Numeric *)ws[mr.Out()[1]]),
03659 *((Numeric *)ws[mr.Out()[2]]),
03660 *((Vector *)ws[mr.Out()[3]]),
03661 *((Numeric *)ws[mr.Out()[4]]),
03662 *((Agenda *)ws[mr.In()[0]]),
03663 *((Index *)ws[mr.In()[1]]),
03664 *((Vector *)ws[mr.In()[2]]),
03665 *((Vector *)ws[mr.In()[3]]),
03666 *((Vector *)ws[mr.In()[4]]),
03667 *((Tensor3 *)ws[mr.In()[5]]),
03668 *((Tensor3 *)ws[mr.In()[6]]),
03669 *((Tensor4 *)ws[mr.In()[7]]),
03670 *((Matrix *)ws[mr.In()[8]]),
03671 *((Matrix *)ws[mr.In()[9]]),
03672 *((Numeric *)ws[mr.In()[10]]),
03673 *((Numeric *)ws[mr.In()[11]]));
03674 }
03675
03676 void Print_sg_Index_g(Workspace& ws, const MRecord& mr)
03677 {
03678 Print(*((Index *)ws[mr.In()[0]]),
03679 *((Index *)ws[mr.In()[1]]));
03680 }
03681
03682 void Print_sg_Numeric_g(Workspace& ws, const MRecord& mr)
03683 {
03684 Print(*((Numeric *)ws[mr.In()[0]]),
03685 *((Index *)ws[mr.In()[1]]));
03686 }
03687
03688 void Print_sg_String_g(Workspace& ws, const MRecord& mr)
03689 {
03690 Print(*((String *)ws[mr.In()[0]]),
03691 *((Index *)ws[mr.In()[1]]));
03692 }
03693
03694 void Print_sg_Vector_g(Workspace& ws, const MRecord& mr)
03695 {
03696 Print(*((Vector *)ws[mr.In()[0]]),
03697 *((Index *)ws[mr.In()[1]]));
03698 }
03699
03700 void Print_sg_Matrix_g(Workspace& ws, const MRecord& mr)
03701 {
03702 Print(*((Matrix *)ws[mr.In()[0]]),
03703 *((Index *)ws[mr.In()[1]]));
03704 }
03705
03706 void Print_sg_Sparse_g(Workspace& ws, const MRecord& mr)
03707 {
03708 Print(*((Sparse *)ws[mr.In()[0]]),
03709 *((Index *)ws[mr.In()[1]]));
03710 }
03711
03712 void Print_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
03713 {
03714 Print(*((Tensor3 *)ws[mr.In()[0]]),
03715 *((Index *)ws[mr.In()[1]]));
03716 }
03717
03718 void Print_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
03719 {
03720 Print(*((Tensor4 *)ws[mr.In()[0]]),
03721 *((Index *)ws[mr.In()[1]]));
03722 }
03723
03724 void Print_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
03725 {
03726 Print(*((Tensor5 *)ws[mr.In()[0]]),
03727 *((Index *)ws[mr.In()[1]]));
03728 }
03729
03730 void Print_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
03731 {
03732 Print(*((Tensor6 *)ws[mr.In()[0]]),
03733 *((Index *)ws[mr.In()[1]]));
03734 }
03735
03736 void Print_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
03737 {
03738 Print(*((Tensor7 *)ws[mr.In()[0]]),
03739 *((Index *)ws[mr.In()[1]]));
03740 }
03741
03742 void Print_sg_Timer_g(Workspace& ws, const MRecord& mr)
03743 {
03744 Print(*((Timer *)ws[mr.In()[0]]),
03745 *((Index *)ws[mr.In()[1]]));
03746 }
03747
03748 void Print_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
03749 {
03750 Print(*((ArrayOfIndex *)ws[mr.In()[0]]),
03751 *((Index *)ws[mr.In()[1]]));
03752 }
03753
03754 void Print_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
03755 {
03756 Print(*((ArrayOfArrayOfIndex *)ws[mr.In()[0]]),
03757 *((Index *)ws[mr.In()[1]]));
03758 }
03759
03760 void Print_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
03761 {
03762 Print(*((ArrayOfString *)ws[mr.In()[0]]),
03763 *((Index *)ws[mr.In()[1]]));
03764 }
03765
03766 void Print_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
03767 {
03768 Print(*((ArrayOfVector *)ws[mr.In()[0]]),
03769 *((Index *)ws[mr.In()[1]]));
03770 }
03771
03772 void Print_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
03773 {
03774 Print(*((ArrayOfMatrix *)ws[mr.In()[0]]),
03775 *((Index *)ws[mr.In()[1]]));
03776 }
03777
03778 void Print_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
03779 {
03780 Print(*((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]),
03781 *((Index *)ws[mr.In()[1]]));
03782 }
03783
03784 void Print_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
03785 {
03786 Print(*((ArrayOfTensor3 *)ws[mr.In()[0]]),
03787 *((Index *)ws[mr.In()[1]]));
03788 }
03789
03790 void Print_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
03791 {
03792 Print(*((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]),
03793 *((Index *)ws[mr.In()[1]]));
03794 }
03795
03796 void Print_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
03797 {
03798 Print(*((ArrayOfTensor4 *)ws[mr.In()[0]]),
03799 *((Index *)ws[mr.In()[1]]));
03800 }
03801
03802 void Print_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
03803 {
03804 Print(*((ArrayOfTensor6 *)ws[mr.In()[0]]),
03805 *((Index *)ws[mr.In()[1]]));
03806 }
03807
03808 void Print_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
03809 {
03810 Print(*((ArrayOfTensor7 *)ws[mr.In()[0]]),
03811 *((Index *)ws[mr.In()[1]]));
03812 }
03813
03814 void Print_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
03815 {
03816 Print(*((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]),
03817 *((Index *)ws[mr.In()[1]]));
03818 }
03819
03820 void Print_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
03821 {
03822 Print(*((ArrayOfLineRecord *)ws[mr.In()[0]]),
03823 *((Index *)ws[mr.In()[1]]));
03824 }
03825
03826 void Print_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
03827 {
03828 Print(*((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]),
03829 *((Index *)ws[mr.In()[1]]));
03830 }
03831
03832 void Print_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
03833 {
03834 Print(*((ArrayOfLineshapeSpec *)ws[mr.In()[0]]),
03835 *((Index *)ws[mr.In()[1]]));
03836 }
03837
03838 void Print_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
03839 {
03840 Print(*((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
03841 *((Index *)ws[mr.In()[1]]));
03842 }
03843
03844 void Print_sg_Ppath_g(Workspace& ws, const MRecord& mr)
03845 {
03846 Print(*((Ppath *)ws[mr.In()[0]]),
03847 *((Index *)ws[mr.In()[1]]));
03848 }
03849
03850 void Print_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
03851 {
03852 Print(*((ArrayOfPpath *)ws[mr.In()[0]]),
03853 *((Index *)ws[mr.In()[1]]));
03854 }
03855
03856 void Print_sg_Agenda_g(Workspace& ws, const MRecord& mr)
03857 {
03858 Print(ws,
03859 *((Agenda *)ws[mr.In()[0]]),
03860 *((Index *)ws[mr.In()[1]]));
03861 }
03862
03863 void Print_sg_GridPos_g(Workspace& ws, const MRecord& mr)
03864 {
03865 Print(*((GridPos *)ws[mr.In()[0]]),
03866 *((Index *)ws[mr.In()[1]]));
03867 }
03868
03869 void Print_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
03870 {
03871 Print(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]),
03872 *((Index *)ws[mr.In()[1]]));
03873 }
03874
03875 void Print_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
03876 {
03877 Print(*((GasAbsLookup *)ws[mr.In()[0]]),
03878 *((Index *)ws[mr.In()[1]]));
03879 }
03880
03881 void Print_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
03882 {
03883 Print(*((SingleScatteringData *)ws[mr.In()[0]]),
03884 *((Index *)ws[mr.In()[1]]));
03885 }
03886
03887 void Print_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
03888 {
03889 Print(*((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
03890 *((Index *)ws[mr.In()[1]]));
03891 }
03892
03893 void Print_sg_GField1_g(Workspace& ws, const MRecord& mr)
03894 {
03895 Print(*((GField1 *)ws[mr.In()[0]]),
03896 *((Index *)ws[mr.In()[1]]));
03897 }
03898
03899 void Print_sg_GField2_g(Workspace& ws, const MRecord& mr)
03900 {
03901 Print(*((GField2 *)ws[mr.In()[0]]),
03902 *((Index *)ws[mr.In()[1]]));
03903 }
03904
03905 void Print_sg_GField3_g(Workspace& ws, const MRecord& mr)
03906 {
03907 Print(*((GField3 *)ws[mr.In()[0]]),
03908 *((Index *)ws[mr.In()[1]]));
03909 }
03910
03911 void Print_sg_GField4_g(Workspace& ws, const MRecord& mr)
03912 {
03913 Print(*((GField4 *)ws[mr.In()[0]]),
03914 *((Index *)ws[mr.In()[1]]));
03915 }
03916
03917 void Print_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
03918 {
03919 Print(*((ArrayOfGField1 *)ws[mr.In()[0]]),
03920 *((Index *)ws[mr.In()[1]]));
03921 }
03922
03923 void Print_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
03924 {
03925 Print(*((ArrayOfGField2 *)ws[mr.In()[0]]),
03926 *((Index *)ws[mr.In()[1]]));
03927 }
03928
03929 void Print_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
03930 {
03931 Print(*((ArrayOfGField3 *)ws[mr.In()[0]]),
03932 *((Index *)ws[mr.In()[1]]));
03933 }
03934
03935 void Print_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
03936 {
03937 Print(*((ArrayOfGField4 *)ws[mr.In()[0]]),
03938 *((Index *)ws[mr.In()[1]]));
03939 }
03940
03941 void Print_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
03942 {
03943 Print(*((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]),
03944 *((Index *)ws[mr.In()[1]]));
03945 }
03946
03947 void Print_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
03948 {
03949 Print(*((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]),
03950 *((Index *)ws[mr.In()[1]]));
03951 }
03952
03953 void Print_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
03954 {
03955 Print(*((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]),
03956 *((Index *)ws[mr.In()[1]]));
03957 }
03958
03959 void Print_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
03960 {
03961 Print(*((MCAntenna *)ws[mr.In()[0]]),
03962 *((Index *)ws[mr.In()[1]]));
03963 }
03964
03965 void Print_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
03966 {
03967 Print(*((SLIData2 *)ws[mr.In()[0]]),
03968 *((Index *)ws[mr.In()[1]]));
03969 }
03970
03971 void PrintWorkspace_g(Workspace& ws, const MRecord& mr)
03972 {
03973 PrintWorkspace(ws,
03974 *((Index *)ws[mr.In()[0]]),
03975 *((Index *)ws[mr.In()[1]]));
03976 }
03977
03978 void p_gridFromGasAbsLookup_g(Workspace& ws, const MRecord& mr)
03979 {
03980 p_gridFromGasAbsLookup(*((Vector *)ws[mr.Out()[0]]),
03981 *((GasAbsLookup *)ws[mr.In()[0]]));
03982 }
03983
03984 void ReadNetCDF_sg_Vector_g(Workspace& ws, const MRecord& mr)
03985 {
03986 ReadNetCDF(*((Vector *)ws[mr.Out()[0]]),
03987 Workspace::wsv_data[mr.Out()[0]].Name(),
03988 *((String *)ws[mr.In()[0]]),
03989 Workspace::wsv_data[mr.In()[0]].Name());
03990 }
03991
03992 void ReadNetCDF_sg_Matrix_g(Workspace& ws, const MRecord& mr)
03993 {
03994 ReadNetCDF(*((Matrix *)ws[mr.Out()[0]]),
03995 Workspace::wsv_data[mr.Out()[0]].Name(),
03996 *((String *)ws[mr.In()[0]]),
03997 Workspace::wsv_data[mr.In()[0]].Name());
03998 }
03999
04000 void ReadNetCDF_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
04001 {
04002 ReadNetCDF(*((Tensor3 *)ws[mr.Out()[0]]),
04003 Workspace::wsv_data[mr.Out()[0]].Name(),
04004 *((String *)ws[mr.In()[0]]),
04005 Workspace::wsv_data[mr.In()[0]].Name());
04006 }
04007
04008 void ReadNetCDF_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
04009 {
04010 ReadNetCDF(*((Tensor4 *)ws[mr.Out()[0]]),
04011 Workspace::wsv_data[mr.Out()[0]].Name(),
04012 *((String *)ws[mr.In()[0]]),
04013 Workspace::wsv_data[mr.In()[0]].Name());
04014 }
04015
04016 void ReadNetCDF_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
04017 {
04018 ReadNetCDF(*((ArrayOfVector *)ws[mr.Out()[0]]),
04019 Workspace::wsv_data[mr.Out()[0]].Name(),
04020 *((String *)ws[mr.In()[0]]),
04021 Workspace::wsv_data[mr.In()[0]].Name());
04022 }
04023
04024 void ReadNetCDF_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
04025 {
04026 ReadNetCDF(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
04027 Workspace::wsv_data[mr.Out()[0]].Name(),
04028 *((String *)ws[mr.In()[0]]),
04029 Workspace::wsv_data[mr.In()[0]].Name());
04030 }
04031
04032 void ReadXML_sg_Index_g(Workspace& ws, const MRecord& mr)
04033 {
04034 ReadXML(*((Index *)ws[mr.Out()[0]]),
04035 Workspace::wsv_data[mr.Out()[0]].Name(),
04036 *((String *)ws[mr.In()[0]]),
04037 Workspace::wsv_data[mr.In()[0]].Name());
04038 }
04039
04040 void ReadXML_sg_Numeric_g(Workspace& ws, const MRecord& mr)
04041 {
04042 ReadXML(*((Numeric *)ws[mr.Out()[0]]),
04043 Workspace::wsv_data[mr.Out()[0]].Name(),
04044 *((String *)ws[mr.In()[0]]),
04045 Workspace::wsv_data[mr.In()[0]].Name());
04046 }
04047
04048 void ReadXML_sg_String_g(Workspace& ws, const MRecord& mr)
04049 {
04050 ReadXML(*((String *)ws[mr.Out()[0]]),
04051 Workspace::wsv_data[mr.Out()[0]].Name(),
04052 *((String *)ws[mr.In()[0]]),
04053 Workspace::wsv_data[mr.In()[0]].Name());
04054 }
04055
04056 void ReadXML_sg_Vector_g(Workspace& ws, const MRecord& mr)
04057 {
04058 ReadXML(*((Vector *)ws[mr.Out()[0]]),
04059 Workspace::wsv_data[mr.Out()[0]].Name(),
04060 *((String *)ws[mr.In()[0]]),
04061 Workspace::wsv_data[mr.In()[0]].Name());
04062 }
04063
04064 void ReadXML_sg_Matrix_g(Workspace& ws, const MRecord& mr)
04065 {
04066 ReadXML(*((Matrix *)ws[mr.Out()[0]]),
04067 Workspace::wsv_data[mr.Out()[0]].Name(),
04068 *((String *)ws[mr.In()[0]]),
04069 Workspace::wsv_data[mr.In()[0]].Name());
04070 }
04071
04072 void ReadXML_sg_Sparse_g(Workspace& ws, const MRecord& mr)
04073 {
04074 ReadXML(*((Sparse *)ws[mr.Out()[0]]),
04075 Workspace::wsv_data[mr.Out()[0]].Name(),
04076 *((String *)ws[mr.In()[0]]),
04077 Workspace::wsv_data[mr.In()[0]].Name());
04078 }
04079
04080 void ReadXML_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
04081 {
04082 ReadXML(*((Tensor3 *)ws[mr.Out()[0]]),
04083 Workspace::wsv_data[mr.Out()[0]].Name(),
04084 *((String *)ws[mr.In()[0]]),
04085 Workspace::wsv_data[mr.In()[0]].Name());
04086 }
04087
04088 void ReadXML_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
04089 {
04090 ReadXML(*((Tensor4 *)ws[mr.Out()[0]]),
04091 Workspace::wsv_data[mr.Out()[0]].Name(),
04092 *((String *)ws[mr.In()[0]]),
04093 Workspace::wsv_data[mr.In()[0]].Name());
04094 }
04095
04096 void ReadXML_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
04097 {
04098 ReadXML(*((Tensor5 *)ws[mr.Out()[0]]),
04099 Workspace::wsv_data[mr.Out()[0]].Name(),
04100 *((String *)ws[mr.In()[0]]),
04101 Workspace::wsv_data[mr.In()[0]].Name());
04102 }
04103
04104 void ReadXML_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
04105 {
04106 ReadXML(*((Tensor6 *)ws[mr.Out()[0]]),
04107 Workspace::wsv_data[mr.Out()[0]].Name(),
04108 *((String *)ws[mr.In()[0]]),
04109 Workspace::wsv_data[mr.In()[0]].Name());
04110 }
04111
04112 void ReadXML_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
04113 {
04114 ReadXML(*((Tensor7 *)ws[mr.Out()[0]]),
04115 Workspace::wsv_data[mr.Out()[0]].Name(),
04116 *((String *)ws[mr.In()[0]]),
04117 Workspace::wsv_data[mr.In()[0]].Name());
04118 }
04119
04120 void ReadXML_sg_Timer_g(Workspace& ws, const MRecord& mr)
04121 {
04122 ReadXML(*((Timer *)ws[mr.Out()[0]]),
04123 Workspace::wsv_data[mr.Out()[0]].Name(),
04124 *((String *)ws[mr.In()[0]]),
04125 Workspace::wsv_data[mr.In()[0]].Name());
04126 }
04127
04128 void ReadXML_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
04129 {
04130 ReadXML(*((ArrayOfIndex *)ws[mr.Out()[0]]),
04131 Workspace::wsv_data[mr.Out()[0]].Name(),
04132 *((String *)ws[mr.In()[0]]),
04133 Workspace::wsv_data[mr.In()[0]].Name());
04134 }
04135
04136 void ReadXML_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
04137 {
04138 ReadXML(*((ArrayOfArrayOfIndex *)ws[mr.Out()[0]]),
04139 Workspace::wsv_data[mr.Out()[0]].Name(),
04140 *((String *)ws[mr.In()[0]]),
04141 Workspace::wsv_data[mr.In()[0]].Name());
04142 }
04143
04144 void ReadXML_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
04145 {
04146 ReadXML(*((ArrayOfString *)ws[mr.Out()[0]]),
04147 Workspace::wsv_data[mr.Out()[0]].Name(),
04148 *((String *)ws[mr.In()[0]]),
04149 Workspace::wsv_data[mr.In()[0]].Name());
04150 }
04151
04152 void ReadXML_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
04153 {
04154 ReadXML(*((ArrayOfVector *)ws[mr.Out()[0]]),
04155 Workspace::wsv_data[mr.Out()[0]].Name(),
04156 *((String *)ws[mr.In()[0]]),
04157 Workspace::wsv_data[mr.In()[0]].Name());
04158 }
04159
04160 void ReadXML_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
04161 {
04162 ReadXML(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
04163 Workspace::wsv_data[mr.Out()[0]].Name(),
04164 *((String *)ws[mr.In()[0]]),
04165 Workspace::wsv_data[mr.In()[0]].Name());
04166 }
04167
04168 void ReadXML_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
04169 {
04170 ReadXML(*((ArrayOfArrayOfMatrix *)ws[mr.Out()[0]]),
04171 Workspace::wsv_data[mr.Out()[0]].Name(),
04172 *((String *)ws[mr.In()[0]]),
04173 Workspace::wsv_data[mr.In()[0]].Name());
04174 }
04175
04176 void ReadXML_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
04177 {
04178 ReadXML(*((ArrayOfTensor3 *)ws[mr.Out()[0]]),
04179 Workspace::wsv_data[mr.Out()[0]].Name(),
04180 *((String *)ws[mr.In()[0]]),
04181 Workspace::wsv_data[mr.In()[0]].Name());
04182 }
04183
04184 void ReadXML_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
04185 {
04186 ReadXML(*((ArrayOfArrayOfTensor3 *)ws[mr.Out()[0]]),
04187 Workspace::wsv_data[mr.Out()[0]].Name(),
04188 *((String *)ws[mr.In()[0]]),
04189 Workspace::wsv_data[mr.In()[0]].Name());
04190 }
04191
04192 void ReadXML_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
04193 {
04194 ReadXML(*((ArrayOfTensor4 *)ws[mr.Out()[0]]),
04195 Workspace::wsv_data[mr.Out()[0]].Name(),
04196 *((String *)ws[mr.In()[0]]),
04197 Workspace::wsv_data[mr.In()[0]].Name());
04198 }
04199
04200 void ReadXML_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
04201 {
04202 ReadXML(*((ArrayOfTensor6 *)ws[mr.Out()[0]]),
04203 Workspace::wsv_data[mr.Out()[0]].Name(),
04204 *((String *)ws[mr.In()[0]]),
04205 Workspace::wsv_data[mr.In()[0]].Name());
04206 }
04207
04208 void ReadXML_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
04209 {
04210 ReadXML(*((ArrayOfTensor7 *)ws[mr.Out()[0]]),
04211 Workspace::wsv_data[mr.Out()[0]].Name(),
04212 *((String *)ws[mr.In()[0]]),
04213 Workspace::wsv_data[mr.In()[0]].Name());
04214 }
04215
04216 void ReadXML_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
04217 {
04218 ReadXML(*((ArrayOfArrayOfTensor6 *)ws[mr.Out()[0]]),
04219 Workspace::wsv_data[mr.Out()[0]].Name(),
04220 *((String *)ws[mr.In()[0]]),
04221 Workspace::wsv_data[mr.In()[0]].Name());
04222 }
04223
04224 void ReadXML_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
04225 {
04226 ReadXML(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
04227 Workspace::wsv_data[mr.Out()[0]].Name(),
04228 *((String *)ws[mr.In()[0]]),
04229 Workspace::wsv_data[mr.In()[0]].Name());
04230 }
04231
04232 void ReadXML_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
04233 {
04234 ReadXML(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
04235 Workspace::wsv_data[mr.Out()[0]].Name(),
04236 *((String *)ws[mr.In()[0]]),
04237 Workspace::wsv_data[mr.In()[0]].Name());
04238 }
04239
04240 void ReadXML_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
04241 {
04242 ReadXML(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
04243 Workspace::wsv_data[mr.Out()[0]].Name(),
04244 *((String *)ws[mr.In()[0]]),
04245 Workspace::wsv_data[mr.In()[0]].Name());
04246 }
04247
04248 void ReadXML_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
04249 {
04250 ReadXML(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
04251 Workspace::wsv_data[mr.Out()[0]].Name(),
04252 *((String *)ws[mr.In()[0]]),
04253 Workspace::wsv_data[mr.In()[0]].Name());
04254 }
04255
04256 void ReadXML_sg_Ppath_g(Workspace& ws, const MRecord& mr)
04257 {
04258 ReadXML(*((Ppath *)ws[mr.Out()[0]]),
04259 Workspace::wsv_data[mr.Out()[0]].Name(),
04260 *((String *)ws[mr.In()[0]]),
04261 Workspace::wsv_data[mr.In()[0]].Name());
04262 }
04263
04264 void ReadXML_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
04265 {
04266 ReadXML(*((ArrayOfPpath *)ws[mr.Out()[0]]),
04267 Workspace::wsv_data[mr.Out()[0]].Name(),
04268 *((String *)ws[mr.In()[0]]),
04269 Workspace::wsv_data[mr.In()[0]].Name());
04270 }
04271
04272 void ReadXML_sg_Agenda_g(Workspace& ws, const MRecord& mr)
04273 {
04274 ReadXML(*((Agenda *)ws[mr.Out()[0]]),
04275 Workspace::wsv_data[mr.Out()[0]].Name(),
04276 *((String *)ws[mr.In()[0]]),
04277 Workspace::wsv_data[mr.In()[0]].Name());
04278 }
04279
04280 void ReadXML_sg_GridPos_g(Workspace& ws, const MRecord& mr)
04281 {
04282 ReadXML(*((GridPos *)ws[mr.Out()[0]]),
04283 Workspace::wsv_data[mr.Out()[0]].Name(),
04284 *((String *)ws[mr.In()[0]]),
04285 Workspace::wsv_data[mr.In()[0]].Name());
04286 }
04287
04288 void ReadXML_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
04289 {
04290 ReadXML(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.Out()[0]]),
04291 Workspace::wsv_data[mr.Out()[0]].Name(),
04292 *((String *)ws[mr.In()[0]]),
04293 Workspace::wsv_data[mr.In()[0]].Name());
04294 }
04295
04296 void ReadXML_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
04297 {
04298 ReadXML(*((GasAbsLookup *)ws[mr.Out()[0]]),
04299 Workspace::wsv_data[mr.Out()[0]].Name(),
04300 *((String *)ws[mr.In()[0]]),
04301 Workspace::wsv_data[mr.In()[0]].Name());
04302 }
04303
04304 void ReadXML_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
04305 {
04306 ReadXML(*((SingleScatteringData *)ws[mr.Out()[0]]),
04307 Workspace::wsv_data[mr.Out()[0]].Name(),
04308 *((String *)ws[mr.In()[0]]),
04309 Workspace::wsv_data[mr.In()[0]].Name());
04310 }
04311
04312 void ReadXML_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
04313 {
04314 ReadXML(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
04315 Workspace::wsv_data[mr.Out()[0]].Name(),
04316 *((String *)ws[mr.In()[0]]),
04317 Workspace::wsv_data[mr.In()[0]].Name());
04318 }
04319
04320 void ReadXML_sg_GField1_g(Workspace& ws, const MRecord& mr)
04321 {
04322 ReadXML(*((GField1 *)ws[mr.Out()[0]]),
04323 Workspace::wsv_data[mr.Out()[0]].Name(),
04324 *((String *)ws[mr.In()[0]]),
04325 Workspace::wsv_data[mr.In()[0]].Name());
04326 }
04327
04328 void ReadXML_sg_GField2_g(Workspace& ws, const MRecord& mr)
04329 {
04330 ReadXML(*((GField2 *)ws[mr.Out()[0]]),
04331 Workspace::wsv_data[mr.Out()[0]].Name(),
04332 *((String *)ws[mr.In()[0]]),
04333 Workspace::wsv_data[mr.In()[0]].Name());
04334 }
04335
04336 void ReadXML_sg_GField3_g(Workspace& ws, const MRecord& mr)
04337 {
04338 ReadXML(*((GField3 *)ws[mr.Out()[0]]),
04339 Workspace::wsv_data[mr.Out()[0]].Name(),
04340 *((String *)ws[mr.In()[0]]),
04341 Workspace::wsv_data[mr.In()[0]].Name());
04342 }
04343
04344 void ReadXML_sg_GField4_g(Workspace& ws, const MRecord& mr)
04345 {
04346 ReadXML(*((GField4 *)ws[mr.Out()[0]]),
04347 Workspace::wsv_data[mr.Out()[0]].Name(),
04348 *((String *)ws[mr.In()[0]]),
04349 Workspace::wsv_data[mr.In()[0]].Name());
04350 }
04351
04352 void ReadXML_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
04353 {
04354 ReadXML(*((ArrayOfGField1 *)ws[mr.Out()[0]]),
04355 Workspace::wsv_data[mr.Out()[0]].Name(),
04356 *((String *)ws[mr.In()[0]]),
04357 Workspace::wsv_data[mr.In()[0]].Name());
04358 }
04359
04360 void ReadXML_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
04361 {
04362 ReadXML(*((ArrayOfGField2 *)ws[mr.Out()[0]]),
04363 Workspace::wsv_data[mr.Out()[0]].Name(),
04364 *((String *)ws[mr.In()[0]]),
04365 Workspace::wsv_data[mr.In()[0]].Name());
04366 }
04367
04368 void ReadXML_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
04369 {
04370 ReadXML(*((ArrayOfGField3 *)ws[mr.Out()[0]]),
04371 Workspace::wsv_data[mr.Out()[0]].Name(),
04372 *((String *)ws[mr.In()[0]]),
04373 Workspace::wsv_data[mr.In()[0]].Name());
04374 }
04375
04376 void ReadXML_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
04377 {
04378 ReadXML(*((ArrayOfGField4 *)ws[mr.Out()[0]]),
04379 Workspace::wsv_data[mr.Out()[0]].Name(),
04380 *((String *)ws[mr.In()[0]]),
04381 Workspace::wsv_data[mr.In()[0]].Name());
04382 }
04383
04384 void ReadXML_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
04385 {
04386 ReadXML(*((ArrayOfArrayOfGField1 *)ws[mr.Out()[0]]),
04387 Workspace::wsv_data[mr.Out()[0]].Name(),
04388 *((String *)ws[mr.In()[0]]),
04389 Workspace::wsv_data[mr.In()[0]].Name());
04390 }
04391
04392 void ReadXML_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
04393 {
04394 ReadXML(*((ArrayOfArrayOfGField3 *)ws[mr.Out()[0]]),
04395 Workspace::wsv_data[mr.Out()[0]].Name(),
04396 *((String *)ws[mr.In()[0]]),
04397 Workspace::wsv_data[mr.In()[0]].Name());
04398 }
04399
04400 void ReadXML_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
04401 {
04402 ReadXML(*((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
04403 Workspace::wsv_data[mr.Out()[0]].Name(),
04404 *((String *)ws[mr.In()[0]]),
04405 Workspace::wsv_data[mr.In()[0]].Name());
04406 }
04407
04408 void ReadXML_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
04409 {
04410 ReadXML(*((MCAntenna *)ws[mr.Out()[0]]),
04411 Workspace::wsv_data[mr.Out()[0]].Name(),
04412 *((String *)ws[mr.In()[0]]),
04413 Workspace::wsv_data[mr.In()[0]].Name());
04414 }
04415
04416 void ReadXML_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
04417 {
04418 ReadXML(*((SLIData2 *)ws[mr.Out()[0]]),
04419 Workspace::wsv_data[mr.Out()[0]].Name(),
04420 *((String *)ws[mr.In()[0]]),
04421 Workspace::wsv_data[mr.In()[0]].Name());
04422 }
04423
04424 void refr_indexFieldAndGradients_g(Workspace& ws, const MRecord& mr)
04425 {
04426 refr_indexFieldAndGradients(ws,
04427 *((Numeric *)ws[mr.Out()[0]]),
04428 *((Numeric *)ws[mr.Out()[1]]),
04429 *((Numeric *)ws[mr.Out()[2]]),
04430 *((Vector *)ws[mr.Out()[3]]),
04431 *((Tensor4 *)ws[mr.Out()[4]]),
04432 *((Agenda *)ws[mr.In()[0]]),
04433 *((Index *)ws[mr.In()[1]]),
04434 *((Vector *)ws[mr.In()[2]]),
04435 *((Vector *)ws[mr.In()[3]]),
04436 *((Vector *)ws[mr.In()[4]]),
04437 *((Matrix *)ws[mr.In()[5]]),
04438 *((Tensor3 *)ws[mr.In()[6]]),
04439 *((Tensor3 *)ws[mr.In()[7]]),
04440 *((Tensor4 *)ws[mr.In()[8]]),
04441 *((Vector *)ws[mr.In()[9]]),
04442 *((Vector *)ws[mr.In()[10]]),
04443 *((Vector *)ws[mr.In()[11]]));
04444 }
04445
04446 void refr_indexIR_g(Workspace& ws, const MRecord& mr)
04447 {
04448 refr_indexIR(*((Numeric *)ws[mr.Out()[0]]),
04449 *((Numeric *)ws[mr.In()[0]]),
04450 *((Numeric *)ws[mr.In()[1]]),
04451 *((Vector *)ws[mr.In()[2]]));
04452 }
04453
04454 void refr_indexThayer_g(Workspace& ws, const MRecord& mr)
04455 {
04456 refr_indexThayer(*((Numeric *)ws[mr.Out()[0]]),
04457 *((Numeric *)ws[mr.In()[0]]),
04458 *((Numeric *)ws[mr.In()[1]]),
04459 *((Vector *)ws[mr.In()[2]]),
04460 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[3]]));
04461 }
04462
04463 void refr_indexUnit_g(Workspace& ws, const MRecord& mr)
04464 {
04465 refr_indexUnit(*((Numeric *)ws[mr.Out()[0]]));
04466 }
04467
04468 void RteCalc_g(Workspace& ws, const MRecord& mr)
04469 {
04470 RteCalc(ws,
04471 *((Vector *)ws[mr.Out()[0]]),
04472 *((Vector *)ws[mr.Out()[1]]),
04473 *((ArrayOfIndex *)ws[mr.Out()[2]]),
04474 *((Matrix *)ws[mr.Out()[3]]),
04475 *((Matrix *)ws[mr.Out()[4]]),
04476 *((Matrix *)ws[mr.Out()[5]]),
04477 *((Agenda *)ws[mr.In()[0]]),
04478 *((Agenda *)ws[mr.In()[1]]),
04479 *((Agenda *)ws[mr.In()[2]]),
04480 *((Agenda *)ws[mr.In()[3]]),
04481 *((Agenda *)ws[mr.In()[4]]),
04482 *((Index *)ws[mr.In()[5]]),
04483 *((Vector *)ws[mr.In()[6]]),
04484 *((Vector *)ws[mr.In()[7]]),
04485 *((Vector *)ws[mr.In()[8]]),
04486 *((Tensor3 *)ws[mr.In()[9]]),
04487 *((Tensor3 *)ws[mr.In()[10]]),
04488 *((Tensor4 *)ws[mr.In()[11]]),
04489 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[12]]),
04490 *((Matrix *)ws[mr.In()[13]]),
04491 *((Matrix *)ws[mr.In()[14]]),
04492 *((Index *)ws[mr.In()[15]]),
04493 *((ArrayOfIndex *)ws[mr.In()[16]]),
04494 *((Sparse *)ws[mr.In()[17]]),
04495 *((Vector *)ws[mr.In()[18]]),
04496 *((ArrayOfIndex *)ws[mr.In()[19]]),
04497 *((Vector *)ws[mr.In()[20]]),
04498 *((Vector *)ws[mr.In()[21]]),
04499 *((Matrix *)ws[mr.In()[22]]),
04500 *((Matrix *)ws[mr.In()[23]]),
04501 *((Vector *)ws[mr.In()[24]]),
04502 *((Index *)ws[mr.In()[25]]),
04503 *((Index *)ws[mr.In()[26]]),
04504 *((Vector *)ws[mr.In()[27]]),
04505 *((Vector *)ws[mr.In()[28]]),
04506 *((ArrayOfRetrievalQuantity *)ws[mr.In()[29]]),
04507 *((ArrayOfArrayOfIndex *)ws[mr.In()[30]]),
04508 *((String *)ws[mr.In()[31]]),
04509 *((String *)ws[mr.In()[32]]));
04510 }
04511
04512 void RteCalcMC_g(Workspace& ws, const MRecord& mr)
04513 {
04514 RteCalcMC(ws,
04515 *((Vector *)ws[mr.Out()[0]]),
04516 *((Vector *)ws[mr.Out()[1]]),
04517 *((ArrayOfIndex *)ws[mr.Out()[2]]),
04518 *((Matrix *)ws[mr.Out()[3]]),
04519 *((Matrix *)ws[mr.Out()[4]]),
04520 *((Vector *)ws[mr.Out()[5]]),
04521 *((Agenda *)ws[mr.In()[0]]),
04522 *((Agenda *)ws[mr.In()[1]]),
04523 *((Agenda *)ws[mr.In()[2]]),
04524 *((Agenda *)ws[mr.In()[3]]),
04525 *((Index *)ws[mr.In()[4]]),
04526 *((Vector *)ws[mr.In()[5]]),
04527 *((Vector *)ws[mr.In()[6]]),
04528 *((Vector *)ws[mr.In()[7]]),
04529 *((Tensor3 *)ws[mr.In()[8]]),
04530 *((Tensor3 *)ws[mr.In()[9]]),
04531 *((Tensor4 *)ws[mr.In()[10]]),
04532 *((Matrix *)ws[mr.In()[11]]),
04533 *((Matrix *)ws[mr.In()[12]]),
04534 *((Index *)ws[mr.In()[13]]),
04535 *((ArrayOfIndex *)ws[mr.In()[14]]),
04536 *((Tensor4 *)ws[mr.In()[15]]),
04537 *((ArrayOfSingleScatteringData *)ws[mr.In()[16]]),
04538 *((Sparse *)ws[mr.In()[17]]),
04539 *((Vector *)ws[mr.In()[18]]),
04540 *((ArrayOfIndex *)ws[mr.In()[19]]),
04541 *((Vector *)ws[mr.In()[20]]),
04542 *((Vector *)ws[mr.In()[21]]),
04543 *((Matrix *)ws[mr.In()[22]]),
04544 *((Matrix *)ws[mr.In()[23]]),
04545 *((Vector *)ws[mr.In()[24]]),
04546 *((Index *)ws[mr.In()[25]]),
04547 *((Index *)ws[mr.In()[26]]),
04548 *((Vector *)ws[mr.In()[27]]),
04549 *((Vector *)ws[mr.In()[28]]),
04550 *((String *)ws[mr.In()[29]]),
04551 *((Numeric *)ws[mr.In()[30]]),
04552 *((Index *)ws[mr.In()[31]]),
04553 *((Index *)ws[mr.In()[32]]),
04554 *((Index *)ws[mr.In()[33]]));
04555 }
04556
04557 void RteCalcNoJacobian_g(Workspace& ws, const MRecord& mr)
04558 {
04559 RteCalcNoJacobian(ws,
04560 *((Vector *)ws[mr.Out()[0]]),
04561 *((Vector *)ws[mr.Out()[1]]),
04562 *((ArrayOfIndex *)ws[mr.Out()[2]]),
04563 *((Matrix *)ws[mr.Out()[3]]),
04564 *((Matrix *)ws[mr.Out()[4]]),
04565 *((Agenda *)ws[mr.In()[0]]),
04566 *((Agenda *)ws[mr.In()[1]]),
04567 *((Agenda *)ws[mr.In()[2]]),
04568 *((Agenda *)ws[mr.In()[3]]),
04569 *((Agenda *)ws[mr.In()[4]]),
04570 *((Index *)ws[mr.In()[5]]),
04571 *((Vector *)ws[mr.In()[6]]),
04572 *((Vector *)ws[mr.In()[7]]),
04573 *((Vector *)ws[mr.In()[8]]),
04574 *((Tensor3 *)ws[mr.In()[9]]),
04575 *((Tensor3 *)ws[mr.In()[10]]),
04576 *((Tensor4 *)ws[mr.In()[11]]),
04577 *((Matrix *)ws[mr.In()[12]]),
04578 *((Matrix *)ws[mr.In()[13]]),
04579 *((Index *)ws[mr.In()[14]]),
04580 *((ArrayOfIndex *)ws[mr.In()[15]]),
04581 *((Sparse *)ws[mr.In()[16]]),
04582 *((Vector *)ws[mr.In()[17]]),
04583 *((ArrayOfIndex *)ws[mr.In()[18]]),
04584 *((Vector *)ws[mr.In()[19]]),
04585 *((Vector *)ws[mr.In()[20]]),
04586 *((Matrix *)ws[mr.In()[21]]),
04587 *((Matrix *)ws[mr.In()[22]]),
04588 *((Vector *)ws[mr.In()[23]]),
04589 *((Index *)ws[mr.In()[24]]),
04590 *((Index *)ws[mr.In()[25]]),
04591 *((Vector *)ws[mr.In()[26]]),
04592 *((Vector *)ws[mr.In()[27]]),
04593 *((String *)ws[mr.In()[28]]));
04594 }
04595
04596 void RteStd_g(Workspace& ws, const MRecord& mr)
04597 {
04598 RteStd(ws,
04599 *((Matrix *)ws[mr.Out()[0]]),
04600 *((ArrayOfTensor4 *)ws[mr.Out()[1]]),
04601 *((ArrayOfTensor4 *)ws[mr.Out()[2]]),
04602 *((Ppath *)ws[mr.In()[0]]),
04603 *((ArrayOfPpath *)ws[mr.In()[1]]),
04604 *((Index *)ws[mr.In()[2]]),
04605 *((Vector *)ws[mr.In()[3]]),
04606 *((Index *)ws[mr.In()[4]]),
04607 *((Agenda *)ws[mr.In()[5]]),
04608 *((Agenda *)ws[mr.In()[6]]),
04609 *((ArrayOfIndex *)ws[mr.In()[7]]),
04610 *((Index *)ws[mr.In()[8]]));
04611 }
04612
04613 void RteStdWithTransmissions_g(Workspace& ws, const MRecord& mr)
04614 {
04615 RteStdWithTransmissions(ws,
04616 *((Matrix *)ws[mr.Out()[0]]),
04617 *((Tensor4 *)ws[mr.Out()[1]]),
04618 *((ArrayOfTensor4 *)ws[mr.Out()[2]]),
04619 *((ArrayOfTensor4 *)ws[mr.Out()[3]]),
04620 *((Ppath *)ws[mr.In()[0]]),
04621 *((ArrayOfPpath *)ws[mr.In()[1]]),
04622 *((Index *)ws[mr.In()[2]]),
04623 *((Vector *)ws[mr.In()[3]]),
04624 *((Index *)ws[mr.In()[4]]),
04625 *((Agenda *)ws[mr.In()[5]]),
04626 *((Agenda *)ws[mr.In()[6]]),
04627 *((ArrayOfIndex *)ws[mr.In()[7]]),
04628 *((Index *)ws[mr.In()[8]]));
04629 }
04630
04631 void rte_losSet_g(Workspace& ws, const MRecord& mr)
04632 {
04633 rte_losSet(*((Vector *)ws[mr.Out()[0]]),
04634 *((Index *)ws[mr.In()[0]]),
04635 *((Numeric *)ws[mr.In()[1]]),
04636 *((Numeric *)ws[mr.In()[2]]));
04637 }
04638
04639 void rte_posAddGeoidWGS84_g(Workspace& ws, const MRecord& mr)
04640 {
04641 rte_posAddGeoidWGS84(*((Vector *)ws[mr.Out()[0]]),
04642 *((Index *)ws[mr.In()[0]]),
04643 *((Numeric *)ws[mr.In()[1]]),
04644 *((Numeric *)ws[mr.In()[2]]));
04645 }
04646
04647 void rte_posAddRgeoid_g(Workspace& ws, const MRecord& mr)
04648 {
04649 rte_posAddRgeoid(*((Vector *)ws[mr.Out()[0]]),
04650 *((Index *)ws[mr.In()[0]]),
04651 *((Vector *)ws[mr.In()[1]]),
04652 *((Vector *)ws[mr.In()[2]]),
04653 *((Matrix *)ws[mr.In()[3]]));
04654 }
04655
04656 void rte_posSet_g(Workspace& ws, const MRecord& mr)
04657 {
04658 rte_posSet(*((Vector *)ws[mr.Out()[0]]),
04659 *((Index *)ws[mr.In()[0]]),
04660 *((Numeric *)ws[mr.In()[1]]),
04661 *((Numeric *)ws[mr.In()[2]]),
04662 *((Numeric *)ws[mr.In()[3]]));
04663 }
04664
04665 void rte_posShift_g(Workspace& ws, const MRecord& mr)
04666 {
04667 rte_posShift(*((Vector *)ws[mr.Out()[0]]),
04668 *((Vector *)ws[mr.Out()[1]]),
04669 *((GridPos *)ws[mr.Out()[2]]),
04670 *((GridPos *)ws[mr.Out()[3]]),
04671 *((GridPos *)ws[mr.Out()[4]]),
04672 *((Ppath *)ws[mr.In()[0]]),
04673 *((Index *)ws[mr.In()[1]]));
04674 }
04675
04676 void rte_pos_and_losFromTangentPressure_g(Workspace& ws, const MRecord& mr)
04677 {
04678 rte_pos_and_losFromTangentPressure(ws,
04679 *((Vector *)ws[mr.Out()[0]]),
04680 *((Vector *)ws[mr.Out()[1]]),
04681 *((Ppath *)ws[mr.Out()[2]]),
04682 *((Index *)ws[mr.In()[0]]),
04683 *((Vector *)ws[mr.In()[1]]),
04684 *((Tensor3 *)ws[mr.In()[2]]),
04685 *((Vector *)ws[mr.In()[3]]),
04686 *((Vector *)ws[mr.In()[4]]),
04687 *((Agenda *)ws[mr.In()[5]]),
04688 *((Matrix *)ws[mr.In()[6]]),
04689 *((Matrix *)ws[mr.In()[7]]),
04690 *((Numeric *)ws[mr.In()[8]]));
04691 }
04692
04693 void r_geoidSpherical_g(Workspace& ws, const MRecord& mr)
04694 {
04695 r_geoidSpherical(*((Matrix *)ws[mr.Out()[0]]),
04696 *((Index *)ws[mr.In()[0]]),
04697 *((Vector *)ws[mr.In()[1]]),
04698 *((Vector *)ws[mr.In()[2]]),
04699 *((Numeric *)ws[mr.In()[3]]));
04700 }
04701
04702 void r_geoidWGS84_g(Workspace& ws, const MRecord& mr)
04703 {
04704 r_geoidWGS84(*((Matrix *)ws[mr.Out()[0]]),
04705 *((Index *)ws[mr.In()[0]]),
04706 *((Vector *)ws[mr.In()[1]]),
04707 *((Vector *)ws[mr.In()[2]]),
04708 *((Numeric *)ws[mr.In()[3]]),
04709 *((Numeric *)ws[mr.In()[4]]));
04710 }
04711
04712 void ScatteringDoit_g(Workspace& ws, const MRecord& mr)
04713 {
04714 ScatteringDoit(ws,
04715 *((Tensor6 *)ws[mr.Out()[0]]),
04716 *((Tensor7 *)ws[mr.Out()[1]]),
04717 *((Tensor7 *)ws[mr.Out()[2]]),
04718 *((Tensor7 *)ws[mr.Out()[3]]),
04719 *((Tensor4 *)ws[mr.Out()[4]]),
04720 *((Vector *)ws[mr.In()[0]]),
04721 *((Agenda *)ws[mr.In()[1]]),
04722 *((Index *)ws[mr.In()[2]]));
04723 }
04724
04725 void scat_data_monoCalc_g(Workspace& ws, const MRecord& mr)
04726 {
04727 scat_data_monoCalc(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
04728 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
04729 *((Vector *)ws[mr.In()[1]]),
04730 *((Index *)ws[mr.In()[2]]));
04731 }
04732
04733 void scat_data_rawCheck_g(Workspace& ws, const MRecord& mr)
04734 {
04735 scat_data_rawCheck(*((ArrayOfSingleScatteringData *)ws[mr.In()[0]]));
04736 }
04737
04738 void Select_sg_ArrayOfIndexArrayOfIndex_g(Workspace& ws, const MRecord& mr)
04739 {
04740 Select(*((ArrayOfIndex *)ws[mr.Out()[0]]),
04741 *((ArrayOfIndex *)ws[mr.In()[0]]),
04742 *((ArrayOfIndex *)ws[mr.In()[1]]));
04743 }
04744
04745 void Select_sg_ArrayOfArrayOfIndexArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
04746 {
04747 Select(*((ArrayOfArrayOfIndex *)ws[mr.Out()[0]]),
04748 *((ArrayOfArrayOfIndex *)ws[mr.In()[0]]),
04749 *((ArrayOfIndex *)ws[mr.In()[1]]));
04750 }
04751
04752 void Select_sg_ArrayOfStringArrayOfString_g(Workspace& ws, const MRecord& mr)
04753 {
04754 Select(*((ArrayOfString *)ws[mr.Out()[0]]),
04755 *((ArrayOfString *)ws[mr.In()[0]]),
04756 *((ArrayOfIndex *)ws[mr.In()[1]]));
04757 }
04758
04759 void Select_sg_ArrayOfVectorArrayOfVector_g(Workspace& ws, const MRecord& mr)
04760 {
04761 Select(*((ArrayOfVector *)ws[mr.Out()[0]]),
04762 *((ArrayOfVector *)ws[mr.In()[0]]),
04763 *((ArrayOfIndex *)ws[mr.In()[1]]));
04764 }
04765
04766 void Select_sg_ArrayOfMatrixArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
04767 {
04768 Select(*((ArrayOfMatrix *)ws[mr.Out()[0]]),
04769 *((ArrayOfMatrix *)ws[mr.In()[0]]),
04770 *((ArrayOfIndex *)ws[mr.In()[1]]));
04771 }
04772
04773 void Select_sg_ArrayOfArrayOfMatrixArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
04774 {
04775 Select(*((ArrayOfArrayOfMatrix *)ws[mr.Out()[0]]),
04776 *((ArrayOfArrayOfMatrix *)ws[mr.In()[0]]),
04777 *((ArrayOfIndex *)ws[mr.In()[1]]));
04778 }
04779
04780 void Select_sg_ArrayOfTensor3ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
04781 {
04782 Select(*((ArrayOfTensor3 *)ws[mr.Out()[0]]),
04783 *((ArrayOfTensor3 *)ws[mr.In()[0]]),
04784 *((ArrayOfIndex *)ws[mr.In()[1]]));
04785 }
04786
04787 void Select_sg_ArrayOfArrayOfTensor3ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
04788 {
04789 Select(*((ArrayOfArrayOfTensor3 *)ws[mr.Out()[0]]),
04790 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[0]]),
04791 *((ArrayOfIndex *)ws[mr.In()[1]]));
04792 }
04793
04794 void Select_sg_ArrayOfTensor4ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
04795 {
04796 Select(*((ArrayOfTensor4 *)ws[mr.Out()[0]]),
04797 *((ArrayOfTensor4 *)ws[mr.In()[0]]),
04798 *((ArrayOfIndex *)ws[mr.In()[1]]));
04799 }
04800
04801 void Select_sg_ArrayOfTensor6ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
04802 {
04803 Select(*((ArrayOfTensor6 *)ws[mr.Out()[0]]),
04804 *((ArrayOfTensor6 *)ws[mr.In()[0]]),
04805 *((ArrayOfIndex *)ws[mr.In()[1]]));
04806 }
04807
04808 void Select_sg_ArrayOfTensor7ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
04809 {
04810 Select(*((ArrayOfTensor7 *)ws[mr.Out()[0]]),
04811 *((ArrayOfTensor7 *)ws[mr.In()[0]]),
04812 *((ArrayOfIndex *)ws[mr.In()[1]]));
04813 }
04814
04815 void Select_sg_ArrayOfArrayOfTensor6ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
04816 {
04817 Select(*((ArrayOfArrayOfTensor6 *)ws[mr.Out()[0]]),
04818 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[0]]),
04819 *((ArrayOfIndex *)ws[mr.In()[1]]));
04820 }
04821
04822 void Select_sg_ArrayOfLineRecordArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
04823 {
04824 Select(*((ArrayOfLineRecord *)ws[mr.Out()[0]]),
04825 *((ArrayOfLineRecord *)ws[mr.In()[0]]),
04826 *((ArrayOfIndex *)ws[mr.In()[1]]));
04827 }
04828
04829 void Select_sg_ArrayOfArrayOfLineRecordArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
04830 {
04831 Select(*((ArrayOfArrayOfLineRecord *)ws[mr.Out()[0]]),
04832 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[0]]),
04833 *((ArrayOfIndex *)ws[mr.In()[1]]));
04834 }
04835
04836 void Select_sg_ArrayOfLineshapeSpecArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
04837 {
04838 Select(*((ArrayOfLineshapeSpec *)ws[mr.Out()[0]]),
04839 *((ArrayOfLineshapeSpec *)ws[mr.In()[0]]),
04840 *((ArrayOfIndex *)ws[mr.In()[1]]));
04841 }
04842
04843 void Select_sg_ArrayOfArrayOfSpeciesTagArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
04844 {
04845 Select(*((ArrayOfArrayOfSpeciesTag *)ws[mr.Out()[0]]),
04846 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
04847 *((ArrayOfIndex *)ws[mr.In()[1]]));
04848 }
04849
04850 void Select_sg_ArrayOfPpathArrayOfPpath_g(Workspace& ws, const MRecord& mr)
04851 {
04852 Select(*((ArrayOfPpath *)ws[mr.Out()[0]]),
04853 *((ArrayOfPpath *)ws[mr.In()[0]]),
04854 *((ArrayOfIndex *)ws[mr.In()[1]]));
04855 }
04856
04857 void Select_sg_ArrayOfArrayOfArrayOfArrayOfGridPosArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
04858 {
04859 Select(*((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.Out()[0]]),
04860 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[0]]),
04861 *((ArrayOfIndex *)ws[mr.In()[1]]));
04862 }
04863
04864 void Select_sg_ArrayOfSingleScatteringDataArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
04865 {
04866 Select(*((ArrayOfSingleScatteringData *)ws[mr.Out()[0]]),
04867 *((ArrayOfSingleScatteringData *)ws[mr.In()[0]]),
04868 *((ArrayOfIndex *)ws[mr.In()[1]]));
04869 }
04870
04871 void Select_sg_ArrayOfGField1ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
04872 {
04873 Select(*((ArrayOfGField1 *)ws[mr.Out()[0]]),
04874 *((ArrayOfGField1 *)ws[mr.In()[0]]),
04875 *((ArrayOfIndex *)ws[mr.In()[1]]));
04876 }
04877
04878 void Select_sg_ArrayOfGField2ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
04879 {
04880 Select(*((ArrayOfGField2 *)ws[mr.Out()[0]]),
04881 *((ArrayOfGField2 *)ws[mr.In()[0]]),
04882 *((ArrayOfIndex *)ws[mr.In()[1]]));
04883 }
04884
04885 void Select_sg_ArrayOfGField3ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
04886 {
04887 Select(*((ArrayOfGField3 *)ws[mr.Out()[0]]),
04888 *((ArrayOfGField3 *)ws[mr.In()[0]]),
04889 *((ArrayOfIndex *)ws[mr.In()[1]]));
04890 }
04891
04892 void Select_sg_ArrayOfGField4ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
04893 {
04894 Select(*((ArrayOfGField4 *)ws[mr.Out()[0]]),
04895 *((ArrayOfGField4 *)ws[mr.In()[0]]),
04896 *((ArrayOfIndex *)ws[mr.In()[1]]));
04897 }
04898
04899 void Select_sg_ArrayOfArrayOfGField1ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
04900 {
04901 Select(*((ArrayOfArrayOfGField1 *)ws[mr.Out()[0]]),
04902 *((ArrayOfArrayOfGField1 *)ws[mr.In()[0]]),
04903 *((ArrayOfIndex *)ws[mr.In()[1]]));
04904 }
04905
04906 void Select_sg_ArrayOfArrayOfGField3ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
04907 {
04908 Select(*((ArrayOfArrayOfGField3 *)ws[mr.Out()[0]]),
04909 *((ArrayOfArrayOfGField3 *)ws[mr.In()[0]]),
04910 *((ArrayOfIndex *)ws[mr.In()[1]]));
04911 }
04912
04913 void Select_sg_ArrayOfRetrievalQuantityArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
04914 {
04915 Select(*((ArrayOfRetrievalQuantity *)ws[mr.Out()[0]]),
04916 *((ArrayOfRetrievalQuantity *)ws[mr.In()[0]]),
04917 *((ArrayOfIndex *)ws[mr.In()[1]]));
04918 }
04919
04920 void Select_sg_VectorVector_g(Workspace& ws, const MRecord& mr)
04921 {
04922 Select(*((Vector *)ws[mr.Out()[0]]),
04923 *((Vector *)ws[mr.In()[0]]),
04924 *((ArrayOfIndex *)ws[mr.In()[1]]));
04925 }
04926
04927 void Select_sg_MatrixMatrix_g(Workspace& ws, const MRecord& mr)
04928 {
04929 Select(*((Matrix *)ws[mr.Out()[0]]),
04930 *((Matrix *)ws[mr.In()[0]]),
04931 *((ArrayOfIndex *)ws[mr.In()[1]]));
04932 }
04933
04934 void sensorOff_g(Workspace& ws, const MRecord& mr)
04935 {
04936 sensorOff(*((Sparse *)ws[mr.Out()[0]]),
04937 *((Vector *)ws[mr.Out()[1]]),
04938 *((ArrayOfIndex *)ws[mr.Out()[2]]),
04939 *((Vector *)ws[mr.Out()[3]]),
04940 *((Vector *)ws[mr.Out()[4]]),
04941 *((Vector *)ws[mr.Out()[5]]),
04942 *((ArrayOfIndex *)ws[mr.Out()[6]]),
04943 *((Vector *)ws[mr.Out()[7]]),
04944 *((Vector *)ws[mr.Out()[8]]),
04945 *((Index *)ws[mr.Out()[9]]),
04946 *((Vector *)ws[mr.Out()[10]]),
04947 *((Vector *)ws[mr.Out()[11]]),
04948 *((Index *)ws[mr.In()[0]]),
04949 *((Index *)ws[mr.In()[1]]),
04950 *((Vector *)ws[mr.In()[2]]));
04951 }
04952
04953 void sensor_posAddGeoidWGS84_g(Workspace& ws, const MRecord& mr)
04954 {
04955 sensor_posAddGeoidWGS84(*((Matrix *)ws[mr.Out()[0]]),
04956 *((Index *)ws[mr.In()[0]]),
04957 *((Numeric *)ws[mr.In()[1]]),
04958 *((Numeric *)ws[mr.In()[2]]));
04959 }
04960
04961 void sensor_posAddRgeoid_g(Workspace& ws, const MRecord& mr)
04962 {
04963 sensor_posAddRgeoid(*((Matrix *)ws[mr.Out()[0]]),
04964 *((Index *)ws[mr.In()[0]]),
04965 *((Vector *)ws[mr.In()[1]]),
04966 *((Vector *)ws[mr.In()[2]]),
04967 *((Matrix *)ws[mr.In()[3]]));
04968 }
04969
04970 void sensor_responseAntenna_g(Workspace& ws, const MRecord& mr)
04971 {
04972 sensor_responseAntenna(*((Sparse *)ws[mr.Out()[0]]),
04973 *((Vector *)ws[mr.Out()[1]]),
04974 *((ArrayOfIndex *)ws[mr.Out()[2]]),
04975 *((Vector *)ws[mr.Out()[3]]),
04976 *((Vector *)ws[mr.Out()[4]]),
04977 *((Vector *)ws[mr.Out()[5]]),
04978 *((Vector *)ws[mr.Out()[6]]),
04979 *((Vector *)ws[mr.In()[0]]),
04980 *((ArrayOfIndex *)ws[mr.In()[1]]),
04981 *((Index *)ws[mr.In()[2]]),
04982 *((Index *)ws[mr.In()[3]]),
04983 *((Matrix *)ws[mr.In()[4]]),
04984 *((GField4 *)ws[mr.In()[5]]),
04985 *((Index *)ws[mr.In()[6]]));
04986 }
04987
04988 void sensor_responseBackend_g(Workspace& ws, const MRecord& mr)
04989 {
04990 sensor_responseBackend(*((Sparse *)ws[mr.Out()[0]]),
04991 *((Vector *)ws[mr.Out()[1]]),
04992 *((ArrayOfIndex *)ws[mr.Out()[2]]),
04993 *((Vector *)ws[mr.Out()[3]]),
04994 *((Vector *)ws[mr.Out()[4]]),
04995 *((Vector *)ws[mr.Out()[5]]),
04996 *((ArrayOfIndex *)ws[mr.In()[0]]),
04997 *((Vector *)ws[mr.In()[1]]),
04998 *((Vector *)ws[mr.In()[2]]),
04999 *((Vector *)ws[mr.In()[3]]),
05000 *((ArrayOfGField1 *)ws[mr.In()[4]]),
05001 *((Index *)ws[mr.In()[5]]));
05002 }
05003
05004 void sensor_responseBeamSwitching_g(Workspace& ws, const MRecord& mr)
05005 {
05006 sensor_responseBeamSwitching(*((Sparse *)ws[mr.Out()[0]]),
05007 *((Vector *)ws[mr.Out()[1]]),
05008 *((ArrayOfIndex *)ws[mr.Out()[2]]),
05009 *((Vector *)ws[mr.Out()[3]]),
05010 *((Vector *)ws[mr.Out()[4]]),
05011 *((Vector *)ws[mr.Out()[5]]),
05012 *((Vector *)ws[mr.Out()[6]]),
05013 *((Vector *)ws[mr.In()[0]]),
05014 *((ArrayOfIndex *)ws[mr.In()[1]]),
05015 *((Numeric *)ws[mr.In()[2]]),
05016 *((Numeric *)ws[mr.In()[3]]));
05017 }
05018
05019 void sensor_responseIF2RF_g(Workspace& ws, const MRecord& mr)
05020 {
05021 sensor_responseIF2RF(*((Vector *)ws[mr.Out()[0]]),
05022 *((Vector *)ws[mr.Out()[1]]),
05023 *((Numeric *)ws[mr.In()[0]]),
05024 *((String *)ws[mr.In()[1]]));
05025 }
05026
05027 void sensor_responseInit_g(Workspace& ws, const MRecord& mr)
05028 {
05029 sensor_responseInit(*((Sparse *)ws[mr.Out()[0]]),
05030 *((Vector *)ws[mr.Out()[1]]),
05031 *((ArrayOfIndex *)ws[mr.Out()[2]]),
05032 *((Vector *)ws[mr.Out()[3]]),
05033 *((Vector *)ws[mr.Out()[4]]),
05034 *((Vector *)ws[mr.Out()[5]]),
05035 *((ArrayOfIndex *)ws[mr.Out()[6]]),
05036 *((Vector *)ws[mr.Out()[7]]),
05037 *((Vector *)ws[mr.Out()[8]]),
05038 *((Vector *)ws[mr.In()[0]]),
05039 *((Vector *)ws[mr.In()[1]]),
05040 *((Vector *)ws[mr.In()[2]]),
05041 *((Index *)ws[mr.In()[3]]),
05042 *((Index *)ws[mr.In()[4]]),
05043 *((Index *)ws[mr.In()[5]]),
05044 *((Index *)ws[mr.In()[6]]));
05045 }
05046
05047 void sensor_responseMixer_g(Workspace& ws, const MRecord& mr)
05048 {
05049 sensor_responseMixer(*((Sparse *)ws[mr.Out()[0]]),
05050 *((Vector *)ws[mr.Out()[1]]),
05051 *((ArrayOfIndex *)ws[mr.Out()[2]]),
05052 *((Vector *)ws[mr.Out()[3]]),
05053 *((Vector *)ws[mr.Out()[4]]),
05054 *((Vector *)ws[mr.Out()[5]]),
05055 *((ArrayOfIndex *)ws[mr.In()[0]]),
05056 *((Vector *)ws[mr.In()[1]]),
05057 *((Vector *)ws[mr.In()[2]]),
05058 *((Numeric *)ws[mr.In()[3]]),
05059 *((GField1 *)ws[mr.In()[4]]),
05060 *((Index *)ws[mr.In()[5]]));
05061 }
05062
05063 void sensor_responseMultiMixerBackend_g(Workspace& ws, const MRecord& mr)
05064 {
05065 sensor_responseMultiMixerBackend(*((Sparse *)ws[mr.Out()[0]]),
05066 *((Vector *)ws[mr.Out()[1]]),
05067 *((ArrayOfIndex *)ws[mr.Out()[2]]),
05068 *((Vector *)ws[mr.Out()[3]]),
05069 *((Vector *)ws[mr.Out()[4]]),
05070 *((Vector *)ws[mr.Out()[5]]),
05071 *((ArrayOfIndex *)ws[mr.In()[0]]),
05072 *((Vector *)ws[mr.In()[1]]),
05073 *((Vector *)ws[mr.In()[2]]),
05074 *((Vector *)ws[mr.In()[3]]),
05075 *((ArrayOfGField1 *)ws[mr.In()[4]]),
05076 *((ArrayOfString *)ws[mr.In()[5]]),
05077 *((ArrayOfVector *)ws[mr.In()[6]]),
05078 *((ArrayOfArrayOfGField1 *)ws[mr.In()[7]]),
05079 *((Index *)ws[mr.In()[8]]));
05080 }
05081
05082 void SparseCreate_g(Workspace& ws, const MRecord& mr)
05083 {
05084 SparseCreate(*((Sparse *)ws[mr.Out()[0]]));
05085 }
05086
05087 void StringCreate_g(Workspace& ws, const MRecord& mr)
05088 {
05089 StringCreate(*((String *)ws[mr.Out()[0]]));
05090 }
05091
05092 void StringSet_g(Workspace& ws, const MRecord& mr)
05093 {
05094 StringSet(*((String *)ws[mr.Out()[0]]),
05095 mr.SetValue());
05096 }
05097
05098 void surfaceBlackbody_g(Workspace& ws, const MRecord& mr)
05099 {
05100 surfaceBlackbody(*((Matrix *)ws[mr.Out()[0]]),
05101 *((Tensor4 *)ws[mr.Out()[1]]),
05102 *((Matrix *)ws[mr.Out()[2]]),
05103 *((Vector *)ws[mr.In()[0]]),
05104 *((Index *)ws[mr.In()[1]]),
05105 *((Numeric *)ws[mr.In()[2]]));
05106 }
05107
05108 void surfaceFlatRefractiveIndex_g(Workspace& ws, const MRecord& mr)
05109 {
05110 surfaceFlatRefractiveIndex(*((Matrix *)ws[mr.Out()[0]]),
05111 *((Tensor4 *)ws[mr.Out()[1]]),
05112 *((Matrix *)ws[mr.Out()[2]]),
05113 *((Vector *)ws[mr.In()[0]]),
05114 *((Index *)ws[mr.In()[1]]),
05115 *((Index *)ws[mr.In()[2]]),
05116 *((Vector *)ws[mr.In()[3]]),
05117 *((Numeric *)ws[mr.In()[4]]),
05118 *((Matrix *)ws[mr.In()[5]]));
05119 }
05120
05121 void surfaceFlatSingleEmissivity_g(Workspace& ws, const MRecord& mr)
05122 {
05123 surfaceFlatSingleEmissivity(*((Matrix *)ws[mr.Out()[0]]),
05124 *((Tensor4 *)ws[mr.Out()[1]]),
05125 *((Matrix *)ws[mr.Out()[2]]),
05126 *((Vector *)ws[mr.In()[0]]),
05127 *((Index *)ws[mr.In()[1]]),
05128 *((Index *)ws[mr.In()[2]]),
05129 *((Vector *)ws[mr.In()[3]]),
05130 *((Numeric *)ws[mr.In()[4]]),
05131 *((Numeric *)ws[mr.In()[5]]));
05132 }
05133
05134 void surfaceFlatVaryingEmissivity_g(Workspace& ws, const MRecord& mr)
05135 {
05136 surfaceFlatVaryingEmissivity(*((Matrix *)ws[mr.Out()[0]]),
05137 *((Tensor4 *)ws[mr.Out()[1]]),
05138 *((Matrix *)ws[mr.Out()[2]]),
05139 *((Vector *)ws[mr.In()[0]]),
05140 *((Index *)ws[mr.In()[1]]),
05141 *((Index *)ws[mr.In()[2]]),
05142 *((Vector *)ws[mr.In()[3]]),
05143 *((Numeric *)ws[mr.In()[4]]),
05144 *((Vector *)ws[mr.In()[5]]));
05145 }
05146
05147 void Tensor3Create_g(Workspace& ws, const MRecord& mr)
05148 {
05149 Tensor3Create(*((Tensor3 *)ws[mr.Out()[0]]));
05150 }
05151
05152 void Tensor3FillWithVector_g(Workspace& ws, const MRecord& mr)
05153 {
05154 Tensor3FillWithVector(*((Tensor3 *)ws[mr.Out()[0]]),
05155 *((Vector *)ws[mr.In()[0]]),
05156 *((Index *)ws[mr.In()[1]]),
05157 *((Index *)ws[mr.In()[2]]),
05158 *((Index *)ws[mr.In()[3]]));
05159 }
05160
05161 void Tensor3Scale_g(Workspace& ws, const MRecord& mr)
05162 {
05163 Tensor3Scale(*((Tensor3 *)ws[mr.Out()[0]]),
05164 *((Tensor3 *)ws[mr.In()[0]]),
05165 *((Numeric *)ws[mr.In()[1]]));
05166 }
05167
05168 void Tensor3SetConstant_g(Workspace& ws, const MRecord& mr)
05169 {
05170 Tensor3SetConstant(*((Tensor3 *)ws[mr.Out()[0]]),
05171 *((Index *)ws[mr.In()[0]]),
05172 *((Index *)ws[mr.In()[1]]),
05173 *((Index *)ws[mr.In()[2]]),
05174 *((Numeric *)ws[mr.In()[3]]));
05175 }
05176
05177 void Tensor4Create_g(Workspace& ws, const MRecord& mr)
05178 {
05179 Tensor4Create(*((Tensor4 *)ws[mr.Out()[0]]));
05180 }
05181
05182 void Tensor4Scale_g(Workspace& ws, const MRecord& mr)
05183 {
05184 Tensor4Scale(*((Tensor4 *)ws[mr.Out()[0]]),
05185 *((Tensor4 *)ws[mr.In()[0]]),
05186 *((Numeric *)ws[mr.In()[1]]));
05187 }
05188
05189 void Tensor4SetConstant_g(Workspace& ws, const MRecord& mr)
05190 {
05191 Tensor4SetConstant(*((Tensor4 *)ws[mr.Out()[0]]),
05192 *((Index *)ws[mr.In()[0]]),
05193 *((Index *)ws[mr.In()[1]]),
05194 *((Index *)ws[mr.In()[2]]),
05195 *((Index *)ws[mr.In()[3]]),
05196 *((Numeric *)ws[mr.In()[4]]));
05197 }
05198
05199 void Tensor5Create_g(Workspace& ws, const MRecord& mr)
05200 {
05201 Tensor5Create(*((Tensor5 *)ws[mr.Out()[0]]));
05202 }
05203
05204 void Tensor5Scale_g(Workspace& ws, const MRecord& mr)
05205 {
05206 Tensor5Scale(*((Tensor5 *)ws[mr.Out()[0]]),
05207 *((Tensor5 *)ws[mr.In()[0]]),
05208 *((Numeric *)ws[mr.In()[1]]));
05209 }
05210
05211 void Tensor5SetConstant_g(Workspace& ws, const MRecord& mr)
05212 {
05213 Tensor5SetConstant(*((Tensor5 *)ws[mr.Out()[0]]),
05214 *((Index *)ws[mr.In()[0]]),
05215 *((Index *)ws[mr.In()[1]]),
05216 *((Index *)ws[mr.In()[2]]),
05217 *((Index *)ws[mr.In()[3]]),
05218 *((Index *)ws[mr.In()[4]]),
05219 *((Numeric *)ws[mr.In()[5]]));
05220 }
05221
05222 void Tensor6Create_g(Workspace& ws, const MRecord& mr)
05223 {
05224 Tensor6Create(*((Tensor6 *)ws[mr.Out()[0]]));
05225 }
05226
05227 void Tensor6Scale_g(Workspace& ws, const MRecord& mr)
05228 {
05229 Tensor6Scale(*((Tensor6 *)ws[mr.Out()[0]]),
05230 *((Tensor6 *)ws[mr.In()[0]]),
05231 *((Numeric *)ws[mr.In()[1]]));
05232 }
05233
05234 void Tensor6SetConstant_g(Workspace& ws, const MRecord& mr)
05235 {
05236 Tensor6SetConstant(*((Tensor6 *)ws[mr.Out()[0]]),
05237 *((Index *)ws[mr.In()[0]]),
05238 *((Index *)ws[mr.In()[1]]),
05239 *((Index *)ws[mr.In()[2]]),
05240 *((Index *)ws[mr.In()[3]]),
05241 *((Index *)ws[mr.In()[4]]),
05242 *((Index *)ws[mr.In()[5]]),
05243 *((Numeric *)ws[mr.In()[6]]));
05244 }
05245
05246 void Tensor6ToPlanckBT_g(Workspace& ws, const MRecord& mr)
05247 {
05248 Tensor6ToPlanckBT(*((Tensor6 *)ws[mr.Out()[0]]),
05249 *((Index *)ws[mr.In()[0]]),
05250 *((Vector *)ws[mr.In()[1]]),
05251 *((Tensor6 *)ws[mr.In()[2]]));
05252 }
05253
05254 void Tensor7Create_g(Workspace& ws, const MRecord& mr)
05255 {
05256 Tensor7Create(*((Tensor7 *)ws[mr.Out()[0]]));
05257 }
05258
05259 void Tensor7Scale_g(Workspace& ws, const MRecord& mr)
05260 {
05261 Tensor7Scale(*((Tensor7 *)ws[mr.Out()[0]]),
05262 *((Tensor7 *)ws[mr.In()[0]]),
05263 *((Numeric *)ws[mr.In()[1]]));
05264 }
05265
05266 void Tensor7SetConstant_g(Workspace& ws, const MRecord& mr)
05267 {
05268 Tensor7SetConstant(*((Tensor7 *)ws[mr.Out()[0]]),
05269 *((Index *)ws[mr.In()[0]]),
05270 *((Index *)ws[mr.In()[1]]),
05271 *((Index *)ws[mr.In()[2]]),
05272 *((Index *)ws[mr.In()[3]]),
05273 *((Index *)ws[mr.In()[4]]),
05274 *((Index *)ws[mr.In()[5]]),
05275 *((Index *)ws[mr.In()[6]]),
05276 *((Numeric *)ws[mr.In()[7]]));
05277 }
05278
05279 void Test_g(Workspace&, const MRecord&)
05280 {
05281 Test();
05282 }
05283
05284 void timerStart_g(Workspace& ws, const MRecord& mr)
05285 {
05286 timerStart(*((Timer *)ws[mr.Out()[0]]));
05287 }
05288
05289 void timerStop_g(Workspace& ws, const MRecord& mr)
05290 {
05291 timerStop(*((Timer *)ws[mr.In()[0]]));
05292 }
05293
05294 void VectorAddScalar_g(Workspace& ws, const MRecord& mr)
05295 {
05296 VectorAddScalar(*((Vector *)ws[mr.Out()[0]]),
05297 *((Vector *)ws[mr.In()[0]]),
05298 *((Numeric *)ws[mr.In()[1]]));
05299 }
05300
05301 void VectorCreate_g(Workspace& ws, const MRecord& mr)
05302 {
05303 VectorCreate(*((Vector *)ws[mr.Out()[0]]));
05304 }
05305
05306 void VectorExtractFromMatrix_g(Workspace& ws, const MRecord& mr)
05307 {
05308 VectorExtractFromMatrix(*((Vector *)ws[mr.Out()[0]]),
05309 *((Matrix *)ws[mr.In()[0]]),
05310 *((Index *)ws[mr.In()[1]]),
05311 *((String *)ws[mr.In()[2]]));
05312 }
05313
05314 void VectorInsertGridPoints_g(Workspace& ws, const MRecord& mr)
05315 {
05316 VectorInsertGridPoints(*((Vector *)ws[mr.Out()[0]]),
05317 *((Vector *)ws[mr.In()[0]]),
05318 *((Vector *)ws[mr.In()[1]]));
05319 }
05320
05321 void VectorLinSpace_g(Workspace& ws, const MRecord& mr)
05322 {
05323 VectorLinSpace(*((Vector *)ws[mr.Out()[0]]),
05324 *((Numeric *)ws[mr.In()[0]]),
05325 *((Numeric *)ws[mr.In()[1]]),
05326 *((Numeric *)ws[mr.In()[2]]));
05327 }
05328
05329 void VectorLogSpace_g(Workspace& ws, const MRecord& mr)
05330 {
05331 VectorLogSpace(*((Vector *)ws[mr.Out()[0]]),
05332 *((Numeric *)ws[mr.In()[0]]),
05333 *((Numeric *)ws[mr.In()[1]]),
05334 *((Numeric *)ws[mr.In()[2]]));
05335 }
05336
05337 void VectorMatrixMultiply_g(Workspace& ws, const MRecord& mr)
05338 {
05339 VectorMatrixMultiply(*((Vector *)ws[mr.Out()[0]]),
05340 *((Matrix *)ws[mr.In()[0]]),
05341 *((Vector *)ws[mr.In()[1]]));
05342 }
05343
05344 void VectorNLinSpace_g(Workspace& ws, const MRecord& mr)
05345 {
05346 VectorNLinSpace(*((Vector *)ws[mr.Out()[0]]),
05347 *((Index *)ws[mr.In()[0]]),
05348 *((Numeric *)ws[mr.In()[1]]),
05349 *((Numeric *)ws[mr.In()[2]]));
05350 }
05351
05352 void VectorNLogSpace_g(Workspace& ws, const MRecord& mr)
05353 {
05354 VectorNLogSpace(*((Vector *)ws[mr.Out()[0]]),
05355 *((Index *)ws[mr.In()[0]]),
05356 *((Numeric *)ws[mr.In()[1]]),
05357 *((Numeric *)ws[mr.In()[2]]));
05358 }
05359
05360 void VectorScale_g(Workspace& ws, const MRecord& mr)
05361 {
05362 VectorScale(*((Vector *)ws[mr.Out()[0]]),
05363 *((Vector *)ws[mr.In()[0]]),
05364 *((Numeric *)ws[mr.In()[1]]));
05365 }
05366
05367 void VectorSetConstant_g(Workspace& ws, const MRecord& mr)
05368 {
05369 VectorSetConstant(*((Vector *)ws[mr.Out()[0]]),
05370 *((Index *)ws[mr.In()[0]]),
05371 *((Numeric *)ws[mr.In()[1]]));
05372 }
05373
05374 void VectorSet_g(Workspace& ws, const MRecord& mr)
05375 {
05376 VectorSet(*((Vector *)ws[mr.Out()[0]]),
05377 mr.SetValue());
05378 }
05379
05380 void VectorZtanToZaRefr1D_g(Workspace& ws, const MRecord& mr)
05381 {
05382 VectorZtanToZaRefr1D(ws,
05383 *((Numeric *)ws[mr.Out()[0]]),
05384 *((Numeric *)ws[mr.Out()[1]]),
05385 *((Numeric *)ws[mr.Out()[2]]),
05386 *((Vector *)ws[mr.Out()[3]]),
05387 *((Vector *)ws[mr.Out()[4]]),
05388 *((Agenda *)ws[mr.In()[0]]),
05389 *((Matrix *)ws[mr.In()[1]]),
05390 *((Vector *)ws[mr.In()[2]]),
05391 *((Tensor3 *)ws[mr.In()[3]]),
05392 *((Tensor3 *)ws[mr.In()[4]]),
05393 *((Tensor4 *)ws[mr.In()[5]]),
05394 *((Matrix *)ws[mr.In()[6]]),
05395 *((Index *)ws[mr.In()[7]]),
05396 *((Vector *)ws[mr.In()[8]]));
05397 }
05398
05399 void VectorZtanToZa1D_g(Workspace& ws, const MRecord& mr)
05400 {
05401 VectorZtanToZa1D(*((Vector *)ws[mr.Out()[0]]),
05402 *((Matrix *)ws[mr.In()[0]]),
05403 *((Matrix *)ws[mr.In()[1]]),
05404 *((Index *)ws[mr.In()[2]]),
05405 *((Vector *)ws[mr.In()[3]]));
05406 }
05407
05408 void WriteNetCDF_sg_Vector_g(Workspace& ws, const MRecord& mr)
05409 {
05410 WriteNetCDF(*((Vector *)ws[mr.In()[0]]),
05411 *((String *)ws[mr.In()[1]]),
05412 Workspace::wsv_data[mr.In()[0]].Name(),
05413 Workspace::wsv_data[mr.In()[1]].Name());
05414 }
05415
05416 void WriteNetCDF_sg_Matrix_g(Workspace& ws, const MRecord& mr)
05417 {
05418 WriteNetCDF(*((Matrix *)ws[mr.In()[0]]),
05419 *((String *)ws[mr.In()[1]]),
05420 Workspace::wsv_data[mr.In()[0]].Name(),
05421 Workspace::wsv_data[mr.In()[1]].Name());
05422 }
05423
05424 void WriteNetCDF_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
05425 {
05426 WriteNetCDF(*((Tensor3 *)ws[mr.In()[0]]),
05427 *((String *)ws[mr.In()[1]]),
05428 Workspace::wsv_data[mr.In()[0]].Name(),
05429 Workspace::wsv_data[mr.In()[1]].Name());
05430 }
05431
05432 void WriteNetCDF_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
05433 {
05434 WriteNetCDF(*((Tensor4 *)ws[mr.In()[0]]),
05435 *((String *)ws[mr.In()[1]]),
05436 Workspace::wsv_data[mr.In()[0]].Name(),
05437 Workspace::wsv_data[mr.In()[1]].Name());
05438 }
05439
05440 void WriteNetCDF_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
05441 {
05442 WriteNetCDF(*((ArrayOfVector *)ws[mr.In()[0]]),
05443 *((String *)ws[mr.In()[1]]),
05444 Workspace::wsv_data[mr.In()[0]].Name(),
05445 Workspace::wsv_data[mr.In()[1]].Name());
05446 }
05447
05448 void WriteNetCDF_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
05449 {
05450 WriteNetCDF(*((ArrayOfMatrix *)ws[mr.In()[0]]),
05451 *((String *)ws[mr.In()[1]]),
05452 Workspace::wsv_data[mr.In()[0]].Name(),
05453 Workspace::wsv_data[mr.In()[1]].Name());
05454 }
05455
05456 void WriteXML_sg_Index_g(Workspace& ws, const MRecord& mr)
05457 {
05458 WriteXML(*((String *)ws[mr.In()[0]]),
05459 *((Index *)ws[mr.In()[1]]),
05460 *((String *)ws[mr.In()[2]]),
05461 Workspace::wsv_data[mr.In()[1]].Name(),
05462 Workspace::wsv_data[mr.In()[2]].Name());
05463 }
05464
05465 void WriteXML_sg_Numeric_g(Workspace& ws, const MRecord& mr)
05466 {
05467 WriteXML(*((String *)ws[mr.In()[0]]),
05468 *((Numeric *)ws[mr.In()[1]]),
05469 *((String *)ws[mr.In()[2]]),
05470 Workspace::wsv_data[mr.In()[1]].Name(),
05471 Workspace::wsv_data[mr.In()[2]].Name());
05472 }
05473
05474 void WriteXML_sg_String_g(Workspace& ws, const MRecord& mr)
05475 {
05476 WriteXML(*((String *)ws[mr.In()[0]]),
05477 *((String *)ws[mr.In()[1]]),
05478 *((String *)ws[mr.In()[2]]),
05479 Workspace::wsv_data[mr.In()[1]].Name(),
05480 Workspace::wsv_data[mr.In()[2]].Name());
05481 }
05482
05483 void WriteXML_sg_Vector_g(Workspace& ws, const MRecord& mr)
05484 {
05485 WriteXML(*((String *)ws[mr.In()[0]]),
05486 *((Vector *)ws[mr.In()[1]]),
05487 *((String *)ws[mr.In()[2]]),
05488 Workspace::wsv_data[mr.In()[1]].Name(),
05489 Workspace::wsv_data[mr.In()[2]].Name());
05490 }
05491
05492 void WriteXML_sg_Matrix_g(Workspace& ws, const MRecord& mr)
05493 {
05494 WriteXML(*((String *)ws[mr.In()[0]]),
05495 *((Matrix *)ws[mr.In()[1]]),
05496 *((String *)ws[mr.In()[2]]),
05497 Workspace::wsv_data[mr.In()[1]].Name(),
05498 Workspace::wsv_data[mr.In()[2]].Name());
05499 }
05500
05501 void WriteXML_sg_Sparse_g(Workspace& ws, const MRecord& mr)
05502 {
05503 WriteXML(*((String *)ws[mr.In()[0]]),
05504 *((Sparse *)ws[mr.In()[1]]),
05505 *((String *)ws[mr.In()[2]]),
05506 Workspace::wsv_data[mr.In()[1]].Name(),
05507 Workspace::wsv_data[mr.In()[2]].Name());
05508 }
05509
05510 void WriteXML_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
05511 {
05512 WriteXML(*((String *)ws[mr.In()[0]]),
05513 *((Tensor3 *)ws[mr.In()[1]]),
05514 *((String *)ws[mr.In()[2]]),
05515 Workspace::wsv_data[mr.In()[1]].Name(),
05516 Workspace::wsv_data[mr.In()[2]].Name());
05517 }
05518
05519 void WriteXML_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
05520 {
05521 WriteXML(*((String *)ws[mr.In()[0]]),
05522 *((Tensor4 *)ws[mr.In()[1]]),
05523 *((String *)ws[mr.In()[2]]),
05524 Workspace::wsv_data[mr.In()[1]].Name(),
05525 Workspace::wsv_data[mr.In()[2]].Name());
05526 }
05527
05528 void WriteXML_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
05529 {
05530 WriteXML(*((String *)ws[mr.In()[0]]),
05531 *((Tensor5 *)ws[mr.In()[1]]),
05532 *((String *)ws[mr.In()[2]]),
05533 Workspace::wsv_data[mr.In()[1]].Name(),
05534 Workspace::wsv_data[mr.In()[2]].Name());
05535 }
05536
05537 void WriteXML_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
05538 {
05539 WriteXML(*((String *)ws[mr.In()[0]]),
05540 *((Tensor6 *)ws[mr.In()[1]]),
05541 *((String *)ws[mr.In()[2]]),
05542 Workspace::wsv_data[mr.In()[1]].Name(),
05543 Workspace::wsv_data[mr.In()[2]].Name());
05544 }
05545
05546 void WriteXML_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
05547 {
05548 WriteXML(*((String *)ws[mr.In()[0]]),
05549 *((Tensor7 *)ws[mr.In()[1]]),
05550 *((String *)ws[mr.In()[2]]),
05551 Workspace::wsv_data[mr.In()[1]].Name(),
05552 Workspace::wsv_data[mr.In()[2]].Name());
05553 }
05554
05555 void WriteXML_sg_Timer_g(Workspace& ws, const MRecord& mr)
05556 {
05557 WriteXML(*((String *)ws[mr.In()[0]]),
05558 *((Timer *)ws[mr.In()[1]]),
05559 *((String *)ws[mr.In()[2]]),
05560 Workspace::wsv_data[mr.In()[1]].Name(),
05561 Workspace::wsv_data[mr.In()[2]].Name());
05562 }
05563
05564 void WriteXML_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
05565 {
05566 WriteXML(*((String *)ws[mr.In()[0]]),
05567 *((ArrayOfIndex *)ws[mr.In()[1]]),
05568 *((String *)ws[mr.In()[2]]),
05569 Workspace::wsv_data[mr.In()[1]].Name(),
05570 Workspace::wsv_data[mr.In()[2]].Name());
05571 }
05572
05573 void WriteXML_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
05574 {
05575 WriteXML(*((String *)ws[mr.In()[0]]),
05576 *((ArrayOfArrayOfIndex *)ws[mr.In()[1]]),
05577 *((String *)ws[mr.In()[2]]),
05578 Workspace::wsv_data[mr.In()[1]].Name(),
05579 Workspace::wsv_data[mr.In()[2]].Name());
05580 }
05581
05582 void WriteXML_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
05583 {
05584 WriteXML(*((String *)ws[mr.In()[0]]),
05585 *((ArrayOfString *)ws[mr.In()[1]]),
05586 *((String *)ws[mr.In()[2]]),
05587 Workspace::wsv_data[mr.In()[1]].Name(),
05588 Workspace::wsv_data[mr.In()[2]].Name());
05589 }
05590
05591 void WriteXML_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
05592 {
05593 WriteXML(*((String *)ws[mr.In()[0]]),
05594 *((ArrayOfVector *)ws[mr.In()[1]]),
05595 *((String *)ws[mr.In()[2]]),
05596 Workspace::wsv_data[mr.In()[1]].Name(),
05597 Workspace::wsv_data[mr.In()[2]].Name());
05598 }
05599
05600 void WriteXML_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
05601 {
05602 WriteXML(*((String *)ws[mr.In()[0]]),
05603 *((ArrayOfMatrix *)ws[mr.In()[1]]),
05604 *((String *)ws[mr.In()[2]]),
05605 Workspace::wsv_data[mr.In()[1]].Name(),
05606 Workspace::wsv_data[mr.In()[2]].Name());
05607 }
05608
05609 void WriteXML_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
05610 {
05611 WriteXML(*((String *)ws[mr.In()[0]]),
05612 *((ArrayOfArrayOfMatrix *)ws[mr.In()[1]]),
05613 *((String *)ws[mr.In()[2]]),
05614 Workspace::wsv_data[mr.In()[1]].Name(),
05615 Workspace::wsv_data[mr.In()[2]].Name());
05616 }
05617
05618 void WriteXML_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
05619 {
05620 WriteXML(*((String *)ws[mr.In()[0]]),
05621 *((ArrayOfTensor3 *)ws[mr.In()[1]]),
05622 *((String *)ws[mr.In()[2]]),
05623 Workspace::wsv_data[mr.In()[1]].Name(),
05624 Workspace::wsv_data[mr.In()[2]].Name());
05625 }
05626
05627 void WriteXML_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
05628 {
05629 WriteXML(*((String *)ws[mr.In()[0]]),
05630 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[1]]),
05631 *((String *)ws[mr.In()[2]]),
05632 Workspace::wsv_data[mr.In()[1]].Name(),
05633 Workspace::wsv_data[mr.In()[2]].Name());
05634 }
05635
05636 void WriteXML_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
05637 {
05638 WriteXML(*((String *)ws[mr.In()[0]]),
05639 *((ArrayOfTensor4 *)ws[mr.In()[1]]),
05640 *((String *)ws[mr.In()[2]]),
05641 Workspace::wsv_data[mr.In()[1]].Name(),
05642 Workspace::wsv_data[mr.In()[2]].Name());
05643 }
05644
05645 void WriteXML_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
05646 {
05647 WriteXML(*((String *)ws[mr.In()[0]]),
05648 *((ArrayOfTensor6 *)ws[mr.In()[1]]),
05649 *((String *)ws[mr.In()[2]]),
05650 Workspace::wsv_data[mr.In()[1]].Name(),
05651 Workspace::wsv_data[mr.In()[2]].Name());
05652 }
05653
05654 void WriteXML_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
05655 {
05656 WriteXML(*((String *)ws[mr.In()[0]]),
05657 *((ArrayOfTensor7 *)ws[mr.In()[1]]),
05658 *((String *)ws[mr.In()[2]]),
05659 Workspace::wsv_data[mr.In()[1]].Name(),
05660 Workspace::wsv_data[mr.In()[2]].Name());
05661 }
05662
05663 void WriteXML_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
05664 {
05665 WriteXML(*((String *)ws[mr.In()[0]]),
05666 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[1]]),
05667 *((String *)ws[mr.In()[2]]),
05668 Workspace::wsv_data[mr.In()[1]].Name(),
05669 Workspace::wsv_data[mr.In()[2]].Name());
05670 }
05671
05672 void WriteXML_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
05673 {
05674 WriteXML(*((String *)ws[mr.In()[0]]),
05675 *((ArrayOfLineRecord *)ws[mr.In()[1]]),
05676 *((String *)ws[mr.In()[2]]),
05677 Workspace::wsv_data[mr.In()[1]].Name(),
05678 Workspace::wsv_data[mr.In()[2]].Name());
05679 }
05680
05681 void WriteXML_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
05682 {
05683 WriteXML(*((String *)ws[mr.In()[0]]),
05684 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[1]]),
05685 *((String *)ws[mr.In()[2]]),
05686 Workspace::wsv_data[mr.In()[1]].Name(),
05687 Workspace::wsv_data[mr.In()[2]].Name());
05688 }
05689
05690 void WriteXML_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
05691 {
05692 WriteXML(*((String *)ws[mr.In()[0]]),
05693 *((ArrayOfLineshapeSpec *)ws[mr.In()[1]]),
05694 *((String *)ws[mr.In()[2]]),
05695 Workspace::wsv_data[mr.In()[1]].Name(),
05696 Workspace::wsv_data[mr.In()[2]].Name());
05697 }
05698
05699 void WriteXML_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
05700 {
05701 WriteXML(*((String *)ws[mr.In()[0]]),
05702 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[1]]),
05703 *((String *)ws[mr.In()[2]]),
05704 Workspace::wsv_data[mr.In()[1]].Name(),
05705 Workspace::wsv_data[mr.In()[2]].Name());
05706 }
05707
05708 void WriteXML_sg_Ppath_g(Workspace& ws, const MRecord& mr)
05709 {
05710 WriteXML(*((String *)ws[mr.In()[0]]),
05711 *((Ppath *)ws[mr.In()[1]]),
05712 *((String *)ws[mr.In()[2]]),
05713 Workspace::wsv_data[mr.In()[1]].Name(),
05714 Workspace::wsv_data[mr.In()[2]].Name());
05715 }
05716
05717 void WriteXML_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
05718 {
05719 WriteXML(*((String *)ws[mr.In()[0]]),
05720 *((ArrayOfPpath *)ws[mr.In()[1]]),
05721 *((String *)ws[mr.In()[2]]),
05722 Workspace::wsv_data[mr.In()[1]].Name(),
05723 Workspace::wsv_data[mr.In()[2]].Name());
05724 }
05725
05726 void WriteXML_sg_Agenda_g(Workspace& ws, const MRecord& mr)
05727 {
05728 WriteXML(ws,
05729 *((String *)ws[mr.In()[0]]),
05730 *((Agenda *)ws[mr.In()[1]]),
05731 *((String *)ws[mr.In()[2]]),
05732 Workspace::wsv_data[mr.In()[1]].Name(),
05733 Workspace::wsv_data[mr.In()[2]].Name());
05734 }
05735
05736 void WriteXML_sg_GridPos_g(Workspace& ws, const MRecord& mr)
05737 {
05738 WriteXML(*((String *)ws[mr.In()[0]]),
05739 *((GridPos *)ws[mr.In()[1]]),
05740 *((String *)ws[mr.In()[2]]),
05741 Workspace::wsv_data[mr.In()[1]].Name(),
05742 Workspace::wsv_data[mr.In()[2]].Name());
05743 }
05744
05745 void WriteXML_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
05746 {
05747 WriteXML(*((String *)ws[mr.In()[0]]),
05748 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[1]]),
05749 *((String *)ws[mr.In()[2]]),
05750 Workspace::wsv_data[mr.In()[1]].Name(),
05751 Workspace::wsv_data[mr.In()[2]].Name());
05752 }
05753
05754 void WriteXML_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
05755 {
05756 WriteXML(*((String *)ws[mr.In()[0]]),
05757 *((GasAbsLookup *)ws[mr.In()[1]]),
05758 *((String *)ws[mr.In()[2]]),
05759 Workspace::wsv_data[mr.In()[1]].Name(),
05760 Workspace::wsv_data[mr.In()[2]].Name());
05761 }
05762
05763 void WriteXML_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
05764 {
05765 WriteXML(*((String *)ws[mr.In()[0]]),
05766 *((SingleScatteringData *)ws[mr.In()[1]]),
05767 *((String *)ws[mr.In()[2]]),
05768 Workspace::wsv_data[mr.In()[1]].Name(),
05769 Workspace::wsv_data[mr.In()[2]].Name());
05770 }
05771
05772 void WriteXML_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
05773 {
05774 WriteXML(*((String *)ws[mr.In()[0]]),
05775 *((ArrayOfSingleScatteringData *)ws[mr.In()[1]]),
05776 *((String *)ws[mr.In()[2]]),
05777 Workspace::wsv_data[mr.In()[1]].Name(),
05778 Workspace::wsv_data[mr.In()[2]].Name());
05779 }
05780
05781 void WriteXML_sg_GField1_g(Workspace& ws, const MRecord& mr)
05782 {
05783 WriteXML(*((String *)ws[mr.In()[0]]),
05784 *((GField1 *)ws[mr.In()[1]]),
05785 *((String *)ws[mr.In()[2]]),
05786 Workspace::wsv_data[mr.In()[1]].Name(),
05787 Workspace::wsv_data[mr.In()[2]].Name());
05788 }
05789
05790 void WriteXML_sg_GField2_g(Workspace& ws, const MRecord& mr)
05791 {
05792 WriteXML(*((String *)ws[mr.In()[0]]),
05793 *((GField2 *)ws[mr.In()[1]]),
05794 *((String *)ws[mr.In()[2]]),
05795 Workspace::wsv_data[mr.In()[1]].Name(),
05796 Workspace::wsv_data[mr.In()[2]].Name());
05797 }
05798
05799 void WriteXML_sg_GField3_g(Workspace& ws, const MRecord& mr)
05800 {
05801 WriteXML(*((String *)ws[mr.In()[0]]),
05802 *((GField3 *)ws[mr.In()[1]]),
05803 *((String *)ws[mr.In()[2]]),
05804 Workspace::wsv_data[mr.In()[1]].Name(),
05805 Workspace::wsv_data[mr.In()[2]].Name());
05806 }
05807
05808 void WriteXML_sg_GField4_g(Workspace& ws, const MRecord& mr)
05809 {
05810 WriteXML(*((String *)ws[mr.In()[0]]),
05811 *((GField4 *)ws[mr.In()[1]]),
05812 *((String *)ws[mr.In()[2]]),
05813 Workspace::wsv_data[mr.In()[1]].Name(),
05814 Workspace::wsv_data[mr.In()[2]].Name());
05815 }
05816
05817 void WriteXML_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
05818 {
05819 WriteXML(*((String *)ws[mr.In()[0]]),
05820 *((ArrayOfGField1 *)ws[mr.In()[1]]),
05821 *((String *)ws[mr.In()[2]]),
05822 Workspace::wsv_data[mr.In()[1]].Name(),
05823 Workspace::wsv_data[mr.In()[2]].Name());
05824 }
05825
05826 void WriteXML_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
05827 {
05828 WriteXML(*((String *)ws[mr.In()[0]]),
05829 *((ArrayOfGField2 *)ws[mr.In()[1]]),
05830 *((String *)ws[mr.In()[2]]),
05831 Workspace::wsv_data[mr.In()[1]].Name(),
05832 Workspace::wsv_data[mr.In()[2]].Name());
05833 }
05834
05835 void WriteXML_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
05836 {
05837 WriteXML(*((String *)ws[mr.In()[0]]),
05838 *((ArrayOfGField3 *)ws[mr.In()[1]]),
05839 *((String *)ws[mr.In()[2]]),
05840 Workspace::wsv_data[mr.In()[1]].Name(),
05841 Workspace::wsv_data[mr.In()[2]].Name());
05842 }
05843
05844 void WriteXML_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
05845 {
05846 WriteXML(*((String *)ws[mr.In()[0]]),
05847 *((ArrayOfGField4 *)ws[mr.In()[1]]),
05848 *((String *)ws[mr.In()[2]]),
05849 Workspace::wsv_data[mr.In()[1]].Name(),
05850 Workspace::wsv_data[mr.In()[2]].Name());
05851 }
05852
05853 void WriteXML_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
05854 {
05855 WriteXML(*((String *)ws[mr.In()[0]]),
05856 *((ArrayOfArrayOfGField1 *)ws[mr.In()[1]]),
05857 *((String *)ws[mr.In()[2]]),
05858 Workspace::wsv_data[mr.In()[1]].Name(),
05859 Workspace::wsv_data[mr.In()[2]].Name());
05860 }
05861
05862 void WriteXML_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
05863 {
05864 WriteXML(*((String *)ws[mr.In()[0]]),
05865 *((ArrayOfArrayOfGField3 *)ws[mr.In()[1]]),
05866 *((String *)ws[mr.In()[2]]),
05867 Workspace::wsv_data[mr.In()[1]].Name(),
05868 Workspace::wsv_data[mr.In()[2]].Name());
05869 }
05870
05871 void WriteXML_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
05872 {
05873 WriteXML(*((String *)ws[mr.In()[0]]),
05874 *((ArrayOfRetrievalQuantity *)ws[mr.In()[1]]),
05875 *((String *)ws[mr.In()[2]]),
05876 Workspace::wsv_data[mr.In()[1]].Name(),
05877 Workspace::wsv_data[mr.In()[2]].Name());
05878 }
05879
05880 void WriteXML_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
05881 {
05882 WriteXML(*((String *)ws[mr.In()[0]]),
05883 *((MCAntenna *)ws[mr.In()[1]]),
05884 *((String *)ws[mr.In()[2]]),
05885 Workspace::wsv_data[mr.In()[1]].Name(),
05886 Workspace::wsv_data[mr.In()[2]].Name());
05887 }
05888
05889 void WriteXML_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
05890 {
05891 WriteXML(*((String *)ws[mr.In()[0]]),
05892 *((SLIData2 *)ws[mr.In()[1]]),
05893 *((String *)ws[mr.In()[2]]),
05894 Workspace::wsv_data[mr.In()[1]].Name(),
05895 Workspace::wsv_data[mr.In()[2]].Name());
05896 }
05897
05898 void WriteXMLIndexed_sg_Index_g(Workspace& ws, const MRecord& mr)
05899 {
05900 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05901 *((Index *)ws[mr.In()[1]]),
05902 *((Index *)ws[mr.In()[2]]),
05903 *((String *)ws[mr.In()[3]]),
05904 Workspace::wsv_data[mr.In()[2]].Name(),
05905 Workspace::wsv_data[mr.In()[3]].Name());
05906 }
05907
05908 void WriteXMLIndexed_sg_Numeric_g(Workspace& ws, const MRecord& mr)
05909 {
05910 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05911 *((Index *)ws[mr.In()[1]]),
05912 *((Numeric *)ws[mr.In()[2]]),
05913 *((String *)ws[mr.In()[3]]),
05914 Workspace::wsv_data[mr.In()[2]].Name(),
05915 Workspace::wsv_data[mr.In()[3]].Name());
05916 }
05917
05918 void WriteXMLIndexed_sg_String_g(Workspace& ws, const MRecord& mr)
05919 {
05920 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05921 *((Index *)ws[mr.In()[1]]),
05922 *((String *)ws[mr.In()[2]]),
05923 *((String *)ws[mr.In()[3]]),
05924 Workspace::wsv_data[mr.In()[2]].Name(),
05925 Workspace::wsv_data[mr.In()[3]].Name());
05926 }
05927
05928 void WriteXMLIndexed_sg_Vector_g(Workspace& ws, const MRecord& mr)
05929 {
05930 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05931 *((Index *)ws[mr.In()[1]]),
05932 *((Vector *)ws[mr.In()[2]]),
05933 *((String *)ws[mr.In()[3]]),
05934 Workspace::wsv_data[mr.In()[2]].Name(),
05935 Workspace::wsv_data[mr.In()[3]].Name());
05936 }
05937
05938 void WriteXMLIndexed_sg_Matrix_g(Workspace& ws, const MRecord& mr)
05939 {
05940 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05941 *((Index *)ws[mr.In()[1]]),
05942 *((Matrix *)ws[mr.In()[2]]),
05943 *((String *)ws[mr.In()[3]]),
05944 Workspace::wsv_data[mr.In()[2]].Name(),
05945 Workspace::wsv_data[mr.In()[3]].Name());
05946 }
05947
05948 void WriteXMLIndexed_sg_Sparse_g(Workspace& ws, const MRecord& mr)
05949 {
05950 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05951 *((Index *)ws[mr.In()[1]]),
05952 *((Sparse *)ws[mr.In()[2]]),
05953 *((String *)ws[mr.In()[3]]),
05954 Workspace::wsv_data[mr.In()[2]].Name(),
05955 Workspace::wsv_data[mr.In()[3]].Name());
05956 }
05957
05958 void WriteXMLIndexed_sg_Tensor3_g(Workspace& ws, const MRecord& mr)
05959 {
05960 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05961 *((Index *)ws[mr.In()[1]]),
05962 *((Tensor3 *)ws[mr.In()[2]]),
05963 *((String *)ws[mr.In()[3]]),
05964 Workspace::wsv_data[mr.In()[2]].Name(),
05965 Workspace::wsv_data[mr.In()[3]].Name());
05966 }
05967
05968 void WriteXMLIndexed_sg_Tensor4_g(Workspace& ws, const MRecord& mr)
05969 {
05970 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05971 *((Index *)ws[mr.In()[1]]),
05972 *((Tensor4 *)ws[mr.In()[2]]),
05973 *((String *)ws[mr.In()[3]]),
05974 Workspace::wsv_data[mr.In()[2]].Name(),
05975 Workspace::wsv_data[mr.In()[3]].Name());
05976 }
05977
05978 void WriteXMLIndexed_sg_Tensor5_g(Workspace& ws, const MRecord& mr)
05979 {
05980 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05981 *((Index *)ws[mr.In()[1]]),
05982 *((Tensor5 *)ws[mr.In()[2]]),
05983 *((String *)ws[mr.In()[3]]),
05984 Workspace::wsv_data[mr.In()[2]].Name(),
05985 Workspace::wsv_data[mr.In()[3]].Name());
05986 }
05987
05988 void WriteXMLIndexed_sg_Tensor6_g(Workspace& ws, const MRecord& mr)
05989 {
05990 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
05991 *((Index *)ws[mr.In()[1]]),
05992 *((Tensor6 *)ws[mr.In()[2]]),
05993 *((String *)ws[mr.In()[3]]),
05994 Workspace::wsv_data[mr.In()[2]].Name(),
05995 Workspace::wsv_data[mr.In()[3]].Name());
05996 }
05997
05998 void WriteXMLIndexed_sg_Tensor7_g(Workspace& ws, const MRecord& mr)
05999 {
06000 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06001 *((Index *)ws[mr.In()[1]]),
06002 *((Tensor7 *)ws[mr.In()[2]]),
06003 *((String *)ws[mr.In()[3]]),
06004 Workspace::wsv_data[mr.In()[2]].Name(),
06005 Workspace::wsv_data[mr.In()[3]].Name());
06006 }
06007
06008 void WriteXMLIndexed_sg_Timer_g(Workspace& ws, const MRecord& mr)
06009 {
06010 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06011 *((Index *)ws[mr.In()[1]]),
06012 *((Timer *)ws[mr.In()[2]]),
06013 *((String *)ws[mr.In()[3]]),
06014 Workspace::wsv_data[mr.In()[2]].Name(),
06015 Workspace::wsv_data[mr.In()[3]].Name());
06016 }
06017
06018 void WriteXMLIndexed_sg_ArrayOfIndex_g(Workspace& ws, const MRecord& mr)
06019 {
06020 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06021 *((Index *)ws[mr.In()[1]]),
06022 *((ArrayOfIndex *)ws[mr.In()[2]]),
06023 *((String *)ws[mr.In()[3]]),
06024 Workspace::wsv_data[mr.In()[2]].Name(),
06025 Workspace::wsv_data[mr.In()[3]].Name());
06026 }
06027
06028 void WriteXMLIndexed_sg_ArrayOfArrayOfIndex_g(Workspace& ws, const MRecord& mr)
06029 {
06030 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06031 *((Index *)ws[mr.In()[1]]),
06032 *((ArrayOfArrayOfIndex *)ws[mr.In()[2]]),
06033 *((String *)ws[mr.In()[3]]),
06034 Workspace::wsv_data[mr.In()[2]].Name(),
06035 Workspace::wsv_data[mr.In()[3]].Name());
06036 }
06037
06038 void WriteXMLIndexed_sg_ArrayOfString_g(Workspace& ws, const MRecord& mr)
06039 {
06040 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06041 *((Index *)ws[mr.In()[1]]),
06042 *((ArrayOfString *)ws[mr.In()[2]]),
06043 *((String *)ws[mr.In()[3]]),
06044 Workspace::wsv_data[mr.In()[2]].Name(),
06045 Workspace::wsv_data[mr.In()[3]].Name());
06046 }
06047
06048 void WriteXMLIndexed_sg_ArrayOfVector_g(Workspace& ws, const MRecord& mr)
06049 {
06050 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06051 *((Index *)ws[mr.In()[1]]),
06052 *((ArrayOfVector *)ws[mr.In()[2]]),
06053 *((String *)ws[mr.In()[3]]),
06054 Workspace::wsv_data[mr.In()[2]].Name(),
06055 Workspace::wsv_data[mr.In()[3]].Name());
06056 }
06057
06058 void WriteXMLIndexed_sg_ArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
06059 {
06060 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06061 *((Index *)ws[mr.In()[1]]),
06062 *((ArrayOfMatrix *)ws[mr.In()[2]]),
06063 *((String *)ws[mr.In()[3]]),
06064 Workspace::wsv_data[mr.In()[2]].Name(),
06065 Workspace::wsv_data[mr.In()[3]].Name());
06066 }
06067
06068 void WriteXMLIndexed_sg_ArrayOfArrayOfMatrix_g(Workspace& ws, const MRecord& mr)
06069 {
06070 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06071 *((Index *)ws[mr.In()[1]]),
06072 *((ArrayOfArrayOfMatrix *)ws[mr.In()[2]]),
06073 *((String *)ws[mr.In()[3]]),
06074 Workspace::wsv_data[mr.In()[2]].Name(),
06075 Workspace::wsv_data[mr.In()[3]].Name());
06076 }
06077
06078 void WriteXMLIndexed_sg_ArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
06079 {
06080 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06081 *((Index *)ws[mr.In()[1]]),
06082 *((ArrayOfTensor3 *)ws[mr.In()[2]]),
06083 *((String *)ws[mr.In()[3]]),
06084 Workspace::wsv_data[mr.In()[2]].Name(),
06085 Workspace::wsv_data[mr.In()[3]].Name());
06086 }
06087
06088 void WriteXMLIndexed_sg_ArrayOfArrayOfTensor3_g(Workspace& ws, const MRecord& mr)
06089 {
06090 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06091 *((Index *)ws[mr.In()[1]]),
06092 *((ArrayOfArrayOfTensor3 *)ws[mr.In()[2]]),
06093 *((String *)ws[mr.In()[3]]),
06094 Workspace::wsv_data[mr.In()[2]].Name(),
06095 Workspace::wsv_data[mr.In()[3]].Name());
06096 }
06097
06098 void WriteXMLIndexed_sg_ArrayOfTensor4_g(Workspace& ws, const MRecord& mr)
06099 {
06100 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06101 *((Index *)ws[mr.In()[1]]),
06102 *((ArrayOfTensor4 *)ws[mr.In()[2]]),
06103 *((String *)ws[mr.In()[3]]),
06104 Workspace::wsv_data[mr.In()[2]].Name(),
06105 Workspace::wsv_data[mr.In()[3]].Name());
06106 }
06107
06108 void WriteXMLIndexed_sg_ArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
06109 {
06110 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06111 *((Index *)ws[mr.In()[1]]),
06112 *((ArrayOfTensor6 *)ws[mr.In()[2]]),
06113 *((String *)ws[mr.In()[3]]),
06114 Workspace::wsv_data[mr.In()[2]].Name(),
06115 Workspace::wsv_data[mr.In()[3]].Name());
06116 }
06117
06118 void WriteXMLIndexed_sg_ArrayOfTensor7_g(Workspace& ws, const MRecord& mr)
06119 {
06120 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06121 *((Index *)ws[mr.In()[1]]),
06122 *((ArrayOfTensor7 *)ws[mr.In()[2]]),
06123 *((String *)ws[mr.In()[3]]),
06124 Workspace::wsv_data[mr.In()[2]].Name(),
06125 Workspace::wsv_data[mr.In()[3]].Name());
06126 }
06127
06128 void WriteXMLIndexed_sg_ArrayOfArrayOfTensor6_g(Workspace& ws, const MRecord& mr)
06129 {
06130 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06131 *((Index *)ws[mr.In()[1]]),
06132 *((ArrayOfArrayOfTensor6 *)ws[mr.In()[2]]),
06133 *((String *)ws[mr.In()[3]]),
06134 Workspace::wsv_data[mr.In()[2]].Name(),
06135 Workspace::wsv_data[mr.In()[3]].Name());
06136 }
06137
06138 void WriteXMLIndexed_sg_ArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
06139 {
06140 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06141 *((Index *)ws[mr.In()[1]]),
06142 *((ArrayOfLineRecord *)ws[mr.In()[2]]),
06143 *((String *)ws[mr.In()[3]]),
06144 Workspace::wsv_data[mr.In()[2]].Name(),
06145 Workspace::wsv_data[mr.In()[3]].Name());
06146 }
06147
06148 void WriteXMLIndexed_sg_ArrayOfArrayOfLineRecord_g(Workspace& ws, const MRecord& mr)
06149 {
06150 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06151 *((Index *)ws[mr.In()[1]]),
06152 *((ArrayOfArrayOfLineRecord *)ws[mr.In()[2]]),
06153 *((String *)ws[mr.In()[3]]),
06154 Workspace::wsv_data[mr.In()[2]].Name(),
06155 Workspace::wsv_data[mr.In()[3]].Name());
06156 }
06157
06158 void WriteXMLIndexed_sg_ArrayOfLineshapeSpec_g(Workspace& ws, const MRecord& mr)
06159 {
06160 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06161 *((Index *)ws[mr.In()[1]]),
06162 *((ArrayOfLineshapeSpec *)ws[mr.In()[2]]),
06163 *((String *)ws[mr.In()[3]]),
06164 Workspace::wsv_data[mr.In()[2]].Name(),
06165 Workspace::wsv_data[mr.In()[3]].Name());
06166 }
06167
06168 void WriteXMLIndexed_sg_ArrayOfArrayOfSpeciesTag_g(Workspace& ws, const MRecord& mr)
06169 {
06170 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06171 *((Index *)ws[mr.In()[1]]),
06172 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[2]]),
06173 *((String *)ws[mr.In()[3]]),
06174 Workspace::wsv_data[mr.In()[2]].Name(),
06175 Workspace::wsv_data[mr.In()[3]].Name());
06176 }
06177
06178 void WriteXMLIndexed_sg_Ppath_g(Workspace& ws, const MRecord& mr)
06179 {
06180 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06181 *((Index *)ws[mr.In()[1]]),
06182 *((Ppath *)ws[mr.In()[2]]),
06183 *((String *)ws[mr.In()[3]]),
06184 Workspace::wsv_data[mr.In()[2]].Name(),
06185 Workspace::wsv_data[mr.In()[3]].Name());
06186 }
06187
06188 void WriteXMLIndexed_sg_ArrayOfPpath_g(Workspace& ws, const MRecord& mr)
06189 {
06190 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06191 *((Index *)ws[mr.In()[1]]),
06192 *((ArrayOfPpath *)ws[mr.In()[2]]),
06193 *((String *)ws[mr.In()[3]]),
06194 Workspace::wsv_data[mr.In()[2]].Name(),
06195 Workspace::wsv_data[mr.In()[3]].Name());
06196 }
06197
06198 void WriteXMLIndexed_sg_Agenda_g(Workspace& ws, const MRecord& mr)
06199 {
06200 WriteXMLIndexed(ws,
06201 *((String *)ws[mr.In()[0]]),
06202 *((Index *)ws[mr.In()[1]]),
06203 *((Agenda *)ws[mr.In()[2]]),
06204 *((String *)ws[mr.In()[3]]),
06205 Workspace::wsv_data[mr.In()[2]].Name(),
06206 Workspace::wsv_data[mr.In()[3]].Name());
06207 }
06208
06209 void WriteXMLIndexed_sg_GridPos_g(Workspace& ws, const MRecord& mr)
06210 {
06211 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06212 *((Index *)ws[mr.In()[1]]),
06213 *((GridPos *)ws[mr.In()[2]]),
06214 *((String *)ws[mr.In()[3]]),
06215 Workspace::wsv_data[mr.In()[2]].Name(),
06216 Workspace::wsv_data[mr.In()[3]].Name());
06217 }
06218
06219 void WriteXMLIndexed_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g(Workspace& ws, const MRecord& mr)
06220 {
06221 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06222 *((Index *)ws[mr.In()[1]]),
06223 *((ArrayOfArrayOfArrayOfArrayOfGridPos *)ws[mr.In()[2]]),
06224 *((String *)ws[mr.In()[3]]),
06225 Workspace::wsv_data[mr.In()[2]].Name(),
06226 Workspace::wsv_data[mr.In()[3]].Name());
06227 }
06228
06229 void WriteXMLIndexed_sg_GasAbsLookup_g(Workspace& ws, const MRecord& mr)
06230 {
06231 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06232 *((Index *)ws[mr.In()[1]]),
06233 *((GasAbsLookup *)ws[mr.In()[2]]),
06234 *((String *)ws[mr.In()[3]]),
06235 Workspace::wsv_data[mr.In()[2]].Name(),
06236 Workspace::wsv_data[mr.In()[3]].Name());
06237 }
06238
06239 void WriteXMLIndexed_sg_SingleScatteringData_g(Workspace& ws, const MRecord& mr)
06240 {
06241 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06242 *((Index *)ws[mr.In()[1]]),
06243 *((SingleScatteringData *)ws[mr.In()[2]]),
06244 *((String *)ws[mr.In()[3]]),
06245 Workspace::wsv_data[mr.In()[2]].Name(),
06246 Workspace::wsv_data[mr.In()[3]].Name());
06247 }
06248
06249 void WriteXMLIndexed_sg_ArrayOfSingleScatteringData_g(Workspace& ws, const MRecord& mr)
06250 {
06251 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06252 *((Index *)ws[mr.In()[1]]),
06253 *((ArrayOfSingleScatteringData *)ws[mr.In()[2]]),
06254 *((String *)ws[mr.In()[3]]),
06255 Workspace::wsv_data[mr.In()[2]].Name(),
06256 Workspace::wsv_data[mr.In()[3]].Name());
06257 }
06258
06259 void WriteXMLIndexed_sg_GField1_g(Workspace& ws, const MRecord& mr)
06260 {
06261 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06262 *((Index *)ws[mr.In()[1]]),
06263 *((GField1 *)ws[mr.In()[2]]),
06264 *((String *)ws[mr.In()[3]]),
06265 Workspace::wsv_data[mr.In()[2]].Name(),
06266 Workspace::wsv_data[mr.In()[3]].Name());
06267 }
06268
06269 void WriteXMLIndexed_sg_GField2_g(Workspace& ws, const MRecord& mr)
06270 {
06271 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06272 *((Index *)ws[mr.In()[1]]),
06273 *((GField2 *)ws[mr.In()[2]]),
06274 *((String *)ws[mr.In()[3]]),
06275 Workspace::wsv_data[mr.In()[2]].Name(),
06276 Workspace::wsv_data[mr.In()[3]].Name());
06277 }
06278
06279 void WriteXMLIndexed_sg_GField3_g(Workspace& ws, const MRecord& mr)
06280 {
06281 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06282 *((Index *)ws[mr.In()[1]]),
06283 *((GField3 *)ws[mr.In()[2]]),
06284 *((String *)ws[mr.In()[3]]),
06285 Workspace::wsv_data[mr.In()[2]].Name(),
06286 Workspace::wsv_data[mr.In()[3]].Name());
06287 }
06288
06289 void WriteXMLIndexed_sg_GField4_g(Workspace& ws, const MRecord& mr)
06290 {
06291 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06292 *((Index *)ws[mr.In()[1]]),
06293 *((GField4 *)ws[mr.In()[2]]),
06294 *((String *)ws[mr.In()[3]]),
06295 Workspace::wsv_data[mr.In()[2]].Name(),
06296 Workspace::wsv_data[mr.In()[3]].Name());
06297 }
06298
06299 void WriteXMLIndexed_sg_ArrayOfGField1_g(Workspace& ws, const MRecord& mr)
06300 {
06301 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06302 *((Index *)ws[mr.In()[1]]),
06303 *((ArrayOfGField1 *)ws[mr.In()[2]]),
06304 *((String *)ws[mr.In()[3]]),
06305 Workspace::wsv_data[mr.In()[2]].Name(),
06306 Workspace::wsv_data[mr.In()[3]].Name());
06307 }
06308
06309 void WriteXMLIndexed_sg_ArrayOfGField2_g(Workspace& ws, const MRecord& mr)
06310 {
06311 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06312 *((Index *)ws[mr.In()[1]]),
06313 *((ArrayOfGField2 *)ws[mr.In()[2]]),
06314 *((String *)ws[mr.In()[3]]),
06315 Workspace::wsv_data[mr.In()[2]].Name(),
06316 Workspace::wsv_data[mr.In()[3]].Name());
06317 }
06318
06319 void WriteXMLIndexed_sg_ArrayOfGField3_g(Workspace& ws, const MRecord& mr)
06320 {
06321 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06322 *((Index *)ws[mr.In()[1]]),
06323 *((ArrayOfGField3 *)ws[mr.In()[2]]),
06324 *((String *)ws[mr.In()[3]]),
06325 Workspace::wsv_data[mr.In()[2]].Name(),
06326 Workspace::wsv_data[mr.In()[3]].Name());
06327 }
06328
06329 void WriteXMLIndexed_sg_ArrayOfGField4_g(Workspace& ws, const MRecord& mr)
06330 {
06331 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06332 *((Index *)ws[mr.In()[1]]),
06333 *((ArrayOfGField4 *)ws[mr.In()[2]]),
06334 *((String *)ws[mr.In()[3]]),
06335 Workspace::wsv_data[mr.In()[2]].Name(),
06336 Workspace::wsv_data[mr.In()[3]].Name());
06337 }
06338
06339 void WriteXMLIndexed_sg_ArrayOfArrayOfGField1_g(Workspace& ws, const MRecord& mr)
06340 {
06341 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06342 *((Index *)ws[mr.In()[1]]),
06343 *((ArrayOfArrayOfGField1 *)ws[mr.In()[2]]),
06344 *((String *)ws[mr.In()[3]]),
06345 Workspace::wsv_data[mr.In()[2]].Name(),
06346 Workspace::wsv_data[mr.In()[3]].Name());
06347 }
06348
06349 void WriteXMLIndexed_sg_ArrayOfArrayOfGField3_g(Workspace& ws, const MRecord& mr)
06350 {
06351 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06352 *((Index *)ws[mr.In()[1]]),
06353 *((ArrayOfArrayOfGField3 *)ws[mr.In()[2]]),
06354 *((String *)ws[mr.In()[3]]),
06355 Workspace::wsv_data[mr.In()[2]].Name(),
06356 Workspace::wsv_data[mr.In()[3]].Name());
06357 }
06358
06359 void WriteXMLIndexed_sg_ArrayOfRetrievalQuantity_g(Workspace& ws, const MRecord& mr)
06360 {
06361 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06362 *((Index *)ws[mr.In()[1]]),
06363 *((ArrayOfRetrievalQuantity *)ws[mr.In()[2]]),
06364 *((String *)ws[mr.In()[3]]),
06365 Workspace::wsv_data[mr.In()[2]].Name(),
06366 Workspace::wsv_data[mr.In()[3]].Name());
06367 }
06368
06369 void WriteXMLIndexed_sg_MCAntenna_g(Workspace& ws, const MRecord& mr)
06370 {
06371 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06372 *((Index *)ws[mr.In()[1]]),
06373 *((MCAntenna *)ws[mr.In()[2]]),
06374 *((String *)ws[mr.In()[3]]),
06375 Workspace::wsv_data[mr.In()[2]].Name(),
06376 Workspace::wsv_data[mr.In()[3]].Name());
06377 }
06378
06379 void WriteXMLIndexed_sg_SLIData2_g(Workspace& ws, const MRecord& mr)
06380 {
06381 WriteXMLIndexed(*((String *)ws[mr.In()[0]]),
06382 *((Index *)ws[mr.In()[1]]),
06383 *((SLIData2 *)ws[mr.In()[2]]),
06384 *((String *)ws[mr.In()[3]]),
06385 Workspace::wsv_data[mr.In()[2]].Name(),
06386 Workspace::wsv_data[mr.In()[3]].Name());
06387 }
06388
06389 void ybatchCalc_g(Workspace& ws, const MRecord& mr)
06390 {
06391 ybatchCalc(ws,
06392 *((Matrix *)ws[mr.Out()[0]]),
06393 *((Index *)ws[mr.In()[0]]),
06394 *((Agenda *)ws[mr.In()[1]]),
06395 *((Index *)ws[mr.In()[2]]));
06396 }
06397
06398 void ybatchMetProfiles_g(Workspace& ws, const MRecord& mr)
06399 {
06400 ybatchMetProfiles(ws,
06401 *((Matrix *)ws[mr.Out()[0]]),
06402 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
06403 *((Agenda *)ws[mr.In()[1]]),
06404 *((Vector *)ws[mr.In()[2]]),
06405 *((Matrix *)ws[mr.In()[3]]),
06406 *((Matrix *)ws[mr.In()[4]]),
06407 *((Matrix *)ws[mr.In()[5]]),
06408 *((Vector *)ws[mr.In()[6]]),
06409 *((Vector *)ws[mr.In()[7]]),
06410 *((Index *)ws[mr.In()[8]]),
06411 *((ArrayOfSingleScatteringData *)ws[mr.In()[9]]),
06412 *((Index *)ws[mr.In()[10]]),
06413 *((String *)ws[mr.In()[11]]),
06414 *((String *)ws[mr.In()[12]]));
06415 }
06416
06417 void ybatchMetProfilesClear_g(Workspace& ws, const MRecord& mr)
06418 {
06419 ybatchMetProfilesClear(ws,
06420 *((Matrix *)ws[mr.Out()[0]]),
06421 *((ArrayOfArrayOfSpeciesTag *)ws[mr.In()[0]]),
06422 *((Agenda *)ws[mr.In()[1]]),
06423 *((Vector *)ws[mr.In()[2]]),
06424 *((Matrix *)ws[mr.In()[3]]),
06425 *((Matrix *)ws[mr.In()[4]]),
06426 *((Matrix *)ws[mr.In()[5]]),
06427 *((Index *)ws[mr.In()[6]]),
06428 *((String *)ws[mr.In()[7]]));
06429 }
06430
06431 void ybatchUnit_g(Workspace& ws, const MRecord& mr)
06432 {
06433 ybatchUnit(*((Matrix *)ws[mr.Out()[0]]),
06434 *((String *)ws[mr.In()[0]]),
06435 *((Vector *)ws[mr.In()[1]]));
06436 }
06437
06438 void yUnit_g(Workspace& ws, const MRecord& mr)
06439 {
06440 yUnit(*((Vector *)ws[mr.Out()[0]]),
06441 *((String *)ws[mr.In()[0]]),
06442 *((Vector *)ws[mr.In()[1]]));
06443 }
06444
06445 void ZaSatOccultation_g(Workspace& ws, const MRecord& mr)
06446 {
06447 ZaSatOccultation(ws,
06448 *((Vector *)ws[mr.Out()[0]]),
06449 *((Agenda *)ws[mr.In()[0]]),
06450 *((Index *)ws[mr.In()[1]]),
06451 *((Vector *)ws[mr.In()[2]]),
06452 *((Vector *)ws[mr.In()[3]]),
06453 *((Vector *)ws[mr.In()[4]]),
06454 *((Tensor3 *)ws[mr.In()[5]]),
06455 *((Matrix *)ws[mr.In()[6]]),
06456 *((Matrix *)ws[mr.In()[7]]),
06457 *((Numeric *)ws[mr.In()[8]]),
06458 *((Numeric *)ws[mr.In()[9]]),
06459 *((Numeric *)ws[mr.In()[10]]),
06460 *((Numeric *)ws[mr.In()[11]]),
06461 *((Numeric *)ws[mr.In()[12]]));
06462 }
06463
06464
06465 void (*getaways[])(Workspace&, const MRecord&)
06466 = {AbsInputFromAtmFields_g,
06467 AbsInputFromRteScalars_g,
06468 abs_coefCalc_g,
06469 abs_coefCalcFromXsec_g,
06470 abs_coefCalcSaveMemory_g,
06471 abs_cont_descriptionAppend_g,
06472 abs_cont_descriptionInit_g,
06473 abs_h2oSet_g,
06474 abs_lineshapeDefine_g,
06475 abs_lineshape_per_tgDefine_g,
06476 abs_linesReadFromArts_g,
06477 abs_linesReadFromArtsObsolete_g,
06478 abs_linesReadFromHitran_g,
06479 abs_linesReadFromHitran2004_g,
06480 abs_linesReadFromJpl_g,
06481 abs_linesReadFromMytran2_g,
06482 abs_lines_per_speciesAddMirrorLines_g,
06483 abs_lines_per_speciesCompact_g,
06484 abs_lines_per_speciesCreateFromLines_g,
06485 abs_lines_per_speciesReadFromCatalogues_g,
06486 abs_lines_per_speciesSetEmpty_g,
06487 abs_lookupAdapt_g,
06488 abs_lookupCreate_g,
06489 abs_lookupInit_g,
06490 abs_lookupSetup_g,
06491 abs_lookupSetupBatch_g,
06492 abs_lookupSetupWide_g,
06493 abs_lookupTestAccuracy_g,
06494 abs_n2Set_g,
06495 abs_scalar_gasCalcLBL_g,
06496 abs_scalar_gasExtractFromLookup_g,
06497 abs_scalar_gasFromAbsCoef_g,
06498 abs_fieldCalc_g,
06499 abs_speciesAdd_g,
06500 abs_speciesAdd2_g,
06501 abs_speciesDefineAllInScenario_g,
06502 abs_speciesInit_g,
06503 SpeciesSet_g,
06504 abs_vecAddGas_g,
06505 abs_vecAddPart_g,
06506 abs_vecInit_g,
06507 abs_xsec_per_speciesAddConts_g,
06508 abs_xsec_per_speciesAddLines_g,
06509 abs_xsec_per_speciesInit_g,
06510 AgendaExecute_g,
06511 AgendaAppend_g,
06512 AgendaSet_g,
06513 AntennaOff_g,
06514 AntennaSet1D_g,
06515 AntennaSet2D_g,
06516 Append_sg_ArrayOfIndexArrayOfIndex_g,
06517 Append_sg_ArrayOfArrayOfIndexArrayOfArrayOfIndex_g,
06518 Append_sg_ArrayOfStringArrayOfString_g,
06519 Append_sg_ArrayOfVectorArrayOfVector_g,
06520 Append_sg_ArrayOfMatrixArrayOfMatrix_g,
06521 Append_sg_ArrayOfArrayOfMatrixArrayOfArrayOfMatrix_g,
06522 Append_sg_ArrayOfTensor3ArrayOfTensor3_g,
06523 Append_sg_ArrayOfArrayOfTensor3ArrayOfArrayOfTensor3_g,
06524 Append_sg_ArrayOfTensor4ArrayOfTensor4_g,
06525 Append_sg_ArrayOfTensor6ArrayOfTensor6_g,
06526 Append_sg_ArrayOfTensor7ArrayOfTensor7_g,
06527 Append_sg_ArrayOfArrayOfTensor6ArrayOfArrayOfTensor6_g,
06528 Append_sg_ArrayOfLineRecordArrayOfLineRecord_g,
06529 Append_sg_ArrayOfArrayOfLineRecordArrayOfArrayOfLineRecord_g,
06530 Append_sg_ArrayOfLineshapeSpecArrayOfLineshapeSpec_g,
06531 Append_sg_ArrayOfArrayOfSpeciesTagArrayOfArrayOfSpeciesTag_g,
06532 Append_sg_ArrayOfPpathArrayOfPpath_g,
06533 Append_sg_ArrayOfArrayOfArrayOfArrayOfGridPosArrayOfArrayOfArrayOfArrayOfGridPos_g,
06534 Append_sg_ArrayOfSingleScatteringDataArrayOfSingleScatteringData_g,
06535 Append_sg_ArrayOfGField1ArrayOfGField1_g,
06536 Append_sg_ArrayOfGField2ArrayOfGField2_g,
06537 Append_sg_ArrayOfGField3ArrayOfGField3_g,
06538 Append_sg_ArrayOfGField4ArrayOfGField4_g,
06539 Append_sg_ArrayOfArrayOfGField1ArrayOfArrayOfGField1_g,
06540 Append_sg_ArrayOfArrayOfGField3ArrayOfArrayOfGField3_g,
06541 Append_sg_ArrayOfRetrievalQuantityArrayOfRetrievalQuantity_g,
06542 Append_sg_VectorVector_g,
06543 Append_sg_StringString_g,
06544 ArrayOfGField1Create_g,
06545 ArrayOfIndexCreate_g,
06546 ArrayOfIndexSet_g,
06547 ArrayOfLineRecordCreate_g,
06548 ArrayOfLineshapeSpecCreate_g,
06549 ArrayOfMatrixCreate_g,
06550 ArrayOfMatrixInsert_g,
06551 ArrayOfStringCreate_g,
06552 ArrayOfStringSet_g,
06553 ArrayOfVectorCreate_g,
06554 Arts_g,
06555 AtmFieldsCalc_g,
06556 AtmFieldsCalcExpand1D_g,
06557 AtmFieldsRefinePgrid_g,
06558 atm_fields_compactAddConstant_g,
06559 atm_fields_compactFromMatrix_g,
06560 batch_atm_fields_compactFromArrayOfMatrix_g,
06561 AtmFieldsFromCompact_g,
06562 AtmosphereSet1D_g,
06563 AtmosphereSet2D_g,
06564 AtmosphereSet3D_g,
06565 AtmRawRead_g,
06566 CloudboxGetIncoming_g,
06567 CloudboxGetIncoming1DAtm_g,
06568 cloudboxOff_g,
06569 cloudboxSetDisort_g,
06570 cloudboxSetEmpty_g,
06571 cloudboxSetManually_g,
06572 cloudboxSetManuallyAltitude_g,
06573 complex_nWaterLiebe93_g,
06574 Copy_sg_Index_g,
06575 Copy_sg_Numeric_g,
06576 Copy_sg_String_g,
06577 Copy_sg_Vector_g,
06578 Copy_sg_Matrix_g,
06579 Copy_sg_Sparse_g,
06580 Copy_sg_Tensor3_g,
06581 Copy_sg_Tensor4_g,
06582 Copy_sg_Tensor5_g,
06583 Copy_sg_Tensor6_g,
06584 Copy_sg_Tensor7_g,
06585 Copy_sg_Timer_g,
06586 Copy_sg_ArrayOfIndex_g,
06587 Copy_sg_ArrayOfArrayOfIndex_g,
06588 Copy_sg_ArrayOfString_g,
06589 Copy_sg_ArrayOfVector_g,
06590 Copy_sg_ArrayOfMatrix_g,
06591 Copy_sg_ArrayOfArrayOfMatrix_g,
06592 Copy_sg_ArrayOfTensor3_g,
06593 Copy_sg_ArrayOfArrayOfTensor3_g,
06594 Copy_sg_ArrayOfTensor4_g,
06595 Copy_sg_ArrayOfTensor6_g,
06596 Copy_sg_ArrayOfTensor7_g,
06597 Copy_sg_ArrayOfArrayOfTensor6_g,
06598 Copy_sg_ArrayOfLineRecord_g,
06599 Copy_sg_ArrayOfArrayOfLineRecord_g,
06600 Copy_sg_ArrayOfLineshapeSpec_g,
06601 Copy_sg_ArrayOfArrayOfSpeciesTag_g,
06602 Copy_sg_Ppath_g,
06603 Copy_sg_ArrayOfPpath_g,
06604 Copy_sg_Agenda_g,
06605 Copy_sg_GridPos_g,
06606 Copy_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
06607 Copy_sg_GasAbsLookup_g,
06608 Copy_sg_SingleScatteringData_g,
06609 Copy_sg_ArrayOfSingleScatteringData_g,
06610 Copy_sg_GField1_g,
06611 Copy_sg_GField2_g,
06612 Copy_sg_GField3_g,
06613 Copy_sg_GField4_g,
06614 Copy_sg_ArrayOfGField1_g,
06615 Copy_sg_ArrayOfGField2_g,
06616 Copy_sg_ArrayOfGField3_g,
06617 Copy_sg_ArrayOfGField4_g,
06618 Copy_sg_ArrayOfArrayOfGField1_g,
06619 Copy_sg_ArrayOfArrayOfGField3_g,
06620 Copy_sg_ArrayOfRetrievalQuantity_g,
06621 Copy_sg_MCAntenna_g,
06622 Copy_sg_SLIData2_g,
06623 Delete_sg_Index_g,
06624 Delete_sg_Numeric_g,
06625 Delete_sg_String_g,
06626 Delete_sg_Vector_g,
06627 Delete_sg_Matrix_g,
06628 Delete_sg_Sparse_g,
06629 Delete_sg_Tensor3_g,
06630 Delete_sg_Tensor4_g,
06631 Delete_sg_Tensor5_g,
06632 Delete_sg_Tensor6_g,
06633 Delete_sg_Tensor7_g,
06634 Delete_sg_Timer_g,
06635 Delete_sg_ArrayOfIndex_g,
06636 Delete_sg_ArrayOfArrayOfIndex_g,
06637 Delete_sg_ArrayOfString_g,
06638 Delete_sg_ArrayOfVector_g,
06639 Delete_sg_ArrayOfMatrix_g,
06640 Delete_sg_ArrayOfArrayOfMatrix_g,
06641 Delete_sg_ArrayOfTensor3_g,
06642 Delete_sg_ArrayOfArrayOfTensor3_g,
06643 Delete_sg_ArrayOfTensor4_g,
06644 Delete_sg_ArrayOfTensor6_g,
06645 Delete_sg_ArrayOfTensor7_g,
06646 Delete_sg_ArrayOfArrayOfTensor6_g,
06647 Delete_sg_ArrayOfLineRecord_g,
06648 Delete_sg_ArrayOfArrayOfLineRecord_g,
06649 Delete_sg_ArrayOfLineshapeSpec_g,
06650 Delete_sg_ArrayOfArrayOfSpeciesTag_g,
06651 Delete_sg_Ppath_g,
06652 Delete_sg_ArrayOfPpath_g,
06653 Delete_sg_Agenda_g,
06654 Delete_sg_GridPos_g,
06655 Delete_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
06656 Delete_sg_GasAbsLookup_g,
06657 Delete_sg_SingleScatteringData_g,
06658 Delete_sg_ArrayOfSingleScatteringData_g,
06659 Delete_sg_GField1_g,
06660 Delete_sg_GField2_g,
06661 Delete_sg_GField3_g,
06662 Delete_sg_GField4_g,
06663 Delete_sg_ArrayOfGField1_g,
06664 Delete_sg_ArrayOfGField2_g,
06665 Delete_sg_ArrayOfGField3_g,
06666 Delete_sg_ArrayOfGField4_g,
06667 Delete_sg_ArrayOfArrayOfGField1_g,
06668 Delete_sg_ArrayOfArrayOfGField3_g,
06669 Delete_sg_ArrayOfRetrievalQuantity_g,
06670 Delete_sg_MCAntenna_g,
06671 Delete_sg_SLIData2_g,
06672 ScatteringDisort_g,
06673 DoitAngularGridsSet_g,
06674 DoitCloudboxFieldPut_g,
06675 doit_conv_flagAbs_g,
06676 doit_conv_flagLsq_g,
06677 doit_conv_flagAbsBT_g,
06678 DoitInit_g,
06679 doit_i_fieldIterate_g,
06680 doit_i_fieldSetClearsky_g,
06681 doit_i_fieldSetConst_g,
06682 doit_i_fieldUpdate1D_g,
06683 doit_i_fieldUpdateSeq1D_g,
06684 doit_i_fieldUpdateSeq1DPP_g,
06685 doit_i_fieldUpdateSeq3D_g,
06686 doit_scat_fieldCalc_g,
06687 doit_scat_fieldCalcLimb_g,
06688 DoitScatteringDataPrepare_g,
06689 DoitWriteIterationFields_g,
06690 doit_za_grid_optCalc_g,
06691 doit_za_interpSet_g,
06692 DoNothing_sg_Index_g,
06693 DoNothing_sg_Numeric_g,
06694 DoNothing_sg_String_g,
06695 DoNothing_sg_Vector_g,
06696 DoNothing_sg_Matrix_g,
06697 DoNothing_sg_Sparse_g,
06698 DoNothing_sg_Tensor3_g,
06699 DoNothing_sg_Tensor4_g,
06700 DoNothing_sg_Tensor5_g,
06701 DoNothing_sg_Tensor6_g,
06702 DoNothing_sg_Tensor7_g,
06703 DoNothing_sg_Timer_g,
06704 DoNothing_sg_ArrayOfIndex_g,
06705 DoNothing_sg_ArrayOfArrayOfIndex_g,
06706 DoNothing_sg_ArrayOfString_g,
06707 DoNothing_sg_ArrayOfVector_g,
06708 DoNothing_sg_ArrayOfMatrix_g,
06709 DoNothing_sg_ArrayOfArrayOfMatrix_g,
06710 DoNothing_sg_ArrayOfTensor3_g,
06711 DoNothing_sg_ArrayOfArrayOfTensor3_g,
06712 DoNothing_sg_ArrayOfTensor4_g,
06713 DoNothing_sg_ArrayOfTensor6_g,
06714 DoNothing_sg_ArrayOfTensor7_g,
06715 DoNothing_sg_ArrayOfArrayOfTensor6_g,
06716 DoNothing_sg_ArrayOfLineRecord_g,
06717 DoNothing_sg_ArrayOfArrayOfLineRecord_g,
06718 DoNothing_sg_ArrayOfLineshapeSpec_g,
06719 DoNothing_sg_ArrayOfArrayOfSpeciesTag_g,
06720 DoNothing_sg_Ppath_g,
06721 DoNothing_sg_ArrayOfPpath_g,
06722 DoNothing_sg_Agenda_g,
06723 DoNothing_sg_GridPos_g,
06724 DoNothing_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
06725 DoNothing_sg_GasAbsLookup_g,
06726 DoNothing_sg_SingleScatteringData_g,
06727 DoNothing_sg_ArrayOfSingleScatteringData_g,
06728 DoNothing_sg_GField1_g,
06729 DoNothing_sg_GField2_g,
06730 DoNothing_sg_GField3_g,
06731 DoNothing_sg_GField4_g,
06732 DoNothing_sg_ArrayOfGField1_g,
06733 DoNothing_sg_ArrayOfGField2_g,
06734 DoNothing_sg_ArrayOfGField3_g,
06735 DoNothing_sg_ArrayOfGField4_g,
06736 DoNothing_sg_ArrayOfArrayOfGField1_g,
06737 DoNothing_sg_ArrayOfArrayOfGField3_g,
06738 DoNothing_sg_ArrayOfRetrievalQuantity_g,
06739 DoNothing_sg_MCAntenna_g,
06740 DoNothing_sg_SLIData2_g,
06741 emissionPlanck_g,
06742 Error_g,
06743 Exit_g,
06744 Extract_sg_ArrayOfIndexArrayOfArrayOfIndex_g,
06745 Extract_sg_NumericVector_g,
06746 Extract_sg_MatrixArrayOfMatrix_g,
06747 Extract_sg_MatrixTensor3_g,
06748 Extract_sg_Tensor3Tensor4_g,
06749 Extract_sg_Tensor4ArrayOfTensor4_g,
06750 Extract_sg_Tensor4Tensor5_g,
06751 Extract_sg_ArrayOfGField3ArrayOfArrayOfGField3_g,
06752 Extract_sg_GField4ArrayOfGField4_g,
06753 ext_matAddGas_g,
06754 ext_matAddPart_g,
06755 ext_matInit_g,
06756 f_gridFromSensorAMSU_g,
06757 f_gridFromSensorHIRS_g,
06758 f_gridSelectFIndex_g,
06759 FlagOff_g,
06760 FlagOn_g,
06761 f_gridFromGasAbsLookup_g,
06762 ForLoop_g,
06763 GField1Create_g,
06764 GField2Create_g,
06765 GField3Create_g,
06766 GField4Create_g,
06767 Ignore_sg_Index_g,
06768 Ignore_sg_Numeric_g,
06769 Ignore_sg_String_g,
06770 Ignore_sg_Vector_g,
06771 Ignore_sg_Matrix_g,
06772 Ignore_sg_Sparse_g,
06773 Ignore_sg_Tensor3_g,
06774 Ignore_sg_Tensor4_g,
06775 Ignore_sg_Tensor5_g,
06776 Ignore_sg_Tensor6_g,
06777 Ignore_sg_Tensor7_g,
06778 Ignore_sg_Timer_g,
06779 Ignore_sg_ArrayOfIndex_g,
06780 Ignore_sg_ArrayOfArrayOfIndex_g,
06781 Ignore_sg_ArrayOfString_g,
06782 Ignore_sg_ArrayOfVector_g,
06783 Ignore_sg_ArrayOfMatrix_g,
06784 Ignore_sg_ArrayOfArrayOfMatrix_g,
06785 Ignore_sg_ArrayOfTensor3_g,
06786 Ignore_sg_ArrayOfArrayOfTensor3_g,
06787 Ignore_sg_ArrayOfTensor4_g,
06788 Ignore_sg_ArrayOfTensor6_g,
06789 Ignore_sg_ArrayOfTensor7_g,
06790 Ignore_sg_ArrayOfArrayOfTensor6_g,
06791 Ignore_sg_ArrayOfLineRecord_g,
06792 Ignore_sg_ArrayOfArrayOfLineRecord_g,
06793 Ignore_sg_ArrayOfLineshapeSpec_g,
06794 Ignore_sg_ArrayOfArrayOfSpeciesTag_g,
06795 Ignore_sg_Ppath_g,
06796 Ignore_sg_ArrayOfPpath_g,
06797 Ignore_sg_Agenda_g,
06798 Ignore_sg_GridPos_g,
06799 Ignore_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
06800 Ignore_sg_GasAbsLookup_g,
06801 Ignore_sg_SingleScatteringData_g,
06802 Ignore_sg_ArrayOfSingleScatteringData_g,
06803 Ignore_sg_GField1_g,
06804 Ignore_sg_GField2_g,
06805 Ignore_sg_GField3_g,
06806 Ignore_sg_GField4_g,
06807 Ignore_sg_ArrayOfGField1_g,
06808 Ignore_sg_ArrayOfGField2_g,
06809 Ignore_sg_ArrayOfGField3_g,
06810 Ignore_sg_ArrayOfGField4_g,
06811 Ignore_sg_ArrayOfArrayOfGField1_g,
06812 Ignore_sg_ArrayOfArrayOfGField3_g,
06813 Ignore_sg_ArrayOfRetrievalQuantity_g,
06814 Ignore_sg_MCAntenna_g,
06815 Ignore_sg_SLIData2_g,
06816 INCLUDE_g,
06817 IndexCreate_g,
06818 IndexSet_g,
06819 IndexStep_g,
06820 InterpAtmFieldToRteGps_g,
06821 InterpSurfaceEmissivityFieldIncLatLon_g,
06822 InterpSurfaceFieldToRteGps_g,
06823 iyInterpCloudboxField_g,
06824 iyInterpPolyCloudboxField_g,
06825 jacobianAddAbsSpecies_g,
06826 jacobianAddPointing_g,
06827 jacobianAddPolyfit_g,
06828 jacobianAddTemperature_g,
06829 jacobianCalc_g,
06830 jacobianCalcAbsSpecies_g,
06831 jacobianCalcPointing_g,
06832 jacobianCalcPolyfit_g,
06833 jacobianCalcTemperature_g,
06834 jacobianClose_g,
06835 jacobianInit_g,
06836 jacobianOff_g,
06837 jacobianUnit_g,
06838 MatrixCBR_g,
06839 MatrixCreate_g,
06840 MatrixMatrixMultiply_g,
06841 Matrix1ColFromVector_g,
06842 Matrix2ColFromVectors_g,
06843 Matrix3ColFromVectors_g,
06844 Matrix1RowFromVector_g,
06845 Matrix2RowFromVectors_g,
06846 Matrix3RowFromVectors_g,
06847 MatrixPlanck_g,
06848 MatrixScale_g,
06849 MatrixSetConstant_g,
06850 MatrixUnitIntensity_g,
06851 mc_antennaSetGaussian_g,
06852 mc_antennaSetGaussianByFWHM_g,
06853 mc_antennaSetPencilBeam_g,
06854 mc_IWP_cloud_opt_pathCalc_g,
06855 MCGeneral_g,
06856 MCIPA_g,
06857 MCSetSeedFromTime_g,
06858 NumericCreate_g,
06859 NumericSet_g,
06860 nelemGet_sg_ArrayOfIndex_g,
06861 nelemGet_sg_ArrayOfArrayOfIndex_g,
06862 nelemGet_sg_ArrayOfString_g,
06863 nelemGet_sg_ArrayOfVector_g,
06864 nelemGet_sg_ArrayOfMatrix_g,
06865 nelemGet_sg_ArrayOfArrayOfMatrix_g,
06866 nelemGet_sg_ArrayOfTensor3_g,
06867 nelemGet_sg_ArrayOfArrayOfTensor3_g,
06868 nelemGet_sg_ArrayOfTensor4_g,
06869 nelemGet_sg_ArrayOfTensor6_g,
06870 nelemGet_sg_ArrayOfTensor7_g,
06871 nelemGet_sg_ArrayOfArrayOfTensor6_g,
06872 nelemGet_sg_ArrayOfLineRecord_g,
06873 nelemGet_sg_ArrayOfArrayOfLineRecord_g,
06874 nelemGet_sg_ArrayOfLineshapeSpec_g,
06875 nelemGet_sg_ArrayOfArrayOfSpeciesTag_g,
06876 nelemGet_sg_ArrayOfPpath_g,
06877 nelemGet_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
06878 nelemGet_sg_ArrayOfSingleScatteringData_g,
06879 nelemGet_sg_ArrayOfGField1_g,
06880 nelemGet_sg_ArrayOfGField2_g,
06881 nelemGet_sg_ArrayOfGField3_g,
06882 nelemGet_sg_ArrayOfGField4_g,
06883 nelemGet_sg_ArrayOfArrayOfGField1_g,
06884 nelemGet_sg_ArrayOfArrayOfGField3_g,
06885 nelemGet_sg_ArrayOfRetrievalQuantity_g,
06886 nelemGet_sg_Vector_g,
06887 ncolsGet_sg_Matrix_g,
06888 ncolsGet_sg_Tensor3_g,
06889 ncolsGet_sg_Tensor4_g,
06890 ncolsGet_sg_Tensor5_g,
06891 ncolsGet_sg_Tensor6_g,
06892 ncolsGet_sg_Tensor7_g,
06893 nrowsGet_sg_Matrix_g,
06894 nrowsGet_sg_Tensor3_g,
06895 nrowsGet_sg_Tensor4_g,
06896 nrowsGet_sg_Tensor5_g,
06897 nrowsGet_sg_Tensor6_g,
06898 nrowsGet_sg_Tensor7_g,
06899 npagesGet_sg_Tensor3_g,
06900 npagesGet_sg_Tensor4_g,
06901 npagesGet_sg_Tensor5_g,
06902 npagesGet_sg_Tensor6_g,
06903 npagesGet_sg_Tensor7_g,
06904 nbooksGet_sg_Tensor4_g,
06905 nbooksGet_sg_Tensor5_g,
06906 nbooksGet_sg_Tensor6_g,
06907 nbooksGet_sg_Tensor7_g,
06908 nshelvesGet_sg_Tensor5_g,
06909 nshelvesGet_sg_Tensor6_g,
06910 nshelvesGet_sg_Tensor7_g,
06911 nvitrinesGet_sg_Tensor6_g,
06912 nvitrinesGet_sg_Tensor7_g,
06913 nlibrariesGet_g,
06914 opt_prop_sptFromData_g,
06915 opt_prop_sptFromMonoData_g,
06916 output_file_formatSetAscii_g,
06917 output_file_formatSetBinary_g,
06918 output_file_formatSetZippedAscii_g,
06919 ParticleTypeAddAll_g,
06920 ParticleTypeAdd_g,
06921 ParticleTypeInit_g,
06922 pha_matCalc_g,
06923 pha_mat_sptFromData_g,
06924 pha_mat_sptFromMonoData_g,
06925 pha_mat_sptFromDataDOITOpt_g,
06926 pnd_fieldCalc_g,
06927 ppathCalc_g,
06928 ppath_stepGeometric_g,
06929 ppath_stepRefractionEuler_g,
06930 Print_sg_Index_g,
06931 Print_sg_Numeric_g,
06932 Print_sg_String_g,
06933 Print_sg_Vector_g,
06934 Print_sg_Matrix_g,
06935 Print_sg_Sparse_g,
06936 Print_sg_Tensor3_g,
06937 Print_sg_Tensor4_g,
06938 Print_sg_Tensor5_g,
06939 Print_sg_Tensor6_g,
06940 Print_sg_Tensor7_g,
06941 Print_sg_Timer_g,
06942 Print_sg_ArrayOfIndex_g,
06943 Print_sg_ArrayOfArrayOfIndex_g,
06944 Print_sg_ArrayOfString_g,
06945 Print_sg_ArrayOfVector_g,
06946 Print_sg_ArrayOfMatrix_g,
06947 Print_sg_ArrayOfArrayOfMatrix_g,
06948 Print_sg_ArrayOfTensor3_g,
06949 Print_sg_ArrayOfArrayOfTensor3_g,
06950 Print_sg_ArrayOfTensor4_g,
06951 Print_sg_ArrayOfTensor6_g,
06952 Print_sg_ArrayOfTensor7_g,
06953 Print_sg_ArrayOfArrayOfTensor6_g,
06954 Print_sg_ArrayOfLineRecord_g,
06955 Print_sg_ArrayOfArrayOfLineRecord_g,
06956 Print_sg_ArrayOfLineshapeSpec_g,
06957 Print_sg_ArrayOfArrayOfSpeciesTag_g,
06958 Print_sg_Ppath_g,
06959 Print_sg_ArrayOfPpath_g,
06960 Print_sg_Agenda_g,
06961 Print_sg_GridPos_g,
06962 Print_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
06963 Print_sg_GasAbsLookup_g,
06964 Print_sg_SingleScatteringData_g,
06965 Print_sg_ArrayOfSingleScatteringData_g,
06966 Print_sg_GField1_g,
06967 Print_sg_GField2_g,
06968 Print_sg_GField3_g,
06969 Print_sg_GField4_g,
06970 Print_sg_ArrayOfGField1_g,
06971 Print_sg_ArrayOfGField2_g,
06972 Print_sg_ArrayOfGField3_g,
06973 Print_sg_ArrayOfGField4_g,
06974 Print_sg_ArrayOfArrayOfGField1_g,
06975 Print_sg_ArrayOfArrayOfGField3_g,
06976 Print_sg_ArrayOfRetrievalQuantity_g,
06977 Print_sg_MCAntenna_g,
06978 Print_sg_SLIData2_g,
06979 PrintWorkspace_g,
06980 p_gridFromGasAbsLookup_g,
06981 ReadNetCDF_sg_Vector_g,
06982 ReadNetCDF_sg_Matrix_g,
06983 ReadNetCDF_sg_Tensor3_g,
06984 ReadNetCDF_sg_Tensor4_g,
06985 ReadNetCDF_sg_ArrayOfVector_g,
06986 ReadNetCDF_sg_ArrayOfMatrix_g,
06987 ReadXML_sg_Index_g,
06988 ReadXML_sg_Numeric_g,
06989 ReadXML_sg_String_g,
06990 ReadXML_sg_Vector_g,
06991 ReadXML_sg_Matrix_g,
06992 ReadXML_sg_Sparse_g,
06993 ReadXML_sg_Tensor3_g,
06994 ReadXML_sg_Tensor4_g,
06995 ReadXML_sg_Tensor5_g,
06996 ReadXML_sg_Tensor6_g,
06997 ReadXML_sg_Tensor7_g,
06998 ReadXML_sg_Timer_g,
06999 ReadXML_sg_ArrayOfIndex_g,
07000 ReadXML_sg_ArrayOfArrayOfIndex_g,
07001 ReadXML_sg_ArrayOfString_g,
07002 ReadXML_sg_ArrayOfVector_g,
07003 ReadXML_sg_ArrayOfMatrix_g,
07004 ReadXML_sg_ArrayOfArrayOfMatrix_g,
07005 ReadXML_sg_ArrayOfTensor3_g,
07006 ReadXML_sg_ArrayOfArrayOfTensor3_g,
07007 ReadXML_sg_ArrayOfTensor4_g,
07008 ReadXML_sg_ArrayOfTensor6_g,
07009 ReadXML_sg_ArrayOfTensor7_g,
07010 ReadXML_sg_ArrayOfArrayOfTensor6_g,
07011 ReadXML_sg_ArrayOfLineRecord_g,
07012 ReadXML_sg_ArrayOfArrayOfLineRecord_g,
07013 ReadXML_sg_ArrayOfLineshapeSpec_g,
07014 ReadXML_sg_ArrayOfArrayOfSpeciesTag_g,
07015 ReadXML_sg_Ppath_g,
07016 ReadXML_sg_ArrayOfPpath_g,
07017 ReadXML_sg_Agenda_g,
07018 ReadXML_sg_GridPos_g,
07019 ReadXML_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
07020 ReadXML_sg_GasAbsLookup_g,
07021 ReadXML_sg_SingleScatteringData_g,
07022 ReadXML_sg_ArrayOfSingleScatteringData_g,
07023 ReadXML_sg_GField1_g,
07024 ReadXML_sg_GField2_g,
07025 ReadXML_sg_GField3_g,
07026 ReadXML_sg_GField4_g,
07027 ReadXML_sg_ArrayOfGField1_g,
07028 ReadXML_sg_ArrayOfGField2_g,
07029 ReadXML_sg_ArrayOfGField3_g,
07030 ReadXML_sg_ArrayOfGField4_g,
07031 ReadXML_sg_ArrayOfArrayOfGField1_g,
07032 ReadXML_sg_ArrayOfArrayOfGField3_g,
07033 ReadXML_sg_ArrayOfRetrievalQuantity_g,
07034 ReadXML_sg_MCAntenna_g,
07035 ReadXML_sg_SLIData2_g,
07036 refr_indexFieldAndGradients_g,
07037 refr_indexIR_g,
07038 refr_indexThayer_g,
07039 refr_indexUnit_g,
07040 RteCalc_g,
07041 RteCalcMC_g,
07042 RteCalcNoJacobian_g,
07043 RteStd_g,
07044 RteStdWithTransmissions_g,
07045 rte_losSet_g,
07046 rte_posAddGeoidWGS84_g,
07047 rte_posAddRgeoid_g,
07048 rte_posSet_g,
07049 rte_posShift_g,
07050 rte_pos_and_losFromTangentPressure_g,
07051 r_geoidSpherical_g,
07052 r_geoidWGS84_g,
07053 ScatteringDoit_g,
07054 scat_data_monoCalc_g,
07055 scat_data_rawCheck_g,
07056 Select_sg_ArrayOfIndexArrayOfIndex_g,
07057 Select_sg_ArrayOfArrayOfIndexArrayOfArrayOfIndex_g,
07058 Select_sg_ArrayOfStringArrayOfString_g,
07059 Select_sg_ArrayOfVectorArrayOfVector_g,
07060 Select_sg_ArrayOfMatrixArrayOfMatrix_g,
07061 Select_sg_ArrayOfArrayOfMatrixArrayOfArrayOfMatrix_g,
07062 Select_sg_ArrayOfTensor3ArrayOfTensor3_g,
07063 Select_sg_ArrayOfArrayOfTensor3ArrayOfArrayOfTensor3_g,
07064 Select_sg_ArrayOfTensor4ArrayOfTensor4_g,
07065 Select_sg_ArrayOfTensor6ArrayOfTensor6_g,
07066 Select_sg_ArrayOfTensor7ArrayOfTensor7_g,
07067 Select_sg_ArrayOfArrayOfTensor6ArrayOfArrayOfTensor6_g,
07068 Select_sg_ArrayOfLineRecordArrayOfLineRecord_g,
07069 Select_sg_ArrayOfArrayOfLineRecordArrayOfArrayOfLineRecord_g,
07070 Select_sg_ArrayOfLineshapeSpecArrayOfLineshapeSpec_g,
07071 Select_sg_ArrayOfArrayOfSpeciesTagArrayOfArrayOfSpeciesTag_g,
07072 Select_sg_ArrayOfPpathArrayOfPpath_g,
07073 Select_sg_ArrayOfArrayOfArrayOfArrayOfGridPosArrayOfArrayOfArrayOfArrayOfGridPos_g,
07074 Select_sg_ArrayOfSingleScatteringDataArrayOfSingleScatteringData_g,
07075 Select_sg_ArrayOfGField1ArrayOfGField1_g,
07076 Select_sg_ArrayOfGField2ArrayOfGField2_g,
07077 Select_sg_ArrayOfGField3ArrayOfGField3_g,
07078 Select_sg_ArrayOfGField4ArrayOfGField4_g,
07079 Select_sg_ArrayOfArrayOfGField1ArrayOfArrayOfGField1_g,
07080 Select_sg_ArrayOfArrayOfGField3ArrayOfArrayOfGField3_g,
07081 Select_sg_ArrayOfRetrievalQuantityArrayOfRetrievalQuantity_g,
07082 Select_sg_VectorVector_g,
07083 Select_sg_MatrixMatrix_g,
07084 sensorOff_g,
07085 sensor_posAddGeoidWGS84_g,
07086 sensor_posAddRgeoid_g,
07087 sensor_responseAntenna_g,
07088 sensor_responseBackend_g,
07089 sensor_responseBeamSwitching_g,
07090 sensor_responseIF2RF_g,
07091 sensor_responseInit_g,
07092 sensor_responseMixer_g,
07093 sensor_responseMultiMixerBackend_g,
07094 SparseCreate_g,
07095 StringCreate_g,
07096 StringSet_g,
07097 surfaceBlackbody_g,
07098 surfaceFlatRefractiveIndex_g,
07099 surfaceFlatSingleEmissivity_g,
07100 surfaceFlatVaryingEmissivity_g,
07101 Tensor3Create_g,
07102 Tensor3FillWithVector_g,
07103 Tensor3Scale_g,
07104 Tensor3SetConstant_g,
07105 Tensor4Create_g,
07106 Tensor4Scale_g,
07107 Tensor4SetConstant_g,
07108 Tensor5Create_g,
07109 Tensor5Scale_g,
07110 Tensor5SetConstant_g,
07111 Tensor6Create_g,
07112 Tensor6Scale_g,
07113 Tensor6SetConstant_g,
07114 Tensor6ToPlanckBT_g,
07115 Tensor7Create_g,
07116 Tensor7Scale_g,
07117 Tensor7SetConstant_g,
07118 Test_g,
07119 timerStart_g,
07120 timerStop_g,
07121 VectorAddScalar_g,
07122 VectorCreate_g,
07123 VectorExtractFromMatrix_g,
07124 VectorInsertGridPoints_g,
07125 VectorLinSpace_g,
07126 VectorLogSpace_g,
07127 VectorMatrixMultiply_g,
07128 VectorNLinSpace_g,
07129 VectorNLogSpace_g,
07130 VectorScale_g,
07131 VectorSetConstant_g,
07132 VectorSet_g,
07133 VectorZtanToZaRefr1D_g,
07134 VectorZtanToZa1D_g,
07135 WriteNetCDF_sg_Vector_g,
07136 WriteNetCDF_sg_Matrix_g,
07137 WriteNetCDF_sg_Tensor3_g,
07138 WriteNetCDF_sg_Tensor4_g,
07139 WriteNetCDF_sg_ArrayOfVector_g,
07140 WriteNetCDF_sg_ArrayOfMatrix_g,
07141 WriteXML_sg_Index_g,
07142 WriteXML_sg_Numeric_g,
07143 WriteXML_sg_String_g,
07144 WriteXML_sg_Vector_g,
07145 WriteXML_sg_Matrix_g,
07146 WriteXML_sg_Sparse_g,
07147 WriteXML_sg_Tensor3_g,
07148 WriteXML_sg_Tensor4_g,
07149 WriteXML_sg_Tensor5_g,
07150 WriteXML_sg_Tensor6_g,
07151 WriteXML_sg_Tensor7_g,
07152 WriteXML_sg_Timer_g,
07153 WriteXML_sg_ArrayOfIndex_g,
07154 WriteXML_sg_ArrayOfArrayOfIndex_g,
07155 WriteXML_sg_ArrayOfString_g,
07156 WriteXML_sg_ArrayOfVector_g,
07157 WriteXML_sg_ArrayOfMatrix_g,
07158 WriteXML_sg_ArrayOfArrayOfMatrix_g,
07159 WriteXML_sg_ArrayOfTensor3_g,
07160 WriteXML_sg_ArrayOfArrayOfTensor3_g,
07161 WriteXML_sg_ArrayOfTensor4_g,
07162 WriteXML_sg_ArrayOfTensor6_g,
07163 WriteXML_sg_ArrayOfTensor7_g,
07164 WriteXML_sg_ArrayOfArrayOfTensor6_g,
07165 WriteXML_sg_ArrayOfLineRecord_g,
07166 WriteXML_sg_ArrayOfArrayOfLineRecord_g,
07167 WriteXML_sg_ArrayOfLineshapeSpec_g,
07168 WriteXML_sg_ArrayOfArrayOfSpeciesTag_g,
07169 WriteXML_sg_Ppath_g,
07170 WriteXML_sg_ArrayOfPpath_g,
07171 WriteXML_sg_Agenda_g,
07172 WriteXML_sg_GridPos_g,
07173 WriteXML_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
07174 WriteXML_sg_GasAbsLookup_g,
07175 WriteXML_sg_SingleScatteringData_g,
07176 WriteXML_sg_ArrayOfSingleScatteringData_g,
07177 WriteXML_sg_GField1_g,
07178 WriteXML_sg_GField2_g,
07179 WriteXML_sg_GField3_g,
07180 WriteXML_sg_GField4_g,
07181 WriteXML_sg_ArrayOfGField1_g,
07182 WriteXML_sg_ArrayOfGField2_g,
07183 WriteXML_sg_ArrayOfGField3_g,
07184 WriteXML_sg_ArrayOfGField4_g,
07185 WriteXML_sg_ArrayOfArrayOfGField1_g,
07186 WriteXML_sg_ArrayOfArrayOfGField3_g,
07187 WriteXML_sg_ArrayOfRetrievalQuantity_g,
07188 WriteXML_sg_MCAntenna_g,
07189 WriteXML_sg_SLIData2_g,
07190 WriteXMLIndexed_sg_Index_g,
07191 WriteXMLIndexed_sg_Numeric_g,
07192 WriteXMLIndexed_sg_String_g,
07193 WriteXMLIndexed_sg_Vector_g,
07194 WriteXMLIndexed_sg_Matrix_g,
07195 WriteXMLIndexed_sg_Sparse_g,
07196 WriteXMLIndexed_sg_Tensor3_g,
07197 WriteXMLIndexed_sg_Tensor4_g,
07198 WriteXMLIndexed_sg_Tensor5_g,
07199 WriteXMLIndexed_sg_Tensor6_g,
07200 WriteXMLIndexed_sg_Tensor7_g,
07201 WriteXMLIndexed_sg_Timer_g,
07202 WriteXMLIndexed_sg_ArrayOfIndex_g,
07203 WriteXMLIndexed_sg_ArrayOfArrayOfIndex_g,
07204 WriteXMLIndexed_sg_ArrayOfString_g,
07205 WriteXMLIndexed_sg_ArrayOfVector_g,
07206 WriteXMLIndexed_sg_ArrayOfMatrix_g,
07207 WriteXMLIndexed_sg_ArrayOfArrayOfMatrix_g,
07208 WriteXMLIndexed_sg_ArrayOfTensor3_g,
07209 WriteXMLIndexed_sg_ArrayOfArrayOfTensor3_g,
07210 WriteXMLIndexed_sg_ArrayOfTensor4_g,
07211 WriteXMLIndexed_sg_ArrayOfTensor6_g,
07212 WriteXMLIndexed_sg_ArrayOfTensor7_g,
07213 WriteXMLIndexed_sg_ArrayOfArrayOfTensor6_g,
07214 WriteXMLIndexed_sg_ArrayOfLineRecord_g,
07215 WriteXMLIndexed_sg_ArrayOfArrayOfLineRecord_g,
07216 WriteXMLIndexed_sg_ArrayOfLineshapeSpec_g,
07217 WriteXMLIndexed_sg_ArrayOfArrayOfSpeciesTag_g,
07218 WriteXMLIndexed_sg_Ppath_g,
07219 WriteXMLIndexed_sg_ArrayOfPpath_g,
07220 WriteXMLIndexed_sg_Agenda_g,
07221 WriteXMLIndexed_sg_GridPos_g,
07222 WriteXMLIndexed_sg_ArrayOfArrayOfArrayOfArrayOfGridPos_g,
07223 WriteXMLIndexed_sg_GasAbsLookup_g,
07224 WriteXMLIndexed_sg_SingleScatteringData_g,
07225 WriteXMLIndexed_sg_ArrayOfSingleScatteringData_g,
07226 WriteXMLIndexed_sg_GField1_g,
07227 WriteXMLIndexed_sg_GField2_g,
07228 WriteXMLIndexed_sg_GField3_g,
07229 WriteXMLIndexed_sg_GField4_g,
07230 WriteXMLIndexed_sg_ArrayOfGField1_g,
07231 WriteXMLIndexed_sg_ArrayOfGField2_g,
07232 WriteXMLIndexed_sg_ArrayOfGField3_g,
07233 WriteXMLIndexed_sg_ArrayOfGField4_g,
07234 WriteXMLIndexed_sg_ArrayOfArrayOfGField1_g,
07235 WriteXMLIndexed_sg_ArrayOfArrayOfGField3_g,
07236 WriteXMLIndexed_sg_ArrayOfRetrievalQuantity_g,
07237 WriteXMLIndexed_sg_MCAntenna_g,
07238 WriteXMLIndexed_sg_SLIData2_g,
07239 ybatchCalc_g,
07240 ybatchMetProfiles_g,
07241 ybatchMetProfilesClear_g,
07242 ybatchUnit_g,
07243 yUnit_g,
07244 ZaSatOccultation_g};
07245
07246 void abs_scalar_gas_agendaExecute(
07247
07248 Workspace& ws,
07249
07250 Matrix& abs_scalar_gas,
07251
07252 const Index f_index,
07253 const Numeric rte_pressure,
07254 const Numeric rte_temperature,
07255 const Vector& rte_vmr_list,
07256
07257 const Agenda& input_agenda)
07258 {
07259 extern map<String, Index> AgendaMap;
07260 extern const Array<AgRecord> agenda_data;
07261
07262 const AgRecord& agr =
07263 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07264
07265 const ArrayOfIndex& aout = agr.Out();
07266 ws.push_uninitialized (aout[0], (void *)&abs_scalar_gas);
07267
07268 const ArrayOfIndex& ain = agr.In();
07269 ws.push (ain[0], (void *)&f_index);
07270 ws.push (ain[1], (void *)&rte_pressure);
07271 ws.push (ain[2], (void *)&rte_temperature);
07272 ws.push (ain[3], (void *)&rte_vmr_list);
07273
07274 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07275 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07276
07277 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07278 it != outputs_to_push.end (); it++)
07279 { ws.push (*it, NULL); }
07280
07281 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07282 it != outputs_to_dup.end (); it++)
07283 { ws.duplicate (*it); }
07284
07285 String agenda_error_msg;
07286 bool agenda_failed = false;
07287
07288 try {
07289 input_agenda.execute (ws);
07290 } catch (runtime_error e) {
07291 ostringstream os;
07292 os << "Run-time error in agenda: "
07293 << input_agenda.name() << '\n' << e.what();
07294 agenda_failed = true;
07295 agenda_error_msg = os.str();
07296 }
07297 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07298 it != outputs_to_push.end (); it++)
07299 { ws.pop_free (*it); }
07300
07301 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07302 it != outputs_to_dup.end (); it++)
07303 { ws.pop_free (*it); }
07304
07305 ws.pop (aout[0]);
07306
07307 ws.pop (ain[0]);
07308 ws.pop (ain[1]);
07309 ws.pop (ain[2]);
07310 ws.pop (ain[3]);
07311
07312 if (agenda_failed) throw runtime_error (agenda_error_msg);
07313
07314 }
07315
07316 void doit_conv_test_agendaExecute(
07317
07318 Workspace& ws,
07319
07320 Index& doit_conv_flag,
07321 Index& doit_iteration_counter,
07322
07323 const Tensor6& doit_i_field,
07324 const Tensor6& doit_i_field_old,
07325
07326 const Agenda& input_agenda)
07327 {
07328 extern map<String, Index> AgendaMap;
07329 extern const Array<AgRecord> agenda_data;
07330
07331 const AgRecord& agr =
07332 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07333
07334 const ArrayOfIndex& aout = agr.Out();
07335 ws.push (aout[0], (void *)&doit_conv_flag);
07336 ws.push (aout[1], (void *)&doit_iteration_counter);
07337
07338 const ArrayOfIndex& ain = agr.In();
07339 ws.push (ain[2], (void *)&doit_i_field);
07340 ws.push (ain[3], (void *)&doit_i_field_old);
07341
07342 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07343 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07344
07345 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07346 it != outputs_to_push.end (); it++)
07347 { ws.push (*it, NULL); }
07348
07349 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07350 it != outputs_to_dup.end (); it++)
07351 { ws.duplicate (*it); }
07352
07353 String agenda_error_msg;
07354 bool agenda_failed = false;
07355
07356 try {
07357 input_agenda.execute (ws);
07358 } catch (runtime_error e) {
07359 ostringstream os;
07360 os << "Run-time error in agenda: "
07361 << input_agenda.name() << '\n' << e.what();
07362 agenda_failed = true;
07363 agenda_error_msg = os.str();
07364 }
07365 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07366 it != outputs_to_push.end (); it++)
07367 { ws.pop_free (*it); }
07368
07369 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07370 it != outputs_to_dup.end (); it++)
07371 { ws.pop_free (*it); }
07372
07373 ws.pop (aout[0]);
07374 ws.pop (aout[1]);
07375
07376 ws.pop (ain[2]);
07377 ws.pop (ain[3]);
07378
07379 if (agenda_failed) throw runtime_error (agenda_error_msg);
07380
07381 }
07382
07383 void doit_scat_field_agendaExecute(
07384
07385 Workspace& ws,
07386
07387 Tensor6& doit_scat_field,
07388
07389 const Tensor6& doit_i_field,
07390
07391 const Agenda& input_agenda)
07392 {
07393 extern map<String, Index> AgendaMap;
07394 extern const Array<AgRecord> agenda_data;
07395
07396 const AgRecord& agr =
07397 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07398
07399 const ArrayOfIndex& aout = agr.Out();
07400 ws.push (aout[0], (void *)&doit_scat_field);
07401
07402 const ArrayOfIndex& ain = agr.In();
07403 ws.push (ain[1], (void *)&doit_i_field);
07404
07405 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07406 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07407
07408 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07409 it != outputs_to_push.end (); it++)
07410 { ws.push (*it, NULL); }
07411
07412 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07413 it != outputs_to_dup.end (); it++)
07414 { ws.duplicate (*it); }
07415
07416 String agenda_error_msg;
07417 bool agenda_failed = false;
07418
07419 try {
07420 input_agenda.execute (ws);
07421 } catch (runtime_error e) {
07422 ostringstream os;
07423 os << "Run-time error in agenda: "
07424 << input_agenda.name() << '\n' << e.what();
07425 agenda_failed = true;
07426 agenda_error_msg = os.str();
07427 }
07428 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07429 it != outputs_to_push.end (); it++)
07430 { ws.pop_free (*it); }
07431
07432 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07433 it != outputs_to_dup.end (); it++)
07434 { ws.pop_free (*it); }
07435
07436 ws.pop (aout[0]);
07437
07438 ws.pop (ain[1]);
07439
07440 if (agenda_failed) throw runtime_error (agenda_error_msg);
07441
07442 }
07443
07444 void doit_mono_agendaExecute(
07445
07446 Workspace& ws,
07447
07448 Tensor6& doit_i_field,
07449 Tensor7& scat_i_p,
07450 Tensor7& scat_i_lat,
07451 Tensor7& scat_i_lon,
07452 Tensor4& doit_i_field1D_spectrum,
07453
07454 const Index f_index,
07455
07456 const Agenda& input_agenda)
07457 {
07458 extern map<String, Index> AgendaMap;
07459 extern const Array<AgRecord> agenda_data;
07460
07461 const AgRecord& agr =
07462 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07463
07464 const ArrayOfIndex& aout = agr.Out();
07465 ws.push_uninitialized (aout[0], (void *)&doit_i_field);
07466 ws.push (aout[1], (void *)&scat_i_p);
07467 ws.push (aout[2], (void *)&scat_i_lat);
07468 ws.push (aout[3], (void *)&scat_i_lon);
07469 ws.push_uninitialized (aout[4], (void *)&doit_i_field1D_spectrum);
07470
07471 const ArrayOfIndex& ain = agr.In();
07472 ws.push (ain[0], (void *)&f_index);
07473
07474 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07475 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07476
07477 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07478 it != outputs_to_push.end (); it++)
07479 { ws.push (*it, NULL); }
07480
07481 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07482 it != outputs_to_dup.end (); it++)
07483 { ws.duplicate (*it); }
07484
07485 String agenda_error_msg;
07486 bool agenda_failed = false;
07487
07488 try {
07489 input_agenda.execute (ws);
07490 } catch (runtime_error e) {
07491 ostringstream os;
07492 os << "Run-time error in agenda: "
07493 << input_agenda.name() << '\n' << e.what();
07494 agenda_failed = true;
07495 agenda_error_msg = os.str();
07496 }
07497 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07498 it != outputs_to_push.end (); it++)
07499 { ws.pop_free (*it); }
07500
07501 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07502 it != outputs_to_dup.end (); it++)
07503 { ws.pop_free (*it); }
07504
07505 ws.pop (aout[0]);
07506 ws.pop (aout[1]);
07507 ws.pop (aout[2]);
07508 ws.pop (aout[3]);
07509 ws.pop (aout[4]);
07510
07511 ws.pop (ain[0]);
07512
07513 if (agenda_failed) throw runtime_error (agenda_error_msg);
07514
07515 }
07516
07517 void doit_rte_agendaExecute(
07518
07519 Workspace& ws,
07520
07521 Tensor6& doit_i_field,
07522
07523 const Tensor6& doit_scat_field,
07524
07525 const Agenda& input_agenda)
07526 {
07527 extern map<String, Index> AgendaMap;
07528 extern const Array<AgRecord> agenda_data;
07529
07530 const AgRecord& agr =
07531 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07532
07533 const ArrayOfIndex& aout = agr.Out();
07534 ws.push (aout[0], (void *)&doit_i_field);
07535
07536 const ArrayOfIndex& ain = agr.In();
07537 ws.push (ain[1], (void *)&doit_scat_field);
07538
07539 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07540 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07541
07542 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07543 it != outputs_to_push.end (); it++)
07544 { ws.push (*it, NULL); }
07545
07546 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07547 it != outputs_to_dup.end (); it++)
07548 { ws.duplicate (*it); }
07549
07550 String agenda_error_msg;
07551 bool agenda_failed = false;
07552
07553 try {
07554 input_agenda.execute (ws);
07555 } catch (runtime_error e) {
07556 ostringstream os;
07557 os << "Run-time error in agenda: "
07558 << input_agenda.name() << '\n' << e.what();
07559 agenda_failed = true;
07560 agenda_error_msg = os.str();
07561 }
07562 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07563 it != outputs_to_push.end (); it++)
07564 { ws.pop_free (*it); }
07565
07566 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07567 it != outputs_to_dup.end (); it++)
07568 { ws.pop_free (*it); }
07569
07570 ws.pop (aout[0]);
07571
07572 ws.pop (ain[1]);
07573
07574 if (agenda_failed) throw runtime_error (agenda_error_msg);
07575
07576 }
07577
07578 void emission_agendaExecute(
07579
07580 Workspace& ws,
07581
07582 Vector& emission,
07583
07584 const Numeric rte_temperature,
07585
07586 const Agenda& input_agenda)
07587 {
07588 extern map<String, Index> AgendaMap;
07589 extern const Array<AgRecord> agenda_data;
07590
07591 const AgRecord& agr =
07592 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07593
07594 const ArrayOfIndex& aout = agr.Out();
07595 ws.push_uninitialized (aout[0], (void *)&emission);
07596
07597 const ArrayOfIndex& ain = agr.In();
07598 ws.push (ain[0], (void *)&rte_temperature);
07599
07600 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07601 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07602
07603 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07604 it != outputs_to_push.end (); it++)
07605 { ws.push (*it, NULL); }
07606
07607 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07608 it != outputs_to_dup.end (); it++)
07609 { ws.duplicate (*it); }
07610
07611 String agenda_error_msg;
07612 bool agenda_failed = false;
07613
07614 try {
07615 input_agenda.execute (ws);
07616 } catch (runtime_error e) {
07617 ostringstream os;
07618 os << "Run-time error in agenda: "
07619 << input_agenda.name() << '\n' << e.what();
07620 agenda_failed = true;
07621 agenda_error_msg = os.str();
07622 }
07623 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07624 it != outputs_to_push.end (); it++)
07625 { ws.pop_free (*it); }
07626
07627 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07628 it != outputs_to_dup.end (); it++)
07629 { ws.pop_free (*it); }
07630
07631 ws.pop (aout[0]);
07632
07633 ws.pop (ain[0]);
07634
07635 if (agenda_failed) throw runtime_error (agenda_error_msg);
07636
07637 }
07638
07639 void forloop_agendaExecute(
07640
07641 Workspace& ws,
07642
07643
07644 const Index forloop_index,
07645
07646 const Agenda& input_agenda)
07647 {
07648 extern map<String, Index> AgendaMap;
07649 extern const Array<AgRecord> agenda_data;
07650
07651 const AgRecord& agr =
07652 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07653
07654 const ArrayOfIndex& ain = agr.In();
07655 ws.push (ain[0], (void *)&forloop_index);
07656
07657 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07658 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07659
07660 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07661 it != outputs_to_push.end (); it++)
07662 { ws.push (*it, NULL); }
07663
07664 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07665 it != outputs_to_dup.end (); it++)
07666 { ws.duplicate (*it); }
07667
07668 String agenda_error_msg;
07669 bool agenda_failed = false;
07670
07671 try {
07672 input_agenda.execute (ws);
07673 } catch (runtime_error e) {
07674 ostringstream os;
07675 os << "Run-time error in agenda: "
07676 << input_agenda.name() << '\n' << e.what();
07677 agenda_failed = true;
07678 agenda_error_msg = os.str();
07679 }
07680 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07681 it != outputs_to_push.end (); it++)
07682 { ws.pop_free (*it); }
07683
07684 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07685 it != outputs_to_dup.end (); it++)
07686 { ws.pop_free (*it); }
07687
07688 ws.pop (ain[0]);
07689
07690 if (agenda_failed) throw runtime_error (agenda_error_msg);
07691
07692 }
07693
07694 void iy_cloudbox_agendaExecute(
07695
07696 Workspace& ws,
07697
07698 Matrix& iy,
07699
07700 const Ppath& ppath,
07701 const Vector& rte_pos,
07702 const Vector& rte_los,
07703 const GridPos& rte_gp_p,
07704 const GridPos& rte_gp_lat,
07705 const GridPos& rte_gp_lon,
07706
07707 const Agenda& input_agenda)
07708 {
07709 extern map<String, Index> AgendaMap;
07710 extern const Array<AgRecord> agenda_data;
07711
07712 const AgRecord& agr =
07713 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07714
07715 const ArrayOfIndex& aout = agr.Out();
07716 ws.push_uninitialized (aout[0], (void *)&iy);
07717
07718 const ArrayOfIndex& ain = agr.In();
07719 ws.push (ain[0], (void *)&ppath);
07720 ws.push (ain[1], (void *)&rte_pos);
07721 ws.push (ain[2], (void *)&rte_los);
07722 ws.push (ain[3], (void *)&rte_gp_p);
07723 ws.push (ain[4], (void *)&rte_gp_lat);
07724 ws.push (ain[5], (void *)&rte_gp_lon);
07725
07726 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07727 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07728
07729 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07730 it != outputs_to_push.end (); it++)
07731 { ws.push (*it, NULL); }
07732
07733 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07734 it != outputs_to_dup.end (); it++)
07735 { ws.duplicate (*it); }
07736
07737 String agenda_error_msg;
07738 bool agenda_failed = false;
07739
07740 try {
07741 input_agenda.execute (ws);
07742 } catch (runtime_error e) {
07743 ostringstream os;
07744 os << "Run-time error in agenda: "
07745 << input_agenda.name() << '\n' << e.what();
07746 agenda_failed = true;
07747 agenda_error_msg = os.str();
07748 }
07749 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07750 it != outputs_to_push.end (); it++)
07751 { ws.pop_free (*it); }
07752
07753 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07754 it != outputs_to_dup.end (); it++)
07755 { ws.pop_free (*it); }
07756
07757 ws.pop (aout[0]);
07758
07759 ws.pop (ain[0]);
07760 ws.pop (ain[1]);
07761 ws.pop (ain[2]);
07762 ws.pop (ain[3]);
07763 ws.pop (ain[4]);
07764 ws.pop (ain[5]);
07765
07766 if (agenda_failed) throw runtime_error (agenda_error_msg);
07767
07768 }
07769
07770 void iy_space_agendaExecute(
07771
07772 Workspace& ws,
07773
07774 Matrix& iy,
07775
07776 const Vector& rte_pos,
07777 const Vector& rte_los,
07778
07779 const Agenda& input_agenda)
07780 {
07781 extern map<String, Index> AgendaMap;
07782 extern const Array<AgRecord> agenda_data;
07783
07784 const AgRecord& agr =
07785 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07786
07787 const ArrayOfIndex& aout = agr.Out();
07788 ws.push_uninitialized (aout[0], (void *)&iy);
07789
07790 const ArrayOfIndex& ain = agr.In();
07791 ws.push (ain[0], (void *)&rte_pos);
07792 ws.push (ain[1], (void *)&rte_los);
07793
07794 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07795 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07796
07797 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07798 it != outputs_to_push.end (); it++)
07799 { ws.push (*it, NULL); }
07800
07801 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07802 it != outputs_to_dup.end (); it++)
07803 { ws.duplicate (*it); }
07804
07805 String agenda_error_msg;
07806 bool agenda_failed = false;
07807
07808 try {
07809 input_agenda.execute (ws);
07810 } catch (runtime_error e) {
07811 ostringstream os;
07812 os << "Run-time error in agenda: "
07813 << input_agenda.name() << '\n' << e.what();
07814 agenda_failed = true;
07815 agenda_error_msg = os.str();
07816 }
07817 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07818 it != outputs_to_push.end (); it++)
07819 { ws.pop_free (*it); }
07820
07821 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07822 it != outputs_to_dup.end (); it++)
07823 { ws.pop_free (*it); }
07824
07825 ws.pop (aout[0]);
07826
07827 ws.pop (ain[0]);
07828 ws.pop (ain[1]);
07829
07830 if (agenda_failed) throw runtime_error (agenda_error_msg);
07831
07832 }
07833
07834 void jacobian_agendaExecute(
07835
07836 Workspace& ws,
07837
07838 Matrix& jacobian,
07839
07840
07841 const Agenda& input_agenda)
07842 {
07843 extern map<String, Index> AgendaMap;
07844 extern const Array<AgRecord> agenda_data;
07845
07846 const AgRecord& agr =
07847 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07848
07849 const ArrayOfIndex& aout = agr.Out();
07850 ws.push_uninitialized (aout[0], (void *)&jacobian);
07851
07852 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07853 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07854
07855 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07856 it != outputs_to_push.end (); it++)
07857 { ws.push (*it, NULL); }
07858
07859 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07860 it != outputs_to_dup.end (); it++)
07861 { ws.duplicate (*it); }
07862
07863 String agenda_error_msg;
07864 bool agenda_failed = false;
07865
07866 try {
07867 input_agenda.execute (ws);
07868 } catch (runtime_error e) {
07869 ostringstream os;
07870 os << "Run-time error in agenda: "
07871 << input_agenda.name() << '\n' << e.what();
07872 agenda_failed = true;
07873 agenda_error_msg = os.str();
07874 }
07875 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07876 it != outputs_to_push.end (); it++)
07877 { ws.pop_free (*it); }
07878
07879 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07880 it != outputs_to_dup.end (); it++)
07881 { ws.pop_free (*it); }
07882
07883 ws.pop (aout[0]);
07884
07885 if (agenda_failed) throw runtime_error (agenda_error_msg);
07886
07887 }
07888
07889 void jacobian_y_agendaExecute(
07890
07891 Workspace& ws,
07892
07893 Vector& y,
07894
07895 const Tensor4& vmr_field,
07896 const Tensor3& t_field,
07897 const Tensor4& pnd_field,
07898 const Matrix& sensor_los,
07899
07900 const Agenda& input_agenda)
07901 {
07902 extern map<String, Index> AgendaMap;
07903 extern const Array<AgRecord> agenda_data;
07904
07905 const AgRecord& agr =
07906 agenda_data[AgendaMap.find (input_agenda.name ())->second];
07907
07908 const ArrayOfIndex& aout = agr.Out();
07909 ws.push_uninitialized (aout[0], (void *)&y);
07910
07911 const ArrayOfIndex& ain = agr.In();
07912 ws.push (ain[0], (void *)&vmr_field);
07913 ws.push (ain[1], (void *)&t_field);
07914 ws.push (ain[2], (void *)&pnd_field);
07915 ws.push (ain[3], (void *)&sensor_los);
07916
07917 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07918 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07919
07920 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07921 it != outputs_to_push.end (); it++)
07922 { ws.push (*it, NULL); }
07923
07924 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07925 it != outputs_to_dup.end (); it++)
07926 { ws.duplicate (*it); }
07927
07928 String agenda_error_msg;
07929 bool agenda_failed = false;
07930
07931 try {
07932 input_agenda.execute (ws);
07933 } catch (runtime_error e) {
07934 ostringstream os;
07935 os << "Run-time error in agenda: "
07936 << input_agenda.name() << '\n' << e.what();
07937 agenda_failed = true;
07938 agenda_error_msg = os.str();
07939 }
07940 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07941 it != outputs_to_push.end (); it++)
07942 { ws.pop_free (*it); }
07943
07944 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07945 it != outputs_to_dup.end (); it++)
07946 { ws.pop_free (*it); }
07947
07948 ws.pop (aout[0]);
07949
07950 ws.pop (ain[0]);
07951 ws.pop (ain[1]);
07952 ws.pop (ain[2]);
07953 ws.pop (ain[3]);
07954
07955 if (agenda_failed) throw runtime_error (agenda_error_msg);
07956
07957 }
07958
07959 void main_agendaExecute(
07960
07961 Workspace& ws,
07962
07963
07964
07965 const Agenda& input_agenda)
07966 {
07967 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
07968 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
07969
07970 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07971 it != outputs_to_push.end (); it++)
07972 { ws.push (*it, NULL); }
07973
07974 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07975 it != outputs_to_dup.end (); it++)
07976 { ws.duplicate (*it); }
07977
07978 String agenda_error_msg;
07979 bool agenda_failed = false;
07980
07981 try {
07982 input_agenda.execute (ws);
07983 } catch (runtime_error e) {
07984 ostringstream os;
07985 os << "Run-time error in agenda: "
07986 << input_agenda.name() << '\n' << e.what();
07987 agenda_failed = true;
07988 agenda_error_msg = os.str();
07989 }
07990 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
07991 it != outputs_to_push.end (); it++)
07992 { ws.pop_free (*it); }
07993
07994 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
07995 it != outputs_to_dup.end (); it++)
07996 { ws.pop_free (*it); }
07997
07998 if (agenda_failed) throw runtime_error (agenda_error_msg);
07999
08000 }
08001
08002 void met_profile_calc_agendaExecute(
08003
08004 Workspace& ws,
08005
08006 Vector& y,
08007
08008 const GField3& t_field_raw,
08009 const ArrayOfGField3& vmr_field_raw,
08010 const GField3& z_field_raw,
08011 const ArrayOfGField3& pnd_field_raw,
08012 const Vector& p_grid,
08013 const Matrix& sensor_los,
08014 const Index cloudbox_on,
08015 const ArrayOfIndex& cloudbox_limits,
08016 const Matrix& z_surface,
08017
08018 const Agenda& input_agenda)
08019 {
08020 extern map<String, Index> AgendaMap;
08021 extern const Array<AgRecord> agenda_data;
08022
08023 const AgRecord& agr =
08024 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08025
08026 const ArrayOfIndex& aout = agr.Out();
08027 ws.push_uninitialized (aout[0], (void *)&y);
08028
08029 const ArrayOfIndex& ain = agr.In();
08030 ws.push (ain[0], (void *)&t_field_raw);
08031 ws.push (ain[1], (void *)&vmr_field_raw);
08032 ws.push (ain[2], (void *)&z_field_raw);
08033 ws.push (ain[3], (void *)&pnd_field_raw);
08034 ws.push (ain[4], (void *)&p_grid);
08035 ws.push (ain[5], (void *)&sensor_los);
08036 ws.push (ain[6], (void *)&cloudbox_on);
08037 ws.push (ain[7], (void *)&cloudbox_limits);
08038 ws.push (ain[8], (void *)&z_surface);
08039
08040 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08041 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08042
08043 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08044 it != outputs_to_push.end (); it++)
08045 { ws.push (*it, NULL); }
08046
08047 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08048 it != outputs_to_dup.end (); it++)
08049 { ws.duplicate (*it); }
08050
08051 String agenda_error_msg;
08052 bool agenda_failed = false;
08053
08054 try {
08055 input_agenda.execute (ws);
08056 } catch (runtime_error e) {
08057 ostringstream os;
08058 os << "Run-time error in agenda: "
08059 << input_agenda.name() << '\n' << e.what();
08060 agenda_failed = true;
08061 agenda_error_msg = os.str();
08062 }
08063 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08064 it != outputs_to_push.end (); it++)
08065 { ws.pop_free (*it); }
08066
08067 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08068 it != outputs_to_dup.end (); it++)
08069 { ws.pop_free (*it); }
08070
08071 ws.pop (aout[0]);
08072
08073 ws.pop (ain[0]);
08074 ws.pop (ain[1]);
08075 ws.pop (ain[2]);
08076 ws.pop (ain[3]);
08077 ws.pop (ain[4]);
08078 ws.pop (ain[5]);
08079 ws.pop (ain[6]);
08080 ws.pop (ain[7]);
08081 ws.pop (ain[8]);
08082
08083 if (agenda_failed) throw runtime_error (agenda_error_msg);
08084
08085 }
08086
08087 void opt_prop_gas_agendaExecute(
08088
08089 Workspace& ws,
08090
08091 Tensor3& ext_mat,
08092 Matrix& abs_vec,
08093
08094 const Index f_index,
08095 const Matrix& abs_scalar_gas,
08096
08097 const Agenda& input_agenda)
08098 {
08099 extern map<String, Index> AgendaMap;
08100 extern const Array<AgRecord> agenda_data;
08101
08102 const AgRecord& agr =
08103 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08104
08105 const ArrayOfIndex& aout = agr.Out();
08106 ws.push (aout[0], (void *)&ext_mat);
08107 ws.push (aout[1], (void *)&abs_vec);
08108
08109 const ArrayOfIndex& ain = agr.In();
08110 ws.push (ain[2], (void *)&f_index);
08111 ws.push (ain[3], (void *)&abs_scalar_gas);
08112
08113 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08114 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08115
08116 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08117 it != outputs_to_push.end (); it++)
08118 { ws.push (*it, NULL); }
08119
08120 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08121 it != outputs_to_dup.end (); it++)
08122 { ws.duplicate (*it); }
08123
08124 String agenda_error_msg;
08125 bool agenda_failed = false;
08126
08127 try {
08128 input_agenda.execute (ws);
08129 } catch (runtime_error e) {
08130 ostringstream os;
08131 os << "Run-time error in agenda: "
08132 << input_agenda.name() << '\n' << e.what();
08133 agenda_failed = true;
08134 agenda_error_msg = os.str();
08135 }
08136 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08137 it != outputs_to_push.end (); it++)
08138 { ws.pop_free (*it); }
08139
08140 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08141 it != outputs_to_dup.end (); it++)
08142 { ws.pop_free (*it); }
08143
08144 ws.pop (aout[0]);
08145 ws.pop (aout[1]);
08146
08147 ws.pop (ain[2]);
08148 ws.pop (ain[3]);
08149
08150 if (agenda_failed) throw runtime_error (agenda_error_msg);
08151
08152 }
08153
08154 void opt_prop_part_agendaExecute(
08155
08156 Workspace& ws,
08157
08158 Tensor3& ext_mat,
08159 Matrix& abs_vec,
08160
08161 const Tensor3& ext_mat_spt,
08162 const Matrix& abs_vec_spt,
08163 const Index scat_p_index,
08164 const Index scat_lat_index,
08165 const Index scat_lon_index,
08166
08167 const Agenda& input_agenda)
08168 {
08169 extern map<String, Index> AgendaMap;
08170 extern const Array<AgRecord> agenda_data;
08171
08172 const AgRecord& agr =
08173 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08174
08175 const ArrayOfIndex& aout = agr.Out();
08176 ws.push (aout[0], (void *)&ext_mat);
08177 ws.push (aout[1], (void *)&abs_vec);
08178
08179 const ArrayOfIndex& ain = agr.In();
08180 ws.push (ain[2], (void *)&ext_mat_spt);
08181 ws.push (ain[3], (void *)&abs_vec_spt);
08182 ws.push (ain[4], (void *)&scat_p_index);
08183 ws.push (ain[5], (void *)&scat_lat_index);
08184 ws.push (ain[6], (void *)&scat_lon_index);
08185
08186 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08187 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08188
08189 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08190 it != outputs_to_push.end (); it++)
08191 { ws.push (*it, NULL); }
08192
08193 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08194 it != outputs_to_dup.end (); it++)
08195 { ws.duplicate (*it); }
08196
08197 String agenda_error_msg;
08198 bool agenda_failed = false;
08199
08200 try {
08201 input_agenda.execute (ws);
08202 } catch (runtime_error e) {
08203 ostringstream os;
08204 os << "Run-time error in agenda: "
08205 << input_agenda.name() << '\n' << e.what();
08206 agenda_failed = true;
08207 agenda_error_msg = os.str();
08208 }
08209 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08210 it != outputs_to_push.end (); it++)
08211 { ws.pop_free (*it); }
08212
08213 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08214 it != outputs_to_dup.end (); it++)
08215 { ws.pop_free (*it); }
08216
08217 ws.pop (aout[0]);
08218 ws.pop (aout[1]);
08219
08220 ws.pop (ain[2]);
08221 ws.pop (ain[3]);
08222 ws.pop (ain[4]);
08223 ws.pop (ain[5]);
08224 ws.pop (ain[6]);
08225
08226 if (agenda_failed) throw runtime_error (agenda_error_msg);
08227
08228 }
08229
08230 void pha_mat_spt_agendaExecute(
08231
08232 Workspace& ws,
08233
08234 Tensor5& pha_mat_spt,
08235
08236 const Index scat_za_index,
08237 const Index scat_lat_index,
08238 const Index scat_lon_index,
08239 const Index scat_p_index,
08240 const Index scat_aa_index,
08241 const Numeric rte_temperature,
08242
08243 const Agenda& input_agenda)
08244 {
08245 extern map<String, Index> AgendaMap;
08246 extern const Array<AgRecord> agenda_data;
08247
08248 const AgRecord& agr =
08249 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08250
08251 const ArrayOfIndex& aout = agr.Out();
08252 ws.push (aout[0], (void *)&pha_mat_spt);
08253
08254 const ArrayOfIndex& ain = agr.In();
08255 ws.push (ain[1], (void *)&scat_za_index);
08256 ws.push (ain[2], (void *)&scat_lat_index);
08257 ws.push (ain[3], (void *)&scat_lon_index);
08258 ws.push (ain[4], (void *)&scat_p_index);
08259 ws.push (ain[5], (void *)&scat_aa_index);
08260 ws.push (ain[6], (void *)&rte_temperature);
08261
08262 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08263 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08264
08265 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08266 it != outputs_to_push.end (); it++)
08267 { ws.push (*it, NULL); }
08268
08269 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08270 it != outputs_to_dup.end (); it++)
08271 { ws.duplicate (*it); }
08272
08273 String agenda_error_msg;
08274 bool agenda_failed = false;
08275
08276 try {
08277 input_agenda.execute (ws);
08278 } catch (runtime_error e) {
08279 ostringstream os;
08280 os << "Run-time error in agenda: "
08281 << input_agenda.name() << '\n' << e.what();
08282 agenda_failed = true;
08283 agenda_error_msg = os.str();
08284 }
08285 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08286 it != outputs_to_push.end (); it++)
08287 { ws.pop_free (*it); }
08288
08289 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08290 it != outputs_to_dup.end (); it++)
08291 { ws.pop_free (*it); }
08292
08293 ws.pop (aout[0]);
08294
08295 ws.pop (ain[1]);
08296 ws.pop (ain[2]);
08297 ws.pop (ain[3]);
08298 ws.pop (ain[4]);
08299 ws.pop (ain[5]);
08300 ws.pop (ain[6]);
08301
08302 if (agenda_failed) throw runtime_error (agenda_error_msg);
08303
08304 }
08305
08306 void ppath_step_agendaExecute(
08307
08308 Workspace& ws,
08309
08310 Ppath& ppath_step,
08311
08312 const Index atmosphere_dim,
08313 const Vector& p_grid,
08314 const Vector& lat_grid,
08315 const Vector& lon_grid,
08316 const Tensor3& z_field,
08317 const Matrix& r_geoid,
08318 const Matrix& z_surface,
08319
08320 const Agenda& input_agenda)
08321 {
08322 extern map<String, Index> AgendaMap;
08323 extern const Array<AgRecord> agenda_data;
08324
08325 const AgRecord& agr =
08326 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08327
08328 const ArrayOfIndex& aout = agr.Out();
08329 ws.push (aout[0], (void *)&ppath_step);
08330
08331 const ArrayOfIndex& ain = agr.In();
08332 ws.push (ain[1], (void *)&atmosphere_dim);
08333 ws.push (ain[2], (void *)&p_grid);
08334 ws.push (ain[3], (void *)&lat_grid);
08335 ws.push (ain[4], (void *)&lon_grid);
08336 ws.push (ain[5], (void *)&z_field);
08337 ws.push (ain[6], (void *)&r_geoid);
08338 ws.push (ain[7], (void *)&z_surface);
08339
08340 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08341 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08342
08343 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08344 it != outputs_to_push.end (); it++)
08345 { ws.push (*it, NULL); }
08346
08347 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08348 it != outputs_to_dup.end (); it++)
08349 { ws.duplicate (*it); }
08350
08351 String agenda_error_msg;
08352 bool agenda_failed = false;
08353
08354 try {
08355 input_agenda.execute (ws);
08356 } catch (runtime_error e) {
08357 ostringstream os;
08358 os << "Run-time error in agenda: "
08359 << input_agenda.name() << '\n' << e.what();
08360 agenda_failed = true;
08361 agenda_error_msg = os.str();
08362 }
08363 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08364 it != outputs_to_push.end (); it++)
08365 { ws.pop_free (*it); }
08366
08367 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08368 it != outputs_to_dup.end (); it++)
08369 { ws.pop_free (*it); }
08370
08371 ws.pop (aout[0]);
08372
08373 ws.pop (ain[1]);
08374 ws.pop (ain[2]);
08375 ws.pop (ain[3]);
08376 ws.pop (ain[4]);
08377 ws.pop (ain[5]);
08378 ws.pop (ain[6]);
08379 ws.pop (ain[7]);
08380
08381 if (agenda_failed) throw runtime_error (agenda_error_msg);
08382
08383 }
08384
08385 void refr_index_agendaExecute(
08386
08387 Workspace& ws,
08388
08389 Numeric& refr_index,
08390
08391 const Numeric rte_pressure,
08392 const Numeric rte_temperature,
08393 const Vector& rte_vmr_list,
08394
08395 const Agenda& input_agenda)
08396 {
08397 extern map<String, Index> AgendaMap;
08398 extern const Array<AgRecord> agenda_data;
08399
08400 const AgRecord& agr =
08401 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08402
08403 const ArrayOfIndex& aout = agr.Out();
08404 ws.push_uninitialized (aout[0], (void *)&refr_index);
08405
08406 const ArrayOfIndex& ain = agr.In();
08407 ws.push (ain[0], (void *)&rte_pressure);
08408 ws.push (ain[1], (void *)&rte_temperature);
08409 ws.push (ain[2], (void *)&rte_vmr_list);
08410
08411 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08412 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08413
08414 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08415 it != outputs_to_push.end (); it++)
08416 { ws.push (*it, NULL); }
08417
08418 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08419 it != outputs_to_dup.end (); it++)
08420 { ws.duplicate (*it); }
08421
08422 String agenda_error_msg;
08423 bool agenda_failed = false;
08424
08425 try {
08426 input_agenda.execute (ws);
08427 } catch (runtime_error e) {
08428 ostringstream os;
08429 os << "Run-time error in agenda: "
08430 << input_agenda.name() << '\n' << e.what();
08431 agenda_failed = true;
08432 agenda_error_msg = os.str();
08433 }
08434 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08435 it != outputs_to_push.end (); it++)
08436 { ws.pop_free (*it); }
08437
08438 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08439 it != outputs_to_dup.end (); it++)
08440 { ws.pop_free (*it); }
08441
08442 ws.pop (aout[0]);
08443
08444 ws.pop (ain[0]);
08445 ws.pop (ain[1]);
08446 ws.pop (ain[2]);
08447
08448 if (agenda_failed) throw runtime_error (agenda_error_msg);
08449
08450 }
08451
08452 void rte_agendaExecute(
08453
08454 Workspace& ws,
08455
08456 Matrix& iy,
08457 ArrayOfTensor4& diy_dvmr,
08458 ArrayOfTensor4& diy_dt,
08459
08460 const Ppath& ppath,
08461 const ArrayOfPpath& ppath_array,
08462 const Index ppath_array_index,
08463 const ArrayOfIndex& rte_do_vmr_jacs,
08464 const Index rte_do_t_jacs,
08465 const Index stokes_dim,
08466 const Vector& f_grid,
08467
08468 const Agenda& input_agenda)
08469 {
08470 extern map<String, Index> AgendaMap;
08471 extern const Array<AgRecord> agenda_data;
08472
08473 const AgRecord& agr =
08474 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08475
08476 const ArrayOfIndex& aout = agr.Out();
08477 ws.push (aout[0], (void *)&iy);
08478 ws.push (aout[1], (void *)&diy_dvmr);
08479 ws.push (aout[2], (void *)&diy_dt);
08480
08481 const ArrayOfIndex& ain = agr.In();
08482 ws.push (ain[3], (void *)&ppath);
08483 ws.push (ain[4], (void *)&ppath_array);
08484 ws.push (ain[5], (void *)&ppath_array_index);
08485 ws.push (ain[6], (void *)&rte_do_vmr_jacs);
08486 ws.push (ain[7], (void *)&rte_do_t_jacs);
08487 ws.push (ain[8], (void *)&stokes_dim);
08488 ws.push (ain[9], (void *)&f_grid);
08489
08490 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08491 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08492
08493 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08494 it != outputs_to_push.end (); it++)
08495 { ws.push (*it, NULL); }
08496
08497 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08498 it != outputs_to_dup.end (); it++)
08499 { ws.duplicate (*it); }
08500
08501 String agenda_error_msg;
08502 bool agenda_failed = false;
08503
08504 try {
08505 input_agenda.execute (ws);
08506 } catch (runtime_error e) {
08507 ostringstream os;
08508 os << "Run-time error in agenda: "
08509 << input_agenda.name() << '\n' << e.what();
08510 agenda_failed = true;
08511 agenda_error_msg = os.str();
08512 }
08513 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08514 it != outputs_to_push.end (); it++)
08515 { ws.pop_free (*it); }
08516
08517 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08518 it != outputs_to_dup.end (); it++)
08519 { ws.pop_free (*it); }
08520
08521 ws.pop (aout[0]);
08522 ws.pop (aout[1]);
08523 ws.pop (aout[2]);
08524
08525 ws.pop (ain[3]);
08526 ws.pop (ain[4]);
08527 ws.pop (ain[5]);
08528 ws.pop (ain[6]);
08529 ws.pop (ain[7]);
08530 ws.pop (ain[8]);
08531 ws.pop (ain[9]);
08532
08533 if (agenda_failed) throw runtime_error (agenda_error_msg);
08534
08535 }
08536
08537 void spt_calc_agendaExecute(
08538
08539 Workspace& ws,
08540
08541 Tensor3& ext_mat_spt,
08542 Matrix& abs_vec_spt,
08543
08544 const Index scat_p_index,
08545 const Index scat_lat_index,
08546 const Index scat_lon_index,
08547 const Numeric rte_temperature,
08548 const Index scat_za_index,
08549 const Index scat_aa_index,
08550
08551 const Agenda& input_agenda)
08552 {
08553 extern map<String, Index> AgendaMap;
08554 extern const Array<AgRecord> agenda_data;
08555
08556 const AgRecord& agr =
08557 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08558
08559 const ArrayOfIndex& aout = agr.Out();
08560 ws.push (aout[0], (void *)&ext_mat_spt);
08561 ws.push (aout[1], (void *)&abs_vec_spt);
08562
08563 const ArrayOfIndex& ain = agr.In();
08564 ws.push (ain[2], (void *)&scat_p_index);
08565 ws.push (ain[3], (void *)&scat_lat_index);
08566 ws.push (ain[4], (void *)&scat_lon_index);
08567 ws.push (ain[5], (void *)&rte_temperature);
08568 ws.push (ain[6], (void *)&scat_za_index);
08569 ws.push (ain[7], (void *)&scat_aa_index);
08570
08571 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08572 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08573
08574 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08575 it != outputs_to_push.end (); it++)
08576 { ws.push (*it, NULL); }
08577
08578 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08579 it != outputs_to_dup.end (); it++)
08580 { ws.duplicate (*it); }
08581
08582 String agenda_error_msg;
08583 bool agenda_failed = false;
08584
08585 try {
08586 input_agenda.execute (ws);
08587 } catch (runtime_error e) {
08588 ostringstream os;
08589 os << "Run-time error in agenda: "
08590 << input_agenda.name() << '\n' << e.what();
08591 agenda_failed = true;
08592 agenda_error_msg = os.str();
08593 }
08594 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08595 it != outputs_to_push.end (); it++)
08596 { ws.pop_free (*it); }
08597
08598 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08599 it != outputs_to_dup.end (); it++)
08600 { ws.pop_free (*it); }
08601
08602 ws.pop (aout[0]);
08603 ws.pop (aout[1]);
08604
08605 ws.pop (ain[2]);
08606 ws.pop (ain[3]);
08607 ws.pop (ain[4]);
08608 ws.pop (ain[5]);
08609 ws.pop (ain[6]);
08610 ws.pop (ain[7]);
08611
08612 if (agenda_failed) throw runtime_error (agenda_error_msg);
08613
08614 }
08615
08616 void surface_prop_agendaExecute(
08617
08618 Workspace& ws,
08619
08620 Matrix& surface_emission,
08621 Matrix& surface_los,
08622 Tensor4& surface_rmatrix,
08623
08624 const Vector& rte_pos,
08625 const Vector& rte_los,
08626 const GridPos& rte_gp_p,
08627 const GridPos& rte_gp_lat,
08628 const GridPos& rte_gp_lon,
08629
08630 const Agenda& input_agenda)
08631 {
08632 extern map<String, Index> AgendaMap;
08633 extern const Array<AgRecord> agenda_data;
08634
08635 const AgRecord& agr =
08636 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08637
08638 const ArrayOfIndex& aout = agr.Out();
08639 ws.push_uninitialized (aout[0], (void *)&surface_emission);
08640 ws.push_uninitialized (aout[1], (void *)&surface_los);
08641 ws.push_uninitialized (aout[2], (void *)&surface_rmatrix);
08642
08643 const ArrayOfIndex& ain = agr.In();
08644 ws.push (ain[0], (void *)&rte_pos);
08645 ws.push (ain[1], (void *)&rte_los);
08646 ws.push (ain[2], (void *)&rte_gp_p);
08647 ws.push (ain[3], (void *)&rte_gp_lat);
08648 ws.push (ain[4], (void *)&rte_gp_lon);
08649
08650 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08651 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08652
08653 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08654 it != outputs_to_push.end (); it++)
08655 { ws.push (*it, NULL); }
08656
08657 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08658 it != outputs_to_dup.end (); it++)
08659 { ws.duplicate (*it); }
08660
08661 String agenda_error_msg;
08662 bool agenda_failed = false;
08663
08664 try {
08665 input_agenda.execute (ws);
08666 } catch (runtime_error e) {
08667 ostringstream os;
08668 os << "Run-time error in agenda: "
08669 << input_agenda.name() << '\n' << e.what();
08670 agenda_failed = true;
08671 agenda_error_msg = os.str();
08672 }
08673 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08674 it != outputs_to_push.end (); it++)
08675 { ws.pop_free (*it); }
08676
08677 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08678 it != outputs_to_dup.end (); it++)
08679 { ws.pop_free (*it); }
08680
08681 ws.pop (aout[0]);
08682 ws.pop (aout[1]);
08683 ws.pop (aout[2]);
08684
08685 ws.pop (ain[0]);
08686 ws.pop (ain[1]);
08687 ws.pop (ain[2]);
08688 ws.pop (ain[3]);
08689 ws.pop (ain[4]);
08690
08691 if (agenda_failed) throw runtime_error (agenda_error_msg);
08692
08693 }
08694
08695 void ybatch_calc_agendaExecute(
08696
08697 Workspace& ws,
08698
08699 Vector& y,
08700
08701 const Index ybatch_index,
08702
08703 const Agenda& input_agenda)
08704 {
08705 extern map<String, Index> AgendaMap;
08706 extern const Array<AgRecord> agenda_data;
08707
08708 const AgRecord& agr =
08709 agenda_data[AgendaMap.find (input_agenda.name ())->second];
08710
08711 const ArrayOfIndex& aout = agr.Out();
08712 ws.push_uninitialized (aout[0], (void *)&y);
08713
08714 const ArrayOfIndex& ain = agr.In();
08715 ws.push (ain[0], (void *)&ybatch_index);
08716
08717 const ArrayOfIndex& outputs_to_push = input_agenda.get_output2push();
08718 const ArrayOfIndex& outputs_to_dup = input_agenda.get_output2dup();
08719
08720 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08721 it != outputs_to_push.end (); it++)
08722 { ws.push (*it, NULL); }
08723
08724 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08725 it != outputs_to_dup.end (); it++)
08726 { ws.duplicate (*it); }
08727
08728 String agenda_error_msg;
08729 bool agenda_failed = false;
08730
08731 try {
08732 input_agenda.execute (ws);
08733 } catch (runtime_error e) {
08734 ostringstream os;
08735 os << "Run-time error in agenda: "
08736 << input_agenda.name() << '\n' << e.what();
08737 agenda_failed = true;
08738 agenda_error_msg = os.str();
08739 }
08740 for (ArrayOfIndex::const_iterator it = outputs_to_push.begin ();
08741 it != outputs_to_push.end (); it++)
08742 { ws.pop_free (*it); }
08743
08744 for (ArrayOfIndex::const_iterator it = outputs_to_dup.begin ();
08745 it != outputs_to_dup.end (); it++)
08746 { ws.pop_free (*it); }
08747
08748 ws.pop (aout[0]);
08749
08750 ws.pop (ain[0]);
08751
08752 if (agenda_failed) throw runtime_error (agenda_error_msg);
08753
08754 }
08755