Menu

#45 Build failure with gfortran 4.9.2

closed-fixed
4
2015-04-22
2015-04-15
No

Hi, I get the following build failure when trying to compile 3.1 via an mpif90 compiler wrapper to gfortran 4.9.2.

/usr/projects/hpcsoft/toss2/moonlight/openmpi/1.6.5-gcc-4.9/bin/mpif90 -DBUILD_ROBUST -DGNU -DUSE_MPI -g -O0 -fbounds-check -fopenmp -J../mod -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include/openmpi/opal/mca/hwloc/hwloc132/hwloc/include -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include/openmpi -I/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/mod -I/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source -c /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90 -o CMakeFiles/pfunit.dir/AssertArraysInternalassertEqual.F90.o

/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2100.50:

real(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
                                              1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2133.50:

real(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
                                              1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2672.53:

complex(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                 1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2705.53:

complex(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                 1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3244.53:

integer(kind=i32), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                 1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3277.53:

integer(kind=i64), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                 1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3478.51:

 real(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
                                               1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3489.51:

 real(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
                                               1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3676.54:

 complex(kind=c32), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                  1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3687.54:

 complex(kind=c64), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                  1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3874.54:

 integer(kind=i32), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                  1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3885.54:

 integer(kind=i64), intent(in) :: x(:,:,:,:,:,:,:,:)
                                                  1

Error: Array specification at (1) has more than 7 dimensions
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3674.52:

logical function isWithinTolerance_8D_complex32(x, tolerance, norm)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3685.52:

logical function isWithinTolerance_8D_complex64(x, tolerance, norm)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3872.52:

logical function isWithinTolerance_8D_integer32(x, tolerance, norm)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3883.52:

logical function isWithinTolerance_8D_integer64(x, tolerance, norm)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3476.49:

logical function isWithinTolerance_8D_real32(x, tolerance, norm)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3487.49:

logical function isWithinTolerance_8D_real64(x, tolerance, norm)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2671.36:

function vectorNorm_8D_complex32(x, norm) result(y)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2704.36:

function vectorNorm_8D_complex64(x, norm) result(y)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3243.36:

function vectorNorm_8D_integer32(x, norm) result(y)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3276.36:

function vectorNorm_8D_integer64(x, norm) result(y)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2099.33:

function vectorNorm_8D_real32(x, norm) result(y)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2132.33:

function vectorNorm_8D_real64(x, norm) result(y)
1
Error: Symbol 'x' at (1) has no IMPLICIT type
/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:198.50:

module procedure isWithinTolerance_8D_integer64
1
Error: Ambiguous interfaces 'iswithintolerance_8d_integer64' and 'iswithintolerance_8d_integer32' in generic interface 'iswithintolerance' at (1)
Fatal Error: Error count reached limit of 25.

Related

Bugs: #45

Discussion

  • Michael L. Rilee

    Thank you for the report and I'm sorry for the trouble. This is a surprising failure because the default maximum rank is 5.

    Perhaps something in OpenMPI 1.6.5 is hijacking MAX_RANK or PFUNIT_MAX_RANK (the latter unlikely).

    I've just successfully built and tested pFUnit 3.1 master on OS X 10.10.3 with MacPorts gcc49 4.9.2_1 and OpenMPI 1.8.2. I presume you're using the master branch, let me know if you're on another branch.

    I recall having trouble building with a previous version of OpenMPI, perhaps even 1.6.x.

    Might it be possible to upgrade OpenMPI in your environment? This would be my first choice.

    Alternatively, maybe explicitly setting MAX_RANK would help. Both the GNU make and CMake builds look for the environment variable PFUNIT_MAX_RANK to set MAX_RANK, which is passed to source/GenerateAssertsOnArrays.py. There are also ways to set this variable via the command line.

     
  • Michael L. Rilee

    • labels: --> GNU, GCC 4.9, OpenMPI 1.6.5, MAX_RANK, RANK, Arrays, Assertions, Generated code
    • assigned_to: Michael L. Rilee
    • Priority: 5 --> 4
     
  • Michael L. Rilee

    Another couple of variables are the GNU Make and Python versions. I don't think those are a problem here.

     
  • Michael L. Rilee

    Discussing this issue with Tom highlights that this build is configured for a maximum rank >= 8. Fortran-90/95/2003 allow a maximum rank of 7. Fortran 2008 allows up to 15, a feature that GNU Fortran does not currently support. So if you need arrays of rank 8 or more, you'll need to use a different compiler. Otherwise, we have an odd situation where MAX_RANK is somehow being captured during the build.

    Mike Rilee
    NASA Advanced Software Technology Group
    301-286-3147

     
  • John Wohlbier

    John Wohlbier - 2015-04-16

    Indeed I was trying to do MAX_RANK=8. Sorry for not including that information. The reason I was doing this is that we have a machine that requires a power of 2 MPI ranks, so 5 was not working. I will see if I can get by with 4 instead.

     
    • Tom Clune

      Tom Clune - 2015-04-16

      It still seems like there might be a more subtle misunderstanding/issue here.

      MPI “rank” is unrelated to Fortran “rank”. One can easily have an MPI NPES=2^16 (which would have a max MPI rank of 2^16-1), but this would not necessitate
      arrays of any particular Fortran rank.

      The only situation I can think of is that you have an array that is trying to replicate the 2^N structure of your MPI topology, and would therefore need an array of (Fortran) rank = N. You’d need to declare your arrays differently for each N, or use a different array depending on N, which sounds complicated. And you’d never be able to run large PE counts. N <= 7 for F2003 and N<=15 for F2008. I’m guessing that you are on an IBM Blue Gene, which can easily be much larger than that.

      If you tell us a bit more about your requirements, we might be able to help.

      Cheers,

      • Tom

      On Apr 16, 2015, at 11:17 AM, John Wohlbier wohlbier@users.sf.net wrote:

      Indeed I was trying to do MAX_RANK=8. Sorry for not including that information. The reason I was doing this is that we have a machine that requires a power of 2 MPI ranks, so 5 was not working. I will see if I can get by with 4 instead.

      [bugs:#45] Build failure with gfortran 4.9.2

      Status: open
      Group: Current Release v3.1
      Labels: GNU GCC 4.9 OpenMPI 1.6.5 MAX_RANK RANK Arrays Assertions Generated code
      Created: Wed Apr 15, 2015 10:28 PM UTC by John Wohlbier
      Last Updated: Thu Apr 16, 2015 02:59 PM UTC
      Owner: Michael L. Rilee

      Hi, I get the following build failure when trying to compile 3.1 via an mpif90 compiler wrapper to gfortran 4.9.2.

      /usr/projects/hpcsoft/toss2/moonlight/openmpi/1.6.5-gcc-4.9/bin/mpif90 -DBUILD_ROBUST -DGNU -DUSE_MPI -g -O0 -fbounds-check -fopenmp -J../mod -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include/openmpi/opal/mca/hwloc/hwloc132/hwloc/include -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include/openmpi -I/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/mod -I/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source -c /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90 -o CMakeFiles/pfunit.dir/AssertArraysInternalassertEqual.F90.o

      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2100.50:

      real(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2133.50:

      real(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2672.53:

      complex(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2705.53:

      complex(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3244.53:

      integer(kind=i32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3277.53:

      integer(kind=i64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3478.51:

      real(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3489.51:

      real(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3676.54:

      complex(kind=c32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3687.54:

      complex(kind=c64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3874.54:

      integer(kind=i32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3885.54:

      integer(kind=i64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3674.52:

      logical function isWithinTolerance_8D_complex32(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3685.52:

      logical function isWithinTolerance_8D_complex64(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3872.52:

      logical function isWithinTolerance_8D_integer32(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3883.52:

      logical function isWithinTolerance_8D_integer64(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3476.49:

      logical function isWithinTolerance_8D_real32(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3487.49:

      logical function isWithinTolerance_8D_real64(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2671.36:

      function vectorNorm_8D_complex32(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2704.36:

      function vectorNorm_8D_complex64(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3243.36:

      function vectorNorm_8D_integer32(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3276.36:

      function vectorNorm_8D_integer64(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2099.33:

      function vectorNorm_8D_real32(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2132.33:

      function vectorNorm_8D_real64(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:198.50:

      module procedure isWithinTolerance_8D_integer64
      1
      Error: Ambiguous interfaces 'iswithintolerance_8d_integer64' and 'iswithintolerance_8d_integer32' in generic interface 'iswithintolerance' at (1)
      Fatal Error: Error count reached limit of 25.

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/pfunit/bugs/45/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

      Thomas Clune, Ph. D. Thomas.L.Clune@nasa.gov
      Head ASTG,Code 606
      NASA GSFC
      MS 610.8 B33-C128
      Greenbelt, MD 20771
      301-286-4635

       

      Related

      Bugs: #45

  • John Wohlbier

    John Wohlbier - 2015-04-16

    Does the MAX_RANK build configuration option have anything to do with how many MPI ranks you run the tests with? I guess I assumed MAX_RANK was the maximum number of MPI ranks the tests could be run with. If that's not the case I will stop trying to set MAX_RANK at build time.

     
  • Michael L. Rilee

    Good point. pFUnit's MAX_RANK deals with the number of array dimensions allowed in assertions and is not connected to MPI. We have an overloading of the notion of rank in Fortran vs. MPI. I don't believe pFUnit has a meaningful limit on the maximum MPI rank it supports.

    We should make this clearer in the documentation.

     
  • John Wohlbier

    John Wohlbier - 2015-04-16

    I looked again at the documentation and it was my mistake. Though "PFUNIT_MAX_RANK" I think pretty naturally suggests to a new reader "maximum mpi ranks".

    PFUNIT_MAX_RANK - controls the maximum size of the arrays asserts are defined over. If PFUNIT_MAX_RANK is not set, the default is 5 and pFUnit's assertions will be able to handle arrays up to rank 5.

     
    • Tom Clune

      Tom Clune - 2015-04-16

      Hmmm. I’m happy to change the variable to PFUNIT_MAX_FORTRAN_RANK, but
      there are backward compatibility issues. We can have both for now and
      then deprecate the original in release 4.0.

      Cheers,

      • Tom

      On Apr 16, 2015, at 12:20 PM, John Wohlbier wohlbier@users.sf.net wrote:

      I looked again at the documentation and it was my mistake. Though "PFUNIT_MAX_RANK" I think pretty naturally suggests to a new reader "maximum mpi ranks".

      PFUNIT_MAX_RANK - controls the maximum size of the arrays asserts are defined over. If PFUNIT_MAX_RANK is not set, the default is 5 and pFUnit's assertions will be able to handle arrays up to rank 5.

      [bugs:#45] Build failure with gfortran 4.9.2

      Status: open
      Group: Current Release v3.1
      Labels: GNU GCC 4.9 OpenMPI 1.6.5 MAX_RANK RANK Arrays Assertions Generated code
      Created: Wed Apr 15, 2015 10:28 PM UTC by John Wohlbier
      Last Updated: Thu Apr 16, 2015 04:09 PM UTC
      Owner: Michael L. Rilee

      Hi, I get the following build failure when trying to compile 3.1 via an mpif90 compiler wrapper to gfortran 4.9.2.

      /usr/projects/hpcsoft/toss2/moonlight/openmpi/1.6.5-gcc-4.9/bin/mpif90 -DBUILD_ROBUST -DGNU -DUSE_MPI -g -O0 -fbounds-check -fopenmp -J../mod -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include/openmpi/opal/mca/hwloc/hwloc132/hwloc/include -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include -I/usr/projects/hpcsoft/toss2.2/moonlight/openmpi/1.6.5-gcc-4.9/include/openmpi -I/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/mod -I/usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source -c /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90 -o CMakeFiles/pfunit.dir/AssertArraysInternalassertEqual.F90.o

      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2100.50:

      real(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2133.50:

      real(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2672.53:

      complex(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2705.53:

      complex(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3244.53:

      integer(kind=i32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3277.53:

      integer(kind=i64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3478.51:

      real(kind=r32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3489.51:

      real(kind=r64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3676.54:

      complex(kind=c32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3687.54:

      complex(kind=c64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3874.54:

      integer(kind=i32), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3885.54:

      integer(kind=i64), intent(in) :: x(:,:,:,:,:,:,:,:)
      1
      Error: Array specification at (1) has more than 7 dimensions
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3674.52:

      logical function isWithinTolerance_8D_complex32(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3685.52:

      logical function isWithinTolerance_8D_complex64(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3872.52:

      logical function isWithinTolerance_8D_integer32(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3883.52:

      logical function isWithinTolerance_8D_integer64(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3476.49:

      logical function isWithinTolerance_8D_real32(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3487.49:

      logical function isWithinTolerance_8D_real64(x, tolerance, norm)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2671.36:

      function vectorNorm_8D_complex32(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2704.36:

      function vectorNorm_8D_complex64(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3243.36:

      function vectorNorm_8D_integer32(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:3276.36:

      function vectorNorm_8D_integer64(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2099.33:

      function vectorNorm_8D_real32(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:2132.33:

      function vectorNorm_8D_real64(x, norm) result(y)
      1
      Error: Symbol 'x' at (1) has no IMPLICIT type
      /usr/projects/eap/users/wohlbier/devel/EAP/src/Trunk/eap.rh/ML/Build_xrage/pFUnit/buildit/source/AssertArraysInternalassertEqual.F90:198.50:

      module procedure isWithinTolerance_8D_integer64
      1
      Error: Ambiguous interfaces 'iswithintolerance_8d_integer64' and 'iswithintolerance_8d_integer32' in generic interface 'iswithintolerance' at (1)
      Fatal Error: Error count reached limit of 25.

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/pfunit/bugs/45/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

      Thomas Clune, Ph. D. Thomas.L.Clune@nasa.gov
      Head ASTG,Code 606
      NASA GSFC
      MS 610.8 B33-C128
      Greenbelt, MD 20771
      301-286-4635

       

      Related

      Bugs: #45

  • Michael L. Rilee

    Thanks for following up. It makes sense to clarify the point that rank there refers to the number of Fortran array dimensions.

     
  • Michael L. Rilee

    Changed the documentation on the development branch to clarify that MAX_RANK deals with the number of Fortran array dimensions and is not connected to MPI's notion of rank. Added PFUNIT_MAX_ARRAY_RANK. Added removal of PFUNIT_MAX_RANK at version 4 as a feature request. Note that MAX_RANK is still used internally, which should not concern most users.

     
  • Michael L. Rilee

    • status: open --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB