NEP 1.5.1
NetCDF Extension Pack: compression extensions for NetCDF
Loading...
Searching...
No Matches
Macros | Functions
unlimited_dim.c File Reference

Demonstrates unlimited dimensions for appendable time-series data. More...

#include <stdio.h>
#include <stdlib.h>
#include <netcdf.h>

Macros

#define FILE_NAME   "unlimited_dim.nc"
 
#define NLAT   4
 
#define NLON   5
 
#define INITIAL_TIMESTEPS   3
 
#define APPEND_TIMESTEPS   2
 
#define TOTAL_TIMESTEPS   (INITIAL_TIMESTEPS + APPEND_TIMESTEPS)
 
#define ERRCODE   2
 
#define ERR(e)   {printf("Error: %s\n", nc_strerror(e)); exit(ERRCODE);}
 

Functions

int main ()
 

Detailed Description

Demonstrates unlimited dimensions for appendable time-series data.

This example introduces unlimited dimensions - a special dimension type that can grow dynamically, allowing data to be appended to files over time. Unlimited dimensions are essential for time-series data where the total number of timesteps is not known in advance.

The program creates a file with an unlimited time dimension, writes initial timesteps, then reopens the file in write mode to append additional timesteps. This demonstrates the common pattern for incrementally building time-series datasets.

Learning Objectives:

Key Concepts:

Unlimited Dimension Characteristics:

Prerequisites:

Related Examples:

Compilation:

gcc -o unlimited_dim unlimited_dim.c -lnetcdf

Usage:

./unlimited_dim
ncdump unlimited_dim.nc

Expected Output: Creates unlimited_dim.nc containing:

Author
Edward Hartnett, Intelligent Data Design, Inc.
Date
2026

Macro Definition Documentation

◆ APPEND_TIMESTEPS

#define APPEND_TIMESTEPS   2

◆ ERR

#define ERR (   e)    {printf("Error: %s\n", nc_strerror(e)); exit(ERRCODE);}

◆ ERRCODE

#define ERRCODE   2

◆ FILE_NAME

#define FILE_NAME   "unlimited_dim.nc"

◆ INITIAL_TIMESTEPS

#define INITIAL_TIMESTEPS   3

◆ NLAT

#define NLAT   4

◆ NLON

#define NLON   5

◆ TOTAL_TIMESTEPS

#define TOTAL_TIMESTEPS   (INITIAL_TIMESTEPS + APPEND_TIMESTEPS)

Function Documentation

◆ main()

int main ( )