Skip to content
Snippets Groups Projects
Commit 9689d295 authored by VIE Benoit's avatar VIE Benoit Committed by RODIER Quentin
Browse files

Turbulence now changes rr, rs, rg, rh - 1 test case ok

parent b50fa341
No related branches found
No related tags found
No related merge requests found
...@@ -502,6 +502,11 @@ REAL :: ZALPHA ! work coefficient : ...@@ -502,6 +502,11 @@ REAL :: ZALPHA ! work coefficient :
REAL :: ZTIME1, ZTIME2 REAL :: ZTIME1, ZTIME2
TYPE(TFIELDMETADATA) :: TZFIELD TYPE(TFIELDMETADATA) :: TZFIELD
! !
REAL, DIMENSION(D%NIJT,D%NKT,KSV+KRR) :: ZWORKT
REAL, DIMENSION(D%NIJT,D%NKT,KSV+KRR) :: ZWORKS
REAL, DIMENSION(D%NIJT, KSV+KRR) :: ZWORKSFSV
REAL, DIMENSION(D%NIJT,D%NKT,KSV+KRR) :: ZWORKWSV
!
!* 1.PRELIMINARIES !* 1.PRELIMINARIES
! ------------- ! -------------
! !
...@@ -541,6 +546,13 @@ END IF ...@@ -541,6 +546,13 @@ END IF
!Save LIMA scalar variables sources !Save LIMA scalar variables sources
ZRSVS(IIJB:IIJE,1:IKT,1:KSV)=PRSVS(IIJB:IIJE,1:IKT,1:KSV) ZRSVS(IIJB:IIJE,1:IKT,1:KSV)=PRSVS(IIJB:IIJE,1:IKT,1:KSV)
! !
ZWORKT(:,:,1:KSV)=PSVT(:,:,:)
ZWORKS(:,:,1:KSV)=PRSVS(:,:,:)
ZWORKT(:,:,KSV+1:KSV+KRR)=PRT(:,:,:)
ZWORKS(:,:,KSV+1:KSV+KRR)=PRRS(:,:,:)
ZWORKSFSV(:,:)=0.
ZWORKWSV(:,:,:)=0.
ZWORKSFSV(:,1:KSV)=PSFSV(:,:)
! !
!---------------------------------------------------------------------------- !----------------------------------------------------------------------------
! !
...@@ -991,33 +1003,37 @@ IF( BUCONF%LBUDGET_RV ) THEN ...@@ -991,33 +1003,37 @@ IF( BUCONF%LBUDGET_RV ) THEN
END IF END IF
IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RC), 'VTURB', PRRS (:,:, 2) ) IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RC), 'VTURB', PRRS (:,:, 2) )
IF( BUCONF%LBUDGET_RR ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RR), 'VTURB', ZWORKS (:,:, KSV + 3) )
IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RI), 'VTURB', PRRS (:,:, 4) ) IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RI), 'VTURB', PRRS (:,:, 4) )
IF( BUCONF%LBUDGET_RS ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RS), 'VTURB', ZWORKS (:,:, KSV + 5) )
IF( BUCONF%LBUDGET_RG ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RG), 'VTURB', ZWORKS (:,:, KSV + 6) )
IF( BUCONF%LBUDGET_RH ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RH), 'VTURB', ZWORKS (:,:, KSV + 7) )
IF( BUCONF%LBUDGET_SV ) THEN IF( BUCONF%LBUDGET_SV ) THEN
DO JSV = 1, KSV DO JSV = 1, KSV
CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'VTURB', PRSVS(:,:, JSV) ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'VTURB', ZWORKS(:,:, JSV) )
END DO END DO
END IF END IF
CALL TURB_VER(D,CST,CSTURB,TURBN,NEBN,TLES, & CALL TURB_VER(D,CST,CSTURB,TURBN,NEBN,TLES, &
KRR,KRRL,KRRI,KGRADIENTS, & KRR,KRRL,KRRI,KGRADIENTS, &
OOCEAN, ODEEPOC, OCOMPUTE_SRC, & OOCEAN, ODEEPOC, OCOMPUTE_SRC, &
KSV,KSV_LGBEG,KSV_LGEND, & KSV+KRR,KSV_LGBEG,KSV_LGEND, &
ZEXPL, O2D, ONOMIXLG, OFLAT, & ZEXPL, O2D, ONOMIXLG, OFLAT, &
OCOUPLES,OBLOWSNOW,OFLYER, PRSNOW, & OCOUPLES,OBLOWSNOW,OFLYER, PRSNOW, &
PTSTEP,TPFILE, & PTSTEP,TPFILE, &
PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ, & PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ, &
PCOSSLOPE,PSINSLOPE, & PCOSSLOPE,PSINSLOPE, &
PRHODJ,PTHVREF,PSFU,PSFV, & PRHODJ,PTHVREF,PSFU,PSFV, &
PSFTH,PSFRV,PSFSV,PSFTH,PSFRV,PSFSV, & PSFTH,PSFRV,ZWORKSFSV,PSFTH,PSFRV,ZWORKSFSV, &
ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU33M, & ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU33M, &
PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,PSVT, & PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,ZWORKT, &
PTKET,ZLM,PLENGTHM,PLENGTHH,ZLEPS,MFMOIST, & PTKET,ZLM,PLENGTHM,PLENGTHH,ZLEPS,MFMOIST, &
ZLOCPEXNM,ZATHETA,ZAMOIST,PSRCT,ZFRAC_ICE, & ZLOCPEXNM,ZATHETA,ZAMOIST,PSRCT,ZFRAC_ICE, &
ZFWTH,ZFWR,ZFTH2,ZFR2,ZFTHR,PBL_DEPTH, & ZFWTH,ZFWR,ZFTH2,ZFR2,ZFTHR,PBL_DEPTH, &
PSBL_DEPTH,ZLMO,PHGRAD,PZS, & PSBL_DEPTH,ZLMO,PHGRAD,PZS, &
PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS, & PRUS,PRVS,PRWS,PRTHLS,PRRS,ZWORKS, &
PDP,PTP,PSIGS,PWTH,PWRC,PWSV, & PDP,PTP,PSIGS,PWTH,PWRC,ZWORKWSV, &
PSSTFL, PSSTFL_C, PSSRFL_C,PSSUFL_C,PSSVFL_C, & PSSTFL, PSSTFL_C, PSSRFL_C,PSSUFL_C,PSSVFL_C, &
PSSUFL,PSSVFL ) PSSUFL,PSSVFL )
...@@ -1054,11 +1070,15 @@ IF( BUCONF%LBUDGET_RV ) THEN ...@@ -1054,11 +1070,15 @@ IF( BUCONF%LBUDGET_RV ) THEN
END IF END IF
IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'VTURB', PRRS(:,:, 2) ) IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'VTURB', PRRS(:,:, 2) )
IF( BUCONF%LBUDGET_RR ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RR), 'VTURB', ZWORKS(:,:, KSV + 3) )
IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RI), 'VTURB', PRRS(:,:, 4) ) IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RI), 'VTURB', PRRS(:,:, 4) )
IF( BUCONF%LBUDGET_RS ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RS), 'VTURB', ZWORKS(:,:, KSV + 5) )
IF( BUCONF%LBUDGET_RG ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RG), 'VTURB', ZWORKS(:,:, KSV + 6) )
IF( BUCONF%LBUDGET_RH ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RH), 'VTURB', ZWORKS(:,:, KSV + 7) )
IF( BUCONF%LBUDGET_SV ) THEN IF( BUCONF%LBUDGET_SV ) THEN
DO JSV = 1, KSV DO JSV = 1, KSV
CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'VTURB', PRSVS(:,:, JSV) ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'VTURB', ZWORKS(:,:, JSV) )
END DO END DO
END IF END IF
! !
...@@ -1089,15 +1109,20 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN ...@@ -1089,15 +1109,20 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN
END IF END IF
IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RC), 'HTURB', PRRS(:,:, 2) ) IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RC), 'HTURB', PRRS(:,:, 2) )
IF( BUCONF%LBUDGET_RR ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RR), 'HTURB', ZWORKS(:,:, KSV+3) )
IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RI), 'HTURB', PRRS(:,:, 4) ) IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RI), 'HTURB', PRRS(:,:, 4) )
IF( BUCONF%LBUDGET_RS ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RS), 'HTURB', ZWORKS(:,:, KSV+5) )
IF( BUCONF%LBUDGET_RG ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RG), 'HTURB', ZWORKS(:,:, KSV+6) )
IF( BUCONF%LBUDGET_RH ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RH), 'HTURB', ZWORKS(:,:, KSV+7) )
IF( BUCONF%LBUDGET_SV ) THEN IF( BUCONF%LBUDGET_SV ) THEN
DO JSV = 1, KSV DO JSV = 1, KSV
CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'HTURB', PRSVS(:,:, JSV) ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'HTURB', ZWORKS(:,:, JSV) )
END DO END DO
END IF END IF
CALL TURB_HOR_SPLT(D,CST,CSTURB, TURBN, NEBN, TLES, & CALL TURB_HOR_SPLT(D,CST,CSTURB, TURBN, NEBN, TLES, &
KSPLIT, KRR, KRRL, KRRI, KSV,KSV_LGBEG,KSV_LGEND, & KSPLIT, KRR, KRRL, KRRI, KSV,KSV_LGBEG,KSV_LGEND, &
KSPLIT, KRR, KRRL, KRRI, KSV+KRR,KSV_LGBEG,KSV_LGEND,&
PTSTEP,HLBCX,HLBCY, OFLAT,O2D, ONOMIXLG, & PTSTEP,HLBCX,HLBCY, OFLAT,O2D, ONOMIXLG, &
OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,PRSNOW, & OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,PRSNOW, &
TPFILE, KHALO, & TPFILE, KHALO, &
...@@ -1105,14 +1130,14 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN ...@@ -1105,14 +1130,14 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN
PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, &
PCOSSLOPE,PSINSLOPE, & PCOSSLOPE,PSINSLOPE, &
PRHODJ,PTHVREF, & PRHODJ,PTHVREF, &
PSFTH,PSFRV,PSFSV, & PSFTH,PSFRV,ZWORKSFSV, &
ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU22M,ZTAU33M, & ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU22M,ZTAU33M, &
PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,PSVT, & PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,ZWORKT, &
PTKET,ZLM,ZLEPS, & PTKET,ZLM,ZLEPS, &
ZLOCPEXNM,ZATHETA,ZAMOIST,PSRCT,ZFRAC_ICE, & ZLOCPEXNM,ZATHETA,ZAMOIST,PSRCT,ZFRAC_ICE, &
PDP,PTP,PSIGS, & PDP,PTP,PSIGS, &
ZTRH, & ZTRH, &
PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) PRUS,PRVS,PRWS,PRTHLS,PRRS,ZWORKS )
! !
! IF (HCLOUD == 'LIMA') THEN ! IF (HCLOUD == 'LIMA') THEN
! IF (KSV_LIMA_NR.GT.0) PRSVS(:,:,KSV_LIMA_NR) = ZRSVS(:,:,KSV_LIMA_NR) ! IF (KSV_LIMA_NR.GT.0) PRSVS(:,:,KSV_LIMA_NR) = ZRSVS(:,:,KSV_LIMA_NR)
...@@ -1147,11 +1172,15 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN ...@@ -1147,11 +1172,15 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN
END IF END IF
IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'HTURB', PRRS(:,:, 2) ) IF( BUCONF%LBUDGET_RC ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'HTURB', PRRS(:,:, 2) )
IF( BUCONF%LBUDGET_RR ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RR), 'HTURB', ZWORKS(:,:, KSV+3) )
IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RI), 'HTURB', PRRS(:,:, 4) ) IF( BUCONF%LBUDGET_RI ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RI), 'HTURB', PRRS(:,:, 4) )
IF( BUCONF%LBUDGET_RS ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RS), 'HTURB', ZWORKS(:,:, KSV+5) )
IF( BUCONF%LBUDGET_RG ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RG), 'HTURB', ZWORKS(:,:, KSV+6) )
IF( BUCONF%LBUDGET_RH ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RH), 'HTURB', ZWORKS(:,:, KSV+7) )
IF( BUCONF%LBUDGET_SV ) THEN IF( BUCONF%LBUDGET_SV ) THEN
DO JSV = 1, KSV DO JSV = 1, KSV
CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'HTURB', PRSVS(:,:, JSV) ) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'HTURB', ZWORKS(:,:, JSV) )
END DO END DO
END IF END IF
END IF END IF
...@@ -1314,8 +1343,15 @@ IF ( KRRL >= 1 ) THEN ...@@ -1314,8 +1343,15 @@ IF ( KRRL >= 1 ) THEN
* PRRS(IIJB:IIJE,1:IKT,2) * PRRS(IIJB:IIJE,1:IKT,2)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
END IF END IF
END IF END IF!
!
PRSVS(:,:,:)=ZWORKS(:,:,1:KSV)
IF (KRR.GE.3) PRRS(:,:,3)=ZWORKS(:,:,KSV+3)
IF (KRR.GE.5) PRRS(:,:,5)=ZWORKS(:,:,KSV+5)
IF (KRR.GE.6) PRRS(:,:,6)=ZWORKS(:,:,KSV+6)
IF (KRR.GE.7) PRRS(:,:,7)=ZWORKS(:,:,KSV+7)
IF (OFLYER) PWSV(:,:,:)=ZWORKWSV(:,:,1:KSV)
!
! Remove non-physical negative values (unnecessary in a perfect world) + corresponding budgets ! Remove non-physical negative values (unnecessary in a perfect world) + corresponding budgets
CALL SOURCES_NEG_CORRECT_PHY(D,KSV,HCLOUD,HELEC,'NETUR',KRR,PTSTEP,PPABST,PTHLT,PRT,PRTHLS,PRRS,PRSVS) CALL SOURCES_NEG_CORRECT_PHY(D,KSV,HCLOUD,HELEC,'NETUR',KRR,PTSTEP,PPABST,PTHLT,PRT,PRTHLS,PRRS,PRSVS)
!---------------------------------------------------------------------------- !----------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment