Index: trunk/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90
===================================================================
--- trunk/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90	(revision 7698)
+++ trunk/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90	(revision 7753)
@@ -72,5 +72,5 @@
       INTEGER, INTENT(in) ::   kt   ! time step
       ! 
-      INTEGER  ::   jk, jj, ji            ! dummy loop indice
+      INTEGER  ::   jk            ! dummy loop indice
       REAL(wp) ::   z2dt, zcoef   ! local scalars
       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zhdiv   ! 2D workspace
@@ -95,23 +95,12 @@
       !                                           !------------------------------!
       IF(ln_wd) THEN
-        CALL wad_lmt(sshb, zcoef * (emp_b(:,:) + emp(:,:)), z2dt)
-      END IF
-
-      CALL div_hor( kt )                              ! Horizontal divergence
-      !
-!$OMP PARALLEL
-!$OMP DO schedule(static) private(jj, ji)
-      DO jj = 1, jpj
-         DO ji = 1, jpi
-            zhdiv(ji,jj) = 0._wp
-         END DO
-      END DO           
+         CALL wad_lmt(sshb, zcoef * (emp_b(:,:) + emp(:,:)), z2dt)
+      ENDIF
+
+      CALL div_hor( kt )                               ! Horizontal divergence
+      !
+      zhdiv(:,:) = 0._wp
       DO jk = 1, jpkm1                                 ! Horizontal divergence of barotropic transports
-!$OMP DO schedule(static) private(jj, ji)
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               zhdiv(ji,jj) = zhdiv(ji,jj) + e3t_n(ji,jj,jk) * hdivn(ji,jj,jk)
-            END DO
-         END DO           
+        zhdiv(:,:) = zhdiv(:,:) + e3t_n(:,:,jk) * hdivn(:,:,jk)
       END DO
       !                                                ! Sea surface elevation time stepping
@@ -119,11 +108,6 @@
       ! compute the vertical velocity which can be used to compute the non-linear terms of the momentum equations.
       ! 
-!$OMP DO schedule(static) private(jj, ji)
-      DO jj = 1, jpj
-         DO ji = 1, jpi
-            ssha(ji,jj) = (  sshb(ji,jj) - z2dt * ( zcoef * ( emp_b(ji,jj) + emp(ji,jj) ) + zhdiv(ji,jj) )  ) * ssmask(ji,jj)
-         END DO
-      END DO           
-!$OMP END PARALLEL
+      ssha(:,:) = (  sshb(:,:) - z2dt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) )  ) * ssmask(:,:)
+
       IF ( .NOT.ln_dynspg_ts ) THEN
          ! These lines are not necessary with time splitting since
@@ -141,10 +125,5 @@
       IF( lk_asminc .AND. ln_sshinc .AND. ln_asmiau ) THEN     ! Include the IAU weighted SSH increment
          CALL ssh_asm_inc( kt )
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               ssha(ji,jj) = ssha(ji,jj) + z2dt * ssh_iau(ji,jj)
-            END DO
-         END DO           
+         ssha(:,:) = ssha(:,:) + z2dt * ssh_iau(:,:)
       ENDIF
 #endif
@@ -192,10 +171,5 @@
          IF(lwp) WRITE(numout,*) '~~~~~ '
          !
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               wn(ji,jj,jpk) = 0._wp                  ! bottom boundary condition: w=0 (set once for all)
-            END DO
-         END DO           
+         wn(:,:,jpk) = 0._wp                  ! bottom boundary condition: w=0 (set once for all)
       ENDIF
       !                                           !------------------------------!
@@ -207,5 +181,4 @@
       IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN      ! z_tilde and layer cases
          CALL wrk_alloc( jpi, jpj, jpk, zhdiv ) 
-!$OMP PARALLEL DO schedule(static) private(jk, jj, ji)
          !
          DO jk = 1, jpkm1
@@ -223,11 +196,6 @@
          DO jk = jpkm1, 1, -1                       ! integrate from the bottom the hor. divergence
             ! computation of w
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-            DO jj = 1, jpj
-               DO ji = 1, jpi   ! vector opt.
-                  wn(ji,jj,jk) = wn(ji,jj,jk+1) - ( e3t_n(ji,jj,jk) * hdivn(ji,jj,jk) + zhdiv(ji,jj,jk)    &
-                  &                         + z1_2dt * ( e3t_a(ji,jj,jk) - e3t_b(ji,jj,jk) )     ) * tmask(ji,jj,jk)
-               END DO
-            END DO
+            wn(:,:,jk) = wn(:,:,jk+1) - (  e3t_n(:,:,jk) * hdivn(:,:,jk) + zhdiv(:,:,jk)    &
+               &                         + z1_2dt * ( e3t_a(:,:,jk) - e3t_b(:,:,jk) )     ) * tmask(:,:,jk)
          END DO
          !          IF( ln_vvl_layer ) wn(:,:,:) = 0.e0
