diff --git a/parcel/parcel.jl b/parcel/parcel.jl index facc6f1dd6..2e610f6cd8 100644 --- a/parcel/parcel.jl +++ b/parcel/parcel.jl @@ -86,7 +86,7 @@ function parcel_model(dY, Y, p, t) dqi_dt_new_depo = dN_act_dt_depo * 4 / 3 * FT(π) * r_nuc^3 * ρ_ice / ρ_air end if "MohlerRate_Deposition" in ice_nucleation_modes - dN_act_dt_depo = MohlerDepositionRate(aerosol, ip.deposition, S_i, (dY[1] * ξ)) + dN_act_dt_depo = MohlerDepositionRate(aerosol, ip.deposition, S_i, T, (dY[1] * ξ)) dqi_dt_new_depo = dN_act_dt_depo * 4 / 3 * FT(π) * r_nuc^3 * ρ_ice / ρ_air end diff --git a/src/IceNucleation.jl b/src/IceNucleation.jl index 9640593dcb..8d44254700 100644 --- a/src/IceNucleation.jl +++ b/src/IceNucleation.jl @@ -58,6 +58,7 @@ function MohlerDepositionRate( dust::Union{CMP.DesertDust, CMP.ArizonaTestDust}, ip::CMP.Mohler2006, Si::FT, + T::FT, dSi_dt::FT, ) where {FT} diff --git a/test/heterogeneous_ice_nucleation_tests.jl b/test/heterogeneous_ice_nucleation_tests.jl index 9d45d90a06..c5cc279a23 100644 --- a/test/heterogeneous_ice_nucleation_tests.jl +++ b/test/heterogeneous_ice_nucleation_tests.jl @@ -48,6 +48,7 @@ function test_heterogeneous_ice_nucleation(FT) dust, ip.deposition, Si_low, + T, dSi_dt, ) == FT(0) end @@ -77,6 +78,32 @@ function test_heterogeneous_ice_nucleation(FT) Si_med, T_warm, ) + TT.@test CMI_het.MohlerDepositionRate( + dust, + ip.deposition, + Si_hgh, + T_warm, + dSi_dt, + ) > CMI_het.MohlerDepositionRate( + dust, + ip.deposition, + Si_med, + T_warm, + dSi_dt, + ) + TT.@test CMI_het.MohlerDepositionRate( + dust, + ip.deposition, + Si_med, + T_cold, + dSi_dt, + ) > CMI_het.MohlerDepositionRate( + dust, + ip.deposition, + Si_med, + T_warm, + dSi_dt, + ) end # no activation if saturation exceeds allowed value @@ -88,23 +115,27 @@ function test_heterogeneous_ice_nucleation(FT) Si_too_hgh, T, ) == FT(0) + TT.@test CMI_het.MohlerDepositionRate( + dust, + ip.deposition, + Si_too_hgh, + T, + dSi_dt, + ) == FT(0) end - TT.@test CMI_het.MohlerDepositionRate( - dust, - ip.deposition, - Si_too_hgh, - dSi_dt, - ) == FT(0) end # no activation if dSi_dt is negative for dust in [ATD, desert_dust] - TT.@test CMI_het.MohlerDepositionRate( - dust, - ip.deposition, - Si_low, - dSi_dt_negative - ) == FT(0) + for T in [T_warm, T_cold] + TT.@test CMI_het.MohlerDepositionRate( + dust, + ip.deposition, + Si_low, + T, + dSi_dt_negative, + ) == FT(0) + end end end diff --git a/test/performance_tests.jl b/test/performance_tests.jl index e6e2b7cc5a..4a8c9e481c 100644 --- a/test/performance_tests.jl +++ b/test/performance_tests.jl @@ -140,7 +140,7 @@ function benchmark_test(FT) ) bench_press( CMI_het.MohlerDepositionRate, - (desert_dust, ip.deposition, S_ice, dSi_dt), + (desert_dust, ip.deposition, S_ice, T, dSi_dt), 80, ) bench_press(CMI_het.deposition_J, (kaolinite, Delta_a_w), 230)