27 subroutine make_partition_and_mpi_files()
40 if (
mpi_id.eq.0)
write(*,
'(A)')
'---------------------Partitioning----------------------'
60 if (
mpi_id.eq.0)
write(*,
'(A)')
'Reading existing partitioning...'
68 if (
mpi_id.eq.0)
write(*,
'(A)')
'Read.'
72 write(*,
'(A)')
'Making new partitioning...'
83 write(*,
'(A)')
'Made.'
114 write(*,
'(A)')
'--------------Making Spectral connectivity-------------'
168 write(*,
'(A)')
'Made.'
207 write(*,
'(A)')
'---------------Making local connectivity---------------'
239 else if (
ip .lt. 100)
then
241 else if (
ip .lt. 1000)
then
243 else if (
ip .lt. 10000)
then
245 else if (
ip .lt. 100000)
then
247 else if (
ip .lt. 1000000)
then
324 else if (
ip .lt. 100)
then
326 else if (
ip .lt. 1000)
then
328 else if (
ip .lt. 10000)
then
330 else if (
ip .lt. 100000)
then
332 else if (
ip .lt. 1000000)
then
360 if(
mpi_id.eq.0)
write(*,
'(A)')
'Made.'
396 else if (
mpi_id .lt. 100)
then
398 else if (
mpi_id .lt. 1000)
then
400 else if (
mpi_id .lt. 10000)
then
402 else if (
mpi_id .lt. 100000)
then
404 else if (
mpi_id .lt. 1000000)
then
430 else if (
mpi_id .lt. 100)
then
432 else if (
mpi_id .lt. 1000)
then
434 else if (
mpi_id .lt. 10000)
then
436 else if (
mpi_id .lt. 100000)
then
438 else if (
mpi_id .lt. 1000000)
then
463 if(
mpi_id .eq.0)
write(*,
'(A)')
464 if(
mpi_id .eq.0)
write(*,
'(A)')
'------------------Counting local nodes-----------------'
468 if(
mpi_id .eq.0)
write(*,
'(A)')
'Made.'
474 if(
mpi_id .eq.0)
write(*,
'(A)')
475 if(
mpi_id .eq.0)
write(*,
'(A)')
'--------------Make local nodes numbering---------------'
499 if(
mpi_id .eq.0)
write(*,
'(A)')
'Made.'
500 if(
mpi_id .eq.0)
write(*,
'(A)')
514 call mpi_bcast(
nnod,1,speed_integer,0,mpi_comm_world,
mpi_ierr)
550 end subroutine make_partition_and_mpi_files
subroutine get_elem_from_face(nb_nz_el, list_el, v1, v2, v3, ie)
Find element index from verteces number.
subroutine get_indloc_from_indglo(local_el, nel_loc, ie, ic)
Returns local id from global id.
subroutine get_loc_node_num(nnz_loc, cs_loc, nn_loc, id)
Computes number of local nodes.
subroutine make_grid_nodes(nb_node, nb_elem, con_matrix, node_wgt, nnz
Makes pointer for connectivity of mesh nodes.
subroutine make_ren_loc_node(nnz_loc, cs_loc, nn_loc, id, loc_n_nu
Renumerates the grid nodes.
subroutine make_spx_con(nelem, con_mac, nmat, tag_mat, sdeg, nnz_pntr, node_pntr, con_nnz, c
Makes spectral connectivity vector.
subroutine make_spx_con_loc(nel_loc, nel, el_dom, nnz, cs, nnz_loc, cs_loc, nm, tag_mat, sdeg_mat, mpi_id)
Makes local connectivity vector.
subroutine make_spx_con_loc_bound(cs_nnz, cs, ne_bc, cm_bc, nm, tm, sd, ennz, ebin, cs_nnz_bc, cs_bc, loc_el
Makes spectral connectivity vector for the boundary.
subroutine make_spx_nodes(nb_node, spx_con_nnz, spx_con, node_wgt, nnz
Makes a pointer for spectral connectivity vector.
subroutine make_wgt_grid_nodes(nb_node, nb_elem, con_matrix, node_wgt
Computes multeplicity for mesh nodes.
subroutine make_wgt_spx_nodes(nb_node, spx_con_nnz, spx_con, node_wgt
Computes multeplicity for spectral nodes.
subroutine mesh_partitioning(mpi_file, nelem, nnode, nparts, conn, w_yn
Makes mesh partitioning using METIS.
Contains SPEED PARAMETERS used in (SPEED, READ_INPUT_FILES, MAKE_PARTION_AND_MPI_FILES,...
integer *4, dimension(:), allocatable elem_index
integer *4, dimension(:), allocatable con_spx
integer *4, dimension(:), allocatable local_el_num
integer *4 con_nnz_bc_loc
character *70 file_mpi_new
integer *4, dimension(:), allocatable node_domain
integer *4, dimension(:,:), allocatable con
integer *4, dimension(:), allocatable con_spx_bc_loc
integer *4, dimension(:), allocatable node_weight
integer *4, dimension(:), allocatable local_node_num
integer *4 nnz_node_weight
integer *4, dimension(:), allocatable sdeg_mat
integer *4, dimension(:), allocatable con_spx_loc
integer *4, dimension(:), allocatable tag_mat
integer *4, dimension(:,:), allocatable con_bc
integer *4, dimension(:), allocatable node_pointer
integer *4, dimension(:), allocatable elem_domain