eta-to-eta initialization
Let ηd,ηs
be the deep and shallow mass coordinates,
respectively. We define Analytic test cases, as well as, e.g., initializing from data,
specify an invertible map ηs↦z
.
When we read η
values from a file in DA HOMME, these are ηd
values.
We define the new mass coordinate such that
∂ηs∂πs=ρg0 becomes ∂ηd∂πd=(aa+z)2ρg0=(ar)2ρg0=r^2ρg0
and Wood and Staniforth find that height can be constructed as
r3=rs3−g3a2∫πd′=πdπd′=π0pRdTdπdr3=rs3−g3a2∫πs′=πsπs′=π0r^2pRdTdπs
At the topmost boundary, πd=πs=π0
, though the integral that
defines how π0
is interpreted is different in each model! Since we are using
an isobaric upper boundary condition p=π0
at the top boundary in both models, this allows us to determine z(ηd, top)=z(ηs, top)
In this article
Initializing by translating ηdeep
to ηshallow
For simplicity of prototyping I assume that ptop=πtop
(eventually this will be ptop=πtop
)
and that the initial data allows me to determine ztop
based on this pressure value. To initialize the atmosphere,
first calculate
πdeep, surf=∫zsurfztopr^2RdTpdz
.
In practice, this integral proceeds from the top of the atmosphere. I do the integral in z
coordinates
because I find it notationally easier to tell what's going on.
That said, the integrals in Wood and Staniforth provide the analogous integral in ηshallow
coordinates (though height must be determined in any case).
and then use that to calculate πdeep(η⋅,k)=A(η⋅,k)π0+B(η⋅,k)πdeep, surf
, for ηint,k,ηmodel,k
Then perform a scan from the top of the atmosphere to get z(η⋅,k)
that satisfy πdeep(η⋅,k)=∫z(η⋅,k)ztopr^2RdTpdz
Then set Tv,u,v,w,
based on either
Notes:
- The preliminary integral to calculate the total mass in the column cannot be done at the same time as the scan to determine
z(η⋅,k)
, because determining the new πdeep(η⋅,k)
relies on knowledge of πdeep, surf
- Note that
πdeep, surf
becomes ps_v
in the code, and may be totally different from the physical pressure at the surface!