I’m working on verifying that our fv3-jedi and UFS cycling system is working correctly. Currently I’m trying to track down the update to hydrostatic pressure layer thickness (DELP) from analyzed surface pressure (ps), ak, and bk. Below are some observations and questions.
There used to be code in the fv3-jedi
VariableChange to perform the conversion, but it was removed in this commit, in favor of using
vader. So it seems like that variable change is still supported and applied.
I found some related code in VADER, but I do not know if my YAML is set up correctly to use it as desired.
There is a recipe in vader that converts from DELP to ps:
That conversion does not use ak and bk, because they are only needed in the inverse conversion. I did not notice an inverse method in that class though.
There is also a recipe that calculates DELP (air_pressure_thickness) from 3D P on levels (air_pressure_levels):
Also there is this one to convert from ps to
All of those recipes are listed in the FV3-JEDI cookbook:
AirPressureAtInterface_B is also in the cookbook, which converts from DELP to
Ultimately what I want is something like what was in the
Analysis2Model variable change originally, calculating DELP from ps, ak, and bk:
!Special case: ps in analysis, delp in model if (xana%has_field('ps')) then call xana%get_field('ps', xana_ps) call xmod%get_field('delp', xmod_delp) do k = 1,geom%npz xmod_delp(:,:,k) = (geom%ak(k+1)-geom%ak(k)) + (geom%bk(k+1)-geom%bk(k))*xana_ps(:,:,1) enddo failed = .false. endif
It seems like
AirPressureAtInterface_A followed by
AirPressureThickness_A gets me where I want to be. How do I achieve that in a
ConvertState application yaml? How can I ensure that
AirPressureAtInterface_B is not applied instead of
AirPressureAtInterface_A? If both
ps are in the input variables and
delp is in the output variables, will that do what I want?
Here is an abbreviated
variable change section of my
variable change: variable change name: Analysis2Model input variables: - ua - va - T - DELP - sphum - ice_wat - liq_wat - ps output variables: - u - v - ua - va - T - delp - sphum - ice_wat - liq_wat
Here is an abbreviated list of my
state variables: - ua - va - t - delp - ps - sphum - ice_wat - liq_wat