eta-to-eta initialization

Let ηd,ηs\eta_{\textrm{d}}, \eta_{\textrm{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 ηsz \eta_{\textrm{s}} \mapsto z. When we read η\eta values from a file in DA HOMME, these are ηd \eta_{\textrm{d}} values. We define the new mass coordinate such that πsηs=ρg0 becomes πdηd=(a+za)2ρg0=(ra)2ρg0=r^2ρg0 \frac{\partial \pi_\textrm{s}}{\partial \eta_{\textrm{s}}} = \rho g_0 \textrm{ becomes } \frac{\partial \pi_\textrm{d}}{\partial \eta_{\textrm{d}}} = \left(\frac{a+z}{a}\right)^2\rho g_0 = \left(\frac{r}{a}\right)^2 \rho g_0 = \hat{r}^2 \rho g_0 and Wood and Staniforth find that height can be constructed as r3=rs33a2gπd=πdπd=π0RdTpdπdr3=rs33a2gπs=πsπs=π0r^2RdTpdπs \begin{align*} r^3 = r_s^3 - \frac{3a^2}{g} \int_{\pi'_\textrm{d} = \pi_\textrm{d}}^{\pi'_\textrm{d} = \pi_0} \frac{R_d T}{p} \,\mathrm{d}\pi_\textrm{d}\\ r^3 = r_s^3 - \frac{3a^2}{g} \int_{\pi'_\textrm{s} = \pi_\textrm{s}}^{\pi'_\textrm{s} = \pi_0} \hat{r}^2 \frac{R_d T}{p} \,\mathrm{d}\pi_\textrm{s} \end{align*} At the topmost boundary, πd=πs=π0\pi_\textrm{d} = \pi_{\textrm{s}} = \pi_0, though the integral that defines how π0\pi_0 is interpreted is different in each model! Since we are using an isobaric upper boundary condition p=π0p = \pi_0 at the top boundary in both models, this allows us to determine z(ηd, top)=z(ηs, top)z(\eta_{\textrm{d, top}}) = z(\eta_{\textrm{s, top}})

In this article

Initializing by translating ηdeep\eta_{\textrm{deep}} to ηshallow\eta_{\textrm{shallow}}

For simplicity of prototyping I assume that ptop=πtopp_{\textrm{top}} = \pi_{\textrm{top}} (eventually this will be ptop=πtopp_{\textrm{top}} = \pi_{\textrm{top}}) and that the initial data allows me to determine ztop z_{\textrm{top}} based on this pressure value. To initialize the atmosphere, first calculate πdeep, surf=zsurfztopr^2pRdTdz \pi_{\textrm{deep, surf}} = \int_{z_\textrm{surf}}^{z_\textrm{top}} \hat{r}^2 \frac{p}{R_d T} \intd{z} . In practice, this integral proceeds from the top of the atmosphere. I do the integral in zz 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\eta_{\textrm{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\pi_{\textrm{deep}}(\eta_{\cdot,k}) = A(\eta_{\cdot, k}) \pi_0 + B(\eta_{\cdot, k}) \pi_{\textrm{deep, surf}} , for ηint,k,ηmodel,k\eta_{\textrm{int}, k}, \eta_{\textrm{model}, k} Then perform a scan from the top of the atmosphere to get z(η,k)z(\eta_{\cdot, k}) that satisfy πdeep(η,k)=z(η,k)ztopr^2pRdTdz \pi_{\textrm{deep}}(\eta_{\cdot,k}) = \int_{z(\eta_{\cdot, k})}^{z_{\textrm{top}}} \hat{r}^2 \frac{p}{R_d T} \intd{z} Then set Tv,u,v,w,T_v, 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)z(\eta_{\cdot, k}), because determining the new πdeep(η,k)\pi_{\textrm{deep}}(\eta_{\cdot,k}) relies on knowledge of πdeep, surf\pi_{\textrm{deep, surf}}
  • Note that πdeep, surf \pi_{\textrm{deep, surf}} becomes ps_v in the code, and may be totally different from the physical pressure at the surface!

Parent post: