Skip to content
Snippets Groups Projects
Commit 1ad2e6a1 authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Quentin 27/07/2022: bugfix LOCEAN non bit-repro : forgot to merge prandtl subroutine

parent fe810749
No related branches found
No related tags found
No related merge requests found
...@@ -261,15 +261,22 @@ IF (.NOT. LHARAT) THEN ...@@ -261,15 +261,22 @@ IF (.NOT. LHARAT) THEN
! !
! 1.3 1D Redelsperger numbers ! 1.3 1D Redelsperger numbers
! !
PBLL_O_E(:,:,:) = MZM(XG / PTHVREF(:,:,:) * PLM(:,:,:) * PLEPS(:,:,:) / PTKEM(:,:,:), KKA, KKU, KKL) IF (OOCEAN) THEN
IF (KRR /= 0) THEN ! moist case PBLL_O_E(:,:,:) = MZM(XG *XALPHAOC* PLM(:,:,:) * PLEPS(:,:,:) / PTKEM(:,:,:),KKA, KKU, KKL )
PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * PETHETA(:,:,:) * & PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * GZ_M_W(KKA,KKU,KKL,PTHLM,PDZZ)
& GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ)
PREDR1(:,:,:) = XCTV*PBLL_O_E(:,:,:) * PEMOIST(:,:,:) * &
& GZ_M_W(KKA, KKU, KKL,PRM(:,:,:,1),PDZZ)
ELSE ! dry case
PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ)
PREDR1(:,:,:) = 0. PREDR1(:,:,:) = 0.
ELSE
PBLL_O_E(:,:,:) = MZM(XG / PTHVREF(:,:,:) * PLM(:,:,:) * PLEPS(:,:,:) / PTKEM(:,:,:), KKA, KKU, KKL)
IF (KRR /= 0) THEN ! moist case
PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * PETHETA(:,:,:) * &
& GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ)
PREDR1(:,:,:) = XCTV*PBLL_O_E(:,:,:) * PEMOIST(:,:,:) * &
& GZ_M_W(KKA, KKU, KKL,PRM(:,:,:,1),PDZZ)
ELSE ! dry case
PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ)
PREDR1(:,:,:) = 0.
END IF
!
END IF END IF
! !
! 3. Limits on 1D Redelperger numbers ! 3. Limits on 1D Redelperger numbers
...@@ -422,52 +429,68 @@ DO JSV=1,ISV ...@@ -422,52 +429,68 @@ DO JSV=1,ISV
! !
ELSE IF (L2D) THEN ! 3D case in a 2D model ELSE IF (L2D) THEN ! 3D case in a 2D model
! !
IF (KRR /= 0) THEN IF (OOCEAN) THEN
ZW1 = MZM((XG / PTHVREF * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) *PETHETA IF (KRR /= 0) THEN
ELSE ZW1 = MZM((XG *XALPHAOC * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) *PETHETA
ZW1 = MZM((XG / PTHVREF * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) ELSE
END IF ZW1 = MZM((XG *XALPHAOC * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL)
PRED2THS3(:,:,:,JSV) = PREDTH1(:,:,:) * PREDS1(:,:,:,JSV) + & END IF
ZW1* &
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* &
GX_M_M(PTHLM,PDXX,PDZZ,PDZX, KKA, KKU, KKL), &
KKA, KKU, KKL)
!
IF (KRR /= 0) THEN
PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) * PREDS1(:,:,:,JSV) + &
ZW1 * PEMOIST * &
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* &
GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, KKA, KKU, KKL), &
KKA, KKU, KKL)
ELSE ELSE
PRED2RS3(:,:,:,JSV) = 0. IF (KRR /= 0) THEN
ZW1 = MZM( (XG / PTHVREF * PLM * PLEPS / PTKEM)**2 ) *PETHETA
ELSE
ZW1 = MZM( (XG / PTHVREF * PLM * PLEPS / PTKEM)**2)
END IF
PRED2THS3(:,:,:,JSV) = PREDTH1(:,:,:) * PREDS1(:,:,:,JSV) + &
ZW1* &
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* &
GX_M_M(PTHLM,PDXX,PDZZ,PDZX, KKA, KKU, KKL), &
KKA, KKU, KKL)
!
IF (KRR /= 0) THEN
PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) * PREDS1(:,:,:,JSV) + &
ZW1 * PEMOIST * &
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* &
GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, KKA, KKU, KKL), &
KKA, KKU, KKL)
ELSE
PRED2RS3(:,:,:,JSV) = 0.
END IF
END IF END IF
! !
ELSE ! 3D case in a 3D model ELSE ! 3D case in a 3D model
! !
IF (KRR /= 0) THEN IF (OOCEAN) THEN
ZW1 = MZM((XG / PTHVREF * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) *PETHETA IF (KRR /= 0) THEN
ELSE ZW1 = MZM((XG *XALPHAOC * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) *PETHETA
ZW1 = MZM((XG / PTHVREF * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) ELSE
END IF ZW1 = MZM((XG *XALPHAOC * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL)
PRED2THS3(:,:,:,JSV) = PREDTH1(:,:,:) * PREDS1(:,:,:,JSV) + & END IF
ZW1* & ELSE
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* & IF (KRR /= 0) THEN
GX_M_M(PTHLM,PDXX,PDZZ,PDZX, KKA, KKU, KKL) & ZW1 = MZM((XG / PTHVREF * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL) *PETHETA
+GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY, KKA, KKU, KKL)* & ELSE
GY_M_M(PTHLM,PDYY,PDZZ,PDZY, KKA, KKU, KKL), & ZW1 = MZM((XG / PTHVREF * PLM * PLEPS / PTKEM)**2, KKA, KKU, KKL)
KKA, KKU, KKL) END IF
! PRED2THS3(:,:,:,JSV) = PREDTH1(:,:,:) * PREDS1(:,:,:,JSV) + &
IF (KRR /= 0) THEN ZW1* &
PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) * PREDS1(:,:,:,JSV) + & MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* &
ZW1 * PEMOIST * & GX_M_M(PTHLM,PDXX,PDZZ,PDZX, KKA, KKU, KKL) &
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* & +GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY, KKA, KKU, KKL)* &
GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, KKA, KKU, KKL) & GY_M_M(PTHLM,PDYY,PDZZ,PDZY, KKA, KKU, KKL), &
+GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY, KKA, KKU, KKL)* & KKA, KKU, KKL)
GY_M_M(PRM(:,:,:,1),PDYY,PDZZ,PDZY, KKA, KKU, KKL), & !
KKA, KKU, KKL) IF (KRR /= 0) THEN
ELSE PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) * PREDS1(:,:,:,JSV) + &
PRED2RS3(:,:,:,JSV) = 0. ZW1 * PEMOIST * &
MZM(GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX, KKA, KKU, KKL)* &
GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, KKA, KKU, KKL) &
+GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY, KKA, KKU, KKL)* &
GY_M_M(PRM(:,:,:,1),PDYY,PDZZ,PDZY, KKA, KKU, KKL), &
KKA, KKU, KKL)
ELSE
PRED2RS3(:,:,:,JSV) = 0.
END IF
END IF END IF
! !
END IF ! end of HTURBDIM if-block END IF ! end of HTURBDIM if-block
......
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