[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #EJA-190555]: netcdf42-fortran: netcdf.h for fortran not found by configure (= a script glitch?) (fwd)



Hi Dr. Smolka,

> As you have a separate netcdf-support email,  resend the email I sent
> already to support.

Sorry I didn't see your email to support.  It's typically forwarded to
support-netcdf if that's the main subject, but we occasionally slip
up.

> Dear Madam or Sir,
> 
> written in a perfectly friendly mood:
> 
> given:
> 
> Red Hat Linux 6, Intel Fortran (and C), Perl etc. as on the RedHat CD..
> Intention: Run CESM from NCAR.
> 
> Downloaded: netcdf-fortran-4.2: The 2.7 MBversion lacks some files (such as
> configure).

I'm not sure what file you're looking at, but the compressed tar file
from our FTP site <ftp.unidata.ucar.edu/pub/netcdf> or Downloads web
page <http://www.unidata.ucar.edu/downloads/netcdf/> has about that
size:

  -rw-rw-r--  1 russ    ustaff  2479928 Oct  3  2011 netcdf-fortran-4.2.tar.gz

and definitely includes a configure file:
  
  $ tar -xzf ~/Downloads/netcdf-fortran-4.2.tar.gz
  $ ls -l netcdf-fortran-4.2/configure
  -rwxrwxr-x 1 russ ustaff 712139 Oct  3  2011 netcdf-fortran-4.2/configure

> The 9 MB version has configure: I refer to that.

Sorry, I'm not sure which 9 MB version you're referring to.  I'll
assume it's just the unpacked version of the compressed tar file
above, which results in about 9.6 MB of source code and documentation
files.

> Building the C-Library went find (at least as it appears): Sme CESM libraries
> build with that.
> 
> Building the Fortran-Library:
> 
> using ./configure results in: "netcdf.h could not be found. Please set
> CPPFLAGS".
> It is generated from Line 18674 in the configure script.

Yes, the instructions for building the netCDF-Fortran library have
changed, since it was separated from the netCDF-C library software in
June 2011.  Here's the instructions for version 4.2 and later of
netCDF-Fortran:

  http://www.unidata.ucar.edu/netcdf/docs/netcdf-fortran-install.html

> I copied netcdf.h from the netcdf-C-directory to various places, including the
> $HOME directory, so it is in the path.
> 
> It says consistently: Not found.
> 
> So, formulated politely: In which file should I type what so the file gets
> found.

As the instructions referenced above explain, the netCDF-Fortran
library can only be built after the netCDF C library is built and
installed.  The default installation location for netCDF libraries is
/usr/local, so the default location where netcdf.h will be installed
is /usr/local/include/netcdf.h.  If you built the netCDF C library for
installing in a different location, for example using the configure
option

   ./configure --prefix=$HOME/xyz ...
   make check
   make install

to specify installing in $HOME/xyz for example, then netcdf.h would get 
installed 
in $HOME/xyz/include/netcdf.h.

> Example: Take file configure.name (if it exists). Got to line 1200.
> There you see CPPFLAGS=....
> 
> Add there -I$HOMExyz if netdfd.h is in the $HOMExyz-directory or what applies.
> 
> Please note: In Fortran I am really fluent since 1979. C and Scripts I regard
> (personally) as "I never wanted these".
> 
> I do not(!) need any new interactive script. I just need a line to edit in a
> file.

It is impractical to edit the configure file, as it is generated by a program
(autoreconf) from another file (configure.ac).  If you needed to change what
the configure script does, it should only be done by editing configure.ac and
then running "autoreconf -i -f".  But you should never have to do that!  It's
our job as developers to provide a configure script that always works, even
on platforms that we haven't tried.

> Possibly even, if it is not the netcdf.h from the C-Directories: Another
> netcdf.h? (sent by email).
> 
> If it is supposed to be made from some automake-thing: Possibly there is a
> glitch there?
> 
> And: Although it is Intel Fortran and Intel C the scripts appear to use GNU
> Fortran and GNU C. Hope it will work with Intel.

The netCDF C library has its own configure script, different from the
configure script for the netCDF Fortran library.  Both are designed to
work with standard compilers, including GNU compilers or Intel
compilers.

The netcdf.h file is part of the netCDF C library, installed by running 
"make install" for that package.  You don't have to match the version of
the netCDF-C software with the version of the netCDF-Fortran library, so
for example, you can install netCDF-C version 4.3.1.1 (the most recent)
and use it to install netCDF-Fortran version 4.2 (the most recent).

If you try to reinstall the netCDF C library, there is one current
problem to watch out for when running "make check": currently one of
the remote access tests is failing because of a problem with our
remote data test server, which we are still working on.  To get around
this, you need to use the configure option
"--disable-dap-remote-tests" with the netCDF C configure script.

Other options you may want to use with the netCDF C script might
include "--disable-netcdf-4" if you have no use for the netCDF-4
features such as compression and modern data structures.

I hope this helps.  Please let us know of any other problems you
encounter.  I'll respond to your suggestions about building a 100%
Fortran version of netCDF in a subsequent email ...

--Russ Rew

Russ Rew                                         UCAR Unidata Program
address@hidden                      http://www.unidata.ucar.edu



Ticket Details
===================
Ticket ID: EJA-190555
Department: Support netCDF
Priority: Normal
Status: Closed