I have a shared library in which the top module looks like this:
module PoisFFT
use Precisions
use Parameters
use PoisFFT_SP, PoisFFT_Solver1D_SP => PoisFFT_Solver1D, &
PoisFFT_Solver2D_SP => PoisFFT_Solver2D, &
PoisFFT_Solver3D_SP => PoisFFT_Solver3D
use PoisFFT_DP, PoisFFT_Solver1D_DP => PoisFFT_Solver1D, &
PoisFFT_Solver2D_DP => PoisFFT_Solver2D, &
PoisFFT_Solver3D_DP => PoisFFT_Solver3D
end module PoisFFT
I have now a problem referencing this library from another program
use PoisFFT
referencing PoisFFT_Solver3D_DP or PoisFFT_Solver3D_SP and some integer parameters defined in module Parameters.
This works for gfortran and Oracle Solaris Studio just by supplying the poisfft.mod file. However ifort complained it cannot find module Precisions. I copied all *.mod files in the include path, but now I get.
poisson.F90(379): error #6404: This name does not have a type, and must have an explicit type. [POISFFT_PERIODIC]
bounds(i) = PoisFFT_PERIODIC
This integer constant is defined in the module Parameters. There is another module named Parameters in the software that uses the library, is this a problem? It works with other compilers.




