diff --git a/src/common/micro/lima.F90 b/src/common/micro/lima.F90 index d23466e4a9a5445b35f90293c99b8f651afaf537..1944e9d421eb306520ac9be29c6a440f049bfde1 100644 --- a/src/common/micro/lima.F90 +++ b/src/common/micro/lima.F90 @@ -694,7 +694,7 @@ if ( BUCONF%lbu_enable ) then call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_nh), 'SEDI', zchs(:, :, :) * prhodj(:, :, :) ) end if end if - +PFPR(:,:,:,:)=0. ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP ZCPT = CST%XCPD + (CST%XCPV * ZRVS + CST%XCL * (ZRCS + ZRRS) + CST%XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP IF (NMOM_C.GE.1 .AND. LSEDC) CALL LIMA_SEDIMENTATION(D, CST, & diff --git a/src/common/micro/lima_adjust_split.F90 b/src/common/micro/lima_adjust_split.F90 index a84bc26d6b4e02569fc3eb76298cf194468b9f94..c63833838ad12243c2e71068d74de680643dca2c 100644 --- a/src/common/micro/lima_adjust_split.F90 +++ b/src/common/micro/lima_adjust_split.F90 @@ -501,12 +501,10 @@ DO JITER =1,ITERMAX !* 3. FIRST ORDER SUBGRID CONDENSATION SCHEME ! --------------------------------------- ! - ZRV=PRVS*PTSTEP - ZRC=PRCS*PTSTEP + ZRV_IN=PRVS*PTSTEP ZRV2=PRVT + ZRC_IN=PRCS*PTSTEP ZRC2=PRCT - ZRV_IN=ZRV - ZRC_IN=ZRC IF (NMOM_I.EQ.1) THEN ZRI_IN=PRIS*PTSTEP GUSERI=.TRUE. diff --git a/src/common/micro/lima_sedimentation.F90 b/src/common/micro/lima_sedimentation.F90 index 55304ba39bb4eb8ae66cc41bc6d3bbcb0cee4fd7..22a34736584680b391375a604aecf519c5fe5a28 100644 --- a/src/common/micro/lima_sedimentation.F90 +++ b/src/common/micro/lima_sedimentation.F90 @@ -122,9 +122,10 @@ LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & :: GSEDIM ! Test where to compute the SED processes REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & :: ZW, & ! Work array - ZWSEDR, & ! Sedimentation of MMR - ZWSEDC, & ! Sedimentation of number conc. ZWDT ! Temperature change +REAL, DIMENSION(D%NIT,D%NJT,0:D%NKT+1) & + :: ZWSEDR, & ! Sedimentation of MMR + ZWSEDC ! Sedimentation of number conc. ! REAL, DIMENSION(:), ALLOCATABLE & :: ZRS, & ! m.r. source @@ -155,7 +156,8 @@ ZTSPLITG= PTSTEP / REAL(NSPLITSED(KID)) ! ZWDT=0. PINPR(:,:) = 0. -PFPR(:,:,:) = 0. +ZWSEDR(:,:,:) = 0. +ZWSEDC(:,:,:) = 0. ! PRS(:,:,:) = PRS(:,:,:) * PTSTEP IF (KMOMENTS==2) PCS(:,:,:) = PCS(:,:,:) * PTSTEP @@ -233,10 +235,10 @@ DO JN = 1 , NSPLITSED(KID) ZZX(:) = ZCC(:) * ZZX(:) END IF - ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) + ZWSEDR(:,:,1:D%NKT) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) ZWSEDR(:,:,D%NKTB:D%NKTE) = MIN( ZWSEDR(:,:,D%NKTB:D%NKTE), PRS(:,:,D%NKTB:D%NKTE) * PRHODREF(:,:,D%NKTB:D%NKTE) / ZW(:,:,D%NKTB:D%NKTE) ) IF (KMOMENTS==2) THEN - ZWSEDC(:,:,:) = UNPACK( ZZX(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) + ZWSEDC(:,:,1:D%NKT) = UNPACK( ZZX(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) ZWSEDC(:,:,D%NKTB:D%NKTE) = MIN( ZWSEDC(:,:,D%NKTB:D%NKTE), PCS(:,:,D%NKTB:D%NKTE) * PRHODREF(:,:,D%NKTB:D%NKTE) / ZW(:,:,D%NKTB:D%NKTE) ) END IF