diff --git a/src/arome/ext/aro_lima.F90 b/src/arome/ext/aro_lima.F90 index d12e226fd6c8bffbc4515c2de264c286f9ac61ec..cbe7032178219aa8234d3de4702683ad8bbc3ebf 100644 --- a/src/arome/ext/aro_lima.F90 +++ b/src/arome/ext/aro_lima.F90 @@ -310,7 +310,7 @@ CALL LIMA (D=YLDIMPHYEX, CST=CST, BUCONF=TBUCONF, TBUDGETS=YLBUDGET, KBUDGETS=SI PDTHRAD=PDTHRAD, PTHT=PTHT, PRT=PRT, PSVT=PSVT, PW_NU=PW_NU, & PTHS=PTHS, PRS=PRS, PSVS=PSVS, & PINPRC=ZINPRC, PINDEP=ZINDEP, PINPRR=PINPRR, PINPRI=ZINPRI, PINPRS=PINPRS, PINPRG=PINPRG, PINPRH=PINPRH, & - PEVAP3D=PEVAP, PCLDFR=PCLDFR, PICEFR=ZICEFR, PPRCFR=ZPRCFR ) + PEVAP3D=PEVAP, PCLDFR=PCLDFR, PICEFR=ZICEFR, PPRCFR=ZPRCFR, PFPR=PFPR ) !add ZINPRC in PINPRR PINPRR=PINPRR+ZINPRC !------------------------------------------------------------------------------- diff --git a/src/arome/ext/aroini_budget.F90 b/src/arome/ext/aroini_budget.F90 index bcb320205ea8ae01daef4f8937c0b80b2e2c1b18..d820e8b975411b0e3467f964992c3564b47c280f 100644 --- a/src/arome/ext/aroini_budget.F90 +++ b/src/arome/ext/aroini_budget.F90 @@ -86,7 +86,7 @@ LBUDGET_RI = LBU_ENABLE LBUDGET_RS = LBU_ENABLE LBUDGET_RG = LBU_ENABLE LBUDGET_RH = LBU_ENABLE -LBUDGET_SV = LBU_ENABLE +LBUDGET_SV = .FALSE. ! IF (LHOOK) CALL DR_HOOK('AROINI_BUDGET',1,ZHOOK_HANDLE) ! diff --git a/src/common/micro/lima.F90 b/src/common/micro/lima.F90 index 7fcfd22aae3a94397171096efb58fa9cab0ab377..f34d0517c00aa6345219d8d49b6deb2b5c13aaf2 100644 --- a/src/common/micro/lima.F90 +++ b/src/common/micro/lima.F90 @@ -17,7 +17,7 @@ INTERFACE PDTHRAD, PTHT, PRT, PSVT, PW_NU, & PTHS, PRS, PSVS, & PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & - PEVAP3D, PCLDFR, PICEFR, PPRCFR ) + PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR ) ! USE MODD_IO, ONLY: TFILEDATA USE MODD_NSV, only: NSV_LIMA_BEG @@ -66,6 +66,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D ! Rain evap profile REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Cloud fraction +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PFPR ! Precipitation fluxes in altitude ! END SUBROUTINE LIMA END INTERFACE @@ -81,7 +82,7 @@ END MODULE MODI_LIMA PDTHRAD, PTHT, PRT, PSVT, PW_NU, & PTHS, PRS, PSVS, & PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & - PEVAP3D, PCLDFR, PICEFR, PPRCFR ) + PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR ) ! ###################################################################### ! !! PURPOSE @@ -186,6 +187,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D ! Rain evap profile REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Cloud fraction +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PFPR ! Precipitation fluxes in altitude ! !* 0.2 Declarations of local variables : ! @@ -698,27 +700,27 @@ end if 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, & - 'L', 2, 2, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRCS, ZCCS, PINPRC) + 'L', 2, 2, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRCS, ZCCS, PINPRC, PFPR(:,:,:,2)) 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_R.GE.1) CALL LIMA_SEDIMENTATION(D, CST, & - 'L', NMOM_R, 3, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRRS, ZCRS, PINPRR) + 'L', NMOM_R, 3, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRRS, ZCRS, PINPRR, PFPR(:,:,:,3)) 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_I.GE.1 .AND. LSEDI) CALL LIMA_SEDIMENTATION(D, CST, & - 'I', NMOM_I, 4, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRIS, ZCIS, ZW2D) + 'I', NMOM_I, 4, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRIS, ZCIS, ZW2D, PFPR(:,:,:,4)) 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_S.GE.1) CALL LIMA_SEDIMENTATION(D, CST, & - 'I', NMOM_S, 5, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRSS, ZCSS, PINPRS) + 'I', NMOM_S, 5, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRSS, ZCSS, PINPRS, PFPR(:,:,:,5)) 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_G.GE.1) CALL LIMA_SEDIMENTATION(D, CST, & - 'I', NMOM_G, 6, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRGS, ZCGS, PINPRG) + 'I', NMOM_G, 6, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRGS, ZCGS, PINPRG, PFPR(:,:,:,6)) 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_H.GE.1) CALL LIMA_SEDIMENTATION(D, CST, & - 'I', NMOM_H, 7, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRHS, ZCHS, PINPRH) + 'I', NMOM_H, 7, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRHS, ZCHS, PINPRH, PFPR(:,:,:,7)) ! ZTHS(:,:,:) = ZT(:,:,:) / ZEXN(:,:,:) * ZINV_TSTEP ! diff --git a/src/common/micro/lima_adjust_split.F90 b/src/common/micro/lima_adjust_split.F90 index 47f042c8ef11f0fbba92d35d72fa31643f2bb5b5..c16542c437bfad94ba91d8f92cd78765a4b4cb84 100644 --- a/src/common/micro/lima_adjust_split.F90 +++ b/src/common/micro/lima_adjust_split.F90 @@ -57,9 +57,9 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! m.r. at t ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! m.r. source ! -REAL, DIMENSION(:,:,:,NSV_LIMA_BEG:), INTENT(IN) :: PSVT ! Concentrations at time t +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t ! -REAL, DIMENSION(:,:,:,NSV_LIMA_BEG:), INTENT(INOUT) :: PSVS ! Concentration sources +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source ! @@ -225,9 +225,9 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! m.r. at t ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! m.r. source ! -REAL, DIMENSION(:,:,:,NSV_LIMA_BEG:), INTENT(IN) :: PSVT ! Concentrations at time t +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t ! -REAL, DIMENSION(:,:,:,NSV_LIMA_BEG:), INTENT(INOUT) :: PSVS ! Concentration sources +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source ! @@ -297,8 +297,8 @@ REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) & ZRI, ZRI_IN, & Z_SIGS, Z_SRCS, & ZW_MF, & - ZCND, ZS, ZVEC1,ZDUM -REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZSIGQSAT2D + ZCND, ZS, ZVEC1 +REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,3)) :: ZSIGQSAT2D, ZDUM ! INTEGER, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) :: IVEC1 ! diff --git a/src/common/micro/lima_sedimentation.F90 b/src/common/micro/lima_sedimentation.F90 index 9f9b73aba8add666b3c1bb66944fb0df35878923..55304ba39bb4eb8ae66cc41bc6d3bbcb0cee4fd7 100644 --- a/src/common/micro/lima_sedimentation.F90 +++ b/src/common/micro/lima_sedimentation.F90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE LIMA_SEDIMENTATION (D, CST, & HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF, & - PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR ) + PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR, PFPR ) ! USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_CST, ONLY: CST_t @@ -31,6 +31,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCPT ! Cp REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRS ! m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCS ! C. source REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPR ! Instant precip rate +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFPR ! Precip. fluxes in altitude ! END SUBROUTINE LIMA_SEDIMENTATION END INTERFACE @@ -40,7 +41,7 @@ END MODULE MODI_LIMA_SEDIMENTATION ! ###################################################################### SUBROUTINE LIMA_SEDIMENTATION (D, CST, & HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF, & - PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR ) + PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR, PFPR ) ! ###################################################################### ! !! PURPOSE @@ -110,6 +111,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCPT ! Cp REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRS ! m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCS ! C. source REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPR ! Instant precip rate +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFPR ! Precip. fluxes in altitude ! !* 0.2 Declarations of local variables : ! @@ -153,6 +155,7 @@ ZTSPLITG= PTSTEP / REAL(NSPLITSED(KID)) ! ZWDT=0. PINPR(:,:) = 0. +PFPR(:,:,:) = 0. ! PRS(:,:,:) = PRS(:,:,:) * PTSTEP IF (KMOMENTS==2) PCS(:,:,:) = PCS(:,:,:) * PTSTEP @@ -240,6 +243,7 @@ DO JN = 1 , NSPLITSED(KID) DO JK = D%NKTB , D%NKTE PRS(:,:,JK) = PRS(:,:,JK) + ZW(:,:,JK)* & (ZWSEDR(:,:,JK+D%NKL)-ZWSEDR(:,:,JK))/PRHODREF(:,:,JK) + PFPR(:,:,JK) = ZWSEDR(:,:,JK) IF (KMOMENTS==2) PCS(:,:,JK) = PCS(:,:,JK) + ZW(:,:,JK)* & (ZWSEDC(:,:,JK+D%NKL)-ZWSEDC(:,:,JK))/PRHODREF(:,:,JK) ! Heat transport diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90 index 58e0ba1847373e468597bdfa8ed1590f97281dc0..0cfafc17ae355cf3decb1037417d15745a7df402 100644 --- a/src/common/turb/turb.F90 +++ b/src/common/turb/turb.F90 @@ -1025,12 +1025,12 @@ CALL TURB_VER(D,CST,CSTURB,TURBN,TLES, & PSSTFL, PSSTFL_C, PSSRFL_C,PSSUFL_C,PSSVFL_C, & PSSUFL,PSSVFL ) -IF (HCLOUD == 'LIMA') THEN - IF (KSV_LIMA_NR.GT.0) PRSVS(:,:,KSV_LIMA_NR) = ZRSVS(:,:,KSV_LIMA_NR) - IF (KSV_LIMA_NS.GT.0) PRSVS(:,:,KSV_LIMA_NS) = ZRSVS(:,:,KSV_LIMA_NS) - IF (KSV_LIMA_NG.GT.0) PRSVS(:,:,KSV_LIMA_NG) = ZRSVS(:,:,KSV_LIMA_NG) - IF (KSV_LIMA_NH.GT.0) PRSVS(:,:,KSV_LIMA_NH) = ZRSVS(:,:,KSV_LIMA_NH) -END IF +!IF (HCLOUD == 'LIMA') THEN +! IF (KSV_LIMA_NR.GT.0) PRSVS(:,:,KSV_LIMA_NR) = ZRSVS(:,:,KSV_LIMA_NR) +! IF (KSV_LIMA_NS.GT.0) PRSVS(:,:,KSV_LIMA_NS) = ZRSVS(:,:,KSV_LIMA_NS) +! IF (KSV_LIMA_NG.GT.0) PRSVS(:,:,KSV_LIMA_NG) = ZRSVS(:,:,KSV_LIMA_NG) +! IF (KSV_LIMA_NH.GT.0) PRSVS(:,:,KSV_LIMA_NH) = ZRSVS(:,:,KSV_LIMA_NH) +!END IF IF( BUCONF%LBUDGET_U ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_U), 'VTURB', PRUS(:,:) ) IF( BUCONF%LBUDGET_V ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_V), 'VTURB', PRVS(:,:) ) @@ -1127,12 +1127,12 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) #endif ! - IF (HCLOUD == 'LIMA') THEN - IF (KSV_LIMA_NR.GT.0) PRSVS(:,:,KSV_LIMA_NR) = ZRSVS(:,:,KSV_LIMA_NR) - IF (KSV_LIMA_NS.GT.0) PRSVS(:,:,KSV_LIMA_NS) = ZRSVS(:,:,KSV_LIMA_NS) - IF (KSV_LIMA_NG.GT.0) PRSVS(:,:,KSV_LIMA_NG) = ZRSVS(:,:,KSV_LIMA_NG) - IF (KSV_LIMA_NH.GT.0) PRSVS(:,:,KSV_LIMA_NH) = ZRSVS(:,:,KSV_LIMA_NH) - END IF +! IF (HCLOUD == 'LIMA') THEN +! IF (KSV_LIMA_NR.GT.0) PRSVS(:,:,KSV_LIMA_NR) = ZRSVS(:,:,KSV_LIMA_NR) +! IF (KSV_LIMA_NS.GT.0) PRSVS(:,:,KSV_LIMA_NS) = ZRSVS(:,:,KSV_LIMA_NS) +! IF (KSV_LIMA_NG.GT.0) PRSVS(:,:,KSV_LIMA_NG) = ZRSVS(:,:,KSV_LIMA_NG) +! IF (KSV_LIMA_NH.GT.0) PRSVS(:,:,KSV_LIMA_NH) = ZRSVS(:,:,KSV_LIMA_NH) +! END IF ! IF( BUCONF%LBUDGET_U ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_U), 'HTURB', PRUS(:,:) ) IF( BUCONF%LBUDGET_V ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_V), 'HTURB', PRVS(:,:) )