You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, the "use_preexisting_ice" namelist is still set to true for cam_dev. Are you retaining parts of this preexisting ice elsewhere in the code?
Andrew:
Bottom line: this should be cleaned up. I think it got put in this way because I was asked to be minimally invasive and we were trying to maintain multiple codes.
use_preexisting_ice is used for several things and is supposed to be left as true. I’m thinking it is a flag for CAM6 ice nucleation (partially).
add_preexisting_ice is different. In nucleate_ice (nucleati subroutine), ‘add preexisiting ice’ is only used to stop adding the existing ice number (as it says). In this routine, use_preexisting_ice is a conditional for calculating the amount of preexisting ice to add. It could also be switched off if add_prexisting_ice is false.
Places where preexisting ice is used:
In microp_aero.F90 a minimum on the subgrid vertical velocity for ice (WSUBI) is set if false.
In the initialization for nucleate_ice_cam.F90 prexisting ice = true is used as a conditional to add some history fields (This conditional probably should NOT be there: it may cause the code to fail if you select preexisting_ice = false and cam_dev = true)
Nucleate_ice.F90 (see above)
I don’t think that #1 and #2 should be controlled by use_preexisting_ice, and #3 could be made more elegant.
Adam:
Thanks for taking a look at this. I just encountered #1 yesterday for the first time. I think we should just turn that into a namelist for the minimum wsubi, and set it to 0.2 for both cam6 and cam_dev. All the limiters on wsub/wsubi are nauseating, and I partially cleaned them up a few months ago but this needs to be simplified to 4 namelists IMO, a floor and a ceiling for wsub, wsubi. What I cleaned up earlier was an additional limiter applied to wsub after it's passed into dropmixnuc (look for "wsub_min_asf" in microp_aero, where asf stand for "after scale factor" since by the time wsub is passed into dropmixnuc it has already been scaled by wsub_scale). In hindsight I should've just ditched this asf limiter altogether. Maybe Ill do that this time around.
In terms of science it's just #1 and #3. And you're saying #2 is just diagnostics but may be very brittle. That's very good to know.
Will this change answers?
I Don't Know
Will you be implementing this yourself?
Yes, but I will need some help
The text was updated successfully, but these errors were encountered:
Issue Type
Code Clean-up
Issue Description
The preexisting ice logic is very confusing and I've consulted with @andrewgettelman about cleaning it up. Here's our convo:
Adam:
Andrew:
Adam:
Will this change answers?
I Don't Know
Will you be implementing this yourself?
Yes, but I will need some help
The text was updated successfully, but these errors were encountered: