Installation of TOUGH2-MP with METIS Version 5
TOUGH2-MP uses METIS for graph partitioning.
Issue: TOUGH2-MP Does Not Run with New METIS Version
In June of 2011, a new version of METIS became available.Version 5 of METIS made some API changes (http://glaros.dtc.umn.edu/gkhome/metis/metis/changes), which are not compatible with the API implemented in TOUGH2-MP.
Solution 1: Use Version 4 of METIS
To get the current version of TOUGH2-MP to work, obtain Version 4 of METIS. Older versions of METIS can be found athttp://glaros.dtc.umn.edu/gkhome/fsroot/sw/metis/OLD. We recommend Version 4.0.3.
Solution 2: Adapt METIS Calls to API of METIS Version 5
Modify the TOUGH2-MP fortran (Main_Comp.f) to use the new API of METIS Version 5.
To change the TOUGH2-MP Fortran source code, edit file Main_Comp.f and replace thefollowing section:
if (PartReady==0) then
nparts = nprocs
if (EE_partitioner .EQ. 'METIS_Kway') then
call METIS_PartGraphKway(nel, XADJ, ADJ,
& NULL, NULL, 0, 1, nparts, 0, edgecut, part)
elseif (EE_partitioner .EQ. 'METIS_VKway') then
call METIS_PartGraphVKway(nel, XADJ, ADJ,
& NULL, NULL, 0, 1, nparts, 0, edgecut, part)
elseif (EE_partitioner .EQ. 'METIS_Recursive') then
call METIS_PartGraphRecursive(nel, XADJ, ADJ,
& NULL, NULL, 0, 1, nparts, 0, edgecut, part)
end if
else
with:
if (PartReady==0) then
nparts = nprocs
if (EE_partitioner .EQ. 'METIS_Kway') then
call METIS_Partition_KWay_EdgeCut_Unweighted(nel, XADJ,
& ADJ, nparts, edgecut, part)
elseif (EE_partitioner .EQ. 'METIS_VKway') then
call METIS_Partition_KWay_Volume_Unweighted(nel, XADJ,
& ADJ, nparts, edgecut, part)
elseif (EE_partitioner .EQ. 'METIS_Recursive') then
call METIS_Partition_Recursive_Unweighted(nel, XADJ,
& ADJ, nparts, edgecut, part)
end if
else
Note that TOUGH2-MP has not been fully tested with METIS Version 5.