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

how to output more fields?

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.

zhuming

New member
Hi,

I would like to output field of ZNT roughness length in wrfout_d01*. It's right that I just change the Registry.EM_COMMON, from i3r to i3rh?

state real ZNT ij misc 1 - i3r "ZNT" "TIME-VARYING ROUGHNESS LENGTH" "m"

By the way, what's the I/O mean? such as irhdu , i01rhdu, irh0{22}{23}du

state real Q2 ij misc 1 - irh0{22}{23}du "Q2" "QV at 2 M" "kg kg-1"
state real T2 ij misc 1 - i01rh0{22}{23}du "T2" "TEMP at 2 M" "K"
state real TH2 ij misc 1 - irhdu "TH2" "POT TEMP at 2 M" "K"
state real PSFC ij misc 1 - i01rhdu "PSFC" "SFC PRESSURE" "Pa"


Thanks!
Zhuming
 
Hi Zhuming,
Please take a look at thee file Registry.EM_COMMON, in which you can find the line:

state real ZNT ij misc 1 - i3r "ZNT" "TIME-VARYING ROUGHNESS LENGTH" "m"

Change it to:

state real ZNT ij misc 1 - i3rh "ZNT" "TIME-VARYING ROUGHNESS LENGTH" "m"

Then type ./clean -a and recompile WRF. This will allow wrfout to include ZNT.

For your other questions of irhdu, i01rhdu, etc., "i" indicates input, "r" indicates restart, "h" indicates history, "d" ad "u" are for nesting. The numerics indicate the streams for input/output. Dave has a talk in tutorial to introduce the details. Please take a look at
http://www2.mmm.ucar.edu/wrf/users/tutorial/202001/gill_registry.pdf

Let me know if you have more questions.
 
Hi,
How can i have ZNT parameter without re-run the model. Is there any way to calculate it manually?

Regards,
 
You may take a look at the code "phys/module_physics_init.F" and find the ways ZNT is determined initially. However, note that ZNT may be adjusted later in specific schemes you choose. So basically we won't recommend people to manually calculate ZNT.
 
Hi Ming Chen,
Thank you for your reply. One more thing, how WRF determine Z0 value from varying Z0min and Z0max in the VEGPARM.TBL
 
The algorithm to calculate ZNT is slightly different in different surface schemes. Let's take the NOAH as an example:
The maximum and minimum ZNT values in VEGPARM.TBL are read into WRF first. Initial ZNT is then calculated based on the maximum and minimum ZNT as well as green vegetation fraction. Please take a look at the following piece of code in phys/module_sf_noahlsm.F:
Code:
            IF ( SHDMAX > SHDMIN ) THEN

               INTERP_FRACTION = ( SHDFAC - SHDMIN ) / ( SHDMAX - SHDMIN )
               ! Bound INTERP_FRACTION between 0 and 1
               INTERP_FRACTION = MIN ( INTERP_FRACTION, 1.0 )
               INTERP_FRACTION = MAX ( INTERP_FRACTION, 0.0 )
               ! Scale Emissivity and LAI between EMISSMIN and EMISSMAX by INTERP_FRACTION
               EMBRD = ( ( 1.0 - INTERP_FRACTION ) * EMISSMIN  ) + ( INTERP_FRACTION * EMISSMAX  )
               IF (.NOT. RDLAI2D) THEN
                  XLAI  = ( ( 1.0 - INTERP_FRACTION ) * LAIMIN    ) + ( INTERP_FRACTION * LAIMAX    )
               ENDIF
               if (.not. USEMONALB) then
                  ALB   = ( ( 1.0 - INTERP_FRACTION ) * ALBEDOMAX ) + ( INTERP_FRACTION * ALBEDOMIN )
               endif
               Z0BRD = ( ( 1.0 - INTERP_FRACTION ) * Z0MIN     ) + ( INTERP_FRACTION * Z0MAX     )

            ELSE

               EMBRD = 0.5 * EMISSMIN  + 0.5 * EMISSMAX
               IF (.NOT. RDLAI2D) THEN
                  XLAI  = 0.5 * LAIMIN    + 0.5 * LAIMAX
               ENDIF
               if (.not. USEMONALB) then
                  ALB   = 0.5 * ALBEDOMIN + 0.5 * ALBEDOMAX
               endif
               Z0BRD = 0.5 * Z0MIN     + 0.5 * Z0MAX

            ENDIF

You may find similar information in other surface schemes.

Hope this is helpful for you.
 
Top