From 7491dc1a7ca752c145ba9b7b30b6e81e030e0931 Mon Sep 17 00:00:00 2001
From: Gaelle TANGUY <gaelle.tanguy@meteo.fr>
Date: Tue, 15 Nov 2016 10:46:56 +0100
Subject: [PATCH] C.Lac 15/11/2016 : Add max values

---
 src/MNH/ini_mean_field.f90   | 12 ++++++++++-
 src/MNH/mean_field.f90       | 41 ++++++++++++++++++++++++++++++++++--
 src/MNH/modd_mean_fieldn.f90 | 31 ++++++++++++++++++++++++++-
 3 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/src/MNH/ini_mean_field.f90 b/src/MNH/ini_mean_field.f90
index 732d2a8e9..a96189e7d 100644
--- a/src/MNH/ini_mean_field.f90
+++ b/src/MNH/ini_mean_field.f90
@@ -47,6 +47,7 @@ END MODULE MODI_INI_MEAN_FIELD
 !!    MODIFICATIONS
 !!    -------------
 !!      Original        11/12/09
+!!                      10/2016 (C.Lac) Add max values
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -55,6 +56,7 @@ END MODULE MODI_INI_MEAN_FIELD
 !
 USE MODD_MEAN_FIELD_n
 USE MODD_MEAN_FIELD
+USE MODD_PARAM_n        
 
 IMPLICIT NONE
 !
@@ -65,7 +67,7 @@ XVM_MEAN  = 0.0
 XWM_MEAN  = 0.0
 XTHM_MEAN = 0.0
 XTEMPM_MEAN = 0.0
-XTKEM_MEAN = 0.0
+IF (CTURB /= 'NONE') XTKEM_MEAN = 0.0
 XPABSM_MEAN = 0.0
 
 XU2_MEAN  = 0.0
@@ -75,4 +77,12 @@ XTH2_MEAN = 0.0
 XTEMP2_MEAN = 0.0
 XPABS2_MEAN = 0.0
 
+XUM_MAX  = 0.0
+XVM_MAX  = 0.0
+XWM_MAX  = 0.0
+XTHM_MAX = 0.0
+XTEMPM_MAX = 0.0
+IF (CTURB /= 'NONE') XTKEM_MAX = 0.0
+XPABSM_MAX = 0.0
+
 END SUBROUTINE INI_MEAN_FIELD
diff --git a/src/MNH/mean_field.f90 b/src/MNH/mean_field.f90
index 083eb8dda..b2fd6e083 100755
--- a/src/MNH/mean_field.f90
+++ b/src/MNH/mean_field.f90
@@ -45,13 +45,16 @@ END MODULE MODI_MEAN_FIELD
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    07/2009
+!!      (C.Lac)     09/2016 Max values
 !!---------------------------------------------------------------
 !
 !
 !*       0.    DECLARATIONS
 !              ------------
 !
+USE MODE_ll
 USE MODD_MEAN_FIELD_n
+USE MODD_PARAM_n
 USE MODD_MEAN_FIELD
 USE MODD_CST
 
@@ -67,8 +70,22 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABST   ! variables
 !
 !*       0.2   Declarations of local variables :
 REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) ::  ZTEMPT
+INTEGER           :: IIU,IJU,IKU,IIB,IJB,IKB,IIE,IJE,IKE ! Arrays bounds
+INTEGER           :: JI,JJ,JK   ! Loop indexes
 !-----------------------------------------------------------------------
-!1. MEAN
+!
+!*       0.     ARRAYS BOUNDS INITIALIZATION
+!
+IIU=SIZE(PTHT,1)
+IJU=SIZE(PTHT,2)
+IKU=SIZE(PTHT,3)
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
+IKB=1+JPVEXT
+IKE=IKU-JPVEXT
+!
+!-----------------------------------------------------------------------
+!
+!*       1. MEAN
 !
    ZTEMPT = PTHT*(((PPABST)/XP00)**(XRD/XCPD))
 !
