DART-Ray
Data Types | Modules | Functions/Subroutines | Variables
rt_routines.f90 File Reference

Data Types

type  rt_routines::list_en_sca
 Contains the single values of en_sca which have to be sent to other nodes. More...
 

Modules

module  rt_routines
 Contains the main radiation transfer routines. In particular, the routines to calculate the ray-cell intersections, while a ray propagates through the 3D grid, and the corresponding contributions to the radiation field energy density and scattered radiation.
 

Functions/Subroutines

subroutine rt_routines::prepare_p_src ()
 Finds the host cells for the stellar point sources. It sets the values for src_cell() and cell_src(). More...
 
subroutine rt_routines::fix_ccoord_p_src (pos, rel, cellsize)
 Shifts slightly the source position within the host cell in case it is located on the border of the host cell. More...
 
subroutine rt_routines::calc_total_luminosity
 Calculates the total stellar luminosity within the RT model and store it in lumcell(). It also sets the arrays tot_rad_en() and tot_rad_en_or(). More...
 
subroutine rt_routines::calc_total_luminosity_sca
 Calculates tot_rad_en() and lumcell() at the beginning of each scattering iteration. More...
 
subroutine rt_routines::rt_loop
 This is the main RT loop over the sources of radiation. It is used in all calculation phases where the radiation field is derived. More...
 
subroutine rt_routines::rt_loop_2d
 Contains the main RT loop over the sources of radiation for the RT 2D mode. The loop is perfomed twice because the first instance processes only the cells with x,y,z > 0 while the second processes those with x =0 OR y=0 OR z=0. Repeating the loops is necessary because only the off-axis cells provide contributions toe the radiation field that can be easily symmetrised. More...
 
subroutine rt_routines::assign_scaspe_temp_arr (i)
 Assigns to scaspe_temp_arr() the values needed during the current OpenMP thread loop chunk. More...
 
logical function rt_routines::skip_cell_2d_rt_loop (i)
 Used to skip cell processing within rt_loop_2D. TRUE when the cell i does not have to be processed within 2D loop i2d. More...
 
subroutine rt_routines::wait_end_thread_loop
 Waits until all threads and all MPI processes have completed the source loop and sent out the remaining en_sca elements. More...
 
subroutine rt_routines::allocate_rt_loop_arrays
 Allocates arrays used in the rt_loop(), rt_loop_2d() and rt_loop_iobs() subroutines. More...
 
subroutine rt_routines::deallocate_rt_loop_arrays
 Deallocates arrays used in the rt_loop(), rt_loop_2d() and rt_loop_iobs() subroutines. More...
 
subroutine rt_routines::main_dir_loop (src_id, sid, src_lum)
 Contains the loop over the HEALPix directions used by rt_loop() and rt_loop_2D(). The minimum HEALPix resolution for the ray angular density corresponds to nside = 4. If necessary, the ray angular density is automatically increased or decreased along the ray path according to the input values for bm_par(), bm_par_max() and bm_par_sca(). More...
 
subroutine rt_routines::rt_loop_iobs
 Performs the ray-tracing loop to calculate the output specific intensity arrays i_obs(). More...
 
subroutine rt_routines::ray_tracing (nc, al, dl, clvl, src_lum, dplane_ray, prev_ray, isel_ray ,ray_type, ipix, cc_old)
 Performs the ray-tracing calculation for a single ray. The ray propagates through the model until it reach model edge or a blocking condition is met. The blocking condition depends on the RT calculation phase (see subroutine deposit()). More...
 
subroutine rt_routines::set_iq_list (ray_intensity, flag_beam)
 Sets the subscript list iq() of the ray_intensity() elements higher than zero and sets ray_intensity_dep(). More...
 
real(kind=real64) function, dimension(0:lnum-1) rt_routines::src_lum_value (id)
 Assigns the source luminosity within rt_loop() depending on the rt_type() and the cell/point source ID number. More...
 
subroutine rt_routines::calc_src_ccoord (id)
 Assigns the source coordinates to src_ccoord() depending on rt_type(). More...
 
subroutine rt_routines::calc_cproj (al, dl, cproj)
 Calculates the ray-direction projections cproj() on the coordinate axis. More...
 
