Demonstrate chunked storage in a local NcZarr dataset (Fortran).
Fortran equivalent of nczarr_chunking.c. Creates a 4x5 temperature array with explicit chunk shape [2, 5] (y, x) in a local NcZarr store, verifies chunking metadata after reopening, and validates data values.
Learning Objectives:
- Set explicit chunk shape for a NcZarr variable from Fortran
- Query chunk metadata after reopen using nf90_inquire_variable
- Understand Fortran column-major chunksizes ordering
Key Concepts:
- nf90_def_var_chunking() sets chunk shape for NcZarr storage
- Fortran column-major: chunksizes(1)=CHUNK_X, chunksizes(2)=CHUNK_Y
- Chunking controls how data is split into Zarr chunk files
- Same nf90_def_var_chunking() API works for NetCDF-4/HDF5 and NcZarr
Fortran vs C Differences:
- Chunk dimensions reversed: Fortran chunksizes(1)=x, (2)=y vs C chunksizes[0]=y, [1]=x
- Uses nf90_inquire_variable(chunksizes=) instead of separate function
Related Examples:
Compilation:
program f_nczarr_chunking
Definition f_nczarr_chunking.f90:54
Usage:
ncdump 'file://f_nczarr_chunking.zarr#mode=nczarr'
Expected Output: Creates the directory f_nczarr_chunking.zarr containing:
- 2 dimensions: y(4), x(5)
- 1 variable: temperature(y, x) of type NF90_FLOAT with chunks [2, 5]
- Attributes: units="K", long_name="Temperature", _FillValue=-999.0
- A 4x5 temperature data grid stored in 2 chunks of 2x5 each
- Note
- Companion code for "The NetCDF Developer's Handbook: The Authoritative Guide to Writing
High-Performance Programs for Scientific Data Management, Second Edition" (https://www.amazon.com/dp/B0H7Q1Z75L)
- Author
- Edward Hartnett, Intelligent Data Design, Inc.
- Date
- 2026-06-26