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

hill2d_x: How to output PSFC and modify initial W field

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 running the idealized "hill2d_x" case and I would like to have the surface pressure (PSFC) calculated and output (currently the PSFC variable is outputted as zero in the wrfout file).

Also, I would like to modify the calculation of the vertical structure of the initial vertical velocity field (W). Currently, it seems to be initialized as an exponential decaying field, starting from the W of the lowest layer.

If you could direct me to the lines of code in the relevant modules, that would be great. Thanks!

Best regards,
PSFC value is given in surface driver. The ideal case of hill2s_x doesn't run with sfclay and surface physics being turned on. That is why PSFC is zero in the output. One alternative option is to use the lowest model level pressure to roughly represent PSFC.

Vertical velocity is initialized as zero. Please see the piece of codes below (in module_initialize_hill2d_x.F):
! set w

DO J = jts, min(jde-1,jte)
DO K = kts, kte
DO I = its, min(ide-1,ite)
grid%w_1(i,k,j) = 0.
grid%w_2(i,k,j) = 0.

You may modify this code to specify the vertical structure of W
Hi Ming,

Thank you for your reply. I'll use the lowest-layer pressure to approximate the surface pressure.

As for the vertical velocity issue, W is indeed zero in the wrfinput_d01 file. However, the W field at the initial time (Time=0) is non-zero in the wrfout_d01 file. The vertical velocity at the lowest level (the surface) is diagnosed correctly from the horizontal wind and the slope of the topography. However, W at levels above the surface have some sort of prescribed field which decays with height. It seems this is done deliberately to reduce the initial imbalance. However, I would like to have W be zero initially above the surface. So I need help identifying the code which controls this.

Thanks again.

-- Mike

I'm attaching the Time=0 W field extracted from the wrfout_d01 file.


-- Mike


    342.1 KB · Views: 49
The subroutine 'set_w_surface' (in dyn_em/module_bc_em.F) is activated to produce W once the model integration starts. I believe this is the place where you need to modify.
Thank you, Ming. It looks like I just have to set the variable "fill_w_flag" equal to .false. in dyn_em/start_em.F, and that will do the trick.