diff --git a/src/arome/ext/aro_turb_mnh.F90 b/src/arome/ext/aro_turb_mnh.F90 index cfd5709339bcbe133c38f28dd3d110e1722cef0b..fb1ba28ff42fb40b9e977fb48c7d6efe214b537c 100644 --- a/src/arome/ext/aro_turb_mnh.F90 +++ b/src/arome/ext/aro_turb_mnh.F90 @@ -456,7 +456,7 @@ CALL TURB (CST,CSTURB,TBUCONF,TURBN, YLDIMPHYEX,& & ISPLIT,IMI, KSV, KSV_LGBEG, KSV_LGEND, & & HPROGRAM, O2D, ONOMIXLG, OFLAT, LLES_CALL,OCOUPLES,OBLOWSNOW,& & OTURB_FLX,OTURB_DIAG,OSUBG_COND,OCOMPUTE_SRC, & - & ORMC01,OOCEAN,ODEEPOC,LDHARATU, & + & ORMC01,OOCEAN,ODEEPOC,LDHARATU,.FALSE., & & HTURBDIM,HTURBLEN,'NONE','NONE',CMICRO, & & ZIMPL, & & 2*PTSTEP,ZTFILE, & diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90 index 6836aa2fdae515b9f2a8c5db09e8b650a6add0ca..1a42cb26464996ce545081b312ad96f1e3b860dc 100644 --- a/src/common/turb/mode_tke_eps_sources.F90 +++ b/src/common/turb/mode_tke_eps_sources.F90 @@ -10,10 +10,10 @@ CONTAINS & PTRH,PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ, & & PTSTEP,PIMPL,PEXPL, & & HTURBLEN,HTURBDIM, & - & TPFILE,OTURB_DIAG,OLES_CALL, & + & TPFILE,OTURB_DIAG,OLES_CALL,ODIAG_IN_RUN, & & PTP,PRTKES,PRTHLS,PCOEF_DISS,PTDIFF,PTDISS,PRTKEMS,& & TBUDGETS, KBUDGETS, & - & PEDR, PTR,PDISS ) + & PEDR, PTR,PDISS, PCURRENT_TKE_DISS ) ! ################################################################## ! ! @@ -135,7 +135,6 @@ USE MODD_BUDGET, ONLY: TBUDGETCONF_t, NBUDGET_TKE, NBUDGET_TH, TBUDGETDATA USE MODD_CST, ONLY: CST_t USE MODD_CTURB, ONLY: CSTURB_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t -USE MODD_DIAG_IN_RUN, ONLY : LDIAG_IN_RUN, XCURRENT_TKE_DISS USE MODD_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODD_IO, ONLY: TFILEDATA USE MODD_LES @@ -307,13 +306,13 @@ CALL GET_HALO(ZRES) ! !* diagnose the dissipation ! -IF (LDIAG_IN_RUN) THEN +IF (ODIAG_IN_RUN) THEN !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) - XCURRENT_TKE_DISS(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE) * PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) & + PCURRENT_TKE_DISS(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE) * PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) & *(PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE)) !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! - CALL ADD3DFIELD_ll( TZFIELDDISS_ll, XCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::XCURRENT_TKE_DISS' ) + CALL ADD3DFIELD_ll( TZFIELDDISS_ll, PCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::PCURRENT_TKE_DISS' ) CALL UPDATE_HALO_ll(TZFIELDDISS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDDISS_ll) ENDIF diff --git a/src/common/turb/modi_turb.F90 b/src/common/turb/modi_turb.F90 index 0b13409da6352ddfe88b0bb321ce1a537e094031..2b145875a2c2790c07e9ae3e9071d3fbf8ea05ec 100644 --- a/src/common/turb/modi_turb.F90 +++ b/src/common/turb/modi_turb.F90 @@ -4,13 +4,13 @@ ! INTERFACE ! - SUBROUTINE TURB(CST,CSTURB,BUCONF,TURBN,D, & - & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY, & + SUBROUTINE TURB(CST,CSTURB,BUCONF,TURBN,D, & + & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY, & & KSPLIT,KMODEL_CL,KSV,KSV_LGBEG,KSV_LGEND, & & HPROGRAM, O2D, ONOMIXLG, OFLAT, & & OLES_CALL,OCOUPLES,OBLOWSNOW, & & OTURB_FLX,OTURB_DIAG,OSUBG_COND,OCOMPUTE_SRC, & - & ORMC01,OOCEAN,ODEEPOC,OHARAT, & + & ORMC01,OOCEAN,ODEEPOC,OHARAT,ODIAG_IN_RUN, & & HTURBDIM,HTURBLEN,HTOM,HTURBLEN_CL,HCLOUD, & & PIMPL,PTSTEP,TPFILE, & & PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & @@ -27,8 +27,8 @@ INTERFACE & PFLXZTHVMF,PWTH,PWRC,PWSV,PDP,PTP,PTDIFF,PTDISS, & & TBUDGETS, KBUDGETS, & & PEDR,PLEM,PRTKEMS,PTPMF, & - & PDRUS_TURB,PDRVS_TURB, & - & PDRTHLS_TURB,PDRRTS_TURB,PDRSVS_TURB,PTR,PDISS ) + & PDRUS_TURB,PDRVS_TURB,PDRTHLS_TURB,PDRRTS_TURB, & + & PDRSVS_TURB,PCURRENT_TKE_DISS,PTR,PDISS ) ! USE MODD_BUDGET, ONLY : TBUDGETDATA,TBUDGETCONF_t USE MODD_IO, ONLY : TFILEDATA @@ -64,6 +64,7 @@ LOGICAL, INTENT(IN) :: OFLAT ! Logical for zero ororogr LOGICAL, INTENT(IN) :: OLES_CALL ! compute the LES diagnostics at current time-step LOGICAL, INTENT(IN) :: OCOUPLES ! switch to activate atmos-ocean LES version LOGICAL, INTENT(IN) :: OBLOWSNOW ! switch to activate pronostic blowing snow +LOGICAL, INTENT(IN) :: ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh) CHARACTER(LEN=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme CHARACTER(LEN=4), INTENT(IN) :: HTURBLEN ! kind of mixing length @@ -171,6 +172,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PEDR ! EDR REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PLEM ! Mixing length REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PTR ! Transport prod. of TKE REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PDISS ! Dissipation of TKE +REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT), OPTIONAL :: PCURRENT_TKE_DISS ! if ODIAG_IN_RUN in mesonh ! !------------------------------------------------------------------------------- ! diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90 index 79529fb51d23940023dc02f4383b8a6822944daa..08d75e00817fdc59091469b366e9c115c3e8363f 100644 --- a/src/common/turb/turb.F90 +++ b/src/common/turb/turb.F90 @@ -8,7 +8,7 @@ & KSPLIT,KMODEL_CL,KSV,KSV_LGBEG,KSV_LGEND,HPROGRAM, & & O2D,ONOMIXLG,OFLAT,OLES_CALL,OCOUPLES,OBLOWSNOW, & & OTURB_FLX,OTURB_DIAG,OSUBG_COND,OCOMPUTE_SRC, & - & ORMC01,OOCEAN,ODEEPOC,OHARAT, & + & ORMC01,OOCEAN,ODEEPOC,OHARAT,ODIAG_IN_RUN, & & HTURBDIM,HTURBLEN,HTOM,HTURBLEN_CL,HCLOUD,PIMPL, & & PTSTEP,TPFILE,PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,PCOSSLOPE,PSINSLOPE, & @@ -24,8 +24,8 @@ & PFLXZTHVMF,PWTH,PWRC,PWSV,PDP,PTP,PTDIFF,PTDISS, & & TBUDGETS, KBUDGETS, & & PEDR,PLEM,PRTKEMS,PTPMF, & - & PDRUS_TURB,PDRVS_TURB, & - & PDRTHLS_TURB,PDRRTS_TURB,PDRSVS_TURB,PTR,PDISS ) + & PDRUS_TURB,PDRVS_TURB,PDRTHLS_TURB,PDRRTS_TURB, & + & PDRSVS_TURB,PCURRENT_TKE_DISS,PTR,PDISS ) ! ################################################################# ! ! @@ -311,6 +311,7 @@ LOGICAL, INTENT(IN) :: OFLAT ! Logical for zero ororogr LOGICAL, INTENT(IN) :: OLES_CALL ! compute the LES diagnostics at current time-step LOGICAL, INTENT(IN) :: OCOUPLES ! switch to activate atmos-ocean LES version LOGICAL, INTENT(IN) :: OBLOWSNOW ! switch to activate pronostic blowing snow +LOGICAL, INTENT(IN) :: ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh) CHARACTER(LEN=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme CHARACTER(LEN=4), INTENT(IN) :: HTURBLEN ! kind of mixing length @@ -420,6 +421,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PEDR ! EDR REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PLEM ! Mixing length REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PTR ! Transport prod. of TKE REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT), OPTIONAL :: PDISS ! Dissipation of TKE +REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT), OPTIONAL :: PCURRENT_TKE_DISS ! if ODIAG_IN_RUN in mesonh ! ! !------------------------------------------------------------------------------- @@ -1140,14 +1142,14 @@ ELSE ZRTKEMS(:,:,:)=0. END IF ! -CALL TKE_EPS_SOURCES(D,CST,CSTURB,BUCONF,HPROGRAM,& - & KMI,PTKET,ZLM,ZLEPS,PDP,ZTRH, & - & PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ, & - & PTSTEP,PIMPL,ZEXPL, & - & HTURBLEN,HTURBDIM, & - & TPFILE,OTURB_DIAG,OLES_CALL, & - & PTP,PRTKES,PRTHLS,ZCOEF_DISS,PTDIFF,PTDISS,ZRTKEMS,& - & TBUDGETS,KBUDGETS, PEDR=PEDR, PTR=PTR,PDISS=PDISS) +CALL TKE_EPS_SOURCES(D,CST,CSTURB,BUCONF,HPROGRAM, & + & KMI,PTKET,ZLM,ZLEPS,PDP,ZTRH, & + & PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ, & + & PTSTEP,PIMPL,ZEXPL, & + & HTURBLEN,HTURBDIM, & + & TPFILE,OTURB_DIAG,OLES_CALL, ODIAG_IN_RUN, & + & PTP,PRTKES,PRTHLS,ZCOEF_DISS,PTDIFF,PTDISS,ZRTKEMS, & + & TBUDGETS,KBUDGETS, PEDR=PEDR, PTR=PTR,PDISS=PDISS,PCURRENT_TKE_DISS=PCURRENT_TKE_DISS) IF (BUCONF%LBUDGET_TH) THEN IF ( KRRI >= 1 .AND. KRRL >= 1 ) THEN CALL BUDGET_STORE_END( TBUDGETS(NBUDGET_TH), 'DISSH', PRTHLS+ ZLVOCPEXNM * PRRS(:,:,:,2) & diff --git a/src/mesonh/ext/phys_paramn.f90 b/src/mesonh/ext/phys_paramn.f90 index 5a854f12e720bf260095b934731336c43f9aff4c..bb5cb44670e2be26f2048b13b2bb66459ad2f18b 100644 --- a/src/mesonh/ext/phys_paramn.f90 +++ b/src/mesonh/ext/phys_paramn.f90 @@ -261,6 +261,7 @@ USE MODD_CURVCOR_n USE MODD_DEEP_CONVECTION_n USE MODD_DEF_EDDY_FLUX_n ! Ajout PP USE MODD_DEF_EDDYUV_FLUX_n ! Ajout PP +USE MODD_DIAG_IN_RUN, ONLY: LDIAG_IN_RUN, XCURRENT_TKE_DISS USE MODD_DRAGBLDG_n USE MODD_DRAGTREE_n USE MODD_DUST @@ -1505,7 +1506,7 @@ ALLOCATE(ZTDISS(IIU,IJU,IKU)) NSV, NSV_LGBEG, NSV_LGEND,CPROGRAM, L2D, LNOMIXLG,LFLAT, & LLES_CALL, LCOUPLES, LBLOWSNOW, & LTURB_FLX, LTURB_DIAG, LSUBG_COND, GCOMPUTE_SRC, & - LRMC01, LOCEAN, LDEEPOC, .FALSE., & + LRMC01, LOCEAN, LDEEPOC, .FALSE., LDIAG_IN_RUN, & CTURBDIM, CTURBLEN, CTOM, CTURBLEN_CLOUD, CCLOUD,XIMPL, & XTSTEP, TPFILE, & XDXX, XDYY, XDZZ, XDZX, XDZY, XZZ, & @@ -1520,7 +1521,7 @@ ALLOCATE(ZTDISS(IIU,IJU,IKU)) XRUS, XRVS, XRWS, XRTHS, XRRS, XRSVS, XRTKES, XSIGS, XWTHVMF, & XTHW_FLUX, XRCW_FLUX, XSVW_FLUX,XDYP, XTHP, ZTDIFF, ZTDISS, & TBUDGETS, KBUDGETS=SIZE(TBUDGETS),PLEM=XLEM,PRTKEMS=XRTKEMS, & - PTR=XTR, PDISS=XDISS ) + PTR=XTR, PDISS=XDISS, PCURRENT_TKE_DISS=XCURRENT_TKE_DISS ) ! DEALLOCATE(ZTDIFF) DEALLOCATE(ZTDISS)