#DEFINITIONS: -*-sh-*- # # Demonstration of a DOIT scattering calculation initialized from a previous # solution instead of the clearsky field. # # Compared to TestDOIT the pnd_field is slightly varied and # DOIT is initialized by the solution of TestDOIT. # # Author: Jana Mendrok # Arts2 { Tensor7Create( doit_i_field_ref ) IndexSet( stokes_dim, 4 ) INCLUDE "artscomponents/doit/doit_setup.arts" # Perturbing the pnd_field by 1% Tensor4Scale( out=pnd_field, in=pnd_field, value=1.01 ) # Main agenda for DOIT calculation # -------------------------------- # # Input: incoming field on the cloudbox boundary # Ouput: the scattered field on the cloudbox boundary AgendaSet( doit_mono_agenda ){ # Prepare scattering data for DOIT calculation (Optimized method): DoitScatteringDataPrepare Ignore( f_grid ) # Alternative method (needs less memory): #scat_data_monoCalc #WriteXMLIndexed( in=doit_i_field_mono, file_index=f_index ) # Perform iterations: 1. scattering integral. 2. RT calculations with # fixed scattering integral field, 3. convergence test doit_i_field_monoIterate # Write the radiation field inside the cloudbox: #WriteXMLIndexed( in=doit_i_field_mono, file_index=f_index ) } # DOIT calculation propmat_clearsky_agenda_checkedCalc atmfields_checkedCalc atmgeom_checkedCalc cloudbox_checkedCalc scat_data_checkedCalc sensor_checkedCalc # Initialize Doit variables DoitInit # Calculate incoming radiation field at cloudbox boundary DoitGetIncoming ReadXML(doit_i_field_ref, "doit_i_fieldREFERENCE_DOIT.xml") doit_i_fieldSetFromPrecalc(doit_i_field_precalc=doit_i_field_ref) # Executes doit_mono_agenda for all frequencies DoitCalc # Calculate RT from cloudbox boundary to the sensor # StringSet( iy_unit, "RJBT" ) yCalc WriteXML( in=y ) #==================stop========================== #==================check========================== VectorCreate(yREFERENCE) ReadXML( yREFERENCE, "artscomponents/doit/yREFERENCE_DOITprecalcInit.xml" ) Compare( y, yREFERENCE, 2e-1 ) } # End of Main