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

Quentin 24/02/2023: emoist and etheta appplying index_array transform ponctually

parent e62346d0
No related branches found
No related tags found
No related merge requests found
...@@ -108,79 +108,79 @@ IKT=D%NKT ...@@ -108,79 +108,79 @@ IKT=D%NKT
IF (OOCEAN) THEN IF (OOCEAN) THEN
IF ( KRR == 0 ) THEN ! Unsalted IF ( KRR == 0 ) THEN ! Unsalted
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = 0. PEMOIST(:,:) = 0.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ELSE
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = 1. ! Salted case PEMOIST(:,:) = 1. ! Salted case
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
END IF END IF
! !
ELSE ELSE
! !
IF ( KRR == 0 ) THEN ! dry case IF ( KRR == 0 ) THEN ! dry case
PEMOIST(IIJB:IIJE,:) = 0. PEMOIST(:,:) = 0.
ELSE IF ( KRR == 1 ) THEN ! only vapor ELSE IF ( KRR == 1 ) THEN ! only vapor
ZDELTA = (CST%XRV/CST%XRD) - 1. ZDELTA = (CST%XRV/CST%XRD) - 1.
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = ZDELTA*PTHLM(IIJB:IIJE,:) PEMOIST(:,:) = ZDELTA*PTHLM(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ! liquid water & ice present ELSE ! liquid water & ice present
ZDELTA = (CST%XRV/CST%XRD) - 1. ZDELTA = (CST%XRV/CST%XRD) - 1.
ZRW(IIJB:IIJE,:) = PRM(IIJB:IIJE,:,1) ZRW(:,:) = PRM(:,:,1)
! !
IF ( KRRI>0) THEN ! rc and ri case IF ( KRRI>0) THEN ! rc and ri case
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,3) ZRW(:,:) = ZRW(:,:) + PRM(:,:,3)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
DO JRR=5,KRR DO JRR=5,KRR
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR) ZRW(:,:) = ZRW(:,:) + PRM(:,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO ENDDO
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute A ZA(:,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2) - PRM(IIJB:IIJE,:,4)) & (1.+ZDELTA) * (PRM(:,:,1) - PRM(:,:,2) - PRM(:,:,4)) &
-ZRW(IIJB:IIJE,:) & -ZRW(:,:) &
) / (1. + ZRW(IIJB:IIJE,:)) ) / (1. + ZRW(:,:))
! !
! Emoist = ZB + ZC * Amoist ! Emoist = ZB + ZC * Amoist
! ZB is computed from line 1 to line 2 ! ZB is computed from line 1 to line 2
! ZC is computed from line 3 to line 5 ! ZC is computed from line 3 to line 5
! Amoist* 2 * SRC is computed at line 6 ! Amoist* 2 * SRC is computed at line 6
! !
PEMOIST(IIJB:IIJE,:) = ZDELTA * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)*( & PEMOIST(:,:) = ZDELTA * (PTHLM(:,:) + PLOCPEXNM(:,:)*( &
PRM(IIJB:IIJE,:,2)+PRM(IIJB:IIJE,:,4)))& PRM(:,:,2)+PRM(:,:,4)))&
/ (1. + ZRW(IIJB:IIJE,:)) & / (1. + ZRW(:,:)) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) & +( PLOCPEXNM(:,:) * ZA(:,:) &
-(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)*( & -(1.+ZDELTA) * (PTHLM(:,:) + PLOCPEXNM(:,:)*( &
PRM(IIJB:IIJE,:,2)+PRM(IIJB:IIJE,:,4)))& PRM(:,:,2)+PRM(:,:,4)))&
/ (1. + ZRW(IIJB:IIJE,:)) & / (1. + ZRW(:,:)) &
) * PAMOIST(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:) ) * PAMOIST(:,:) * 2. * PSRCM(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ELSE
DO JRR=3,KRR DO JRR=3,KRR
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR) ZRW(:,:) = ZRW(:,:) + PRM(:,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO ENDDO
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute ZA ZA(:,:) = 1. + ( & ! Compute ZA
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2)) & (1.+ZDELTA) * (PRM(:,:,1) - PRM(:,:,2)) &
-ZRW(IIJB:IIJE,:) & -ZRW(:,:) &
) / (1. + ZRW(IIJB:IIJE,:)) ) / (1. + ZRW(:,:))
! !
! Emoist = ZB + ZC * Amoist ! Emoist = ZB + ZC * Amoist
! ZB is computed from line 1 to line 2 ! ZB is computed from line 1 to line 2
! ZC is computed from line 3 to line 5 ! ZC is computed from line 3 to line 5
! Amoist* 2 * SRC is computed at line 6 ! Amoist* 2 * SRC is computed at line 6
! !
PEMOIST(IIJB:IIJE,:) = ZDELTA * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)* & PEMOIST(:,:) = ZDELTA * (PTHLM(:,:) + PLOCPEXNM(:,:)* &
PRM(IIJB:IIJE,:,2)) / (1. + ZRW(IIJB:IIJE,:)) & PRM(:,:,2)) / (1. + ZRW(:,:)) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) & +( PLOCPEXNM(:,:) * ZA(:,:) &
-(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)* & -(1.+ZDELTA) * (PTHLM(:,:) + PLOCPEXNM(:,:)* &
PRM(IIJB:IIJE,:,2)) / (1. + ZRW(IIJB:IIJE,:)) & PRM(:,:,2)) / (1. + ZRW(:,:)) &
) * PAMOIST(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:) ) * PAMOIST(:,:) * 2. * PSRCM(:,:)
!$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
......
...@@ -111,71 +111,71 @@ IKT=D%NKT ...@@ -111,71 +111,71 @@ IKT=D%NKT
! !
IF (OOCEAN) THEN ! ocean case IF (OOCEAN) THEN ! ocean case
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = 1. PETHETA(:,:) = 1.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ELSE
IF ( KRR == 0) THEN ! dry case IF ( KRR == 0) THEN ! dry case
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = 1. PETHETA(:,:) = 1.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE IF ( KRR == 1 ) THEN ! only vapor ELSE IF ( KRR == 1 ) THEN ! only vapor
ZDELTA = (CST%XRV/CST%XRD) - 1. ZDELTA = (CST%XRV/CST%XRD) - 1.
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = 1. + ZDELTA*PRM(IIJB:IIJE,:,1) PETHETA(:,:) = 1. + ZDELTA*PRM(:,:,1)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ! liquid water & ice present ELSE ! liquid water & ice present
ZDELTA = (CST%XRV/CST%XRD) - 1. ZDELTA = (CST%XRV/CST%XRD) - 1.
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = PRM(IIJB:IIJE,:,1) ZRW(:,:) = PRM(:,:,1)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
! !
IF ( KRRI>0 ) THEN ! rc and ri case IF ( KRRI>0 ) THEN ! rc and ri case
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,3) ZRW(:,:) = ZRW(:,:) + PRM(:,:,3)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
DO JRR=5,KRR DO JRR=5,KRR
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR) ZRW(:,:) = ZRW(:,:) + PRM(:,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO ENDDO
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute A ZA(:,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2) - PRM(IIJB:IIJE,:,4)) & (1.+ZDELTA) * (PRM(:,:,1) - PRM(:,:,2) - PRM(:,:,4)) &
-ZRW(IIJB:IIJE,:) & -ZRW(:,:) &
) / (1. + ZRW(IIJB:IIJE,:)) ) / (1. + ZRW(:,:))
! !
! Etheta = ZA + ZC * Atheta ! Etheta = ZA + ZC * Atheta
! ZC is computed from line 2 to line 5 ! ZC is computed from line 2 to line 5
! - Atheta * 2. * SRC is computed at line 6 ! - Atheta * 2. * SRC is computed at line 6
! !
PETHETA(IIJB:IIJE,:) = ZA(IIJB:IIJE,:) & PETHETA(:,:) = ZA(:,:) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) & +( PLOCPEXNM(:,:) * ZA(:,:) &
-(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)*( & -(1.+ZDELTA) * (PTHLM(:,:) + PLOCPEXNM(:,:)*( &
PRM(IIJB:IIJE,:,2)+PRM(IIJB:IIJE,:,4)))& PRM(:,:,2)+PRM(:,:,4)))&
/ (1. + ZRW(IIJB:IIJE,:)) & / (1. + ZRW(:,:)) &
) * PATHETA(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:) ) * PATHETA(:,:) * 2. * PSRCM(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ELSE
DO JRR=3,KRR DO JRR=3,KRR
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR) ZRW(:,:) = ZRW(:,:) + PRM(:,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO ENDDO
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute A ZA(:,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2)) & (1.+ZDELTA) * (PRM(:,:,1) - PRM(:,:,2)) &
-ZRW(IIJB:IIJE,:) & -ZRW(:,:) &
) / (1. + ZRW(IIJB:IIJE,:)) ) / (1. + ZRW(:,:))
! !
! Etheta = ZA + ZC * Atheta ! Etheta = ZA + ZC * Atheta
! ZC is computed from line 2 to line 5 ! ZC is computed from line 2 to line 5
! - Atheta * 2. * SRC is computed at line 6 ! - Atheta * 2. * SRC is computed at line 6
! !
PETHETA(IIJB:IIJE,:) = ZA(IIJB:IIJE,:) & PETHETA(:,:) = ZA(:,:) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) -(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) & +( PLOCPEXNM(:,:) * ZA(:,:) -(1.+ZDELTA) * (PTHLM(:,:) &
+ PLOCPEXNM(IIJB:IIJE,:)*PRM(IIJB:IIJE,:,2)) & + PLOCPEXNM(:,:)*PRM(:,:,2)) &
/ (1. + ZRW(IIJB:IIJE,:)) & / (1. + ZRW(:,:)) &
) * PATHETA(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:) ) * PATHETA(:,:) * 2. * PSRCM(:,:)
!$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
......
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