# HG changeset patch # User Sean Farley # Date 1322279603 21600 # Node ID f6fc32c3dec2c9875d6f6412039542111cb1e3e7 # Parent 7fa89842df68bd08f9dbfdc438fec9b85543317b Update for new metis version 5.0.2 diff --git a/src/cmumps_part2.F b/src/cmumps_part2.F --- a/src/cmumps_part2.F +++ b/src/cmumps_part2.F @@ -1048,11 +1048,10 @@ INTEGER NEMIN, LP, MP, LDIAG, ITEMP, symmetry INTEGER MedDens, NBQD, AvgDens LOGICAL PROK, COMPRESS_SCHUR INTEGER NBBUCK INTEGER, DIMENSION(:), ALLOCATABLE :: HEAD - INTEGER NUMFLAG INTEGER OPT_METIS_SIZE INTEGER, DIMENSION(:), ALLOCATABLE :: OPTIONS_METIS REAL, DIMENSION(:), ALLOCATABLE :: COLSCA_TEMP INTEGER THRESH, IVersion LOGICAL AGG6 @@ -1414,34 +1413,38 @@ #if defined(metis) || defined(parmetis) IF (IORD.EQ.5) THEN IF (PROK) THEN WRITE(MP,'(A)') ' Ordering based on METIS ' ENDIF - NUMFLAG = 1 - OPT_METIS_SIZE = 8 + OPT_METIS_SIZE = 24 ALLOCATE( OPTIONS_METIS (OPT_METIS_SIZE ), stat = IERR ) IF ( IERR .GT. 0 ) THEN INFO( 1 ) = -7 INFO( 2 ) = OPT_METIS_SIZE RETURN ENDIF +C This sets the default values + DO I=1,OPT_METIS_SIZE + OPTIONS_METIS(I) = -1 + ENDDO +C This 0 is a special value that tells METIS to use certain +C default parameters OPTIONS_METIS(1) = 0 +C This number, 17, corresponds to METIS_OPTIONS_NUMBERING which +C tells METIS to use fortran numbering and is found in metis.h + OPTIONS_METIS(17) = 1 IF (COMPRESS .EQ. 1) THEN DO I=1,KEEP(93)/2 FILS(I) = 2 ENDDO DO I=KEEP(93)/2+1,NCMP FILS(I) = 1 ENDDO - CALL METIS_NODEWND(NCMP, IW(L2), IW(1),FILS, - & NUMFLAG, OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) - ELSE - CALL METIS_NODEND(NCMP, IW(L2), IW(1), NUMFLAG, - & OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) ENDIF + CALL METIS_NODEND(NCMP, IW(L2), IW(1),FILS, + & OPTIONS_METIS, + & IKEEP(1,2), IKEEP(1,1) ) DEALLOCATE (OPTIONS_METIS) IF ( COMPRESS_SCHUR ) THEN CALL CMUMPS_622( & N, NCMP, IKEEP(1,1),IKEEP(1,2), & LISTVAR_SCHUR, SIZE_SCHUR, FILS) diff --git a/src/dmumps_part2.F b/src/dmumps_part2.F --- a/src/dmumps_part2.F +++ b/src/dmumps_part2.F @@ -1044,11 +1044,10 @@ INTEGER NEMIN, LP, MP, LDIAG, ITEMP, symmetry INTEGER MedDens, NBQD, AvgDens LOGICAL PROK, COMPRESS_SCHUR INTEGER NBBUCK INTEGER, DIMENSION(:), ALLOCATABLE :: HEAD - INTEGER NUMFLAG INTEGER OPT_METIS_SIZE INTEGER, DIMENSION(:), ALLOCATABLE :: OPTIONS_METIS DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: COLSCA_TEMP INTEGER THRESH, IVersion LOGICAL AGG6 @@ -1410,34 +1409,38 @@ #if defined(metis) || defined(parmetis) IF (IORD.EQ.5) THEN IF (PROK) THEN WRITE(MP,'(A)') ' Ordering based on METIS ' ENDIF - NUMFLAG = 1 - OPT_METIS_SIZE = 8 + OPT_METIS_SIZE = 24 ALLOCATE( OPTIONS_METIS (OPT_METIS_SIZE ), stat = IERR ) IF ( IERR .GT. 0 ) THEN INFO( 1 ) = -7 INFO( 2 ) = OPT_METIS_SIZE RETURN ENDIF +C This sets the default values + DO I=1,OPT_METIS_SIZE + OPTIONS_METIS(I) = -1 + ENDDO +C This 0 is a special value that tells METIS to use certain +C default parameters OPTIONS_METIS(1) = 0 +C This number, 17, corresponds to METIS_OPTIONS_NUMBERING which +C tells METIS to use fortran numbering and is found in metis.h + OPTIONS_METIS(17) = 1 IF (COMPRESS .EQ. 1) THEN DO I=1,KEEP(93)/2 FILS(I) = 2 ENDDO DO I=KEEP(93)/2+1,NCMP FILS(I) = 1 ENDDO - CALL METIS_NODEWND(NCMP, IW(L2), IW(1),FILS, - & NUMFLAG, OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) - ELSE - CALL METIS_NODEND(NCMP, IW(L2), IW(1), NUMFLAG, - & OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) ENDIF + CALL METIS_NODEND(NCMP, IW(L2), IW(1),FILS, + & OPTIONS_METIS, + & IKEEP(1,2), IKEEP(1,1) ) DEALLOCATE (OPTIONS_METIS) IF ( COMPRESS_SCHUR ) THEN CALL DMUMPS_622( & N, NCMP, IKEEP(1,1),IKEEP(1,2), & LISTVAR_SCHUR, SIZE_SCHUR, FILS) diff --git a/src/smumps_part2.F b/src/smumps_part2.F --- a/src/smumps_part2.F +++ b/src/smumps_part2.F @@ -1044,11 +1044,10 @@ INTEGER NEMIN, LP, MP, LDIAG, ITEMP, symmetry INTEGER MedDens, NBQD, AvgDens LOGICAL PROK, COMPRESS_SCHUR INTEGER NBBUCK INTEGER, DIMENSION(:), ALLOCATABLE :: HEAD - INTEGER NUMFLAG INTEGER OPT_METIS_SIZE INTEGER, DIMENSION(:), ALLOCATABLE :: OPTIONS_METIS REAL, DIMENSION(:), ALLOCATABLE :: COLSCA_TEMP INTEGER THRESH, IVersion LOGICAL AGG6 @@ -1410,34 +1409,38 @@ #if defined(metis) || defined(parmetis) IF (IORD.EQ.5) THEN IF (PROK) THEN WRITE(MP,'(A)') ' Ordering based on METIS ' ENDIF - NUMFLAG = 1 - OPT_METIS_SIZE = 8 + OPT_METIS_SIZE = 24 ALLOCATE( OPTIONS_METIS (OPT_METIS_SIZE ), stat = IERR ) IF ( IERR .GT. 0 ) THEN INFO( 1 ) = -7 INFO( 2 ) = OPT_METIS_SIZE RETURN ENDIF +C This sets the default values + DO I=1,OPT_METIS_SIZE + OPTIONS_METIS(I) = -1 + ENDDO +C This 0 is a special value that tells METIS to use certain +C default parameters OPTIONS_METIS(1) = 0 +C This number, 17, corresponds to METIS_OPTIONS_NUMBERING which +C tells METIS to use fortran numbering and is found in metis.h + OPTIONS_METIS(17) = 1 IF (COMPRESS .EQ. 1) THEN DO I=1,KEEP(93)/2 FILS(I) = 2 ENDDO DO I=KEEP(93)/2+1,NCMP FILS(I) = 1 ENDDO - CALL METIS_NODEWND(NCMP, IW(L2), IW(1),FILS, - & NUMFLAG, OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) - ELSE - CALL METIS_NODEND(NCMP, IW(L2), IW(1), NUMFLAG, - & OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) ENDIF + CALL METIS_NODEND(NCMP, IW(L2), IW(1),FILS, + & OPTIONS_METIS, + & IKEEP(1,2), IKEEP(1,1) ) DEALLOCATE (OPTIONS_METIS) IF ( COMPRESS_SCHUR ) THEN CALL SMUMPS_622( & N, NCMP, IKEEP(1,1),IKEEP(1,2), & LISTVAR_SCHUR, SIZE_SCHUR, FILS) diff --git a/src/zmumps_part2.F b/src/zmumps_part2.F --- a/src/zmumps_part2.F +++ b/src/zmumps_part2.F @@ -1048,11 +1048,10 @@ INTEGER NEMIN, LP, MP, LDIAG, ITEMP, symmetry INTEGER MedDens, NBQD, AvgDens LOGICAL PROK, COMPRESS_SCHUR INTEGER NBBUCK INTEGER, DIMENSION(:), ALLOCATABLE :: HEAD - INTEGER NUMFLAG INTEGER OPT_METIS_SIZE INTEGER, DIMENSION(:), ALLOCATABLE :: OPTIONS_METIS DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: COLSCA_TEMP INTEGER THRESH, IVersion LOGICAL AGG6 @@ -1414,34 +1413,38 @@ #if defined(metis) || defined(parmetis) IF (IORD.EQ.5) THEN IF (PROK) THEN WRITE(MP,'(A)') ' Ordering based on METIS ' ENDIF - NUMFLAG = 1 - OPT_METIS_SIZE = 8 + OPT_METIS_SIZE = 24 ALLOCATE( OPTIONS_METIS (OPT_METIS_SIZE ), stat = IERR ) IF ( IERR .GT. 0 ) THEN INFO( 1 ) = -7 INFO( 2 ) = OPT_METIS_SIZE RETURN ENDIF +C This sets the default values + DO I=1,OPT_METIS_SIZE + OPTIONS_METIS(I) = -1 + ENDDO +C This 0 is a special value that tells METIS to use certain +C default parameters OPTIONS_METIS(1) = 0 +C This number, 17, corresponds to METIS_OPTIONS_NUMBERING which +C tells METIS to use fortran numbering and is found in metis.h + OPTIONS_METIS(17) = 1 IF (COMPRESS .EQ. 1) THEN DO I=1,KEEP(93)/2 FILS(I) = 2 ENDDO DO I=KEEP(93)/2+1,NCMP FILS(I) = 1 ENDDO - CALL METIS_NODEWND(NCMP, IW(L2), IW(1),FILS, - & NUMFLAG, OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) - ELSE - CALL METIS_NODEND(NCMP, IW(L2), IW(1), NUMFLAG, - & OPTIONS_METIS, - & IKEEP(1,2), IKEEP(1,1) ) ENDIF + CALL METIS_NODEND(NCMP, IW(L2), IW(1),FILS, + & OPTIONS_METIS, + & IKEEP(1,2), IKEEP(1,1) ) DEALLOCATE (OPTIONS_METIS) IF ( COMPRESS_SCHUR ) THEN CALL ZMUMPS_622( & N, NCMP, IKEEP(1,1),IKEEP(1,2), & LISTVAR_SCHUR, SIZE_SCHUR, FILS)