<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
I am trying to modify the example code in&nbsp; {PETSc_Dir}\src\vec\vec\examples\tests\ex19f.F . Only three lines are added into the original code.&nbsp;&nbsp;&nbsp;However, if the three lines are added, there is error coming out when it is compiled.&nbsp; Why it cannot be compiled when the lines are added?&nbsp; I am using gfortran 4.4.3 and openMPI 1.3.2&nbsp; and petsc 3.1-p5-v1.&nbsp; The error infomation is as following:<BR>
*********************************************************<BR>
&nbsp;<BR>
&nbsp;<BR>
ex19f.F:29.5:<BR>
&nbsp;&nbsp;&nbsp; call MPI_COMM_RANK(MPI_COMM_WORLD,myid,rc)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1<BR>Error: Non-numeric character in statement label at (1)<BR>ex19f.F:29.5:<BR>
&nbsp;&nbsp;&nbsp; call MPI_COMM_RANK(MPI_COMM_WORLD,myid,rc)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1<BR>Error: Unclassifiable statement at (1)<BR>ex19f.F:30.5:<BR>
&nbsp;&nbsp;&nbsp; call MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,rc)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1<BR>Error: Non-numeric character in statement label at (1)<BR>ex19f.F:30.5:<BR>
&nbsp;&nbsp;&nbsp; call MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,rc)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1<BR>Error: Unclassifiable statement at (1)<BR>make: *** [ex19f.o] Error 1<BR><BR>
*********************************************************<BR>
Following is the code I modified. The lines followed by !***************Added for MPI are added by me for MPI subroutine.<BR>
*********************************************************<BR>
!<BR>!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; program main<BR>!&nbsp; include 'mpif.h'<BR>#include "finclude/petscsys.h"<BR>#include "finclude/petscvec.h"<BR>!<BR>!&nbsp; This example demonstrates basic use of the PETSc Fortran interface<BR>!&nbsp; to vectors.<BR>!<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer myid,numprocs,namelen,rc&nbsp; !***************Added for MPI<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PetscInt&nbsp; n<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PetscErrorCode ierr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PetscTruth flg<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PetscScalar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; one,two,three,dot<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PetscReal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; norm,rdot<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x,y,w<BR>&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp;&nbsp; = 20<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; one&nbsp;&nbsp; = 1.0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; two&nbsp;&nbsp; = 2.0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; three = 3.0<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call PetscInitialize(PETSC_NULL_CHARACTER,ierr)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call PetscOptionsGetInt(PETSC_NULL_CHARACTER,'-n',n,flg,ierr)<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; call MPI_COMM_RANK(MPI_COMM_WORLD,myid,rc)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !***************Added for MPI<BR>&nbsp;&nbsp;&nbsp; call MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,rc)&nbsp; !***************Added for MPI<BR>&nbsp; <BR>&nbsp;&nbsp; <BR>
<BR>! Create a vector, then duplicate it<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecCreate(PETSC_COMM_WORLD,x,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecSetSizes(x,PETSC_DECIDE,n,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecSetFromOptions(x,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecDuplicate(x,y,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecDuplicate(x,w,ierr)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecSet(x,one,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecSet(y,two,ierr)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecDot(x,y,dot,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rdot = PetscRealPart(dot)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(6,100) rdot<BR>&nbsp; 100&nbsp; format('Result of inner product ',f10.4)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecScale(x,two,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecNorm(x,NORM_2,norm,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(6,110) norm<BR>&nbsp; 110&nbsp; format('Result of scaling ',f10.4)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecCopy(x,w,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecNorm(w,NORM_2,norm,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(6,120) norm<BR>&nbsp; 120&nbsp; format('Result of copy ',f10.4)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecAXPY(y,three,x,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecNorm(y,NORM_2,norm,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(6,130) norm<BR>&nbsp; 130&nbsp; format('Result of axpy ',f10.4)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecDestroy(x,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecDestroy(y,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call VecDestroy(w,ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call PetscFinalize(ierr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<BR><BR>                                               </body>
</html>