watsat and satw need to include excess ice when use_excess_ice is on
This applies when #1787 comes to main-development. There's a note in SoilTemperatureMod.F90 that talks about needing to include excess ice in the calucation of watsat and satw.
!TODO recalculate watsat and satw to have excess ice included
@mvdebolskiy and @ka7eh how important is bringing this change in for the excess ice code? I assume this can be something that's done after #1787 comes in right?
@ekluzek I added that line, to have a reminder to check if watsat has to be scaled somewhere else in the same manner it is done here, but so far I haven't found any places where it is in the same context t_soisno<0. Aslo, @swensosc should the following block
if (t_soisno(c,j) >= tfrz) then ! Unfrozen soil
dke = max(0._r8, log10(satw) + 1.0_r8)
else ! Frozen soil
dke = satw
end if
have the first condition t_soisno(c,j) > tfrz since there will be excess ice at tfrz.
The thing that should be done is to change comment, so that it doesn't sound like something is missing. We should also go through the model to make sure it isn't anywhere else where it would be needed. And if it is we should add some testing for that mode. @mvdebolskiy has checked most of the model and doesn't think it is.
the conditional for the unfrozen/frozen soil has been that way for a long time, at least back to clm3, and maybe always. If there is excess ice at t_soisno = tfrz, it seems likely that satw will be 1 or close to 1, which would make dke the same for both frozen and unfrozen soil. So my feeling is to leave the conditional 'as is'. As far as watsat is concerned, I don't think we want to change it. It is a property of the mineral soil. I don't know enough about the dksat calculation to say whether the watsat used in the equation should be changed to some other quantity. If so, I imagine it would just modify the tkice exponent. In any case, I suggest not changing it unless some specific testing has been done to look at how the values would be changed.
I'm closing this. As Sean says above we shouldn't change the actual code without doing experiments to ensure it would work. We also don't find any other places in the code that need to change. I also searched for satw in the current code and here and LakeTemp are the only places for it, so it doesn't seem like anything new has come in. We also decided to remove the comment which is the right thing to do since we don't plan to change anything in the code.