From 5b2bdc5752039db3ea48605af7ab111c8e0636bf Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Thu, 25 May 2023 19:20:35 +0200
Subject: [PATCH] Quentin 25/05/2023: bugfix tendencies of turb plugged to TKE
 + changes in index for d_qx + plug SRC between turb and ice_adjust

---
 src/lmdz/ext/physiqex_mod.F90 | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/lmdz/ext/physiqex_mod.F90 b/src/lmdz/ext/physiqex_mod.F90
index 112fb3ce8..6bf579ddf 100644
--- a/src/lmdz/ext/physiqex_mod.F90
+++ b/src/lmdz/ext/physiqex_mod.F90
@@ -138,8 +138,6 @@ REAL, DIMENSION(klon,0)      ::  PSFSV
 !    prognostic variables at t- deltat
 REAL, DIMENSION(:,:), ALLOCATABLE, SAVE ::  PTKEM       ! TKE
 REAL, DIMENSION(klon,klev+2,0) ::  ZSVT        ! passive scal. var.
-REAL, DIMENSION(klon,klev+2) ::  ZSRCT       ! Second-order flux
-                      ! s'rc'/2Sigma_s2 at time t-1 multiplied by Lambda_3
 REAL, DIMENSION(klon) :: ZBL_DEPTH  ! BL height for TOMS
 REAL, DIMENSION(klon) :: ZSBL_DEPTH ! SBL depth for RMC01
 !
@@ -165,7 +163,6 @@ REAL, DIMENSION(klon,klev+2,KRR) ::  ZRRS
 REAL, DIMENSION(klon,klev+2,0) ::  ZRSVS
 ! Sigma_s at time t+1 : square root of the variance of the deviation to the
 ! saturation
-REAL, DIMENSION(klon,klev+2)     ::  ZSIGS
 REAL, DIMENSION(klon,klev+2)     ::  ZFLXZTHVMF
 !                                           MF contribution for vert. turb. transport
 !                                           used in the buoy. prod. of TKE
@@ -421,7 +418,6 @@ d_qx(:,1:klev,1)=d_qx(:,1:klev,1) + (ZRXS(:,2:klev+1,1)-ZRXS0(:,2:klev+1,1))*ZQD
 d_qx(:,1:klev,2)=d_qx(:,1:klev,2) + (ZRXS(:,2:klev+1,2)-ZRXS0(:,2:klev+1,2))*ZQDM(:,2:klev+1)
 d_qx(:,1:klev,3)=d_qx(:,1:klev,3) + (ZRXS(:,2:klev+1,4)-ZRXS0(:,2:klev+1,4))*ZQDM(:,2:klev+1)
 d_t(:,1:klev)=d_t(:,1:klev) + (zthetas(:,2:klev+1)-zthetas0(:,2:klev+1))*zexn(:,2:klev+1)
-
 !pour tester l'ajustement seul: commenter tendances de turb et activer cette ligne
 !d_qx(:,1:klev,1)=d_qx(:,1:klev,1) + 0.00001/pdtphys
 !
@@ -492,7 +488,7 @@ PSFU(:) = 0.
 PSFV(:) = 0.
 !
 ZSVT(:,:,:) = 0.
-ZSRCT(:,:) =0.
+ZSRC(:,:) =0.
 PWT(:,:) = 0.
 ! needed only with LRMC01 key (correction in the surface boundary layer)
 ZBL_DEPTH(:) = 0.
@@ -542,7 +538,6 @@ d_v(:,1:klev) = d_v(:,1:klev) + PDVDT_MF(:,2:klev+1)
 d_t(:,1:klev) = d_t(:,1:klev) + PDTHLDT_MF(:,2:klev+1)*zexn(:,2:klev+1) !TODO Theta_l en theta ?
 d_qx(:,1:klev,1)=d_qx(:,1:klev,1) + PDRTDT_MF(:,2:klev+1)*zqdm(:,2:klev+1)
 ! TODO add SV tendencies
-print*,"PDTHLDT_MF = ",PDTHLDT_MF
 !
 !------------------------------------------------------------
 ! Turbulence
