Secondary precipitation#367
Conversation
Created a simple biogeochemical model to model secondary precipitation of CaCO3. The model includes DIC, Alk, and CaCO3 particulates. A validation script compares against shipboard experiments reported in Hashim et al. 2025
| + c.sea_S_sqrt_S³ * S^convert(FT, 1.5)) | ||
|
|
||
| return pressure_correction * exp(lnK_therm + lnK_sea) | ||
| # The Mucci (1983) / Millero (2007) formula gives log₁₀(KSP), so the |
There was a problem hiding this comment.
Do you know where this is in the paper? I can't see any log10s?
There was a problem hiding this comment.
I think there is a problem with the current calcite saturation, I think it is off by a factor of 1000, but I thought currently that it might be a unit problem with the Ca+ ions?
There was a problem hiding this comment.
It is in Mucci 1983 page 792. It is confusing because it just says "log", but below equation 10, the text says that log refers to log_10. It is worth double checking with another source, though. Presumably CO2SYS has this formula in it?
There was a problem hiding this comment.
The image that you posted does have ln(). Is this from Millero?
There was a problem hiding this comment.
This is what CO2SYS has:
% CalciteSolubility:
% ' Mucci, Alphonso, Amer. J. of Science 283:781-799, 1983.
logKCa = -171.9065 - 0.077993.*TempK + 2839.319./TempK;
logKCa = logKCa + 71.595.*logTempK./log(10);
logKCa = logKCa + (-0.77712 + 0.0028426.*TempK + 178.34./TempK).*sqrSal;
logKCa = logKCa - 0.07711.*Sal + 0.0041249.*sqrSal.*Sal;
% ' sd fit = .01 (for Sal part, not part independent of Sal)
KCa = 10.^(logKCa);% ' this is in (mol/kg-SW)^2
There was a problem hiding this comment.
That is the Matlab implementation of CO2SYS.
There was a problem hiding this comment.
While I'm looking at it, the pressure correction term for aragonite in CO2SYS looks very different:
% PressureCorrectionForAragonite:
% ' Millero, Geochemica et Cosmochemica Acta 43:1651-1661, 1979,
% ' same as Millero, GCA 1995 except for typos (-.5304, -.3692,
% ' and 10^3 for Kappa factor)
deltaVKAr = deltaVKCa + 2.8;
KappaKAr = KappaKCa;
lnKArfac = (-deltaVKAr + 0.5.*KappaKAr.*Pbar).*Pbar./RT;
KAr = KAr.*exp(lnKArfac);
The pressure correction for calcite is the same as what we have. Is it possible that this needs to be updated too?
There was a problem hiding this comment.
Sorry, scratch that last comment - I hadn't spotted that CO2SYS is just modifying the calcite values. This looks fine
|
@jagoosw , just to add that I'm happy for you to integrate this into CarbonateSystem. Let me know if I can help. |
I didn't mean to include this script in the PR. It doesn't make sense as a test of CaCO3 precipitation since the simulation is short and that process is relatively slow.
Added example script to demonstrate sinking and dissolution of particulate phase.
|
@jagoosw, I added an example script which demonstrates particle sinking and dissolution. |
Updated the CaCO3 default dissolution rate to match PISCES



Created a simple biogeochemical model to model secondary precipitation of CaCO3. The model includes DIC, Alk, and CaCO3 particulates. A validation script compares against shipboard experiments reported in Hashim et al. 2025. For this, I simply folllowed the example to create a new biogeochemical model. We should think about the best way to include this capability.