manpagez: man pages & more
man netcdf_f90(3)
Home | html | info | man
NETCDF(3f90)               UNIDATA LIBRARY FUNCTIONS              NETCDF(3f90)




NAME

       netcdf  -  Unidata Network Common Data Form (netCDF) library, version 3
       interface


SYNOPSIS

       use netcdf


   Most Systems:
       f90 ... -lnetcdf


   CRAY PVP Systems:
       f90 -dp -i64 ... -lnetcdf



LIBRARY VERSION

       This document describes version 3 of Unidata netCDF data-access  inter-
       face for the Fortran-90 programming language.

       character*80 nf90_inq_libvers()
              character(len=80) :: nf90_inq_libvers

       Returns  a  string  identifying  the version of the netCDF library, and
       when it was built, like: "3.1a of Aug 22 1996 12:57:47 $".

       The RCS ident(1) command will find a string like "$Id: @(#) netcdf  li-
       brary  version 3.1a of Sep  6 1996 15:56:26 $" in the library. The SCCS
       what(1) command will find a string like "netcdf library version 3.1a of
       Aug 23 1996 16:07:40 $".


ROUTINE DESCRIPTIONS

       All  netCDF  functions  (except nf90_inq_libvers() and nf90_strerror())
       return an integer status.  This behavior replaces  the  rcode  argument
       used in previous versions of the library.  If this returned status val-
       ue is not equal to nf90_noerr (zero), it indicates that  an  error  oc-
       curred. The possible status values are defined in the module netcdf.

       function nf90_strerror(ncerr)
              integer, intent(in) :: ncerr
              character(len=80) :: nf90_strerror

              Returns  a  string  textual translation of the ncerr value, like
              "Attribute or variable name contains illegal characters" or  "No
              such file or directory".

       function nf90_create(path, cmode, ncid)
              character(len=*), intent(in) :: path
              integer, intent(in) :: cmode
              integer, optional, intent(in) :: initialsize
              integer, optional, intent(inout) :: chunksize
              integer, intent(out) :: ncid
              integer :: nf90_create

              (Corresponds to nccre() in version 2)

              Creates  a  new netCDF dataset at path, returning a netCDF ID in
              ncid.  The argument cmode may include the bitwise-or of the fol-
              lowing  flags:  nf90_noclobber to protect existing datasets (de-
              fault silently blows  them  away),  nf90_share  for  synchronous
              dataset  updates  (default is to buffer accesses), and nf90_lock
              (not yet implemented).  When a netCDF dataset is created, is  is
              opened nf90_write.  The new netCDF dataset is in define mode.

              The  optional  argument initialsize sets the initial size of the
              file at creation time.

              See nf__open() below for an explanation of the  optional  chunk-
              size argument.

       function nf90_open(path, mode, ncid, chunksize)
              character(len=*), intent(in) :: path
              integer, intent(in) :: mode
              integer, intent(out) :: ncid
              integer, optional, intent(inout) :: chunksize
              integer :: nf90_open

              (Corresponds to ncopn() in version 2)

              Opens a existing netCDF dataset at path returning a netCDF ID in
              ncid.  As of NetCDF version 4.1, and if DAP support was  enabled
              when  the  library was built, the path may instead specify a DAP
              URL (refer to the NetCDF user's manual for details).

              The type of access is described by the mode parameter, which may
              include  the  bitwise-or  of the following flags: nf90_write for
              read-write access (default read-only), nf90_share  for  synchro-
              nous  dataset  updates  (default  is  to  buffer  accesses), and
              nf90_lock (not yet implemented).

              The optional argument referenced by chunksize controls  a  space
              versus  time  tradeoff,  memory  allocated in the netcdf library
              versus number of system calls.   Because  of  internal  require-
              ments,  the value may not be set to exactly the value requested.
              The actual value chosen is returned  by  reference.   Using  the
              value  nf90_sizehint_default  causes the library to choose a de-
              fault.  How the system choses the default depends on the system.
              On  many  systems,  the  "preferred I/O block size" is available
              from the stat() system call, struct stat member st_blksize.   If
              this is available it is used. Lacking that, twice the system pa-
              gesize is used.  Lacking a call to discover the system pagesize,
              we just set default chunksize to 8192.

              The  chunksize  is  a property of a given open netcdf descriptor
              ncid: it is not a persistent property of the netcdf dataset.

       function nf90_set_fill(ncid, fillmode, old_mode)
              integer, intent(in) :: ncid, fillmode
              integer, intent(out) :: old_mode
              integer :: nf90_set_fill

              Sets the fill-mode for a netCDF dataset to optimize writes under
              some  circumstances.   The  fill-mode argument, fillmode, can be
              either nf90_fill or nf90_nofill.  nf90_fill  causes  fill-values
              to  be  written  into non-record variables and into skipped-over
              records when writing beyond the last valid record.   nf90_nofill
              suspends  this  behavior.   The  default behavior corresponds to
              nf90_fill.

              The previous fill-mode value is return in old_mode.

              The fill-mode is a property of a given  open  netcdf  descriptor
              ncid: it is not a persistent property of the netcdf dataset.

       function nf90_redef(ncid)
              integer, intent(in) :: ncid
              integer :: nf90_redef

              (Corresponds to ncredf() in version 2)

              Puts  an  open  netCDF  dataset into define mode, so dimensions,
              variables, and attributes can be added or renamed and attributes
              can be deleted.

       function nf90_enddef(ncid, h_minfree, v_align, v_minfree, r_align)
              integer, intent(in) :: ncid
              integer, optional, intent(in) :: h_minfree, v_align
              integer, optional, intent(in) :: v_minfree, r_align
              integer :: nf90_enddef

              (Corresponds to ncendf() in version 2)

              Takes  an  open  netCDF dataset out of define mode.  The changes
              made to the netCDF dataset while  it  was  in  define  mode  are
              checked and committed to disk if no problems occurred.  Some da-
              ta values may be written as well, see "VARIABLE PREFILLING"  be-
              low.   After  a  successful  call,  variable data can be read or
              written to the dataset.

              The optional arguments are performance tuning parameters.   They
              exposes  internals  of  the netcdf version 1 file format and may
              not be available on future netcdf implementations.

              The current netcdf file format has three sections, the  "header"
              section, the data section for fixed size variables, and the data
              section for variables which have an unlimited dimension  (record
              variables).  The header begins at the beginning of the file. The
              index (offset) of the beginning of the  other  two  sections  is
              contained  in  the  header. Typically, there is no space between
              the sections. This causes copying  overhead  to  accrue  if  one
              wishes  to  change  the size of the sections, as may happen when
              changing names of things,  text  attribute  values,  adding  at-
              tributes  or adding variables. Also, for buffered i/o, there may
              be advantages to aligning sections in certain ways.

              The minfree parameters allow one  to  control  costs  of  future
              calls  to nf90_redef(), nf90_enddef() by requesting that minfree
              bytes be available at the end of the section.  The h_minfree pa-
              rameter  sets  the  pad  at the end of the "header" section. The
              v_minfree parameter sets the pad at the end of the data  section
              for fixed size variables.

              The  align  parameters allow one to set the alignment of the be-
              ginning of the corresponding sections. The beginning of the sec-
              tion  is rounded up to an index which is a multiple of the align
              parameter. The flag value nf90_align_chunk tells the library  to
              use  the  chunksize  (see  above)  as  the align parameter.  The
              v_align parameter controls the alignment of the beginning of the
              data  section  for  fixed size variables.  The r_align parameter
              controls the alignment of the beginning of the data section  for
              variables  which have an unlimited dimension (record variables).

              The file format requires mod 4 alignment, so the  align  parame-
              ters  are silently rounded up to multiples of 4. The usual call,
              nf90_enddef(ncid) is equivalent to nf__enddef(ncid, 0, 4, 0, 4).

              The  file format does not contain a "record size" value, this is
              calculated from the sizes of the record variables. This unfortu-
              nate  fact prevents us from providing minfree and alignment con-
              trol of the "records" in a netcdf file. If you  add  a  variable
              which  has an unlimited dimension, the third section will always
              be copied with the new variable added.

       function nf90_sync(ncid)
              integer, intent(in) :: ncid
              integer :: nf90_sync

              (Corresponds to ncsnc() in version 2)

              Unless the nf90_share bit is set  in  nf90_open()  or  nf90_cre-
              ate(), accesses to the underlying netCDF dataset are buffered by
              the library. This function synchronizes the state of the  under-
              lying  dataset  and  the library.  This is done automatically by
              nf90_close() and nf90_enddef().

       function nf90_abort(ncid)
              integer, intent(in) :: ncid
              integer :: nf90_abort

              (Corresponds to ncabor() in version 2)

              You don't need to call this function.  This function  is  called
              automatically  by  nf90_close() if the netCDF dataset was in de-
              fine mode and something goes wrong  with  the  commit.   If  the
              netCDF  dataset  isn't  in  define  mode,  then this function is
              equivalent to nf90_close().  If it is called after nf90_redef(),
              but  before nf90_enddef(), the new definitions are not committed
              and the dataset is closed.  If it is called after  nf90_create()
              but before nf90_enddef(), the dataset disappears.

       function nf90_close(ncid)
              integer, intent(in) :: ncid
              integer :: nf90_close

              (Corresponds to ncclos() in version 2)

              Closes  an  open  netCDF  dataset.   If the dataset is in define
              mode, nf90_enddef() will be  called  before  closing.   After  a
              dataset  is closed, its ID may be reassigned to another dataset.

       function nf90_inquire(ncid, ndims, nvars, natts, unlimdimid, nformat)
              integer, intent(in) :: ncid
              integer, optional, intent(out) :: ndims, nvars
              integer, optional, intent(out) :: natts, unlimdimid
              integer, optional, intent(out) :: nformat
              integer :: nf90_inquire

              Inquire about an open netCDF dataset.  ncid is the netCDF ID  of
              the  open  dataset.   Upon successful return, ndims will contain
              the number of dimensions defined for this netCDF dataset,  nvars
              will  contain  the  number  of variables, natts will contain the
              number of attributes, and unlimdimid will contain the  dimension
              ID  of  the  unlimited  dimension if one exists, or 0 otherwise.
              nformat will contain the format version  number,  rarely  needed
              because  the  library detects the format version and behaves ap-
              propriately.

       function nf90_def_dim(ncid, name, len, dimid)
              integer, intent(in) :: ncid
              character(len=*), intent(in) :: name
              integer, intent(in) :: len
              integer, intent(out) :: dimid
              integer :: nf90_def_dim

              (Corresponds to ncddef() in version 2)

              Adds a new dimension to an open netCDF dataset, which must be in
              define  mode.   name  is the dimension name.  len is the size of
              the new dimension or nf90_unlimited to define the unlimited  di-
              mension.   On return, dimid will contain the dimension ID of the
              newly created dimension.

       function nf90_inq_dimid(ncid, name, dimid)
              integer, intent(in) :: ncid
              character(len=*), intent(in) :: name
              integer, intent(out) :: dimid
              integer :: nf90_inq_dimid

              (Corresponds to ncdid() in version 2)

              Given an open netCDF dataset and dimension name, returns the di-
              mension ID of the netCDF dimension in dimid.

       function nf90_inquire_dimension(ncid, dimid, name, len)
              integer, intent(in) :: ncid, dimid
              character(len=*), optional, intent(out) :: name
              integer, optional, intent(out) :: len
              integer :: nf90_inquire_dimension

              Inquire   about   a  dimension.   name  should  be   big  enough
              (nf90_max_name) to hold the dimension name as the name  will  be
              copied into your storage.  The length return parameter, len will
              contain the size of the dimension.  For the unlimited dimension,
              the  returned length is the current maximum value used for writ-
              ing into any of the variables which use the dimension.

       function nf90_rename_dim(ncid, dimid, name)
              integer, intent(in) :: ncid
              character(len=*), intent(in) :: name
              integer, intent(in) :: dimid
              integer :: nf90_rename_dim

              (Corresponds to ncdren() in version 2)

              Renames an existing dimension in an open netCDF dataset.  If the
              new name is longer than the old name, the netCDF dataset must be
              in define mode.  You cannot rename a dimension to have the  same
              name as another dimension.

       function nf90_def_var(ncid, name, xtype, dimids, varid)
              integer, intent(in) :: ncid
              character(len=*), intent(in) :: name
              integer, intent(in) :: xtype
              integer, optional, dimension(:), intent(in) :: dimids
              integer :: nf90_def_var

              (Corresponds to ncvdef() in version 2)

              Adds  a  new variable to a netCDF dataset. The netCDF must be in
              define mode.  name will be the  name  of  the  netCDF  variable.
              xtype is the external, netCDF type of the variable and should be
              one of nf90_byte, nf90_char, nf90_short,  nf90_int,  nf90_float,
              or nf90_double, The optional dimids argument contains the dimen-
              sion ID-s of the domain of the netCDF variable and,  consequent-
              ly,  determines  the  rank of the created variable: if dimids is
              omitted, then the netCDF variable will be a scalar; if dimids is
              a scalar, then the netCDF variable will be 1 dimensional; and if
              dimids is a vector, then the  netCDF  variable  will  have  rank
              equal to the number of elements in dimids.  varid will be set to
              the netCDF variable ID.

       function nf90_inq_varid(ncid, name, varid)
              integer, intent(in) :: ncid
              character(len=*), intent(in) :: name
              integer, intent(out) :: varid
              integer :: nf90_inq_varid

              (Corresponds to ncvid() in version 2)

              Returns the ID of a netCDF  variable  in  varid  given  an  open
              netCDF dataset and the name of the variable.

       function nf90_inquire_variable(ncid, varid, name, xtype, ndims, dimids,
              natts)
              integer, intent(in) :: ncid, varid
              character(len=*), optional, intent(out) :: name
              integer, optional, intent(out) :: xtype, ndims
              integer, dimension(*), optional, intent(out) :: dimids
              integer, optional, intent(out) :: natts
              integer :: nf90_inquire_variable

              Inquire about a netCDF variable in an open netCDF dataset, given
              its  variable  ID.  On return, name will contain the name of the
              variable and should be capacious enough (nf90_max_name).   xtype
              will  contain  the external, netCDF type of the variable.  ndims
              will contain the dimensionality of the netCDF variable:  if  the
              variable  is a scalar, then size(ndims) will be zero; otherwise,
              size(ndims) will be the rank of the variable and ndims will con-
              tain the dimension ID-s of the netCDF dimensions that constitute
              the domain of the variable.  natts will contain  the  number  of
              attributes associated with the netCDF variable.

       function nf90_rename_var(ncid, varid, name)
              integer, intent9in) :: ncid, varid
              character(len=*), intent(in) :: newname
              integer :: nf90_rename_var

              (Corresponds to ncvren() in version 2)

              Changes  the  name  of  a  netCDF  variable.  If the new name is
              longer than the old name, the netCDF must  be  in  define  mode.
              You  cannot  rename  a variable to have the name of any existing
              variable.

       function nf90_put_var(ncid, varid, values, start, stride, imap)
              integer, intent(in) :: ncid, varid
              <<whatever>>, intent(in) :: values
              integer, dimension(:), optional, intent(in) :: start
              integer, dimension(:), optional, intent(in) ::  stride
              integer, dimension(:), optional, intent(in) ::  imap
              integer :: nf90_put_var

              (Replaces ncvpt() in version 2)

              Writes a value or values  to  a  netCDF  variable.   The  netCDF
              dataset must be open and in data mode.  values contains the val-
              ue(s) what will be written to the netCDF variable identified  by
              ncid  and  varid;  it may be a scalar or an array and must be of
              type      character,       integer(kind=OneByteInt),       inte-
              ger(kind=TwoByteInt),      integer(kind=FourByteInt),      inte-
              ger(kind=EightByteInt),    real(kind=FourByteReal),    or    re-
              al(kind=EightByteReal).   All values are converted to the exter-
              nal type of the netCDF  variable,  if  possible;  otherwise,  an
              nf90_erange  error  is  returned.   The  optional argument start
              specifies the starting index in the netCDF variable for  writing
              for  each  dimension of the netCDF variable.  The optional argu-
              ment stride specifies the sampling stride (the interval  between
              accessed  values  in  the netCDF variable) for each dimension of
              the netCDF variable (see COMMON  ARGUMENT  DESCRIPTIONS  below).
              The  optional  argument imap specifies the in-memory arrangement
              of the data values (see COMMON ARGUMENT DESCRIPTIONS below).

       function nf90_get_var(ncid, varid, values, start, stride, imap)
              integer, intent(in) :: ncid, varid
              <<whatever>>, intent(out) :: values
              integer, dimension(:), optional, intent(in) :: start
              integer, dimension(:), optional, intent(in) ::  stride
              integer, dimension(:), optional, intent(in) ::  imap
              integer :: nf90_get_var

              (Replaces ncvgt() in version 2)

              Reads a value or values from  a  netCDF  variable.   The  netCDF
              dataset  must be open and in data mode.  values will receive the
              value(s) what will be read from the netCDF
               variable identified by ncid and varid; it may be a scalar or an
              array  and  must be of type character, integer(kind=OneByteInt),
              integer(kind=TwoByteInt),    integer(kind=FourByteInt),    inte-
              ger(kind=EightByteInt),    real(kind=FourByteReal),    or    re-
              al(kind=EightByteReal).  All values are converted from  the  ex-
              ternal  type  of the netCDF variable, if possible; otherwise, an
              nf90_erange error is  returned.   The  optional  argument  start
              specifies  the starting index in the netCDF variable for reading
              for each dimension of the netCDF variable.  The  optional  argu-
              ment  stride specifies the sampling stride (the interval between
              accessed values in the netCDF variable) for  each  dimension  of
              the  netCDF  variable  (see COMMON ARGUMENT DESCRIPTIONS below).
              The optional argument imap specifies the  in-memory  arrangement
              of the data values (see COMMON ARGUMENT DESCRIPTIONS below).

       function nf90_inquire_attribute(ncid, varid, name, xtype, len, attnum)
              integer, intent(in) :: ncid, varid
              character(len=*), intent(in) :: name
              integer, optional, intent(out) :: xtype, len, attnum
              integer :: nf90_inquire_attribute

              Inquires  about  the  netCDF  attribute  named name, of variable
              varid, in the open netCDF dataset ncid.  xtype will contain  the
              external,  netCDF  type  of  the variable.  len will contain the
              number of elements in the attribute.  attnum  will  contain  the
              attribute number.

       function nf90_inq_attname(ncid, varid, attnum, name)
              integer, intent(in) :: ncid, varid, attnum
              character(len=*), intent(out) :: name
              integer :: nf90_inq_attname

              (Corresponds to ncanam() in version 2)

              Gets  the  name  of  an attribute, given its variable ID and at-
              tribute number.  This function is useful in generic applications
              that need to get the names of all the attributes associated with
              a variable because attributes are accessed by name  rather  than
              number  in  all  other attribute functions (the number of an at-
              tribute is more volatile than the name  because  it  can  change
              when  other  attributes  of the same variable are deleted).  The
              attributes for each variable are numbered from 1 (the first  at-
              tribute)  to  natts, where natts is the number of attributes for
              the variable, as returned  from  a  call  to  nf90_inquire_vari-
              able().

       function nf90_put_att(ncid, varid, name, values)
              integer, intent(in) :: ncid, varid
              character(len=*), intent(in) :: name
              <<whatever>>, intent(in) :: values
              integer :: nf90_put_att

              Unlike  variables, attributes do not have separate functions for
              defining and writing values.  This function defines  a  new  at-
              tribute  with  a  value  or changes the value of an existing at-
              tribute.  If the attribute is new, or if the space  required  to
              store  the  attribute  value  is greater than before, the netCDF
              dataset must be in define mode.  values contains  the  attribute
              values to be written; it may be a scalar or a vector and must be
              of    type    character,     integer(kind=OneByteInt),     inte-
              ger(kind=TwoByteInt),      integer(kind=FourByteInt),      inte-
              ger(kind=EightByteInt),    real(kind=FourByteReal),    or    re-
              al(kind=EightByteReal).

       function nf90_get_att(ncid, varid, name, fIvalues)
              integer, intent(in) :: ncid, varid
              character(len=*), intent(in) :: name
              <<whatever>>, intent(out) :: values
              integer :: nf90_get_att

              (Replaces ncagt() in version 2)

              Gets  the  value(s) of a netCDF attribute, given its variable ID
              and name.  The values are returned in values, which must  be  of
              type       character,       integer(kind=OneByteInt),      inte-
              ger(kind=TwoByteInt),      integer(kind=FourByteInt),      inte-
              ger(kind=EightByteInt),    real(kind=FourByteReal),    or    re-
              al(kind=EightByteReal).  Converts from the external type to  the
              type  of  the receiving variable, if possible; otherwise returns
              an nf90_erange error.  All values of the attribute are returned,
              so  you  must  allocate enough space to hold them.  If you don't
              know how much space to  reserve,  call  nf90_inquire_attribute()
              first to find out the length of the attribute.

       function nf90_copy_att(ncid_in, varid_in, name, ncid_out, varid_out)
              integer, intent(in) :: ncid_in, varid_in
              character(len=*), intent(in) :: name
              integer, intent(in) :: ncid_out, varid_out
              integer :: nf90_copy_att

              (Corresponds to ncacpy() in version 2)

              Copies  an attribute from one netCDF dataset to another.  It can
              also be used to copy an attribute from one variable  to  another
              within  the same netCDF dataset.  ncid_in is the netCDF ID of an
              input netCDF dataset from which the attribute  will  be  copied.
              varid_in  is  the ID of the variable in the input netCDF dataset
              from which the attribute will be copied, or  nf90_global  for  a
              global  attribute.  name is the name of the attribute in the in-
              put netCDF dataset to be copied.  ncid_out is the netCDF  ID  of
              the output netCDF dataset to which the attribute will be copied.
              It is permissible for the input and output netCDF ID's to be the
              same.  The output netCDF dataset should be in define mode if the
              attribute to be copied does not already  exist  for  the  target
              variable,  or  if it would cause an existing target attribute to
              grow.  varid_out is the ID of the variable in the output  netCDF
              dataset to which the attribute will be copied, or nf90_global to
              copy to a global attribute.

       function nf90_rename_att(ncid, varid, name, newname)
              integer, intent(in) :: ncid, varid
              character(len=*), intent(in) :: name, newname
              integer :: nf90_rename_att

              (Corresponds to ncaren()

              Changes the name of an attribute.  If the  new  name  is  longer
              than  the original name, the netCDF must be in define mode.  You
              cannot rename an attribute to have the same name as another  at-
              tribute  of  the  same variable.  name is the original attribute
              name.  newname is the new name to be assigned to  the  specified
              attribute.   If  the  new  name is longer than the old name, the
              netCDF dataset must be in define mode.

              function nf90_del_att(ncid, varid, name)
                     integer, intent(in) :: ncid, varid
                     character(len=*), intent(in) :: name
                     integer :: nf90_del_att

                     (Corresponds to ncadel() in version 2)

                     Deletes an attribute from a netCDF dataset.  The  dataset
                     must be in define mode.


COMMON ARGUMENT DESCRIPTIONS

       In  this  section we define some common arguments which are used in the
       "FUNCTION DESCRIPTIONS" section.

       integer ncid
              is the netCDF ID returned from a previous,  successful  call  to
              nf90_open() or nf90_create()

       character(len=*) name
              is  the  name  of a dimension, variable, or attribute.  It shall
              begin with an alphabetic character, followed by zero or more al-
              phanumeric  characters  including the underscore (`_') or hyphen
              (`-').  Case is significant.  The maximum  allowable  number  of
              characters  is  nf90_max_name.   Names that begin with an under-
              score (`_') are reserved for use by the netCDF interface.

       integer xtype
              specifies the external data type of a  netCDF  variable  or  at-
              tribute  and  is  one  of  the  following: nf90_byte, nf90_char,
              nf90_short, nf90_int, nf90_float,  or  nf90_double.   These  are
              used  to  specify  8-bit  integers, characters, 16-bit integers,
              32-bit integers, 32-bit IEEE floating point numbers, and  64-bit
              IEEE floating-point numbers, respectively.


       integer dimids
              is  a vector of dimension ID's and defines the shape of a netCDF
              variable.  The size of the vector shall be greater than or equal
              to  the  rank  (i.e.  the  number of dimensions) of the variable
              (ndims).  The vector shall be ordered by the speed with which  a
              dimension  varies:  dimids(1)  shall  be the dimension ID of the
              most rapidly varying dimension and dimids(ndims)  shall  be  the
              dimension  ID of the most slowly varying dimension.  The maximum
              possible number of dimensions for a variable  is  given  by  the
              symbolic constant nf90_max_var_dims.

       integer dimid
              is  the ID of a netCDF dimension.  netCDF dimension ID's are al-
              located sequentially from the positive integers  beginning  with
              1.

       integer ndims
              is  either the total number of dimensions in a netCDF dataset or
              the rank (i.e. the number of dimensions) of a  netCDF  variable.
              The  value  shall  not  be negative or greater than the symbolic
              constant nf90_max_var_dims.

       integer varid
              is the ID of a netCDF  variable  or  (for  the  attribute-access
              functions)  the  symbolic constant nf90_global, which is used to
              reference global attributes.  netCDF variable ID's are allocated
              sequentially from the positive integers beginning with 1.

       integer natts
              is  the number of global attributes in a netCDF dataset  for the
              nf90_inquire() function or the number of  attributes  associated
              with a netCDF variable for the nf90_varinq() function.

       integer start
              specifies  the  starting point for accessing a netCDF variable's
              data values in terms of the indicial coordinates of  the  corner
              of  the  array section.  The indices start at 1; thus, the first
              data value of a variable is (1, 1, ..., 1).   The  size  of  the
              vector shall be at least the rank of the associated netCDF vari-
              able and its elements shall correspond, in order, to  the  vari-
              able's dimensions.

       integer stride
              specifies  the  sampling  interval  along  each dimension of the
              netCDF variable.   The elements of the stride vector correspond,
              in  order, to the netCDF variable's dimensions (stride(1)) gives
              the sampling interval along the most rapidly  varying  dimension
              of  the  netCDF  variable).  Sampling intervals are specified in
              type-independent units of elements (a value of 1 selects consec-
              utive  elements  of  the netCDF variable along the corresponding
              dimension, a value of 2 selects every other element, etc.).


       imap   specifies the mapping between the dimensions of a  netCDF  vari-
              able  and  the  in-memory  structure of the internal data array.
              The elements of the index mapping vector correspond,  in  order,
              to  the netCDF variable's dimensions (imap(1) gives the distance
              between elements of the internal array corresponding to the most
              rapidly  varying  dimension  of the netCDF variable).  Distances
              between elements are specified in type-independent units of ele-
              ments  (the distance between internal elements that occupy adja-
              cent memory locations is 1 and not the element's byte-length  as
              in netCDF 2).



VARIABLE PREFILLING

       By  default,  the netCDF interface sets the values of all newly-defined
       variables of finite length (i.e. those that do not have  an  unlimited,
       dimension)  to the type-dependent fill-value associated with each vari-
       able.  This is done when nf90_enddef() is called.  The fill-value for a
       variable  may  be  changed  from  the default value by defining the at-
       tribute `_FillValue' for the variable.  This attribute  must  have  the
       same type as the variable and be of length one.

       Variables with an unlimited dimension are also prefilled, but on an `as
       needed' basis.  For example, if the first write of such a  variable  is
       to  position 5, then positions 1 through 4 (and no others) would be set
       to the fill-value at the same time.

       This default prefilling of data values may be disabled  by  or'ing  the
       nf90_nofill  flag  into  the mode parameter of nf90_open() or nf90_cre-
       ate(), or, by calling the function nf90_set_fill()  with  the  argument
       nf90_nofill.   For  variables  that do not use the unlimited dimension,
       this call must be made before nf90_enddef().  For  variables  that  use
       the unlimited dimension, this call may be made at any time.

       One  can  obtain increased performance of the netCDF interface by using
       this feature, but only at the expense of requiring the  application  to
       set  every  single  data  value.  The performance enhancing behavior of
       this function is dependent on the particulars of the implementation and
       dataset  format.   The  flag value controlled by nf90_set_fill() is per
       netCDF ID, not per variable or per write.  Allowing this to change  af-
       fects  the  degree  to which a program can be effectively parallelized.
       Given all of this, we state that the use of this  feature  may  not  be
       available  (or  even  needed)  in future releases. Programmers are cau-
       tioned against heavy reliance upon this feature.


MPP FUNCTION DESCRIPTIONS

       Additional functions for  use  on  SGI/Cray  MPP  machines  (_CRAYMPP).
       These  are  used  to set and inquire which PE is the base for MPP for a
       particular netCDF. These are only  relevant  when  using  the  SGI/Cray
       ``global''  Flexible File I/O layer and desire to have only a subset of
       PEs to open the specific netCDF file.   For  technical  reasons,  these
       functions  are  available  on  all platforms.  On a platform other than
       SGI/Cray MPP, it is as if only processor available were processor 0.

       To use this feature, you need to specify a communicator group and  call
       glio_group_mpi()  or glio_group_shmem() prior to the netCDF nf90_open()
       and nf90_create() calls.

       Note that the routines described below are Fortran-77  routines  rather
       than  Fortran-90  routines  (they  have  an "nf_" prefix rather than an
       "nf90_" prefix).

       integer function nf__create_mp(character*(*) path, integer cmode, inte-
              ger initialsize, integer pe, integer chunksize, integer ncid)

              Like nf__create() but allows the base PE to be set.

              The  argument  pe  sets the base PE at creation time. In the MPP
              environment, nf__create() and nf90_create() set the base  PE  to
              processor zero by default.

       integer  function nf__open_mp(character*(*) path, integer mode, integer
              pe, integer chunksize, integer ncid)

              Like nf__open() but allows the base PE to be set.  The  argument
              pe  sets  the  base PE at creation time. In the MPP environment,
              nf__open() and nf90_open() set the base PE to processor zero  by
              default.

       integer function nf_inq_base_pe(integer ncid, integer pe)

              Inquires  of  the  netCDF  dataset which PE is being used as the
              base for MPP use.  This is safe to use at any time.

       integer function nf_set_base_pe(integer ncid, integer pe)

              Resets the base PE for the netCDF dataset.   Only  perform  this
              operation  when the affected communicator group synchronizes be-
              fore and after the call.   This  operation  is  very  risky  and
              should only be contemplated under only the most extreme cases.


ENVIRONMENT VARIABLES

       NETCDF_FFIOSPEC
           Specifies the Flexible File I/O buffers for netCDF I/O when execut-
           ing under the UNICOS operating system (the variable is  ignored  on
           other operating systems).  An appropriate specification can greatly
           increase the efficiency of netCDF I/O -- to the extent that it  can
           actually surpass FORTRAN binary I/O.  This environment variable has
           been made a little more generalized, such that  other  FFIO  option
           specifications  can now be added.  The default specification is bu-
           fa:336:2, unless a current  FFIO  specification  is  in  operation,
           which  will  be honored.  See UNICOS Flexible File I/O for more in-
           formation.


MAILING-LISTS

       Both a mailing list and a digest are available for  discussion  of  the
       netCDF  interface  and  announcements about netCDF bugs, fixes, and en-
       hancements.  To begin or change your subscription to either  the  mail-
       ing-list  or the digest, send one of the following in the body (not the
       subject line) of an email message to "majordomo@unidata.ucar.edu".  Use
       your email address in place of jdoe@host.inst.domain.

       To subscribe to the netCDF mailing list:
              subscribe netcdfgroup jdoe@host.inst.domain
       To unsubscribe from the netCDF mailing list:
              unsubscribe netcdfgroup jdoe@host.inst.domain
       To subscribe to the netCDF digest:
              subscribe netcdfdigest jdoe@host.inst.domain
       To unsubscribe from the netCDF digest:
              unsubscribe netcdfdigest jdoe@host.inst.domain
       To retrieve the general introductory information for the mailing list:
              info netcdfgroup
       To get a synopsis of other majordomo commands:
              help


SEE ALSO

       ncdump(1), ncgen(1), netcdf(3f).

       netCDF User's Guide, published by the Unidata Program Center, Universi-
       ty Corporation for Atmospheric Research, located in Boulder,  Colorado.



Printed: 109.5.23                 2000-04-04                      NETCDF(3f90)

netcdf 4.0.1 - Generated Sat May 23 08:08:11 CDT 2009
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.