Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

undefined reference to `nf_open_'

ebeigi3
Beginner
4,867 Views
Dear Sir/Madam,

I am trying to install netcdf on Redhat 6 (2.6.32-220.2.1.el6.x86_64) and , i think there is problem withing intel fortran compiler and netcdf interface, because i got this error message: how could i solve this problem, any help will be appreciated in advance

Compiler configuration problem encountered. Compiler cannot load imf dispatching library.
ld: warning: libimf.so, needed by /usr/local/lib/libnetcdf.so, not found (try using -rpath or -rpath-link)
ld: warning: libsvml.so, needed by /usr/local/lib/libnetcdf.so, not found (try using -rpath or -rpath-link)
ld: warning: libintlc.so.5, needed by /usr/local/lib/libnetcdf.so, not found (try using -rpath or -rpath-link)
CAM_netcdf_to_WRF_intermediate_EHS.o: In function `read_netcdf_cam_and_clm_files_':
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x760b): undefined reference to `nf_open_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x767e): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x76a0): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x76c2): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x76e4): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7706): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.o:CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7728): more undefined references to `nf_inq_varid_' follow
CAM_netcdf_to_WRF_intermediate_EHS.o: In function `read_netcdf_cam_and_clm_files_':
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7db9): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7de3): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7fe9): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8019): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x813e): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8168): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x836e): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x839e): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x876d): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8806): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x89f0): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8a59): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x91d7): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x926e): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x9455): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x94bd): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xa31a): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xa3c3): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xa614): undefined reference to `nf_get_var_real_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xb17f): undefined reference to `nf_get_var_real_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xd4a7): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xd4c6): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xd4e2): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xe741): undefined reference to `nf_close_'
CAM_netcdf_to_WRF_intermediate_EHS.o: In function `handle_err_':
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x11007): undefined reference to `nf_strerror_'
./Runit: line 4: ./a.out: No such file or directory


0 Kudos
5 Replies
mecej4
Honored Contributor III
4,867 Views
Please specify the compiler version being used and state how the NetCDF library was compiled. It may be that the library was compiled with an older version of the Intel compiler and has dependencies on obsolete libraries.
0 Kudos
TimP
Honored Contributor III
4,867 Views
In my experience, netcdf requires an environment variable pointing to your netcdf installation path. You can't do without reading their instructions. Of course, you must also have the ifort libraries installed and the environment variables set, normally done by e.g.
source /bin/ifortvars.sh ia32
If, as mecej4 hinted, you use pre-built libraries, your ifort installation must be at least of the corresponding version.
0 Kudos
ebeigi3
Beginner
4,867 Views
Thanks for your reply. i am using the latest verstion of intel compiler with netcdf.4.0 on RHEL6 which deosn't have f90
Intel C++ Composer XE for Linux
Intel Fortran Composer XE for Linux and i source it in .bashrc
source /home/ehsan/Documents/Intel/12/composer_xe_2011_sp1.8.273/bin/compilervars.sh

and i i installed netcdf.4.0 by this command:
./configure CC=icc FC=ifort --prefix=/home/ehsan/Documents/local/ --disable-netcdf-4
make check
make install
after that it installed without any error but i think when i run this command :

ifort -c -CB -par_report0 -vec_report0 -I/home/ehsan/Documents/local/include/ CAM_netcdf_to_WRF_intermediate_EHS.f90; ifort CAM_netcdf_to_WRF_intermediate_EHS.o -L/home/ehsan/Documents/local/lib/ -lnetcdf ; ./a.out


it gives me this error:



warning #13380: Compiler configuration problem encountered. Compiler cannot load imf dispatching library.
CAM_netcdf_to_WRF_intermediate_EHS.o: In function `read_netcdf_cam_and_clm_files_':
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x760b): undefined reference to `nf_open_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x767e): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x76a0): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x76c2): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x76e4): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7706): undefined reference to `nf_inq_varid_'
CAM_netcdf_to_WRF_intermediate_EHS.o:CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7728): more undefined references to `nf_inq_varid_' follow
CAM_netcdf_to_WRF_intermediate_EHS.o: In function `read_netcdf_cam_and_clm_files_':
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7db9): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7de3): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x7fe9): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8019): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x813e): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8168): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x836e): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x839e): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x876d): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8806): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x89f0): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x8a59): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x91d7): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x926e): undefined reference to `nf_inq_attlen_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x9455): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x94bd): undefined reference to `nf_get_att_text_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xa31a): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xa3c3): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xa614): undefined reference to `nf_get_var_real_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xb17f): undefined reference to `nf_get_var_real_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xd4a7): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xd4c6): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xd4e2): undefined reference to `nf_get_var_double_'
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0xe741): undefined reference to `nf_close_'
CAM_netcdf_to_WRF_intermediate_EHS.o: In function `handle_err_':
CAM_netcdf_to_WRF_intermediate_EHS.f90:(.text+0x11007): undefined reference to `nf_strerror_'
./Runit: line 3: ./a.out: No such file or directory


i tried to change the command by linking netcdf fortran librarires to
ifort -c -CB -par_report0 -vec_report0 -I/home/ehsan/Documents/local/include/ CAM_netcdf_to_WRF_intermediate_EHS.f90; ifort CAM_netcdf_to_WRF_intermediate_EHS.o -L/home/ehsan/Documents/local/lib -L/home/ehsan/Documents/Netcdf/netcdf-4.0/fortran/.libs/libnetcdff.a -L/home/ehsan/Documents/Netcdf/netcdf-4.0/f90/.libs/ -L/home/ehsan/Documents/Netcdf/netcdf-4.0/ -L/home/ehsan/Documents/Netcdf/netcdf-4.0/libsrc/ -lnetcdff -lnetcdf ; ./a.out



noiw it works but igives me this error
ifort: error #10236: File not found: 'CAM_netcdf_to_WRF_intermediate_EHS.f90'
ifort: command line error: no files specified; for help type "ifort -help"


Thanks for your help in advance.






0 Kudos
mecej4
Honored Contributor III
4,867 Views
Your penchant for using multiple commands on a single command line is probably adding to your confusion. Until you get the problems sorted out, it would be better to issue a single command and interpret the error messages that ensue, moving on to the next command only after the first one succeeded with no errors.

The part

-L/home/ehsan/Documents/Netcdf/netcdf-4.0/fortran/.libs/libnetcdff.a

is definitely an error, probably arising from confusion between the meaning of the -L and -l options of the linker.

Check if the source files are where the compiler expects them to be, and check if the libimf.so library is accessible for linking as well as for execution.
0 Kudos
Ron_Green
Moderator
4,867 Views
Your source command is incomplete. You say you have

source /home/ehsan/Documents/Intel/12/composer_xe_2011_sp1.8.273/bin/compilervars.sh

this SHOULD be

source /home/ehsan/Documents/Intel/12/composer_xe_2011_sp1.8.273/bin/compilervars.sh intel64

for 64 bit, or

source /home/ehsan/Documents/Intel/12/composer_xe_2011_sp1.8.273/bin/compilervars.sh ia32

for 32 bit.
0 Kudos
Reply