diff --git a/src/MNH/lima_precip_scavenging.f90 b/src/MNH/lima_precip_scavenging.f90 index e4c895a3c13bb8735b355c1fa03ecad7a9fac339..6a74259a2bf4d5a5a03a5871449e516fa8cf1832 100644 --- a/src/MNH/lima_precip_scavenging.f90 +++ b/src/MNH/lima_precip_scavenging.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2021 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. @@ -97,8 +97,12 @@ END MODULE MODI_LIMA_PRECIP_SCAVENGING !! ------------- !! Original ??/??/13 !! -! P.Wautelet 28/05/2018: corrected truncated integer division (3/2 -> 1.5) -! P.Wautelet 03/06/2020: bugfix: correct array starts for PSVT and PRSVS +! P. Wautelet 28/05/2018: corrected truncated integer division (3/2 -> 1.5) +! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90 +! P. Wautelet 03/2020: use the new data structures and subroutines for budgets +! P. Wautelet 03/06/2020: bugfix: correct array starts for PSVT and PRSVS +! P. Wautelet 11/02/2021: bugfix: ZRTMIN was of wrong size (replaced by a scalar) !------------------------------------------------------------------------------- ! !* 0.DECLARATIONS @@ -675,7 +679,7 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZRRS, & ! Rain water m.r. source ZRHODREF, & ! RHO Dry REFerence ZZW ! Work array ! -REAL, DIMENSION(3) :: ZRTMIN +REAL :: ZRTMIN3 ! ! REAL :: ZVTRMAX, ZDZMIN, ZT @@ -732,11 +736,11 @@ END IF ! optimization by looking for locations where ! the precipitating fields are larger than a minimal value only !!! ! -ZRTMIN(:) = XRTMIN(:) / ZTSTEP +ZRTMIN3 = XRTMIN(3) / ZTSTEP ZZS(:,:,:) = PRAIN(:,:,:) DO JN = 1 , ISPLITR GSEDIM(:,:,:) = .FALSE. - GSEDIM(IIB:IIE,IJB:IJE,IKB:IKE) = ZZS(IIB:IIE,IJB:IJE,IKB:IKE) > ZRTMIN(3) + GSEDIM(IIB:IIE,IJB:IJE,IKB:IKE) = ZZS(IIB:IIE,IJB:IJE,IKB:IKE) > ZRTMIN3 ! ISEDIM = COUNTJV( GSEDIM(:,:,:),I1(:),I2(:),I3(:)) IF( ISEDIM >= 1 ) THEN @@ -764,14 +768,14 @@ DO JN = 1 , ISPLITR END DO IF( JN==1 ) THEN PINPAP(:,:) = ZWSED(:,:,IKB)* & - ( PSVT_MASS(:,:,IKB)/MAX(ZRTMIN(3),PRRT(:,:,IKB)) ) + ( PSVT_MASS(:,:,IKB)/MAX(ZRTMIN3,PRRT(:,:,IKB)) ) END IF DEALLOCATE(ZRHODREF) DEALLOCATE(ZRRS) DEALLOCATE(ZZW) IF( JN==ISPLITR ) THEN GSEDIM(:,:,:) = .FALSE. - GSEDIM(IIB:IIE,IJB:IJE,IKB:IKE) = ZZS(IIB:IIE,IJB:IJE,IKB:IKE) > ZRTMIN(3) + GSEDIM(IIB:IIE,IJB:IJE,IKB:IKE) = ZZS(IIB:IIE,IJB:IJE,IKB:IKE) > ZRTMIN3 ZWSED(:,:,:) = 0.0 WHERE( GSEDIM(:,:,:) ) ZWSED(:,:,:) = 1.0/ZTSTEP - PRAIN(:,:,:)/ZZS(:,:,:)