hi

I'm having trouble compiling a PETSc Fortran program, which uses a Fortran module in a separate file, which itself uses PETSc.

Here's a fairly minimal example of the problem.

Main program test.F90:
---
program test

  use my_module
  implicit none
#include <finclude/petsc.h90>
  PetscInt :: bar = 2

  print *, 'foo = ', foo, 'bar = ', bar

end program test
---


Module my_module.F90:
---
module my_module

  implicit none
#include <finclude/petsc.h90>
  PetscInt:: foo = 1

end module my_module
---

my_module.F90 will compile OK but when I compile test.F90 I get all kinds of errors like:

Error: Symbol 'mpi_file_null' at (1) conflicts with symbol from module 'my_module'

presumably because I've included petsc.h90 twice. But if I don't have the include in both the module and the main program, I don't have access to PetscInt in both.

How does one get around this problem? I couldn't find any example problems using Fortran modules.

- Adrian

--
Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: a.crouc...@auckland.ac.nz
tel: +64 (0)9 923 4611

Reply via email to