subroutine rt_routines::find_cc_new2 (cc_old, cc_new, cproj, prev_ray, out, clvl)
 Finds the starting cell for a new ray (which is not necessarily the last cell crossed by the blocked ray from which the new ray is derived). More...
 
subroutine rt_routines::calc_outcube (rel_vec, cellsize, outcube)
 Calculates outcube, a xyz vector where an element is equal to 1 if the corresponding component of rel_vec is larger than the cell side divided by 2. This means that the selected point is outside the cell. More...
 
subroutine rt_routines::pre_calc_ads_arr
 Precalculates the ads_arr() arrays for low values of nside() (<=256) Ads_arr() elements for larger nside values are calculated when needed during the RT loop. More...
 
subroutine rt_routines::calc_ffn_arr (al, dl, ipix)
 Calculates the array ffn_arr() needed to derive the angular distribution of the scattered light after a ray-cell intersection. More...
 
subroutine rt_routines::calc_ads_arr (sin_dl, cos_dl, sin_al, cos_al)
 Calculates the array ads_arr(), which contains the values of the factors cos(theta) within the Henyey-Greenstein function for a single ray direction and for all directions of the scaspe() arrays. More...
 
subroutine rt_routines::calc_psel (incvec, psel, pabs, isel, clvl, cc, cproj)
 Calculates the length of the current ray-cell intersection. More...
 
subroutine rt_routines::deposit (cc, al, dl, ipix, ray_intensity, length, nc, psel, ray_status, flag_beam)
 Adds the contributions to the radiation field energy density array and to the scattered luminosity array of the cell intersected by a ray. It also updates the specific intensity of the ray which is modified by the ray-cell intersection if the cell is dusty. Note that the ray_intensity() array in this subroutine is different from the one in the caller subroutine. More...
 
real function rt_routines::calc_dist_cell (nc, cc)
 Calculates the distance between the centres of two cells. More...
 
subroutine rt_routines::check_wall_hit (cc, wall_hit)
 Checks whather the cell cc is located beyond the walls set in the input (see e.g. x_wall_on() and x_wall_coord() ). Note that the wall is not effective during the point source ray-tracing loop. More...
 
subroutine rt_routines::set_walls
 Sets the values of the wall coordinates in model units. More...
 
subroutine rt_routines::process_scatt_rad (cc, al, dl, ipix, en_sca)
 Adds the contribution of the scattered light luminosity to the crossed cell scaspe_arr() and scaspe_tot_arr() arrays. Note that this operation is normally performed through array vectorization since it is much faster than the corresponding do loop. However, when running the code in parallel, there is the possibility of race condition when two rays cross the same cell simultaneously. In order to avoid this, a do loop is performed with $OMP ATOMIC when lock_cell() = 1. Note also that if for the elements of scaspe_arr() not stored locally, the en_sca elements are stored in en_sca_list until transfering to the corresponding node. More...
 
subroutine rt_routines::set_wavelength_index (il, k)
 Sets the right wavelength subscript depending whether no_communications() is TRUE or FALSE. More...
 
subroutine rt_routines::define_next_level (flag_k)
 Determines the next value of nside() in the next iteration for main_dir_loop(). More...
 
subroutine rt_routines::calc_max_npix
 Finds maximum value in npix_arr within the range of wavelength used in the current RT algorithm. More...
 
subroutine rt_routines::create_scaspe
 Allocates and initialises the scattered luminosity array scaspe() as well as the sin/cos arrays ( theta_sca(), phi_sca(), sin_theta_sca(), cos_theta_sca(), sin_phi_sca(), cos_phi_sca()) for the fixed HEALPix directions and observer directions considered in the scaspe() arrays. Since these values depend only on kp_sca at each wavelength and on the observer lines-of-sight, the arrays are not stored for each wavelength but only for each kp_sca value present in kp_sca_arr(). More...
 
subroutine rt_routines::prepare_scaspe_splitting
 Prepares the splitting of the scaspe arrays within different node memory. It affects only calculations using multiple cluster nodes. It calculates the number of wavelengths lnum_node() for the scaspe array stored locally. More...
 
