ESCOMP / CAM

Community Atmosphere Model
74 stars 136 forks source link

Add Radar Reflectivity Parameterization from WRF #684

Open andrewgettelman opened 1 year ago

andrewgettelman commented 1 year ago

What is the feature/what would you like to discuss?

We would like to add a radar reflectivity calculation from WRF. This is a bit involved (2 different modules + an interface) and is best put in as a separate parameterization. It just needs state variables, and will output a diagnostic, so it can be called in physpkg after the microphyics. It might want a namelist switch so it can be shut off if not used.

I will attempt to do a first cut of this code in the current latest tag (cam6_3_082) and pass off to Kate and Bill Skamarock if necessary.

Feel free to ask questions.

Is there anyone in particular you want to be part of this conversation?

@Katetc @skamroc

Will this change (regression test) answers?

No

Will you be implementing this enhancement yourself?

No

andrewgettelman commented 1 year ago

Greetings,

Some progress. I actually have a 'parameterization' running in SCAM with the WSM6 reflectivity code. It compiles, runs and produces a variable, but it's all zeros right now.

I'll provide one more update before the end of the day, but a SCAM script to run it is on the CGD cluster (izumi): /project/amp/andrew/scam_pumas/create_scam6_reflwsm6

With code modifications in /project/amp/andrew/scam_pumas/mods//mods_wsm6_refl0

More soon.

andrewgettelman commented 1 year ago

Hi @Katetc and @skamaroc. Good news (mostly). I got the radar code running in CAM. Here is a figure from a single column model run (TWPICE, so tropical pacific):

download

The code is based of cam6_3_082, cam_dev version of physpkg.F90 (it could be plugged into any version with a different physpkg.F90).

Twp issues:

  1. While I am registering the namelist switch to turn it on, it doesn't seem to work the way I have done it in physpkg.F90. So right now I have commented out the option to turn it on, and left it on.

It might also be better in a different place in the physics loop: I seem to need to put it outside of all the conditionals for microphysics.

  1. I coded it for MG3 (needs graupel) and then tried to make it work with MG2 (no graupel). I need to be able to check a namelist variable and was not successful at doing that in the wsm6_refl.F90 interface routine (related to 1 above). There is some commented out logic around graupel that needs some help. I couldn't figure that out this afternoon.

  2. When it is working you probably want to comment out the write to logfile line in wsm6_refl_tend....

Happy to help look at this further, but I think it is nearly there: just those 2 points above and I think could be run globally, checked and then put a PR in.

Code mods are on cheyenne: /glade/u/home/andrew/cesm_ch/pumas/mods_wsm6_refl0

Note that the *.xml files need to be moved into the bld/namelist_files of the tag manually.

Andrew