This dataset is not intended for users, but rather for internal use within the gsw package. The dataset stores the 1.4M lookup table defined in the 8.3M file src/gsw_saar_data.c in the C library. (The .c file exceeds CRAN limitations on size.)

Details

The data are designed to replace C elements defined as below in src/gsw_saar_data.c:


    static int	gsw_nx=91, gsw_ny=45, gsw_nz=45;
    static double	longs_ref[91];
    static double	lats_ref[45];
    static double	p_ref[45];
    static double	ndepth_ref[4095];
    static double	saar_ref[184275];
    static double	delta_sa_ref[184275];

R storage is in a list named saar, with elements named as in the C code, i.e. gsw_nx etc.

C storage for these variables is allocated as needed, and the data are inserted, when gsw is launched. Thus, the existing C library code "knows" about the data as local storage, which keeps alterations to the C library to a minimum.

The saar dataset was created by the following R code. The netcdf file used in this code comes from the GSW-Fortran repository (at commit baa0c09ffc7ed1f74972a1a2902d8754caa5b4cb) and its md5 value is dacb3f981e8e710ac2e83477701b3905.


  library(ncdf4)
  nc <- nc_open("~/git/GSW-Fortran/test/gsw_data_v3_0.nc")
  ## Use as.vector() since these will all get handed into C, which does not understand matrices.
  p_ref <- as.vector(ncvar_get(nc, "p_ref"))
  lats_ref <- as.vector(ncvar_get(nc, "lats_ref"))
  longs_ref <- as.vector(ncvar_get(nc, "longs_ref"))
  ndepth_ref <- as.vector(ncvar_get(nc, "ndepth_ref"))
  ndepth_ref[!is.finite(ndepth_ref)] <- -9e99
  saar_ref <- as.vector(ncvar_get(nc, "SAAR_ref"))
  saar_ref[!is.finite(saar_ref)] <- -9e99
  delta_sa_ref <- as.vector(ncvar_get(nc, "deltaSA_ref"))
  delta_sa_ref[!is.finite(delta_sa_ref)] <- -9e99
  saar <- list(gsw_nx=gsw_nx, gsw_ny=gsw_ny, gsw_nz=gsw_nz,
               longs_ref=longs_ref, lats_ref=lats_ref, p_ref=p_ref, ndepth_ref=ndepth_ref,
               saar_ref=saar_ref, delta_sa_ref=delta_sa_ref)
  save(saar, file="saar.rda")
  tools::resaveRdaFiles("saar.rda")
  nc_close(nc)