From 19d5833672a770d7f61fa22fd941fabfd5418361 Mon Sep 17 00:00:00 2001 From: Piotr Dziekan Date: Thu, 26 Mar 2026 21:41:28 +0900 Subject: [PATCH] minor fixes to issues detected on fugaku installation --- include/libcloudph++/common/ice_nucleation.hpp | 2 +- .../perparticle_nomixing_adaptive_sstp_cond.ipp | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/libcloudph++/common/ice_nucleation.hpp b/include/libcloudph++/common/ice_nucleation.hpp index fec85b0e..58340c84 100644 --- a/include/libcloudph++/common/ice_nucleation.hpp +++ b/include/libcloudph++/common/ice_nucleation.hpp @@ -34,7 +34,7 @@ namespace libcloudphxx if (INP_type == INP_t::mineral && A > real_t(1e-20)) { - return (real_t(273.15) + (real_t(8.934) - log(- log(real_t(1.) - rand) / A) ) / real_t(0.517)) * si::kelvin; + return real_t(real_t(273.15) + (real_t(8.934) - log(- log(real_t(1.) - rand) / A) ) / real_t(0.517)) * si::kelvin; } else { diff --git a/src/impl/condensation/perparticle/perparticle_nomixing_adaptive_sstp_cond.ipp b/src/impl/condensation/perparticle/perparticle_nomixing_adaptive_sstp_cond.ipp index c1c03db5..d175ba44 100644 --- a/src/impl/condensation/perparticle/perparticle_nomixing_adaptive_sstp_cond.ipp +++ b/src/impl/condensation/perparticle/perparticle_nomixing_adaptive_sstp_cond.ipp @@ -46,6 +46,10 @@ namespace libcloudphxx tpl_t tpl ) //noexcept { + #if !defined(__NVCC__) + using std::abs; + #endif + // copy values into local variables // variables that are not modified const real_t sstp_dlt_rv = thrust::get<5>(thrust::get<0>(tpl)); @@ -160,9 +164,9 @@ namespace libcloudphxx if(sstp_cond_try > 1) // check for convergence { - if((cuda::std::abs(drw2_new * 2 - drw2) <= sstp_cond_adapt_drw2_eps * rw2) // drw2 relative to rw2 converged - && cuda::std::abs(drw2 < sstp_cond_adapt_drw2_max * rw2)) // otherwise for small droplets (near activation?) drw2_new == 2*drw already for 2 substeps, but we ativate too many droplets - // if(cuda::std::abs(drw2_new * 2 - drw2) <= tol * drw2) // drw2 converged + if((abs(drw2_new * 2 - drw2) <= sstp_cond_adapt_drw2_eps * rw2) // drw2 relative to rw2 converged + && abs(drw2 < sstp_cond_adapt_drw2_max * rw2)) // otherwise for small droplets (near activation?) drw2_new == 2*drw already for 2 substeps, but we ativate too many droplets + // if(abs(drw2_new * 2 - drw2) <= tol * drw2) // drw2 converged { sstp_cond = sstp_cond_try / 2; _apply_noncond_perparticle_sstp_delta(-delta_fraction_applied); // revert last addition to get to a state after one step of converged number