Skip to content
Snippets Groups Projects
Commit 32d120c1 authored by RIETTE Sébastien's avatar RIETTE Sébastien
Browse files

S. Riette 10/6/2022 mf_turb and mf_turb_expl

parent 95f1c28b
No related branches found
No related tags found
No related merge requests found
......@@ -128,6 +128,7 @@ REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT):: PFLXZSVMF
REAL, DIMENSION(D%NIT,D%NKT) :: ZVARS
INTEGER :: JSV !number of scalar variables and Loop counter
INTEGER :: JI, JK
REAL(KIND=JPRB) :: ZHOOK_HANDLE
!
!----------------------------------------------------------------------------
......@@ -151,19 +152,22 @@ PSVDT = 0.
!
CALL MZM_MF(D, PTHLM(:,:), PFLXZTHMF(:,:))
PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHMF(:,:))
CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
PFLXZRMF(:,:) = PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:))
CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHMF(:,:))
PFLXZRMF(:,:) = PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:))
PFLXZTHVMF(:,:) = PEMF(:,:)*(PTHV_UP(:,:)-PFLXZTHVMF(:,:))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
IF (OMIXUV) THEN
CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:))
CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:))
PFLXZVMF(:,:) = PEMF(:,:)*(PV_UP(:,:)-PFLXZVMF(:,:))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ELSE
PFLXZUMF(:,:) = 0.
PFLXZVMF(:,:) = 0.
......@@ -184,25 +188,24 @@ ENDIF
!
CALL TRIDIAG_MASSFLUX(D,PTHLM,PFLXZTHMF,-PEMF,PTSTEP,PIMPL, &
PDZZ,PRHODJ,ZVARS )
! compute new flux
! compute new flux and THL tendency
CALL MZM_MF(D, ZVARS(:,:), PFLXZTHMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHMF(:,:))
!!! compute THL tendency
!
PTHLDT(:,:)= (ZVARS(:,:)-PTHLM(:,:))/PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
! 3.2 Compute the tendency for the conservative mixing ratio
!
CALL TRIDIAG_MASSFLUX(D,PRTM(:,:),PFLXZRMF,-PEMF,PTSTEP,PIMPL, &
PDZZ,PRHODJ,ZVARS )
! compute new flux
! compute new flux and RT tendency
CALL MZM_MF(D, ZVARS(:,:), PFLXZRMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZRMF(:,:) = PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:))
!!! compute RT tendency
PRTDT(:,:) = (ZVARS(:,:)-PRTM(:,:))/PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
IF (OMIXUV) THEN
......@@ -213,13 +216,12 @@ IF (OMIXUV) THEN
CALL TRIDIAG_MASSFLUX(D,PUM,PFLXZUMF,-PEMF,PTSTEP,PIMPL, &
PDZZ,PRHODJ,ZVARS )
! compute new flux
! compute new flux and U tendency
CALL MZM_MF(D, ZVARS(:,:), PFLXZUMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:))
! compute U tendency
PUDT(:,:)= (ZVARS(:,:)-PUM(:,:))/PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
!
! 3.4 Compute the tendency for the (non conservative but treated as it for the time beiing)
......@@ -228,12 +230,12 @@ IF (OMIXUV) THEN
!
CALL TRIDIAG_MASSFLUX(D,PVM,PFLXZVMF,-PEMF,PTSTEP,PIMPL, &
PDZZ,PRHODJ,ZVARS )
! compute new flux
! compute new flux and V tendency
CALL MZM_MF(D, ZVARS(:,:), PFLXZVMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZVMF(:,:) = PEMF(:,:)*(PV_UP(:,:)-PFLXZVMF(:,:))
! compute V tendency
PVDT(:,:)= (ZVARS(:,:)-PVM(:,:))/PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ELSE
PUDT(:,:)=0.
PVDT(:,:)=0.
......@@ -247,20 +249,21 @@ DO JSV=1,KSV
! ( Resulting fluxes are in flux level (w-point) as PEMF and PTHL_UP )
CALL MZM_MF(D, PSVM(:,:,JSV), PFLXZSVMF(:,:,JSV))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZSVMF(:,:,JSV) = PEMF(:,:)*(PSV_UP(:,:,JSV)-PFLXZSVMF(:,:,JSV))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
! 3.5 Compute the tendency for scalar variables
! (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
!
CALL TRIDIAG_MASSFLUX(D,PSVM(:,:,JSV),PFLXZSVMF(:,:,JSV),&
-PEMF,PTSTEP,PIMPL,PDZZ,PRHODJ,ZVARS )
! compute new flux
! compute new flux and Sv tendency
CALL MZM_MF(D, ZVARS, PFLXZSVMF(:,:,JSV))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZSVMF(:,:,JSV) = PEMF(:,:)*(PSV_UP(:,:,JSV)-PFLXZSVMF(:,:,JSV))
! compute Sv tendency
PSVDT(:,:,JSV)= (ZVARS(:,:)-PSVM(:,:,JSV))/PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ENDDO
!
......
......@@ -99,7 +99,7 @@ REAL, DIMENSION(D%NIT,D%NKT) :: ZFLXZTHSMF,ZTHS_UP,ZTHSM ! Theta S flux
REAL, DIMENSION(D%NIT,D%NKT) :: ZQT_UP,ZQTM,ZTHSDT,ZQTDT
REAL, DIMENSION(D%NIT,D%NKT) :: ZTHLM_F,ZRTM_F
INTEGER :: JK ! loop counter
INTEGER :: JK, JI ! loop counter
REAL(KIND=JPRB) :: ZHOOK_HANDLE
!----------------------------------------------------------------------------
......@@ -130,25 +130,31 @@ PVDT = 0.
CALL MZM_MF(D, PRTM (:,:), ZRTM_F(:,:))
CALL MZM_MF(D, PTHLM(:,:), ZTHLM_F(:,:))
ZQTM (:,:) = ZRTM_F (:,:)/(1.+ZRTM_F (:,:))
ZQT_UP (:,:) = PRT_UP (:,:)/(1.+PRT_UP (:,:))
ZTHS_UP(:,:) = PTHL_UP(:,:)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(:,:))
ZTHSM (:,:) = ZTHLM_F(:,:)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ZQTM(:,:) = ZRTM_F(:,:)/(1.+ZRTM_F(:,:))
ZQT_UP(:,:) = PRT_UP(:,:)/(1.+PRT_UP(:,:))
ZTHS_UP(:,:)= PTHL_UP(:,:)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(:,:))
ZTHSM(:,:) = ZTHLM_F(:,:)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(:,:))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
CALL MZM_MF(D, PTHLM(:,:), PFLXZTHLMF(:,:))
PFLXZTHLMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHLMF(:,:)) ! ThetaL
CALL MZM_MF(D, PRTM (:,:), PFLXZRMF(:,:))
PFLXZRMF(:,:) = PEMF(:,:)*(PRT_UP (:,:)-PFLXZRMF(:,:)) ! Rt
CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZTHLMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHLMF(:,:)) ! ThetaL
PFLXZRMF(:,:) = PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:)) ! Rt
PFLXZTHVMF(:,:) = PEMF(:,:)*(PTHV_UP(:,:)-PFLXZTHVMF(:,:)) ! ThetaV
ZFLXZTHSMF(:,:) = PEMF(:,:)*(ZTHS_UP(:,:)-ZTHSM(:,:)) ! Theta S flux
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
IF (OMIXUV) THEN
CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:)) ! U
CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:)) ! U
PFLXZVMF(:,:) = PEMF(:,:)*(PV_UP(:,:)-PFLXZVMF(:,:)) ! V
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ELSE
PFLXZUMF(:,:) = 0.
PFLXZVMF(:,:) = 0.
......@@ -162,17 +168,21 @@ ENDIF
! --------------------------------------------
DO JK=D%NKB,D%NKE-D%NKL,D%NKL
! PTHLDT(:,JK) = (PFLXZTHLMF(:,JK ) - PFLXZTHLMF(:,JK+D%NKL)) / PRHODJ(:,JK)
PRTDT (:,JK) = (PFLXZRMF (:,JK ) - PFLXZRMF (:,JK+D%NKL)) / PRHODJ(:,JK)
ZQTDT (:,JK) = PRTDT (:,JK)/(1.+ ZRTM_F (:,JK)*ZRTM_F (:,JK))
ZTHSDT(:,JK) = (ZFLXZTHSMF(:,JK ) - ZFLXZTHSMF(:,JK+D%NKL)) / PRHODJ(:,JK)
PTHLDT(:,JK) = ZTHSDT(:,JK)/(1.+PARAMMF%XLAMBDA_MF*ZQTM(:,JK)) - ZTHLM_F(:,JK)*PARAMMF%XLAMBDA_MF*ZQTDT(:,JK)
DO JI=D%NIB,D%NIE
!PTHLDT(JI,JK) = (PFLXZTHLMF(JI,JK ) - PFLXZTHLMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
PRTDT(JI,JK) = (PFLXZRMF(JI,JK) - PFLXZRMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
ZQTDT(JI,JK) = PRTDT(JI,JK)/(1.+ ZRTM_F(JI,JK)*ZRTM_F(JI,JK))
ZTHSDT(JI,JK)= (ZFLXZTHSMF(JI,JK) - ZFLXZTHSMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
PTHLDT(JI,JK) = ZTHSDT(JI,JK)/(1.+PARAMMF%XLAMBDA_MF*ZQTM(JI,JK)) - ZTHLM_F(JI,JK)*PARAMMF%XLAMBDA_MF*ZQTDT(JI,JK)
ENDDO
END DO
IF (OMIXUV) THEN
DO JK=D%NKB,D%NKE-D%NKL,D%NKL
PUDT(:,JK) = (PFLXZUMF(:,JK ) - PFLXZUMF(:,JK+D%NKL)) / PRHODJ(:,JK)
PVDT(:,JK) = (PFLXZVMF(:,JK ) - PFLXZVMF(:,JK+D%NKL)) / PRHODJ(:,JK)
DO JI=D%NIB,D%NIE
PUDT(JI,JK) = (PFLXZUMF(JI,JK) - PFLXZUMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
PVDT(JI,JK) = (PFLXZVMF(JI,JK) - PFLXZVMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
ENDDO
END DO
ENDIF
......
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