Closed AaronDonahue closed 3 years ago
I had expected this to already be in the C++ SHOC interface because it is in shoc_intr.F90: https://github.com/E3SM-Project/scream/blob/881f8b8717096d2ba91afcf48d26494afbb5c138/components/eam/src/physics/cam/shoc_intr.F90#L1010 . But it makes sense in retrospect that @tcclevenger didn't include it because the F90 calls a function from the bowels of CAM to compute ice cloud fraction (aist).
It is also good that we don't have the existing F90 ice cloud fraction scheme coded up because it sucks and we have a git issue in the v0.1 campaign (#902 ) to replace it with a scheme that is just "aist=0 if qi<1e-5 else aist=1". Then we just need the additional "ast = max(aist, alst)" line to get the ast that microphysics wants.
Update: slack discussion here: https://acmeclimate.slack.com/archives/CBLM2THEK/p1616424624080700 clarifies that we should make ice_cloud_fraction its own atm process in v1 rather than stuffing it into SHOC as is currently done in v0.
@PeterCaldwell , so we can assume that alst
will still be provided by shoc?
@AaronDonahue - yes, computing alst is a central goal of shoc.
@tcclevenger , as far as I can tell alst
isn't being calculated, or at least provided by the shoc-ad interface. It looks like it is "required" but not "computed". According to @PeterCaldwell 's comment above shoc should also be computing it. Is that something that you could add to the shoc interface? It is probably a post-processing step.
Yes, in post processing in shoc_intr.F90, alst is set: alst = min(cloud_frac, 1)
. I will add this as a computed field and start to work on the post processing. Will probably need to have a discussion at some point exactly what goes in there and what is left out from shoc_tend_e3sm()
subroutine (a lot of ptend updates, and other variables not touched by shoc_main).
Thanks Conrad! I actually think you did the right thing by assuming nothing from SHOC is needed until you're told otherwise. This will help us remove unnecessary variables from the interface. I think Aaron's FM variable names confluence page will clarify what you need to add to the interface. @bogensch told me he will try to work on this page tomorrow.
@PeterCaldwell Great, I'll reach out when this pages is finished being updated and start to get the post processor in asap.
@AaronDonahue I suspect that the cld_fraction atm proc is making this issue outdated. If so, go ahead and close this.
Yeah, closed via #944
Currently the shoc interface in the AD only handles liquid cloud fraction, alst. But it is expected that macrophysics is responsible for computing the total cloud fraction as the maximum cloud fraction between liquid and ice. This is later used by microphysics (P3).