diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 6ca72bcdc407b4a8361ecff43e471a3f46942f09..1643b0cc3208e2ee650eb6e56833d4296d42c1bd 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -16,7 +16,7 @@ INTERFACE ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & - OHORELAX_SV,OVE_RELAX,OCHTRANS,ONUDGING,ODRAGTREE, & + OHORELAX_SV,OVE_RELAX,OCHTRANS,ONUDGING,ODRAGTREE,ODEPOTREE, & HRAD,HDCONV,HSCONV,HTURB,HTURBDIM,HCLOUD ) ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints @@ -54,6 +54,7 @@ LOGICAL, INTENT(IN) :: OCHTRANS ! switch to activate convective !transport for SV LOGICAL, INTENT(IN) :: ONUDGING ! switch to activate nudging LOGICAL, INTENT(IN) :: ODRAGTREE ! switch to activate vegetation drag +LOGICAL, INTENT(IN) :: ODEPOTREE ! switch to activate droplet deposition on tree CHARACTER (LEN=*), INTENT(IN) :: HRAD ! type of the radiation scheme CHARACTER (LEN=*), INTENT(IN) :: HDCONV ! type of the deep convection scheme CHARACTER (LEN=*), INTENT(IN) :: HSCONV ! type of the deep convection scheme @@ -75,7 +76,7 @@ END MODULE MODI_INI_BUDGET ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & - OHORELAX_SV,OVE_RELAX,OCHTRANS,ONUDGING,ODRAGTREE, & + OHORELAX_SV,OVE_RELAX,OCHTRANS,ONUDGING,ODRAGTREE,ODEPOTREE, & HRAD,HDCONV,HSCONV,HTURB,HTURBDIM,HCLOUD ) ! ################################################################# ! @@ -155,6 +156,8 @@ END MODULE MODI_INI_BUDGET !! C.Lac 04/12/15 Correction for LSUPSAT !! 04/2016 (C.LAC) negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2 !! C. Barthe 01/2016 Add budget for LIMA +!! C.LAc 10/2016 Add budget for droplet deposition + !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -218,6 +221,7 @@ LOGICAL, INTENT(IN) :: OCHTRANS ! switch to activate convective !transport for SV LOGICAL, INTENT(IN) :: ONUDGING ! switch to activate nudging LOGICAL, INTENT(IN) :: ODRAGTREE ! switch to activate vegetation drag +LOGICAL, INTENT(IN) :: ODEPOTREE ! switch to activate droplet deposition on tree CHARACTER (LEN=*), INTENT(IN) :: HRAD ! type of the radiation scheme CHARACTER (LEN=*), INTENT(IN) :: HDCONV ! type of the deep convection scheme CHARACTER (LEN=*), INTENT(IN) :: HSCONV ! type of the shallow convection scheme @@ -1283,6 +1287,8 @@ IF (LBU_RRC) THEN IPROC=IPROC+1 IF( HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') IPROACTV(7,IPROC) = NDCONVRC IPROC=IPROC+1 + IF( ODRAGTREE .AND. ODEPOTREE ) IPROACTV(7,IPROC) = NDEPOTRRC + IPROC=IPROC+1 IF ( HTURB /= 'NONE' ) IPROACTV(7,IPROC) = NVTURBRC IPROC=IPROC+1 IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN @@ -1369,6 +1375,9 @@ IF (LBU_RRC) THEN IF (((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO').AND. LSEDC) .OR. & (HCLOUD(1:3) == 'ICE' .AND. LSEDIC)) IPROACTV(7,IPROC) = NSEDIRC IPROC=IPROC+1 + IF (((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO').AND. LDEPOC) .OR. & + (HCLOUD(1:3) == 'ICE' .AND. LDEPOSC)) IPROACTV(7,IPROC) = NDEPORC + IPROC=IPROC+1 IF (HCLOUD(1:3) == 'ICE') IPROACTV(7,IPROC) = NCDEPIRC IPROC=IPROC+1 IF (HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO' .OR. & @@ -1396,6 +1405,8 @@ IF (LBU_RRC) THEN IPROC=IPROC+1 YWORK2(7,IPROC) = 'DCONV_' IPROC=IPROC+1 + YWORK2(7,IPROC) = 'DEPOTR' + IPROC=IPROC+1 YWORK2(7,IPROC) = 'VTURB_' IPROC=IPROC+1 YWORK2(7,IPROC) = 'HTURB_' @@ -1464,6 +1475,8 @@ IF (LBU_RRC) THEN IPROC=IPROC+1 YWORK2(7,IPROC) = 'SEDI_' IPROC=IPROC+1 + YWORK2(7,IPROC) = 'DEPO_' + IPROC=IPROC+1 YWORK2(7,IPROC) = 'CDEPI_' IPROC=IPROC+1 YWORK2(7,IPROC) = 'COND_' @@ -2353,6 +2366,9 @@ IF (LBU_RSV) THEN IF ( (HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') .AND. OCHTRANS ) & IPROACTV(12+JSV,IPROC) = NDCONVSV IPROC=IPROC+1 + IF ( ODRAGTREE .AND. ODEPOTREE ) & + IPROACTV(12+JSV,IPROC) = NDEPOTRSV + IPROC=IPROC+1 IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,IPROC) = NVTURBSV IPROC=IPROC+1 IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN @@ -2386,6 +2402,8 @@ IF (LBU_RSV) THEN IPROC=IPROC+1 YWORK2(12+JSV,IPROC) = 'DCONV_' IPROC=IPROC+1 + YWORK2(12+JSV,IPROC) = 'DEPOTR' + IPROC=IPROC+1 YWORK2(12+JSV,IPROC) = 'VTURB_' IPROC=IPROC+1 YWORK2(12+JSV,IPROC) = 'HTURB_' @@ -2708,6 +2726,11 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM YWORK2(12+JSV,ILAST_PROC_NBR)= 'SEDI_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 END IF + IF (LDEPOC) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'DEPO_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEVA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90 index 5ef8d1ad78d4caf8a6f198ae6663139b2ed4cb32..eaddafac36a1f4c12e861b4d3a3825e972e82059 100644 --- a/src/MNH/ini_elecn.f90 +++ b/src/MNH/ini_elecn.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/ini_elecn.f90,v $ $Revision: 1.1.2.1.10.1.2.2 $ $Date: 2014/01/09 13:25:03 $ !----------------------------------------------------------------- ! ###################### MODULE MODI_INI_ELEC_n @@ -74,6 +74,7 @@ END MODULE MODI_INI_ELEC_n !! J.-P. Pinty 01/07/12 Add a non-homogeneous Neuman fair-weather !! boundary condition at the top !! J.-P. Pinty 15/11/13 Initialize the flash maps +!! 10/2016 (C.Lac) Add droplet deposition !! !------------------------------------------------------------------------------- ! @@ -100,7 +101,10 @@ USE MODD_ELEC_FLASH USE MODD_GET_n, ONLY : CGETINPRC, CGETINPRR, CGETINPRS, CGETINPRG, CGETINPRH, & CGETCLOUD, CGETSVT USE MODD_PRECIP_n, ONLY : XINPRR, XACPRR, XINPRS, XACPRS, XINPRG, XACPRG, & - XINPRH, XACPRH, XINPRC, XACPRC, XINPRR3D, XEVAP3D + XINPRH, XACPRH, XINPRC, XACPRC, XINPRR3D, XEVAP3D,& + XINDEP,XACDEP +USE MODD_PARAM_ICE, ONLY : LDEPOSC +USE MODD_PARAM_C2R2, ONLY : LDEPOC USE MODD_CLOUDPAR_n, ONLY : NSPLITR USE MODD_REF_n, ONLY : XRHODJ, XTHVREF USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT @@ -206,6 +210,16 @@ ELSE ALLOCATE( XACPRH(0,0) ) END IF ! +IF ( LDEPOSC) THEN + ALLOCATE(XINDEP(IIU,IJU)) + ALLOCATE(XACDEP(IIU,IJU)) + XINDEP(:,:)=0.0 + XACDEP(:,:)=0.0 +ELSE + ALLOCATE(XINDEP(0,0)) + ALLOCATE(XACDEP(0,0)) +END IF +! IF(SIZE(XINPRR) == 0) RETURN ! ! @@ -216,7 +230,7 @@ IF(SIZE(XINPRR) == 0) RETURN ! CALL READ_PRECIP_FIELD (HINIFILE, HLUOUT, CPROGRAM, CCONF, & CGETINPRC,CGETINPRR,CGETINPRS,CGETINPRG,CGETINPRH, & - XINPRC, XACPRC, XINPRR, XINPRR3D, XEVAP3D, & + XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D, & XACPRR, XINPRS, XACPRS, XINPRG, XACPRG, XINPRH, XACPRH) ! ! diff --git a/src/MNH/ini_lesn.f90 b/src/MNH/ini_lesn.f90 index 0a922a93aca5a2994768ca395de5a27e72da580d..e2a4b6890d4fadc3979eace5ea31d2b63aebdc36 100644 --- a/src/MNH/ini_lesn.f90 +++ b/src/MNH/ini_lesn.f90 @@ -32,6 +32,7 @@ !! Original 07/02/00 !! Modification 01/02/01 (D.Gazen) add module MODD_NSV for NSV variable !! 06/11/02 (V. Masson) add LES budgets +!! 10/2016 (C.Lac) Add droplet deposition !! !! -------------------------------------------------------------------------- ! @@ -1718,6 +1719,8 @@ ALLOCATE(XLES_INT_TKE (NLES_TIMES)) ALLOCATE(XLES_ZMAXCF (NLES_TIMES)) ALLOCATE(XLES_ZMAXCF2 (NLES_TIMES)) ALLOCATE(XLES_INPRR (NLES_TIMES)) +ALLOCATE(XLES_INPRC (NLES_TIMES)) +ALLOCATE(XLES_INDEP (NLES_TIMES)) ALLOCATE(XLES_RAIN_INPRR(NLES_TIMES)) ALLOCATE(XLES_ACPRR (NLES_TIMES)) ALLOCATE(XLES_PRECFR (NLES_TIMES)) @@ -1754,6 +1757,8 @@ XLES_ZMAXCF2 = XUNDEF XLES_PRECFR = XUNDEF XLES_ACPRR = XUNDEF XLES_INPRR = XUNDEF +XLES_INPRC = XUNDEF +XLES_INDEP = XUNDEF XLES_RAIN_INPRR = XUNDEF XLES_SWU = XUNDEF XLES_SWD = XUNDEF diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index 79b357084855a0282e54663ae0bb0fad271a9bba..17154b38c3ea16e6285b5a27c849bfb0fe72741d 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -51,6 +51,7 @@ END MODULE MODI_INI_MICRO_n !! Original 27/11/02 !! O.Geoffroy (03/2006) : Add KHKO scheme !! Modification 01/2016 (JP Pinty) Add LIMA +!! C.LAc 10/2016 Add budget for droplet deposition !! !! -------------------------------------------------------------------------- ! @@ -65,7 +66,8 @@ USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT USE MODD_PARAM_n, ONLY : CCLOUD USE MODD_PRECIP_n, ONLY : XINPRR, XACPRR, XINPRS, XACPRS, XINPRG, XACPRG, & - XINPRH, XACPRH, XINPRC, XACPRC, XINPRR3D, XEVAP3D + XINPRH, XACPRH, XINPRC, XACPRC, XINPRR3D, XEVAP3D,& + XINDEP,XACDEP USE MODD_FIELD_n, ONLY : XRT, XSVT, XTHT, XPABST, XTHM, XRCM USE MODD_GRID_n, ONLY : XZZ USE MODD_METRICS_n, ONLY : XDXX,XDYY,XDZZ,XDZX,XDZY @@ -73,8 +75,8 @@ USE MODD_REF_n, ONLY : XRHODREF USE MODD_DYN_n, ONLY : XTSTEP USE MODD_CLOUDPAR_n, ONLY : NSPLITR, NSPLITG USE MODD_PARAM_n, ONLY : CELEC -USE MODD_PARAM_ICE, ONLY : LSEDIC -USE MODD_PARAM_C2R2, ONLY : LSEDC, LACTIT +USE MODD_PARAM_ICE, ONLY : LSEDIC, LDEPOSC +USE MODD_PARAM_C2R2, ONLY : LSEDC, LACTIT, LDEPOC ! USE MODI_READ_PRECIP_FIELD USE MODI_INI_CLOUD @@ -167,6 +169,17 @@ ELSE ALLOCATE(XACPRC(0,0)) END IF ! +IF ( (((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. LDEPOC) & + .OR. ( (CCLOUD(1:3) == 'ICE') .AND. LDEPOSC) ) THEN + ALLOCATE(XINDEP(IIU,IJU)) + ALLOCATE(XACDEP(IIU,IJU)) + XINDEP(:,:)=0.0 + XACDEP(:,:)=0.0 +ELSE + ALLOCATE(XINDEP(0,0)) + ALLOCATE(XACDEP(0,0)) +END IF +! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN ALLOCATE(XINPRS(IIU,IJU)) ALLOCATE(XACPRS(IIU,IJU)) @@ -225,9 +238,9 @@ END IF !* 3. INITIALIZE MODD_PRECIP_n variables ! ---------------------------------- ! -CALL READ_PRECIP_FIELD(CINIFILE,CLUOUT,CPROGRAM,CCONF, & - CGETRCT,CGETRRT,CGETRST,CGETRGT,CGETRHT, & - XINPRC,XACPRC,XINPRR,XINPRR3D,XEVAP3D, & +CALL READ_PRECIP_FIELD(CINIFILE,CLUOUT,CPROGRAM,CCONF, & + CGETRCT,CGETRRT,CGETRST,CGETRGT,CGETRHT, & + XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D,& XACPRR,XINPRS,XACPRS,XINPRG,XACPRG, XINPRH,XACPRH ) ! ! diff --git a/src/MNH/lesn.f90 b/src/MNH/lesn.f90 index 897c1a861fedda6d68dfe8b0a7f0221be65574fe..b2d249e0eace32d2879e1a8a1e1d16c46adaf678 100644 --- a/src/MNH/lesn.f90 +++ b/src/MNH/lesn.f90 @@ -2,7 +2,7 @@ !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. -! $Source$ +! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/lesn.f90,v $ !----------------------------------------------------------------- ! ################# SUBROUTINE LES_n @@ -40,6 +40,7 @@ !! 12/10 (R.Honnert) Add EDKF mass flux in BL height !! 10/09 (P. Aumond) Add possibility of user maskS !! 10/14 (C.Lac) Correction on user masks +!! 10/16 (C.Lac) Add ground droplet deposition amount !! !! -------------------------------------------------------------------------- ! @@ -62,8 +63,11 @@ USE MODD_PARAM_n USE MODD_TURB_n USE MODD_METRICS_n USE MODD_LUNIT_n -USE MODD_PRECIP_n, ONLY: XINPRR,XACPRR,XINPRR3D,XEVAP3D +USE MODD_PARAM_n, ONLY: CCLOUD +USE MODD_PRECIP_n, ONLY: XINPRR,XACPRR,XINPRR3D,XEVAP3D,XINPRC,XINDEP USE MODD_NSV, ONLY : NSV, NSV_CS +USE MODD_PARAM_ICE, ONLY: LDEPOSC +USE MODD_PARAM_C2R2, ONLY: LDEPOC ! USE MODI_SHUMAN USE MODI_GRADIENT_M @@ -774,6 +778,21 @@ END IF ! conversion de m en mm XLES_ACPRR(NLES_CURRENT_TCOUNT)=XLES_ACPRR(NLES_CURRENT_TCOUNT)*1000. + ENDIF +! + IF (LUSERC ) THEN + CALL LES_MEAN_ll ( XINPRC, LLES_CURRENT_CART_MASK(:,:,1), & + XLES_INPRC(NLES_CURRENT_TCOUNT) ) +! conversion from m/s to mm/day + XLES_INPRC(NLES_CURRENT_TCOUNT)=XLES_INPRC(NLES_CURRENT_TCOUNT)*3.6E6*24. + IF ( (((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. LDEPOC) & + .OR. ( (CCLOUD(1:3) == 'ICE') .AND. LDEPOSC) ) THEN + CALL LES_MEAN_ll ( XINDEP, LLES_CURRENT_CART_MASK(:,:,1), & + XLES_INDEP(NLES_CURRENT_TCOUNT) ) +! conversion from m/s to mm/day + XLES_INDEP(NLES_CURRENT_TCOUNT)=XLES_INDEP(NLES_CURRENT_TCOUNT)*3.6E6*24. + ENDIF + ENDIF ! IF (LUSERR) & diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index f59d0281a46b02096cbec0e7db82cf323d07675d..a132954f2bacc53d39a053c8014a6b0f442314cd 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -39,6 +39,7 @@ !! C. Barthe 19/11/09 add budget terms for electricity !! C.Lac 04/2016 negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2 !! C. Barthe /16 add budget terms for LIMA +!! C. LAc 10/2016 add droplets deposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -279,7 +280,7 @@ INTEGER, SAVE :: NHINCTH ! Heterogeneous Nucleation by Contact C3R5 INTEGER, SAVE :: NHONHTH ! Haze Homogeneous Nucleation C3R5 INTEGER, SAVE :: NHONCTH ! droplet homogeneous nucleation C3R5 INTEGER, SAVE :: NHONRTH ! drop homogeneous nucleation C3R5 -INTEGER, SAVE :: NCEDSTH ! adjustment C3R5 +INTEGER, SAVE :: NCEDSTH ! adjustment ! ! Allowed processes for the budget of RTKE (kinetic energy) ! @@ -330,7 +331,7 @@ INTEGER, SAVE :: NDEPGRV ! DEPosition on Graupel ICE3 INTEGER, SAVE :: NCDEPIRV ! Cond./DEPosition on ice ICE3 INTEGER, SAVE :: NHINDRV ! Heterogeneous Nucleation by Deposition C3R5 INTEGER, SAVE :: NHONHRV ! Haze Homogeneous Nucleation C3R5 -INTEGER, SAVE :: NCEDSRV ! adjustement C3R5 +INTEGER, SAVE :: NCEDSRV ! adjustement ! ! Allowed processes for the budget of moist variable RRC (cloud water) ! @@ -363,6 +364,8 @@ INTEGER, SAVE :: NBERFIRC ! BERgeron-FIndeisen gth. ICE3 INTEGER, SAVE :: NCDEPIRC ! Cond./DEPosition on ice ICE3 INTEGER, SAVE :: NHENURC ! CCN Activation C2R2 INTEGER, SAVE :: NSEDIRC ! sedimentation C2R2 +INTEGER, SAVE :: NDEPORC ! ground deposition +INTEGER, SAVE :: NDEPOTRRC ! deposition on tree INTEGER, SAVE :: NWETHRC ! wet growth of hail INTEGER, SAVE :: NHINCRC ! Heterogeneous Nucleation by Contact C3R5 INTEGER, SAVE :: NHONCRC ! droplet homogeneous nucleation C3R5 @@ -520,6 +523,8 @@ INTEGER, SAVE :: NDIFSV ! numerical diffusion INTEGER, SAVE :: NRELSV ! relaxation INTEGER, SAVE :: NDCONVSV ! Deep CONVection INTEGER, SAVE :: NMAFLSV ! mass flux +INTEGER, SAVE :: NDEPOSV ! deposition on the ground +INTEGER, SAVE :: NDEPOTRSV ! deposition on tree INTEGER, SAVE :: NHTURBSV ! horizontal turbulence INTEGER, SAVE :: NVTURBSV ! vertical turbulence INTEGER, SAVE :: NCHEMSV ! chemistry activity diff --git a/src/MNH/modd_lesn.f90 b/src/MNH/modd_lesn.f90 index 682a95d757219657878ef7db4d5444d551553839..dd37f5461e2c5e7c7146c82e8ef724ca066ae8d3 100644 --- a/src/MNH/modd_lesn.f90 +++ b/src/MNH/modd_lesn.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ +! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/modd_lesn.f90,v $ $Revision: 1.2.2.2.2.1.2.1.12.2 $ $Date: 2014/01/09 15:01:56 $ !----------------------------------------------------------------- !----------------------------------------------------------------- ! ############### @@ -43,6 +43,7 @@ !! V. Masson Jan. 20, 2000 New LES routines variables & // !! V. Masson Nov. 6, 2002 LES budgets !! O.Thouron June, 2008 New radiation diagnostics +!! 10/2016 (C.Lac) Add droplet deposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -574,6 +575,8 @@ TYPE LES_t REAL, DIMENSION(:), POINTER :: XLES_HWP=>NULL() ! hail w path REAL, DIMENSION(:), POINTER :: XLES_INT_TKE=>NULL() ! vert. integratedtke REAL, DIMENSION(:), POINTER :: XLES_INPRR=>NULL() ! inst precip rate + REAL, DIMENSION(:), POINTER :: XLES_INPRC=>NULL() ! inst cloud precip rate + REAL, DIMENSION(:), POINTER :: XLES_INDEP=>NULL() ! inst cloud deposition rate REAL, DIMENSION(:), POINTER :: XLES_RAIN_INPRR=>NULL()!flux prec rainy cell REAL, DIMENSION(:), POINTER :: XLES_ACPRR=>NULL() ! acc precip rate REAL, DIMENSION(:), POINTER :: XLES_ZMAXCF=>NULL() ! z de max cf @@ -1027,6 +1030,8 @@ REAL, DIMENSION(:), POINTER :: XLES_GWP=>NULL() REAL, DIMENSION(:), POINTER :: XLES_HWP=>NULL() REAL, DIMENSION(:), POINTER :: XLES_INT_TKE=>NULL() REAL, DIMENSION(:), POINTER :: XLES_INPRR=>NULL() +REAL, DIMENSION(:), POINTER :: XLES_INPRC=>NULL() +REAL, DIMENSION(:), POINTER :: XLES_INDEP=>NULL() REAL, DIMENSION(:), POINTER :: XLES_RAIN_INPRR=>NULL() REAL, DIMENSION(:), POINTER :: XLES_ACPRR=>NULL() REAL, DIMENSION(:), POINTER :: XLES_ZMAXCF=>NULL() @@ -1452,6 +1457,8 @@ LES_MODEL(KFROM)%XLES_GWP=>XLES_GWP LES_MODEL(KFROM)%XLES_HWP=>XLES_HWP LES_MODEL(KFROM)%XLES_INT_TKE=>XLES_INT_TKE LES_MODEL(KFROM)%XLES_INPRR=>XLES_INPRR +LES_MODEL(KFROM)%XLES_INPRC=>XLES_INPRC +LES_MODEL(KFROM)%XLES_INDEP=>XLES_INDEP LES_MODEL(KFROM)%XLES_RAIN_INPRR=>XLES_RAIN_INPRR LES_MODEL(KFROM)%XLES_ACPRR=>XLES_ACPRR LES_MODEL(KFROM)%XLES_ZMAXCF=>XLES_ZMAXCF @@ -1878,6 +1885,8 @@ XLES_GWP=>LES_MODEL(KTO)%XLES_GWP XLES_HWP=>LES_MODEL(KTO)%XLES_HWP XLES_INT_TKE=>LES_MODEL(KTO)%XLES_INT_TKE XLES_INPRR=>LES_MODEL(KTO)%XLES_INPRR +XLES_INPRC=>LES_MODEL(KTO)%XLES_INPRC +XLES_INDEP=>LES_MODEL(KTO)%XLES_INDEP XLES_RAIN_INPRR=>LES_MODEL(KTO)%XLES_RAIN_INPRR XLES_ACPRR=>LES_MODEL(KTO)%XLES_ACPRR XLES_ZMAXCF=>LES_MODEL(KTO)%XLES_ZMAXCF diff --git a/src/MNH/modd_param_c2r2.f90 b/src/MNH/modd_param_c2r2.f90 index 3941eb8715929fc245a5a9b2bb68c6768037a38b..83d7f5d1cce8141fc6afc959356126181e0d2c1d 100644 --- a/src/MNH/modd_param_c2r2.f90 +++ b/src/MNH/modd_param_c2r2.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_param_c2r2.f90,v $ $Revision: 1.1.8.1.2.1.16.1.2.1 $ ! MASDEV4_7 modd 2006/10/16 14:23:23 !----------------------------------------------------------------- ! ###################### @@ -44,22 +44,26 @@ !! MODIFICATIONS !! ------------- !! Original 04/11/2000 +!! 10/2016 (C.Lac) Add droplet deposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! REAL,SAVE :: XALPHAR,XNUR, & ! Raindrop distribution parameters - XALPHAC,XNUC ! Cloud droplet distribution parameters + XALPHAC,XNUC ! Cloud droplet distribution parameters ! LOGICAL, SAVE :: LRAIN ! TRUE to enable the formation of rain LOGICAL, SAVE :: LSEDC ! TRUE to enable the droplet sedimentation LOGICAL, SAVE :: LACTIT ! TRUE to enable the usage of ! dT/dt in CCN activation (twomey and CPB98) LOGICAL, SAVE :: LSUPSAT ! TRUE for prognostic supersaturation +LOGICAL, SAVE :: LDEPOC ! TRUE to enable cloud droplet deposition +LOGICAL, SAVE :: LACTTKE ! TRUE to take into account TKE in W for activation ! REAL,SAVE :: XCHEN,XKHEN, & ! Parameters used to define the CCN - XMUHEN,XBETAHEN ! activation spectra (CPB or TWO) + XMUHEN,XBETAHEN ! activation spectra (CPB or TWO) +REAL,SAVE :: XVDEPOC ! Droplet deposition velocity ! CHARACTER(LEN=3),SAVE :: HPARAM_CCN ! Parameterization used for the CCN activation CHARACTER(LEN=3),SAVE :: HINI_CCN ! Initialization type of the CCN activation diff --git a/src/MNH/modd_param_ice.f90 b/src/MNH/modd_param_ice.f90 index 9089ba53db080735235c77a88d82ae31d49564a2..987a403fdcb79dab2b51d21f3df1f9ca50b155f2 100644 --- a/src/MNH/modd_param_ice.f90 +++ b/src/MNH/modd_param_ice.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/modd_param_ice.f90,v $ $Revision: 1.1.8.1.2.1.18.2 $ ! MASDEV4_7 modd 2006/10/16 14:23:23 !----------------------------------------------------------------- ! ##################### @@ -37,6 +37,7 @@ !! ------------- !! Original 14/12/95 !! 01/04/14 (C.Lac) Add LCONVHG +!! 01/10/16 (C.Lac) Add droplet deposition for fog !! !------------------------------------------------------------------------------- ! @@ -49,6 +50,9 @@ LOGICAL, SAVE :: LWARM ! When .TRUE. activates the formation of rain by ! the warm microphysical processes LOGICAL, SAVE :: LSEDIC ! TRUE to enable the droplet sedimentation LOGICAL, SAVE :: LCONVHG ! TRUE to allow the conversion from hail to graupel +LOGICAL, SAVE :: LDEPOSC ! TRUE to enable cloud droplet deposition +REAL, SAVE :: XVDEPOSC ! Droplet deposition velocity +! ! CHARACTER(LEN=4), SAVE :: CPRISTINE_ICE ! Pristine ice type PLAT, COLU or BURO CHARACTER(LEN=4), SAVE :: CSEDIM ! Sedimentation calculation mode diff --git a/src/MNH/modd_precipn.f90 b/src/MNH/modd_precipn.f90 index db85e893f15efb42ce4edfcd59044bf59b73d7ed..1a7ede313c278cc21c81c391bc24bfb3097d3462 100644 --- a/src/MNH/modd_precipn.f90 +++ b/src/MNH/modd_precipn.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_precipn.f90,v $ $Revision: 1.2.2.1.2.1.18.1 $ ! MASDEV4_7 modd 2006/10/17 13:34:38 !----------------------------------------------------------------- ! #################### @@ -35,6 +35,7 @@ !! ------------- !! !! J.-P. Pinty 29/11/02 add C3R5, ICE2, ICE4 +!! 10/2016 (C.Lac) Add droplet deposition !! !------------------------------------------------------------------------------- ! @@ -47,6 +48,7 @@ IMPLICIT NONE TYPE PRECIP_t ! REAL, DIMENSION(:,:), POINTER :: XINPRC=>NULL(), XACPRC=>NULL(), & + XINDEP=>NULL(), XACDEP=>NULL(), & XINPRR=>NULL(), XACPRR=>NULL(), & XINPRS=>NULL(), XACPRS=>NULL(), XINPRG=>NULL(), & XACPRG=>NULL(), XINPRH=>NULL(), XACPRH=>NULL() @@ -54,18 +56,19 @@ TYPE PRECIP_t ! precipitation fields of Cloud,Rain, ! Snow, Graupel and Hail REAL, DIMENSION(:,:,:), POINTER :: XINPRR3D=>NULL(), & !Instant precip 3D - XEVAP3D=>NULL() ! Evap profile 3D + XEVAP3D=>NULL()! Evap profile 3D ! END TYPE PRECIP_t TYPE(PRECIP_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: PRECIP_MODEL REAL, DIMENSION(:,:), POINTER :: XINPRC=>NULL(), XACPRC=>NULL(), & + XINDEP=>NULL(), XACDEP=>NULL(), & XINPRR=>NULL(), XACPRR=>NULL(), & XINPRG=>NULL(), XINPRS=>NULL(), XACPRS=>NULL(), & XACPRG=>NULL(), XINPRH=>NULL(), XACPRH=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XINPRR3D=>NULL(), & !Instant precip 3D - XEVAP3D=>NULL() ! Evap profile 3D + XEVAP3D=>NULL()! Evap profile 3D CONTAINS @@ -75,6 +78,8 @@ INTEGER, INTENT(IN) :: KFROM, KTO ! Save current state for allocated arrays PRECIP_MODEL(KFROM)%XINPRC=>XINPRC PRECIP_MODEL(KFROM)%XACPRC=>XACPRC +PRECIP_MODEL(KFROM)%XINDEP=>XINDEP +PRECIP_MODEL(KFROM)%XACDEP=>XACDEP PRECIP_MODEL(KFROM)%XINPRR=>XINPRR PRECIP_MODEL(KFROM)%XINPRR3D=>XINPRR3D PRECIP_MODEL(KFROM)%XEVAP3D=>XEVAP3D @@ -89,6 +94,8 @@ PRECIP_MODEL(KFROM)%XACPRH=>XACPRH ! Current model is set to model KTO XINPRC=>PRECIP_MODEL(KTO)%XINPRC XACPRC=>PRECIP_MODEL(KTO)%XACPRC +XINDEP=>PRECIP_MODEL(KTO)%XINDEP +XACDEP=>PRECIP_MODEL(KTO)%XACDEP XINPRR=>PRECIP_MODEL(KTO)%XINPRR XINPRR3D=>PRECIP_MODEL(KTO)%XINPRR3D XEVAP3D=>PRECIP_MODEL(KTO)%XEVAP3D diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90 index 7ceaa5ddaac89a38dffd12445cae0260a0489c30..19e8f075cb43c92a9378f3762e01fe0063593fc3 100644 --- a/src/MNH/modn_budget.f90 +++ b/src/MNH/modn_budget.f90 @@ -227,6 +227,7 @@ !! D. Gazen 22/01/01 add NCHEMSV !! C.Lac 04/2016 negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2 !! C. Barthe /16 add budget terms for LIMA +!! C.Lac 10/2016 Add droplet deposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -269,7 +270,8 @@ NAMELIST/NAM_BU_RRC/LBU_RRC, NASSERC, NNESTRC, NADVRC, NFRCRC, & NDIFRC, NRELRC, NDCONVRC, NHTURBRC, NVTURBRC, NNEGARC, NACCRRC, & NAUTORC, NCONDRC, NHONRC, NRIMRC, NWETGRC, NDRYGRC, NIMLTRC, & NBERFIRC, NCDEPIRC, NHENURC, NSEDIRC, NWETHRC, NNETURRC, & - NNEADVRC,NNECONRC, NHINCRC, NHONCRC, NCEDSRC, NREVARC + NNEADVRC,NNECONRC, NHINCRC, NHONCRC, NCEDSRC, NREVARC,& + NDEPORC,NDEPOTRRC ! NAMELIST/NAM_BU_RRR/LBU_RRR, NASSERR, NNESTRR, NADVRR, NFRCRR, & NDIFRR, NRELRR, NNEGARR, NACCRRR, NAUTORR, NREVARR, NSEDIRR, & diff --git a/src/MNH/modn_param_c2r2.f90 b/src/MNH/modn_param_c2r2.f90 index 7437809ebb6718c7eb8169989f7602d757d0ad1c..0f696b407655385d2651686bc96552ec1023798f 100644 --- a/src/MNH/modn_param_c2r2.f90 +++ b/src/MNH/modn_param_c2r2.f90 @@ -5,8 +5,12 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modn_param_c2r2.f90,v $ $Revision: 1.1.8.1.2.1.16.1.2.1 $ ! MASDEV4_7 modn 2006/10/16 14:23:23 +!! +!!Modifications +!! +!! 10/2016 (C.Lac) Add droplet deposition !----------------------------------------------------------------- ! ######spl MODULE MODN_PARAM_C2R2 @@ -27,6 +31,7 @@ NAMELIST/NAM_PARAM_C2R2/HPARAM_CCN,HINI_CCN,HTYPE_CCN, & XCONC_CCN,XR_MEAN_CCN,XLOGSIG_CCN, & XFSOLUB_CCN,XACTEMP_CCN, & XALPHAC,XNUC,XALPHAR,XNUR, & - XAERDIFF, XAERHEIGHT + XAERDIFF, XAERHEIGHT, LACTTKE, & + LDEPOC, XVDEPOC ! END MODULE MODN_PARAM_C2R2 diff --git a/src/MNH/modn_param_ice.f90 b/src/MNH/modn_param_ice.f90 index 72f4ccddec8f5ce627eafc3dc6e9930783b0d0ef..b233bf4f0ece68e292d755fdda587e165da842e0 100644 --- a/src/MNH/modn_param_ice.f90 +++ b/src/MNH/modn_param_ice.f90 @@ -5,8 +5,12 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/modn_param_ice.f90,v $ $Revision: 1.2.2.1.2.1.18.2 $ ! MASDEV4_7 modn 2006/10/16 14:23:23 +!! +!! MODIFICATIONS +!! +!! 10/2016 (C.Lac) Add droplet deposition !----------------------------------------------------------------- ! ##################### MODULE MODN_PARAM_ICE @@ -21,6 +25,6 @@ USE MODD_PARAM_ICE ! IMPLICIT NONE ! -NAMELIST/NAM_PARAM_ICE/LWARM,LSEDIC,LCONVHG,CPRISTINE_ICE,CSEDIM +NAMELIST/NAM_PARAM_ICE/LWARM,LSEDIC,LCONVHG,CPRISTINE_ICE,CSEDIM,LDEPOSC,XVDEPOSC ! END MODULE MODN_PARAM_ICE diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90 index 6b186873aeea9f9beae63b3cb5e3b2709eb0a237..671f1d8aa00deb4aaeddc94be5a32abd33f5b443 100644 --- a/src/MNH/rain_c2r2_khko.f90 +++ b/src/MNH/rain_c2r2_khko.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/rain_c2r2_khko.f90,v $ $Revision: 1.1.2.1.2.3 $ !----------------------------------------------------------------- ! ###################### MODULE MODI_RAIN_C2R2_KHKO @@ -22,7 +22,8 @@ INTERFACE PW_NU,PDTHRAD, PTHS, PRVS, PRCS, PRRS, & PCNT, PCCT, PCRT, PCNS, PCCS, PCRS, & PINPRC, PINPRR, PINPRR3D, PEVAP3D,PAEROT, & - PSOLORG, PMI, HACTCCN ) + PSOLORG, PMI, HACTCCN, & + PINDEP, PSUPSAT, PNACT ) ! ! ! @@ -76,6 +77,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water C. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCRS ! Rain water C. source ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR ! Rain instant precip REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile @@ -83,6 +85,8 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PAEROT ! Aerosol concentration REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSOLORG ![%] solubility fraction of soa REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PMI CHARACTER(LEN=4), INTENT(IN) :: HACTCCN ! kind of CCN activation scheme +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSUPSAT !sursat +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNACT !concentrtaion d'aérosols activés au temps t ! END SUBROUTINE RAIN_C2R2_KHKO END INTERFACE @@ -96,7 +100,8 @@ END MODULE MODI_RAIN_C2R2_KHKO PW_NU,PDTHRAD, PTHS, PRVS, PRCS, PRRS, & PCNT, PCCT, PCRT, PCNS, PCCS, PCRS, & PINPRC, PINPRR, PINPRR3D, PEVAP3D,PAEROT, & - PSOLORG, PMI, HACTCCN ) + PSOLORG, PMI, HACTCCN, & + PINDEP, PSUPSAT, PNACT ) ! ###################################################################### ! !!**** * - compute the explicit microphysical sources of cloud water and @@ -211,6 +216,8 @@ END MODULE MODI_RAIN_C2R2_KHKO !! J.Escobar : 07/10/2015 , Bug in parallel run , => comment test on INUCT>1 containing GET_HALO !! M.Mazoyer : 04/2016 : Temperature radiative tendency used for !! activation by cooling (OACTIT : mis en commentaires) +!! M.Mazoyer : 04/2016 : Add supersaturation diagnostics +!! C.Lac : 07/2016 : Add droplet deposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -292,6 +299,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water C. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCRS ! Rain water C. source ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR ! Rain instant precip REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile @@ -299,6 +307,8 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PAEROT ! Aerosol concentration REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSOLORG ![%] solubility fraction of soa REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PMI CHARACTER(LEN=4), INTENT(IN) :: HACTCCN ! kind of CCN activation scheme +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSUPSAT !sursat +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNACT !concentrtaion d'aérosols activés au temps t ! !* 0.2 Declarations of local variables : ! @@ -328,6 +338,7 @@ INTEGER :: ISEDIM, INUCT, & ! Case number of sedimentation, nucleation, ISELF, IACCR, ISCBU LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & :: GSEDIM ! Test where to compute the SED processes +LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & :: GNUCT ! Test where to compute the HEN process LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & @@ -790,6 +801,8 @@ INUCT = COUNTJV( GNUCT(:,:,:),I1(:),I2(:),I3(:)) END IF END IF ZZW1LOG(:,:,:) = UNPACK( 100*ZSMAX(:),MASK=GNUCT(:,:,:),FIELD=0.0 ) + PSUPSAT(:,:,:) = 0.0 + PSUPSAT(:,:,:) = ZZW1LOG(:,:,:) ! ! the CCN spectra formula uses ZSMAX in percent ! @@ -809,6 +822,9 @@ INUCT = COUNTJV( GNUCT(:,:,:),I1(:),I2(:),I3(:)) ZW(:,:,:) = PCNS(:,:,:) PCNS(:,:,:) = UNPACK( MAX( ZZW1(:),ZCNS(:) ),MASK=GNUCT(:,:,:), & FIELD=ZW(:,:,:) ) + PNACT(:,:,:) = 0.0 + PNACT(:,:,:) = MAX( (UNPACK(ZZW1(:),MASK=GNUCT(:,:,:), & + FIELD=ZW(:,:,:))- PCCS(:,:,:))*PTSTEP ,0.0 ) ! DEALLOCATE(IVEC1) DEALLOCATE(ZVEC1) @@ -860,8 +876,8 @@ INUCT = COUNTJV( GNUCT(:,:,:),I1(:),I2(:),I3(:)) ! END IF ! IF ( OCLOSE_OUT ) THEN - YRECFM ='SURSAT' - YCOMMENT='X_Y_Z_SURSAT' + YRECFM ='SMAX' + YCOMMENT='X_Y_Z_SMAX' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZZW1LOG,IGRID,ILENCH,YCOMMENT,IRESP) @@ -1792,7 +1808,6 @@ DO JN = 1 , KSPLITR END WHERE ZWSEDR(:,:,:) = UNPACK( ZZW1(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) ZWSEDC(:,:,:) = UNPACK( ZZW2(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) - DEALLOCATE(ZRCT) DEALLOCATE(ZCCT) DEALLOCATE(ZLBDC) END IF @@ -1876,6 +1891,26 @@ DO JN = 1 , KSPLITR PRRS(:,:,:) = ( PRRS(:,:,:) + ZPRRT(:,:,:) ) / PTSTEP PCRS(:,:,:) = ( PCRS(:,:,:) + ZPCRT(:,:,:) ) / PTSTEP END IF +! + IF (OSEDC .AND. OCLOSE_OUT) THEN + YRECFM ='SEDFLUXC' + YCOMMENT='X_Y_Z_SEDFLUXC' + ILENCH=LEN(YCOMMENT) + IGRID = 1 + CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZWSEDC,IGRID,ILENCH,YCOMMENT,IRESP) +! + YRECFM ='SEDFLUXR' + YCOMMENT='X_Y_Z_SEDFLUXR' + ILENCH=LEN(YCOMMENT) + IGRID = 1 + CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZWSEDR,IGRID,ILENCH,YCOMMENT,IRESP) +! +! YRECFM ='SPEEDC' +! YCOMMENT='X_Y_Z_SPEEDC' +! ILENCH=LEN(YCOMMENT) +! IGRID = 1 +! CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',PSPEEDC,IGRID,ILENCH,YCOMMENT,IRESP) + END IF END DO ! !* 2.5 budget storage @@ -1889,6 +1924,27 @@ IF (LBUDGET_SV) THEN CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),& &'SEDI_BU_RSV') ! RCR END IF +! +!* 2.6 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND +! +IF (LDEPOC) THEN + GDEP(:,:) = .FALSE. + GDEP(IIB:IIE,IJB:IJE) = PRCS(IIB:IIE,IJB:IJE,2) >0 .AND. & + PCCS(IIB:IIE,IJB:IJE,2) >0 + WHERE (GDEP) + PRCS(:,:,2) = PRCS(:,:,2) - XVDEPOC * PRCT(:,:,2) * PRHODJ(:,:,2) + PCCS(:,:,2) = PCCS(:,:,2) - XVDEPOC * PCCT(:,:,2) * PRHODJ(:,:,2) + PINPRC(:,:) = PINPRC(:,:) + XVDEPOC * PRCT(:,:,2) * PRHODJ(:,:,2) /XRHOLW + PINDEP(:,:) = XVDEPOC * PRCT(:,:,2) * PRHODJ(:,:,2) /XRHOLW + END WHERE +END IF +! +!* 2.7 budget storage +! +IF ( LBUDGET_RC .AND. LDEPOC ) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') +IF ( LBUDGET_SV .AND. LDEPOC ) & + CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'DEPO_BU_RSV') ! END SUBROUTINE C2R2_KHKO_SEDIMENTATION !------------------------------------------------------------------------------- diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index f78d0580057f9ebf7de2a8355caad0124a9c8624..e2f9fd9196b28fe58f31914d89fe0ffd29b6926d 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -18,7 +18,7 @@ INTERFACE PTHT, PRVT, PRCT, PRRT, PRIT, PRST, & PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, & PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, & + PINPRS, PINPRG, PSIGS,PINDEP, & PSEA, PTOWN, & PRHT, PRHS, PINPRH,OCONVHG ) ! @@ -70,6 +70,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile @@ -94,7 +95,7 @@ END MODULE MODI_RAIN_ICE PTHT, PRVT, PRCT, PRRT, PRIT, PRST, & PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, & PINPRC, PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, & + PINPRS, PINPRG, PSIGS,PINDEP, & PSEA, PTOWN, & PRHT, PRHS, PINPRH,OCONVHG ) ! ##################################################################### @@ -237,6 +238,7 @@ END MODULE MODI_RAIN_ICE !! July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for !! aircraft, ballon and profiler !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +!! C.LAc : 10/2016 : add droplets depposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -311,6 +313,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source ! ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile @@ -357,6 +360,7 @@ LOGICAL, DIMENSION(:), ALLOCATABLE :: GACC ! Test where to compute accretion LOGICAL, DIMENSION(:), ALLOCATABLE :: GDRY ! Test where to compute dry growth LOGICAL, DIMENSION(:), ALLOCATABLE :: GWET ! Test where to compute wet growth LOGICAL, DIMENSION(:), ALLOCATABLE :: GHAIL ! Test where to compute hail growth +LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1,IVEC2 ! Vectors of indices for ! interpolations REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for @@ -1268,6 +1272,24 @@ IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') IF ( KRR == 7 .AND. LBUDGET_RH) & CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') +! +! +!* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND +! +IF (LDEPOSC) THEN + GDEP(:,:) = .FALSE. + GDEP(IIB:IIE,IJB:IJE) = PRCS(IIB:IIE,IJB:IJE,2) >0 + WHERE (GDEP) + PRCS(:,:,2) = PRCS(:,:,2) - XVDEPOSC * PRCT(:,:,2) * PRHODJ(:,:,2) + PINPRC(:,:) = PINPRC(:,:) + XVDEPOSC * PRCT(:,:,2) * PRHODJ(:,:,2) /XRHOLW + PINDEP(:,:) = XVDEPOSC * PRCT(:,:,2) * PRHODJ(:,:,2) /XRHOLW + END WHERE +END IF +! +!* 2.5 budget storage +! +IF ( LBUDGET_RC .AND. LDEPOSC ) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') ! END SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT ! @@ -1709,6 +1731,24 @@ IF ( KRR == 7 .AND. LBUDGET_RH) & CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') ! +! +!* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND +! +IF (LDEPOSC) THEN + GDEP(:,:) = .FALSE. + GDEP(IIB:IIE,IJB:IJE) = PRCS(IIB:IIE,IJB:IJE,2) >0 + WHERE (GDEP) + PRCS(:,:,2) = PRCS(:,:,2) - XVDEPOSC * PRCT(:,:,2) * PRHODJ(:,:,2) + PINPRC(:,:) = PINPRC(:,:) + XVDEPOSC * PRCT(:,:,2) * PRHODJ(:,:,2) /XRHOLW + PINDEP(:,:) = XVDEPOSC * PRCT(:,:,2) * PRHODJ(:,:,2) /XRHOLW + END WHERE +END IF +! +!* 2.5 budget storage +! +IF ( LBUDGET_RC .AND. LDEPOSC ) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') + END SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT ! !------------------------------------------------------------------------------- diff --git a/src/MNH/read_precip_field.f90 b/src/MNH/read_precip_field.f90 index 152092773df551c88e133376d577186348cf591c..a1dd9add8e4e95c5620e99835b181e744b2d3230 100644 --- a/src/MNH/read_precip_field.f90 +++ b/src/MNH/read_precip_field.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/read_precip_field.f90,v $ $Revision: 1.1.8.2.2.1.2.1.12.2 $ ! MASDEV4_7 init 2007/03/22 18:24:54 !----------------------------------------------------------------- ! ############################# @@ -18,7 +18,7 @@ INTERFACE ! SUBROUTINE READ_PRECIP_FIELD(HINIFILE,HLUOUT,HPROGRAM,HCONF, & HGETRCT,HGETRRT,HGETRST,HGETRGT,HGETRHT, & - PINPRC,PACPRC,PINPRR,PINPRR3D,PEVAP3D, & + PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS,PINPRG,PACPRG,PINPRH,PACPRH ) ! ! @@ -35,6 +35,8 @@ CHARACTER (LEN=*), INTENT(IN) :: HGETRCT, HGETRRT, HGETRST, HGETRGT, H ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Droplet instant precip REAL, DIMENSION(:,:), INTENT(INOUT) :: PACPRC! Droplet accumulated precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP! Droplet instant deposition +REAL, DIMENSION(:,:), INTENT(INOUT) :: PACDEP! Droplet accumulated dep REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINPRR3D! Rain precipitation flux 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evaporation flux 3D @@ -55,7 +57,7 @@ END MODULE MODI_READ_PRECIP_FIELD ! ################################################################################ SUBROUTINE READ_PRECIP_FIELD(HINIFILE,HLUOUT,HPROGRAM,HCONF, & HGETRCT,HGETRRT,HGETRST,HGETRGT,HGETRHT, & - PINPRC,PACPRC,PINPRR,PINPRR3D,PEVAP3D, & + PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS,PINPRG,PACPRG,PINPRH,PACPRH ) ! ################################################################################ ! @@ -94,11 +96,14 @@ END MODULE MODI_READ_PRECIP_FIELD !! (V. Ducrocq) 14/08/98 // remove KIINF,KJINF,KISUP,KJSUP !! (JP Pinty) 29/11/02 add C3R5, ICE2, ICE4 !! (C.Lac) 04/03/13 add YGETxxx for FIT scheme +!! 10/2016 (C.Lac) Add droplet deposition !! !----------------------------------------------------------------------------- ! !* 0. DECLARATIONS USE MODE_FM +USE MODD_PARAM_ICE , ONLY : LDEPOSC +USE MODD_PARAM_C2R2, ONLY : LDEPOC ! USE MODE_FMREAD ! @@ -117,6 +122,8 @@ CHARACTER (LEN=*), INTENT(IN) :: HCONF ! ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Droplet instant precip REAL, DIMENSION(:,:), INTENT(INOUT) :: PACPRC! Droplet accumulated precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP! Droplet instant deposition +REAL, DIMENSION(:,:), INTENT(INOUT) :: PACDEP! Droplet accumulated dep REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINPRR3D! Rain precipitation flux 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evaporation flux 3D @@ -182,6 +189,21 @@ IF (SIZE(PINPRC) /= 0 ) THEN END SELECT END IF ! +IF (SIZE(PINPRC) /= 0 .AND. (LDEPOSC .OR. LDEPOC) ) THEN + SELECT CASE(YGETRCT) + CASE ('READ') + YRECFM = 'INDEP' + CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,Z2D,IGRID,ILENCH,YCOMMENT,IRESP) + IF (IRESP == 0) PINDEP(:,:)=Z2D(:,:)/(1000.*3600.) + YRECFM = 'ACPRC' + CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,Z2D,IGRID,ILENCH,YCOMMENT,IRESP) + IF (IRESP == 0) PACDEP(:,:)=Z2D(:,:)/(1000.) + CASE ('INIT') + PINDEP(:,:) = 0.0 + PACDEP(:,:) = 0.0 + END SELECT +END IF +! IF (SIZE(PINPRR) /= 0 ) THEN SELECT CASE(YGETRRT) CASE ('READ') diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 8953122c402453101205fdc68b154263ada97706..8e2318478dc32e70dff56cc357e1624bfa74e0c0 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -188,6 +188,7 @@ END MODULE MODI_SPAWN_MODEL2 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar 02/05/2016 : test ZZS_MAX in // !! Modification 01/2016 (JP Pinty) Add LIMA +!! 10/2016 (C.Lac) Add droplet deposition !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -872,6 +873,15 @@ ELSE ALLOCATE(XACPRC(0,0)) END IF ! +IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2' & + .OR. CCLOUD == 'KHKO' ) THEN + ALLOCATE(XINDEP(IIU,IJU)) + ALLOCATE(XACDEP(IIU,IJU)) +ELSE + ALLOCATE(XINDEP(0,0)) + ALLOCATE(XACDEP(0,0)) +END IF +! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5'.OR. CCLOUD == 'LIMA') THEN ALLOCATE(XINPRS(IIU,IJU)) ALLOCATE(XACPRS(IIU,IJU)) @@ -1326,12 +1336,12 @@ ZPRESSURE2=ZTIME2-ZTIME1 IF (SIZE(XINPRR) /= 0 ) THEN IF (GNOSON) & CALL SPAWN_SURF2_RAIN (NXOR,NYOR,NXEND,NYEND,NDXRATIO,NDYRATIO, & - XINPRC,XACPRC,XINPRR,XINPRR3D,XEVAP3D, & + XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D, & XACPRR,XINPRS,XACPRS,XINPRG,XACPRG,& XINPRH,XACPRH ) IF (.NOT.GNOSON) & CALL SPAWN_SURF2_RAIN (NXOR,NYOR,NXEND,NYEND,NDXRATIO,NDYRATIO, & - XINPRC,XACPRC,XINPRR,XINPRR3D,XEVAP3D, & + XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D, & XACPRR,XINPRS,XACPRS,XINPRG,XACPRG,XINPRH,XACPRH, & HSONFILE,IIUSON,IJUSON, & IIB2,IJB2,IIE2,IJE2, & diff --git a/src/MNH/spawn_surf2_rain.f90 b/src/MNH/spawn_surf2_rain.f90 index f974f263bcb09d930bb0518f0a5d83dfcd5f5725..90f2a47c7832dfc9088727711dfe2a2ec8387398 100644 --- a/src/MNH/spawn_surf2_rain.f90 +++ b/src/MNH/spawn_surf2_rain.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- -! $Source$ $Revision$ +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/spawn_surf2_rain.f90,v $ $Revision: 1.2.2.3.2.1.18.3 $ ! MASDEV4_7 spawn 2007/03/22 18:43:45 !----------------------------------------------------------------- !########################### @@ -15,7 +15,7 @@ MODULE MODI_SPAWN_SURF2_RAIN INTERFACE ! SUBROUTINE SPAWN_SURF2_RAIN (KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO, & - PINPRC,PACPRC,PINPRR,PINPRR3D,PEVAP3D, & + PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS, & PINPRG,PACPRG,PINPRH,PACPRH, & HSONFILE,KIUSON,KJUSON, & @@ -32,6 +32,8 @@ INTEGER, INTENT(IN) :: KDYRATIO ! between model 2 and model 1 ! REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC,PACPRC ! Precipitations REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR,PACPRR ! Precipitations +REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP! Droplet instant deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PACDEP! Droplet accumulated dep REAL, DIMENSION(:,:,:), INTENT(OUT) :: PINPRR3D,PEVAP3D ! Rain precipitation ! and evaporation fluxes REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS,PACPRS ! Precipitations @@ -55,7 +57,7 @@ END MODULE MODI_SPAWN_SURF2_RAIN ! ! ######################################################################### SUBROUTINE SPAWN_SURF2_RAIN (KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO, & - PINPRC,PACPRC,PINPRR,PINPRR3D,PEVAP3D, & + PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS, & PINPRG,PACPRG,PINPRH,PACPRH, & HSONFILE,KIUSON,KJUSON, & @@ -108,6 +110,7 @@ END MODULE MODI_SPAWN_SURF2_RAIN !! Modification 20/05/06 Remove Clark and Farley interpolation !! Modification 2014 (M.Faivre) !! J.Escobar 2/05/2016 : bug in use of global/local bounds for call of BIKHARDT +!! C.Lac 10/2016 : Add droplet deposition for fog !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -138,6 +141,8 @@ INTEGER, INTENT(IN) :: KDXRATIO ! x and y-direction Resolution ratio INTEGER, INTENT(IN) :: KDYRATIO ! between model 2 and model 1 ! REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC,PACPRC ! Precipitations +REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP! Droplet instant deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PACDEP! Droplet accumulated dep REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR,PACPRR ! Precipitations REAL, DIMENSION(:,:,:), INTENT(OUT) :: PINPRR3D,PEVAP3D ! Rain precipitation ! and evaporation fluxes @@ -159,6 +164,7 @@ CHARACTER (LEN=2) :: YMETHOD ! Interpolation method ('BI', 'CF') INTEGER :: IMI ! Variables for spawning with 2 input files (father+son1) REAL, DIMENSION(:,:), ALLOCATABLE :: ZINPRC1, ZACPRC1, & + ZINDEP1, ZACDEP1, & ZINPRR1, ZACPRR1, & ZINPRS1, ZACPRS1, & ZINPRG1, ZACPRG1, & @@ -200,6 +206,11 @@ IF (KDXRATIO == 1 .AND. KDYRATIO == 1 ) THEN PINPRC(:,:) = PRECIP_MODEL(1)%XINPRC(KXOR:KXEND,KYOR:KYEND) PACPRC(:,:) = PRECIP_MODEL(1)%XACPRC(KXOR:KXEND,KYOR:KYEND) END IF +! + IF (SIZE(PRECIP_MODEL(1)%XINDEP) /= 0 ) THEN + PINDEP(:,:) = PRECIP_MODEL(1)%XINDEP(KXOR:KXEND,KYOR:KYEND) + PACDEP(:,:) = PRECIP_MODEL(1)%XACDEP(KXOR:KXEND,KYOR:KYEND) + END IF ! IF (SIZE(PRECIP_MODEL(1)%XINPRR) /= 0 ) THEN PINPRR(:,:) = PRECIP_MODEL(1)%XINPRR(KXOR:KXEND,KYOR:KYEND) @@ -250,6 +261,21 @@ ELSE PINPRC(:,:)=MAX(0.,PINPRC(:,:)) PACPRC(:,:)=MAX(0.,PACPRC(:,:)) END IF +! + IF (SIZE(PRECIP_MODEL(1)%XINDEP) /= 0 ) THEN + IDIMX = SIZE(PRECIP_MODEL(1)%XINDEP,1) + IDIMY = SIZE(PRECIP_MODEL(1)%XINDEP,2) + CALL BIKHARDT(XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, & + XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, & + 2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1, & + LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,PRECIP_MODEL(1)%XINDEP,PINDEP) + CALL BIKHARDT(XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, & + XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, & + 2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1, & + LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,PRECIP_MODEL(1)%XACDEP,PACDEP) + PINDEP(:,:)=MAX(0.,PINDEP(:,:)) + PACDEP(:,:)=MAX(0.,PACDEP(:,:)) + END IF ! IF (SIZE(PRECIP_MODEL(1)%XINPRR) /= 0 ) THEN IDIMX = SIZE(PRECIP_MODEL(1)%XINPRR,1) @@ -340,6 +366,15 @@ IF (PRESENT(HSONFILE)) THEN ALLOCATE(ZACPRC1(0,0)) YGETRRT='SKIP' END IF + IF (SIZE(PRECIP_MODEL(1)%XINDEP) /= 0 ) THEN + ALLOCATE(ZINDEP1(KIUSON,KJUSON)) + ALLOCATE(ZACDEP1(KIUSON,KJUSON)) + YGETRRT='READ' + ELSE + ALLOCATE(ZINDEP1(0,0)) + ALLOCATE(ZACDEP1(0,0)) + YGETRRT='SKIP' + END IF IF (SIZE(PRECIP_MODEL(1)%XINPRR) /= 0 ) THEN ALLOCATE(ZINPRR1(KIUSON,KJUSON)) ALLOCATE(ZINPRR3D1(KIUSON,KJUSON,ILU)) @@ -382,15 +417,21 @@ IF (PRESENT(HSONFILE)) THEN END IF CALL READ_PRECIP_FIELD(HSONFILE,CLUOUT,CPROGRAM,CCONF, & YGETRCT,YGETRRT,YGETRST,YGETRGT,YGETRHT, & - ZINPRC1,ZACPRC1,ZINPRR1,ZINPRR3D1,ZEVAP3D1, & + ZINPRC1,ZACPRC1,ZINDEP1,ZACDEP1,ZINPRR1,ZINPRR3D1,ZEVAP3D1, & ZACPRR1,ZINPRS1,ZACPRS1, & ZINPRG1,ZACPRG1,ZINPRH1,ZACPRH1 ) IF (SIZE(PRECIP_MODEL(1)%XINPRC) /= 0 ) THEN PINPRC(KIB2:KIE2,KJB2:KJE2) = ZINPRC1(KIB1:KIE1,KJB1:KJE1) PACPRC(KIB2:KIE2,KJB2:KJE2) = ZACPRC1(KIB1:KIE1,KJB1:KJE1) END IF + IF (SIZE(PRECIP_MODEL(1)%XINDEP) /= 0 ) THEN + PINDEP(KIB2:KIE2,KJB2:KJE2) = ZINDEP1(KIB1:KIE1,KJB1:KJE1) + PACDEP(KIB2:KIE2,KJB2:KJE2) = ZACDEP1(KIB1:KIE1,KJB1:KJE1) + END IF DEALLOCATE(ZINPRC1) DEALLOCATE(ZACPRC1) + DEALLOCATE(ZINDEP1) + DEALLOCATE(ZACDEP1) IF (SIZE(PRECIP_MODEL(1)%XINPRR) /= 0 ) THEN PINPRR(KIB2:KIE2,KJB2:KJE2) = ZINPRR1(KIB1:KIE1,KJB1:KJE1) PINPRR3D(KIB2:KIE2,KJB2:KJE2,:) = ZINPRR3D1(KIB1:KIE1,KJB1:KJE1,:) diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90 index 7dbaf8059d7ec59e0cad01ad4edb09e2d3ad14cd..0da9df1485e9a986b7d4c0aab131cf67d69c22f8 100644 --- a/src/MNH/write_lesn.f90 +++ b/src/MNH/write_lesn.f90 @@ -2,7 +2,7 @@ !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. -! $Source$ +! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/write_lesn.f90,v $ !----------------------------------------------------------------- !###################### MODULE MODI_WRITE_LES_n @@ -52,6 +52,7 @@ END MODULE MODI_WRITE_LES_n !! 01/04/03 (V. Masson) idem !! 10/10/09 (P. Aumond) Add user multimaskS !! 11/15 (C.Lac) Add production terms of TKE +!! 10/2016 (C.Lac) Add droplet deposition !! !! -------------------------------------------------------------------------- ! @@ -67,6 +68,8 @@ USE MODD_PARAM_n USE MODD_TURB_n USE MODD_GRID_n USE MODD_NSV, ONLY : NSV +USE MODD_PARAM_ICE, ONLY : LDEPOSC +USE MODD_PARAM_C2R2, ONLY : LDEPOC ! USE MODD_LUNIT_n ! @@ -1362,6 +1365,14 @@ IF (HLES_AVG==' ' .OR. HLES_AVG=='A') THEN CALL LES_DIACHRO_SURF("INST_PREC ", & "Inst precip rate","mm/day",XLES_INPRR,HLES_AVG) + IF (LUSERC) & + CALL LES_DIACHRO_SURF("INST_SEDIM ", & + "Inst cloud precip rate","mm/day",XLES_INPRC,HLES_AVG) + + IF (LUSERC .AND. (LDEPOSC .OR. LDEPOC)) & + CALL LES_DIACHRO_SURF("INST_DEPOS ", & + "Inst cloud deposi rate","mm/day",XLES_INDEP,HLES_AVG) + IF (LUSERR) & CALL LES_DIACHRO_SURF("RAIN_PREC ", & "inst pr. rate over rainy grid cells","mm/day",XLES_RAIN_INPRR,HLES_AVG)