@@ -235,23 +203,13 @@
       ELSE   ! z_star and linear free surface cases
          DO jk = jpkm1, 1, -1                       ! integrate from the bottom the hor. divergence
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-            DO jj = 1, jpj
-               DO ji = 1, jpi   ! vector opt.
-                  ! computation of w
-                  wn(ji,jj,jk) = wn(ji,jj,jk+1) - (  e3t_n(ji,jj,jk) * hdivn(ji,jj,jk)                 &
-                  &                         + z1_2dt * ( e3t_a(ji,jj,jk) - e3t_b(ji,jj,jk) )  ) * tmask(ji,jj,jk)
-                END DO
-            END DO
+            ! computation of w
+            wn(:,:,jk) = wn(:,:,jk+1) - (  e3t_n(:,:,jk) * hdivn(:,:,jk)                 &
+               &                         + z1_2dt * ( e3t_a(:,:,jk) - e3t_b(:,:,jk) )  ) * tmask(:,:,jk)
          END DO
       ENDIF
 
       IF( ln_bdy ) THEN
-!$OMP PARALLEL DO schedule(static) private(jk,jj,ji)
          DO jk = 1, jpkm1
-            DO jj = 1, jpj
-               DO ji = 1, jpi
-                  wn(ji,jj,jk) = wn(ji,jj,jk) * bdytmask(ji,jj)
-               END DO
-            END DO
+            wn(:,:,jk) = wn(:,:,jk) * bdytmask(:,:)
          END DO
       ENDIF
@@ -283,5 +241,4 @@
       INTEGER, INTENT(in) ::   kt   ! ocean time-step index
       !
-      INTEGER  ::   ji, jj, jk   ! dummy loop indices
       REAL(wp) ::   zcoef   ! local scalar
       !!----------------------------------------------------------------------
@@ -297,37 +254,17 @@
       IF(  ( neuler == 0 .AND. kt == nit000 ) .OR.    &
          & ( ln_bt_fw    .AND. ln_dynspg_ts )      ) THEN 
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               sshb(ji,jj) = sshn(ji,jj)                              ! before <-- now
-               sshn(ji,jj) = ssha(ji,jj)                              ! now    <-- after  (before already = now)
-            END DO
-         END DO           
+         sshb(:,:) = sshn(:,:)                              ! before <-- now
+         sshn(:,:) = ssha(:,:)                              ! now    <-- after  (before already = now)
          !
       ELSE           !==  Leap-Frog time-stepping: Asselin filter + swap  ==!
          !                                                  ! before <-- now filtered
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               sshb(ji,jj) = sshn(ji,jj) + atfp * ( sshb(ji,jj) - 2 * sshn(ji,jj) + ssha(ji,jj) )
-            END DO
-         END DO           
+         sshb(:,:) = sshn(:,:) + atfp * ( sshb(:,:) - 2 * sshn(:,:) + ssha(:,:) )
          IF( .NOT.ln_linssh ) THEN                          ! before <-- with forcing removed
             zcoef = atfp * rdt * r1_rau0
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-            DO jj = 1, jpj
-               DO ji = 1, jpi
-                  sshb(ji,jj) = sshb(ji,jj) - zcoef * (     emp_b(ji,jj) - emp   (ji,jj)   &
-                  &                             -    rnf_b(ji,jj) + rnf   (ji,jj)   &
-                  &                             + fwfisf_b(ji,jj) - fwfisf(ji,jj)   ) * ssmask(ji,jj)
-               END DO
-            END DO           
+            sshb(:,:) = sshb(:,:) - zcoef * (     emp_b(:,:) - emp   (:,:)   &
+               &                             -    rnf_b(:,:) + rnf   (:,:)   &
+               &                             + fwfisf_b(:,:) - fwfisf(:,:)   ) * ssmask(:,:)
          ENDIF
-!$OMP PARALLEL DO schedule(static) private(jj, ji)
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               sshn(ji,jj) = ssha(ji,jj)                              ! now <-- after
-            END DO
-         END DO           
+         sshn(:,:) = ssha(:,:)                              ! now <-- after
       ENDIF
       !
