From d9a3b06ec95850a063930a70ead80d56412c0000 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 27 Jun 2024 11:14:57 +0200 Subject: [PATCH] Philippe 27/06/2024: PHYEX: mode_prandtl: bugfix for dry case --- src/PHYEX/turb/mode_prandtl.f90 | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/PHYEX/turb/mode_prandtl.f90 b/src/PHYEX/turb/mode_prandtl.f90 index 6158c5c4d..02904a59a 100644 --- a/src/PHYEX/turb/mode_prandtl.f90 +++ b/src/PHYEX/turb/mode_prandtl.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2024 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. @@ -551,18 +551,12 @@ DO JSV=1,KSV ! CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV) CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH) - CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM) ! !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PTH(:,:) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) CALL MZM_PHY(D,ZWORK1,ZWORK2) ! - !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) - ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:) - !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) - CALL MZM_PHY(D,ZWORK1,ZWORK3) -! !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) IF (KRR /= 0) THEN ZWORK1(:,:) = ZW1(:,:)*PETHETA(:,:) @@ -573,6 +567,13 @@ DO JSV=1,KSV ZWORK1(:,:) * ZWORK2(:,:) ! IF (KRR /= 0) THEN + CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM) + ! + !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) + ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:) + !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) + CALL MZM_PHY(D,ZWORK1,ZWORK3) + ! PRED2RS3(:,:,JSV) = PREDR1(:,:) * PREDS1(:,:,JSV) + & ZW1(:,:) * PEMOIST(:,:) * ZWORK3(:,:) ELSE @@ -605,10 +606,8 @@ DO JSV=1,KSV ! CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV) CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH) - CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM) CALL GY_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDYY,PDZZ,PDZY,ZGYMM_PSV) CALL GY_M_M_PHY(D,OFLAT,PTHLM,PDYY,PDZZ,PDZY,ZGYMM_PTH) - CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM) ! !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PTH(:,:) & @@ -616,13 +615,15 @@ DO JSV=1,KSV !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) CALL MZM_PHY(D,ZWORK1,ZWORK2) ! - !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) - ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:) & - + ZGYMM_PSV(:,:) * ZGYMM_PRM(:,:) - !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) - CALL MZM_PHY(D,ZWORK1,ZWORK3) - ! IF (KRR /= 0) THEN + CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM) + CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM) + ! + !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) + ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:) + ZGYMM_PSV(:,:) * ZGYMM_PRM(:,:) + !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) + CALL MZM_PHY(D,ZWORK1,ZWORK3) + ! !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) ZWORK1(:,:) = ZW1(:,:)*PETHETA(:,:) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) -- GitLab