subroutine rt_routines::create_i_obs
 Allocates and initialises specific intensity arrays i_obs() and i_obs_in(). More...
 
subroutine rt_routines::create_scaspe_tot
 Allocates and initialises the scaspe_tot() array. Unlike the scaspe() array, the scaspe_tot() includes all of the scattered light at each position. If printed on an output file, it can be later used to calculate scattered light maps at arbitrary line-of-sight directions. More...
 
subroutine rt_routines::assign_src_lum (theta, phi, src_lum)
 Assigns the src_lum() values for rays carrying scattered light. This is done by simply locating the right element of the scaspe array. It is called in three cases: 1) for rays used in the radiation field calculation (rt_type = 'scatt'), 2) for rays used to derive i_obs() for an external observer in the rt_algorithm 'iobs', and 3) for rays used to derive the i_obs_in() value for internal observers. This version contains an interpolatation scheme over the sphere, but it is not used for the moment. More...
 
subroutine rt_routines::set_en_lim
 Sets the en_lim ( $ f_U $) parameter, which checks if a ray carries negligible luminosity and can be blocked without significantly reducing the calculation accuracy. More...
 
subroutine rt_routines::find_theta_phi_obs_in (ro, rc, theta, phi)
 Finds the theta and phi angles for the direction from a source (emitting cell or point source) to an internal observer. More...
 
subroutine rt_routines::create_psel_av_arr
 Creates the arrays that stores the average path of the rays originating from each source. The array is expanded at the beginning of each scattering iteration/dust heating iteration in expand_psel_av_arr(). More...
 
subroutine rt_routines::expand_psel_av_arr
 Expands the psel_av_arr() array at the beginning of each scattering iteration and of each dust heating iteration. More...
 
subroutine rt_routines::check_grid_symmetry
 Checks that the 3D grid is indeed axisymmetric in the rt_algorithm 2D. More...
 
subroutine rt_routines::find_linked_cells (nc, link_list)
 Finds the linked cells in the 2D mode (that is, the cells located at the symmetric points). More...
 
subroutine rt_routines::check_2d_src
 Checks that no more than one source is allowed at the grid origin in the 2D mode. This is needed because it is the only case where symmetries can be exploited in the same way as for the emitting cells. More...
 
subroutine rt_routines::fix_symmetry
 Takes care of symmetrising the radiation fields and scaspe() arrays at the end of the RT loops in the RT 2D mode. R and z symmetry is exploited here. More...
 
subroutine rt_routines::fix_symmetry_part1
 Handles the array symmetrization after the RT precalculation in 2D mode. More...
 
subroutine rt_routines::fix_symmetry_part2
 Takes care of symmetrizing radiation fields and scaspe() arrays at the end of direct light processing for the RT 2D mode. More...
 
subroutine rt_routines::fix_symmetry_part3
 Symmetrises the radiation fields and scaspe() arrays at the end of each scattering iteration in the RT 2D mode. More...
 
subroutine rt_routines::remove_negative (array)
 Assigns zero to all negative elements of an array. Used in fix_symmetry_part3() to remove negative due to numerical accuracy. Remember that this could give problems in case you want to work with negative intensities. More...
 
subroutine rt_routines::remove_negative_2d (array)
 Same as remove_negative() but for 2D arrays. More...
 
subroutine rt_routines::create_scaspe_prev
 Allocates and initialises a new scaspe array ( scaspe_prev_arr()) which is used while symmetrising the scaspe_arr() array in the RT 2D mode or in the sequential scattering algorithm (see sequential_scattering()). More...
 
subroutine rt_routines::calc_scaspe_indices
 Derives the re-ordering scaspe() indices for symmetrising the scaspe arrays in the RT 2D mode. More...
 
subroutine rt_routines::create_en_sca_list
 Allocates and initializes en_sca_list() array and the counter count_en_sca(). More...
 
subroutine rt_routines::add_to_en_sca_list (cc, ipix, il, en_sca_out)
 Adds additional element to the en_sca_list() of the OPENMP thread. If the list contains the maximum number of elements allowed, the transfering subroutine handle_mpi_transfer is called. More...
 
