diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 51b902548ce2544ef0f8ee84e7409faab45b4fd0..e9cb911452645c503e36a6ad0c3c6ce482434a17 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -1029,7 +1029,7 @@ IF (KMI == 1) THEN LSEDI = .TRUE. LSNOW = .TRUE. LHAIL = .FALSE. - YSNOW_T = .TRUE. + YSNOW_T = .FALSE. LMURAKAMI = .TRUE. CPRISTINE_ICE_LIMA = 'PLAT' CHEVRIMED_ICE_LIMA = 'GRAU' diff --git a/src/MNH/lima_mixed_fast_processes.f90 b/src/MNH/lima_mixed_fast_processes.f90 index 056386015b61db1bb4f7b0292e01bebeacae45cf..d8b553474404e8e10dbecb856aeca8d76e732b2c 100644 --- a/src/MNH/lima_mixed_fast_processes.f90 +++ b/src/MNH/lima_mixed_fast_processes.f90 @@ -869,7 +869,7 @@ IF( IGACC>0 .AND. LRAIN) THEN ! WHERE ( GACC(:) .AND. (PRSS1D(:)>XRTMIN(5)/PTSTEP) ) ZZW1(:,2) = MAX( MIN( PRRS1D(:),ZZW1(:,2)-ZZW1(:,4) ) , 0. ) ! RRACCSG - ZZW1(:,3) = MIN( PRSS1D(:),XFSACCRG*ZZW(:)* & ! RSACCRG + ZZW1(:,3) = MIN( PRSS1D(:),PCRT1D(:)*XFSACCRG*ZZW(:)* & ! RSACCRG ( PRST1D(:) )*( PRHODREF(:)**(1-XCEXVT) ) & *( XLBSACCR1/((PLBDAR(:)**2) ) + & XLBSACCR2/( PLBDAR(:) * PLBDAS(:) ) + & @@ -1293,39 +1293,41 @@ END WHERE ! ZZW(:) = 0.0 NHAIL = 0. -IF (LHAIL) NHAIL = 1. -WHERE( PRGT1D(:)>XRTMIN(6) .AND. PZT(:)<XTT .AND. & - (ZRDRYG(:)-ZZW1(:,2)-ZZW1(:,3))>=(ZRWETG(:)-ZZW1(:,5)-ZZW1(:,6)) .AND. ZRWETG(:)>0.0 ) -! - ZZW(:) = ZRWETG(:) - ZZW1(:,5) - ZZW1(:,6) ! RCWETG+RRWETG +IF (LHAIL) NHAIL = 1. +DO JJ=1, SIZE(PRGT1D) + IF ( PRGT1D(JJ)>XRTMIN(6) .AND. PZT(JJ)<XTT .AND. & + (ZRDRYG(JJ)-ZZW1(JJ,2)-ZZW1(JJ,3))>(ZRWETG(JJ)-ZZW1(JJ,5)-ZZW1(JJ,6)) .AND. (ZRWETG(JJ)-ZZW1(JJ,5)-ZZW1(JJ,6))>0.0 ) THEN + ! + ZZW(JJ) = ZRWETG(JJ) - ZZW1(JJ,5) - ZZW1(JJ,6) ! RCWETG+RRWETG ! ! limitation of the available rainwater mixing ratio (RRWETH < RRS !) ! - ZZW1(:,7) = MAX( 0.0,MIN( ZZW(:),PRRS1D(:)+ZZW1(:,1) ) ) - ZZX(:) = ZZW1(:,7) / ZZW(:) - ZZW1(:,5) = ZZW1(:,5)*ZZX(:) - ZZW1(:,6) = ZZW1(:,6)*ZZX(:) - ZRWETG(:) = ZZW1(:,7) + ZZW1(:,5) + ZZW1(:,6) + ZZW1(JJ,7) = MAX( 0.0,MIN( ZZW(JJ),PRRS1D(JJ)+ZZW1(JJ,1) ) ) + ZZX(JJ) = ZZW1(JJ,7) / ZZW(JJ) + ZZW1(JJ,5) = ZZW1(JJ,5)*ZZX(JJ) + ZZW1(JJ,6) = ZZW1(JJ,6)*ZZX(JJ) + ZRWETG(JJ) = ZZW1(JJ,7) + ZZW1(JJ,5) + ZZW1(JJ,6) ! - PRCS1D(:) = PRCS1D(:) - ZZW1(:,1) - PRIS1D(:) = PRIS1D(:) - ZZW1(:,5) - PRSS1D(:) = PRSS1D(:) - ZZW1(:,6) + PRCS1D(JJ) = PRCS1D(JJ) - ZZW1(JJ,1) + PRIS1D(JJ) = PRIS1D(JJ) - ZZW1(JJ,5) + PRSS1D(JJ) = PRSS1D(JJ) - ZZW1(JJ,6) ! ! assume a linear percent of conversion of graupel into hail ! - PRGS1D(:) = PRGS1D(:) + ZRWETG(:) - ZZW(:) = PRGS1D(:)*ZRDRYG(:)*NHAIL/(ZRWETG(:)+ZRDRYG(:)) - PRGS1D(:) = PRGS1D(:) - ZZW(:) - PRHS1D(:) = PRHS1D(:) + ZZW(:) - PRRS1D(:) = MAX( 0.0,PRRS1D(:) - ZZW1(:,7) + ZZW1(:,1) ) - PTHS1D(:) = PTHS1D(:) + ZZW1(:,7) * (PLSFACT(:) - PLVFACT(:)) + PRGS1D(JJ) = PRGS1D(JJ) + ZRWETG(JJ) + ZZW(JJ) = PRGS1D(JJ)*ZRDRYG(JJ)*NHAIL/(ZRWETG(JJ)+ZRDRYG(JJ)) + PRGS1D(JJ) = PRGS1D(JJ) - ZZW(JJ) + PRHS1D(JJ) = PRHS1D(JJ) + ZZW(JJ) + PRRS1D(JJ) = MAX( 0.0,PRRS1D(JJ) - ZZW1(JJ,7) + ZZW1(JJ,1) ) + PTHS1D(JJ) = PTHS1D(JJ) + ZZW1(JJ,7) * (PLSFACT(JJ) - PLVFACT(JJ)) ! f(L_f*(RCWETG+RRWETG)) ! - PCCS1D(:) = MAX( PCCS1D(:)-ZZW1(:,1)*(PCCT1D(:)/MAX(PRCT1D(:),XRTMIN(2))),0.0 ) - PCIS1D(:) = MAX( PCIS1D(:)-ZZW1(:,5)*(PCIT1D(:)/MAX(PRIT1D(:),XRTMIN(4))),0.0 ) - PCRS1D(:) = MAX( PCRS1D(:)-MAX( ZZW1(:,7)-ZZW1(:,1),0.0 ) & - *(PCRT1D(:)/MAX(PRRT1D(:),XRTMIN(3))),0.0 ) -END WHERE + PCCS1D(JJ) = MAX( PCCS1D(JJ)-ZZW1(JJ,1)*(PCCT1D(JJ)/MAX(PRCT1D(JJ),XRTMIN(2))),0.0 ) + PCIS1D(JJ) = MAX( PCIS1D(JJ)-ZZW1(JJ,5)*(PCIT1D(JJ)/MAX(PRIT1D(JJ),XRTMIN(4))),0.0 ) + PCRS1D(JJ) = MAX( PCRS1D(JJ)-MAX( ZZW1(JJ,7)-ZZW1(JJ,1),0.0 ) & + *(PCRT1D(JJ)/MAX(PRRT1D(JJ),XRTMIN(3))),0.0 ) + END IF +END DO ! ! Budget storage if ( nbumod == kmi .and. lbu_enable ) then