IPO Errors (ifort 9.0 and netcdf-3.6.0)

Discussion on computers, ROMS installation and compiling

Moderators: arango, robertson

Post Reply
Message
Author
Kenji Tanaka
Posts: 2
Joined: Thu Oct 13, 2005 4:29 pm
Location: Kumamoto University

IPO Errors (ifort 9.0 and netcdf-3.6.0)

#1 Post by Kenji Tanaka » Wed Nov 02, 2005 6:08 am

I'm now making attempt to compile the ROMS-2.2 using intel fortran compiler (ifort) ver. 9.0, but it abored with following messages:

ifort -openmp -tpp7 -O3 -pc32 -axW -Vaxlib master.o ocean_control.o -o oceanO libNLM.a libUTIL.a libMODS.a -L/usr/local/netcdf-3.6.0/lib -lnetcdf
IPO Error: unresolved : nf_close_
Referenced in libNLM.a(output.o)
Referenced in libUTIL.a(close_io.o)
Referenced in libUTIL.a(get_state.o)
Referenced in libUTIL.a(opencdf.o)
------------ and
libNLM.a(output.o)(.text+0x169): In function `output_':
: undefined reference to `nf_close_'
libNLM.a(output.o)(.text+0x3df): In function `output_':
: undefined reference to `nf_close_'
libNLM.a(output.o)(.text+0x61b): In function `output_':
: undefined reference to `nf_close_'
------------ etc.

Is there any problems on netcdf or configuration in makefile ?
The netcdf version is 3.6.0 (its root path; /usr/local/netcdf-3.6.0)

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

#2 Post by kate » Wed Nov 02, 2005 8:15 pm

That's quite odd that nf_close is the only problem routine during linking. I would do:

nm libnetcdf.a | grep nf_close

on your library. Then do nf_open to see how it differs. I expect you need to rebuild your NetCDF library.

Kenji Tanaka
Posts: 2
Joined: Thu Oct 13, 2005 4:29 pm
Location: Kumamoto University

#3 Post by Kenji Tanaka » Thu Nov 03, 2005 3:38 am

Thanks for your reply > kate
The result is,
000007c2 T nf_close__
000004e2 T nf_open__

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

#4 Post by kate » Fri Nov 11, 2005 1:03 am

That's weird - your library functions both have double underscores at the end, right? So the routine in roms that is calling nf_close must have been compiled differently somehow, so that it only has a single trailing underscore. I'd start doing nm on your ROMS libraries, to see how nf_open and nf_close are called in there. Check your compiler options - the IBM has one for specifying the trailing underscores in routines such as flush.

h_perales

about ifort and netcdf

#5 Post by h_perales » Mon Nov 14, 2005 2:25 pm

There is an option in the ifort 9.0 compiler "-assume 2underscores". Try that`.

Hector.

Post Reply