26 use,
intrinsic :: iso_fortran_env
33 integer,
parameter :: &
34 METIS_OPTION_PTYPE = 1, &
61 integer,
parameter :: &
62 METIS_OK = 1, & !< Returned normally
68#if METIS_IDXTYPEWIDTH == 64
69 integer,
parameter :: imetis = int64
70 type(MPI_Datatype),
parameter :: MPI_METIS_INT = mpi_integer8
72 integer,
parameter :: imetis = int32
73 type(MPI_Datatype),
parameter :: MPI_METIS_INT = mpi_integer
78#if defined(HAVE_PARMETIS) || defined(HAVE_METIS)
82 integer(imetis),
intent(inout) :: options
86 use,
intrinsic :: iso_fortran_env
89 integer(imetis),
intent(in) :: nvtxs
90 integer(imetis),
intent(in) :: ncon
91 integer(imetis),
intent(in) :: xadj
92 integer(imetis),
intent(in) :: adjncy
93 integer(imetis),
intent(in) :: nparts
94 real(real32),
intent(in) :: tpwgts
96 real(real32),
intent(in) :: ubvec
98 integer(imetis),
intent(in) :: options
99 integer(imetis),
intent(out) :: objval
101 integer(imetis),
intent(out) :: part
105 integer function oct_metis_partgraphkway(nvtxs, ncon, xadj, adjncy, nparts, tpwgts, ubvec, options, objval, part)
106 use,
intrinsic :: iso_fortran_env
109 integer(imetis),
intent(in) :: nvtxs
110 integer(imetis),
intent(in) :: ncon
111 integer(imetis),
intent(in) :: xadj
112 integer(imetis),
intent(in) :: adjncy
113 integer(imetis),
intent(in) :: nparts
114 real(real32),
intent(in) :: tpwgts
116 real(real32),
intent(in) :: ubvec
118 integer(imetis),
intent(in) :: options
119 integer(imetis),
intent(out) :: objval
121 integer(imetis),
intent(out) :: part
126#if defined(HAVE_PARMETIS)
128 subroutine oct_parmetis_v3_partkway(vtxdist, xadj, adjncy, ncon, nparts, tpwgts, ubvec, options, edgecut, part, comm)
129 use,
intrinsic :: iso_fortran_env
132 integer(imetis),
intent(in) :: vtxdist
134 integer(imetis),
intent(in) :: xadj
135 integer(imetis),
intent(in) :: adjncy
136 integer(imetis),
intent(in) :: ncon
138 integer(imetis),
intent(in) :: nparts
141 real(real32),
intent(in) :: tpwgts
148 real(real32),
intent(in) :: ubvec
151 integer(imetis),
intent(in) :: options
154 integer(imetis),
intent(out) :: edgecut
156 integer(imetis),
intent(out) :: part
159 integer,
intent(in) :: comm
184 integer(int32),
intent(in) :: ii
190 integer(imetis),
intent(in) :: ii
196 integer(int32),
intent(in) :: ii(:)
203 integer(imetis),
intent(in) :: ii(:)
210 integer(int64),
intent(in) :: ii
216 integer(imetis),
intent(in) :: ii
222 integer(int64),
intent(in) :: ii(:)
223 integer(imetis) :: i8_to_imetis_1(lbound(ii, 1, kind=int64):ubound(ii, 1, kind=int64))
225 i8_to_imetis_1 = int(ii,
imetis)
229 integer(imetis),
intent(in) :: ii(:)
230 integer(int64) :: imetis_to_i8_1(lbound(ii, 1, kind=
imetis):ubound(ii, 1, kind=
imetis))
232 imetis_to_i8_1 = int(ii, int64)
This module contains interfaces for METIS and PARMETIS routines.
integer, parameter metis_option_tpwgts
integer, parameter metis_option_rtype
pure integer(int64) function, dimension(lbound(ii, 1, kind=imetis):ubound(ii, 1, kind=imetis)) imetis_to_i8_1(ii)
pure integer(int32) function, dimension(lbound(ii, 1, kind=imetis):ubound(ii, 1, kind=imetis)) imetis_to_i4_1(ii)
integer, parameter metis_option_balance
pure integer(imetis) function, dimension(lbound(ii, 1, kind=int64):ubound(ii, 1, kind=int64)) i8_to_imetis_1(ii)
integer, parameter metis_option_minconn
integer, parameter metis_option_numbering
integer, parameter metis_option_seed
integer, parameter metis_option_no2hop
integer, parameter metis_error_memory
Returned due to insufficient memory.
integer, parameter metis_option_objtype
integer, parameter metis_option_dbglvl
pure integer(imetis) function, dimension(lbound(ii, 1):ubound(ii, 1)) i4_to_imetis_1(ii)
integer, parameter metis_option_pfactor
integer, parameter metis_option_ncuts
integer, parameter metis_option_ctype
integer, parameter metis_option_niter
integer, parameter metis_option_gtype
integer(int32) pure function imetis_to_i4_0(ii)
integer(int64) pure function imetis_to_i8_0(ii)
integer, parameter metis_error_input
Returned due to erroneous inputs and/or options.
integer, parameter metis_option_help
integer, parameter metis_option_nooutput
integer, parameter metis_option_ncommon
integer, parameter metis_option_contig
integer(imetis) pure function i8_to_imetis_0(ii)
integer, parameter metis_option_ufactor
integer, parameter metis_option_ccorder
integer, parameter metis_option_compress
integer(imetis) pure function i4_to_imetis_0(ii)
integer, parameter metis_error
Some other errors.
integer, parameter imetis
integer, parameter metis_option_iptype
integer, parameter metis_option_nseps
integer, parameter metis_option_ubvec