From Brian Eaton:
Just so we're all on the same page, here is a suggestion for representing the coordinates of the staggered velocities. Just an outline of the metadata for the horizontal coordinates along with a single variable on each grid is given here:
dimensions:
ncol = 13826 ;
nptu = 13826 ;
nptv = 13826 ;
variables:
double lat(ncol) ;
lat:long_name = "A-grid latitude" ;
lat:units = "degrees_north" ;
double lon(ncol) ;
lon:long_name = "A-grid longitude" ;
lon:units = "degrees_east" ;
double latu(nptu) ;
lat:long_name = "D-grid latitude for U" ;
lat:units = "degrees_north" ;
double lonu(nptu) ;
lon:long_name = "D-grid longitude for U" ;
lon:units = "degrees_east" ;
double latv(nptv) ;
lat:long_name = "D-grid latitude for V" ;
lat:units = "degrees_north" ;
double lonv(nptv) ;
lon:long_name = "D-grid longitude for V" ;
lon:units = "degrees_east" ;
double T(time, lev, ncol) ;
T:long_name = "Temperature" ;
T:units = "K" ;
T:coordinates = "lat lon" ;
double US(time, lev, nptu) ;
US:long_name = "D-grid U velocity" ;
US:units = "m/s" ;
US:coordinates = "latu lonu" ;
double VS(time, lev, nptv) ;
VS:long_name = "D-grid V velocity" ;
VS:units = "m/s" ;
VS:coordinates = "latv lonv" ;
This file contains 3 grids which it's convenient to identify by the dimension names ncol, nptu, nptv. In this example the 3 grids have the same number of points, but they don't need to. In the rectangular staggered grid the US grid has fewer points than the VS grid. The ncol grid is the A-grid, the nptu grid is for the U velocities on the D-grid, and the nptv grid is for the V velocities on the D-grid. The coordinates attribute is the CF mechanism for pointing "smart" applications to the correct coordinates.