#DEFINITIONS: -*-sh-*- # ############ # Agenda predefinitions # # There shall be NO pre-set (default) agendas in general.arts anymore, hiding # them away from the user. Instead, the user is forced to explicitly set all # the agendas needed. Here, we predefine a range of typical agenda settings, # which the user can than copy into his/her setup using: # # Copy( agenda-name, predefined-agenda-name ) # ############ # # Authors: Jana Mendrok # Arts2 { ################################## # iy_main_agenda ################################## ### AgendaCreate( iy_main_agenda__Emission ) AgendaSet( iy_main_agenda__Emission ){ ppathCalc iyEmissionStandard } ### AgendaCreate( iy_main_agenda__Transmission ) AgendaSet( iy_main_agenda__Transmission ){ Ignore( iy_unit ) Ignore( iy_id ) ppathCalc( cloudbox_on=0 ) iyTransmissionStandard } ### #AgendaCreate( iy_main_agenda__Radiolink ) #AgendaSet( iy_main_agenda__Radiolink ){ # Ignore( iy_unit ) # Ignore( rte_los ) # Ignore( nlte_field ) # Ignore( diy_dx ) # Ignore( iy_id ) # iyRadioLink #} ### AgendaCreate( iy_main_agenda__Freqloop ) AgendaSet( iy_main_agenda__Freqloop ){ Ignore( nlte_field ) Ignore( diy_dx ) Ignore( iy_id ) iyLoopFrequencies Touch( ppath ) } ### AgendaCreate( iy_main_agenda__ScattMC ) AgendaSet( iy_main_agenda__ScattMC ){ Ignore( rte_pos2 ) Ignore( nlte_field ) Ignore( diy_dx ) Ignore( iy_id ) iyMC Touch( ppath ) } ### #AgendaCreate( iy_main_agenda__FOSN0 ) #AgendaSet( iy_main_agenda__FOSN0 ){ # Ignore(nlte_field) # Ignore(iy_id) # iyFOS(fos_n=0) #} ################################## # iy_sub_agenda ################################## ### AgendaCreate( iy_sub_agenda__Emission ) AgendaSet( iy_sub_agenda__Emission ){ Ignore( lat_grid ) Ignore( lon_grid ) Ignore( lat_true ) Ignore( lon_true ) Ignore( z_surface ) Ignore( cloudbox_limits ) Ignore( pnd_field ) ppathCalc iyEmissionStandard } ### AgendaCreate( iy_sub_agenda__Transmission ) AgendaSet( iy_sub_agenda__Transmission ){ Ignore( lat_grid ) Ignore( lon_grid ) Ignore( lat_true ) Ignore( lon_true ) Ignore( z_surface ) Ignore( iy_unit ) Ignore( nlte_field ) Ignore( iy_id ) ppathCalc iyTransmissionStandard } ### #AgendaCreate( iy_sub_agenda__Radiolink ) #AgendaSet( iy_sub_agenda__Radiolink ){ # Ignore( lat_true ) # Ignore( lon_true ) # Ignore( iy_unit ) # Ignore( rte_los ) # Ignore( nlte_field ) # Ignore( diy_dx ) # Ignore( iy_id ) # iyRadioLink #} ################################## # iy_space_agenda ################################## ### # cosmic background (standard) # AgendaCreate( iy_space_agenda__CosmicBackground ) AgendaSet( iy_space_agenda__CosmicBackground ){ Ignore( rtp_pos ) Ignore( rtp_los ) MatrixCBR( iy, stokes_dim, f_grid ) } ################################## # iy_transmitter_agenda ################################## ### # Unit (unpolarised) intensity # AgendaCreate( iy_transmitter_agenda__UnitUnpolIntensity ) AgendaSet( iy_transmitter_agenda__UnitUnpolIntensity ){ Ignore( rtp_pos ) Ignore( rtp_los ) MatrixUnitIntensity( iy, stokes_dim, f_grid ) } ### # Unit polarised intensity # AgendaCreate( iy_transmitter_agenda__UnitPolIntensity ) AgendaSet( iy_transmitter_agenda__UnitPolIntensity ){ Ignore( rtp_pos ) Ignore( rtp_los ) iy_transmitterSinglePol } ################################## # iy_surface_agenda ################################## ### # use surface_rtprop_agenda through WSM iySurfaceRtpropAgenda (standard) # AgendaCreate( iy_surface_agenda__UseSurfaceRtprop ) AgendaSet( iy_surface_agenda__UseSurfaceRtprop ){ SurfaceDummy iySurfaceRtpropAgenda } ################################## # iy_cloudbox_agenda ################################## # Note: iy_cloudbox_agenda only needs to be defined when a iy_main_agenda uses # iyEmissionStandard while a scattering calculation shall be performed. In # other words, when a scattering solver is applied that provides doit_i_field # as output (these are, so far, the solvers DOIT, Disort, RT4). # Scattering solvers that have their dedicated iy* methods to be applied in the # iy_main_agenda (so far, iyMC and iyFOS) do not require iy_cloudbox_agenda to # be set. ### # linear interpolation of the intensity field of the cloud box, # standard method in connection with DOIT scattering calculations. # AgendaCreate( iy_cloudbox_agenda__LinInterpField ) AgendaSet( iy_cloudbox_agenda__LinInterpField ){ iyInterpLinCloudboxField } ### # quadratic interpolation of the intensity field of the cloud box # functional only for 1D # AgendaCreate( iy_cloudbox_agenda__QuadInterpField1D ) AgendaSet( iy_cloudbox_agenda__QuadInterpField1D ){ iyInterpPolyCloudboxField } ### # polynomial interpolation of user defined order of the cloudbox intensity # field (in angle space; position is linearly interpolated). default setup # gives same as iyInterpLinCloudboxField (for other orders/methods redefine # agenda with za/aa_interp_order, za_restrict, cosza_interp set accordingly). # AgendaCreate( iy_cloudbox_agenda__NthOrderInterpField ) AgendaSet( iy_cloudbox_agenda__NthOrderInterpField ){ iyInterpCloudboxField #e.g. for for cubic, hemisphere-restricted za_grid interpolation #iyInterpCloudboxField( za_inter_order=3, za_restrict=1 ) } ################################## # ppath_agenda ################################## ### # sensor-only path # AgendaCreate( ppath_agenda__FollowSensorLosPath ) AgendaSet( ppath_agenda__FollowSensorLosPath ){ Ignore( rte_pos2 ) ppathStepByStep } ### # plane parellel version # AgendaCreate( ppath_agenda__PlaneParallel ) AgendaSet( ppath_agenda__PlaneParallel ){ Ignore( ppath_lraytrace ) Ignore( rte_pos2 ) Ignore( t_field ) Ignore( vmr_field ) Ignore( f_grid ) ppathPlaneParallel } ### # transmitter-receiver (link) path # AgendaCreate( ppath_agenda__TransmitterReceiverPath ) AgendaSet( ppath_agenda__TransmitterReceiverPath ){ Ignore(cloudbox_on) Ignore( ppath_inside_cloudbox_do ) rte_losGeometricFromRtePosToRtePos2 ppathFromRtePos2 } ################################## # ppath_step_agenda ################################## ### # Geometrical path calculation (i.e., refraction neglected) # AgendaCreate( ppath_step_agenda__GeometricPath ) AgendaSet( ppath_step_agenda__GeometricPath ){ Ignore( t_field ) Ignore( vmr_field ) Ignore( f_grid ) Ignore( ppath_lraytrace ) ppath_stepGeometric } ### # Refracted path calculation # AgendaCreate( ppath_step_agenda__RefractedPath ) AgendaSet( ppath_step_agenda__RefractedPath ){ ppath_stepRefractionBasic } ################################## # propmat_clearsky_agenda ################################## FlagOff( propmat_clearsky_agenda_checked ) ### # "on-the-fly" absorption # AgendaCreate( propmat_clearsky_agenda__OnTheFly ) AgendaSet( propmat_clearsky_agenda__OnTheFly ){ Ignore(rtp_mag) Ignore(rtp_los) propmat_clearskyInit propmat_clearskyAddOnTheFly } ### # "on-the-fly" absorption with Zeeman; requires precalculations # AgendaCreate( propmat_clearsky_agenda__OnTheFly_ZeemanPreCalc ) AgendaSet( propmat_clearsky_agenda__OnTheFly_ZeemanPreCalc ){ propmat_clearskyInit propmat_clearskyAddOnTheFly propmat_clearskyAddZeeman } ### # "on-the-fly" absorption with Faraday rotation # AgendaCreate( propmat_clearsky_agenda__OnTheFly_Faraday ) AgendaSet( propmat_clearsky_agenda__OnTheFly_Faraday ){ propmat_clearskyInit propmat_clearskyAddOnTheFly propmat_clearskyAddFaraday } ### # absorption lookup table # this could save (considerable) time, especially for batch calculations. # AgendaCreate( propmat_clearsky_agenda__LookUpTable ) AgendaSet( propmat_clearsky_agenda__LookUpTable ){ Ignore(rtp_mag) Ignore(rtp_los) Ignore(rtp_nlte) propmat_clearskyInit propmat_clearskyAddFromLookup } ### # absorption lookup table with Zeeman # this could save (considerable) time, especially for batch calculations. # AgendaCreate( propmat_clearsky_agenda__LookUpTable_Zeeman ) AgendaSet( propmat_clearsky_agenda__LookUpTable_Zeeman ){ propmat_clearskyInit propmat_clearskyAddFromLookup propmat_clearskyAddZeeman } ################################## # abs_xsec_agenda ################################## FlagOff( abs_xsec_agenda_checked ) ### # Without CIA (only explicit lines and # "classical" continua / full abosorption models) # AgendaCreate( abs_xsec_agenda__noCIA ) AgendaSet( abs_xsec_agenda__noCIA ){ abs_xsec_per_speciesInit abs_xsec_per_speciesAddLines abs_xsec_per_speciesAddConts } ### # With CIA # AgendaCreate( abs_xsec_agenda__withCIA ) AgendaSet( abs_xsec_agenda__withCIA ){ abs_xsec_per_speciesInit abs_xsec_per_speciesAddLines abs_xsec_per_speciesAddConts abs_xsec_per_speciesAddCIA } ### # With CIA and sufficient temperature extrapolation # AgendaCreate( abs_xsec_agenda__withCIAextraT ) AgendaSet( abs_xsec_agenda__withCIAextraT ){ abs_xsec_per_speciesInit abs_xsec_per_speciesAddLines abs_xsec_per_speciesAddConts abs_xsec_per_speciesAddCIA( T_extrapolfac=6. ) } ################################## # refr_index_air_agenda ################################## ### # no refraction (n==1.0) # AgendaCreate( refr_index_air_agenda__NoRefrac ) AgendaSet( refr_index_air_agenda__NoRefrac ){ Ignore( f_grid ) Ignore( rtp_pressure ) Ignore( rtp_temperature ) Ignore( rtp_vmr ) NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) } ### # refraction parameterization for microwaves + Earth (p,T,H2O) # AgendaCreate( refr_index_air_agenda__GasMicrowavesEarth ) AgendaSet( refr_index_air_agenda__GasMicrowavesEarth ){ Ignore( f_grid ) NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) refr_index_airMicrowavesEarth } ### # refraction parameterization # valid in infrared for Earth (dry air only) # AgendaCreate( refr_index_air_agenda__GasInfraredEarth ) AgendaSet( refr_index_air_agenda__GasInfraredEarth ){ Ignore( f_grid ) Ignore( rtp_vmr ) NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) refr_index_airInfraredEarth } ### # refraction parameterization from Newell&Baird (p,T; N2,O2,CO2,H2,He) # valid for arbitrary planetary atmospheres in microwave # AgendaCreate( refr_index_air_agenda__GasMicrowavesGeneral ) AgendaSet( refr_index_air_agenda__GasMicrowavesGeneral ){ Ignore( f_grid ) NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) refr_index_airMicrowavesGeneral } ### # refraction due to free electrons # AgendaCreate( refr_index_air_agenda__FreeElectrons ) AgendaSet( refr_index_air_agenda__FreeElectrons ){ Ignore( rtp_pressure ) Ignore( rtp_temperature ) NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) refr_index_airFreeElectrons } ### # combined refraction from gases (Newell&Baird) and free electrons # valid for arbitrary planetary atmospheres in microwave # AgendaCreate( refr_index_air_agenda__GasMicrowavesGeneralAndElectrons ) AgendaSet( refr_index_air_agenda__GasMicrowavesGeneralAndElectrons ){ NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) refr_index_airMicrowavesGeneral refr_index_airFreeElectrons } ### # Combination of Microwaves + free electrons. OK for Earth and microwave. # AgendaCreate( refr_index_air_agenda__GasMicrowavesEarthAndElectrons ) AgendaSet( refr_index_air_agenda__GasMicrowavesEarthAndElectrons ){ NumericSet( refr_index_air, 1.0 ) NumericSet( refr_index_air_group, 1.0 ) refr_index_airMicrowavesEarth refr_index_airFreeElectrons } ### # all surface agendas are placed in s special file # INCLUDE "agendas_surface.arts" }