[petsc-dev] Bug in example code

Barry Smith bsmith at mcs.anl.gov
Wed Nov 23 16:58:39 CST 2011


On Nov 23, 2011, at 1:28 PM, Tim Gallagher wrote:

> I couldn't agree more about using the modern versions of Fortran! Oh the fights we've had here about that one... 
> 
> I thought I read somewhere that petsc F90 wasn't working correctly/had limited support, but perhaps that was old or incorrect. I think I got that impression here:
> 
> http://www.mcs.anl.gov/petsc/petsc-3.1/docs/manualpages/Sys/UsingFortran.html


"We recommend either 2 or 3."

Only 1 is pure F77 style and there is probably no reason to use it.



> 
> I will recompile it with the F90 turned on instead. 

  You don't really have to change anything to use 2 or 3 , the same libraries, no different configuration.  Just other examples


   Barry

> 
> Thanks,
> 
> Tim
> 
> ----- Original Message -----
> From: "Barry Smith" <bsmith at mcs.anl.gov>
> To: gtg085x at mail.gatech.edu, "For users of the development version of PETSc" <petsc-dev at mcs.anl.gov>
> Sent: Wednesday, November 23, 2011 2:16:59 PM
> Subject: Re: [petsc-dev] Bug in example code
> 
> 
>   Tim,
> 
>    You must have array bounds checking turned on for Fortran with the Intel debug version. The lines
> 
> subroutine FormInitialGuess(X,ierr)
>      implicit none
> 
> #include "ex5f.h"
> 
> !  Input/output variables:
>      Vec      X
>      PetscErrorCode  ierr
> 
> !  Declarations for use with local arrays:
>      PetscScalar lx_v(0:1)
>      PetscOffset lx_i
>      Vec         localX
> 
> will break that because we access outside th lx_f(0:1) array.   Our Fortran examples that use F77 have to violate the array bounds so must be compiled without that checking. 
> 
> The Fortran 90 examples like ex5f90.F use F90 constructs and thus don't violate bounds. If you plan to use Fortran it makes sense to use the F90 version; after all 2011 >> 1977 :-)
> 
>   Barry
> 
> 
> 
> On Nov 23, 2011, at 12:04 PM, Tim Gallagher wrote:
> 
>> Hi, 
>> 
>> I just cloned the petsc-dev branch for the first time and built it with GCC with both release and debug options and the tests during make test worked fine. I then built it with Intel with release options and the tests worked. Then I compiled with debug options and one of the tests generates an error:
>> 
>> Possible error running Fortran example src/snes/examples/tutorials/ex5f with 1 MPI process
>> See http://www.mcs.anl.gov/petsc/documentation/faq.html
>> forrtl: severe (408): fort: (2): Subscript #1 of the array LX_V has value 15092 which is greater than the upper bound of 1
>> 
>> Image              PC                Routine            Line        Source             
>> libirc.so          00007F4245C589AA  Unknown               Unknown  Unknown
>> libirc.so          00007F4245C574A6  Unknown               Unknown  Unknown
>> libifcore.so.5     00007F4240A5B6FC  Unknown               Unknown  Unknown
>> libifcore.so.5     00007F42409CEDA2  Unknown               Unknown  Unknown
>> libifcore.so.5     00007F42409CF323  Unknown               Unknown  Unknown
>> ex5f               0000000000403F58  forminitialguess_         294  ex5f.F
>> ex5f               0000000000403719  MAIN__                    224  ex5f.F
>> ex5f               00000000004028AC  Unknown               Unknown  Unknown
>> libc.so.6          00007F42401AB23D  Unknown               Unknown  Unknown
>> ex5f               00000000004027A9  Unknown               Unknown  Unknown
>> 
>> I am using:
>> 
>> Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.1.1.256 Build 20111011
>> Copyright (C) 1985-2011 Intel Corporation.  All rights reserved.
>> 
>> and petsc was configured with:
>> 
>> ./configure PETSC_ARCH=linux-intel-debug --prefix=/opt/petsc/intel/2011.sp1.1/debug --with-make-np=12 --with-clanguage=C++ --with-c-support=1--with-fortran-kernels=1 --with-shared-libraries=1--download-scalapack=yes --download-parmetis=yes --download-metis=yes --with-imagemagick=1 --download-sundials=yes --download-mpi4py=yes --download-petsc4py=yes --download-boost=yes --with-hdf5=1 --with-hdf5-dir=$HDF5_DIR --with-imagemagick=0 --with-shared-libraries --with-debugging=no COPTFLAGS='-g -C -traceback -fpe0 -check noarg_temp_created -fp-stack-check -check uninit' FOPTFLAGS='-g -C -traceback -fpe0 -check noarg_temp_created -fp-stack-check -check uninit'
>> 
>> I am going to try looking for the problem, but since this is the first 10 minutes I've looked at the code, it will probably take me a lot longer than somebody else to find the problem. Let me know if there's anything I can do to help track down the problem. 
>> 
>> Thanks,
>> 
>> Tim
> 




More information about the petsc-dev mailing list