Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

[netcdfgroup] Error with large filesizes

Hi,

I am using netCDF-fortran-4.1.1 with netCDF-4.3.2. I get an error 'Bad
chunk sizes' when the 3D data size is more than a certain number.

I am unable to understand the cause of this error.

My OS is CentOS 6.6. The errors are the same even if is use netCDF (v
4.1.1) supplied by the CentOS community.

i am attaching a minimal example. Please let me know if there are any
errors from my side.

Thanks,
Samrat.

-- 

Samrat Rao
Research Associate
Engineering Mechanics Unit
Jawaharlal Centre for Advanced Scientific Research
Bangalore - 560064, India
program nc_test

   use netcdf

   implicit none

   integer, parameter :: &
      r8 = selected_real_kind(12), &
      imax = 770, &
      jmax = 1682, &
      kmax = 1682
   integer :: &
      ncid, x_dimid, y_dimid, z_dimid, fld_id, &
      deflate_level, dimids(3), chunksizes(3), indices(6), &
      ierr
   real(r8), allocatable :: &
      fld(:,:,:)

   allocate( fld(kmax,jmax,imax),stat=ierr )
   call random_number( fld )

   call nc_check( nf90_create('nc_test_large.nc',nf90_netcdf4,ncid) )

   call nc_check( nf90_def_dim(ncid,'i',imax,x_dimid) )
   call nc_check( nf90_def_dim(ncid,'j',jmax,y_dimid) )
   call nc_check( nf90_def_dim(ncid,'k',kmax,z_dimid) )

   dimids = [z_dimid,y_dimid,x_dimid]
   chunksizes(1) = kmax; chunksizes(2) = jmax; chunksizes(3) = imax
   deflate_level = 1
   indices = [1,imax,1,jmax,1,kmax]

   call nc_check( nf90_def_var(ncid,'fld',nf90_double,dimids, &
                 fld_id,chunksizes=chunksizes, &
                 shuffle=.true.,deflate_level=deflate_level) )
   call nc_check( nf90_put_att(ncid,fld_id,"U velocity",indices) )

   call nc_check( nf90_put_var(ncid,fld_id,fld) )
 
   call nc_check( nf90_close(ncid) )

   deallocate( fld )

!==================================================


!------------------------------
contains
!------------------------------


!==================================================
subroutine nc_check( stat )

!----------------------------------------
! DESCRIPTION:
!  Routine to check if netCDF calls work
!----------------------------------------

   implicit none
   !------------------------------
   integer, intent(in) :: &
      stat ! Status
   !------------------------------

   if( stat /= nf90_noerr ) then
      write(*,*)'nc_check: ',trim( nf90_strerror(stat) )
      call abort
   end if

   return

end subroutine nc_check
!==================================================


end program nc_test
  • 2014 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: