Hello,
I am a beginner with Petsc and i'm trying
to compile a very simple fortran program "test" with
a calling program in "test.F90" and a module "my_module.F90".
Unfortunately, i do not know how to write properly the makefile
to be able to compile the module with "#include petsc" statements inside:
I can not find any example on how to do it.
here is my non-working makefile:
CFLAGS =
FFLAGS =
PETSC_DIR=/home/fab/Program/PETSC/petsc-3.7.6
PETSC_ARCH=arch-linux2-c-debug
FLINKER=mpif90
CLINKER=mpicc
include ${PETSC_DIR}/lib/petsc/conf/variables
include ${PETSC_DIR}/lib/petsc/conf/rules
list=my_module.o
test: test.o $(list) chkopts
-${FLINKER} -o test test.o $(list)
my_module.o my_module.mod: my_module.F90
-${FLINKER} -c my_module.F90
Thank you very much for helping me.
Regards,
Fabien THOLIN
CFLAGS =
FFLAGS =
PETSC_DIR=/home/fab/Program/PETSC/petsc-3.7.6
PETSC_ARCH=arch-linux2-c-debug
FLINKER=mpif90
CLINKER=mpicc
include ${PETSC_DIR}/lib/petsc/conf/variables
include ${PETSC_DIR}/lib/petsc/conf/rules
list=my_module.o
test: test.o $(list) chkopts
-${FLINKER} -o test test.o $(list)
my_module.o my_module.mod: my_module.F90
-${FLINKER} -c my_module.F90
program test
use my_module
implicit none
#include <petsc/finclude/petsc.h90>
#include <petsc/finclude/petscsysdef.h>
#include <petsc/finclude/petscvecdef.h>
#include <petsc/finclude/petscmatdef.h>
#include <petsc/finclude/petscpcdef.h>
#include <petsc/finclude/petsckspdef.h>
PetscInt :: j = 2
print *, 'j = ', j
end program test
module my_module
implicit none
#include <petsc/finclude/petsc.h90>
!!#include <petsc/finclude/petscsysdef.h>
!!#include <petsc/finclude/petscvecdef.h>
!!#include <petsc/finclude/petscmatdef.h>
!!#include <petsc/finclude/petscpcdef.h>
!!#include <petsc/finclude/petsckspdef.h>
contains
subroutine toto
implicit none
integer :: i
i=1
end subroutine toto
end module my_module