From c838a9883ab1da655cb3290ee40725bbd3f9b614 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 19 Nov 2021 11:59:58 +0100 Subject: [PATCH] Philippe 19/11/2021: use MNHREAL32 instead of 4 in kind= to respect Fortran norm --- src/MNH/boundaries.f90 | 25 ++++++------ src/MNH/num_diff.f90 | 91 ++++++++++++++++++++++-------------------- src/MNH/rad_bound.f90 | 27 +++++++------ src/MNH/relaxation.f90 | 17 ++++---- 4 files changed, 84 insertions(+), 76 deletions(-) diff --git a/src/MNH/boundaries.f90 b/src/MNH/boundaries.f90 index 4aa484090..1b73df6c2 100644 --- a/src/MNH/boundaries.f90 +++ b/src/MNH/boundaries.f90 @@ -199,6 +199,7 @@ USE MODD_PARAMETERS USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, LBOUND, LWARM, LCOLD USE MODD_PARAM_n, ONLY : CELEC,CCLOUD USE MODD_PASPOL, ONLY : LPASPOL +USE MODD_PRECISION, ONLY: MNHREAL32 USE MODD_REF_n USE MODD_SALT, ONLY : LSALT @@ -424,17 +425,17 @@ END IF ! ! Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result ! -ZLBXVT(:,:,:) = real(ZLBXVT(:,:,:),kind=4) -ZLBXWT(:,:,:) = real(ZLBXWT(:,:,:),kind=4) -ZLBXTHT(:,:,:) = real(ZLBXTHT(:,:,:),kind=4) +ZLBXVT(:,:,:) = real(ZLBXVT(:,:,:),kind=MNHREAL32) +ZLBXWT(:,:,:) = real(ZLBXWT(:,:,:),kind=MNHREAL32) +ZLBXTHT(:,:,:) = real(ZLBXTHT(:,:,:),kind=MNHREAL32) IF ( SIZE(PTKET,1) /= 0 ) THEN - ZLBXTKET(:,:,:) = real(ZLBXTKET(:,:,:),kind=4) + ZLBXTKET(:,:,:) = real(ZLBXTKET(:,:,:),kind=MNHREAL32) END IF IF ( KRR > 0) THEN - ZLBXRT(:,:,:,:) = real(ZLBXRT(:,:,:,:),kind=4) + ZLBXRT(:,:,:,:) = real(ZLBXRT(:,:,:,:),kind=MNHREAL32) END IF IF ( KSV > 0) THEN - ZLBXSVT(:,:,:,:) = real(ZLBXSVT(:,:,:,:),kind=4) + ZLBXSVT(:,:,:,:) = real(ZLBXSVT(:,:,:,:),kind=MNHREAL32) END IF ! ============================================================ ! @@ -475,17 +476,17 @@ END IF ! ! Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result ! -ZLBYUT(:,:,:) = real(ZLBYUT(:,:,:),kind=4) -ZLBYWT(:,:,:) = real(ZLBYWT(:,:,:),kind=4) -ZLBYTHT(:,:,:) = real(ZLBYTHT(:,:,:),kind=4) +ZLBYUT(:,:,:) = real(ZLBYUT(:,:,:),kind=MNHREAL32) +ZLBYWT(:,:,:) = real(ZLBYWT(:,:,:),kind=MNHREAL32) +ZLBYTHT(:,:,:) = real(ZLBYTHT(:,:,:),kind=MNHREAL32) IF ( SIZE(PTKET,1) /= 0 ) THEN - ZLBYTKET(:,:,:) = real(ZLBYTKET(:,:,:),kind=4) + ZLBYTKET(:,:,:) = real(ZLBYTKET(:,:,:),kind=MNHREAL32) END IF IF ( KRR > 0) THEN - ZLBYRT(:,:,:,:) = real(ZLBYRT(:,:,:,:),kind=4) + ZLBYRT(:,:,:,:) = real(ZLBYRT(:,:,:,:),kind=MNHREAL32) END IF IF ( KSV > 0) THEN - ZLBYSVT(:,:,:,:) = real(ZLBYSVT(:,:,:,:),kind=4) + ZLBYSVT(:,:,:,:) = real(ZLBYSVT(:,:,:,:),kind=MNHREAL32) END IF ! ============================================================ ! diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90 index 5e3f8d260..688304a1a 100644 --- a/src/MNH/num_diff.f90 +++ b/src/MNH/num_diff.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -227,6 +227,7 @@ use modd_budget, only: lbudget_u, lbudget_v, lbudget_w, lbudget_th, lbudg tbudgets USE MODD_CONF USE MODD_PARAMETERS +use modd_precision, only: MNHREAL32 use mode_budget, only: Budget_store_init, Budget_store_end USE MODE_ll @@ -1120,18 +1121,18 @@ CASE ('CYCL') ! In that case one must have HLBCX(1) == HLBCX(2) TPHALO2%WEST(:,:) + PFIELDM(IW+1,:,:) & -4.*( PFIELDM(IW-2,:,:) + PFIELDM(IW,:,:) ) & +6.* PFIELDM(IW-1,:,:) & - - real(TPHALO2LS%WEST(:,:),kind=4) - real(PLSFIELD(IW+1,:,:),kind=4) & - +4.*( real(PLSFIELD(IW-2,:,:),kind=4) + real(PLSFIELD(IW,:,:),kind=4) ) & - -6.* real(PLSFIELD(IW-1,:,:),kind=4) ) + - real(TPHALO2LS%WEST(:,:),kind=MNHREAL32) - real(PLSFIELD(IW+1,:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(IW-2,:,:),kind=MNHREAL32) + real(PLSFIELD(IW,:,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(IW-1,:,:),kind=MNHREAL32) ) ! PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) - PRHODJ(IE+1,:,:) * & PDK4*( & PFIELDM(IE-1,:,:) + TPHALO2%EAST(:,:) & -4.*( PFIELDM(IE,:,:) + PFIELDM(IE+2,:,:) ) & +6.* PFIELDM(IE+1,:,:) & - - real(PLSFIELD(IE-1,:,:),kind=4) - real(TPHALO2LS%EAST(:,:),kind=4) & - +4.*( real(PLSFIELD(IE,:,:),kind=4) + real(PLSFIELD(IE+2,:,:),kind=4) ) & - -6.* real(PLSFIELD(IE+1,:,:),kind=4) ) + - real(PLSFIELD(IE-1,:,:),kind=MNHREAL32) - real(TPHALO2LS%EAST(:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(IE,:,:),kind=MNHREAL32) + real(PLSFIELD(IE+2,:,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(IE+1,:,:),kind=MNHREAL32) ) ! !!$ ENDIF ! @@ -1142,10 +1143,10 @@ CASE ('CYCL') ! In that case one must have HLBCX(1) == HLBCX(2) PDK4*( & PFIELDM(IW-2:IE-2,:,:) + PFIELDM(IW+2:IE+2,:,:) & -4.*( PFIELDM(IW-1:IE-1,:,:) + PFIELDM(IW+1:IE+1,:,:) ) & - +6.* PFIELDM(IW:IE,:,:) & - - real(PLSFIELD(IW-2:IE-2,:,:),kind=4) - real(PLSFIELD(IW+2:IE+2,:,:),kind=4) & - +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=4) + real(PLSFIELD(IW+1:IE+1,:,:),kind=4) ) & - -6.* real(PLSFIELD(IW:IE,:,:),kind=4) ) + +6.* PFIELDM(IW:IE,:,:) & + - real(PLSFIELD(IW-2:IE-2,:,:),kind=MNHREAL32) - real(PLSFIELD(IW+2:IE+2,:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=MNHREAL32) + real(PLSFIELD(IW+1:IE+1,:,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(IW:IE,:,:),kind=MNHREAL32) ) ! ELSE ! @@ -1215,7 +1216,8 @@ CASE ('OPEN','WALL','NEST') PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) + PRHODJ(IW-1,:,:) * & PDK2*( & PFIELDM(IW-2,:,:) -2.*PFIELDM(IW-1,:,:) + PFIELDM(IW,:,:) & - -real(PLSFIELD(IW-2,:,:),kind=4) +2.*real(PLSFIELD(IW-1,:,:),kind=4) - real(PLSFIELD(IW,:,:),kind=4) ) + - real(PLSFIELD(IW-2,:,:),kind=MNHREAL32) +2.*real(PLSFIELD(IW-1,:,:),kind=MNHREAL32) & + - real(PLSFIELD(IW,:,:),kind=MNHREAL32) ) ! !!$ ELSEIF (NHALO == 1) THEN ELSE @@ -1225,9 +1227,9 @@ CASE ('OPEN','WALL','NEST') TPHALO2%WEST(:,:) + PFIELDM(IW+1,:,:) & -4.*( PFIELDM(IW-2,:,:) + PFIELDM(IW,:,:) ) & +6.* PFIELDM(IW-1,:,:) & - - real(TPHALO2LS%WEST(:,:),kind=4) - real(PLSFIELD(IW+1,:,:),kind=4) & - +4.*( real(PLSFIELD(IW-2,:,:),kind=4) + real(PLSFIELD(IW,:,:),kind=4) ) & - -6.* real(PLSFIELD(IW-1,:,:),kind=4) ) + - real(TPHALO2LS%WEST(:,:),kind=MNHREAL32) - real(PLSFIELD(IW+1,:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(IW-2,:,:),kind=MNHREAL32) + real(PLSFIELD(IW,:,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(IW-1,:,:),kind=MNHREAL32) ) ! ENDIF ! @@ -1236,7 +1238,8 @@ CASE ('OPEN','WALL','NEST') PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) + PRHODJ(IE+1,:,:) * & PDK2*( & PFIELDM(IE,:,:) -2.*PFIELDM(IE+1,:,:) + PFIELDM(IE+2,:,:) & - - real(PLSFIELD(IE,:,:),kind=4) +2.*real(PLSFIELD(IE+1,:,:),kind=4) - real(PLSFIELD(IE+2,:,:),kind=4) ) + - real(PLSFIELD(IE,:,:),kind=MNHREAL32) +2.*real(PLSFIELD(IE+1,:,:),kind=MNHREAL32) & + - real(PLSFIELD(IE+2,:,:),kind=MNHREAL32) ) ! !!$ ELSEIF (NHALO == 1) THEN ELSE @@ -1246,9 +1249,9 @@ CASE ('OPEN','WALL','NEST') PFIELDM(IE-1,:,:) + TPHALO2%EAST(:,:) & -4.*( PFIELDM(IE ,:,:) + PFIELDM(IE+2,:,:) ) & +6.* PFIELDM(IE+1,:,:) & - - real(PLSFIELD(IE-1,:,:),kind=4) - real(TPHALO2LS%EAST(:,:),kind=4) & - +4.*( real(PLSFIELD(IE ,:,:),kind=4) + real(PLSFIELD(IE+2,:,:),kind=4) ) & - -6.* real(PLSFIELD(IE+1,:,:),kind=4) ) + - real(PLSFIELD(IE-1,:,:),kind=MNHREAL32) - real(TPHALO2LS%EAST(:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(IE ,:,:),kind=MNHREAL32) + real(PLSFIELD(IE+2,:,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(IE+1,:,:),kind=MNHREAL32) ) ! ENDIF @@ -1262,9 +1265,9 @@ CASE ('OPEN','WALL','NEST') PFIELDM(IW-2:IE-2,:,:) + PFIELDM(IW+2:IE+2,:,:) & -4.*( PFIELDM(IW-1:IE-1,:,:) + PFIELDM(IW+1:IE+1,:,:) ) & +6.* PFIELDM(IW:IE,:,:) & - - real(PLSFIELD(IW-2:IE-2,:,:),kind=4) - real(PLSFIELD(IW+2:IE+2,:,:),kind=4) & - +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=4) + real(PLSFIELD(IW+1:IE+1,:,:),kind=4) ) & - -6.* real(PLSFIELD(IW:IE,:,:),kind=4) ) + - real(PLSFIELD(IW-2:IE-2,:,:),kind=MNHREAL32) - real(PLSFIELD(IW+2:IE+2,:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=MNHREAL32) + real(PLSFIELD(IW+1:IE+1,:,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(IW:IE,:,:),kind=MNHREAL32) ) ! ELSE ! @@ -1353,18 +1356,18 @@ IF ( .NOT. L2D ) THEN TPHALO2%SOUTH(:,:) + PFIELDM(:,IS+1,:) & -4.*( PFIELDM(:,IS-2,:) + PFIELDM(:,IS,:) ) & +6.* PFIELDM(:,IS-1,:) & - - real(TPHALO2LS%SOUTH(:,:),kind=4) - real(PLSFIELD(:,IS+1,:),kind=4) & - +4.*( real(PLSFIELD(:,IS-2,:),kind=4) + real(PLSFIELD(:,IS,:),kind=4) ) & - -6.* real(PLSFIELD(:,IS-1,:),kind=4) ) + - real(TPHALO2LS%SOUTH(:,:),kind=MNHREAL32) - real(PLSFIELD(:,IS+1,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(:,IS-2,:),kind=MNHREAL32) + real(PLSFIELD(:,IS,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(:,IS-1,:),kind=MNHREAL32) ) ! PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) - PRHODJ(:,IN+1,:) * & PDK4*( & PFIELDM(:,IN-1,:) + TPHALO2%NORTH(:,:) & -4.*( PFIELDM(:,IN,:) + PFIELDM(:,IN+2,:) ) & +6.* PFIELDM(:,IN+1,:) & - - real(PLSFIELD(:,IN-1,:),kind=4) - real(TPHALO2LS%NORTH(:,:),kind=4) & - +4.*( real(PLSFIELD(:,IN,:),kind=4) + real(PLSFIELD(:,IN+2,:),kind=4) ) & - -6.* real(PLSFIELD(:,IN+1,:),kind=4) ) + - real(PLSFIELD(:,IN-1,:),kind=MNHREAL32) - real(TPHALO2LS%NORTH(:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(:,IN,:),kind=MNHREAL32) + real(PLSFIELD(:,IN+2,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(:,IN+1,:),kind=MNHREAL32) ) ! !!$ ENDIF ! @@ -1376,9 +1379,9 @@ IF ( .NOT. L2D ) THEN PFIELDM(:,IS-2:IN-2,:) + PFIELDM(:,IS+2:IN+2,:) & -4.*( PFIELDM(:,IS-1:IN-1,:) + PFIELDM(:,IS+1:IN+1,:) ) & +6.* PFIELDM(:,IS:IN,:) & - - real(PLSFIELD(:,IS-2:IN-2,:),kind=4) - real(PLSFIELD(:,IS+2:IN+2,:),kind=4) & - +4.*( real(PLSFIELD(:,IS-1:IN-1,:),kind=4) + real(PLSFIELD(:,IS+1:IN+1,:),kind=4) ) & - -6.* real(PLSFIELD(:,IS:IN,:),kind=4) ) + - real(PLSFIELD(:,IS-2:IN-2,:),kind=MNHREAL32) - real(PLSFIELD(:,IS+2:IN+2,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(:,IS-1:IN-1,:),kind=MNHREAL32) + real(PLSFIELD(:,IS+1:IN+1,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(:,IS:IN,:),kind=MNHREAL32) ) ! ELSE ! @@ -1448,8 +1451,9 @@ IF ( .NOT. L2D ) THEN ! PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) + PRHODJ(:,IS-1,:) * & PDK2*( & - PFIELDM(:,IS-2,:) -2.*PFIELDM(:,IS-1,:) + PFIELDM(:,IS,:) & - -real(PLSFIELD(:,IS-2,:),kind=4) +2.*real(PLSFIELD(:,IS-1,:),kind=4) - real(PLSFIELD(:,IS,:),kind=4) ) + PFIELDM(:,IS-2,:) -2.*PFIELDM(:,IS-1,:) + PFIELDM(:,IS,:) & + - real(PLSFIELD(:,IS-2,:),kind=MNHREAL32) +2.*real(PLSFIELD(:,IS-1,:),kind=MNHREAL32) & + - real(PLSFIELD(:,IS,:),kind=MNHREAL32) ) ! !!$ ELSEIF (NHALO == 1) THEN ELSE @@ -1459,9 +1463,9 @@ IF ( .NOT. L2D ) THEN TPHALO2%SOUTH(:,:) + PFIELDM(:,IS+1,:) & -4.*( PFIELDM(:,IS-2,:) + PFIELDM(:,IS,:) ) & +6.* PFIELDM(:,IS-1,:) & - - real(TPHALO2LS%SOUTH(:,:),kind=4) - real(PLSFIELD(:,IS+1,:),kind=4) & - +4.*( real(PLSFIELD(:,IS-2,:),kind=4) + real(PLSFIELD(:,IS,:),kind=4) ) & - -6.* real(PLSFIELD(:,IS-1,:),kind=4) ) + - real(TPHALO2LS%SOUTH(:,:),kind=MNHREAL32) - real(PLSFIELD(:,IS+1,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(:,IS-2,:),kind=MNHREAL32) + real(PLSFIELD(:,IS,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(:,IS-1,:),kind=MNHREAL32) ) ! ENDIF ! @@ -1470,7 +1474,8 @@ IF ( .NOT. L2D ) THEN PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) + PRHODJ(:,IN+1,:) * & PDK2*( & PFIELDM(:,IN,:) -2.*PFIELDM(:,IN+1,:) + PFIELDM(:,IN+2,:) & - -real(PLSFIELD(:,IN,:),kind=4) +2.*real(PLSFIELD(:,IN+1,:),kind=4) - real(PLSFIELD(:,IN+2,:),kind=4) ) + - real(PLSFIELD(:,IN,:),kind=MNHREAL32) +2.*real(PLSFIELD(:,IN+1,:),kind=MNHREAL32) & + - real(PLSFIELD(:,IN+2,:),kind=MNHREAL32) ) ! !!$ ELSEIF (NHALO == 1) THEN ELSE @@ -1480,9 +1485,9 @@ IF ( .NOT. L2D ) THEN PFIELDM(:,IN-1,:) + TPHALO2%NORTH(:,:) & -4.*( PFIELDM(:,IN,:) + PFIELDM(:,IN+2,:) ) & +6.* PFIELDM(:,IN+1,:) & - - real(PLSFIELD(:,IN-1,:),kind=4) - real(TPHALO2LS%NORTH(:,:),kind=4) & - +4.*( real(PLSFIELD(:,IN,:),kind=4) + real(PLSFIELD(:,IN+2,:),kind=4) ) & - -6.* real(PLSFIELD(:,IN+1,:),kind=4) ) + - real(PLSFIELD(:,IN-1,:),kind=MNHREAL32) - real(TPHALO2LS%NORTH(:,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(:,IN,:),kind=MNHREAL32) + real(PLSFIELD(:,IN+2,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(:,IN+1,:),kind=MNHREAL32) ) ! ENDIF ! @@ -1496,9 +1501,9 @@ IF ( .NOT. L2D ) THEN PFIELDM(:,IS-2:IN-2,:) + PFIELDM(:,IS+2:IN+2,:) & -4.*( PFIELDM(:,IS-1:IN-1,:) + PFIELDM(:,IS+1:IN+1,:) ) & +6.* PFIELDM(:,IS:IN,:) & - - real(PLSFIELD(:,IS-2:IN-2,:),kind=4) - real(PLSFIELD(:,IS+2:IN+2,:),kind=4) & - +4.*( real(PLSFIELD(:,IS-1:IN-1,:),kind=4) + real(PLSFIELD(:,IS+1:IN+1,:),kind=4) ) & - -6.* real(PLSFIELD(:,IS:IN,:),kind=4) ) + - real(PLSFIELD(:,IS-2:IN-2,:),kind=MNHREAL32) - real(PLSFIELD(:,IS+2:IN+2,:),kind=MNHREAL32) & + +4.*( real(PLSFIELD(:,IS-1:IN-1,:),kind=MNHREAL32) + real(PLSFIELD(:,IS+1:IN+1,:),kind=MNHREAL32) ) & + -6.* real(PLSFIELD(:,IS:IN,:),kind=MNHREAL32) ) ! ELSE diff --git a/src/MNH/rad_bound.f90 b/src/MNH/rad_bound.f90 index e023abde4..22c423583 100644 --- a/src/MNH/rad_bound.f90 +++ b/src/MNH/rad_bound.f90 @@ -159,9 +159,10 @@ END MODULE MODI_RAD_BOUND !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF +USE MODD_CONF USE MODD_CTURB USE MODD_PARAMETERS +USE MODD_PRECISION, ONLY: MNHREAL32 USE MODD_RECYCL_PARAM_n, ONLY: LRECYCL, XRCOEFF ! USE MODE_ll @@ -321,9 +322,9 @@ SELECT CASE ( HLBCX(1) ) ! ! Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result ! - ZLBEU = real(ZLBEU,kind=4) - ZLBGU = real(ZLBGU,kind=4) - ZLBXU = real(ZLBXU,kind=4) + ZLBEU = real(ZLBEU,kind=MNHREAL32) + ZLBGU = real(ZLBGU,kind=MNHREAL32) + ZLBXU = real(ZLBXU,kind=MNHREAL32) ! ============================================================ PRUS (IIB,:,:) =(PRHODJ(IIB-1,:,:) + PRHODJ(IIB,:,:)) * 0.5 * & ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & @@ -406,9 +407,9 @@ SELECT CASE ( HLBCX(2) ) ! ! Reproductibility for RSTART -> truncate ZLB to real(knd=4) ! - ZLBEU = real(ZLBEU,kind=4) - ZLBGU = real(ZLBGU,kind=4) - ZLBXU = real(ZLBXU,kind=4) + ZLBEU = real(ZLBEU,kind=MNHREAL32) + ZLBGU = real(ZLBGU,kind=MNHREAL32) + ZLBXU = real(ZLBXU,kind=MNHREAL32) ! ============================================================ PRUS (IIE+1,:,:) =(PRHODJ(IIE+1,:,:) + PRHODJ(IIE,:,:)) * 0.5 * & ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & @@ -490,9 +491,9 @@ SELECT CASE ( HLBCY(1) ) ! ! Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result ! - ZLBEV = real(ZLBEV,kind=4) - ZLBGV = real(ZLBGV,kind=4) - ZLBYV = real(ZLBYV,kind=4) + ZLBEV = real(ZLBEV,kind=MNHREAL32) + ZLBGV = real(ZLBGV,kind=MNHREAL32) + ZLBYV = real(ZLBYV,kind=MNHREAL32) ! ============================================================ PRVS (:,IJB,:) =(PRHODJ(:,IJB-1,:) + PRHODJ(:,IJB,:)) * 0.5 * & ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & @@ -575,9 +576,9 @@ SELECT CASE ( HLBCY(2) ) ! ! Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result ! - ZLBEV = real(ZLBEV,kind=4) - ZLBGV = real(ZLBGV,kind=4) - ZLBYV = real(ZLBYV,kind=4) + ZLBEV = real(ZLBEV,kind=MNHREAL32) + ZLBGV = real(ZLBGV,kind=MNHREAL32) + ZLBYV = real(ZLBYV,kind=MNHREAL32) ! ============================================================ PRVS (:,IJE+1,:) =(PRHODJ(:,IJE+1,:) + PRHODJ(:,IJE,:)) * 0.5 * & ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & diff --git a/src/MNH/relaxation.f90 b/src/MNH/relaxation.f90 index 0af96bf75..69e130288 100644 --- a/src/MNH/relaxation.f90 +++ b/src/MNH/relaxation.f90 @@ -273,6 +273,7 @@ USE MODD_CONF, only: cconf USE MODD_ELEC_DESCR, ONLY: LRELAX2FW_ION USE MODD_NSV, ONLY: NSV_ELECBEG, NSV_ELECEND USE MODD_PARAMETERS, only: jphext, jpvext +USE MODD_PRECISION, ONLY: MNHREAL32 use mode_budget, only: Budget_store_init, Budget_store_end USE MODE_EXTRAPOL, only: Extrapol @@ -517,16 +518,16 @@ IF(OVE_RELAX) THEN ! DO JK = KALBOT, IKE+1 ! - PRUS(:,:,JK) = PRUS(:,:,JK) - ZKV(JK) *(PUT(:,:,JK) -real(PLSUM(:,:,JK),kind=4) )& + PRUS(:,:,JK) = PRUS(:,:,JK) - ZKV(JK) *(PUT(:,:,JK) -real(PLSUM(:,:,JK),kind=MNHREAL32) )& * ZRHODJU(:,:,JK) ! - PRVS(:,:,JK) = PRVS(:,:,JK) - ZKV(JK) *(PVT(:,:,JK) -real(PLSVM(:,:,JK),kind=4) )& + PRVS(:,:,JK) = PRVS(:,:,JK) - ZKV(JK) *(PVT(:,:,JK) -real(PLSVM(:,:,JK),kind=MNHREAL32) )& * ZRHODJV(:,:,JK) ! - PRWS(:,:,JK) = PRWS(:,:,JK) - ZKVW(JK) *(PWT(:,:,JK) -real(PLSWM(:,:,JK),kind=4) )& + PRWS(:,:,JK) = PRWS(:,:,JK) - ZKVW(JK) *(PWT(:,:,JK) -real(PLSWM(:,:,JK),kind=MNHREAL32) )& * ZRHODJW(:,:,JK) ! - PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKV(JK) *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=4) )& + PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKV(JK) *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=MNHREAL32) )& * PRHODJ(:,:,JK) ! END DO @@ -554,16 +555,16 @@ IF(OVE_RELAX_GRD) THEN ! DO JK = 1,KALBAS ! - PRUS(:,:,JK) = PRUS(:,:,JK) - ZKVBAS(JK) *(PUT(:,:,JK) -real(PLSUM(:,:,JK),kind=4) )& + PRUS(:,:,JK) = PRUS(:,:,JK) - ZKVBAS(JK) *(PUT(:,:,JK) -real(PLSUM(:,:,JK),kind=MNHREAL32) )& * ZRHODJU(:,:,JK) ! - PRVS(:,:,JK) = PRVS(:,:,JK) - ZKVBAS(JK) *(PVT(:,:,JK) -real(PLSVM(:,:,JK),kind=4) )& + PRVS(:,:,JK) = PRVS(:,:,JK) - ZKVBAS(JK) *(PVT(:,:,JK) -real(PLSVM(:,:,JK),kind=MNHREAL32) )& * ZRHODJV(:,:,JK) ! - PRWS(:,:,JK) = PRWS(:,:,JK) - ZKVWBAS(JK) *(PWT(:,:,JK) -real(PLSWM(:,:,JK),kind=4) )& + PRWS(:,:,JK) = PRWS(:,:,JK) - ZKVWBAS(JK) *(PWT(:,:,JK) -real(PLSWM(:,:,JK),kind=MNHREAL32) )& * ZRHODJW(:,:,JK) ! - PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKVBAS(JK) *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=4) )& + PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKVBAS(JK) *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=MNHREAL32) )& * PRHODJ(:,:,JK) ! END DO -- GitLab