Hi everybody,
I am trying to compile ROMS on linux with pgi fortran compiler,
1)
My first error:
-Unable to open include file: mpif.h (mod_parallel.f90: 18)
I go to line and change the following line
include 'mpif.h'
to
include '/usr/mpich/pgi/include/mpif.h'
it works, but is there anyway to do this (I also added /usr/mpich/pgi/include in my path, but now working) without modifying the source code (same thing also happens the statement "include 'netcdf.inc' " in mod_netcdf.F).
2) I have some archive file which is not succesfully created,
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:16 libADM.a
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:24 libICE.a
-rw-r--r-- 1 yildirim grad 609972 Oct 24 14:25 libMODS.a
-rw-r--r-- 1 yildirim grad 1135138 Oct 24 14:24 libNLM.a
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:16 libRPM.a
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:16 libTLM.a
-rw-r--r-- 1 yildirim grad 1508014 Oct 24 14:25 libUTIL.a
Is this crucial, what is wrong in there,
3) I hope that this is my final error,
$>> make -f makefile.linux.trapezoid
pgf90 -u -Bstatic -fastsse -Mipa=fast master.o ocean_control.o -o oceanM_linux_trapezoid libADM.a libRPM.a libTLM.a libNLM.a libICE.a libUTIL.a libMODS.a -L/users/yildirim/LinuxNETCDF/netcdf/lib -lnetcdf -lfmpi-pgi -lmpi-pgi
The following function(s) are called, but no IPA information is available:
mpi_init_, mpi_comm_rank_, mpi_finalize_, mod_param_initialize_param_, mod_parallel_initialize_parallel_, mod_scalars_initialize_scalars_, wclock_on_, inp_par_, mod_arrays_, initial_, main3d_, wrt_rst_, wclock_off_, close_io_
IPA inhibited
make: *** [oceanM_linux_trapezoid] Error 2
thanks,
I have not encountered this problem in Linux with g95 and SGI machines,
thanks,
pgf90 compilation problem
Re: pgf90 compilation problem
yildirim wrote:Hi everybody,
I am trying to compile ROMS on linux with pgi fortran compiler,
1)
My first error:
-Unable to open include file: mpif.h (mod_parallel.f90: 18)
I go to line and change the following line
include 'mpif.h'
to
include '/usr/mpich/pgi/include/mpif.h'
it works, but is there anyway to do this (I also added /usr/mpich/pgi/include in my path, but now working) without modifying the source code (same thing also happens the statement "include 'netcdf.inc' " in mod_netcdf.F).
I would think you can resolve this problem by copying mpif.h to the running directory such as roms-2.2/
For netcdf, you might need to set an environment variable in ~/.bashrc, please find how to do it in the Netcdf website
2) I have some archive file which is not succesfully created,
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:16 libADM.a
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:24 libICE.a
-rw-r--r-- 1 yildirim grad 609972 Oct 24 14:25 libMODS.a
-rw-r--r-- 1 yildirim grad 1135138 Oct 24 14:24 libNLM.a
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:16 libRPM.a
-rw-r--r-- 1 yildirim grad 8 Oct 24 14:16 libTLM.a
-rw-r--r-- 1 yildirim grad 1508014 Oct 24 14:25 libUTIL.a
Is this crucial, what is wrong in there,
3) I hope that this is my final error,
$>> make -f makefile.linux.trapezoid
pgf90 -u -Bstatic -fastsse -Mipa=fast master.o ocean_control.o -o oceanM_linux_trapezoid libADM.a libRPM.a libTLM.a libNLM.a libICE.a libUTIL.a libMODS.a -L/users/yildirim/LinuxNETCDF/netcdf/lib -lnetcdf -lfmpi-pgi -lmpi-pgi
The following function(s) are called, but no IPA information is available:
mpi_init_, mpi_comm_rank_, mpi_finalize_, mod_param_initialize_param_, mod_parallel_initialize_parallel_, mod_scalars_initialize_scalars_, wclock_on_, inp_par_, mod_arrays_, initial_, main3d_, wrt_rst_, wclock_off_, close_io_
IPA inhibited
make: *** [oceanM_linux_trapezoid] Error 2
thanks,
I have not encountered this problem in Linux with g95 and SGI machines,
thanks,
You can change the makefile fragment under Compilers that you are using. You want to add options like -I/usr/mpich/pgi/include and change where it looks for NetCDF. Hernan is adding in some MPICH options to the makefile, not sure if you have that version yet. That might help with #3 as well.
I don't know what happened with #2 - you don't provide any error messages.
I don't know what happened with #2 - you don't provide any error messages.
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
There are two possibilities for compiling ROMS in a linux cluster with the single new makefile structure and any compiler:
1) Some clusters systems (vendors) provide a native MPI library. This is kind of advantegeous because the MPI (MPICH) libraries are optimized for such particular architectures and they are more efficient. The mpif90 script is not required in this case. The fact that you cannot find mpif.h is telling you that, probably, a native MPI library is not available. Then, you are using the wrong value for macro FORT in the makefile. You need to use mpif90 instead of pgi as a value. Hardwiring the path for this include file is not a good idea because you must use the mpif90 script instead. There are other compilation intructions that may be required in this script.
2) Alternatively, you need to use the generic MPICH script mpif90 in some systems. That is, FORT must have as a value mpif90. In the ROMS released compiling structure, we provided the make rules file Linux-mpif90.mk for such compilation.
However, if you have more than one compiler in you system there is not an easy way to select the desired compiler. For this reason, I modified the makefile and its associate compiling rules files to allow this capability. A new macro switch, MPIF90, is included in the makefile to achieve this:
I updated the corrections tar file for ROMS 2.2 which includes the updates to the makefile. Noticed that I eliminated file Compiler/Linux-mpif90.mk because it is no longer needed.
1) Some clusters systems (vendors) provide a native MPI library. This is kind of advantegeous because the MPI (MPICH) libraries are optimized for such particular architectures and they are more efficient. The mpif90 script is not required in this case. The fact that you cannot find mpif.h is telling you that, probably, a native MPI library is not available. Then, you are using the wrong value for macro FORT in the makefile. You need to use mpif90 instead of pgi as a value. Hardwiring the path for this include file is not a good idea because you must use the mpif90 script instead. There are other compilation intructions that may be required in this script.
2) Alternatively, you need to use the generic MPICH script mpif90 in some systems. That is, FORT must have as a value mpif90. In the ROMS released compiling structure, we provided the make rules file Linux-mpif90.mk for such compilation.
However, if you have more than one compiler in you system there is not an easy way to select the desired compiler. For this reason, I modified the makefile and its associate compiling rules files to allow this capability. A new macro switch, MPIF90, is included in the makefile to achieve this:
Code: Select all
# If distributed-memory, turn on compilation via the script "mpif90".
# This is needed in some Linux operating systems. In some systems with
# native MPI libraries the compilation does not require MPICH type
# scripts. This macro is also convient when there are several fortran
# compiliers (ifort, pgf90, pathf90) in the system that use mpif90.
# In this, case the user need to select the desired compiler below and
# turn on both MPI and MPIF90 macros.
MPIF90 :=
-
- Posts: 6
- Joined: Mon Feb 20, 2006 10:34 pm
- Location: State University of New York at Buffalo
Hi
Does anyone know answer to yildirim's third question. I get something similar using PGF90 :
The following function(s) are called, but no IPA information is available:
mod_param_initialize_param_, mod_parallel_initialize_parallel_, mod_scalars_initialize_scalars_, wclock_on_, inp_par_, mod_arrays_, initial_, main3d_, wrt_rst_, wclock_off_, close_io_
IPA inhibited
make: *** [/home/tsingh2/compile/oceanS] Error 2
rm mod_kinds.f90
Any suggestions
~ Tarun
Does anyone know answer to yildirim's third question. I get something similar using PGF90 :
The following function(s) are called, but no IPA information is available:
mod_param_initialize_param_, mod_parallel_initialize_parallel_, mod_scalars_initialize_scalars_, wclock_on_, inp_par_, mod_arrays_, initial_, main3d_, wrt_rst_, wclock_off_, close_io_
IPA inhibited
make: *** [/home/tsingh2/compile/oceanS] Error 2
rm mod_kinds.f90
Any suggestions
~ Tarun
"IPA inhibited"
Hi.
I get exactly the same error message as tarusingh.
"The following function(s) are called, but no IPA information is available:
mod_param_initialize_param_, mod_parallel_initialize_parallel_, mod_scalars_initialize_scalars_, wclock_on_, inp_par_, mod_arrays_, initial_, main3d_, wrt_rst_, wclock_off_, close_io_
IPA inhibited
make: *** [../in/oceanM] Error 2
rm mod_kinds.f90"
Has anyone found the reason for or a way around this?
Paul
I get exactly the same error message as tarusingh.
"The following function(s) are called, but no IPA information is available:
mod_param_initialize_param_, mod_parallel_initialize_parallel_, mod_scalars_initialize_scalars_, wclock_on_, inp_par_, mod_arrays_, initial_, main3d_, wrt_rst_, wclock_off_, close_io_
IPA inhibited
make: *** [../in/oceanM] Error 2
rm mod_kinds.f90"
Has anyone found the reason for or a way around this?
Paul
-
- Posts: 6
- Joined: Mon Feb 20, 2006 10:34 pm
- Location: State University of New York at Buffalo