Previous: NF90_RENAME_VAR, Up: Variables


6.20 Change between Collective and Independent Parallel Access: NF90_VAR_PAR_ACCESS

The function NF90_VAR_PAR_ACCESS changes whether read/write operations on a parallel file system are performed collectively (the default) or independently on the variable. This function can only be called if the file was created with NF90_CREATE_PAR (see NF90_CREATE_PAR) or opened with NF90_OPEN_PAR (see NF90_OPEN_PAR).

This function is only available if the netCDF library was built with a HDF5 library for which –enable-parallel was used, and which was linked (like HDF5) to MPI libraries.

Calling this function affects only the open file - information about whether a variable is to be accessed collectively or independently is not written to the data file. Every time you open a file on a parallel file system, all variables default to collective operations. The change a variable to independent lasts only as long as that file is open.

The variable can be changed from collective to independent, and back, as often as desired.

Usage

       function nf90_var_par_access(ncid, varid, access)
         integer, intent(in) :: ncid
         integer, intent(in) :: varid
         integer, intent(in) :: access
         integer :: nf90_var_par_access
       end function nf90_var_par_access
ncid
NetCDF ID, from a previous call to NF90_OPEN_PAR (see NF90_OPEN_PAR) or NF90_CREATE_PAR (see NF90_CREATE_PAR).
varid
Variable ID.
access
NF90_INDEPENDENT to set this variable to independent operations. NF90_COLLECTIVE to set it to collective operations.

Return Values

NF90_NOERR
No error.
NF90_ENOTVAR
No variable found.
NF90_ENOTNC4
Not a netCDF-4 file.
NF90_NOPAR
File not opened for parallel access.

Example

This example comes from test program nf_test/f90tst_parallel.f90. For this test to be run, netCDF must have been built with a parallel-enabled HDF5, and –enable-parallel-tests must have been used when configuring netcdf.

       call handle_err(nf90_var_par_access(ncid, varid, nf90_collective))