[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: need help with makefile
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.
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
F77FLAGS= -C -g -qdpc -qautodbl=dbl4 -qinitauto -Wl,-framework -
Wl,vecLib
FLAGS= -C -g -qdpc -qautodbl=dbl4 -qinitauto -Wl,-framework -Wl,vecLib
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)
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@xxxxxxxxxxxx
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@xxxxxxxxxxxx
http://www.lcv.umd.edu/~palott
Office: 301.405.4894
Fax: 301.314.0827