64Bit: Segmentation fault in pgf90_template1 ()

Hi,

I have compiled the MUMPS-Solver (http://www.enseeiht.fr/lima/apo/MUMPS/) with the 64-Bit PGI-Compiler 6.0-4 (pgf90, pgcc) on an Opteron-Workstation running 64-Bit SuSE Linux 9.3. As compiler option only -O was set for both compilers. The compilation was successful, but one test-file (c_example) fails with the following error-message:

Program received signal SIGSEGV, Segmentation fault.
0x000000000050df7b in pgf90_template1 ()

In this file a FORTRAN90-Function is called from a C-Routine and the segmentation fault occurs when the FORTRAN90-Function is called.

All other example files which uses only FORTRAN90 run well.

If I compile the whole library with the 32-Bit PGI-Compiler then the segmentation fault does not occur.

Thanks,

Stefan

Hi Stefan,

Thanks for the report. We were able to recreate the problem here and have determined that it is a compiler bug. I have created a technical problem report (TPR #3569) and have listed you as the point of contact.

The work around is to change how the “[CDSZ]MUMPS_F77” subroutines are defined. These subroutines can be found towards the end of the MUMPS source files “[cdsz]mumps_part8.F”. For all occurrences of the assumed size arrays with the target attribute, change the ‘*’ to a ‘1’.

Example from “src/dmumps_part8.F”:

       INTEGER, TARGET :: IRN(*), JCN(*), ELPTR(*), ELTVAR(*) 
       INTEGER, TARGET :: PERM_IN(*), IRN_loc(*), JCN_loc(*)
       INTEGER, TARGET :: LISTVAR_SCHUR(*)
       DOUBLE PRECISION, TARGET :: A(*), A_ELT(*), A_LOC(*), RHS(*)
       DOUBLE PRECISION, TARGET :: ROWSCA(*), COLSCA(*)
       DOUBLE PRECISION, TARGET :: SCHUR(*)

change to:

       INTEGER, TARGET :: IRN(1), JCN(1), ELTPTR(1), ELTVAR(1)
       INTEGER, TARGET :: PERM_IN(1), IRN_loc(1), JCN_loc(1)
       INTEGER, TARGET :: LISTVAR_SCHUR(1)
       DOUBLE PRECISION, TARGET :: A(1), A_ELT(1), A_LOC(1), RHS(1)
       DOUBLE PRECISION, TARGET :: ROWSCA(1), COLSCA(1)
       DOUBLE PRECISION, TARGET :: SCHUR(1)

Sorry of the inconvience,
Mat

FYI, this error has been corrected and the fix will be available in the upcoming 6.0-5 release.

  • Mat