Skip to content
Snippets Groups Projects
Commit 2cd811a0 authored by ESCOBAR MUNOZ Juan's avatar ESCOBAR MUNOZ Juan Committed by WAUTELET Philippe
Browse files

Juan 23/05/2014:or bug with ifort/10, replace WHERE this IF

parent 6280dd98
No related branches found
No related tags found
No related merge requests found
...@@ -31,6 +31,7 @@ SUBROUTINE SSO_Z0_FRICTION_n(PSEA,PUREF,PRHOA,PU,PV,PPEW_A_COEF,PPEW_B_COEF,PSFU ...@@ -31,6 +31,7 @@ SUBROUTINE SSO_Z0_FRICTION_n(PSEA,PUREF,PRHOA,PU,PV,PPEW_A_COEF,PPEW_B_COEF,PSFU
!! Original 05/2010 !! Original 05/2010
!! E. Martin 01/2012 Correction masque (compatibilité XUNDEF) !! E. Martin 01/2012 Correction masque (compatibilité XUNDEF)
!! B. Decharme 09/2012 new wind implicitation and sea fraction !! B. Decharme 09/2012 new wind implicitation and sea fraction
!! J. Escobar 05/2014 for bug with ifort/10, replace WHERE this IF
!---------------------------------------------------------------- !----------------------------------------------------------------
! !
! !
...@@ -69,6 +70,8 @@ REAL, DIMENSION(SIZE(PU)) :: ZUSTAR2 ! square of friction velocity ...@@ -69,6 +70,8 @@ REAL, DIMENSION(SIZE(PU)) :: ZUSTAR2 ! square of friction velocity
REAL, DIMENSION(SIZE(PU)) :: ZSSO_SFU! zonal orographic momentum flux REAL, DIMENSION(SIZE(PU)) :: ZSSO_SFU! zonal orographic momentum flux
REAL, DIMENSION(SIZE(PU)) :: ZSSO_SFV! meridian orographic momentum flux REAL, DIMENSION(SIZE(PU)) :: ZSSO_SFV! meridian orographic momentum flux
LOGICAL, DIMENSION(SIZE(PU)) :: GMASK ! mask where SSO exists LOGICAL, DIMENSION(SIZE(PU)) :: GMASK ! mask where SSO exists
INTEGER :: II
REAL(KIND=JPRB) :: ZHOOK_HANDLE REAL(KIND=JPRB) :: ZHOOK_HANDLE
!------------------------------------------------------------------------------------- !-------------------------------------------------------------------------------------
...@@ -100,36 +103,38 @@ IF (CROUGH=="Z01D") ZZ0EFF(:) = XZ0REL(:) ...@@ -100,36 +103,38 @@ IF (CROUGH=="Z01D") ZZ0EFF(:) = XZ0REL(:)
! ----------------------------- ! -----------------------------
! !
IF (CROUGH=="Z04D") THEN IF (CROUGH=="Z04D") THEN
WHERE(GMASK(:)) DO II=1,SIZE(GMASK)
! IF (GMASK(II)) THEN
ZALFA(:) = ZDIR(:) - XZ0EFFJPDIR(:) * XPI/180. !
! ZALFA(II) = ZDIR(II) - XZ0EFFJPDIR(II) * XPI/180.
WHERE (ZALFA(:)<=-XPI) !
ZALFA(:) = ZALFA(:) + 2.*XPI IF (ZALFA(II)<=-XPI) THEN
ELSEWHERE(ZALFA(:)> XPI) ZALFA(II) = ZALFA(II) + 2.*XPI
ZALFA(:) = ZALFA(:) - 2.*XPI ELSEIF(ZALFA(II)> XPI) THEN
ENDWHERE ZALFA(II) = ZALFA(II) - 2.*XPI
! END IF
WHERE (ZALFA(:)>=-XPI.AND.ZALFA(:)<=XPI) !
! IF (ZALFA(II)>=-XPI.AND.ZALFA(II)<=XPI) THEN
ZSIN2(:) = SIN(ZALFA(:))**2 !
ZCOS2(:) = COS(ZALFA(:))**2 ZSIN2(II) = SIN(ZALFA(II))**2
! ZCOS2(II) = COS(ZALFA(II))**2
WHERE (ZALFA(:)<0.) !
ZZ0EFF(:)=XZ0EFFIM(:)*ZSIN2(:) IF (ZALFA(II)<0.) THEN
ELSEWHERE ZZ0EFF(II)=XZ0EFFIM(II)*ZSIN2(II)
ZZ0EFF(:)=XZ0EFFIP(:)*ZSIN2(:) ELSE
ENDWHERE ZZ0EFF(II)=XZ0EFFIP(II)*ZSIN2(II)
! END IF
WHERE (ZALFA(:)>=-XPI/2. .AND. ZALFA(:)<XPI/2.) !
ZZ0EFF(:) = ZZ0EFF(:) + XZ0EFFJP(:)*ZCOS2(:) IF (ZALFA(II)>=-XPI/2. .AND. ZALFA(II)<XPI/2.) THEN
ELSEWHERE ZZ0EFF(II) = ZZ0EFF(II) + XZ0EFFJP(II)*ZCOS2(II)
ZZ0EFF(:) = ZZ0EFF(:) + XZ0EFFJM(:)*ZCOS2(:) ELSE
END WHERE ZZ0EFF(II) = ZZ0EFF(II) + XZ0EFFJM(II)*ZCOS2(II)
! END IF
END WHERE !
! END IF
ENDWHERE !
END IF
END DO
ENDIF ENDIF
! !
!* 4. Friction coefficient !* 4. Friction coefficient
......
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