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