Hello all-
This may be of interest to anybody out there who is using ROMS to model a freshwater system (I'm using ROMS to model annual variability in Lake Superior).
I had been getting somewhat unrealistic results in ROMS right around the temperature of maximum density (3.98C at p=0, and decreases by 0.22C every 100m of depth, so that, for instance, Tmd(p=500m)~2.9C). The nonlinear equation of state that ROMS uses is built for salt water, and is not precise in the case that S=0, especially at depth, suggesting that it's really the computation of the bulk modulus that doesn't work well. I have added code to rho_eos.F and mod_eoscoef.F that allows for precise modeling of thermal structure in fresh water, using the Chen and Millero (L&O 1986) formulation for fresh (S<0.6) water. I would be happy to share these additions if there is interest. It results in a significant improvement for my particular application.
Two other notes for people using ROMS to model ice in fresh water: even if you undefine SALINITY, you still need to set S0=0 in your .in file, and set sice=0 in ice_mk.h.