@@ -570,13 +565,13 @@ CALL TURB(PHYEX%CST, PHYEX%CSTURB, TBUCONF, PHYEX%TURBN, PHYEX%NEBN, D, TLES,&
    & ZDIRCOSXW(:),ZDIRCOSYW(:),ZDIRCOSZW(:),ZCOSSLOPE(:),ZSINSLOPE(:),    &
    & PRHODJ(:,:),PTHVREF(:,:), PHGRAD(:,:,:), zs(:),    &
    & PSFTH(:),PSFRV(:),PSFSV(:,:),PSFU(:),PSFV(:), &
-   & ZPABST(:,:),ZUT(:,:),ZVT(:,:),PWT(:,:),PTKEM(:,:),ZSVT(:,:,:),ZSRCT(:,:),&
+   & ZPABST(:,:),ZUT(:,:),ZVT(:,:),PWT(:,:),PTKEM(:,:),ZSVT(:,:,:),ZSRC(:,:),&
    & PLENGTHM(:,:),PLENGTHH(:,:),MFMOIST(:,:),                            &
    & ZBL_DEPTH(:),ZSBL_DEPTH(:),                                 &
    & ZCEI(:,:),ZCEI_MIN,ZCEI_MAX,ZCOEF_AMPL_SAT,    &
    & ztheta(:,:),ZRX(:,:,:), &
    & ZRUS(:,:),ZRVS(:,:),ZRWS(:,:),ZRTHS(:,:),ZRRS(:,:,:),ZRSVS(:,:,:),ZRTKES(:,:),         &
-   & ZSIGS(:,:),                                         &
+   & PSIGS(:,:),                                         &
    & ZFLXZTHVMF(:,:),ZWTH(:,:),ZWRC(:,:),ZWSV(:,:,:),ZDP(:,:),ZTP(:,:),ZTDIFF(:,:),ZTDISS(:,:),&
    & YLBUDGET, NBUDGET_RH)
 
@@ -584,9 +579,11 @@ CALL TURB(PHYEX%CST, PHYEX%CSTURB, TBUCONF, PHYEX%TURBN, PHYEX%NEBN, D, TLES,&
 d_u(:,1:klev) = d_u(:,1:klev) + ZRUS(:,2:klev+1)/PRHODJ(:,2:klev+1)
 d_v(:,1:klev) = d_v(:,1:klev) + ZRVS(:,2:klev+1)/PRHODJ(:,2:klev+1)
 d_t(:,1:klev) = d_t(:,1:klev) + ZRTHS(:,2:klev+1)*zexn(:,2:klev+1)/PRHODJ(:,2:klev+1)
-DO JRR=1,3 !3 for qv, ql, qi
-  d_qx(:,1:klev,JRR)=d_qx(:,1:klev,JRR) + ZRRS(:,2:klev+1,JRR)/PRHODJ(:,2:klev+1)*zqdm(:,2:klev+1)
-END DO
+d_qx(:,1:klev,1)=d_qx(:,1:klev,1) + ZRRS(:,2:klev+1,1)/PRHODJ(:,2:klev+1)*zqdm(:,2:klev+1) !(ZRXS(:,2:klev+1,1)-ZRXS0(:,2:klev+1,1))*ZQDM(:,2:klev+1)
+d_qx(:,1:klev,2)=d_qx(:,1:klev,2) + ZRRS(:,2:klev+1,2)/PRHODJ(:,2:klev+1)*zqdm(:,2:klev+1) !(ZRXS(:,2:klev+1,2)-ZRXS0(:,2:klev+1,2))*ZQDM(:,2:klev+1)
+d_qx(:,1:klev,3)=d_qx(:,1:klev,3) + ZRRS(:,2:klev+1,4)/PRHODJ(:,2:klev+1)*zqdm(:,2:klev+1) !(ZRXS(:,2:klev+1,4)-ZRXS0(:,2:klev+1,4))*ZQDM(:,2:klev+1)
+
+PTKEM(:,:) = PTKEM(:,:) + ZRTKES(:,:)/PRHODJ(:,:)*pdtphys
 
 !------------------------------------------------------------
 ! Entrees sorties
-- 
GitLab