subroutine rt_routines::process_en_sca_list
 Processes the en_sca_list arrays of each OPENMP thread. It joins them in a single array. Then the master thread of each MPI process handles the communication and processing. More...
 
subroutine rt_routines::sort_en_sca_list (el_out, i0_el_out)
 Sorts the elements of en_sca_list for each thread before passing it to en_sca_list_all(). This avoids to make the sorting later within the master block. More...
 
subroutine rt_routines::process_en_sca_received (im)
 Processes en_sca_list_received within each MPI process. This is done by all threads bu the master thread. More...
 
subroutine rt_routines::prepare_en_sca_transfer
 Prepares en_sca_list_all() and determines how many elements to send to each MPI process and starting indeces. More...
 
subroutine rt_routines::en_sca_transfer ()
 Transfers en_sca_list elements between the MPI processes and process them. The transfering is done by the master threads while the other threads process the elements as soon as they arrive. This method improves efficiency because communication and computation are partly overlapped. More...
 
subroutine rt_routines::create_mpi_type
 Creates the MPI data type used for transfering the en_sca_list elements between MPI processes. More...
 
subroutine rt_routines::assign_scaspe_temp (cc)
 Assigns values to scaspe_temp_arr() array. It calls the subroutines to send and receive scaspe_arr() arrays values from the other MPI processes. More...
 
subroutine rt_routines::prepare_scaspe_temp_transfer
 Prepares the scaspe_temp_send() array whose parts will be transfered to other nodes using mpi_scatterv. To reduce the number of scaspe transfers, a group of scaspe_temp_arr arrays (corresponding to many cells not just those requested) are passed to the MPI process/OPENMP Thread that sent the request. This group corresponds to the scaspe_temp_arr elements of the cells that will be processed sequentially by that MPI process/OPENMP thread within the current OPENMP chunk (see OMP DO SCHEDULE). The order in which elements are assigned to the 1-dim scaspe_temp_send() array is angular directions (npix_arr(kl)), wavelength(kl), cell id (ic) More...
 
subroutine rt_routines::scaspe_temp_transfer
 Sends chunks of scaspe_temp_send() to the other processes using mpi_scatterv. It stores the received values in scaspe_temp_recv(). More...
 
subroutine rt_routines::handle_mpi_transfers (transfer_type, cc)
 Handles MPI transfers depending on the transfer_type input from each OPENMP thread and MPI PROCESS. The reason for this subroutine is that there are two different situations where a thread can ask for communication to the other MPI process: 1) the assignment of scaspe_temp_arr() arrays; 2) the transfer and processing of the en_sca_list() elements. This routine is called when all the OPENMP threads within an MPI process have reached one of the two calling points (depending on the operation needed). When all the MPI processes have arrived to mpi_allreduce, they communicate transfer_type_tot_local(), which is equal to the number of threads only if no thread needs communication of scaspe_temp elements (that is, all threads requested communication of en_sca_list elements). Then the routines assign_scaspe_temp() and process_en_sca_list() are called to perform the communications. More...
 
subroutine rt_routines::count_processed_cells
 It counts the number of cells that have been processed so far. Only those with non zero luminosity are counted. This count can be used when estimating the average processing time for a single cell. More...
 
subroutine rt_routines::check_im (im)
 It checks whether the thread is processing a cell with an im value which is the start of an OPENMP loop chunk. If so, it sets iscaspe_big = num_scaspe_pass so that the query of scaspe_temp_arr_big is made in the rt_loop. Otherwise, it just increases the value of iscaspe_big. This subroutine is not important in the no communication mode (see no_communications()). More...
 
subroutine rt_routines::scale_dens_arr
 Assigns the values of dens_arr() by scaling the dens() array read from the main grid file. More...
 
subroutine rt_routines::set_i_opacity_arrays (i0, i1)
 Sets the subscript of the first element of the value segment within kext_arr(), gsca_arr() and ksca_norm_arr() used in the RT calculation. More...
 
subroutine rt_routines::put_lock_to_cell (i)
 Increases lock_cell() by a unity. More...
 
subroutine rt_routines::remove_lock_from_cell (i)
 Decreases lock_cell() by a unity. More...
 
