From 2528125a79d142c9c5a8613b81b92378e508d17f Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 25 Apr 2017 09:47:41 +0200 Subject: [PATCH] Philippe 25/04/2017: bug correction: allocate xxx_MAX arrays if LMEAN_FIELD + initialize them to lowest possible value --- src/MNH/ini_mean_field.f90 | 22 ++++++++++++------- src/MNH/ini_modeln.f90 | 44 ++++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/src/MNH/ini_mean_field.f90 b/src/MNH/ini_mean_field.f90 index a96189e7d..2a5e5eca1 100644 --- a/src/MNH/ini_mean_field.f90 +++ b/src/MNH/ini_mean_field.f90 @@ -47,7 +47,9 @@ END MODULE MODI_INI_MEAN_FIELD !! MODIFICATIONS !! ------------- !! Original 11/12/09 -!! 10/2016 (C.Lac) Add max values +!! Modifications 10/2016 (C.Lac) Add max values +!! 04/2017 (P. Wautelet) Initialize MAX variables to lowest possible value +!! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -60,6 +62,10 @@ USE MODD_PARAM_n IMPLICIT NONE ! +REAL :: ZMIN !Largest real negative value +! +ZMIN = -HUGE(ZMIN) +! MEAN_COUNT = 0 XUM_MEAN = 0.0 @@ -77,12 +83,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 +XUM_MAX = ZMIN +XVM_MAX = ZMIN +XWM_MAX = ZMIN +XTHM_MAX = ZMIN +XTEMPM_MAX = ZMIN +IF (CTURB /= 'NONE') XTKEM_MAX = ZMIN +XPABSM_MAX = ZMIN END SUBROUTINE INI_MEAN_FIELD diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index abf1559c5..15b752c7d 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -270,7 +270,8 @@ END MODULE MODI_INI_MODEL_n !! M.Leriche 2016 Chemistry !! 10/2016 M.Mazoyer New KHKO output fields !! 10/2016 (C.Lac) Add max values -!! F. Brosse Oct. 2016 add prod/loss terms computation for chemistry +!! F. Brosse Oct. 2016 add prod/loss terms computation for chemistry +!! Apr. 2017 (P. Wautelet) allocate MAX variables if LMEAN_FIELD and call INI_MEAN_FIELD !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -694,23 +695,30 @@ IF (LMEAN_FIELD) THEN ! MEAN_COUNT = 0 ! - ALLOCATE(XUM_MEAN(IIU,IJU,IKU)) ; XUM_MEAN = 0.0 - ALLOCATE(XVM_MEAN(IIU,IJU,IKU)) ; XVM_MEAN = 0.0 - ALLOCATE(XWM_MEAN(IIU,IJU,IKU)) ; XWM_MEAN = 0.0 - ALLOCATE(XTHM_MEAN(IIU,IJU,IKU)) ; XTHM_MEAN = 0.0 - ALLOCATE(XTEMPM_MEAN(IIU,IJU,IKU)) ; XTEMPM_MEAN = 0.0 - IF (CTURB/='NONE') THEN - ALLOCATE(XTKEM_MEAN(IIU,IJU,IKU)) - XTKEM_MEAN = 0.0 - END IF - ALLOCATE(XPABSM_MEAN(IIU,IJU,IKU)) ; XPABSM_MEAN = 0.0 -! - ALLOCATE(XU2_MEAN(IIU,IJU,IKU)) ; XU2_MEAN = 0.0 - ALLOCATE(XV2_MEAN(IIU,IJU,IKU)) ; XV2_MEAN = 0.0 - ALLOCATE(XW2_MEAN(IIU,IJU,IKU)) ; XW2_MEAN = 0.0 - ALLOCATE(XTH2_MEAN(IIU,IJU,IKU)) ; XTH2_MEAN = 0.0 - ALLOCATE(XTEMP2_MEAN(IIU,IJU,IKU)) ; XTEMP2_MEAN = 0.0 - ALLOCATE(XPABS2_MEAN(IIU,IJU,IKU)) ; XPABS2_MEAN = 0.0 + ALLOCATE(XUM_MEAN(IIU,IJU,IKU)) + ALLOCATE(XVM_MEAN(IIU,IJU,IKU)) + ALLOCATE(XWM_MEAN(IIU,IJU,IKU)) + ALLOCATE(XTHM_MEAN(IIU,IJU,IKU)) + ALLOCATE(XTEMPM_MEAN(IIU,IJU,IKU)) + IF (CTURB/='NONE') ALLOCATE(XTKEM_MEAN(IIU,IJU,IKU)) + ALLOCATE(XPABSM_MEAN(IIU,IJU,IKU)) +! + ALLOCATE(XU2_MEAN(IIU,IJU,IKU)) + ALLOCATE(XV2_MEAN(IIU,IJU,IKU)) + ALLOCATE(XW2_MEAN(IIU,IJU,IKU)) + ALLOCATE(XTH2_MEAN(IIU,IJU,IKU)) + ALLOCATE(XTEMP2_MEAN(IIU,IJU,IKU)) + ALLOCATE(XPABS2_MEAN(IIU,IJU,IKU)) +! + ALLOCATE(XUM_MAX(IIU,IJU,IKU)) + ALLOCATE(XVM_MAX(IIU,IJU,IKU)) + ALLOCATE(XWM_MAX(IIU,IJU,IKU)) + ALLOCATE(XTHM_MAX(IIU,IJU,IKU)) + ALLOCATE(XTEMPM_MAX(IIU,IJU,IKU)) + IF (CTURB/='NONE') ALLOCATE(XTKEM_MAX(IIU,IJU,IKU)) + ALLOCATE(XPABSM_MAX(IIU,IJU,IKU)) +! + CALL INI_MEAN_FIELD() ! END IF ! -- GitLab