Source code for pycif.plugins.transforms.complex.moist2dry.adjoint
[docs]
def adjoint(
transf,
inout_datastore,
controlvect,
obsvect,
mapper,
di,
df,
mode,
runsubdir,
workdir,
onlyinit=False,
**kwargs
):
ddi = min(di, df)
if onlyinit:
return
# Constants
Rdry = 287.05
Rvapor = 461.5
R = 8.314462
beta = (Rvapor - Rdry) / Rvapor
trid_out = (transf.component[0], transf.parameter[0])
q = inout_datastore["inputs"][
("specific_humidity", transf.parameter[0])][ddi]["spec"]
dry_coef = (1 - beta * q / (1 - q)) \
* R / Rdry / transf.molmass * 1000 * 1e9
inout_datastore["inputs"][trid_out][ddi]["adj_out"] \
= inout_datastore["inputs"][trid_out][ddi]["adj_out"] * dry_coef