@@ -77,7 +94,7 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) ::  ZTEMPT
    XWM_MEAN  = PWT + XWM_MEAN
    XTHM_MEAN = PTHT + XTHM_MEAN
    XTEMPM_MEAN = ZTEMPT + XTEMPM_MEAN
-   XTKEM_MEAN = PTKET + XTKEM_MEAN
+   IF (CTURB/='NONE') XTKEM_MEAN = PTKET + XTKEM_MEAN
    XPABSM_MEAN = PPABST + XPABSM_MEAN
 !
    XU2_MEAN  = PUT**2 + XU2_MEAN 
@@ -89,4 +106,24 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) ::  ZTEMPT
 !
    MEAN_COUNT = MEAN_COUNT + 1
 !
+!
+!-----------------------------------------------------------------------
+!
+!*       2. MAX
+!
+  DO JK=IKB,IKE
+   DO JJ=IJB,IJE
+    DO JI=IIB,IIE
+      XUM_MAX(JI,JJ,JK) = MAX(XUM_MAX(JI,JJ,JK),PUT(JI,JJ,JK))
+      XVM_MAX(JI,JJ,JK) = MAX(XVM_MAX(JI,JJ,JK),PVT(JI,JJ,JK))
+      XWM_MAX(JI,JJ,JK) = MAX(XWM_MAX(JI,JJ,JK),PWT(JI,JJ,JK))
+      XTHM_MAX(JI,JJ,JK) = MAX(XTHM_MAX(JI,JJ,JK),PTHT(JI,JJ,JK))
+      XTEMPM_MAX(JI,JJ,JK) = MAX(XTEMPM_MAX(JI,JJ,JK),ZTEMPT(JI,JJ,JK))
+      IF (CTURB/='NONE') XTKEM_MAX(JI,JJ,JK) =  &
+              MAX(XTKEM_MAX(JI,JJ,JK),PTKET(JI,JJ,JK))
+      XPABSM_MAX(JI,JJ,JK) = MAX(XPABSM_MAX(JI,JJ,JK),PPABST(JI,JJ,JK))
+    END DO
+   END DO
+  END DO
+!
 END SUBROUTINE MEAN_FIELD
diff --git a/src/MNH/modd_mean_fieldn.f90 b/src/MNH/modd_mean_fieldn.f90
index b31126416..0bf49a62d 100644
--- a/src/MNH/modd_mean_fieldn.f90
+++ b/src/MNH/modd_mean_fieldn.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/modd_mean_fieldn.f90,v $ $Revision: 1.1.2.1.12.1 $
 ! MASDEV4_7 modd 2006/06/27 14:17:24
 !-----------------------------------------------------------------
 !     ###################
@@ -35,6 +35,7 @@
 !!    MODIFICATIONS
 !!    -------------
 !!      Original       01/07/11                      
+!!                      10/2016 (C.Lac) Add max values
 !!
 !-------------------------------------------------------------------------------
 !
@@ -56,6 +57,12 @@ TYPE MEAN_FIELD_t
   REAL, DIMENSION(:,:,:), POINTER :: XTEMP2_MEAN=>NULL() 
   REAL, DIMENSION(:,:,:), POINTER :: XPABS2_MEAN=>NULL()  
   
+  REAL, DIMENSION(:,:,:), POINTER :: XUM_MAX=>NULL(),XVM_MAX=>NULL(),XWM_MAX=>NULL()
+  REAL, DIMENSION(:,:,:), POINTER :: XTHM_MAX=>NULL()     
+  REAL, DIMENSION(:,:,:), POINTER :: XTEMPM_MAX=>NULL()  
+  REAL, DIMENSION(:,:,:), POINTER :: XTKEM_MAX=>NULL()   
+  REAL, DIMENSION(:,:,:), POINTER :: XPABSM_MAX=>NULL()
+
           
   INTEGER :: MEAN_COUNT
 