subroutine rt_routines::store_reshape_arrays
 Changes the size of the wavelength dimension of u_fest_arr() to match the dust emission wavelength range. Stores the radiation field energy density in the stellar emission wavelength range into u_final_uv_opt(). New u_final_arr and dens_arr arrays are created to cover the wavelength range of the dust emission. Note that in this subroutine, lnum is still set to lnum_stars. More...
 
subroutine rt_routines::set_units
 Sets units_i_obs(), units_ufield() and cs(). More...
 
subroutine rt_routines::update_i_obs_arr
 Adds the i_obs_arr(), calculated durint the current dust heating iteration, to the arrays i_obs_arr_dir() and i_obs_arr_tot(). More...
 
subroutine rt_routines::set_npix_arr
 Sets the number of pixels for the scaspe() arrays at each wavelength (npix_arr() and npix_hp_arr()). Having a variable size for the scattering source function allows to save memory especially in the infrared. More...
 
subroutine rt_routines::assign_i_obs_to_project
 Assigns i_obs_arr() values for the projection algorithm. More...
 

Variables

integer(kind=int32) rt_routines::kp_sca_max
 
integer(kind=int32) rt_routines::nside_sca
 
integer(kind=int32) rt_routines::bm_par
 
integer(kind=int32) rt_routines::bm_par_sca
 
integer(kind=int32) rt_routines::bm_par_max
 
integer(kind=int32) rt_routines::pabs_max
 
real(kind=real64) rt_routines::rad_lim
 
real(kind=real64) rt_routines::en_lim
 
real(kind=real64) rt_routines::conv_en_lim
 
real(kind=real64) rt_routines::tau_cell_max
 
real(kind=real64) rt_routines::accuracy
 
real(kind=real64), dimension(:), allocatable rt_routines::tot_rad_en
 
real(kind=real64), dimension(:), allocatable rt_routines::tot_rad_en_or
 
integer rt_routines::rt_type
 
character(len=20) rt_routines::rt_algorithm
 
integer rt_routines::rt_algorithm_id
 
logical rt_routines::done
 
logical rt_routines::cnflag
 
logical rt_routines::cnflag_dust
 
integer rt_routines::nside
 
integer rt_routines::clvl_old
 
integer, parameter rt_routines::nside_min = 4
 
integer, parameter rt_routines::npix_main =12
 
real(kind=real64), dimension(3) rt_routines::src_ccoord
 
integer, dimension(:,:), allocatable rt_routines::ccindd_nc
 
integer, dimension(:,:), allocatable rt_routines::ccindd
 
integer rt_routines::nproc
 
integer rt_routines::ipsel_av
 
integer rt_routines::ipsel_av_tot
 
real(kind=real64), parameter rt_routines::glepsilon =1.0e-7
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr4
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr8
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr16
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr32
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr64
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr128
 
type(var_arr_2d), dimension(:), allocatable rt_routines::ads_arr256
 
type(var_arr_1d), dimension(:), allocatable rt_routines::theta_sca
 
type(var_arr_1d), dimension(:), allocatable rt_routines::phi_sca
 
type(var_arr_1d), dimension(:), allocatable rt_routines::sin_theta_sca
 
type(var_arr_1d), dimension(:), allocatable rt_routines::sin_phi_sca
 
type(var_arr_1d), dimension(:), allocatable rt_routines::cos_theta_sca
 
type(var_arr_1d), dimension(:), allocatable rt_routines::cos_phi_sca
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ffn_arr_mw
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ffn_arr
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ads_arr
 
real(kind=real64) rt_routines::cs
 
real(kind=real64) rt_routines::psel_av
 
real(kind=real64), dimension(3) rt_routines::pabs_arr
 
real(kind=real64), dimension(:), allocatable rt_routines::i_obs_temp
 
real(kind=real64), dimension(:), allocatable rt_routines::lum_lost_temp
 
real(kind=real64), dimension(:), allocatable rt_routines::lum_lost
 
real(kind=real64), dimension(:), allocatable rt_routines::lum_lost_prev
 
integer rt_routines::iterations
 
integer rt_routines::iterations_dustem
 
real(kind=real64) rt_routines::vec_mod
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ix
 
