dBplus_utilities.f90 File Reference

Modules

module  d_bplus_utilities
 

Functions/Subroutines

subroutine d_bplus_utilities::d_bplus_delete (bplus)
 
subroutine d_bplus_utilities::d_bplus_copy (bplus_i, bplus_o, memory)
 
subroutine d_bplus_utilities::d_bplus_copy_delete (bplus_i, bplus_o, memory)
 
subroutine d_bplus_utilities::d_bplus_extract_partial (bplus_i, ll_s, row_group, agent_bplus, msh)
 
subroutine d_bplus_utilities::d_bplus_computememory (bplus_i, memory, rank)
 
logical function d_bplus_utilities::d_bplus_checknan (bplus_i)
 
subroutine d_bplus_utilities::d_hmat_parallelblock_mvp_dat (blocks_1, chara, M, N, Nrnd, random1, ldi, random2, ldo, a, b, ptree, stats)
 
subroutine d_bplus_utilities::d_bp_mult (BP, chara, xin, xout, Ninloc, Noutloc, Ncol, ptree, stats)
 
subroutine d_bplus_utilities::d_bplus_block_mvp_dat (bplus, chara, M, N, Nrnd, random1, ldi, random2, ldo, a, b, ptree, stats, level_start, level_end)
 
subroutine d_bplus_utilities::d_bplus_md_block_mvp_dat (Ndim, bplus, chara, M, N, Nrnd, random1, ldi, random2, ldo, a, b, ptree, stats, msh, option, level_start, level_end)
 
subroutine d_bplus_utilities::d_bplus_redistribute_inplace (bplus_o, stats, ptree, msh)
 
subroutine d_bplus_utilities::d_bf_redistribute_inplace (blocks, pgno_new, stats, ptree, msh)
 
subroutine d_bplus_utilities::d_bf_changepattern (blocks, pat_i, pat_o, stats, ptree)
 
subroutine d_bplus_utilities::d_bf_delete (blocks, allflag)
 
subroutine d_bplus_utilities::d_bf_copy (trans, block_i, block_o, memory)
 
subroutine d_bplus_utilities::d_bf_delete_ker_onelevel (ker_o)
 
subroutine d_bplus_utilities::d_bf_copy_ker_onelevel (ker_i, ker_o)
 
subroutine d_bplus_utilities::d_bf_copy_delete (block_i, block_o, memory)
 
subroutine d_bplus_utilities::d_bf_computememory (block_i, memory)
 
subroutine d_bplus_utilities::d_bf_md_computememory (Ndim, blocks, memory_dense, memory_comp)
 
subroutine d_bplus_utilities::d_bf_md_delete (Ndim, blocks, allflag)
 
integer function d_bplus_utilities::d_bf_switchlevel (level_butterfly, pat_comp)
 
logical function d_bplus_utilities::d_bf_checknan (block_i)
 
subroutine d_bplus_utilities::d_bf_print_size (block_i)
 
subroutine d_bplus_utilities::d_bf_print_size_rank (block_i, tolerance)
 
subroutine d_bplus_utilities::d_bf_extract_partial (block_o, level_butterfly_loc, ij_loc, head, group, LR, agent_block, pgno, ptree)
 
subroutine d_bplus_utilities::d_bf_copyback_partial (block_o, level_butterfly_loc, ij_loc, LR, agent_block, pgno, ptree)
 
subroutine d_bplus_utilities::d_bf_copy_partial (block_i, block_o, level_butterfly_loc, ij_loc, LR, memory)
 
subroutine d_bplus_utilities::d_bf_partial_mvp_half (block_rand, chara, level_start, level_end, random, num_vect_sub, nth_s, nth_e, Ng)
 
subroutine d_bplus_utilities::d_bf_exchange_extraction (blocks, kerls, stats, ptree, level, collect)
 
subroutine d_bplus_utilities::d_bf_exchange_matvec (blocks, kerls, stats, ptree, level, mode, collect)
 
subroutine d_bplus_utilities::d_bf_all2all_sizes (blocks, sizes, ptree, level, mode, mode_new)
 *********** all to all communication of sizes of one butterfly level from row-wise ordering to column-wise ordering or the reverse More...
 
subroutine d_bplus_utilities::d_bf_all2all_extraction (blocks, kerls, kerls1, stats, ptree, level, mode, mode_new)
 *********** all to all communication of extraction results of one butterfly level from row-wise ordering to column-wise ordering or the reverse More...
 
subroutine d_bplus_utilities::d_bf_all2all_vec_n_ker (blocks, kerls, stats, ptree, nproc, level, mode, mode_new, kerflag)
 ***** switching the matvecs/temporary buffer/kernels from row/col distributions to col/row distributions, kerflag=1: kernels, kerflag=0: matvecs and buffer More...
 
