Data Types | Modules | Functions/Subroutines | Variables

coagulation_dist.F95 File Reference

The pmc_coagulation_dist module. More...

Data Types

type  pmc_coagulation_dist::request_t
 A single outstanding request for a remote particle. More...

Modules

module  pmc_coagulation_dist
 

Parallel aerosol particle coagulation with MPI.


Functions/Subroutines

subroutine pmc_coagulation_dist::request_allocate (request)
subroutine pmc_coagulation_dist::request_deallocate (request)
 Deallocate a request object and set it to be invalid.
logical pmc_coagulation_dist::request_is_active (request)
 Whether the given reqest object is currectly active.
subroutine pmc_coagulation_dist::mc_coag_dist (coag_kernel_type, bin_grid, env_state, aero_data, aero_weight, aero_state, del_t, k_max, tot_n_samp, tot_n_coag)
 Do coagulation for time del_t.
subroutine pmc_coagulation_dist::coag_dist_recv (requests, bin_grid, env_state, aero_data, aero_weight, aero_state, accept_factors, coag_kernel_type, tot_n_coag, comp_vols, procs_done)
subroutine pmc_coagulation_dist::add_coagulation_requests (bin_grid, aero_state, requests, n_parts, local_bin, remote_bin, n_samps, samps_remaining)
logical pmc_coagulation_dist::any_requests_active (requests)
 Returns .true. if any of the requests are active, otherwise returns .false.
subroutine pmc_coagulation_dist::find_rand_remote_proc (bin_grid, n_parts, remote_bin, remote_proc)
subroutine pmc_coagulation_dist::update_n_samps (bin_grid, n_samps, local_bin, remote_bin, samps_remaining)
subroutine pmc_coagulation_dist::send_request_particle (remote_proc, remote_bin)
subroutine pmc_coagulation_dist::recv_request_particle (aero_state)
subroutine pmc_coagulation_dist::send_return_no_particle (dest_proc, i_bin)
subroutine pmc_coagulation_dist::recv_return_no_particle (requests, bin_grid, aero_data, aero_state)
subroutine pmc_coagulation_dist::send_return_req_particle (aero_particle, i_bin, dest_proc)
subroutine pmc_coagulation_dist::recv_return_req_particle (requests, bin_grid, env_state, aero_data, aero_weight, aero_state, accept_factors, coag_kernel_type, tot_n_coag, comp_vols)
subroutine pmc_coagulation_dist::send_return_unreq_particle (aero_particle, dest_proc)
subroutine pmc_coagulation_dist::recv_return_unreq_particle (aero_state, bin_grid)
subroutine pmc_coagulation_dist::send_done (dest_proc)
 Send a message saying that this process is finished with its coagulation.
subroutine pmc_coagulation_dist::recv_done (procs_done)
 Receive a done message.
subroutine pmc_coagulation_dist::sync_info (local_n_parts, local_comp_vol, global_n_parts, global_comp_vols)
 Do an allgather to exchange number of particles and computational volume information between all processes.
subroutine pmc_coagulation_dist::generate_n_samps (bin_grid, n_parts, comp_vols, del_t, k_max, n_samps, accept_factors)
 generate the number of samples to do per bin pair.
subroutine pmc_coagulation_dist::coagulate_dist (bin_grid, aero_data, aero_weight, aero_state, aero_particle_1, aero_particle_2, remote_proc, comp_vols, remove_1, remove_2)

Variables

integer, parameter pmc_coagulation_dist::COAG_DIST_OUTGOING_BUFFER_SIZE = 1000000
 Size of the outgoing buffer for bsend (bytes).
integer, parameter pmc_coagulation_dist::COAG_DIST_MAX_BUFFER_SIZE = 10000
 Size of send and receive buffer for each message (bytes).
integer, parameter pmc_coagulation_dist::COAG_DIST_MAX_REQUESTS = 1
integer, parameter pmc_coagulation_dist::COAG_DIST_TAG_REQUEST_PARTICLE = 5321
integer, parameter pmc_coagulation_dist::COAG_DIST_TAG_RETURN_REQ_PARTICLE = 5322
integer, parameter pmc_coagulation_dist::COAG_DIST_TAG_RETURN_UNREQ_PARTICLE = 5323
integer, parameter pmc_coagulation_dist::COAG_DIST_TAG_RETURN_NO_PARTICLE = 5324
integer, parameter pmc_coagulation_dist::COAG_DIST_TAG_DONE = 5325

Detailed Description

The pmc_coagulation_dist module.