Re: [netcdfgroup] netcdf

Mohamed,

The statement "use netcdf" goes into your fortran 90 program below the program or subroutine or function statement, and above "implicit none". You should study and understand Fortran 90 modules before working on this program.

See if you can get this simple test program to compile and run:

program netcdf_version
   use netcdf
   print *, trim(nf90_inq_libvers())
end

The compile command should look something like this:

f90 netcdf_version.f90 -I/usr/include -L/usr/lib64 -lnetcdf

where the include directory contains the file netcdf.mod.

Is there any chance that you have old Fortran 77 code that somehow got renamed to ".f90" without complete conversion to Fortran 90?

--Dave

Mohamed Mohamed wrote:
Dave,

Thanks, I think it is may be the solution. However I am still a beginner
in the Linux. So please could you tell me what to do.


You said " I suspect that you need to add this to the top of each
program unit that has Netcdf calls:

    use netcdf "   My question is how ?


Find below a long part of the error. Please have a look.


f_ts.o vdif_uv.o vertvl_edge.o water_depth.o wreal.o ghostuv.o dens3.o
init_sed.o advave_edge_gcy.o advection_edge_gcy.o adv_uv_edge_gcy.o
bcond_gcy.o shape_coef_gcy.o depth_check.o vdif_ts_gom.o adjust_ts.o
shutdown_check.o extelpf_edge.o fct_q2.o fct_q2l.o viscofh.o
print_vals.o rho_mean.o viz.o -L/usr/lib64 -lnetcdf mod_ncdio.o: In function `__mod_ncdio__handle_ncerr':
mod_ncdio.f90:(.text+0x125): undefined reference to
`__netcdf__nf90_strerror'
mod_ncdio.o: In function `__mod_ncdio__putvar':
mod_ncdio.f90:(.text+0x11e4): undefined reference to
`__netcdf__nf90_put_var_2d_fourbytereal'
mod_ncdio.o: In function `__mod_ncdio__write_netcdf_setup':
mod_ncdio.f90:(.text+0x2122): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_ncdio.f90:(.text+0x2222): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_ncdio.f90:(.text+0x231a): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
.
.
.
mod_ncdio.f90:(.text+0x643d): undefined reference to
`__netcdf__nf90_close'
mod_ncdave.o: In function `__mod_ncdave__handle_ncerr_ave':
mod_ncdave.f90:(.text+0x125): undefined reference to
`__netcdf__nf90_strerror'
mod_ncdave.o: In function `__mod_ncdave__putvar2':
mod_ncdave.f90:(.text+0x1414): undefined reference to
`__netcdf__nf90_put_var_2d_fourbytereal'
mod_ncdave.o: In function `__mod_ncdave__write_netcdf_ave':
mod_ncdave.f90:(.text+0x2365): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_ncdave.f90:(.text+0x2463): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_ncdave.f90:(.text+0x2562): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_ncdave.f90:(.text+0x2605): undefined reference to
`__netcdf__nf90_put_var_fourbytereal'
mod_ncdave.f90:(.text+0x2683): undefined reference to
`__netcdf__nf90_put_var_fourbytereal'
mod_ncdave.f90:(.text+0x2e31): undefined reference to
`__netcdf__nf90_create'
.
.
.
mod_ncdave.f90:(.text+0x5de9): undefined reference to
`__netcdf__nf90_put_att_text'
mod_lag.o: In function `__mod_lag__dump_particles_ncd':
mod_lag.f90:(.text+0x378c): undefined reference to `__netcdf__nf90_open'
mod_lag.f90:(.text+0x37cf): undefined reference to
`__netcdf__nf90_inq_varid'
mod_lag.f90:(.text+0x3837): undefined reference to
`__netcdf__nf90_put_var_fourbytereal'
mod_lag.f90:(.text+0x387d): undefined reference to
`__netcdf__nf90_inq_varid'
mod_lag.f90:(.text+0x38ee): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_lag.f90:(.text+0x390c): undefined reference to
`__netcdf__nf90_inq_varid'
mod_lag.f90:(.text+0x397d): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_lag.f90:(.text+0x399b): undefined reference to
`__netcdf__nf90_inq_varid'
mod_lag.f90:(.text+0x3a0c): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_lag.f90:(.text+0x3a2a): undefined reference to
`__netcdf__nf90_inq_varid'
mod_lag.f90:(.text+0x3a9b): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_lag.f90:(.text+0x3ad8): undefined reference to
`__netcdf__nf90_inq_varid'
mod_lag.f90:(.text+0x3b6b): undefined reference to
`__netcdf__nf90_put_var_1d_fourbytereal'
mod_lag.f90:(.text+0x3b7c): undefined reference to
`__netcdf__nf90_close'
mod_lag.f90:(.text+0x3dc2): undefined reference to
`__netcdf__nf90_strerror'
mod_lag.f90:(.text+0x3ef8): undefined reference to
`__netcdf__nf90_strerror'
mod_lag.o: In function `__mod_lag__output_lag':
mod_lag.f90:(.text+0x41fa): undefined reference to
`__netcdf__nf90_create'
mod_lag.f90:(.text+0x427e): undefined reference to
`__netcdf__nf90_put_att_text'
mod_lag.f90:(.text+0x42de): undefined reference to
`__netcdf__nf90_put_att_text'
mod_lag.f90:(.text+0x438b): undefined reference to
`__netcdf__nf90_put_att_text'
mod_lag.f90:(.text+0x43d7): undefined reference to
`__netcdf__nf90_put_att_text'
mod_lag.f90:(.text+0x4435): undefined reference to
`__netcdf__nf90_put_att_text'
mod_lag.f90:(.text+0x90f5): undefined reference to
`__netcdf__nf90_strerror'
collect2: ld returned 1 exit status
make: *** [fvcom] Error 1

Thanks

Mohamed Ali
malibec2005@xxxxxxxxx
Mob 00447912033240

SChEME Department
Faculty of Engineering
University of Nottingham
Nottingham (NG7 2RD) UK
Fax: 0044(0)115 951 4115

-----Original Message-----
From: netcdfgroup-bounces@xxxxxxxxxxxxxxxx
[mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Dave Allured
Sent: Thursday, November 06, 2008 5:50 PM
To: netcdfgroup@xxxxxxxxxxxxxxxx
Subject: Re: [netcdfgroup] netcdf

Mohamed,

These are missing library symbol errors.  I suspect that you need to add
this to the top of each program unit that has Netcdf calls:

    use netcdf

This is because the Netcdf Fortran 90 interface uses modules.  You can't
properly link to the Netcdf F90 library without this declaration.

For diagnosis, your program is trying to link to this:

    __netcdf__nf90_open

But with a correct "use" statement it should be seeking a symbol named
something like this (the name change may vary by compiler and
platform):

    ___netcdf_MOD_nf90_open

I might be wrong about all of this if you are on a platform or compiler
that uses Fortran 90 linking conventions much different than what I am
familiar with.  If "use" doesn't fix it, then please provide
identification and version info for your platform, compiler, and netcdf
version.

Dave Allured
CU/CIRES Climate Diagnostics Center (CDC)
http://cires.colorado.edu/science/centers/cdc/
NOAA/ESRL/PSD, Climate Analysis Branch (CAB) http://www.cdc.noaa.gov/

Mohamed Mohamed wrote:
I worked with FVCOM software. When I started to get netcdf output type

I received the following error:

mod_lag.f90:(.text+0x89f6): undefined reference to `__netcdf__nf90_put_att_text' mod_lag.f90:(.text+0x8a1e): undefined reference to `__netcdf__nf90_put_att_text'

<snip>


  • 2008 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: