From 0b08a4df87fdbd8d1f293bee0d1b3c3328189c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr> Date: Tue, 12 Dec 2023 13:26:35 +0100 Subject: [PATCH] S. Riette 12 Dec 2023: call nucleation from a loop to have bit-reproducibility on NEC by changing number of threads --- src/common/micro/mode_ice4_tendencies.F90 | 10 ++++++---- src/common/micro/rain_ice.F90 | 14 +++++++++----- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/common/micro/mode_ice4_tendencies.F90 b/src/common/micro/mode_ice4_tendencies.F90 index 816170d7f..1c986d392 100644 --- a/src/common/micro/mode_ice4_tendencies.F90 +++ b/src/common/micro/mode_ice4_tendencies.F90 @@ -134,10 +134,12 @@ ELSE ! !* 2. COMPUTES THE SLOW COLD PROCESS SOURCES ! -------------------------------------- - CALL ICE4_NUCLEATION(CST, PARAMI, ICEP, ICED, LDCOMPUTE(1:KSIZE), & - ZVART(1:KSIZE,ITH), PPRES(1:KSIZE), PRHODREF(1:KSIZE), PEXN(1:KSIZE), PLSFACT(1:KSIZE), ZT(1:KSIZE), & - ZVART(1:KSIZE,IRV), & - PCIT(1:KSIZE), PBU_INST(1:KSIZE, IRVHENI_MR)) + DO JL=1, KSIZE + CALL ICE4_NUCLEATION(CST, PARAMI, ICEP, ICED, LDCOMPUTE(JL), & + ZVART(JL,ITH), PPRES(JL), PRHODREF(JL), PEXN(JL), PLSFACT(JL), ZT(JL), & + ZVART(JL,IRV), & + PCIT(JL), PBU_INST(JL, IRVHENI_MR)) + ENDDO DO JL=1, KSIZE ZVART(JL,ITH)=ZVART(JL,ITH) + PBU_INST(JL, IRVHENI_MR)*PLSFACT(JL) ZT(JL) = ZVART(JL,ITH) * PEXN(JL) diff --git a/src/common/micro/rain_ice.F90 b/src/common/micro/rain_ice.F90 index 92a9ed01e..ef288e454 100644 --- a/src/common/micro/rain_ice.F90 +++ b/src/common/micro/rain_ice.F90 @@ -417,11 +417,15 @@ DO JK=IKTB,IKTE ENDIF ENDDO ENDDO -CALL ICE4_NUCLEATION(CST, PARAMI, ICEP, ICED, LLW3D(:,:), & - PTHT(:, :), PPABST(:, :), PRHODREF(:, :), & - PEXN(:, :), ZW3D(:, :), ZT(:, :), & - PRVT(:, :), & - PCIT(:, :), ZZ_RVHENI(:, :)) +DO JK=IKTB,IKTE + DO JIJ=IIJB,IIJE + CALL ICE4_NUCLEATION(CST, PARAMI, ICEP, ICED, LLW3D(JIJ, JK), & + PTHT(JIJ, JK), PPABST(JIJ, JK), PRHODREF(JIJ, JK), & + PEXN(JIJ, JK), ZW3D(JIJ, JK), ZT(JIJ, JK), & + PRVT(JIJ, JK), & + PCIT(JIJ, JK), ZZ_RVHENI(JIJ, JK)) + ENDDO +ENDDO DO JK = IKTB, IKTE DO JIJ=IIJB, IIJE ZZ_RVHENI(JIJ,JK) = MIN(PRVS(JIJ,JK), ZZ_RVHENI(JIJ,JK)/PTSTEP) -- GitLab