Arts2 { # Initialization and adding scattering elements. # ---------------------------------------------------------------- ScatSpeciesInit # Adding scattering elements. # ---------------------------------------------------------------- ScatElementsPndAndScatAdd( scat_data_files=["scattering/H2O_ice/MieSphere_R8.00000e+02um.xml"], pnd_field_files=["testdata/testdoit_pnd_field_1D.xml"]) scat_dataCheck( scat_data = scat_data_raw ) scat_dataCalc scat_dataCheck pnd_fieldCalcFrompnd_field_raw # here we want a really thin cloud Tensor4Scale( out=pnd_field, in=pnd_field, value=0.01 ) # Consistency checks needed for running merge atmfields_checkedCalc( bad_partition_functions_ok = 1 ) atmgeom_checkedCalc cloudbox_checkedCalc sensor_checkedCalc ScatSpeciesMerge cloudbox_checkedCalc scat_data_checkedCalc # Main agenda for DOIT calculation # -------------------------------- AgendaSet( doit_mono_agenda ){ # Prepare scattering data for DOIT calculation (Optimized method): DoitScatteringDataPrepare Ignore( f_grid ) # Switch on pressure grid optimization OptimizeDoitPressureGrid # Alternative method (needs less memory): #scat_data_monoCalc # Perform iterations: 1. scattering integral. 2. RT calculations with # fixed scattering integral field, 3. convergence test, use acceleration doit_i_field_monoIterate(accelerated=1) # Interpolate doit_i_field_mono back to original size doit_i_field_monoOptimizeReverse # Write the radiation field inside the cloudbox: #WriteXMLIndexed( in=doit_i_field_mono, file_index=f_index ) } # Convergence test # ---------------------- AgendaSet( doit_conv_test_agenda ){ # Give limits for all Stokes components in Rayleigh Jeans BT: doit_conv_flagAbsBT( epsilon=[0.1] ) # Alternative: Give limits in radiances #doit_conv_flagAbs( doit_conv_flag, doit_iteration_counter, doit_i_field, # doit_i_field_old ){ # epsilon = [0.1e-15, 0.1e-18, 0.1e-18, 0.1e-18] #} # If you want to investigat several iteration fields, for example # to investigate the convergence behavior, you can use # the following method: #DoitWriteIterationFields Print( doit_iteration_counter, 0 ) } AgendaSet( iy_cloudbox_agenda ){ iyInterpCloudboxField } } # End of Main