pgf90 compilation problem

Discussion on computers, ROMS installation and compiling

Moderators: arango, robertson

Post Reply
Message
Author
yildirim

pgf90 compilation problem

#1 Unread post by yildirim »

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,

FengZhou
Posts: 52
Joined: Wed Apr 07, 2004 10:48 pm
Location: 2nd Institute of Oceanography,SOA

Re: pgf90 compilation problem

#2 Unread post by FengZhou »

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,

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

#3 Unread post by kate »

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.

User avatar
arango
Site Admin
Posts: 1347
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#4 Unread post by arango »

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:

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 :=
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.

tarunsingh
Posts: 6
Joined: Mon Feb 20, 2006 10:34 pm
Location: State University of New York at Buffalo

#5 Unread post by tarunsingh »

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

paulg
Posts: 1
Joined: Tue Jul 01, 2003 5:21 pm
Location: University of Arizona

"IPA inhibited"

#6 Unread post by paulg »

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

tarunsingh
Posts: 6
Joined: Mon Feb 20, 2006 10:34 pm
Location: State University of New York at Buffalo

#7 Unread post by tarunsingh »

I couldn't find a way to get around with this problem... :( . I have now switched on from pgf90 to ifort copilers. Everything hs been working very fine for me with this new compiler. :D . You can download a student version of the compiler from intel
Hope this helps

Best of Luck
Tarun

Post Reply