Skip to content

riem_solver3

NonhydrostaticVerticalSolver

Fortran subroutine Riem_Solver3

Like RiemannSolverC, but for the d-grid.

Difference is that this uses the advanced values for the d-grid full timestep, while RiemannSolverC uses the half time stepped c-grid w, delp, and gz.

__call__(last_call, dt, cappa, ptop, zs, ws, delz, q_con, delp, pt, zh, p, ppe, pk3, pk, log_p_interface, w)

Solves for the nonhydrostatic terms for vertical velocity (w) and non-hydrostatic pressure perturbation after D-grid winds advect and heights are updated. This accounts for vertically propagating sound waves. Currently the only implemented option of a_imp > 0.999 calls a semi-implicit method solver, and the exact Riemann solver best used for > 1km resolution simulations is not yet implemented.

Parameters:

Name Type Description Default
last_call in

boolean, is last acoustic timestep

required
dt in

acoustic timestep in seconds

required
cappa in
required
ptop in

pressure at top of atmosphere

required
zs in

surface geopotential height

required
ws in

surface vertical wind (e.g. due to topography)

required
delz inout

vertical delta of atmospheric layer in meters

required
q_con in

total condensate mixing ratio

required
delp in

vertical delta in pressure

required
pt in

potential temperature

required
zh inout

geopotential height

required
p inout

full hydrostatic pressure

required
ppe out

non-hydrostatic pressure perturbation

required
pk3 inout

interface pressure raised to power of kappa using constant kappa

required
pk out

interface pressure raised to power of kappa, final acoustic value

required
log_p_interface out

logarithm of interface pressure, only written if last_call=True

required
w inout

vertical velocity

required

finalize(zs, dz, zh, log_p_interface_internal, log_p_interface_out, pk3, pk, p_interface, pe, ppe, pe_init, last_call)

Updates auxiliary pressure values

Parameters:

Name Type Description Default
zs in
required
dz in
required
zh out
required
peln_run in

log(pressure) defined on vertical interfaces, as used for computation in this module

required
peln out

log(pressure) defined on vertical interfaces, memory to be returned to calling module

required
pk3 in
required
pk out
required
p_interface in
required
pe inout
required
ppe out
required
pe_init in
required
last_call in
required

precompute(delp, cappa, pe, pe_init, delta_mass, zh, q_con, p_interface, log_p_interface, pk3, gamma, dz, p_gas, ptop, peln1, ptk)

Parameters:

Name Type Description Default
delp in

pressure thickness of atmospheric layer (Pa)

required
cappa in
required
pe in
required
pe_init out
required
delta_mass out

mass thickness of atmospheric layer

required
zh in
required
q_con in
required
p_interface out

pressure defined on vertical interfaces (Pa)

required
log_p_interface out

log(pressure) defined on vertical interfaces

required
pk3 out
required
gamma out
required
dz out
required
p_gas out

pressure defined at vertical mid levels due to gas-phase only, excluding condensates (Pa)

required