Can you send us the preprocessed __unsteady_ex.F file? Satish
On Sat, 3 Mar 2007, P. Aaron Lott wrote: > > Hi Satish, > > You're right the problem is from mpif90, I tried > > mpif90 -qfree -c -I. -g __unsteady_ex.F -o unsteady_ex.o > > but I'm getting the same error messages. The file unsteady_ex compiled fine > before using petsc and the preprocessor, so I really don't know what the > problem could be. > > Any ideas? > > -Aaron > > > > > > > > On Mar 2, 2007, at 12:16 PM, Satish Balay wrote: > > > > > > /usr/local/mpich-1.2.5.2/bin/mpif90 -c -I. -g __unsteady_ex.F -o > > > > > unsteady_ex.o > > "__unsteady_ex.F", line 965.2: 1515-019 (S) Syntax is incorrect. > > <<< > > > > The error is from mpif90 - not the preprocessor. Maybe its interpreting > > the code as fixed form? Try adding '-qfree' to FFLAGS and see if it makes > > a difference. > > > > Satish > > > > On Fri, 2 Mar 2007, P. Aaron Lott wrote: > > > > > > > > Thanks Satish, > > > > > > I checked the __unsteady_ex.F file. The preprocessor doesn't seem to like > > > any > > > of my fortran code. It starts complaining about the use of the use > > > statements, > > > and basically all the lines of code in this file. > > > > > > Any ideas? > > > > > > -Aaron > > > > > > Here are some of the statements the preprocessor complains about: > > > > > > use initialize > > > use coordinates > > > use maps > > > use boundaries > > > use elements > > > use buildU > > > use matrix_ops > > > use output > > > use d1ops > > > use globaldata > > > use dss > > > use par_dss > > > use forces > > > use winds > > > use stokes_solvers > > > > > > implicit none > > > > > > integer n,i,j > > > real(kind=8) dt,gam > > > integer nsteps > > > type(coord) coords > > > type(coord) proc_coords > > > type(solution) GUXY,LUXY > > > real(kind=8),allocatable, dimension(:):: force,wind > > > integer nelements > > > integer nely,nelx > > > integer twod > > > integer nglobaldofs > > > integer irc,myrank,nprocs, ierr, status(MPI_STATUS_SIZE) > > > > > > call mpi_init(ierr) > > > ! Get myrank > > > call mpi_comm_rank(MPI_COMM_WORLD,myrank,ierr) > > > call mpi_comm_size(MPI_COMM_WORLD,nprocs,ierr) > > > > > > call PetscInitialize( PETSC_NULL_CHARACTER, ierr ) > > > call MPI_Comm_rank( PETSC_COMM_WORLD, myrank, ierr ) > > > if (myrank .eq. 0) then > > > print *, ?Hello World? > > > endif > > > call PetscFinalize(ierr) > > > > > > stop > > > > > > > > > > > > > > > > > > > > > On Mar 2, 2007, at 11:38 AM, Satish Balay wrote: > > > > > > > > > > > > > > > On Fri, 2 Mar 2007, P. Aaron Lott wrote: > > > > > > > > > > > > > > Thanks for this information. I think I setup things almost right, but > > > > > something is causing preprocessor to complain. The errors it is giving > > > > > are > > > > > referring to lines of my main program file that doesn't exist. > > > > > > > > The line numbers refer to the temoprary file created - __unsteady_ex.F > > > > > > > > You can run the following command to preserve the temporary file - and > > > > check it for the correct line number > > > > > > > > make unsteady_ex SKIP_RM=yes > > > > > > > > Preprocessing fortran code with C compiler can have some false > > > > positives. For eg: if you have quotes in comments - then cpp can > > > > misbehave. > > > > > > > > > > > > > > I would appreciate any recommendations about how to fix this problem. > > > > > I've > > > > > list some of the details of my setup below. > > > > > > > > > > Thanks, > > > > > > > > > > -Aaron > > > > > > > > > > > > > > > > > > > > e.g. > > > > > > > > > > macbeth% make unsteady_ex > > > > > /usr/local/mpich-1.2.5.2/bin/mpicc > > > > > -I/Users/palott/research/codes/petsc/petsc-2.3.2-p8 > > > > > -I/Users/palott/research/codes/pets > > > > > c/petsc-2.3.2-p8/bmake/darwin-mpich-g > > > > > -I/Users/palott/research/codes/petsc/petsc-2.3.2-p8/include > > > > > -I/usr/local/mpich-1.2. > > > > > 5.2/include -E -traditional-cpp __unsteady_ex.c | /usr/bin/grep > > > > > -v > > > > > '^ > > > > > *#' > __unsteady_ex.F > > > > > /usr/local/mpich-1.2.5.2/bin/mpif90 -c -I. -g __unsteady_ex.F -o > > > > > unsteady_ex.o > > > > > "__unsteady_ex.F", line 965.2: 1515-019 (S) Syntax is incorrect. > > > > > > > > > > > > > > > But there are only 207 lines in this file..... > > > > > > > > > > > > > > > > > > > > In my current makefile I have > > > > > > > > > > F90=mpif90 > > > > > F77=mpif77 > > > > > > > > These don't need to be specified as PETSc .F.o targets don't use them.. > > > > [and > > > > you don't want to redefine whats already configured inside PETSc] > > > > > > > > > F77FLAGS= -C -g -qdpc -qautodbl=dbl4 -qinitauto -Wl,-framework > > > > > -Wl,vecLib > > > > > > > > This variable is not used by PETSc target > > > > > > > > > FLAGS= -C -g -qdpc -qautodbl=dbl4 -qinitauto -Wl,-framework > > > > > -Wl,vecLib > > > > > > > > PETSc should already use a blas implementation - so no need to specify > > > > vecLib again. > > > > > > > > > > > > > > > > > > > EXENAME = unsteady_ex > > > > > CMD:=EXENAME > > > > > > > > > > SOBJS = mpi.o quicksort.o routines.o binsort.o coordinates.o > > > > > comm_maps.o > > > > > elements.o globaldata.o sem.o comp_inv.o d1ops.o maps.o pardss.o > > > > > dss.o > > > > > stiffness.o convection.o Mass.o pressure.o buildU.o wind.o forcing.o > > > > > boundary_cond.o navier_stokes.o runge_kutta.o out.o gmres.o pcg.o > > > > > stream.o > > > > > uzawa.o print_matrices.o projection.o bdf.o stokes_solvers.o > > > > > initialize_mpi.o unsteady_ex.o > > > > > > > > > > > > > > > $(CMD) : $(SOBJS) > > > > > -${FLINKER} $(FLAGS) -o $(EXENAME) $(SOBJS) $(PETSC_SYS_LIB) > > > > > > > > No need to specify FLAGS here - as the default targets pick it up [in > > > > this > > > > case > > > > the flags get added to FLINKER > > > > > > > > Satish > > > > > > > > > > > > > > > > > > > mpi.o : ../Comm/mpi.f90 ;$(F90) $(FLAGS) -c > > > > > ../Comm/mpi.f90 > > > > > gmres.o : ../Solvers/gmres.f90 ;$(F90) > > > > > $(FLAGS) -c > > > > > ../Solvers/gmres.f90 > > > > > etc.... for all the object files except unsteady_ex.o > > > > > > > > > > unsteady_ex.F is my main program. > > > > > > > > > > In the example you gave, ex1f.F would be the main program, and at the > > > > > top > > > > > of > > > > > the file it would have the statement: > > > > > > > > > > #include "include/finclude/petsc.h" > > > > > > > > > > So in my case, I've put that in the top of my unsteady_ex.F > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Mar 1, 2007, at 5:56 PM, Satish Balay wrote: > > > > > > > > > > > The idea is to use a PETSc example makefile - and modify it > > > > > > appropriately. > > > > > > > > > > > > And with fortran codes - we require preprocessing [i.e source files > > > > > > that call PETSc routines should be .F] > > > > > > > > > > > > A minimal PETSc makefile is as follows: > > > > > > ------------------------------------------------ > > > > > > CFLAGS = > > > > > > FFLAGS = > > > > > > CPPFLAGS = > > > > > > FPPFLAGS = > > > > > > CLEANFILES = > > > > > > > > > > > > include ${PETSC_DIR}/bmake/common/base > > > > > > > > > > > > ex1f: ex1f.o chkopts > > > > > > -${FLINKER} -o ex1f ex1f.o ${PETSC_KSP_LIB} > > > > > > ${RM} ex1f.o > > > > > > ----------------------------------------------------- > > > > > > > > > > > > So you'll just make the change [with the variables CMD and SOBJS > > > > > > properly > > > > > > defined] > > > > > > > > > > > > ex1f -> $(CMD) > > > > > > ex1f.o -> $(SOBJS) > > > > > > > > > > > > Note: Necessary FFLAGS should already be PETSc config files. Some > > > > > > additional flags can be specified with FFLAGS variable > > > > > > > > > > > > Satish > > > > > > > > > > > > > > > > > > On Thu, 1 Mar 2007, P. Aaron Lott wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > I have a fortran90 code and I would like to use petsc's > > > > > > > preconditioners > > > > > > > inside of it. I'm having trouble setting up a makefile that will > > > > > > > allow > > > > > > > me > > > > > > > include a petsc. It seems the problem is from the use of the > > > > > > > c-preprocessor. > > > > > > > > > > > > > > My old makefile looked something like this: > > > > > > > > > > > > > > $(CMD) : $(SOBJS) > > > > > > > $(F90) $(FLAGS) -o $(EXENAME) $(SOBJS) > > > > > > > > > > > > > > where SOBJ is a list of all of my object files. > > > > > > > > > > > > > > I was hoping to be able to make a petsc object file and include it > > > > > > > in > > > > > > > this > > > > > > > list. Is this possible? Is there a tutorial on how to get petsc > > > > > > > setup > > > > > > > inside > > > > > > > of your existing code? > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > -Aaron > > > > > > > > > > > > > > > > > > > > > > > > > > > > P. Aaron Lott > > > > > > > Ph.D. Candidate > > > > > > > 4239 Computer and Space Sciences Building > > > > > > > University of Maryland > > > > > > > College Park, MD 20742-4015 > > > > > > > > > > > > > > palott at ipst.umd.edu > > > > > > > http://www.lcv.umd.edu/~palott > > > > > > > Office: 301.405.4894 > > > > > > > Fax: 301.314.0827 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > P. Aaron Lott > > > > > Ph.D. Candidate > > > > > 4239 Computer and Space Sciences Building > > > > > University of Maryland > > > > > College Park, MD 20742-4015 > > > > > > > > > > palott at ipst.umd.edu > > > > > http://www.lcv.umd.edu/~palott > > > > > Office: 301.405.4894 > > > > > Fax: 301.314.0827 > > > > > > > > > > > > > > > > > > > > P. Aaron Lott > > > Ph.D. Candidate > > > 4239 Computer and Space Sciences Building > > > University of Maryland > > > College Park, MD 20742-4015 > > > > > > palott at ipst.umd.edu > > > http://www.lcv.umd.edu/~palott > > > Office: 301.405.4894 > > > Fax: 301.314.0827 > > > > > > > > > > P. Aaron Lott > Ph.D. Candidate > 4239 Computer and Space Sciences Building > University of Maryland > College Park, MD 20742-4015 > > palott at ipst.umd.edu > http://www.lcv.umd.edu/~palott > Office: 301.405.4894 > Fax: 301.314.0827 > >