type(var_arr_1d), dimension(:), allocatable rt_routines::iy
 
type(var_arr_1d), dimension(:), allocatable rt_routines::iz
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ixy
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ixz
 
type(var_arr_1d), dimension(:), allocatable rt_routines::iyz
 
type(var_arr_1d), dimension(:), allocatable rt_routines::ixyz
 
integer rt_routines::chunk_size
 
integer, dimension(:), allocatable rt_routines::npix_arr
 
integer rt_routines::npix_hp
 
integer, dimension(:), allocatable rt_routines::tot_npix_arr_local
 
integer, dimension(:), allocatable rt_routines::npix_hp_arr
 
integer, dimension(:), allocatable rt_routines::npix_unique
 
integer, dimension(:), allocatable rt_routines::npix_hp_unique
 
integer, dimension(:), allocatable rt_routines::kp_unique
 
integer rt_routines::dim_npix_unique
 
integer rt_routines::max_npix
 
integer, dimension(:), allocatable rt_routines::kp_sca_arr
 
integer, dimension(:), allocatable rt_routines::ik_sca_arr
 
integer rt_routines::i2d
 
integer, parameter rt_routines::rtt_start = 0
 
integer, parameter rt_routines::rtt_precalc_cell = 1
 
integer, parameter rt_routines::rtt_precalc_src = 2
 
integer, parameter rt_routines::rtt_output_part1 = 3
 
integer, parameter rt_routines::rtt_prep_part2 = 4
 
integer, parameter rt_routines::rtt_dir_cell = 5
 
integer, parameter rt_routines::rtt_i_obs_dir_cell = 6
 
integer, parameter rt_routines::rtt_dir_src = 7
 
integer, parameter rt_routines::rtt_i_obs_dir_src = 8
 
integer, parameter rt_routines::rtt_output_part2 = 9
 
integer, parameter rt_routines::rtt_scatt = 10
 
integer, parameter rt_routines::rtt_i_obs = 11
 
integer, parameter rt_routines::rtt_read_i_obs_part2 = 12
 
integer, parameter rt_routines::rtt_read_i_obs = 13
 
integer, parameter rt_routines::rtt_read_ufield = 14
 
integer, parameter rt_routines::rtt_read_scaspe_tot = 15
 
integer, parameter rt_routines::rtt_grid_init_stars = 16
 
integer, parameter rt_routines::rtt_grid_init_dust = 17
 
integer, parameter rt_routines::rtt_grid_init_projection = 18
 
integer, parameter rt_routines::rta_main = 0
 
integer, parameter rt_routines::rta_i_obs = 1
 
integer, parameter rt_routines::rta_2d = 2
 
integer, parameter rt_routines::rta_sed = 3
 
integer, parameter rt_routines::rta_dust = 4
 
integer, parameter rt_routines::rta_dust2d = 5
 
integer, parameter rt_routines::rta_i_obs_dust = 6
 
integer, parameter rt_routines::rta_sed_dust = 7
 
integer, parameter rt_routines::rta_projection = 8
 
integer, parameter rt_routines::ras_go_high = 0
 
integer, parameter rt_routines::ras_gone = 1
 
integer, parameter rt_routines::ras_go_low = 2
 
integer, parameter rt_routines::ras_first_launch = 3
 
integer, parameter rt_routines::ras_re_launched = 4
 
logical rt_routines::print_scaspe_tot
 
logical rt_routines::print_psel_av
 
logical rt_routines::sequential_scattering
 
real(kind=real64), parameter rt_routines::tol_p = 1E-6
 param tol_p_src Tolerance parameter to find host cell of a point source More...
 
logical, dimension(:), allocatable rt_routines::iq_a
 
integer, dimension(:), allocatable rt_routines::iq
 
integer rt_routines::lnum_a
 
integer rt_routines::lnum_a_old
 
integer rt_routines::lnum_node
 
integer rt_routines::lnum_maps
 
integer rt_routines::lnum_node_maps
 
integer, dimension(:), allocatable rt_routines::lnum_node_arr
 
logical, dimension(:), allocatable rt_routines::iq_sca_node
 
integer, dimension(:), allocatable rt_routines::iq_sca_id
 
