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

Re: 19990308: Delphi and F90 modules for NetCDF



>To: address@hidden
>From: Nicholas Yue <address@hidden>
>Subject: Delphi and F90 modules for NetCDF
>Organization: Centre for Water Research
>Keywords: 199903080147.SAA17910

Hi Nicholas,

>       I would like to find out if there is a Delphi interface for NetCDF-3.4
> file. We have some existing application written in Delphi which we would
> like to enhance with NetCDF creating/reading/writing capability.

To get a Delphi interface for netCDF-3.4, you need to build a netCDF
DLL from the sources.  Instructions for doing this are in

  ftp://ftp.unidata.ucar.edu/pub/netcdf/contrib/win32/WIN32_INSTALL

Alternatively, you could use the DLL already built in

  ftp://ftp.unidata.ucar.edu/pub/netcdf/contrib/win32/netcdf-3.4.win32bin.zip

Other notes that may be helpful are included in this earlier reply to
a support question:

  http://www.unidata.ucar.edu/glimpse/netcdf/2898

>       How may I obtain the F90 module interface for NetCDF-3.4 ?

We do not currently support an F90 module for netCDF.  Our Fortran-77
interface should work with F90 compilers, since Fortran-90 is supposed
to be a superset of Fortran-77.

We don't have much Fortran-90 expertise, and have been trying to
enlist the aid of others to help to develop a Fortran-90 version.

Over a year ago, we discussed some ideas for a Fortran-90 interface
with someone who convinced us that it's possible to use generic
functions and optional (named) arguments to implement a Fortran90
interface (purely with module definitions) that uses just one read and
one write interface, instead of the current netCDF 3.4 Fortran-77
version that uses 30 read interfaces and 30 write interfaces.  

The current state of our Fortran-90 work, including an F90 module
interface, is available from

   http://www.unidata.ucar.edu/glimpse/netcdf/3264

It can only handle arrays of rank 1.  If you try to use a
multidimensional array, the compiler complains the argument has the
wrong rank.  A user has to PACK the values from a multidimensional
array before calling NF_PUT_VARA_ routines, and similarly unpack them
on reading.  If you can use the f90 interface module with this
restriction, it may be of some use to you.  Better still, if you know
a way around this restriction, we would be very interested.  I think
this restriction makes the current interface module not very useful,
so we haven't included it in the source distribution.


--Russ

_____________________________________________________________________

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