From 97d3cd566f2ae3681f60f6db58cf329701061bb7 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Wed, 1 Feb 2023 16:50:10 +0100
Subject: [PATCH] Philippe 01/02/2023: fixes for MNH_REAL=4

---
 src/MNH/aer_wet_dep_kmt_warm.f90 |  6 ++++--
 src/MNH/firemodel.f90            |  3 ++-
 src/MNH/ground_paramn.f90        | 11 ++++++-----
 src/MNH/modd_fire.f90            | 17 ++++++++---------
 4 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/src/MNH/aer_wet_dep_kmt_warm.f90 b/src/MNH/aer_wet_dep_kmt_warm.f90
index 0b3ce1984..40083c0c1 100644
--- a/src/MNH/aer_wet_dep_kmt_warm.f90
+++ b/src/MNH/aer_wet_dep_kmt_warm.f90
@@ -1,4 +1,4 @@
-!ORILAM_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2007-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
@@ -787,6 +787,8 @@ END SUBROUTINE AER_WET_DEP_KMT_WARM_SEDIMENT
 !
 !*      0. DECLARATIONS
 !
+USE MODD_CST, ONLY: XMNH_HUGE
+
 IMPLICIT NONE
 !
 !-------------------------------------------------------------------------------
@@ -801,7 +803,7 @@ ZZRCT(:,:,:) = MAX(ZZRCT(:,:,:), KRTMIN(2)/2.)
 IF (PRESENT(PCRT)) THEN  ! 2-moment schemes
 !
 ! from lima_warm_coal.f90 (AUTO)
-  ZLBDC3(:,:,:) = 1.E45
+  ZLBDC3(:,:,:) = XMNH_HUGE
   ZLBDC(:,:,:)  = 1.E15
   WHERE (ZZRCT(:,:,:) > KRTMIN(2) .AND. PCCT(:,:,:) > XCTMIN(2))
     ZLBDC3(:,:,:) = KLBC * PCCT(:,:,:) / PRCT(:,:,:)
