CASL / Futility

VERA Fortran Utilities
Other
44 stars 20 forks source link

GCC 8.4.0 build failure in PartitionGraph.f90 from SELECTTYPE statement #275

Closed wgurecky closed 4 years ago

wgurecky commented 4 years ago

Encountered an issue building Futility with GCC 8.4.0 at: https://github.com/CASL/Futility/blob/1af276e2d0e027c55aac101616dcc6f96c79467e/src/PartitionGraph.f90#L1042

/home/gurewill/CASL_DEV/VERA.base/VERA/Futility/src/PartitionGraph.f90:1042:23:

   SELECTTYPE(evecs(1)); TYPEIS(PETScVectorType)
                       1

Error: Selector in SELECT TYPE at (1) is not a named variable; use associate-name=>
/home/gurewill/CASL_DEV/VERA.base/VERA/Futility/src/PartitionGraph.f90:1042:30:

   SELECTTYPE(evecs(1)); TYPEIS(PETScVectorType)
                              1

Error: Unexpected TYPE IS statement at (1)
/home/gurewill/CASL_DEV/VERA.base/VERA/Futility/src/PartitionGraph.f90:1044:5:

   ENDSELECT
     1

Error: Expecting END SUBROUTINE statement at (1)
/home/gurewill/CASL_DEV/VERA.base/VERA/Futility/src/PartitionGraph.f90:1043:53:

     CALL recursiveEigenOrder(evecs(2:numvecs), Order)
                                                     1

Error: Type mismatch in argument 'evecs' at (1); passed CLASS(vectortype) to TYPE(petscvectortype)

make[2]: *** [Futility/src/CMakeFiles/Utils.dir/PartitionGraph.f90.o] Error 1

Proposed fix:

--- a/src/PartitionGraph.f90
+++ b/src/PartitionGraph.f90
@@ -1039,7 +1039,7 @@ RECURSIVE SUBROUTINE RecursiveSpectralBisection(thisGraph)
   DO iv=1,nvert
     Order(iv)=iv
   ENDDO !iv
-  SELECTTYPE(evecs(1)); TYPEIS(PETScVectorType)
+  SELECTTYPE(evecs); TYPEIS(PETScVectorType)
     CALL recursiveEigenOrder(evecs(2:numvecs), Order)
   ENDSELECT
   DO iv=1,SIZE(evecs)