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 |