### ### This is the template for iterations >= 2 of an OEM inversion, part 1. ### Spectroscopy: ############################################################ IF isempty(Q.OTHER_TAGS) tgsDefine { [$Q.RETRIEVAL_TAGS$] } END IF isempty(Q.RETRIEVAL_TAGS) tgsDefine { [$Q.OTHER_TAGS$] } END IF ~isempty(Q.OTHER_TAGS) & ~isempty(Q.RETRIEVAL_TAGS) tgsDefine { [$Q.RETRIEVAL_TAGS$,$Q.OTHER_TAGS$] } END IF ~isempty(Q.RETRIEVAL_TAGS) wfs_tgsDefine { [$Q.RETRIEVAL_TAGS$] } ELSE wfs_tgsDefine { [] } END lineshapeDefine { shape = "$Q.LINESHAPE$" normalizationfactor = "$Q.LINESHAPE_FACTOR$" cutoff = $Q.LINESHAPE_CUTOFF$ } linesReadFrom$Q.LINEFORMAT$ { filename = "$Q.SPECTRO_DIR$$Q.FILESEP$$Q.LINEFILE$" fmin = 0 fmax = 10e18 } lines_per_tgCreateFromLines { } # @qpi_continua ### p_abs #################################################################### VectorRead$QE.FORMAT$( p_abs ) { "" } ### Monochromatic frequency grid ############################################# VectorRead$QE.FORMAT$ ( f_mono ) { "" } ### The atmosphere ########################################################### VectorRead$QE.FORMAT$( t_abs ) { "" } VectorRead$QE.FORMAT$( z_abs ) { "" } MatrixRead$QE.FORMAT$( vmrs ) { "" } h2o_absSet { } n2_absSet { } ### The ground ############################################################### r_geoidStd { } NumericRead$QE.FORMAT$( z_ground ) { "" } NumericRead$QE.FORMAT$( t_ground ) { "" } VectorRead$QE.FORMAT$( e_ground ) { "" } ### Hydrostatic eq. ########################################################### IF Q.HSE_IN_ON hseSet{ pref = $Q.HSE_PREF$ zref = $Q.HSE_ZREF$ g0 = 9.81 niter = 2 } hseCalc{} ELSE hseOff{} END ### Absorption ################################################################ IF QE.RECALC_ABS absCalc { } abs_per_tgReduce { } MatrixRead$QE.FORMAT$( abs0 ) { "" } MatrixMatrixAdd( abs, abs, abs0 ) {} ELSE MatrixRead$QE.FORMAT$( abs ) { "" } ArrayOfMatrixRead$QE.FORMAT$( abs_per_tg ) { "" } END ### Refraction ################################################################ IF Q.REFRACTION_ON refrSet{ on = 1 model = "$Q.REFR_METHOD$" lfac = $Q.REFR_LFAC$ } ELSE refrOff{} END refrCalc{} ### Emission ################################################################# IndexSet( emission ) { value = $Q.EMISSION_ON$ } ### Observation geometry ###################################################### NumericSet ( z_plat ) { value = $Q.PLATFORM_ALTITUDE$ } VectorRead$QE.FORMAT$ ( za_pencil ) { "" } NumericSet ( l_step ) { value = $Q.STEPLENGTH_RTE$ } ### LOS and RTE ############################################################## VectorRead$QE.FORMAT$( y_space ) { "" } losCalc {} sourceCalc {} transCalc {} yCalc {} ### Store original spectra as y0 (y can be Tb) ################################ VectorCopy ( y0, y ) { } IF Q.EMISSION_ON ### Convert to RJ temperatures. ############################################### yTRJ {} END ### Always save: ############################################################## VectorWrite$QE.FORMAT$( z_abs ) { "" } VectorWrite$QE.FORMAT$( hse ) { "" } #LosWrite$QE.FORMAT$( los ){ "" } ArrayOfMatrixWrite$QE.FORMAT$( source ) { "" } ArrayOfMatrixWrite$QE.FORMAT$( trans ) { "" } VectorWrite$QE.FORMAT$( y ) { "" } VectorWrite$QE.FORMAT$( y0 ) { "" } ### Save if absorption recalculated: ########################################## IF QE.RECALC_ABS MatrixWrite$QE.FORMAT$( abs ) { "" } ArrayOfMatrixWrite$QE.FORMAT$( abs_per_tg ) { "" } END