Skip to content

Commit 83bcc0c

Browse files
committed
Remove latent_heat_* in/out variables
Replace with constant scalars
1 parent 6319d8f commit 83bcc0c

33 files changed

+477
-544
lines changed

components/eamxx/src/physics/p3/CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ if (NOT EAMXX_ENABLE_GPU OR Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE OR Kokkos
4545
eti/p3_ice_relaxation_timescale.cpp
4646
eti/p3_ice_nucleation.cpp
4747
eti/p3_ice_cldliq_wet_growth.cpp
48-
eti/p3_get_latent_heat.cpp
4948
eti/p3_check_values.cpp
5049
eti/p3_incloud_mixingratios.cpp
5150
eti/p3_subgrid_variance_scaling.cpp
@@ -63,13 +62,13 @@ endif()
6362

6463
# List of dispatch source files if monolithic kernels are off
6564
set(P3_SK_SRCS
66-
disp/p3_check_values_impl_disp.cpp
67-
disp/p3_ice_sed_impl_disp.cpp
68-
disp/p3_main_impl_part1_disp.cpp
65+
disp/p3_check_values_impl_disp.cpp
66+
disp/p3_ice_sed_impl_disp.cpp
67+
disp/p3_main_impl_part1_disp.cpp
6968
disp/p3_main_impl_part3_disp.cpp
70-
disp/p3_cloud_sed_impl_disp.cpp
71-
disp/p3_main_impl_disp.cpp
72-
disp/p3_main_impl_part2_disp.cpp
69+
disp/p3_cloud_sed_impl_disp.cpp
70+
disp/p3_main_impl_disp.cpp
71+
disp/p3_main_impl_part2_disp.cpp
7372
disp/p3_rain_sed_impl_disp.cpp
7473
)
7574

components/eamxx/src/physics/p3/disp/p3_ice_sed_impl_disp.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ ::ice_sedimentation_disp(
4646

4747
// Ice sedimentation: (adaptive substepping)
4848
ice_sedimentation(
49-
ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(rhofaci, i), ekat::subview(cld_frac_i, i),
50-
ekat::subview(inv_dz, i), team, workspace, nk, ktop, kbot, kdir, dt, inv_dt,
49+
ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(rhofaci, i), ekat::subview(cld_frac_i, i),
50+
ekat::subview(inv_dz, i), team, workspace, nk, ktop, kbot, kdir, dt, inv_dt,
5151
ekat::subview(qi, i), ekat::subview(qi_incld, i), ekat::subview(ni, i), ekat::subview(ni_incld, i),
5252
ekat::subview(qm, i), ekat::subview(qm_incld, i), ekat::subview(bm, i), ekat::subview(bm_incld, i), ekat::subview(qi_tend, i), ekat::subview(ni_tend, i),
5353
ice_table_vals, precip_ice_surf(i), p3constants);
@@ -60,7 +60,6 @@ void Functions<Real,DefaultDevice>
6060
::homogeneous_freezing_disp(
6161
const uview_2d<const Spack>& T_atm,
6262
const uview_2d<const Spack>& inv_exner,
63-
const uview_2d<const Spack>& latent_heat_fusion,
6463
const Int& nj, const Int& nk, const Int& ktop, const Int& kbot, const Int& kdir,
6564
const uview_2d<Spack>& qc,
6665
const uview_2d<Spack>& nc,
@@ -89,7 +88,7 @@ ::homogeneous_freezing_disp(
8988

9089
// homogeneous freezing of cloud and rain
9190
homogeneous_freezing(
92-
ekat::subview(T_atm, i), ekat::subview(inv_exner, i), ekat::subview(latent_heat_fusion, i), team, nk, ktop, kbot, kdir,
91+
ekat::subview(T_atm, i), ekat::subview(inv_exner, i), team, nk, ktop, kbot, kdir,
9392
ekat::subview(qc, i), ekat::subview(nc, i), ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i),
9493
ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i), ekat::subview(th_atm, i));
9594

components/eamxx/src/physics/p3/disp/p3_main_impl_disp.cpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,6 @@ ::p3_main_internal_disp(
115115
{
116116
using ExeSpace = typename KT::ExeSpace;
117117

118-
view_2d<Spack> latent_heat_sublim("latent_heat_sublim", nj, nk), latent_heat_vapor("latent_heat_vapor", nj, nk), latent_heat_fusion("latent_heat_fusion", nj, nk);
119-
120-
get_latent_heat(nj, nk, latent_heat_vapor, latent_heat_sublim, latent_heat_fusion);
121-
122118
const Int nk_pack = ekat::npack<Spack>(nk);
123119

124120
// load constants into local vars
@@ -244,7 +240,7 @@ ::p3_main_internal_disp(
244240
p3_main_part1_disp(
245241
nj, nk, infrastructure.predictNc, infrastructure.prescribedCCN, infrastructure.dt,
246242
pres, dpres, dz, nc_nuceat_tend, nccn_prescribed, inv_exner, exner, inv_cld_frac_l, inv_cld_frac_i,
247-
inv_cld_frac_r, latent_heat_vapor, latent_heat_sublim, latent_heat_fusion,
243+
inv_cld_frac_r,
248244
T_atm, rho, inv_rho, qv_sat_l, qv_sat_i, qv_supersat_i, rhofacr,
249245
rhofaci, acn, qv, th, qc, nc, qr, nr, qi, ni, qm,
250246
bm, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld, nr_incld,
@@ -259,8 +255,7 @@ ::p3_main_internal_disp(
259255
lookup_tables.revap_table_vals, pres, dpres, dz, nc_nuceat_tend, inv_exner,
260256
exner, inv_cld_frac_l, inv_cld_frac_i, inv_cld_frac_r, ni_activated, inv_qc_relvar, cld_frac_i,
261257
cld_frac_l, cld_frac_r, qv_prev, t_prev, T_atm, rho, inv_rho, qv_sat_l, qv_sat_i, qv_supersat_i, rhofacr, rhofaci, acn,
262-
qv, th, qc, nc, qr, nr, qi, ni, qm, bm, latent_heat_vapor,
263-
latent_heat_sublim, latent_heat_fusion, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld,
258+
qv, th, qc, nc, qr, nr, qi, ni, qm, bm, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld,
264259
nr_incld, ni_incld, bm_incld, mu_c, nu, lamc, cdist, cdist1, cdistr,
265260
mu_r, lamr, logn0r, qv2qi_depos_tend, precip_total_tend, nevapr, qr_evap_tend,
266261
vap_liq_exchange, vap_ice_exchange, liq_ice_exchange,
@@ -301,7 +296,7 @@ ::p3_main_internal_disp(
301296

302297
// homogeneous freezing f cloud and rain
303298
homogeneous_freezing_disp(
304-
T_atm, inv_exner, latent_heat_fusion, nj, nk, ktop, kbot, kdir, qc, nc, qr, nr, qi,
299+
T_atm, inv_exner, nj, nk, ktop, kbot, kdir, qc, nc, qr, nr, qi,
305300
ni, qm, bm, th, nucleationPossible, hydrometeorsPresent);
306301

307302
//
@@ -311,7 +306,7 @@ ::p3_main_internal_disp(
311306
p3_main_part3_disp(
312307
nj, nk_pack, runtime_options.max_total_ni, lookup_tables.dnu_table_vals, lookup_tables.ice_table_vals, inv_exner, cld_frac_l, cld_frac_r, cld_frac_i,
313308
rho, inv_rho, rhofaci, qv, th, qc, nc, qr, nr, qi, ni,
314-
qm, bm, latent_heat_vapor, latent_heat_sublim, mu_c, nu, lamc, mu_r, lamr,
309+
qm, bm, mu_c, nu, lamc, mu_r, lamr,
315310
vap_liq_exchange, ze_rain, ze_ice, diag_vm_qi, diag_eff_radius_qi, diag_diam_qi,
316311
rho_qi, diag_equiv_reflectivity, diag_eff_radius_qc, diag_eff_radius_qr, nucleationPossible, hydrometeorsPresent,
317312
p3constants);

components/eamxx/src/physics/p3/disp/p3_main_impl_part1_disp.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ ::p3_main_part1_disp(
3131
const uview_2d<const Spack>& inv_cld_frac_l,
3232
const uview_2d<const Spack>& inv_cld_frac_i,
3333
const uview_2d<const Spack>& inv_cld_frac_r,
34-
const uview_2d<const Spack>& latent_heat_vapor,
35-
const uview_2d<const Spack>& latent_heat_sublim,
36-
const uview_2d<const Spack>& latent_heat_fusion,
3734
const uview_2d<Spack>& T_atm,
3835
const uview_2d<Spack>& rho,
3936
const uview_2d<Spack>& inv_rho,
@@ -73,17 +70,17 @@ ::p3_main_part1_disp(
7370
policy, KOKKOS_LAMBDA(const MemberType& team) {
7471

7572
const Int i = team.league_rank();
76-
73+
7774
p3_main_part1(
7875
team, nk, predictNc, prescribedCCN, dt,
7976
ekat::subview(pres, i), ekat::subview(dpres, i), ekat::subview(dz, i), ekat::subview(nc_nuceat_tend, i),
8077
ekat::subview(nccn_prescribed, i), ekat::subview(inv_exner, i), ekat::subview(exner, i), ekat::subview(inv_cld_frac_l, i),
81-
ekat::subview(inv_cld_frac_i, i), ekat::subview(inv_cld_frac_r, i), ekat::subview(latent_heat_vapor, i), ekat::subview(latent_heat_sublim, i),
82-
ekat::subview(latent_heat_fusion, i), ekat::subview(T_atm, i), ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(qv_sat_l, i),
78+
ekat::subview(inv_cld_frac_i, i), ekat::subview(inv_cld_frac_r, i),
79+
ekat::subview(T_atm, i), ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(qv_sat_l, i),
8380
ekat::subview(qv_sat_i, i), ekat::subview(qv_supersat_i, i), ekat::subview(rhofacr, i), ekat::subview(rhofaci, i), ekat::subview(acn, i),
8481
ekat::subview(qv, i), ekat::subview(th_atm, i), ekat::subview(qc, i), ekat::subview(nc, i), ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i),
8582
ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i), ekat::subview(qc_incld, i), ekat::subview(qr_incld, i), ekat::subview(qi_incld, i),
86-
ekat::subview(qm_incld, i), ekat::subview(nc_incld, i), ekat::subview(nr_incld, i), ekat::subview(ni_incld, i), ekat::subview(bm_incld, i),
83+
ekat::subview(qm_incld, i), ekat::subview(nc_incld, i), ekat::subview(nr_incld, i), ekat::subview(ni_incld, i), ekat::subview(bm_incld, i),
8784
nucleationPossible(i), hydrometeorsPresent(i), p3constants);
8885

8986
});

components/eamxx/src/physics/p3/disp/p3_main_impl_part2_disp.cpp

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ ::p3_main_part2_disp(
5959
const uview_2d<Spack>& ni,
6060
const uview_2d<Spack>& qm,
6161
const uview_2d<Spack>& bm,
62-
const uview_2d<Spack>& latent_heat_vapor,
63-
const uview_2d<Spack>& latent_heat_sublim,
64-
const uview_2d<Spack>& latent_heat_fusion,
6562
const uview_2d<Spack>& qc_incld,
6663
const uview_2d<Spack>& qr_incld,
6764
const uview_2d<Spack>& qi_incld,
@@ -104,25 +101,25 @@ ::p3_main_part2_disp(
104101

105102
const Int i = team.league_rank();
106103
if (!(nucleationPossible(i) || hydrometeorsPresent(i))) {
107-
return;
104+
return;
108105
}
109106

110107
// ------------------------------------------------------------------------------------------
111108
// main k-loop (for processes):
112109
p3_main_part2(
113110
team, nk_pack, max_total_ni, predictNc, do_prescribed_CCN, dt, inv_dt,
114-
dnu_table_vals, ice_table_vals, collect_table_vals, revap_table_vals,
111+
dnu_table_vals, ice_table_vals, collect_table_vals, revap_table_vals,
115112
ekat::subview(pres, i), ekat::subview(dpres, i), ekat::subview(dz, i), ekat::subview(nc_nuceat_tend, i), ekat::subview(inv_exner, i),
116-
ekat::subview(exner, i), ekat::subview(inv_cld_frac_l, i), ekat::subview(inv_cld_frac_i, i), ekat::subview(inv_cld_frac_r, i),
117-
ekat::subview(ni_activated, i), ekat::subview(inv_qc_relvar, i), ekat::subview(cld_frac_i, i), ekat::subview(cld_frac_l, i),
118-
ekat::subview(cld_frac_r, i), ekat::subview(qv_prev, i), ekat::subview(t_prev, i), ekat::subview(T_atm, i), ekat::subview(rho, i),
119-
ekat::subview(inv_rho, i), ekat::subview(qv_sat_l, i), ekat::subview(qv_sat_i, i), ekat::subview(qv_supersat_i, i), ekat::subview(rhofacr, i),
120-
ekat::subview(rhofaci, i), ekat::subview(acn, i), ekat::subview(qv, i), ekat::subview(th_atm, i), ekat::subview(qc, i), ekat::subview(nc, i),
121-
ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i), ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i),
122-
ekat::subview(latent_heat_vapor, i), ekat::subview(latent_heat_sublim, i), ekat::subview(latent_heat_fusion, i), ekat::subview(qc_incld, i),
123-
ekat::subview(qr_incld, i), ekat::subview(qi_incld, i), ekat::subview(qm_incld, i), ekat::subview(nc_incld, i), ekat::subview(nr_incld, i),
113+
ekat::subview(exner, i), ekat::subview(inv_cld_frac_l, i), ekat::subview(inv_cld_frac_i, i), ekat::subview(inv_cld_frac_r, i),
114+
ekat::subview(ni_activated, i), ekat::subview(inv_qc_relvar, i), ekat::subview(cld_frac_i, i), ekat::subview(cld_frac_l, i),
115+
ekat::subview(cld_frac_r, i), ekat::subview(qv_prev, i), ekat::subview(t_prev, i), ekat::subview(T_atm, i), ekat::subview(rho, i),
116+
ekat::subview(inv_rho, i), ekat::subview(qv_sat_l, i), ekat::subview(qv_sat_i, i), ekat::subview(qv_supersat_i, i), ekat::subview(rhofacr, i),
117+
ekat::subview(rhofaci, i), ekat::subview(acn, i), ekat::subview(qv, i), ekat::subview(th_atm, i), ekat::subview(qc, i), ekat::subview(nc, i),
118+
ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i), ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i),
119+
ekat::subview(qc_incld, i),
120+
ekat::subview(qr_incld, i), ekat::subview(qi_incld, i), ekat::subview(qm_incld, i), ekat::subview(nc_incld, i), ekat::subview(nr_incld, i),
124121
ekat::subview(ni_incld, i), ekat::subview(bm_incld, i), ekat::subview(mu_c, i), ekat::subview(nu, i), ekat::subview(lamc, i), ekat::subview(cdist, i),
125-
ekat::subview(cdist1, i), ekat::subview(cdistr, i), ekat::subview(mu_r, i), ekat::subview(lamr, i), ekat::subview(logn0r, i),
122+
ekat::subview(cdist1, i), ekat::subview(cdistr, i), ekat::subview(mu_r, i), ekat::subview(lamr, i), ekat::subview(logn0r, i),
126123
ekat::subview(qv2qi_depos_tend, i), ekat::subview(precip_total_tend, i),
127124
ekat::subview(nevapr, i), ekat::subview(qr_evap_tend, i), ekat::subview(vap_liq_exchange, i), ekat::subview(vap_ice_exchange, i), ekat::subview(liq_ice_exchange, i),
128125
ekat::subview(pratot, i), ekat::subview(prctot, i), hydrometeorsPresent(i), nk, p3constants);

components/eamxx/src/physics/p3/disp/p3_main_impl_part3_disp.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ ::p3_main_part3_disp(
3838
const uview_2d<Spack>& ni,
3939
const uview_2d<Spack>& qm,
4040
const uview_2d<Spack>& bm,
41-
const uview_2d<Spack>& latent_heat_vapor,
42-
const uview_2d<Spack>& latent_heat_sublim,
4341
const uview_2d<Spack>& mu_c,
4442
const uview_2d<Spack>& nu,
4543
const uview_2d<Spack>& lamc,
@@ -77,11 +75,11 @@ ::p3_main_part3_disp(
7775
//
7876
p3_main_part3(
7977
team, nk_pack, max_total_ni, dnu_table_vals, ice_table_vals, ekat::subview(inv_exner, i), ekat::subview(cld_frac_l, i), ekat::subview(cld_frac_r, i),
80-
ekat::subview(cld_frac_i, i), ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(rhofaci, i), ekat::subview(qv, i),
81-
ekat::subview(th_atm, i), ekat::subview(qc, i), ekat::subview(nc, i), ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i),
82-
ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i), ekat::subview(latent_heat_vapor, i), ekat::subview(latent_heat_sublim, i),
78+
ekat::subview(cld_frac_i, i), ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(rhofaci, i), ekat::subview(qv, i),
79+
ekat::subview(th_atm, i), ekat::subview(qc, i), ekat::subview(nc, i), ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i),
80+
ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i),
8381
ekat::subview(mu_c, i), ekat::subview(nu, i), ekat::subview(lamc, i), ekat::subview(mu_r, i), ekat::subview(lamr, i),
84-
ekat::subview(vap_liq_exchange, i), ekat::subview(ze_rain, i), ekat::subview(ze_ice, i), ekat::subview(diag_vm_qi, i), ekat::subview(diag_eff_radius_qi, i),
82+
ekat::subview(vap_liq_exchange, i), ekat::subview(ze_rain, i), ekat::subview(ze_ice, i), ekat::subview(diag_vm_qi, i), ekat::subview(diag_eff_radius_qi, i),
8583
ekat::subview(diag_diam_qi, i), ekat::subview(rho_qi, i), ekat::subview(diag_equiv_reflectivity, i), ekat::subview(diag_eff_radius_qc, i),
8684
ekat::subview(diag_eff_radius_qr, i), p3constants);
8785

components/eamxx/src/physics/p3/eti/p3_get_latent_heat.cpp

Lines changed: 0 additions & 14 deletions
This file was deleted.

components/eamxx/src/physics/p3/impl/p3_evaporate_rain_impl.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ ::evaporate_rain(
6969
const Spack& cld_frac_l, const Spack& cld_frac_r, const Spack& qv, const Spack& qv_prev,
7070
const Spack& qv_sat_l, const Spack& qv_sat_i, const Spack& ab, const Spack& abi,
7171
const Spack& epsr, const Spack& epsi_tot, const Spack& t_atm, const Spack& t_atm_prev,
72-
const Spack& latent_heat_sublim, const Spack& dqsdt, const Scalar& dt,
72+
const Spack& dqsdt, const Scalar& dt,
7373
Spack& qr2qv_evap_tend, Spack& nr_evap_tend,
7474
const Smask& context)
7575
{
@@ -92,6 +92,8 @@ ::evaporate_rain(
9292
constexpr Scalar QSMALL = C::QSMALL;
9393
constexpr Scalar Tmelt = C::Tmelt;
9494
constexpr Scalar inv_cp = 1/C::Cpair;
95+
constexpr Scalar latvap = C::LatVap;
96+
constexpr Scalar latice = C::LatIce;
9597

9698
//Compute absolute supersaturation.
9799
//Ignore the difference between clear-sky and cell-ave qv and T
@@ -133,9 +135,9 @@ ::evaporate_rain(
133135
const Smask not_freezing = !is_freezing && context;
134136
Spack eps_eff, A_c;
135137
if (is_freezing.any()){
136-
eps_eff.set(is_freezing,epsr + epsi_tot*(1 + latent_heat_sublim*inv_cp*dqsdt)/abi);
138+
eps_eff.set(is_freezing,epsr + epsi_tot*(1 + (latvap+latice)*inv_cp*dqsdt)/abi);
137139
A_c.set(is_freezing,(qv - qv_prev)*inv_dt - dqsdt*(t_atm-t_atm_prev)*inv_dt
138-
- (qv_sat_l - qv_sat_i)*(1 + latent_heat_sublim*inv_cp*dqsdt)/abi*epsi_tot );
140+
- (qv_sat_l - qv_sat_i)*(1 + (latvap+latice)*inv_cp*dqsdt)/abi*epsi_tot );
139141
}
140142
if (not_freezing.any()){
141143
eps_eff.set(not_freezing,epsr);

components/eamxx/src/physics/p3/impl/p3_get_latent_heat_impl.hpp

Lines changed: 0 additions & 24 deletions
This file was deleted.

components/eamxx/src/physics/p3/impl/p3_get_time_space_phys_variables_impl.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ template<typename S, typename D>
1111
KOKKOS_FUNCTION
1212
void Functions<S,D>
1313
::get_time_space_phys_variables(
14-
const Spack& T_atm, const Spack& pres, const Spack& rho, const Spack& latent_heat_vapor, const Spack& latent_heat_sublim,
14+
const Spack& T_atm, const Spack& pres, const Spack& rho,
1515
const Spack& qv_sat_l, const Spack& qv_sat_i, Spack& mu, Spack& dv, Spack& sc, Spack& dqsdt,
1616
Spack& dqsidt, Spack& ab, Spack& abi, Spack& kap, Spack& eii,
1717
const Smask& context)
@@ -23,15 +23,17 @@ ::get_time_space_phys_variables(
2323

2424
constexpr Scalar RV = C::RV;
2525
constexpr Scalar INV_CP = C::INV_CP;
26+
constexpr Scalar latvap = C::LatVap;
27+
constexpr Scalar latice = C::LatIce;
2628
constexpr Scalar tval1 = 253.15;
2729
constexpr Scalar tval2 = 273.15;
2830
constexpr Scalar dtval = 20; //this is tval2-tval1, but specifying here as int to be BFB with F90.
2931

3032
const auto dum = 1/(RV*square(T_atm));
31-
dqsdt.set(context, latent_heat_vapor*qv_sat_l*dum);
32-
dqsidt.set(context, latent_heat_sublim*qv_sat_i*dum);
33-
ab.set(context, 1+dqsdt*latent_heat_vapor*INV_CP);
34-
abi.set(context, 1+dqsidt*latent_heat_sublim*INV_CP);
33+
dqsdt.set(context, latvap*qv_sat_l*dum);
34+
dqsidt.set(context, (latvap+latice)*qv_sat_i*dum);
35+
ab.set(context, 1+dqsdt*latvap*INV_CP);
36+
abi.set(context, 1+dqsidt*(latvap+latice)*INV_CP);
3537
kap.set(context, sp(1.414e+3)*mu);
3638

3739
//very simple temperature dependent aggregation efficiency

0 commit comments

Comments
 (0)