Index: branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90	(revision 9176)
+++ branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90	(revision 9616)
@@ -482,5 +482,4 @@
       r1_e2v  (:,:) = 1._wp    / e2v(:,:)
       r1_e2f  (:,:) = 1._wp    / e2f(:,:)
-
       ! Control printing : Grid informations (if not restart)
       ! ----------------
@@ -527,7 +526,5 @@
 
       CASE ( 0, 1, 4 )               ! mesh on the sphere
-
          ff(:,:) = 2. * omega * SIN( rad * gphif(:,:) ) 
-
       CASE ( 2 )                     ! f-plane at ppgphi0 
 
@@ -676,5 +673,4 @@
          e2f=1.0e2
       END WHERE
-       
     END SUBROUTINE hgr_read
     
Index: branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90	(revision 9176)
+++ branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90	(revision 9616)
@@ -287,14 +287,12 @@
       ENDIF
 
-!$OMP PARALLEL DO                                      ! ===============
-      DO jk = 1, jpkm1                                 ! Horizontal slab
-         !                                             ! ===============
-         !
-         hdivb(:,:,jk) = hdivn(:,:,jk)    ! time swap of div arrays
-         rotb (:,:,jk) = rotn (:,:,jk)    ! time swap of rot arrays
-         !
+         hdivb(:,:,1:jpkm1) = hdivn(:,:,1:jpkm1)    ! time swap of div arrays
+         rotb (:,:,1:jpkm1) = rotn (:,:,1:jpkm1)    ! time swap of rot arrays
+
          !                                             ! --------
          ! Horizontal divergence                       !   div 
          !                                             ! --------
+!$OMP PARALLEL DO
+      DO jk = 1, jpkm1
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -312,8 +310,11 @@
             IF ((nbondj == -1).OR.(nbondj == 2)) hdivn(:      ,2      ,jk) = 0.e0      ! south
          ENDIF
+      END DO
 
          !                                             ! --------
          ! relative vorticity                          !   rot 
          !                                             ! --------
+!$OMP PARALLEL DO
+      DO jk = 1, jpkm1
          DO jj = 1, jpjm1
             DO ji = 1, fs_jpim1   ! vector opt.
Index: branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90	(revision 9176)
+++ branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90	(revision 9616)
@@ -99,4 +99,5 @@
 
       IF( ln_bfrimp ) THEN
+!$OMP PARALLEL DO PRIVATE(ikbu, ikbv) SHARED(mbku, mbkv)
          DO jj = 2, jpjm1
             DO ji = 2, jpim1
@@ -108,4 +109,5 @@
          END DO
          IF ( ln_isfcav ) THEN
+!$OMP PARALLEL DO PRIVATE(ikbu, ikbv) SHARED(miku, mikv)
             DO jj = 2, jpjm1
                DO ji = 2, jpim1
@@ -121,4 +123,5 @@
 #if defined key_dynspg_ts
       IF( ln_dynadv_vec .OR. .NOT. lk_vvl ) THEN      ! applied on velocity
+!$OMP PARALLEL DO
          DO jk = 1, jpkm1
             ua(:,:,jk) = ( ub(:,:,jk) + p2dt * ua(:,:,jk) ) * umask(:,:,jk)
@@ -126,4 +129,5 @@
          END DO
       ELSE                                            ! applied on thickness weighted velocity
