Index: branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
===================================================================
--- branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90	(revision 6520)
+++ branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90	(revision 6748)
@@ -112,4 +112,5 @@
       !
       IF( ln_bfrimp ) THEN
+!$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)
          DO jj = 2, jpjm1
             DO ji = 2, jpim1
@@ -121,4 +122,5 @@
          END DO
          IF ( ln_isfcav ) THEN
+!$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)
             DO jj = 2, jpjm1
                DO ji = 2, jpim1
@@ -172,4 +174,5 @@
       ! non zero value at the ocean bottom depending on the bottom friction used.
       !
+!$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws)
       DO jk = 1, jpkm1        ! Matrix
          DO jj = 2, jpjm1 
@@ -207,4 +210,5 @@
       !
       DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  ==
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
          DO jj = 2, jpjm1   
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -214,4 +218,5 @@
       END DO
       !
+!$OMP PARALLEL DO schedule(static) private(jj, ji, ze3ua)
       DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==!
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -222,4 +227,5 @@
       END DO
       DO jk = 2, jpkm1
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1
@@ -229,5 +235,6 @@
       END DO
       !
-      DO jj = 2, jpjm1        !==  thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  ==!
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
+        DO jj = 2, jpjm1        !==  thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  ==!
          DO ji = fs_2, fs_jpim1   ! vector opt.
             ua(ji,jj,jpkm1) = ua(ji,jj,jpkm1) / zwd(ji,jj,jpkm1)
@@ -235,5 +242,6 @@
       END DO
       DO jk = jpk-2, 1, -1
-         DO jj = 2, jpjm1
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
+        DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1
                ua(ji,jj,jk) = ( ua(ji,jj,jk) - zws(ji,jj,jk) * ua(ji,jj,jk+1) ) / zwd(ji,jj,jk)
@@ -248,4 +256,5 @@
       ! non zero value at the ocean bottom depending on the bottom friction used
       !
+!$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws)
       DO jk = 1, jpkm1        ! Matrix
          DO jj = 2, jpjm1   
@@ -260,4 +269,5 @@
          END DO
       END DO
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
       DO jj = 2, jpjm1        ! Surface boundary conditions
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -283,4 +293,5 @@
       !
       DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  ==
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
          DO jj = 2, jpjm1   
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -290,4 +301,5 @@
       END DO
       !
+!$OMP PARALLEL DO schedule(static) private(jj, ji, ze3va)
       DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==!
          DO ji = fs_2, fs_jpim1   ! vector opt.          
@@ -298,4 +310,5 @@
       END DO
       DO jk = 2, jpkm1
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -305,4 +318,5 @@
       END DO
       !
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
       DO jj = 2, jpjm1        !==  third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk  ==!
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -311,4 +325,5 @@
       END DO
       DO jk = jpk-2, 1, -1
+!$OMP PARALLEL DO schedule(static) private(jj, ji)
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1
@@ -322,4 +337,5 @@
       !!gm  I almost sure it is !!!!
       IF( ln_bfrimp ) THEN
+!$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)
         DO jj = 2, jpjm1
            DO ji = 2, jpim1
@@ -331,4 +347,5 @@
         END DO
         IF (ln_isfcav) THEN
+!$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)
            DO jj = 2, jpjm1
               DO ji = 2, jpim1