diff --git a/src/MNH/firemodel.f90 b/src/MNH/firemodel.f90
index 795372561..dd6d137d1 100644
--- a/src/MNH/firemodel.f90
+++ b/src/MNH/firemodel.f90
@@ -2170,6 +2170,7 @@ SUBROUTINE FIRE_RK( PLSPHI, PLSPHI1, PGRADLSPHIX, PGRADLSPHIY, PFIRERW, PFIREDT
   USE MODD_PARAMETERS,  ONLY : JPVEXT
   USE MODD_CONF,        ONLY : NHALO
   USE MODD_LUNIT_n,        ONLY: TLUOUT
+  USE MODD_PRECISION,      ONLY: MNHTIME
   !
   USE MODI_GET_HALO
   USE MODE_MPPDB
@@ -2221,7 +2222,7 @@ SUBROUTINE FIRE_RK( PLSPHI, PLSPHI1, PGRADLSPHIX, PGRADLSPHIY, PFIRERW, PFIREDT
   TYPE(LIST_ll), POINTER      :: TZFIELDS4_ll ! list of fields to exchange
   !
   REAL          :: XPRECISION
-  REAL, DIMENSION(2) :: ZGRADTIME1, ZGRADTIME2
+  REAL(KIND=MNHTIME), DIMENSION(2) :: ZGRADTIME1, ZGRADTIME2
   !-------------------------------------------------------------------------------
   !
   !*       0.     INITIALIZATION
diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index d50a7fbe5..d707016b9 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -179,6 +179,7 @@ USE MODD_CSTS_SALT,  ONLY : XMOLARWEIGHT_SALT
 USE MODD_CH_FLX_n, ONLY : XCHFLX
 USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG
 USE MODD_SURF_PAR,   ONLY: XUNDEF_SFX => XUNDEF
+USE MODD_PRECISION,      ONLY: MNHTIME
 !
 USE MODI_NORMAL_INTERPOL
 USE MODE_ROTATE_WIND, ONLY: ROTATE_WIND
@@ -386,11 +387,11 @@ REAL                              :: ZTIMEC
 INTEGER           :: ILUOUT         ! logical unit
 !
 ! Fire model
-REAL, DIMENSION(2)                    :: ZFIRETIME1, ZFIRETIME2           ! CPU time for Blaze perf profiling
-REAL, DIMENSION(2)                    :: ZGRADTIME1, ZGRADTIME2           ! CPU time for Blaze perf profiling
-REAL, DIMENSION(2)                    :: ZPROPAGTIME1, ZPROPAGTIME2       ! CPU time for Blaze perf profiling
-REAL, DIMENSION(2)                    :: ZFLUXTIME1, ZFLUXTIME2           ! CPU time for Blaze perf profiling
-REAL, DIMENSION(2)                    :: ZROSWINDTIME1, ZROSWINDTIME2     ! CPU time for Blaze perf profiling
+REAL(KIND=MNHTIME), DIMENSION(2)      :: ZFIRETIME1, ZFIRETIME2           ! CPU time for Blaze perf profiling
+REAL(KIND=MNHTIME), DIMENSION(2)      :: ZGRADTIME1, ZGRADTIME2           ! CPU time for Blaze perf profiling
+REAL(KIND=MNHTIME), DIMENSION(2)      :: ZPROPAGTIME1, ZPROPAGTIME2       ! CPU time for Blaze perf profiling
+REAL(KIND=MNHTIME), DIMENSION(2)      :: ZFLUXTIME1, ZFLUXTIME2           ! CPU time for Blaze perf profiling
+REAL(KIND=MNHTIME), DIMENSION(2)      :: ZROSWINDTIME1, ZROSWINDTIME2     ! CPU time for Blaze perf profiling
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZFIREFUELMAP                     ! Fuel map
 CHARACTER(LEN=7)                      :: YFUELMAPFILE                     ! Fuel Map file name
 TYPE(LIST_ll), POINTER                :: TZFIELDFIRE_ll                   ! list of fields to exchange
diff --git a/src/MNH/modd_fire.f90 b/src/MNH/modd_fire.f90
index a43f3b617..3685a5f29 100644
--- a/src/MNH/modd_fire.f90
+++ b/src/MNH/modd_fire.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2019-2023 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.
@@ -16,7 +16,6 @@
 !!
 !!**  IMPLICIT ARGUMENTS
 !!    ------------------
-!!      Module MODD_PARAMETERS : contains the maximum number of coupling files
 !!
 !!    REFERENCE
 !!    ---------
@@ -33,7 +32,7 @@
 !*       0.   DECLARATIONS
 !             ------------
 !
-USE MODD_PARAMETERS
+USE MODD_PRECISION, ONLY: MNHTIME
 !
 IMPLICIT NONE
 !
@@ -78,12 +77,12 @@ INTEGER		,	SAVE	::    NNBSMOKETRACER
 !
 ! Parameters not in the namelist
 !
-REAL              ,     SAVE  ::    XFIREMESHSIZE(2)        ! Fire Mesh size [dxf,dyf]
-REAL              ,     SAVE  ::    XFIREPERF(2)            ! Blaze fire model performance
-REAL              ,     SAVE  ::    XGRADPERF(2)            ! Grad computation performance
-REAL              ,     SAVE  ::    XROSWINDPERF(2)         ! ROS and wind interpolation computation performance
-REAL              ,     SAVE  ::    XPROPAGPERF(2)          ! Propagation computation performance
-REAL              ,     SAVE  ::    XFLUXPERF(2)            ! Heat fluxes computation performance
+REAL,               DIMENSION(2), SAVE ::  XFIREMESHSIZE    ! Fire Mesh size [dxf,dyf]
+REAL(KIND=MNHTIME), DIMENSION(2), SAVE :: XFIREPERF         ! Blaze fire model performance
+REAL(KIND=MNHTIME), DIMENSION(2), SAVE :: XGRADPERF         ! Grad computation performance
+REAL(KIND=MNHTIME), DIMENSION(2), SAVE :: XROSWINDPERF      ! ROS and wind interpolation computation performance
+REAL(KIND=MNHTIME), DIMENSION(2), SAVE :: XPROPAGPERF       ! Propagation computation performance
+REAL(KIND=MNHTIME), DIMENSION(2), SAVE :: XFLUXPERF         ! Heat fluxes computation performance
 LOGICAL           ,     SAVE  ::    LRESTA_ASE              ! Flag for using ASE in RESTA file
 LOGICAL           ,     SAVE  ::    LRESTA_AWC              ! Flag for using AWC in RESTA file
 LOGICAL           ,     SAVE  ::    LRESTA_EWAM             ! Flag for using EWAM in RESTA file
-- 
GitLab