From 4faf092d3fd3f4bd1032d953877a7ad86702b69b Mon Sep 17 00:00:00 2001 From: Gaelle Tanguy <gaelle.tanguy@meteo.fr> Date: Thu, 10 Apr 2014 14:30:29 +0000 Subject: [PATCH] Christine 10/04/2014 : introduction of XCARPKMAX as the relaxation for Carpenter equation (before it was embedded in XRIMKMAX) --- src/MNH/modd_lbcn.f90 | 6 ++++++ src/MNH/modeln.f90 | 32 ++++++++--------------------- src/MNH/modn_lbcn.f90 | 8 ++++++-- src/MNH/rad_bound.f90 | 48 +++++++++++++++++++++---------------------- 4 files changed, 45 insertions(+), 49 deletions(-) diff --git a/src/MNH/modd_lbcn.f90 b/src/MNH/modd_lbcn.f90 index 1ff1f68c9..f993662ef 100644 --- a/src/MNH/modd_lbcn.f90 +++ b/src/MNH/modd_lbcn.f90 @@ -39,6 +39,8 @@ !! 15/06/95 (J.Stein) add EPS related variables !! 29/04/02 (P.Jabouille) remove useless variables !! 26/06/13 (C.Lac) Introduction of CPHASE_PBL +!! 01/04/14 (C.Lac) Introduction of CARPKMAX different to +!! RIMKMAX !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -67,6 +69,8 @@ TYPE LBC_t ! velocity if constant REAL :: XCPHASE_PBL ! prescribed value of the phase ! velocity in the PBL if constant + REAL :: XCARPKMAX ! relaxation coefficient for + !Carpenter, different to XRIMKMAX END TYPE LBC_t TYPE(LBC_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: LBC_MODEL @@ -78,6 +82,7 @@ INTEGER, DIMENSION(:), POINTER :: NLBLX=>NULL() INTEGER, DIMENSION(:), POINTER :: NLBLY=>NULL() REAL, POINTER :: XCPHASE=>NULL() REAL, POINTER :: XCPHASE_PBL=>NULL() +REAL, POINTER :: XCARPKMAX=>NULL() CONTAINS @@ -101,6 +106,7 @@ NLBLX=>LBC_MODEL(KTO)%NLBLX NLBLY=>LBC_MODEL(KTO)%NLBLY XCPHASE=>LBC_MODEL(KTO)%XCPHASE XCPHASE_PBL=>LBC_MODEL(KTO)%XCPHASE_PBL +XCARPKMAX=>LBC_MODEL(KTO)%XCARPKMAX END SUBROUTINE LBC_GOTO_MODEL diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 5050904da..b3fa8ef60 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -245,7 +245,7 @@ USE MODD_NESTING USE MODD_FMOUT USE MODD_BUDGET USE MODD_PARAMETERS -USE MODD_PARAM_ICE, ONLY : LWARM,LSEDIC +USE MODD_PARAM_ICE, ONLY : LWARM,LSEDIC,LCONVHG USE MODD_FRC USE MODD_AIRCRAFT_BALLOON USE MODD_STATION_n @@ -373,8 +373,6 @@ USE MODE_UTIL #endif USE MODI_GET_HALO ! -USE MODE_MPPDB -! IMPLICIT NONE ! !* 0.1 declarations of arguments @@ -573,7 +571,6 @@ IF (KTCOUNT == 1) THEN ENDDO IF (SIZE(XSRCT,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDS_ll, XSRCT) ! -!!$ IF ((LNUMDIFU .OR. LNUMDIFTH .OR. LNUMDIFSV) .AND. NHALO==1 ) THEN IF ((LNUMDIFU .OR. LNUMDIFTH .OR. LNUMDIFSV) ) THEN ! ! b) LS fields @@ -604,16 +601,12 @@ IF (KTCOUNT == 1) THEN ! INBVAR = 4+NRR+NSV IF (SIZE(XRTKES,1) /= 0) INBVAR=INBVAR+1 -!!$ IF( NHALO==1 ) CALL INIT_HALO2_ll(TZHALO2T_ll,INBVAR,IIU,IJU,IKU) -!!$ IF( NHALO==1 ) CALL INIT_HALO2_ll(TZLSHALO2_ll,4+MIN(1,NRR),IIU,IJU,IKU) ! !* 1.6 Initialise the 2nd layer of the halo of the LS fields ! -!!$ IF ( LSTEADYLS .AND. NHALO==1 ) CALL UPDATE_HALO2_ll(TZLSFIELD_ll, TZLSHALO2_ll, IINFO_ll) IF ( LSTEADYLS ) CALL UPDATE_HALO2_ll(TZLSFIELD_ll, TZLSHALO2_ll, IINFO_ll) - END IF ! ! @@ -1141,10 +1134,8 @@ XTIME_LES_BU_PROCESS = 0. ! IF ( LNUMDIFU .OR. LNUMDIFTH .OR. LNUMDIFSV ) THEN ! -!!$ IF( NHALO==1 ) THEN - CALL UPDATE_HALO2_ll(TZFIELDT_ll, TZHALO2T_ll, IINFO_ll) - IF ( .NOT. LSTEADYLS) CALL UPDATE_HALO2_ll(TZLSFIELD_ll, TZLSHALO2_ll, IINFO_ll) -!!$ ENDIF + CALL UPDATE_HALO2_ll(TZFIELDT_ll, TZHALO2T_ll, IINFO_ll) + IF ( .NOT. LSTEADYLS) CALL UPDATE_HALO2_ll(TZLSFIELD_ll, TZLSHALO2_ll, IINFO_ll) CALL NUM_DIFF ( CLBCX, CLBCY, NRR, NSV, & XDK2U, XDK4U, XDK2TH, XDK4TH, XDK2SV, XDK4SV, IMI, & XUT, XVT, XWT, XTHT, XTKET, XRT, XSVT, & @@ -1464,7 +1455,6 @@ XTIME_BU_PROCESS = 0. XTIME_LES_BU_PROCESS = 0. ! IF (CUVW_ADV_SCHEME(1:3)=='CEN') THEN -!!$ IF (NHALO==1 .AND. CUVW_ADV_SCHEME=='CEN4TH') THEN IF (CUVW_ADV_SCHEME=='CEN4TH') THEN NULLIFY(TZFIELDC_ll) NULLIFY(TZHALO2C_ll) @@ -1475,7 +1465,6 @@ IF (CUVW_ADV_SCHEME(1:3)=='CEN') THEN CALL UPDATE_HALO_ll(TZFIELDC_ll,IINFO_ll) CALL UPDATE_HALO2_ll(TZFIELDC_ll, TZHALO2C_ll, IINFO_ll) END IF - CALL MPPDB_CHECK3D(XRUS,"modeln:before adv_uvw_cen:XRUS",PRECISION) CALL ADVECTION_UVW_CEN(CUVW_ADV_SCHEME, & CLBCX, CLBCY, & XTSTEP, KTCOUNT, & @@ -1484,7 +1473,6 @@ IF (CUVW_ADV_SCHEME(1:3)=='CEN') THEN XRHODJ, XDXX, XDYY, XDZZ, XDZX, XDZY, & XRUS,XRVS, XRWS, & TZHALO2C_ll ) -!!$ IF (NHALO==1 .AND. CUVW_ADV_SCHEME=='CEN4TH') THEN IF (CUVW_ADV_SCHEME=='CEN4TH') THEN CALL CLEANLIST_ll(TZFIELDC_ll) NULLIFY(TZFIELDC_ll) @@ -1527,8 +1515,7 @@ ZRUS=XRUS ZRVS=XRVS ZRWS=XRWS ! - CALL MPPDB_CHECK3D(XRUS,"modeln:before rad_bound:XRUS",PRECISION) - CALL RAD_BOUND (CLBCX,CLBCY,CTURB,XRIMKMAX, & + CALL RAD_BOUND (CLBCX,CLBCY,CTURB,XCARPKMAX, & XTSTEP, & XDXHAT, XDYHAT, XZHAT, & XUT, XVT, & @@ -1559,7 +1546,6 @@ IF(.NOT. L1D) THEN XRVS_PRES = XRVS XRWS_PRES = XRWS ! - CALL MPPDB_CHECK3D(XRUS,"modeln:before pressurez:XRUS",PRECISION) CALL PRESSUREZ( CLUOUT, & CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,KTCOUNT, XRELAX,IMI, & XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,XDXHATM,XDYHATM,XRHOM, & @@ -1627,7 +1613,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XSVT, XRSVS, & XSRCT, XCLDFR,XCIT, & LSEDIC,LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI, & - XCF_MF,XRC_MF, XRI_MF, & + LCONVHG, XCF_MF,XRC_MF, XRI_MF, & XINPRC,XINPRR, XINPRR3D, XEVAP3D, & XINPRS, XINPRG, XINPRH, XSOLORG , XMI, ZSEA, ZTOWN ) DEF_NC=.TRUE. @@ -1642,7 +1628,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XSVT, XRSVS, & XSRCT, XCLDFR,XCIT, & LSEDIC,LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI, & - XCF_MF,XRC_MF, XRI_MF, & + LCONVHG, XCF_MF,XRC_MF, XRI_MF, & XINPRC,XINPRR, XINPRR3D, XEVAP3D, & XINPRS, XINPRG, XINPRH, XSOLORG , XMI, ZSEA, ZTOWN ) #endif @@ -1661,7 +1647,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XSVT, XRSVS, & XSRCT, XCLDFR,XCIT, & LSEDIC, LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI, & - XCF_MF,XRC_MF, XRI_MF, & + LCONVHG, XCF_MF,XRC_MF, XRI_MF, & XINPRC,XINPRR, XINPRR3D, XEVAP3D, & XINPRS, XINPRG, XINPRH, XSOLORG, XMI ) DEF_NC=.TRUE. @@ -1676,7 +1662,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XSVT, XRSVS, & XSRCT, XCLDFR,XCIT, & LSEDIC, LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI, & - XCF_MF,XRC_MF, XRI_MF, & + LCONVHG, XCF_MF,XRC_MF, XRI_MF, & XINPRC,XINPRR, XINPRR3D, XEVAP3D, & XINPRS, XINPRG, XINPRH, XSOLORG, XMI ) #endif @@ -1721,7 +1707,7 @@ IF (CELEC /= 'NONE' .AND. (CCLOUD(1:3) == 'ICE')) THEN ! XRTHS_CLD = XRTHS XRRS_CLD = XRRS - XRSVS_CLD = XRRS + XRSVS_CLD = XRSVS IF (CSURF=='EXTE') THEN ALLOCATE (ZSEA(SIZE(XRHODJ,1),SIZE(XRHODJ,2))) ALLOCATE (ZTOWN(SIZE(XRHODJ,1),SIZE(XRHODJ,2))) diff --git a/src/MNH/modn_lbcn.f90 b/src/MNH/modn_lbcn.f90 index 66523b7e7..718295689 100644 --- a/src/MNH/modn_lbcn.f90 +++ b/src/MNH/modn_lbcn.f90 @@ -55,7 +55,8 @@ USE MODD_LBC_n, ONLY: & NLBLX_n => NLBLX, & NLBLY_n => NLBLY, & XCPHASE_n => XCPHASE, & - XCPHASE_PBL_n => XCPHASE_PBL + XCPHASE_PBL_n => XCPHASE_PBL, & + XCARPKMAX_n => XCARPKMAX ! IMPLICIT NONE ! @@ -65,8 +66,9 @@ INTEGER,SAVE, DIMENSION(2) :: NLBLX INTEGER,SAVE, DIMENSION(2) :: NLBLY REAL,SAVE :: XCPHASE REAL,SAVE :: XCPHASE_PBL +REAL,SAVE :: XCARPKMAX ! -NAMELIST/NAM_LBCn/CLBCX,CLBCY,NLBLX,NLBLY,XCPHASE,XCPHASE_PBL +NAMELIST/NAM_LBCn/CLBCX,CLBCY,NLBLX,NLBLY,XCPHASE,XCPHASE_PBL,XCARPKMAX ! CONTAINS ! @@ -77,6 +79,7 @@ SUBROUTINE INIT_NAM_LBCn NLBLY = NLBLY_n XCPHASE = XCPHASE_n XCPHASE_PBL = XCPHASE_PBL_n + XCARPKMAX = XCARPKMAX_n END SUBROUTINE INIT_NAM_LBCn SUBROUTINE UPDATE_NAM_LBCn @@ -86,6 +89,7 @@ SUBROUTINE UPDATE_NAM_LBCn NLBLY_n = NLBLY XCPHASE_n = XCPHASE XCPHASE_PBL_n = XCPHASE_PBL + XCARPKMAX_n = XCARPKMAX END SUBROUTINE UPDATE_NAM_LBCn END MODULE MODN_LBC_n diff --git a/src/MNH/rad_bound.f90 b/src/MNH/rad_bound.f90 index 3ccdf1e07..12333081a 100644 --- a/src/MNH/rad_bound.f90 +++ b/src/MNH/rad_bound.f90 @@ -14,7 +14,7 @@ MODULE MODI_RAD_BOUND ! INTERFACE ! - SUBROUTINE RAD_BOUND (HLBCX,HLBCY,HTURB,PRIMKMAX, & + SUBROUTINE RAD_BOUND (HLBCX,HLBCY,HTURB, PCARPKMAX, & PTSTEP,PDXHAT,PDYHAT,PZHAT, & PUT,PVT, & PLBXUM,PLBYVM,PLBXUS,PLBYVS, & @@ -25,7 +25,7 @@ CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC CHARACTER(LEN=4), INTENT(IN) :: HTURB ! Turbulence scheme ! ! -REAL, INTENT(IN) :: PRIMKMAX ! Rayleigh damping amplitude +REAL, INTENT(INOUT) :: PCARPKMAX ! Rayleigh damping amplitude REAL, INTENT(IN) :: PTSTEP ! time step dt REAL, DIMENSION(:), INTENT(IN) :: PDXHAT ! X-direc. meshlength REAL, DIMENSION(:), INTENT(IN) :: PDYHAT ! Y-direc. meshlength @@ -55,7 +55,7 @@ END INTERFACE END MODULE MODI_RAD_BOUND ! ! ################################################################# - SUBROUTINE RAD_BOUND (HLBCX,HLBCY,HTURB,PRIMKMAX, & + SUBROUTINE RAD_BOUND (HLBCX,HLBCY,HTURB, PCARPKMAX, & PTSTEP,PDXHAT,PDYHAT,PZHAT, & PUT,PVT, & PLBXUM,PLBYVM,PLBXUS,PLBYVS, & @@ -151,7 +151,8 @@ END MODULE MODI_RAD_BOUND !! Modification 08/10 (V.Masson) Bug correction and add cphase_profile !! Escobar 9/11/2010 : cphas_profile : array bound problem if NO Turb => PTKET optional !! Lac.C. 2011 : Adaptation to FIT temporal scheme -!! Modification 06/13 (C.Lac) Introduction of cphase_pbl +!! Modification 06/13 (C.Lac) Introduction of cphase_pbl +!! Modification 03/14 (C.Lac) Replacement of XRIMKMAX by XCARPKMAX !! !------------------------------------------------------------------------------- ! @@ -177,7 +178,7 @@ CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC CHARACTER(LEN=4), INTENT(IN) :: HTURB ! Turbulence scheme ! ! -REAL, INTENT(IN) :: PRIMKMAX ! Rayleigh damping amplitude +REAL, INTENT(INOUT) :: PCARPKMAX ! Rayleigh damping amplitude REAL, INTENT(IN) :: PTSTEP ! time step dt REAL, DIMENSION(:), INTENT(IN) :: PDXHAT ! X-direc. meshlength REAL, DIMENSION(:), INTENT(IN) :: PDYHAT ! Y-direc. meshlength @@ -227,7 +228,6 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,3)) :: ZCPHASY! Normalized Phase velocity ! ! for V field at Y-boundaries REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,3)) :: ZPHASY ! Phase velocity ! ! for V field at Y-boundaries -REAL :: ZTSTEP ! effective time step REAL :: ZALPHA2! implicitness of the damping ! !------------------------------------------------------------------------------- @@ -245,9 +245,9 @@ IKE = SIZE(PUT,3) - JPVEXT !* 1.2 Compute the inverse of the applicable timestep ! ! -ZTSTEP = PTSTEP ZINVTSTEP = 1./PTSTEP -ZKTSTEP = PRIMKMAX*ZTSTEP +IF (PCARPKMAX == XUNDEF) PCARPKMAX = 1./ (10.*PTSTEP) +ZKTSTEP = PCARPKMAX*PTSTEP ! ZALPHA2 = O : explicit ; ZALPHA2 = 1 : implicit ; ZALPHA2 = 0.5 SI ZALPHA2 = 1. ! @@ -282,7 +282,7 @@ SELECT CASE ( HLBCX(1) ) END IF ZCPHASX(:,:) = MAX ( 0., MIN ( 1., & - (-PUT(IIB,:,:) + ZPHASX(:,:) ) * ZTSTEP / PDXHAT(IIB) ) ) + (-PUT(IIB,:,:) + ZPHASX(:,:) ) * PTSTEP / PDXHAT(IIB) ) ) ! notice that ZCPHASX=0. when ZPHASX < PUT(IIB,:,:) ! ! @@ -293,8 +293,8 @@ SELECT CASE ( HLBCX(1) ) ELSE ZLBEU (:,:) = PLBXUS(1,:,:) ZLBGU (:,:) = PLBXUM(2,:,:) - PLBXUM(1,:,:) + & - ZTSTEP * (PLBXUS(2,:,:) - PLBXUS(1,:,:)) - ZLBXU(:,:) = PLBXUM(1,:,:) + ZTSTEP * PLBXUS(1,:,:) + PTSTEP * (PLBXUS(2,:,:) - PLBXUS(1,:,:)) + ZLBXU(:,:) = PLBXUM(1,:,:) + PTSTEP * PLBXUS(1,:,:) END IF ! ! ============================================================ @@ -311,7 +311,7 @@ SELECT CASE ( HLBCX(1) ) ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & ( (1. - ZCPHASX(:,:) - ZKTSTEP * (1. - ZALPHA2)) * PUT(IIB,:,:) & + ZCPHASX(:,:) * PUT(IIB+1 ,:,:) & - + ( ZLBEU (:,:) * ZTSTEP & + + ( ZLBEU (:,:) * PTSTEP & - ZLBGU (:,:) * ZCPHASX(:,:) & + ZKTSTEP*ZLBXU(:,:) ) ) @@ -351,7 +351,7 @@ SELECT CASE ( HLBCX(2) ) END IF ! ZCPHASX(:,:) = MAX ( 0., MIN ( 1., & - ( PUT(IIE+1,:,:) + ZPHASX(:,:) ) * ZTSTEP/PDXHAT(IIE) ) ) + ( PUT(IIE+1,:,:) + ZPHASX(:,:) ) * PTSTEP/PDXHAT(IIE) ) ) ! ! ILBX=SIZE(PLBXUM,1) @@ -362,8 +362,8 @@ SELECT CASE ( HLBCX(2) ) ELSE ZLBEU (:,:) = PLBXUS(ILBX,:,:) ZLBGU (:,:) = PLBXUM(ILBX,:,:) - PLBXUM(ILBX-1,:,:) + & - ZTSTEP * (PLBXUS(ILBX,:,:) - PLBXUS(ILBX-1,:,:)) - ZLBXU(:,:) = PLBXUM(ILBX,:,:) + ZTSTEP * PLBXUS(ILBX,:,:) + PTSTEP * (PLBXUS(ILBX,:,:) - PLBXUS(ILBX-1,:,:)) + ZLBXU(:,:) = PLBXUM(ILBX,:,:) + PTSTEP * PLBXUS(ILBX,:,:) END IF ! ! ============================================================ @@ -380,7 +380,7 @@ SELECT CASE ( HLBCX(2) ) ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & ( (1. - ZCPHASX(:,:) - ZKTSTEP * (1. - ZALPHA2) ) * PUT(IIE+1,:,:) & + ZCPHASX(:,:) * PUT(IIE ,:,:) & - + ( ZLBEU (:,:) * ZTSTEP & + + ( ZLBEU (:,:) * PTSTEP & + ZLBGU (:,:) * ZCPHASX(:,:) & + ZKTSTEP*ZLBXU(:,:) ) ) ! @@ -421,7 +421,7 @@ SELECT CASE ( HLBCY(1) ) END IF ! ZCPHASY(:,:) = MAX ( 0., MIN ( 1., & - (-PVT(:,IJB,:) + ZPHASY(:,:) ) * ZTSTEP/ PDYHAT(IJB) ) ) + (-PVT(:,IJB,:) + ZPHASY(:,:) ) * PTSTEP/ PDYHAT(IJB) ) ) ! IF ( SIZE(PLBYVS,1) == 0 ) THEN ZLBEV (:,:) = 0. @@ -430,8 +430,8 @@ SELECT CASE ( HLBCY(1) ) ELSE ZLBEV (:,:) = PLBYVS(:,1,:) ZLBGV (:,:) = PLBYVM(:,2,:) - PLBYVM(:,1,:) + & - ZTSTEP * (PLBYVS(:,2,:) - PLBYVS(:,1,:)) - ZLBYV(:,:) = PLBYVM(:,1,:) + ZTSTEP * PLBYVS(:,1,:) + PTSTEP * (PLBYVS(:,2,:) - PLBYVS(:,1,:)) + ZLBYV(:,:) = PLBYVM(:,1,:) + PTSTEP * PLBYVS(:,1,:) END IF ! ! ============================================================ @@ -447,7 +447,7 @@ SELECT CASE ( HLBCY(1) ) ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & ( (1. - ZCPHASY(:,:) - ZKTSTEP * (1. - ZALPHA2) ) * PVT(:,IJB,:)& + ZCPHASY(:,:) * PVT(:,IJB+1,:) & - + ( ZLBEV (:,:) * ZTSTEP & + + ( ZLBEV (:,:) * PTSTEP & - ZLBGV (:,:) * ZCPHASY(:,:) & + ZKTSTEP*ZLBYV(:,:) ) ) ! @@ -488,7 +488,7 @@ SELECT CASE ( HLBCY(2) ) END IF ! ZCPHASY(:,:) = MAX ( 0., MIN ( 1., & - ( PVT(:,IJE+1,:) + ZPHASY(:,:) ) * ZTSTEP/PDYHAT(IJE) ) ) + ( PVT(:,IJE+1,:) + ZPHASY(:,:) ) * PTSTEP/PDYHAT(IJE) ) ) ! ILBY=SIZE(PLBYVM,2) IF ( SIZE(PLBYVS,1) == 0 ) THEN @@ -498,8 +498,8 @@ SELECT CASE ( HLBCY(2) ) ELSE ZLBEV (:,:) = PLBYVS(:,ILBY,:) ZLBGV (:,:) = PLBYVM(:,ILBY,:) - PLBYVM(:,ILBY-1,:) + & - ZTSTEP * (PLBYVS(:,ILBY,:) - PLBYVS(:,ILBY-1,:)) - ZLBYV(:,:) = PLBYVM(:,ILBY,:) + ZTSTEP * PLBYVS(:,ILBY,:) + PTSTEP * (PLBYVS(:,ILBY,:) - PLBYVS(:,ILBY-1,:)) + ZLBYV(:,:) = PLBYVM(:,ILBY,:) + PTSTEP * PLBYVS(:,ILBY,:) END IF ! ! ============================================================ @@ -516,7 +516,7 @@ SELECT CASE ( HLBCY(2) ) ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 ) * & ( (1. - ZCPHASY(:,:) - ZKTSTEP * (1. - ZALPHA2) ) * PVT(:,IJE+1,:)& + ZCPHASY(:,:) * PVT(:,IJE,:) & - + ( ZLBEV (:,:) * ZTSTEP & + + ( ZLBEV (:,:) * PTSTEP & + ZLBGV (:,:) * ZCPHASY(:,:) & + ZKTSTEP*ZLBYV(:,:) ) ) ! -- GitLab