subroutine d_bplus_utilities::d_bf_all2all_ker (block_i, pgno_i, kerls_i, level_i, offset_r, offset_c, block_o, pgno_o, kerls_o, level_o, stats, ptree)
 *********** all to all communication of one level of a butterfly from an old process pgno_i to an new process group pgno_o More...
 
subroutine d_bplus_utilities::d_bf_all2all_ker_pattern (block_i, kerls_i, pat_i, block_o, kerls_o, pat_o, level, pgno, stats, ptree)
 *********** all to all communication of one level of a butterfly from an old pattern pat_i to an new pattern pat_o More...
 
subroutine d_bplus_utilities::d_bf_convert_to_smallbf (block_i, block_o, stats, ptree)
 *********** convert blocks in block_isons to block_osons, this is a local function without MPI communication, it is assumed block_isons has L levels, and block_osons will have max(L-2,0) levels More...
 
subroutine d_bplus_utilities::d_bf_all2all_ker_split (block_i, pgno_i, level_i, block_o, pgnos_o, level_o, stats, ptree)
 *********** all to all communication of one level of a butterfly into four children butterflies from an old process pgno_i to an new process group pgno_o More...
 
subroutine d_bplus_utilities::d_bf_all2all_uv (block_i, pgno_i, kerls_i, level_i, offset, block_o, pgno_o, kerls_o, level_o, stats, ptree)
 *********** all to all communication of one level of a butterfly from an old process pgno_i to an new process group pgno_o More...
 
subroutine d_bplus_utilities::d_bf_all2all_u_split (block_i, pgno_i, level_i, block_o, pgnos_o, level_o, stats, ptree)
 *********** all to all communication of one level of a butterfly to four children butterflies from an old process pgno_i to an new process group pgno_o More...
 
subroutine d_bplus_utilities::d_bf_all2all_v_split (block_i, pgno_i, level_i, block_o, pgnos_o, level_o, stats, ptree)
 *********** all to all communication of one level of a butterfly to four children butterflies from an old process pgno_i to an new process group pgno_o More...
 
subroutine d_bplus_utilities::d_bplus_vec_1dto1d (BP, rowcol, one2all, level_s, level_e, ld1, dat_1, Nrnd, vecs, ptree, nproc)
 ***** redistribute the input and output vectors in d_Bplus_block_MVP_dat between layout of bplusLL(1)matrices_block(1) to the layout of bplusLL(xx)matrices_block(yy) More...
 
subroutine d_bplus_utilities::d_bplus_md_vec_1dto1d (Ndim, BP, rowcol, one2all, level_s, level_e, ld1, dat_1, Nrnd, vecs, ptree, nproc)
 ***** redistribute the input and output vectors in d_Bplus_MD_block_MVP_dat between layout of bplusLL(1)matrices_block(1) to the layout of bplusLL(xx)matrices_block(yy) More...
 
subroutine d_bplus_utilities::d_bf_mult (chara, xin, xout, Ninloc, Noutloc, Ncol, blocks, option, stats, ptree)
 