@@ -75,6 +82,12 @@ REAL, DIMENSION(:,:,:), POINTER :: XTH2_MEAN=>NULL()
 REAL, DIMENSION(:,:,:), POINTER :: XTEMP2_MEAN=>NULL() 
 REAL, DIMENSION(:,:,:), POINTER :: XPABS2_MEAN=>NULL()
 
+REAL, DIMENSION(:,:,:), POINTER :: XUM_MAX=>NULL(),XVM_MAX=>NULL(),XWM_MAX=>NULL()
+REAL, DIMENSION(:,:,:), POINTER :: XTHM_MAX=>NULL()
+REAL, DIMENSION(:,:,:), POINTER :: XTEMPM_MAX=>NULL() 
+REAL, DIMENSION(:,:,:), POINTER :: XTKEM_MAX=>NULL()
+REAL, DIMENSION(:,:,:), POINTER :: XPABSM_MAX=>NULL()
+
 INTEGER, POINTER :: MEAN_COUNT =>NULL()
 
 CONTAINS
@@ -91,6 +104,14 @@ MEAN_FIELD_MODEL(KFROM)%XTEMPM_MEAN=>XTEMPM_MEAN
 MEAN_FIELD_MODEL(KFROM)%XTKEM_MEAN=>XTKEM_MEAN
 MEAN_FIELD_MODEL(KFROM)%XPABSM_MEAN=>XPABSM_MEAN
 
+MEAN_FIELD_MODEL(KFROM)%XUM_MAX=>XUM_MAX
+MEAN_FIELD_MODEL(KFROM)%XVM_MAX=>XVM_MAX
+MEAN_FIELD_MODEL(KFROM)%XWM_MAX=>XWM_MAX
+MEAN_FIELD_MODEL(KFROM)%XTHM_MAX=>XTHM_MAX
+MEAN_FIELD_MODEL(KFROM)%XTEMPM_MAX=>XTEMPM_MAX
+MEAN_FIELD_MODEL(KFROM)%XTKEM_MAX=>XTKEM_MAX
+MEAN_FIELD_MODEL(KFROM)%XPABSM_MAX=>XPABSM_MAX
+
 MEAN_FIELD_MODEL(KFROM)%XU2_MEAN=>XU2_MEAN
 MEAN_FIELD_MODEL(KFROM)%XV2_MEAN=>XV2_MEAN
 MEAN_FIELD_MODEL(KFROM)%XW2_MEAN=>XW2_MEAN
@@ -108,6 +129,14 @@ XTEMPM_MEAN=>MEAN_FIELD_MODEL(KTO)%XTEMPM_MEAN
 XTKEM_MEAN=>MEAN_FIELD_MODEL(KTO)%XTKEM_MEAN
 XPABSM_MEAN=>MEAN_FIELD_MODEL(KTO)%XPABSM_MEAN
 
+XUM_MAX=>MEAN_FIELD_MODEL(KTO)%XUM_MAX
+XVM_MAX=>MEAN_FIELD_MODEL(KTO)%XVM_MAX
+XWM_MAX=>MEAN_FIELD_MODEL(KTO)%XWM_MAX
+XTHM_MAX=>MEAN_FIELD_MODEL(KTO)%XTHM_MAX
+XTEMPM_MAX=>MEAN_FIELD_MODEL(KTO)%XTEMPM_MAX
+XTKEM_MAX=>MEAN_FIELD_MODEL(KTO)%XTKEM_MAX
+XPABSM_MAX=>MEAN_FIELD_MODEL(KTO)%XPABSM_MAX
+
 XU2_MEAN=>MEAN_FIELD_MODEL(KTO)%XU2_MEAN
 XV2_MEAN=>MEAN_FIELD_MODEL(KTO)%XV2_MEAN
 XW2_MEAN=>MEAN_FIELD_MODEL(KTO)%XW2_MEAN
-- 
GitLab