#DEFINITIONS: -*-sh-*- # # Compare absorption coefficients generated with ARTSCAT-3 to the ones that we get when # converting the line data to ARTSCAT-4. The result should be the same. # SAB 2012-09-06 Arts2 { INCLUDE "general/general.arts" INCLUDE "general/continua.arts" INCLUDE "general/agendas.arts" INCLUDE "general/planet_earth.arts" # Agenda for scalar gas absorption calculation Copy(abs_xsec_agenda, abs_xsec_agenda__noCIA) # This test catalogue was generated from the HITRAN catalogue in the # following way: #abs_linesReadFromHitran( abs_lines, # "PATH_TO_ARTS-DATA/spectroscopy/hitran96/hitran96_lowfreq.par", # 1e9, # 200e9 ) abs_linesReadFromArts( abs_lines, "lines.xml", 1e9, 200e9 ) abs_speciesDefineAllInScenario( basename="testdata/tropical" ) abs_lines_per_speciesCreateFromLines AtmRawRead( t_field_raw, z_field_raw, vmr_field_raw, abs_species, "testdata/tropical" ) VectorNLogSpace( p_grid, 10, 100000, 10 ) AtmosphereSet1D IndexSet( stokes_dim, 1 ) AtmFieldsCalc # On-the-fly absorption Copy( propmat_clearsky_agenda, propmat_clearsky_agenda__OnTheFly ) VectorNLinSpace( f_grid, 100, 50e9, 150e9 ) abs_xsec_agenda_checkedCalc propmat_clearsky_agenda_checkedCalc atmfields_checkedCalc timerStart propmat_clearsky_fieldCalc timerStop Tensor7Create(propmat_clearsky_field_artscat3) Copy(propmat_clearsky_field_artscat3, propmat_clearsky_field) abs_linesArtscat4FromArtscat3 abs_lines_per_speciesCreateFromLines # Re-do calculation with converted catalogue: timerStart propmat_clearsky_fieldCalc timerStop # ArrayOfLineRecordCreate(abs_lines_artscat4) # Copy(abs_lines_artscat4,abs_lines) # WriteXML( "zascii", abs_lines_artscat4 ) # WriteXML( "zascii", p_grid ) # WriteXML( "zascii", f_grid ) # WriteXML( "zascii", propmat_clearsky_field_artscat3 ) WriteXML( "zascii", propmat_clearsky_field ) # Save result: Tensor7Create(propmat_clearsky_field_artscat4) Copy(propmat_clearsky_field_artscat4, propmat_clearsky_field) # Compare the two results: Compare( propmat_clearsky_field_artscat4, propmat_clearsky_field_artscat3, 1e-18 ) # Now also try a lookup table calculation: # Set up the absorption lookup table: abs_lookupSetup abs_lookupCalc # Reset absorption agenda: Copy( propmat_clearsky_agenda, propmat_clearsky_agenda__LookUpTable ) abs_xsec_agenda_checkedCalc propmat_clearsky_agenda_checkedCalc # Redo calculation: timerStart propmat_clearsky_fieldCalc timerStop # Save result Tensor7Create(propmat_clearsky_field_artscat4lookup) Copy(propmat_clearsky_field_artscat4lookup, propmat_clearsky_field) # Compare the last two results: Compare( propmat_clearsky_field_artscat4lookup, propmat_clearsky_field_artscat4, 1e-16 ) }