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 >cc: address@hidden >From: Paul LE TEXIER <address@hidden> >Subject: Fortran 90 module for NetCDF 3.4 >Organization: CEA/CESTA >Keywords: 199901261328.GAA08067 Hi, > Please, is there a netcdf module for use with fortran 90 and netcdf > version 3.4 ? I've appended the latest attempt we have made at creating such a module. It has a problem we don't know how to get around, namely that 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, but we are not Fortran 90 experts. 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 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