From e1a6bcd8fcc0d46681dbbc18513c795452c45d2f Mon Sep 17 00:00:00 2001 From: Denis Haumont <76622294+dhaumont@users.noreply.github.com> Date: Wed, 29 Jul 2026 10:21:52 +0200 Subject: [PATCH] Adds safety for single precision runs in mode_ice4_slow --- micro/mode_ice4_slow.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/micro/mode_ice4_slow.F90 b/micro/mode_ice4_slow.F90 index 562f21aa8..81a15143a 100644 --- a/micro/mode_ice4_slow.F90 +++ b/micro/mode_ice4_slow.F90 @@ -79,7 +79,7 @@ SUBROUTINE ICE4_SLOW(CST, PARAMI, ICEP, ICED, KPROMA, KSIZE, LDSOFT, OELEC, LDCO ! REAL, DIMENSION(KPROMA) :: ZCRIAUTI INTEGER :: JL -REAL :: ZREDGR,ZREDSN +REAL :: ZREDGR,ZREDSN,MAX_EXP_ARG REAL(KIND=JPHOOK) :: ZHOOK_HANDLE !------------------------------------------------------------------------------- ! @@ -92,6 +92,7 @@ SUBROUTINE ICE4_SLOW(CST, PARAMI, ICEP, ICED, KPROMA, KSIZE, LDSOFT, OELEC, LDCO ZREDGR = 1. ! Tuning of the deposition of graupel, 1. is ref. value ZREDSN = 1. ! Tuning of the deposition of snow, 1. is ref. value +MAX_EXP_ARG = 100.0 IF(PARAMI%LOCND2) THEN IF(.NOT. PARAMI%LMODICEDEP) THEN ZREDGR = ICEP%XFRMIN(39) ! Tuning factor, may be /= 1. @@ -110,7 +111,7 @@ SUBROUTINE ICE4_SLOW(CST, PARAMI, ICEP, ICED, KPROMA, KSIZE, LDSOFT, OELEC, LDCO IF(PT(JL)ICED%XRTMIN(2) .AND. LDCOMPUTE(JL)) THEN IF(.NOT. LDSOFT) THEN PRCHONI(JL) = MIN(1000.,ICEP%XHON*PRHODREF(JL)*PRCT(JL) & - *EXP( ICEP%XALPHA3*(PT(JL)-CST%XTT)-ICEP%XBETA3 )) + *EXP( MIN(MAX_EXP_ARG,ICEP%XALPHA3*(PT(JL)-CST%XTT)-ICEP%XBETA3) )) ENDIF ELSE PRCHONI(JL) = 0.