+!$OMP PARALLEL DO
          DO jk = 1, jpkm1
             ua(:,:,jk) = (          ub(:,:,jk) * fse3u_b(:,:,jk)      &
@@ -138,4 +142,5 @@
       IF ( ln_bfrimp .AND.lk_dynspg_ts ) THEN
          ! remove barotropic velocities:
+!$OMP PARALLEL DO
          DO jk = 1, jpkm1
             ua(:,:,jk) = (ua(:,:,jk) - ua_b(:,:)) * umask(:,:,jk)
@@ -143,4 +148,5 @@
          END DO
          ! Add bottom/top stress due to barotropic component only:
+!$OMP PARALLEL DO PRIVATE(ikbu, ikbv, ze3ua, ze3va)
          DO jj = 2, jpjm1        
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -154,4 +160,5 @@
          END DO
          IF ( ln_isfcav ) THEN
+!$OMP PARALLEL DO PRIVATE(ikbu, ikbv, ze3ua, ze3va)
             DO jj = 2, jpjm1        
                DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -174,4 +181,5 @@
       ! non zero value at the ocean bottom depending on the bottom friction used.
       !
+!$OMP PARALLEL DO PRIVATE(ze3ua, zcoef, zzwi, zzws)
       DO jk = 1, jpkm1        ! Matrix
          DO jj = 2, jpjm1 
@@ -187,4 +195,5 @@
          END DO
       END DO
+!$OMP PARALLEL DO
       DO jj = 2, jpjm1        ! Surface boundary conditions
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -210,5 +219,7 @@
       !
       !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  ==
+!$OMP PARALLEL
       DO jk = 2, jpkm1
+!$OMP DO
          DO jj = 2, jpjm1   
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -217,19 +228,28 @@
          END DO
       END DO
-      !
+!$OMP END PARALLEL
+      !
+#if defined key_dynspg_ts
+!$OMP PARALLEL DO PRIVATE(ze3ua)
       DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==
          DO ji = fs_2, fs_jpim1   ! vector opt.
-#if defined key_dynspg_ts
             ze3ua =  ( 1._wp - r_vvl ) * fse3u_n(ji,jj,1) + r_vvl   * fse3u_a(ji,jj,1) 
             ua(ji,jj,1) = ua(ji,jj,1) + p2dt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   &
                &                                      / ( ze3ua * rau0 ) * umask(ji,jj,1) 
+         END DO
+      END DO
 #else
+!$OMP PARALLEL DO
+      DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1 Lk-1  ==
+         DO ji = fs_2, fs_jpim1   ! vector opt.
             ua(ji,jj,1) = ub(ji,jj,1) &
                &                   + p2dt *(ua(ji,jj,1) +  0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   &
                &                                      / ( fse3u(ji,jj,1) * rau0     ) * umask(ji,jj,1) ) 
-#endif
-         END DO
-      END DO
+         END DO
+      END DO
+#endif
+!$OMP PARALLEL PRIVATE(zrhs)
       DO jk = 2, jpkm1
+!$OMP DO
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1
@@ -243,5 +263,7 @@
          END DO
       END DO
-      !
+!$OMP END PARALLEL
+      !
+!$OMP PARALLEL DO
       DO jj = 2, jpjm1        !==  thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  ==
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -249,5 +271,7 @@
          END DO
       END DO
+!$OMP PARALLEL
       DO jk = jpk-2, 1, -1
+!$OMP DO
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1
@@ -256,7 +280,9 @@
          END DO
       END DO
+!$OMP END PARALLEL
 
 #if ! defined key_dynspg_ts
       ! Normalization to obtain the general momentum trend ua
+!$OMP PARALLEL DO
       DO jk = 1, jpkm1
          DO jj = 2, jpjm1   
@@ -274,4 +300,6 @@
       ! non zero value at the ocean bottom depending on the bottom friction used
       !
+!$OMP PARALLEL
+!$OMP DO PRIVATE(ze3va, zcoef, zzwi, zzws)
       DO jk = 1, jpkm1        ! Matrix
          DO jj = 2, jpjm1   
@@ -287,4 +315,5 @@
          END DO
       END DO
+!$OMP DO 
       DO jj = 2, jpjm1        ! Surface boundary conditions
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -293,4 +322,5 @@
          END DO
       END DO
+!$OMP END PARALLEL
 
       ! Matrix inversion
@@ -310,5 +340,7 @@
       !
       !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  ==
+!$OMP PARALLEL
       DO jk = 2, jpkm1        
+!$OMP DO
          DO jj = 2, jpjm1   
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -317,5 +349,7 @@
          END DO
       END DO
-      !
+!$OMP END PARALLEL
+      !
+!$OMP PARALLEL DO PRIVATE(ze3va)
       DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -331,5 +365,7 @@
          END DO
       END DO
+!$OMP PARALLEL
       DO jk = 2, jpkm1
+!$OMP DO PRIVATE(zrhs)
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -343,5 +379,7 @@
          END DO
       END DO
-      !
+!$OMP END PARALLEL
+      !
+!$OMP PARALLEL DO
       DO jj = 2, jpjm1        !==  third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk  ==
          DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -349,5 +387,8 @@
          END DO
       END DO
+
+!$OMP PARALLEL
       DO jk = jpk-2, 1, -1
+!$OMP DO
          DO jj = 2, jpjm1
             DO ji = fs_2, fs_jpim1
@@ -356,7 +397,9 @@
          END DO
       END DO
+!$OMP END PARALLEL
 
       ! Normalization to obtain the general momentum trend va
 #if ! defined key_dynspg_ts
+!$OMP PARALLEL DO
       DO jk = 1, jpkm1
          DO jj = 2, jpjm1   
@@ -371,4 +414,6 @@
       !! restore bottom layer avmu(v) 
       IF( ln_bfrimp ) THEN
+!$OMP PARALLEL PRIVATE(ikbu, ikbv)
+!$OMP DO
         DO jj = 2, jpjm1
            DO ji = 2, jpim1
@@ -380,4 +425,5 @@
         END DO
         IF (ln_isfcav) THEN
+!$OMP DO
            DO jj = 2, jpjm1
               DO ji = 2, jpim1
@@ -389,4 +435,5 @@
            END DO
         END IF
+!$OMP END PARALLEL
       ENDIF
       !
Index: branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 9176)
+++ branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 9616)
@@ -216,4 +216,5 @@
             END DO
          ELSE                          ! constant volume case : just apply the runoff input flow
