Dear all,
I try to use fortran modules to have the same variable declarations over my
main program and all my subroutines.
My module file looks like:
module variables
#include "finclude/petscsys.h"
#include "finclude/petscvec.h"
#include "finclude/petscmat.h"
#include "finclude/petscpc.h"
#include "finclude/petscksp.h"
#include "finclude/petscviewer.h"
type::mesh_type
PetscScalar x1,x2,y1,y2,Lx,Ly,deltax,deltay,ratiox,ratioy
PetscInt
Nx,Ny,Npx,Npy,Np,Nux_b,Nux_in,Nux_t,Nuy_b,Nuy_in,Nuy_t,Nu_t,Nb
PetscInt Nvx_b,Nvx_in,Nvx_t,Nvy_b,Nvy_in,Nvy_t,Nv_t,N1,N2,N3,N4
end type mesh_type
type(mesh_type)::mesh
etc................
My main program looks like:
program main
use variables
implicit none
etc.................
Then a subroutine looks like:
subroutine parameters(mesh,flowParameters,ierr)
use variables
implicit none
etc...................
I have my makefile set up to first compile the module, then the main program,
and then all the subroutines. The module and the main program compile just
fine. However, if I try to use one of the variables from the module in the
subroutine I get the following compiler error:
print *,ierr
1
Error: Name 'ierr' at (1) is an ambiguous reference to 'ierr' from current
program unit
Any tips to resolve this issue would be very helpful. I could manually declare
all the variables in the main program and all the subroutines (this is how I
did it before and it works fine). However, my program is growing and for
efficiency reasons I would really like to have all the variable declarations in
one single file.
Kind regards,
Steven
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/ms-tnef
Size: 4823 bytes
Desc: not available
URL:
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110726/efea8d4e/attachment.bin>