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

Quentin 24/02/2023: missing horizontal packing on emoist and etheta

parent 47a5deb3
No related branches found
No related tags found
No related merge requests found
......@@ -72,25 +72,25 @@ INTEGER :: KRR ! number of moist var.
INTEGER :: KRRI ! number of ice var.
LOGICAL, INTENT(IN) :: OOCEAN ! switch for Ocean model version
!
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTHLM ! Conservative pot. temperature
REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KRR), INTENT(IN) :: PRM ! Mixing ratios, where
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTHLM ! Conservative pot. temperature
REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) :: PRM ! Mixing ratios, where
! PRM(:,:,:,1) = conservative mixing ratio
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLOCPEXNM ! Lv(T)/Cp/Exner at time t-1
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PAMOIST ! Amoist
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSRCM ! Normalized 2dn_order
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLOCPEXNM ! Lv(T)/Cp/Exner at time t-1
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PAMOIST ! Amoist
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSRCM ! Normalized 2dn_order
! moment s'r'c/2Sigma_s2
!
REAL,DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PEMOIST ! result
REAL,DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PEMOIST ! result
!
!* 0.2 declarations of local variables
!
REAL,DIMENSION(D%NIT,D%NJT,D%NKT) :: &
REAL,DIMENSION(D%NIJT,D%NKT) :: &
ZA, ZRW
! ZA = coeft A, ZRW = total mixing ratio rw
REAL :: ZDELTA ! = Rv/Rd - 1
INTEGER :: JRR ! moist loop counter
INTEGER :: JI,JJ,JK ! loop counter
INTEGER :: IIB,IJB,IIE,IJE,IKT
INTEGER :: JIJ,JK ! loop counter
INTEGER :: IIJB,IIJE,IKT
!
!---------------------------------------------------------------------------
!
......@@ -101,89 +101,87 @@ INTEGER :: IIB,IJB,IIE,IJE,IKT
REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK('EMOIST',0,ZHOOK_HANDLE)
!
IIE=D%NIEC
IIB=D%NIBC
IJE=D%NJEC
IJB=D%NJBC
IIJB=D%NIJB
IIJE=D%NIJE
IKT=D%NKT
!
IF (OOCEAN) THEN
IF ( KRR == 0 ) THEN ! Unsalted
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PEMOIST(IIB:IIE,IJB:IJE,:) = 0.
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = 0.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PEMOIST(IIB:IIE,IJB:IJE,:) = 1. ! Salted case
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = 1. ! Salted case
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
END IF
!
ELSE
!
IF ( KRR == 0 ) THEN ! dry case
PEMOIST(IIB:IIE,IJB:IJE,:) = 0.
PEMOIST(IIJB:IIJE,:) = 0.
ELSE IF ( KRR == 1 ) THEN ! only vapor
ZDELTA = (CST%XRV/CST%XRD) - 1.
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PEMOIST(IIB:IIE,IJB:IJE,:) = ZDELTA*PTHLM(IIB:IIE,IJB:IJE,:)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = ZDELTA*PTHLM(IIJB:IIJE,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ! liquid water & ice present
ZDELTA = (CST%XRV/CST%XRD) - 1.
ZRW(IIB:IIE,IJB:IJE,:) = PRM(IIB:IIE,IJB:IJE,:,1)
ZRW(IIJB:IIJE,:) = PRM(IIJB:IIJE,:,1)
!
IF ( KRRI>0) THEN ! rc and ri case
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,3)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,3)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
DO JRR=5,KRR
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZA(IIB:IIE,IJB:IJE,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2) - PRM(IIB:IIE,IJB:IJE,:,4)) &
-ZRW(IIB:IIE,IJB:IJE,:) &
) / (1. + ZRW(IIB:IIE,IJB:IJE,:))
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2) - PRM(IIJB:IIJE,:,4)) &
-ZRW(IIJB:IIJE,:) &
) / (1. + ZRW(IIJB:IIJE,:))
!
! Emoist = ZB + ZC * Amoist
! ZB is computed from line 1 to line 2
! ZC is computed from line 3 to line 5
! Amoist* 2 * SRC is computed at line 6
!
PEMOIST(IIB:IIE,IJB:IJE,:) = ZDELTA * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*( &
PRM(IIB:IIE,IJB:IJE,:,2)+PRM(IIB:IIE,IJB:IJE,:,4)))&
/ (1. + ZRW(IIB:IIE,IJB:IJE,:)) &
+( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:) &
-(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*( &
PRM(IIB:IIE,IJB:IJE,:,2)+PRM(IIB:IIE,IJB:IJE,:,4)))&
/ (1. + ZRW(IIB:IIE,IJB:IJE,:)) &
) * PAMOIST(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = ZDELTA * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)*( &
PRM(IIJB:IIJE,:,2)+PRM(IIJB:IIJE,:,4)))&
/ (1. + ZRW(IIJB:IIJE,:)) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) &
-(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)*( &
PRM(IIJB:IIJE,:,2)+PRM(IIJB:IIJE,:,4)))&
/ (1. + ZRW(IIJB:IIJE,:)) &
) * PAMOIST(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE
DO JRR=3,KRR
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZA(IIB:IIE,IJB:IJE,:) = 1. + ( & ! Compute ZA
(1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2)) &
-ZRW(IIB:IIE,IJB:IJE,:) &
) / (1. + ZRW(IIB:IIE,IJB:IJE,:))
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute ZA
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2)) &
-ZRW(IIJB:IIJE,:) &
) / (1. + ZRW(IIJB:IIJE,:))
!
! Emoist = ZB + ZC * Amoist
! ZB is computed from line 1 to line 2
! ZC is computed from line 3 to line 5
! Amoist* 2 * SRC is computed at line 6
!
PEMOIST(IIB:IIE,IJB:IJE,:) = ZDELTA * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)* &
PRM(IIB:IIE,IJB:IJE,:,2)) / (1. + ZRW(IIB:IIE,IJB:IJE,:)) &
+( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:) &
-(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)* &
PRM(IIB:IIE,IJB:IJE,:,2)) / (1. + ZRW(IIB:IIE,IJB:IJE,:)) &
) * PAMOIST(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PEMOIST(IIJB:IIJE,:) = ZDELTA * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)* &
PRM(IIJB:IIJE,:,2)) / (1. + ZRW(IIJB:IIJE,:)) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) &
-(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)* &
PRM(IIJB:IIJE,:,2)) / (1. + ZRW(IIJB:IIJE,:)) &
) * PAMOIST(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
END IF
END IF
!
......
......@@ -70,31 +70,30 @@ INTEGER :: KRR ! number of moist var.
INTEGER :: KRRI ! number of ice var.
LOGICAL, INTENT(IN) :: OOCEAN ! switch for Ocean model version
!
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTHLM ! Conservative pot. temperature
REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KRR), INTENT(IN) :: PRM ! Mixing ratios, where
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTHLM ! Conservative pot. temperature
REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) :: PRM ! Mixing ratios, where
! PRM(:,:,:,1) = conservative mixing ratio
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLOCPEXNM ! Lv(T)/Cp/Exner at time t-1
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PATHETA ! Atheta
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLOCPEXNM ! Lv(T)/Cp/Exner at time t-1
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PATHETA ! Atheta
!
LOGICAL, INTENT(IN) :: OCOMPUTE_SRC ! flag to define dimensions of SIGS and
REAL, DIMENSION(MERGE(D%NIT,0,OCOMPUTE_SRC),&
MERGE(D%NJT,0,OCOMPUTE_SRC),&
REAL, DIMENSION(MERGE(D%NIJT,0,OCOMPUTE_SRC),&
MERGE(D%NKT,0,OCOMPUTE_SRC)), INTENT(IN) :: PSRCM ! Normalized 2dn_order
! moment s'r'c/2Sigma_s2
!
REAL,DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PETHETA ! result
REAL,DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PETHETA ! result
!
!
!
!* 0.2 declarations of local variables
!
REAL,DIMENSION(D%NIT,D%NJT,D%NKT) :: &
REAL,DIMENSION(D%NIJT,D%NKT) :: &
ZA, ZRW
! ZA = coeft A, ZRW = total mixing ratio rw
REAL :: ZDELTA ! = Rv/Rd - 1
INTEGER :: JRR ! moist loop counter
INTEGER :: JI,JJ,JK ! loop counter
INTEGER :: IIB,IJB,IIE,IJE,IKT
INTEGER :: JIJ,JK ! loop counter
INTEGER :: IIJB,IIJE,IKT
!
!---------------------------------------------------------------------------
!
......@@ -106,80 +105,78 @@ INTEGER :: IIB,IJB,IIE,IJE,IKT
REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK('ETHETA',0,ZHOOK_HANDLE)
!
IIE=D%NIEC
IIB=D%NIBC
IJE=D%NJEC
IJB=D%NJBC
IIJB=D%NIJB
IIJE=D%NIJE
IKT=D%NKT
!
IF (OOCEAN) THEN ! ocean case
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PETHETA(IIB:IIE,IJB:IJE,:) = 1.
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = 1.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE
IF ( KRR == 0) THEN ! dry case
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PETHETA(IIB:IIE,IJB:IJE,:) = 1.
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = 1.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE IF ( KRR == 1 ) THEN ! only vapor
ZDELTA = (CST%XRV/CST%XRD) - 1.
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PETHETA(IIB:IIE,IJB:IJE,:) = 1. + ZDELTA*PRM(IIB:IIE,IJB:IJE,:,1)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = 1. + ZDELTA*PRM(IIJB:IIJE,:,1)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE ! liquid water & ice present
ZDELTA = (CST%XRV/CST%XRD) - 1.
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = PRM(IIB:IIE,IJB:IJE,:,1)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = PRM(IIJB:IIJE,:,1)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!
IF ( KRRI>0 ) THEN ! rc and ri case
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,3)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,3)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
DO JRR=5,KRR
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZA(IIB:IIE,IJB:IJE,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2) - PRM(IIB:IIE,IJB:IJE,:,4)) &
-ZRW(IIB:IIE,IJB:IJE,:) &
) / (1. + ZRW(IIB:IIE,IJB:IJE,:))
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2) - PRM(IIJB:IIJE,:,4)) &
-ZRW(IIJB:IIJE,:) &
) / (1. + ZRW(IIJB:IIJE,:))
!
! Etheta = ZA + ZC * Atheta
! ZC is computed from line 2 to line 5
! - Atheta * 2. * SRC is computed at line 6
!
PETHETA(IIB:IIE,IJB:IJE,:) = ZA(IIB:IIE,IJB:IJE,:) &
+( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:) &
-(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*( &
PRM(IIB:IIE,IJB:IJE,:,2)+PRM(IIB:IIE,IJB:IJE,:,4)))&
/ (1. + ZRW(IIB:IIE,IJB:IJE,:)) &
) * PATHETA(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = ZA(IIJB:IIJE,:) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) &
-(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) + PLOCPEXNM(IIJB:IIJE,:)*( &
PRM(IIJB:IIJE,:,2)+PRM(IIJB:IIJE,:,4)))&
/ (1. + ZRW(IIJB:IIJE,:)) &
) * PATHETA(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ELSE
DO JRR=3,KRR
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZRW(IIJB:IIJE,:) = ZRW(IIJB:IIJE,:) + PRM(IIJB:IIJE,:,JRR)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ENDDO
!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
ZA(IIB:IIE,IJB:IJE,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2)) &
-ZRW(IIB:IIE,IJB:IJE,:) &
) / (1. + ZRW(IIB:IIE,IJB:IJE,:))
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(IIJB:IIJE,:) = 1. + ( & ! Compute A
(1.+ZDELTA) * (PRM(IIJB:IIJE,:,1) - PRM(IIJB:IIJE,:,2)) &
-ZRW(IIJB:IIJE,:) &
) / (1. + ZRW(IIJB:IIJE,:))
!
! Etheta = ZA + ZC * Atheta
! ZC is computed from line 2 to line 5
! - Atheta * 2. * SRC is computed at line 6
!
PETHETA(IIB:IIE,IJB:IJE,:) = ZA(IIB:IIE,IJB:IJE,:) &
+( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:) -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) &
+ PLOCPEXNM(IIB:IIE,IJB:IJE,:)*PRM(IIB:IIE,IJB:IJE,:,2)) &
/ (1. + ZRW(IIB:IIE,IJB:IJE,:)) &
) * PATHETA(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
PETHETA(IIJB:IIJE,:) = ZA(IIJB:IIJE,:) &
+( PLOCPEXNM(IIJB:IIJE,:) * ZA(IIJB:IIJE,:) -(1.+ZDELTA) * (PTHLM(IIJB:IIJE,:) &
+ PLOCPEXNM(IIJB:IIJE,:)*PRM(IIJB:IIJE,:,2)) &
/ (1. + ZRW(IIJB:IIJE,:)) &
) * PATHETA(IIJB:IIJE,:) * 2. * PSRCM(IIJB:IIJE,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
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