NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdfgroup] What is the "standard" way to use NetCDF from Fortran 90?

  • To: Ed Hartnett <ed@xxxxxxxxxxxxxxxx>
  • Subject: Re: [netcdfgroup] What is the "standard" way to use NetCDF from Fortran 90?
  • From: Russ Rew <russ@xxxxxxxxxxxxxxxx>
  • Date: Tue, 14 Jul 2009 15:06:23 -0600
Ed,

Nice answer!

--Russ

> Magnus Hagdorn <Magnus.Hagdorn@xxxxxxxx> writes:
> 
> > F90 source code is portable (as long as it is standard conforming and
> > you have a decent compiler...)
> 
> Howdy Magnus!
> 
> As noted, fortran compilers do not produce compatible .mod files. This
> can be a pain.
> 
> In practice it means you must build netCDF for every fortran compiler
> you want to use on the machine. That is, if you want to use ifort and
> gfortran on the same machine, you need to build the library twice, and
> install them in different places. Then you have to use the correct one
> when compiling fortran.
> 
> As you have also noted, sometimes a compiler will change (as gfortran
> did a few years back), so you would need to recompile your netCDF
> library. However, in practice, this seems to be rare. The gfortran case
> is the only one I know of.
> 
> >> Basically this means I need to include the NetCDF library into my
> >> model source. When there is no reliable external source to use, this
> 
> Including netCDF in your distribution is probably a bad idea. You don't
> want to take this on, believe me.
> 
> What happens when we update netCDF in some important way, and you are
> still distributing an older version? Not good.
> 
> Getting and installing netCDF is a well-solved problem. Just tell your
> users to go to the Unidata web site and get the latest stable
> release. (Always found here:
> ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf.tar.gz)
> 
> In any case the idea of shipping netCDF with your code will not
> scale. Starting with version 4.0 we (optionally) make use of other
> libraries, like the HDF5 library. You don't want to have to distribute
> all this too.
> 
> >> Now, perhaps that mess with Fortran libraries could be cleaned up when
> >> there is a nice package of the Fortran wrapper part (for use with
> >> NetCDF C API from some version up) that easily can be integrated in
> >> custom build systems (in an automated way).
> 
> The mess with the fortran libraries is even worse than you imagine. The
> F90 library is based on the F77 library, which is really a C library
> pretending to be Fortran 77 for your compiler, and which then calls the
> "real" netCDF C library.
> 
> This was all necessary because there was (until F2003) no standard
> C/Fortran interoperability. 
> 
> The conversion of the current system to one based on Fortran 2003 will
> clear away much of the confusion, but will not eliminate the requirement
> for the netCDF fortran compiler to match the fortran compiler for your
> particular application.
> 
> To fully implement your idea, you could distribute all the fortran code
> from a revised, 2003 compliant, netCDF fortran API. But I would not
> recommend this.
> 
> Thanks,
> 
> Ed
> 
> -- 
> Ed Hartnett  -- ed@xxxxxxxxxxxxxxxx
> 
> _______________________________________________
> netcdfgroup mailing list
> netcdfgroup@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe,  visit: http://www.unidata.ucar.edu/m
> ailing_lists/ 



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