[petsc-users] error in compiling fortran code
Jeremy Roberts
j.alyn.roberts at gmail.com
Sat Oct 9 08:11:58 CDT 2010
It looks like a Fortran formatting error. Notice all the other "call"
statements are in the 7th column (after the normally restricted 6 columns
for f77 syntax). Matching that format or using "-ffree-form" in your
Fortran flags should fix that problem.
Regards,
Jeremy
On Fri, Oct 8, 2010 at 10:38 PM, Peter Wang <pengxwang at hotmail.com> wrote:
> Sorry for forgetting the subject in previous email.
>
>
> I am trying to modify the example code in
> {PETSc_Dir}\src\vec\vec\examples\tests\ex19f.F . Only three lines are added
> into the original code. However, if the three lines are added, there is
> error coming out when it is compiled. Why it cannot be compiled when the
> lines are added? I am using gfortran 4.4.3 and openMPI 1.3.2 and petsc
> 3.1-p5-v1. The error infomation is as following:
> *********************************************************
>
>
> ex19f.F:29.5:
> call MPI_COMM_RANK(MPI_COMM_WORLD,myid,rc)
> 1
> Error: Non-numeric character in statement label at (1)
> ex19f.F:29.5:
> call MPI_COMM_RANK(MPI_COMM_WORLD,myid,rc)
> 1
> Error: Unclassifiable statement at (1)
> ex19f.F:30.5:
> call MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,rc)
> 1
> Error: Non-numeric character in statement label at (1)
> ex19f.F:30.5:
> call MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,rc)
> 1
> Error: Unclassifiable statement at (1)
> make: *** [ex19f.o] Error 1
>
> *********************************************************
> Following is the code I modified. The lines followed by
> !***************Added for MPI are added by me for MPI subroutine.
> *********************************************************
> !
> !
> program main
> ! include 'mpif.h'
> #include "finclude/petscsys.h"
> #include "finclude/petscvec.h"
> !
> ! This example demonstrates basic use of the PETSc Fortran interface
> ! to vectors.
> !
>
> integer myid,numprocs,namelen,rc !***************Added for MPI
> PetscInt n
> PetscErrorCode ierr
> PetscTruth flg
> PetscScalar one,two,three,dot
> PetscReal norm,rdot
> Vec x,y,w
>
> n = 20
> one = 1.0
> two = 2.0
> three = 3.0
> call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
> call PetscOptionsGetInt(PETSC_NULL_CHARACTER,'-n',n,flg,ierr)
>
> call MPI_COMM_RANK(MPI_COMM_WORLD,myid,rc) !***************Added
> for MPI
> call MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,rc) !***************Added
> for MPI
>
>
>
> ! Create a vector, then duplicate it
> call VecCreate(PETSC_COMM_WORLD,x,ierr)
> call VecSetSizes(x,PETSC_DECIDE,n,ierr)
> call VecSetFromOptions(x,ierr)
> call VecDuplicate(x,y,ierr)
> call VecDuplicate(x,w,ierr)
> call VecSet(x,one,ierr)
> call VecSet(y,two,ierr)
> call VecDot(x,y,dot,ierr)
> rdot = PetscRealPart(dot)
> write(6,100) rdot
> 100 format('Result of inner product ',f10.4)
> call VecScale(x,two,ierr)
> call VecNorm(x,NORM_2,norm,ierr)
> write(6,110) norm
> 110 format('Result of scaling ',f10.4)
> call VecCopy(x,w,ierr)
> call VecNorm(w,NORM_2,norm,ierr)
> write(6,120) norm
> 120 format('Result of copy ',f10.4)
> call VecAXPY(y,three,x,ierr)
> call VecNorm(y,NORM_2,norm,ierr)
> write(6,130) norm
> 130 format('Result of axpy ',f10.4)
> call VecDestroy(x,ierr)
> call VecDestroy(y,ierr)
> call VecDestroy(w,ierr)
> call PetscFinalize(ierr)
> end
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20101009/0e9f4ce1/attachment-0001.htm>
More information about the petsc-users
mailing list