A "reduced" longitude-latitude grid is one in which the points
      are arranged along constant latitude lines with the number of
      points on a latitude line decreasing toward the poles.
      Storing this type of gridded data in two-dimensional arrays
      wastes space, and results in the presence of missing values
      in the 2D coordinate variables. We recommend that this type
      of gridded data be stored using the compression scheme
      described in Section 8.2, “Compression by Gathering”.
      Compression by gathering preserves structure by storing
      a set of indices that allows an application to easily
      scatter the compressed data back to two-dimensional
      arrays. The compressed latitude and longitude auxiliary
      coordinate variables are identified by
      the coordinates attribute.
    
Example 5.3. Reduced horizontal grid
dimensions:
  londim = 128 ;
  latdim = 64 ;
  rgrid = 6144 ;
variables:
  float PS(rgrid) ;
    PS:long_name = "surface pressure" ;
    PS:units = "Pa" ;
    PS:coordinates = "lon lat" ;
  float lon(rgrid) ;
    lon:long_name = "longitude" ;
    lon:units = "degrees_east" ;
  float lat(rgrid) ;
    lat:long_name = "latitude" ;
    lat:units = "degrees_north" ;
  int rgrid(rgrid);
    rgrid:compress = "latdim londim";
      
      PS(n) is associated with the coordinate
      values lon(n), lat(n).
      Compressed grid index (n) would be assigned
      to 2D index (j,i) (C index conventions) where
      
j = rgrid(n) / 128
i = rgrid(n) - 128*j
      
      Notice that even if an application does not recognize
      the compress attribute, the grids
      stored in this format can still be handled, by an application
      that recognizes the coordinates attribute.