This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>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