subroutine d_bplus_utilities::d_bf_block_mvp_dat (blocks, chara, M, N, Nrnd, random1, ldi, random2, ldo, a, b, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_block_mvp_dat_nonbatch (blocks, chara, M, N, Nrnd, random1, ldi, random2, ldo, a, b, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_block_mvp_partial (blocks, chara, num_vectors, VectIn, BFvec, level_end, ptree, stats)
 **** Matvec of partial levels of BF with vectors More...
 
subroutine d_bplus_utilities::d_full_block_extraction (blocks, inters, ptree, msh, stats, option)
 
subroutine d_bplus_utilities::d_lr_block_extraction (blocks, inters, ptree, msh, stats)
 
subroutine d_bplus_utilities::d_lr_all2all_extraction (blocks, inters, Vpartial, rank, ncol, stats, ptree, msh)
 *********** all to all communication of columns in the V factor from the 1D block column layout to that needed by the 1D block row layout More...
 
subroutine d_bplus_utilities::d_bf_md_block_extraction (blocks, Ndim, Ninter, inters, ptree, msh, stats)
 
subroutine d_bplus_utilities::d_bf_md_all2all_extraction (Ndim, blocks, Ninter, inters, BFvec, BFvec_transposed, stats, msh, ptree)
 *********** all to all communication of matvec results at the middle butterfly level from row-wise ordering to column-wise ordering More...
 
subroutine d_bplus_utilities::d_bf_md_all2all_mvp (Ndim, blocks, BFvec, BFvec_transposed, stats, msh, ptree)
 *********** all to all communication of matvec results at the middle butterfly level from row-wise ordering to column-wise ordering More...
 
subroutine d_bplus_utilities::d_bf_md_block_mvp (chara, xin, Ninloc, xout, Noutloc, Nvec, blocks, Ndim, ptree, stats, msh, option)
 
subroutine d_bplus_utilities::d_bf_block_extraction (blocks, inters, ptree, msh, stats)
 
subroutine d_bplus_utilities::d_bf_block_extraction_multiply_oneblock_right (blocks, BFvec, level, nn, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_md_block_extraction_multiply_oneblock_right (blocks, bb_m, Ndim, BFvec, idx_r_m, level, dim_i, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_block_extraction_multiply_oneblock_left (blocks, BFvec, level, nn, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_md_block_mvp_multiply_right (blocks, bb_m, Ndim, BFvec, Nvec, level, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_md_block_mvp_multiply_left (blocks, bb_m, Ndim, BFvec, Nvec, level, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_md_block_extraction_multiply_oneblock_left (blocks, bb_m, Ndim, BFvec, idx_c_m, level, dim_i, ptree, stats)
 
subroutine d_bplus_utilities::d_bf_block_extraction_sort_oneblock (blocks, BFvec, level, nn, ptree)
 
subroutine d_bplus_utilities::d_bf_block_extraction_multiply_oneblock_last (blocks, BFvec, inters, level, nn, ptree, msh, stats)
 
integer function d_bplus_utilities::d_findgroup (idx, msh, level, group)
 *** Find the group index of point idx at the (grouplevel+level) level More...
 
integer function d_bplus_utilities::d_findpggroup (idx, msh, ptree, group, pgno)
 *** Find the process group index of point idx in a group More...
 
subroutine d_bplus_utilities::d_bf_value (mi, nj, blocks, value)
 
subroutine d_bplus_utilities::d_bf_get_rank (block_i, ptree, level_o)
 
subroutine d_bplus_utilities::d_bf_md_get_rank (Ndim, blocks, ptree)
 
subroutine d_bplus_utilities::d_bf_sym2asym (blocks)
 
subroutine d_bplus_utilities::d_bf_movesingular_ker (blocks, chara, level_start, level_end, ptree, stats, tolerance)
 
subroutine d_bplus_utilities::d_bf_movesingulartoleft (blocks)
 
subroutine d_bplus_utilities::d_bf_movesingulartoright (blocks)
 
subroutine d_bplus_utilities::d_bf_init_blocks (level_butterfly, groupm, groupn, pgno, block_rand, msh, ptree)
 
recursive subroutine d_bplus_utilities::d_hmat_block_copy (trans, block2, block1, memory)
 
recursive subroutine d_bplus_utilities::d_hmat_block_delete (blocks)
 
recursive subroutine d_bplus_utilities::d_hmat_block_computememory (blocks, memory)
 
recursive subroutine d_bplus_utilities::d_hmat_lsolve (blocks_l, trans, idx_start, nvec, Vinout, ld, ptree, stats)
 
recursive subroutine d_bplus_utilities::d_hmat_usolve (blocks_u, trans, idx_start, nvec, Vinout, ld, ptree, stats)
 
recursive subroutine d_bplus_utilities::d_hmat_block_mvp_dat (blocks, trans, idx_start_m, idx_start_n, Nrnd, Vin, ldi, Vout, ldo, a, ptree, stats, level_start, level_end)
 
subroutine d_bplus_utilities::d_full_block_mvp_dat (blocks, chara, M, num_vectors, random1, ldi, random2, ldo, a, b)
 **** Multiply with dense blocks. More...
 
subroutine d_bplus_utilities::d_full_block_md_mvp_dat (blocks, chara, M, num_vectors, random1, ldi, random2, ldo, a, b)
 **** Multiply with dense blocks (as tensor). This is the same as d_Full_block_MVP_dat, except that blocks needs to be type(d_matrixblock_MD) More...
 
subroutine d_bplus_utilities::d_computeparallelindices_md (block, pgno, Ndim, ptree, msh)
 
subroutine d_bplus_utilities::d_computeparallelindices (block, pgno, ptree, msh)
 
subroutine d_bplus_utilities::d_computeparallelindicessub (base_group, pgno, ptree, msh, MN_p)
 
real(kind=8) function d_bplus_utilities::d_node_score_block_ptr_row (this)
 
real(kind=8) function d_bplus_utilities::d_nod_score_ipair (this)
 
subroutine d_bplus_utilities::d_element_zmn_block_user (nrow, ncol, mrange, nrange, values, msh, option, ker, myflag, passflag, ptree, stats)
 
subroutine d_bplus_utilities::d_element_zmn_blocklist_user (submats, Nsub, msh, option, ker, myflag, passflag, ptree, stats, alldat_loc_in)
 
subroutine d_bplus_utilities::d_element_zmn_tensorlist_user (Ndim, subtensors, Nsub, msh, option, ker, myflag, passflag, ptree, stats, zfpquants)