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

Vapor Fluxes

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 appreciate if I could be directed to the module where the vapor flux is calculated. I am running a real simulation over ocean, and surprisingly, over most of the domain, vapor flux is either zero or a very small number. I'd like to check the formula and figure out what the root cause is.

Hi Ming,

I am looking at QFX, which ranges from -1.3*e^(-5)_8.3*e^(-5).

Everything else looks reasonable in the output. I am curious to locate where this variable is computed in the physics module.
I've attached my namelist.


  • namelist.input.odt
    16.9 KB · Views: 54
The namelist.input.odt seems damaged. I cannot open it. Please reload. I need both namelist.wps and and name.input. Thanks.

Ming Chen
Hi Ming,

I am attaching both namelist.input and namelist.wps.


  • namelist.wps.pdf
    18.4 KB · Views: 55
  • namelist.input.pdf
    16.8 KB · Views: 55
Your namelist looks fine. I don't see anything inappropriate.
Would you please take a look at the code phys/module_sf_sfclayrev.F, in which QFX are computed.

Ming Chen
Hi Ming,

Thank you for directing me to the code. I am suspecting that the root cause of why QFX is way too small is MAVAIL (surface moisture availibilty), which is an input variable. I was wondering where this variable is calculated and fed into this module?

MAVAIL is actually the variable SLMO given in "run/LANDUSE.TBL". In the code phys/module_physics_init.F, SLMO is read from LANDUSE.TBL and assigned to MAVAIL. Over ocean points, MAVAIL should be 1.0. I don't think the abnormally low QFX over the ocean is caused by MAVAIL.
Probably you set choose one such point, and print all variables related to QFX calculation. This might give you some hints.

Ming Chen

I had printed out MAVAIL, QSFC and QX variables in order to see where QFX becomes zero. As you mentioned, MAVAIL is 1 over the ocean. The problem I have with this output is that QSFC and QX are a function of tile number in the module.
I was thinking of having them in the WRF output just as QFX. As far as I could gather, if I add two lines just like QFX to the Registry.EM_COMMON, I should be able to get outputs for those two variables as well. I was wondering if I need to modify the code anywhere else.

Thanks a lot,
QSFC and QFX are state variables that have been defined in Registry.EM_COMMON. QX is a local variable not defined in Registry. if you want to add QX to Registry, please see the website, in which there is an example how to add array to Registry and pass the variable between driver and physics module.

If you don't want to go through the trouble to add QX to Registry, you can print QX(I,J) and I, J inside the subroutine SFCLAYREV1D. Note that J is a dummy variable passed into this subroutine. Even if you run in parallel mode, I and J are still the index in "global" domain. The are not tile-dependent.

Ming Chen