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

dp / dzeta implementation in MPAS-A

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 understand the implementation of dp / dzeta on line 4763 in atm_compute_dyn_tend_work() and its use in the horizontal momentum equation on line 4784.

It is formed beginning with:
dpdz(k,iCell) = -gravity*(rb(k,iCell)*(qtot(k,iCell)) + rr_save(k,iCell)*(1.+qtot(k,iCell)))
Is the intent to represent gravity * moist-density? If so, does this lead to an exact representation of dp / dzeta or an approximation (hydrostatic approx?)? My background isn’t in atmospheric science so I am probably missing something. Also, if this represents gravity * moist-density, shouldn’t rb be multiplied by 1.+qtot(k,iCell) instead of just qtot(k,iCell) to form the moist-density?
No need for a lengthy explanation, just point me to an appropriate reference.
Hi Henry,

Yes, this is an approximation, and we introduced it a few years ago (well after the main 2012 model description paper was published). The formulation of this term is described in the paper

Skamarock, W. C., Ong, H., & Klemp, J. B. (2021). A Fully Compressible Nonhydrostatic Deep-Atmosphere Equations Solver for MPAS, Monthly Weather Review, 149(2), 571-583.

Look at the discussion between equations (21) and (22) in the paper, and let me know if you have any questions.

Hi Bill,
Thanks, that explains the hydrostatic approximation!
However, I'm still confused by the computation of rho-m used in this approximation on line 4763 (in the current release). Shouldn't rho-d-base ('rb' in the code) be multiplied by (1 + qv + qc + ...) instead of (qv + qc + . . .) since
rho-m = (1 + qv + qc + ...) * rho-d = (1 + qv + qc + . . .)(rho-d-base + rho-d-perturbation)
Or is there a reason that rho-d-base is only multiplied by (qv + qc + . . .) in this case?
The current version of the code is:
dpdz(k,iCell) = -gravity*(rb(k,iCell)*(qtot(k,iCell)) + rr_save(k,iCell)*(1.+qtot(k,iCell)))
where qtot = (qv + qc + ...), rr_save = rho-d-perturbation, and rb = rho-d-base
Hi Bill,
Thanks for explaining that the formula on line 4763 in mpas_atm_time_integration.F represents the perturbation in moist density with respect to a reference state given by the dry density at hydrostatic equilibrium. I wrongly assumed that the reference state would be the moist density at hydrostatic equilibrium which I now understand would not make sense as a reference state.