[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 19980803: 2 Questions to netCDF 3.4
- Subject: Re: 19980803: 2 Questions to netCDF 3.4
- Date: Mon, 03 Aug 1998 10:10:17 -0600
>To: address@hidden
>From: address@hidden
>Subject: 2 Questions to netCDF 3.4
>Organization: .
>Keywords: 199808030909.DAA13766
Hi Juergen,
> I have 2 Questions to netCDF 3.4.
I have forwarded your first question regarding what appears to be a bug
on a CRAY J90 to Steve Emmerson <address@hidden> for further
investigation.
> 2. My second question is, if I can get a module file for the FORTRAN
> netCDF routines with a declaration of all interfaces to the FORTRAN netcdf
> functions.
> Like following (for netCDF2.4):
>
> ...
> ! Functions in the FORTRAN interface
>
> interface
> integer function nccre(filename, cmode, rcode)
> character (len = *), intent ( in) :: filename
> integer , intent ( in) :: cmode
> integer , intent (out) :: rcode
> end function nccre
Unfortunately, we don't have a complete module file for the netCDF-3
Fortran interfaces.
The module file we supplied with netcdf-2.4 was an experiment in trying
to provide some Fortran 90 support, but we never succeeded in creating a
complete Fortran 90 interface for netCDF-2, because the Fortran
interface uses "type punning" where the same parameter to a subroutine
such as NCVPT's data parameter is intended to serve for INTEGER or REAL
arguments of various ranks (scalar, vector, multidimensional arrays
...). We did not know how to get around Fortran 90's stricter type
checking that only permits a single type and shape for the data
parameter.
In the latest version (netcdf-3.4), the new interface solves the type
punning problem by doing automatic type conversion between the external
numeric type and whatever internal numeric type you desire, but it
doesn't solve the problem of allowing different ranks for the data
argument. We have discussed with Robert Pincus of NASA how to solve
this problem and provide a good Fortran 90 interface for netCDF, but we
haven't finished the required work. Pincus has suggested how we could
use generic functions and optional (named) arguments to implement a
Fortran 90 interface (purely with module definitions) that uses just one
read and one write interface, but we currently don't have the resources
to finish adapting netCDF-3 to Fortran 90.
In case you are interested, I've appended the module file in its current
state. If you can get this to work for your purposes, we would be very
interested. I would also be happy to send you notes from a meeting we
had with Pincus about steps needed to create the generic interface for
Fortran 90 that he had in mind, if you are interested.
--Russ
_____________________________________________________________________
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
interface
CHARACTER*80 FUNCTION NF_INQ_LIBVERS()
end function NF_INQ_LIBVERS
CHARACTER*80 FUNCTION NF_STRERROR (NCERR)
integer, intent ( in) :: NCERR
end function NF_STRERROR
INTEGER FUNCTION NF_CREATE (PATH, CMODE, ncid)
character (len = *), intent ( in) :: PATH
integer, intent ( in) :: CMODE
integer, intent (out) :: ncid
end function NF_CREATE
INTEGER FUNCTION NF_OPEN (PATH, MODE, ncid)
character (len = *), intent ( in) :: PATH
integer, intent ( in) :: MODE
integer, intent (out) :: ncid
end function NF_OPEN
INTEGER FUNCTION NF_SET_FILL (NCID, FILLMODE, old_mode)
integer, intent ( in) :: NCID
integer, intent ( in) :: FILLMODE
integer, intent (out) :: old_mode
end function NF_SET_FILL
INTEGER FUNCTION NF_REDEF (NCID)
integer, intent ( in) :: NCID
end function NF_REDEF
INTEGER FUNCTION NF_ENDDEF (NCID)
integer, intent ( in) :: NCID
end function NF_ENDDEF
INTEGER FUNCTION NF_SYNC (NCID)
integer, intent ( in) :: NCID
end function NF_SYNC
INTEGER FUNCTION NF_ABORT (NCID)
integer, intent ( in) :: NCID
end function NF_ABORT
INTEGER FUNCTION NF_CLOSE (NCID)
integer, intent ( in) :: NCID
end function NF_CLOSE
INTEGER FUNCTION NF_INQ (NCID, ndims, nvars, ngatts,
unlimdimid)
integer, intent ( in) :: NCID
integer, intent (out) :: ndims
integer, intent (out) :: nvars
integer, intent (out) :: ngatts
integer, intent (out) :: unlimdimid
end function NF_INQ
INTEGER FUNCTION NF_INQ_NDIMS (NCID, ndims)
integer, intent ( in) :: NCID
integer, intent (out) :: ndims
end function NF_INQ_NDIMS
INTEGER FUNCTION NF_INQ_NVARS (NCID, nvars)
integer, intent ( in) :: NCID
integer, intent (out) :: nvars
end function NF_INQ_NVARS
INTEGER FUNCTION NF_INQ_NATTS (NCID, ngatts)
integer, intent ( in) :: NCID
integer, intent (out) :: ngatts
end function NF_INQ_NATTS
INTEGER FUNCTION NF_INQ_UNLIMDIM (NCID, unlimdimid)
integer, intent ( in) :: NCID
integer, intent (out) :: unlimdimid
end function NF_INQ_UNLIMDIM
INTEGER FUNCTION NF_DEF_DIM (NCID, NAME, LEN, dimid)
integer, intent ( in) :: NCID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: LEN
integer, intent (out) :: dimid
end function NF_DEF_DIM
INTEGER FUNCTION NF_INQ_DIMID (NCID, NAME, dimid)
integer, intent ( in) :: NCID
character (len = *), intent ( in) :: NAME
integer, intent (out) :: dimid
end function NF_INQ_DIMID
INTEGER FUNCTION NF_INQ_DIM (NCID, DIMID, name, len)
integer, intent ( in) :: NCID
integer, intent ( in) :: DIMID
character (len = *), intent (out) :: name
integer, intent (out) :: len
end function NF_INQ_DIM
INTEGER FUNCTION NF_INQ_DIMNAME (NCID, DIMID, name)
integer, intent ( in) :: NCID
integer, intent ( in) :: DIMID
character (len = *), intent (out) :: name
end function NF_INQ_DIMNAME
INTEGER FUNCTION NF_INQ_DIMLEN (NCID, DIMID, len)
integer, intent ( in) :: NCID
integer, intent ( in) :: DIMID
integer, intent (out) :: len
end function NF_INQ_DIMLEN
INTEGER FUNCTION NF_RENAME_DIM (NCID, DIMID, NAME)
integer, intent ( in) :: NCID
integer, intent ( in) :: DIMID
character (len = *), intent ( in) :: NAME
end function NF_RENAME_DIM
INTEGER FUNCTION NF_DEF_VAR (NCID, NAME, XTYPE, NDIMS, DIMIDS,
varid)
integer, intent ( in) :: NCID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: XTYPE
integer, intent ( in) :: NDIMS
integer, dimension(:), intent ( in) :: DIMIDS
integer, intent (out) :: varid
end function NF_DEF_VAR
INTEGER FUNCTION NF_INQ_VAR (NCID, VARID, name, xtype, ndims,
dimids, natts)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent (out) :: name
integer, intent (out) :: xtype
integer, intent (out) :: ndims
integer, dimension(:), intent (out) :: dimids
integer, intent (out) :: natts
end function NF_INQ_VAR
INTEGER FUNCTION NF_INQ_VARID (NCID, NAME, varid)
integer, intent ( in) :: NCID
character (len = *), intent ( in) :: NAME
integer, intent (out) :: varid
end function NF_INQ_VARID
INTEGER FUNCTION NF_INQ_VARNAME (NCID, VARID, name)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent (out) :: name
end function NF_INQ_VARNAME
INTEGER FUNCTION NF_INQ_VARTYPE (NCID, VARID, xtype)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, intent (out) :: xtype
end function NF_INQ_VARTYPE
INTEGER FUNCTION NF_INQ_VARNDIMS (NCID, VARID, ndims)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, intent (out) :: ndims
end function NF_INQ_VARNDIMS
INTEGER FUNCTION NF_INQ_VARDIMID (NCID, VARID, dimids)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent (out) :: dimids
end function NF_INQ_VARDIMID
INTEGER FUNCTION NF_INQ_VARNATTS (NCID, VARID, natts)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, intent (out) :: natts
end function NF_INQ_VARNATTS
INTEGER FUNCTION NF_RENAME_VAR (NCID, VARID, NAME)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
end function NF_RENAME_VAR
INTEGER FUNCTION NF_PUT_VAR_TEXT (NCID, VARID, TEXT)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: TEXT
end function NF_PUT_VAR_TEXT
INTEGER FUNCTION NF_GET_VAR_TEXT (NCID, VARID, text)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent (out) :: text
end function NF_GET_VAR_TEXT
INTEGER FUNCTION NF_PUT_VAR_INT1 (NCID, VARID, I1VAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer*1, intent ( in) :: I1VAL
end function NF_PUT_VAR_INT1
INTEGER FUNCTION NF_GET_VAR_INT1 (NCID, VARID, i1val)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer*1, intent (out) :: i1val
end function NF_GET_VAR_INT1
INTEGER FUNCTION NF_PUT_VAR_INT2 (NCID, VARID, I2VAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer*2, intent ( in) :: I2VAL
end function NF_PUT_VAR_INT2
INTEGER FUNCTION NF_GET_VAR_INT2 (NCID, VARID, i2val)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer*2, intent (out) :: i2val
end function NF_GET_VAR_INT2
INTEGER FUNCTION NF_PUT_VAR_INT (NCID, VARID, IVAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, intent ( in) :: IVAL
end function NF_PUT_VAR_INT
INTEGER FUNCTION NF_GET_VAR_INT (NCID, VARID, ival)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, intent (out) :: ival
end function NF_GET_VAR_INT
INTEGER FUNCTION NF_PUT_VAR_REAL (NCID, VARID, RVAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
real, intent ( in) :: RVAL
end function NF_PUT_VAR_REAL
INTEGER FUNCTION NF_GET_VAR_REAL (NCID, VARID, rval)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
real, intent (out) :: rval
end function NF_GET_VAR_REAL
INTEGER FUNCTION NF_PUT_VAR_DOUBLE (NCID, VARID, DVAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
doubleprecision, intent ( in) :: DVAL
end function NF_PUT_VAR_DOUBLE
INTEGER FUNCTION NF_GET_VAR_DOUBLE (NCID, VARID, dval)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
doubleprecision, intent (out) :: dval
end function NF_GET_VAR_DOUBLE
INTEGER FUNCTION NF_PUT_VAR1_TEXT (NCID, VARID, INDEX, TEXT)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
character (len = *), intent ( in) :: TEXT
end function NF_PUT_VAR1_TEXT
INTEGER FUNCTION NF_GET_VAR1_TEXT (NCID, VARID, INDEX, text)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
character (len = *), intent (out) :: text
end function NF_GET_VAR1_TEXT
INTEGER FUNCTION NF_PUT_VAR1_INT1 (NCID, VARID, INDEX, I1VAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
integer*1, intent ( in) :: I1VAL
end function NF_PUT_VAR1_INT1
INTEGER FUNCTION NF_GET_VAR1_INT1 (NCID, VARID, INDEX, i1val)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
integer*1, intent (out) :: i1val
end function NF_GET_VAR1_INT1
INTEGER FUNCTION NF_PUT_VAR1_INT2 (NCID, VARID, INDEX, I2VAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
integer*2, intent ( in) :: I2VAL
end function NF_PUT_VAR1_INT2
INTEGER FUNCTION NF_GET_VAR1_INT2 (NCID, VARID, INDEX, i2val)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
integer*2, intent (out) :: i2val
end function NF_GET_VAR1_INT2
INTEGER FUNCTION NF_PUT_VAR1_INT (NCID, VARID, INDEX, IVAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
integer, intent ( in) :: IVAL
end function NF_PUT_VAR1_INT
INTEGER FUNCTION NF_GET_VAR1_INT (NCID, VARID, INDEX, ival)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
integer, intent (out) :: ival
end function NF_GET_VAR1_INT
INTEGER FUNCTION NF_PUT_VAR1_REAL (NCID, VARID, INDEX, RVAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
real, intent ( in) :: RVAL
end function NF_PUT_VAR1_REAL
INTEGER FUNCTION NF_GET_VAR1_REAL (NCID, VARID, INDEX, rval)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
real, intent (out) :: rval
end function NF_GET_VAR1_REAL
INTEGER FUNCTION NF_PUT_VAR1_DOUBLE(NCID, VARID, INDEX, DVAL)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
doubleprecision, intent ( in) :: DVAL
end function NF_PUT_VAR1_DOUBLE
INTEGER FUNCTION NF_GET_VAR1_DOUBLE(NCID, VARID, INDEX, dval)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: INDEX
doubleprecision, intent (out) :: dval
end function NF_GET_VAR1_DOUBLE
INTEGER FUNCTION NF_PUT_VARA_TEXT (NCID, VARID, START, COUNT, TEXT)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
character (len = *), intent ( in) :: TEXT
end function NF_PUT_VARA_TEXT
INTEGER FUNCTION NF_GET_VARA_TEXT (NCID, VARID, START, COUNT, text)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
character (len = *), intent (out) :: text
end function NF_GET_VARA_TEXT
INTEGER FUNCTION NF_PUT_VARA_INT1 (NCID, VARID, START, COUNT, I1VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer*1, dimension(:), intent ( in) :: I1VALS
end function NF_PUT_VARA_INT1
INTEGER FUNCTION NF_GET_VARA_INT1 (NCID, VARID, START, COUNT, i1vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer*1, dimension(:), intent (out) :: i1vals
end function NF_GET_VARA_INT1
INTEGER FUNCTION NF_PUT_VARA_INT2 (NCID, VARID, START, COUNT, I2VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer*2, dimension(:), intent ( in) :: I2VALS
end function NF_PUT_VARA_INT2
INTEGER FUNCTION NF_GET_VARA_INT2 (NCID, VARID, START, COUNT, i2vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer*2, dimension(:), intent (out) :: i2vals
end function NF_GET_VARA_INT2
INTEGER FUNCTION NF_PUT_VARA_INT (NCID, VARID, START, COUNT, IVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: IVALS
end function NF_PUT_VARA_INT
INTEGER FUNCTION NF_GET_VARA_INT (NCID, VARID, START, COUNT, ivals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent (out) :: ivals
end function NF_GET_VARA_INT
INTEGER FUNCTION NF_PUT_VARA_REAL (NCID, VARID, START, COUNT, RVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
real, dimension(:), intent ( in) :: RVALS
end function NF_PUT_VARA_REAL
INTEGER FUNCTION NF_GET_VARA_REAL (NCID, VARID, START, COUNT, rvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
real, dimension(:), intent (out):: rvals
end function NF_GET_VARA_REAL
INTEGER FUNCTION NF_PUT_VARA_DOUBLE(NCID, VARID, START, COUNT, DVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
doubleprecision, dimension(:), intent ( in) :: DVALS
end function NF_PUT_VARA_DOUBLE
INTEGER FUNCTION NF_GET_VARA_DOUBLE(NCID, VARID, START, COUNT, dvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
doubleprecision, dimension(:), intent (out) :: dvals
end function NF_GET_VARA_DOUBLE
INTEGER FUNCTION NF_PUT_VARS_TEXT (NCID, VARID, START, COUNT, STRIDE,
TEXT)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
character (len = *), intent ( in) :: TEXT
end function NF_PUT_VARS_TEXT
INTEGER FUNCTION NF_GET_VARS_TEXT (NCID, VARID, START, COUNT, STRIDE,
text)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
character (len = *), intent (out) :: text
end function NF_GET_VARS_TEXT
INTEGER FUNCTION NF_PUT_VARS_INT1 (NCID, VARID, START, COUNT, STRIDE,
I1VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer*1, dimension(:), intent ( in) :: I1VALS
end function NF_PUT_VARS_INT1
INTEGER FUNCTION NF_GET_VARS_INT1 (NCID, VARID, START, COUNT, STRIDE,
i1vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer*1, dimension(:), intent (out) :: i1vals
end function NF_GET_VARS_INT1
INTEGER FUNCTION NF_PUT_VARS_INT2 (NCID, VARID, START, COUNT, STRIDE,
I2VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer*2, dimension(:), intent ( in) :: I2VALS
end function NF_PUT_VARS_INT2
INTEGER FUNCTION NF_GET_VARS_INT2 (NCID, VARID, START, COUNT, STRIDE,
i2vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer*2, dimension(:), intent (out) :: i2vals
end function NF_GET_VARS_INT2
INTEGER FUNCTION NF_PUT_VARS_INT (NCID, VARID, START, COUNT, STRIDE,
IVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IVALS
end function NF_PUT_VARS_INT
INTEGER FUNCTION NF_GET_VARS_INT (NCID, VARID, START, COUNT, STRIDE,
ivals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent (out) :: ivals
end function NF_GET_VARS_INT
INTEGER FUNCTION NF_PUT_VARS_REAL (NCID, VARID, START, COUNT, STRIDE,
RVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
real, dimension(:), intent ( in) :: RVALS
end function NF_PUT_VARS_REAL
INTEGER FUNCTION NF_GET_VARS_REAL (NCID, VARID, START, COUNT, STRIDE,
rvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
real, dimension(:), intent (out) :: rvals
end function NF_GET_VARS_REAL
INTEGER FUNCTION NF_PUT_VARS_DOUBLE(NCID, VARID, START, COUNT, STRIDE,
DVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
doubleprecision, dimension(:), intent ( in) :: DVALS
end function NF_PUT_VARS_DOUBLE
INTEGER FUNCTION NF_GET_VARS_DOUBLE(NCID, VARID, START, COUNT, STRIDE,
dvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
doubleprecision, dimension(:), intent (out) :: dvals
end function NF_GET_VARS_DOUBLE
INTEGER FUNCTION NF_PUT_VARM_TEXT (NCID, VARID, START, COUNT, STRIDE,
IMAP, TEXT)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
character (len = *), intent ( in) :: TEXT
end function NF_PUT_VARM_TEXT
INTEGER FUNCTION NF_GET_VARM_TEXT (NCID, VARID, START, COUNT, STRIDE,
IMAP, text)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
character (len = *), intent (out) :: text
end function NF_GET_VARM_TEXT
INTEGER FUNCTION NF_PUT_VARM_INT1 (NCID, VARID, START, COUNT, STRIDE,
IMAP, I1VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
integer*1, dimension(:), intent ( in) :: I1VALS
end function NF_PUT_VARM_INT1
INTEGER FUNCTION NF_GET_VARM_INT1 (NCID, VARID, START, COUNT, STRIDE,
IMAP, i1vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
integer*1, dimension(:), intent (out) :: i1vals
end function NF_GET_VARM_INT1
INTEGER FUNCTION NF_PUT_VARM_INT2 (NCID, VARID, START, COUNT, STRIDE,
IMAP, I2VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
integer*2, dimension(:), intent ( in) :: I2VALS
end function NF_PUT_VARM_INT2
INTEGER FUNCTION NF_GET_VARM_INT2 (NCID, VARID, START, COUNT, STRIDE,
IMAP, i2vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
integer*2, dimension(:), intent (out) :: i2vals
end function NF_GET_VARM_INT2
INTEGER FUNCTION NF_PUT_VARM_INT (NCID, VARID, START, COUNT, STRIDE,
IMAP, IVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
integer, dimension(:), intent ( in) :: IVALS
end function NF_PUT_VARM_INT
INTEGER FUNCTION NF_GET_VARM_INT (NCID, VARID, START, COUNT, STRIDE,
IMAP, ivals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
integer, dimension(:), intent (out) :: ivals
end function NF_GET_VARM_INT
INTEGER FUNCTION NF_PUT_VARM_REAL (NCID, VARID, START, COUNT, STRIDE,
IMAP, RVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
real, dimension(:), intent ( in) :: RVALS
end function NF_PUT_VARM_REAL
INTEGER FUNCTION NF_GET_VARM_REAL (NCID, VARID, START, COUNT, STRIDE,
IMAP, rvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
real, dimension(:), intent (out) :: rvals
end function NF_GET_VARM_REAL
INTEGER FUNCTION NF_PUT_VARM_DOUBLE(NCID, VARID, START, COUNT, STRIDE,
IMAP, DVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
doubleprecision, dimension(:), intent ( in) :: DVALS
end function NF_PUT_VARM_DOUBLE
INTEGER FUNCTION NF_GET_VARM_DOUBLE(NCID, VARID, START, COUNT, STRIDE,
IMAP, dvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, dimension(:), intent ( in) :: START
integer, dimension(:), intent ( in) :: COUNT
integer, dimension(:), intent ( in) :: STRIDE
integer, dimension(:), intent ( in) :: IMAP
doubleprecision, dimension(:), intent (out) :: dvals
end function NF_GET_VARM_DOUBLE
INTEGER FUNCTION NF_INQ_ATT (NCID, VARID, NAME, xtype, len)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent (out) :: xtype
integer, intent (out) :: len
end function NF_INQ_ATT
INTEGER FUNCTION NF_INQ_ATTID (NCID, VARID, NAME, attnum)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent (out) :: attnum
end function NF_INQ_ATTID
INTEGER FUNCTION NF_INQ_ATTTYPE (NCID, VARID, NAME, xtype)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent (out) :: xtype
end function NF_INQ_ATTTYPE
INTEGER FUNCTION NF_INQ_ATTLEN (NCID, VARID, NAME, len)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent (out) :: len
end function NF_INQ_ATTLEN
INTEGER FUNCTION NF_INQ_ATTNAME (NCID, VARID, ATTNUM, name)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
integer, intent (out) :: ATTNUM
character (len = *), intent (out) :: name
end function NF_INQ_ATTNAME
INTEGER FUNCTION NF_COPY_ATT (NCID_IN, VARID_IN, NAME, NCID_OUT,
VARID_OUT)
integer, intent ( in) :: NCID_IN
integer, intent ( in) :: VARID_IN
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: NCID_OUT
integer, intent ( in) :: VARID_OUT
end function NF_COPY_ATT
INTEGER FUNCTION NF_RENAME_ATT (NCID, VARID, CURNAME, NEWNAME)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: CURNAME
character (len = *), intent ( in) :: NEWNAME
end function NF_RENAME_ATT
INTEGER FUNCTION NF_DEL_ATT (NCID, VARID, NAME)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
end function NF_DEL_ATT
INTEGER FUNCTION NF_PUT_ATT_TEXT (NCID, VARID, NAME, LEN, TEXT)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: LEN
character (len = *), intent ( in) :: TEXT
end function NF_PUT_ATT_TEXT
INTEGER FUNCTION NF_GET_ATT_TEXT (NCID, VARID, NAME, text)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
character (len = *), intent (out) :: text
end function NF_GET_ATT_TEXT
INTEGER FUNCTION NF_PUT_ATT_INT1 (NCID, VARID, NAME, XTYPE, LEN,
I1VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: XTYPE
integer, intent ( in) :: LEN
integer*1, dimension(:), intent ( in) :: I1VALS
end function NF_PUT_ATT_INT1
INTEGER FUNCTION NF_GET_ATT_INT1 (NCID, VARID, NAME, i1vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer*1, dimension(:), intent (out) :: i1vals
end function NF_GET_ATT_INT1
INTEGER FUNCTION NF_PUT_ATT_INT2 (NCID, VARID, NAME, XTYPE, LEN,
I2VALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: XTYPE
integer, intent ( in) :: LEN
integer*2, dimension(:), intent ( in) :: I2VALS
end function NF_PUT_ATT_INT2
INTEGER FUNCTION NF_GET_ATT_INT2 (NCID, VARID, NAME, i2vals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer*2, dimension(:), intent (out) :: i2vals
end function NF_GET_ATT_INT2
INTEGER FUNCTION NF_PUT_ATT_INT (NCID, VARID, NAME, XTYPE, LEN, IVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: XTYPE
integer, intent ( in) :: LEN
integer, dimension(:), intent ( in) :: IVALS
end function NF_PUT_ATT_INT
INTEGER FUNCTION NF_GET_ATT_INT (NCID, VARID, NAME, ivals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, dimension(:), intent (out) :: ivals
end function NF_GET_ATT_INT
INTEGER FUNCTION NF_PUT_ATT_REAL (NCID, VARID, NAME, XTYPE, LEN, RVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: XTYPE
integer, intent ( in) :: LEN
real, dimension(:), intent ( in) :: RVALS
end function NF_PUT_ATT_REAL
INTEGER FUNCTION NF_GET_ATT_REAL (NCID, VARID, NAME, rvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
real, dimension(:), intent (out) :: rvals
end function NF_GET_ATT_REAL
INTEGER FUNCTION NF_PUT_ATT_DOUBLE (NCID, VARID, NAME, XTYPE, LEN, DVALS)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
integer, intent ( in) :: XTYPE
integer, intent ( in) :: LEN
doubleprecision, dimension(:), intent ( in) :: DVALS
end function NF_PUT_ATT_DOUBLE
INTEGER FUNCTION NF_GET_ATT_DOUBLE (NCID, VARID, NAME, dvals)
integer, intent ( in) :: NCID
integer, intent ( in) :: VARID
character (len = *), intent ( in) :: NAME
doubleprecision, dimension(:), intent (out) :: dvals
end function NF_GET_ATT_DOUBLE
end interface