+!$OMP PARALLEL DO
             DO jj = 1, jpj
                DO ji = 1, jpi
Index: branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90	(revision 9176)
+++ branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90	(revision 9616)
@@ -153,8 +153,10 @@
       IF( lk_qsr_bio .AND. ln_qsr_bio ) THEN      !  bio-model fluxes  : all vertical coordinates  !
          !                                        ! ============================================== !
+!$OMP PARALLEL DO 
          DO jk = 1, jpkm1
             qsr_hc(:,:,jk) = r1_rau0_rcp * ( etot3(:,:,jk) - etot3(:,:,jk+1) )
          END DO
          !                                        Add to the general trend
+!$OMP PARALLEL DO PRIVATE (z1_e3t)
          DO jk = 1, jpkm1
             DO jj = 2, jpjm1 
@@ -198,7 +200,7 @@
                   !
                   CALL fld_read( kt, 1, sf_chl )            ! Read Chl data and provides it at the current time step
-!CDIR NOVERRCHK   !
+!$OMP PARALLEL DO PRIVATE(zchl, zCtot, zze, zlogc, zlogc2, zlogc3, zCb, zCmax, &
+!$OMP&                    zpsimax, zdelpsi, zCze, zpsi, jk) SHARED (nksr)
                   DO jj = 1, jpj
-!CDIR NOVERRCHK
                      DO ji = 1, jpi
                         zchl    = sf_chl(1)%fnow(ji,jj,1)
@@ -264,4 +266,5 @@
                END DO
                !
+!$OMP PARALLEL DO
                DO jk = 1, nksr                                        ! compute and add qsr trend to ta
                   qsr_hc(:,:,jk) = r1_rau0_rcp * ( zea(:,:,jk) - zea(:,:,jk+1) )
@@ -271,7 +274,5 @@
                !
                IF ( ln_qsr_ice ) THEN    ! store attenuation coefficient of the first ocean level
-!CDIR NOVERRCHK
                   DO jj = 1, jpj                                         ! Separation in R-G-B depending of the surface Chl
-!CDIR NOVERRCHK
                      DO ji = 1, jpi
                         zchl = MIN( 10. , MAX( 0.03, zchl3d(ji,jj,1) ) )
@@ -283,4 +284,5 @@
                   END DO
                   ! 
+!$OMP PARALLEL DO PRIVATE(zc0, zc1, zc2, zc3)
                   DO jj = 1, jpj
                      DO ji = 1, jpi
@@ -313,4 +315,5 @@
                zz0   =        rn_abs   * r1_rau0_rcp
                zz1   = ( 1. - rn_abs ) * r1_rau0_rcp
