From 2cd811a01f0947c8b80afd9761278f6fdf642ff0 Mon Sep 17 00:00:00 2001
From: Juan Escobar <juan.escobar@aero.obs-mip.fr>
Date: Fri, 23 May 2014 13:15:58 +0000
Subject: [PATCH] Juan 23/05/2014:or bug with ifort/10, replace WHERE this IF

---
 src/SURFEX/sso_z0_frictionn.F90 | 65 ++++++++++++++++++---------------
 1 file changed, 35 insertions(+), 30 deletions(-)

diff --git a/src/SURFEX/sso_z0_frictionn.F90 b/src/SURFEX/sso_z0_frictionn.F90
index 5e80eb872..1ee18cdc9 100644
--- a/src/SURFEX/sso_z0_frictionn.F90
+++ b/src/SURFEX/sso_z0_frictionn.F90
@@ -31,6 +31,7 @@ SUBROUTINE SSO_Z0_FRICTION_n(PSEA,PUREF,PRHOA,PU,PV,PPEW_A_COEF,PPEW_B_COEF,PSFU
 !!      Original    05/2010
 !!      E. Martin   01/2012 Correction masque (compatibilité XUNDEF)
 !!      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
 REAL, DIMENSION(SIZE(PU))    :: ZSSO_SFU! zonal orographic momentum flux
 REAL, DIMENSION(SIZE(PU))    :: ZSSO_SFV! meridian orographic momentum flux
 LOGICAL, DIMENSION(SIZE(PU)) :: GMASK   ! mask where SSO exists
+
+INTEGER                      :: II
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
 !-------------------------------------------------------------------------------------
@@ -100,36 +103,38 @@ IF (CROUGH=="Z01D") ZZ0EFF(:) = XZ0REL(:)
 !              -----------------------------
 !
 IF (CROUGH=="Z04D") THEN
-  WHERE(GMASK(:)) 
-    !
-    ZALFA(:) = ZDIR(:) - XZ0EFFJPDIR(:) * XPI/180.
-    !
-    WHERE    (ZALFA(:)<=-XPI)
-      ZALFA(:) = ZALFA(:) + 2.*XPI
-    ELSEWHERE(ZALFA(:)>  XPI)
-      ZALFA(:) = ZALFA(:) - 2.*XPI
-    ENDWHERE
-    !
-    WHERE (ZALFA(:)>=-XPI.AND.ZALFA(:)<=XPI)
-      !
-      ZSIN2(:) = SIN(ZALFA(:))**2
-      ZCOS2(:) = COS(ZALFA(:))**2
-      !
-      WHERE (ZALFA(:)<0.)
-        ZZ0EFF(:)=XZ0EFFIM(:)*ZSIN2(:)
-      ELSEWHERE
-        ZZ0EFF(:)=XZ0EFFIP(:)*ZSIN2(:)
-      ENDWHERE
-      !
-      WHERE (ZALFA(:)>=-XPI/2. .AND. ZALFA(:)<XPI/2.)
-        ZZ0EFF(:) = ZZ0EFF(:) + XZ0EFFJP(:)*ZCOS2(:)
-      ELSEWHERE
-        ZZ0EFF(:) = ZZ0EFF(:) + XZ0EFFJM(:)*ZCOS2(:)
-      END WHERE
-      !
-    END WHERE
-    !    
-  ENDWHERE
+   DO II=1,SIZE(GMASK)
+      IF (GMASK(II)) THEN
+         !
+         ZALFA(II) = ZDIR(II) - XZ0EFFJPDIR(II) * XPI/180.
+         !
+         IF    (ZALFA(II)<=-XPI) THEN
+            ZALFA(II) = ZALFA(II) + 2.*XPI
+         ELSEIF(ZALFA(II)>  XPI) THEN
+            ZALFA(II) = ZALFA(II) - 2.*XPI
+         END IF
+         !
+         IF (ZALFA(II)>=-XPI.AND.ZALFA(II)<=XPI) THEN
+            !
+            ZSIN2(II) = SIN(ZALFA(II))**2
+            ZCOS2(II) = COS(ZALFA(II))**2
+            !
+            IF (ZALFA(II)<0.) THEN
+               ZZ0EFF(II)=XZ0EFFIM(II)*ZSIN2(II)
+            ELSE
+               ZZ0EFF(II)=XZ0EFFIP(II)*ZSIN2(II)
+            END IF
+            !
+            IF (ZALFA(II)>=-XPI/2. .AND. ZALFA(II)<XPI/2.) THEN
+               ZZ0EFF(II) = ZZ0EFF(II) + XZ0EFFJP(II)*ZCOS2(II)
+            ELSE
+               ZZ0EFF(II) = ZZ0EFF(II) + XZ0EFFJM(II)*ZCOS2(II)
+            END IF
+            !
+         END IF
+         !    
+      END IF
+   END DO
 ENDIF
 !
 !*      4.     Friction coefficient
-- 
GitLab