[petsc-dev] syntax error in petscmat.h90/petscvec.h90
Satish Balay
balay at mcs.anl.gov
Wed Sep 21 20:47:05 CDT 2011
Ok - pushed the following and updated the tarball.
http://petsc.cs.iit.edu/petsc/externalpackages/sowing-1.1.16/rev/4aaec55520ed
Satish
On Wed, 21 Sep 2011, Barry Smith wrote:
>
> It is a funny corner case where the token that would take the line up to 72 is the \n to end the line.
>
> I added a check to not go to the next line if it is a \n causing the continuation.
>
> Seems to work.
>
> Satish, here is the new bfort.c please update the sowing tarball. (sorry not a nice patch file).
>
> Thanks
>
> Barry
>
>
>
> [see attached file: bfort.c]
> On Sep 20, 2011, at 2:49 AM, Jed Brown wrote:
>
> > On Tue, Sep 20, 2011 at 09:36, Alexander Grayver <agrayver at gfz-potsdam.de> wrote:
> > Hello Petsc team,
> >
> > Since petsc-3.1-p7 I observe insignificant but annoying syntax error which occurs in petscmat.h90/petscvec.h90 and have to fix it manually when make petsc.
> > I use Intel Fortran 11.1 compiler and errors is following:
> >
> > /home/lib/petsc-3.2-p2/include/finclude/ftn-auto/petscvec.h90(620): error #5153: Illegal continuation. No valid non_commentary source following &.
> > &
> >
> > It looks like the line length calculation has an off-by-one error, so it incorrectly puts a continuation when none is needed. Not sure why the compiler chokes on this (does the standard actually disallow it?), but the fix is to fix the line length calculation.
> >
> > subroutine VecGhostUpdateBegin(g, insertmode, scattermode ,ierr)&
> > &
> >
> >
> > ------^
> > /home/lib/petsc-3.2-p2/include/finclude/ftn-auto/petscvec.h90(621): error #5082: Syntax error, found '=' when expecting one of: ) ,
> > integer(kind=selected_int_kind(10)) g ! integer(kind=selected_int_kind(10))
> > -------------------^
> >
> > It happens due to this:
> >
> > subroutine VecGhostUpdateBegin(g, insertmode, scattermode ,ierr)&
> > & ! <<<<<<<<<<<< ERROR
> > Vec g ! Vec
> > InsertMode insertmode ! InsertMode
> > ScatterMode scattermode ! ScatterMode
> > integer ierr
> > end subroutine
> > subroutine VecGhostUpdateEnd(g, insertmode, scattermode ,ierr)
> > Vec g ! Vec
> > InsertMode insertmode ! InsertMode
> > ScatterMode scattermode ! ScatterMode
> > integer ierr
> > end subroutine
> >
> > If I delete & everything is ok. Moreover, I don's see any reason to have it there...
> > Is it my specific compiler options or what?
> >
> > Regards,
> > Alexander
> >
>
>
More information about the petsc-dev
mailing list