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

Transform ANY(var) on horizontal dimensions var transformed as REAL by...

Transform ANY(var) on horizontal dimensions var transformed as REAL by reDimKlonArrayToScalar (see issue 10) +
real ZRAY in contained routine must have a different name than the 2D variable in the main routine for inlining
parent 5be77485
No related branches found
No related tags found
No related merge requests found
...@@ -313,13 +313,14 @@ CHARACTER(LEN=10) :: YSPE ! String for error message ...@@ -313,13 +313,14 @@ CHARACTER(LEN=10) :: YSPE ! String for error message
INTEGER :: JIJ, JK INTEGER :: JIJ, JK
LOGICAL :: GPRESENT_PFPR LOGICAL :: GPRESENT_PFPR
REAL :: ZINVTSTEP REAL :: ZINVTSTEP
REAL :: ZZWLBDC, ZRAY, ZZT, ZZWLBDA, ZZCC REAL :: ZZWLBDC, ZZRAY, ZZT, ZZWLBDA, ZZCC
REAL :: ZLBDA REAL :: ZLBDA
REAL :: ZFSED, ZEXSED REAL :: ZFSED, ZEXSED
REAL :: ZMRCHANGE REAL :: ZMRCHANGE
REAL, DIMENSION(D%NIJT) :: ZMAX_TSTEP ! Maximum CFL in column REAL, DIMENSION(D%NIJT) :: ZMAX_TSTEP ! Maximum CFL in column
REAL, DIMENSION(SIZE(ICED%XRTMIN)) :: ZRSMIN REAL, DIMENSION(SIZE(ICED%XRTMIN)) :: ZRSMIN
REAL, DIMENSION(D%NIJT) :: ZREMAINT ! Remaining time until the timestep end REAL, DIMENSION(D%NIJT) :: ZREMAINT ! Remaining time until the timestep end
LOGICAL :: ZANYREMAINT
REAL, DIMENSION(D%NIJT, 0:D%NKT+1) :: ZWSED ! Sedimentation fluxes REAL, DIMENSION(D%NIJT, 0:D%NKT+1) :: ZWSED ! Sedimentation fluxes
INTEGER :: IKTB, IKTE, IKB, IKL, IIJE, IIJB INTEGER :: IKTB, IKTE, IKB, IKL, IIJE, IIJB
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
...@@ -346,7 +347,8 @@ ZRSMIN = ICED%XRTMIN * ZINVTSTEP ...@@ -346,7 +347,8 @@ ZRSMIN = ICED%XRTMIN * ZINVTSTEP
ZREMAINT(:) = 0. ZREMAINT(:) = 0.
ZREMAINT(IIJB:IIJE) = PTSTEP ZREMAINT(IIJB:IIJE) = PTSTEP
! !
DO WHILE (ANY(ZREMAINT>0.)) ZANYREMAINT = .TRUE.
DO WHILE (ZANYREMAINT)
! !
! !
!* 1. Parameters for cloud sedimentation !* 1. Parameters for cloud sedimentation
...@@ -364,10 +366,10 @@ DO WHILE (ANY(ZREMAINT>0.)) ...@@ -364,10 +366,10 @@ DO WHILE (ANY(ZREMAINT>0.))
ZZWLBDC = PLBC(JIJ,JK) * PCONC3D(JIJ,JK) / & ZZWLBDC = PLBC(JIJ,JK) * PCONC3D(JIJ,JK) / &
&(PRHODREF(JIJ,JK) * PRXT(JIJ,JK)) &(PRHODREF(JIJ,JK) * PRXT(JIJ,JK))
ZZWLBDC = ZZWLBDC**ICED%XLBEXC ZZWLBDC = ZZWLBDC**ICED%XLBEXC
ZRAY = PRAY(JIJ,JK) / ZZWLBDC ZZRAY = PRAY(JIJ,JK) / ZZWLBDC
ZZT = PTHT(JIJ,JK) * (PPABST(JIJ,JK)/CST%XP00)**(CST%XRD/CST%XCPD) ZZT = PTHT(JIJ,JK) * (PPABST(JIJ,JK)/CST%XP00)**(CST%XRD/CST%XCPD)
ZZWLBDA = 6.6E-8*(101325./PPABST(JIJ,JK))*(ZZT/293.15) ZZWLBDA = 6.6E-8*(101325./PPABST(JIJ,JK))*(ZZT/293.15)
ZZCC = ICED%XCC*(1.+1.26*ZZWLBDA/ZRAY) ZZCC = ICED%XCC*(1.+1.26*ZZWLBDA/ZZRAY)
ZWSED(JIJ, JK) = PRHODREF(JIJ,JK)**(-ICED%XCEXVT +1 ) * & ZWSED(JIJ, JK) = PRHODREF(JIJ,JK)**(-ICED%XCEXVT +1 ) * &
&ZZWLBDC**(-ICED%XDC)*ZZCC*PFSEDC(JIJ,JK) * PRXT(JIJ,JK) &ZZWLBDC**(-ICED%XDC)*ZZCC*PFSEDC(JIJ,JK) * PRXT(JIJ,JK)
ENDIF ENDIF
...@@ -469,7 +471,13 @@ DO WHILE (ANY(ZREMAINT>0.)) ...@@ -469,7 +471,13 @@ DO WHILE (ANY(ZREMAINT>0.))
ENDIF ENDIF
ENDDO ENDDO
ENDDO ENDDO
! !
ZANYREMAINT = .FALSE.
DO JIJ=IIJB,IIJE
IF(ZREMAINT(JIJ)>0.) THEN
ZANYREMAINT = .TRUE.
END IF
END DO
END DO END DO
! !
IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 1, ZHOOK_HANDLE) IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 1, ZHOOK_HANDLE)
......
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