integer, dimension(:), allocatable rt_routines::iq_maps_id
 
integer, dimension(:), allocatable rt_routines::im_lambda_arr
 
real(kind=real64), dimension(:), allocatable rt_routines::ray_intensity_dep
 
logical rt_routines::no_communications
 
type(list_en_sca), dimension(:), allocatable rt_routines::en_sca_list_received
 
integer, dimension(:), allocatable rt_routines::en_sca_id_thread
 
type(list_en_sca), dimension(:), allocatable rt_routines::en_sca_list
 
type(list_en_sca), dimension(:), allocatable rt_routines::en_sca_list_all
 
type(list_en_sca), dimension(:), allocatable rt_routines::temp_en_sca_list
 
integer rt_routines::en_sca_arrtype
 
integer, dimension(:), allocatable rt_routines::ind_en_sca_list
 
integer rt_routines::count_en_sca
 
integer, dimension(:), allocatable rt_routines::count_en_sca_arr
 
integer rt_routines::count_en_sca_tot
 
integer, dimension(:), allocatable rt_routines::i0_count_en_sca
 
integer, dimension(:,:), allocatable rt_routines::el_out_arr
 
integer, dimension(:,:), allocatable rt_routines::i0_el_out_arr
 
integer, dimension(:), allocatable rt_routines::el_out_mpi
 
integer, dimension(:), allocatable rt_routines::el_in_mpi
 
integer, dimension(:), allocatable rt_routines::i0_el_out_mpi
 
integer, dimension(:), allocatable rt_routines::i0_el_in_mpi
 
logical, dimension(:), allocatable rt_routines::en_sca_confirm
 
integer rt_routines::size_en_sca_list
 
integer rt_routines::n_el_in_tot
 
integer rt_routines::threadid
 
logical, dimension(:), allocatable rt_routines::mpi_proc_completed
 
logical, dimension(:), allocatable rt_routines::wait_thread_arr
 
logical, dimension(:), allocatable rt_routines::handling_mpi_thread_arr
 
integer rt_routines::count_transfer
 
integer, parameter rt_routines::count_transfer_start =100
 
integer rt_routines::num_processed_cells
 
integer, dimension(:,:), allocatable rt_routines::cc_list_all
 
integer, dimension(:), allocatable rt_routines::cc_list_local
 
type(var_arr_2d), dimension(:), allocatable rt_routines::scaspe_temp_recv
 
real(kind=real64), dimension(:), allocatable rt_routines::scaspe_temp_send
 
type(var_arr_1d), dimension(:), allocatable rt_routines::scaspe_temp_arr
 
type(var_arr_2d), dimension(:), allocatable rt_routines::scaspe_temp_arr_big
 
integer rt_routines::iscaspe_big
 
integer *1, dimension(:,:), allocatable rt_routines::transfer_type_all
 
integer *1, dimension(:), allocatable rt_routines::transfer_type_local
 
integer *1 rt_routines::transfer_type_tot_local
 
integer rt_routines::transfer_type_tot_all
 
integer rt_routines::num_scaspe_pass
 
integer *1, parameter rt_routines::mpi_transfer_scaspe = 0
 
integer *1, parameter rt_routines::mpi_transfer_en_sca = 1
 
real(kind=real64) rt_routines::dist_obs
 
integer, dimension(:), allocatable rt_routines::ind_i_obs
 
integer, dimension(:), allocatable rt_routines::ind_out_maps
 
integer, parameter rt_routines::max_n_input = 1000
 
real(kind=real64), dimension(:,:), allocatable rt_routines::sed_arr
 
real(kind=real64), dimension(:,:), allocatable rt_routines::sed_arr_dir
 
logical rt_routines::test_run
 
logical rt_routines::x_wall_on
 
logical rt_routines::y_wall_on
 
logical rt_routines::z_wall_on
 
real(kind=real64), dimension(2) rt_routines::x_wall_coord
 
real(kind=real64), dimension(2) rt_routines::y_wall_coord
 
real(kind=real64), dimension(2) rt_routines::z_wall_coord
 
logical rt_routines::only_direct_rt
 
character(len=lcar) rt_routines::param_to_project