Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

REFL_10CM at initial time

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member

I am trying to get the REFL_10CM output at initial time.
In particular, I would like to get the reflectivity field recalculated from the modified hydrometeors mixing ratios. Is it possible?
I am using WRFv4, and the model usually outputs the reflectivity fields which are available in "wrfinput_d01" file.

I don't think you can get REFL_10CM at the initial time. this is because REFL_10CM is a diagnosed from other microphysical variables. At the initial time of WRF, these variables are not available.

"At the initial time of WRF, these variables are not available." can you please explain what does that mean?
Do you mean that the microphysical variables are not used to calculate (at initial time) the REFL_10CM when the WRF model is run?

All the hydrometeors required for REFL_10CM calculation are not initialized in in wrfinput. If you check their values, you can find that they are all zero at the initial time. One option to obtain REFL_10CM at the beginning of the model run is that, you may manage to get these hydrometeors from the forcing data you use to drive WRF, then calculate REFL_10CM following the approach used in WRF.

I am performing data assimilation, where at the analysis time I have updated the hydrometeor variables in the initial condition file "wrfinput_d01". Now when the model runs, I need WRF to recalculate REFL_10CM using the updated hydrometeor variables in "wrfinput_d01" file at the time the model is initialized and output it in "wrfout_d01" file at the run time. Whats happening is that the WRF just copies the REFL_10CM from the "wrfinput_d01" to "wrfout_d01" file without recalculating it again.

Can you please tell me where do I need to make changes in WRF code.

refl_10cm is calculated in microphysics scheme. Let's take WSM6 as an example. You can find the calculation in the code phys/module_mp_wsm6.F,
         IF ( PRESENT (diagflag) ) THEN
         if (diagflag .and. do_radar_ref == 1) then
            DO I=its,ite
               DO K=kts,kte
               call refl10cm_wsm6 (qv1d, qr1d, qs1d, qg1d,              &
                       t1d, p1d, dBZ, kts, kte, i, j)
               do k = kts, kte
                  refl_10cm(i,k,j) = MAX(-35., dBZ(k))

It implies that refl_10cm is available only when the MP physics is activated. At the initial time, the MP schemes has not started and refl_10cm is set to zero.

To obtain this variable, you will need to modify the code dyn_em/start_em.F, in which you can find the following piece of code:
 IF(config_flags%cycling) THEN
       start_of_simulation = .true.
!  print *,'cycling, start_of_simulation -->',config_flags%cycling, start_of_simulation
!   print *,'xtime=',grid%xtime
 Inside the IF condition, you can add the code to calculate refl_10cm. Be cautious to specify the correct variables used in the MP for refl_10cm calculation.