Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixed excessive evaporation when both innerloop=T and mraerosol=T #194

Merged
merged 2 commits into from
May 1, 2024

Conversation

AnningCheng-NOAA
Copy link
Collaborator

One line of code modification fixing the excessive evaporation problem when both Innerloop and mraerosol is T

@dustinswales
Copy link
Collaborator

@AndersJensen-NOAA

@lisa-bengtsson
Copy link
Collaborator

@joeolson42 @AndersJensen-NOAA this could be related to some of the issues we discussed.

@AndersJensen-NOAA
Copy link
Collaborator

One line of code modification fixing the excessive evaporation problem when both Innerloop and mraerosol is T

@AnningCheng-NOAA Can we get more details on the excessive evaporation problem?

@AnningCheng-NOAA
Copy link
Collaborator Author

AnningCheng-NOAA commented Apr 1, 2024 via email

@lisa-bengtsson
Copy link
Collaborator

Hi Anning, I would be interested in more info as well, is it related to the inner loop? With the aerosol aware Thompson, we found quite large sensitivity to the choice of dt_inner in the amount of precipitation generated, that we don't see in the non-aerosol aware version. I wonder if what you have found here could be related?

@yangfanglin
Copy link
Collaborator

yangfanglin commented Apr 1, 2024

@lisa-bengtsson @AndersJensen-NOAA Anning found the issue when he ran the aerosol-aware version of Thompson MP with MERRA2 aerosol climatology. I know you are using "prognostic" aerosols so the question might be different. You can test by removing inner loop but with a shorter dt_atmos (for stability) and then compare it to your control with dt inner. If there is large change in column integrated cloud water, then you are having the same issue.

Anning, please provide more details if you have

@AnningCheng-NOAA
Copy link
Collaborator Author

Agree with Fanglin. The results from the run with Innerloop should not be much different from the run without Innerloop and with the same time step as the inner loop used. We discussed the issue with Ruiyu and tends for a more sophisticate aerosol evaporation, but ends up with a simple solutions proposed here.
The evaporation approach does not make much difference (attached figure) on the global mean surface precipitation, likely due to the self contraint of GFS.
prcp_3p_evap

@AndersJensen-NOAA
Copy link
Collaborator

@AnningCheng-NOAA and @yangfanglin Thank you for the information and the plots.
Do I understand correctly that you are comping runs with: 1) an inner-loop, for example, 2 calls to the microphysics with each call being 75 seconds (with dt_atmos=150 seconds for example), versus 1 call to everything including microphysics, dt_atmos=75 seconds?

How is the evaporation tendency for nc calculated when using merra2_aerosol_aware = .true. after this update?

@AnningCheng-NOAA
Copy link
Collaborator Author

@AndersJensen-NOAA yes. This how the results from panel A and B are obtained. The evaporation is calculated without the influence of NWFA and NIFA, i.e., evaporate liquid or ice until the environment is saturated.

@AndersJensen-NOAA
Copy link
Collaborator

@AndersJensen-NOAA yes. This how the results from panel A and B are obtained. The evaporation is calculated without the influence of NWFA and NIFA, i.e., evaporate liquid or ice until the environment is saturated.

Thanks, @AnningCheng-NOAA , but what about nc?

@AnningCheng-NOAA
Copy link
Collaborator Author

@AndersJensen-NOAA here are the two lines of code without influence of NWFA and NIFA, but do modify nc and ql:
3639 prw_vcd(k) = -rc(k)orhoodt
3640 pnc_wcd(k) = -nc(k)orhoodt
Noticed that NIFA and NWFA are determined by aerosol only using the MERRA2 climatology approach, not the same as the NIFA and NWFA forecasting approaches (aerosol_aware =T).

@AnningCheng-NOAA
Copy link
Collaborator Author

One more thing, when gocart is turned on, mraerosol need to be true in order to coupled with Thompson microphysics. In this case, "is_aerosol_aware" option needs to be False. It is kind of awkward due to the reservation of "is_aerosol_aware" by NIFA and NWFA forecasting approach.

@AndersJensen-NOAA
Copy link
Collaborator

AndersJensen-NOAA commented Apr 9, 2024

@AnningCheng-NOAA
This part of the code is a bit confusing, but here's the logic:

do k = kts, kte ! Main k loop
   if ( (ssatw(k).gt. eps) .or. (ssatw(k).lt. -eps .and. L_qc(k)) ) then ! Check for sub- or super-saturation
      if (xrc.gt. R1) then ! Check for cloud water above the R1 limit
         if (clap .gt. eps) then ! Nucleation
         elseif (clap .lt. -eps .AND. ssatw(k).lt.-1.E-6 .AND. (is_aerosol_aware .or. merra2_aerosol_aware)) then  ! Evaporation
         endif ! endif for Nucleation/Evaporation
      else ! Else for cloud water check
         prw_vcd(k) = -rc(k)*orho*odt
         pnc_wcd(k) = -nc(k)*orho*odt
      endif ! endif for cloud water check (xrc > R1)
   endif ! line 3667 endif for sub- or super-saturation check and liquid present
enddo ! line 3668

I think the part of the code you are referring to is the "clean-up" where all cloud water mass and number is evaporated if xrc is not greater than R1.

@AnningCheng-NOAA
Copy link
Collaborator Author

@AndersJensen-NOAA Yes. The evaporation occurs only when xrc< R1. We might need a more sophisticated one in the future although using this one as a starting point is good at this moment. When fixing the NIFA and NWFA, I have testing some schemes at hand, not satisfied as this one so far.

@zach1221
Copy link

zach1221 commented May 1, 2024

@grantfirl testing is finished on WM PR #2221. Can you please merge is PR?

@grantfirl grantfirl merged commit 1c2a898 into ufs-community:ufs/dev May 1, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants