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

Reply via email to