+!$OMP PARALLEL DO PRIVATE (zc0, zc1)
                DO jk = 1, nksr                    ! solar heat absorbed at T-point in the top 400m 
                   DO jj = 1, jpj
@@ -324,4 +327,5 @@
                ! clem: store attenuation coefficient of the first ocean level
                IF ( ln_qsr_ice ) THEN
+!$OMP PARALLEL DO PRIVATE (zc0, zc1)
                   DO jj = 1, jpj
                      DO ji = 1, jpi
@@ -333,4 +337,5 @@
                ENDIF
             ELSE                                               !* constant volume: coef. computed one for all
+!$OMP PARALLEL DO
                DO jk = 1, nksr
                   DO jj = 2, jpjm1
@@ -351,4 +356,5 @@
          !
          !                                        Add to the general trend
+!$OMP PARALLEL DO PRIVATE (z1_e3t)
          DO jk = 1, nksr
             DO jj = 2, jpjm1 
@@ -538,9 +544,7 @@
                   ze3(:,:,1) = zcoef
                   zea(:,:,1) = tmask(:,:,1)                   ! = ( ze0+ze1+z2+ze3 ) * tmask
-               
+!$OMP PARALLEL DO PRIVATE(zc0, zc1, zc2, zc3)
                   DO jk = 2, nksr+1
-!CDIR NOVERRCHK
                      DO jj = 1, jpj
-!CDIR NOVERRCHK   
                         DO ji = 1, jpi
                            zc0 = ze0(ji,jj,jk-1) * EXP( - e3t_0(ji,jj,jk-1) * xsi0r     )
@@ -557,4 +561,5 @@
                   END DO 
                   !
+!$OMP PARALLEL DO
                   DO jk = 1, nksr
                      ! (ISF) no light penetration below the ice shelves
@@ -582,4 +587,5 @@
                zz0 =        rn_abs   * r1_rau0_rcp
                zz1 = ( 1. - rn_abs ) * r1_rau0_rcp
+!$OMP PARALLEL DO PRIVATE(zc0, zc1)
                DO jk = 1, nksr                    !*  solar heat absorbed at T-point computed once for all
                   DO jj = 1, jpj                              ! top 400 meters
Index: branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90	(revision 9176)
+++ branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90	(revision 9616)
@@ -109,8 +109,10 @@
       !
       !                                                ! ===============
+!$OMP PARALLEL 
       DO jk = 2, jpkm1                                 ! Horizontal slab
          !                                             ! ===============
          ! Define the mask 
          ! ---------------
+!$OMP DO PRIVATE(zrw, zaw, zbw, zdt, zds)
          DO jj = 1, jpj                                ! R=zrau = (alpha / beta) (dk[t] / dk[s])
             DO ji = 1, jpi
@@ -130,4 +132,5 @@
          END DO
 
+!$OMP DO
          DO jj = 1, jpj                                     ! indicators:
             DO ji = 1, jpi
@@ -156,13 +159,16 @@
          END DO
          ! mask zmsk in order to have avt and avs masked
-         zmsks(:,:) = zmsks(:,:) * wmask(:,:,jk)
-
+!$OMP DO 
+         DO jj = 1, jpj
+            DO ji = 1, jpi
+                zmsks(ji,jj) = zmsks(ji,jj) * wmask(ji,jj,jk)
+            END DO
+         ENDDO
 
          ! Update avt and avs
          ! ------------------
          ! Constant eddy coefficient: reset to the background value
-!CDIR NOVERRCHK
+!$OMP DO PRIVATE(zinr, zrr, zavfs, zavft, zavdt, zavds)
          DO jj = 1, jpj
-!CDIR NOVERRCHK
             DO ji = 1, jpi
                zinr = 1._wp / zrau(ji,jj)
@@ -192,4 +198,5 @@
          ! --------------------------------
 !!gm to be changed following the definition of avm.
+!$OMP DO 
          DO jj = 1, jpjm1
             DO ji = 1, fs_jpim1   ! vector opt.
@@ -204,4 +211,5 @@
          !                                                ! ===============
       END DO                                              !   End of slab
+!$OMP END PARALLEL
       !                                                   ! ===============
       !
