Potential Enthalpy of Ice at Freezing Point
Implementation Note
This R function uses a wrapper to a C function contained within the GSW-C system as updated 2022-10-11 at https://github.com/TEOS-10/GSW-C with git commit `657216dd4f5ea079b5f0e021a4163e2d26893371`.
The C function uses data from the library/gsw_data_v3_0.mat
file provided in the GSW-Matlab source code, version 3.06-11.
Unfortunately, this version of the mat file is no longer displayed on the
TEOS-10.org website. Therefore, in the interests of making GSW-R be
self-contained, a copy was downloaded from
http://www.teos-10.org/software/gsw_matlab_v3_06_11.zip on 2022-05-25,
the .mat file was stored in the developer/create_data directory of
https://github.com/TEOS-10/GSW-R, and then the dataset used in GSW-R
was created based on that .mat file.
Please consult http://www.teos-10.org to learn more about the various TEOS-10 software systems.
Bugs
1. The C source underlying this function lacks an argument, saturation_fraction
,
which is present in the Matlab source, and so that argument is ignored here.
2. The R code does not reproduce the check values stated at http://www.teos-10.org/pubs/gsw/html/gsw_pot_enthalpy_ice_freezing.html. Those values are incorporated in the test provided in ‘Examples’, so that test is not performed during build tests. See https://github.com/TEOS-10/GSW-R/issues/27.
See also
Other things related to enthalpy:
gsw_CT_from_enthalpy()
,
gsw_dynamic_enthalpy()
,
gsw_enthalpy()
,
gsw_enthalpy_CT_exact()
,
gsw_enthalpy_diff()
,
gsw_enthalpy_first_derivatives()
,
gsw_enthalpy_first_derivatives_CT_exact()
,
gsw_enthalpy_ice()
,
gsw_enthalpy_t_exact()
,
gsw_frazil_properties_potential()
,
gsw_frazil_properties_potential_poly()
,
gsw_pot_enthalpy_from_pt_ice()
,
gsw_pot_enthalpy_from_pt_ice_poly()
,
gsw_pot_enthalpy_ice_freezing_poly()
,
gsw_pt_from_pot_enthalpy_ice()
,
gsw_pt_from_pot_enthalpy_ice_poly()
,
gsw_specvol_first_derivatives()
,
gsw_specvol_first_derivatives_wrt_enthalpy()
Examples
SA <- c(34.7118, 34.8915, 35.0256, 34.8472, 34.7366, 34.7324)
p <- c( 10, 50, 125, 250, 600, 1000)
saturation_fraction = 1
e <- gsw_pot_enthalpy_ice_freezing(SA, p, saturation_fraction)
if (FALSE) { # \dontrun{
stopifnot(all.equal(e/1e5, c(-3.373409558967978, -3.374434164002012, -3.376117536928847,
-3.378453698871986, -3.385497832886802, -3.393768587631489)))
} # }