An if loop was incorrectly introduced in Icepack v1.5.0 around a set of statements in ice_algae.F90 that ensure uptake of silicate by algae doesn't exceed the available supply. As a result, silicate becomes unphysically negative with this codebase.
I'm testing a fix.
See: E3SM-Project/E3SM#7127