integer function put_vara_vdesc_{DIMS}d_{TYPE} (File,vardesc, start, count, ival) result(ierr)
 
#define __PIO_FILE__ "pionfput_mod.F90"
!>
!! @file 
!! @brief Write routines for non-decomposed NetCDF data.
!<
module pionfput_mod
#ifdef TIMING
  use perf_mod, only : t_startf, t_stopf      ! _EXTERNAL
#endif
  use iso_c_binding
  use pio_kinds, only: i4,r4,r8
  use pio_types, only : file_desc_t, var_desc_t, pio_noerr
  implicit none
  private
!>
!! @defgroup PIO_put_var PIO_put_var
!! @brief Writes data to a netCDF file.
!! @details The put_var interface is provided as a simplified interface to
!!  write variables to a netcdf format file.   
!! @warning Although this is a collective call the variable is written from the 
!!  root IO task, no consistancy check is made with data passed on other tasks.
!! 
!<
  public :: put_var
  interface put_var
     !  DIMS 0,1,2,3,4,5
     module procedure put_var_{DIMS}d_{TYPE}, put_var_vdesc_{DIMS}d_{TYPE}
     !  DIMS 1,2,3,4,5
     module procedure put_vara_{DIMS}d_{TYPE} 
     !  DIMS 1,2,3,4,5
     module procedure put_vara_vdesc_{DIMS}d_{TYPE}
     module procedure put_var1_{TYPE}, put_var1_vdesc_{TYPE}
  end interface
  interface
     integer(C_INT) function PIOc_put_var_text(ncid, varid, op) &
          bind(C,name="PIOc_put_var_text")
       use iso_c_binding
       integer(C_INT), intent(in), value :: ncid
       integer(C_INT), intent(in), value :: varid
       character(C_CHAR) :: op(*)
     end function PIOc_put_var_text
  end interface
  interface
     integer(C_INT) function PIOc_put_vara_text(ncid, varid, start, count, op) &
          bind(C,name="PIOc_put_vara_text")
       use iso_c_binding
       integer(C_INT), intent(in), value :: ncid
       integer(C_INT), intent(in), value :: varid
       integer(C_SIZE_T), intent(in) :: start(*)