Skip to content

Commit c359584

Browse files
hassanbeydounAaronDonahue
authored andcommitted
Lin Lin identified a bug in computing rain drop effective diameter as well as a bug in multiplying the immersion freezing number rate by cld_frac_l rather than the ooverlapped fraction between liquid and ice. Both bugs are fixed here
1 parent 42d4c02 commit c359584

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

components/eam/src/physics/p3/scream/micro_p3.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ subroutine p3_main_part3(kts, kte, kbot, ktop, kdir, &
10301030
ze_rain(k) = nr(k)*(mu_r(k)+6._rtype)*(mu_r(k)+5._rtype)*(mu_r(k)+4._rtype)* &
10311031
(mu_r(k)+3._rtype)*(mu_r(k)+2._rtype)*(mu_r(k)+1._rtype)/bfb_pow(lamr(k), 6._rtype)
10321032
ze_rain(k) = max(ze_rain(k),1.e-22_rtype)
1033-
diag_eff_radius_qr(k) = 1.5_rtype/lamr(k)
1033+
diag_eff_radius_qr(k) = 0.5_rtype*(mu_r(k)+3._rtype)/lamr(k)
10341034
else
10351035
qv(k) = qv(k)+qr(k)
10361036
th_atm(k) = th_atm(k)-inv_exner(k)*qr(k)*latent_heat_vapor(k)*inv_cp
@@ -2839,7 +2839,7 @@ subroutine back_to_cell_average(cld_frac_l,cld_frac_r,cld_frac_i,
28392839
ni2nr_melt_tend = ni2nr_melt_tend*cld_frac_i ! Change in number due to melting
28402840
nc_collect_tend = nc_collect_tend*il_cldm ! Cloud # change due to collection of cld water by ice
28412841
ncshdc = ncshdc*il_cldm ! Number change due to shedding, occurs when ice and liquid interact
2842-
nc2ni_immers_freeze_tend = nc2ni_immers_freeze_tend*cld_frac_l ! Number change associated with freexzing of cld drops
2842+
nc2ni_immers_freeze_tend = nc2ni_immers_freeze_tend*il_cldm ! Number change associated with freexzing of cld drops
28432843
nr_collect_tend = nr_collect_tend*ir_cldm ! Rain number change due to collection from ice
28442844
ni_selfcollect_tend = ni_selfcollect_tend*cld_frac_i ! Ice self collection
28452845
qidep = qidep*cld_frac_i ! Vapor deposition to ice phase

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ ::back_to_cell_average(
6262
ni2nr_melt_tend.set(context, ni2nr_melt_tend * cld_frac_i); // Change in number due to melting
6363
nc_collect_tend.set(context, nc_collect_tend * il_cldm); // Cloud # change due to collection of cld water by ice
6464
ncshdc.set(context, ncshdc * il_cldm); // Number change due to shedding, occurs when ice and liquid interact
65-
nc2ni_immers_freeze_tend.set(context, nc2ni_immers_freeze_tend * cld_frac_l); // Number change associated with freexzing of cld drops
65+
nc2ni_immers_freeze_tend.set(context, nc2ni_immers_freeze_tend * il_cldm); // Number change associated with freexzing of cld drops
6666
nr_collect_tend.set(context, nr_collect_tend * ir_cldm); // Rain number change due to collection from ice
6767
ni_selfcollect_tend.set(context, ni_selfcollect_tend * cld_frac_i); // Ice self collection
6868
qv2qi_vapdep_tend.set(context, qv2qi_vapdep_tend * cld_frac_i); // Vapor deposition to ice phase

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ ::p3_main_part3(
118118
ze_rain(k).set(qr_gt_small, nr(k)*(mu_r(k)+6)*(mu_r(k)+5)*(mu_r(k)+4)*
119119
(mu_r(k)+3)*(mu_r(k)+2)*(mu_r(k)+1)/pow(lamr(k), sp(6.0))); // once f90 is gone, 6 can be int
120120
ze_rain(k).set(qr_gt_small, max(ze_rain(k), sp(1.e-22)));
121-
diag_eff_radius_qr(k).set(qr_gt_small, sp(1.5) / lamr(k));
121+
diag_eff_radius_qc(k).set(qr_gt_small, sp(0.5) * (mu_r(k) + 3) / lamr(k));
122122
}
123123

124124
if (qr_small.any()) {

0 commit comments

Comments
 (0)