From c69cbad3c0d4982df9f59ff1a27cc176c1243b60 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 24 Jan 2022 15:22:34 +0100
Subject: [PATCH] Philippe 24/01/2022: add MNH_BITREP for bit reproducibility

---
 src/MNH/p_abs.f90     | 12 ++++++++++--
 src/MNH/pressurez.f90 |  6 +++++-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/MNH/p_abs.f90 b/src/MNH/p_abs.f90
index 1d3e2d6e8..077bdf2f4 100644
--- a/src/MNH/p_abs.f90
+++ b/src/MNH/p_abs.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2022 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.
@@ -120,6 +120,10 @@ USE MODD_REF,         ONLY: LBOUSS
 USE MODE_ll
 USE MODE_REPRO_SUM
 !
+#ifdef MNH_BITREP
+USE MODI_BITREP
+#endif
+!
 IMPLICIT NONE
 !  
 !*       0.1   Declarations of dummy arguments :
@@ -239,7 +243,11 @@ IF ( CEQNSYS=='DUR' .OR. CEQNSYS=='MAE' ) THEN
       DO JJ = IJB,IJE
         DO JI = IIB,IIE
           ZMASSGUESS_2D(JI,JJ)  = ZMASSGUESS_2D(JI,JJ) +                          &
-             (PEXNREF(JI,JJ,JK)+PPHIT(JI,JJ,JK))**ZCVD_O_RD   &
+#ifndef MNH_BITREP
+                (PEXNREF(JI,JJ,JK)+PPHIT(JI,JJ,JK))**ZCVD_O_RD   &
+#else
+                BR_POW((PEXNREF(JI,JJ,JK)+PPHIT(JI,JJ,JK)),ZCVD_O_RD) &
+#endif
              * ZWORK(JI,JJ,JK) / PTHETAV(JI,JJ,JK)
           ZMASS_O_PI_2D(JI,JJ)  = ZMASS_O_PI_2D(JI,JJ) + ZWORK(JI,JJ,JK) / PTHETAV(JI,JJ,JK)
           ZWATERMASST_2D(JI,JJ) = ZWATERMASST_2D(JI,JJ) +       &
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index 86cbcf51f..c2217cc4d 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2022 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.
@@ -830,7 +830,11 @@ IF ((ZMAX_ll > 1.E-12) .AND. KTCOUNT >0 ) THEN
                  PRVREF, PEXNREF, ZPHIT, ZPHI0                       )
 !
   IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
+#ifndef MNH_BITREP
     PPABST(:,:,:)=XP00*(ZPHIT+PEXNREF)**(XCPD/XRD)
+#else
+    PPABST(:,:,:)=XP00*BR_POW((ZPHIT+PEXNREF),(XCPD/XRD))
+#endif
   ELSEIF(CEQNSYS=='LHE') THEN
     IF (.NOT. LOCEAN) THEN
       ! Deep atmosphere case : computing of PI fluctuation ; ZPHI0 (computed in P_ABS routine) is added 
-- 
GitLab