Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90	(revision 9261)
@@ -111,5 +111,5 @@
             !
             !                                      ! Write the information
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate             )
             CALL iom_rstput( kt, nitbkg_r, inum, 'un'     , un                )
@@ -122,5 +122,5 @@
 #endif
             CALL iom_rstput( kt, nitbkg_r, inum, 'gcx'    , gcx               )
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
             !
             CALL iom_close( inum )
@@ -151,5 +151,5 @@
             !
             !                                      ! Write the information
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( kt, nitdin_r, inum, 'rdastp' , zdate             )
             CALL iom_rstput( kt, nitdin_r, inum, 'un'     , un                )
@@ -167,5 +167,5 @@
             ENDIF
 #endif
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
             !
             CALL iom_close( inum )
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90	(revision 9261)
@@ -254,4 +254,5 @@
            IF(lwp) WRITE(numout,*) ' dia_hsb_rst at it= ', kt,' date= ', ndastp
            IF(lwp) WRITE(numout,*) '~~~~~~~'
+           IF(nn_timing == 2)  CALL timing_start('iom_rstget')
            CALL iom_get( numror, 'frc_v', frc_v )
            CALL iom_get( numror, 'frc_t', frc_t )
@@ -269,4 +270,5 @@
               CALL iom_get( numror, jpdom_autoglo, 'ssh_sc_loc_ini', ssh_sc_loc_ini )
            ENDIF
+           IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
        ELSE
           IF(lwp) WRITE(numout,*) '~~~~~~~'
@@ -304,5 +306,5 @@
         IF(lwp) WRITE(numout,*) ' dia_hsb_rst at it= ', kt,' date= ', ndastp
         IF(lwp) WRITE(numout,*) '~~~~~~~'
-        IF(nn_timing == 3)  CALL timing_start('rst_put')
+        IF(nn_timing == 2)  CALL timing_start('iom_rstput')
         CALL iom_rstput( kt, nitrst, numrow, 'frc_v'   , frc_v     )
         CALL iom_rstput( kt, nitrst, numrow, 'frc_t'   , frc_t     )
@@ -320,5 +322,5 @@
            CALL iom_rstput( kt, nitrst, numrow, 'ssh_sc_loc_ini', ssh_sc_loc_ini )
         ENDIF
-        IF(nn_timing == 3)  CALL timing_stop('rst_put')
+        IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
         !
      ENDIF
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90	(revision 9261)
@@ -309,5 +309,7 @@
          IF( iom_varid( numror, 'kt', ldstop = .FALSE. ) > 0 ) THEN
             ! Get Calendar informations
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, 'kt', zkt )   ! last time-step of previous run
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             IF(lwp) THEN
                WRITE(numout,*) ' *** Info read in restart : '
@@ -327,8 +329,10 @@
             ! define ndastp and adatrj
             IF ( nrstdt == 2 ) THEN
+               IF(nn_timing == 2)  CALL timing_start('iom_rstget')
                ! read the parameters correspondting to nit000 - 1 (last time step of previous run)
                CALL iom_get( numror, 'ndastp', zndastp )
                ndastp = NINT( zndastp )
                CALL iom_get( numror, 'adatrj', adatrj  )
+               IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             ELSE
                ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day)
@@ -359,10 +363,10 @@
          ENDIF
          ! calendar control
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'kt'     , REAL( kt    , wp) )   ! time-step
          CALL iom_rstput( kt, nitrst, numrow, 'ndastp' , REAL( ndastp, wp) )   ! date
          CALL iom_rstput( kt, nitrst, numrow, 'adatrj' , adatrj            )   ! number of elapsed days since
          !                                                                     ! the begining of the run [s]
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90	(revision 9261)
@@ -817,4 +817,5 @@
          IF( ln_rstart ) THEN                   !* Read the restart file
             CALL rst_read_open                  !  open the restart file if necessary
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, jpdom_autoglo, 'sshn'   , sshn    )
             !
@@ -892,4 +893,5 @@
             ENDIF
             !
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
          ELSE                                   !* Initialize at "rest"
             fse3t_b(:,:,:) = e3t_0(:,:,:)
@@ -909,5 +911,5 @@
          !                                           ! all cases !
          !                                           ! --------- ! 
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) )
          CALL iom_rstput( kt, nitrst, numrow, 'fse3t_n', fse3t_n(:,:,:) )
@@ -923,5 +925,5 @@
             CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:) )
          ENDIF
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
 
       ENDIF
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90	(revision 9261)
@@ -126,10 +126,10 @@
       
       !                                                         ! masks (inum2) 
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       CALL iom_rstput( 0, 0, inum2, 'tmask', tmask, ktype = jp_i1 )     !    ! land-sea mask
       CALL iom_rstput( 0, 0, inum2, 'umask', umask, ktype = jp_i1 )
       CALL iom_rstput( 0, 0, inum2, 'vmask', vmask, ktype = jp_i1 )
       CALL iom_rstput( 0, 0, inum2, 'fmask', fmask, ktype = jp_i1 )
-      IF(nn_timing == 3)  CALL timing_stop('rst_put')
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       
       CALL dom_uniq( zprw, 'T' )
@@ -140,7 +140,7 @@
          END DO
       END DO                             !    ! unique point mask
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       CALL iom_rstput( 0, 0, inum2, 'tmaskutil', zprt, ktype = jp_i1 )  
-      IF(nn_timing == 3)  CALL timing_stop('rst_put')
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       CALL dom_uniq( zprw, 'U' )
       DO jj = 1, jpj
@@ -150,7 +150,7 @@
          END DO
       END DO
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       CALL iom_rstput( 0, 0, inum2, 'umaskutil', zprt, ktype = jp_i1 )  
-      IF(nn_timing == 3)  CALL timing_stop('rst_put')
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       CALL dom_uniq( zprw, 'V' )
       DO jj = 1, jpj
@@ -160,7 +160,7 @@
          END DO
       END DO
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       CALL iom_rstput( 0, 0, inum2, 'vmaskutil', zprt, ktype = jp_i1 )  
-      IF(nn_timing == 3)  CALL timing_stop('rst_put')
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       CALL dom_uniq( zprw, 'F' )
       DO jj = 1, jpj
@@ -170,5 +170,5 @@
          END DO
       END DO
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       CALL iom_rstput( 0, 0, inum2, 'fmaskutil', zprt, ktype = jp_i1 )  
 
@@ -227,14 +227,14 @@
          CALL iom_rstput( 0, 0, inum4, 'gdepw_0', gdepw_0, ktype = jp_r4 )     
       ENDIF
-      IF(nn_timing == 3)  CALL timing_stop('rst_put') 
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput') 
       IF( ln_zps ) THEN                                         ! z-coordinate - partial steps
          !
          IF( nmsh <= 6 ) THEN                                   !    ! 3D vertical scale factors
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( 0, 0, inum4, 'e3t_0', e3t_0 )         
             CALL iom_rstput( 0, 0, inum4, 'e3u_0', e3u_0 )
             CALL iom_rstput( 0, 0, inum4, 'e3v_0', e3v_0 )
             CALL iom_rstput( 0, 0, inum4, 'e3w_0', e3w_0 )
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ELSE                                                   !    ! 2D masked bottom ocean scale factors
             DO jj = 1,jpj   
@@ -244,8 +244,8 @@
                END DO
             END DO
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( 0, 0, inum4, 'e3t_ps', e3tp )      
             CALL iom_rstput( 0, 0, inum4, 'e3w_ps', e3wp )
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          END IF
          !
@@ -261,9 +261,9 @@
             END DO
             CALL lbc_lnk( zdepu, 'U', 1. )   ;   CALL lbc_lnk( zdepv, 'V', 1. ) 
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( 0, 0, inum4, 'gdepu', zdepu, ktype = jp_r4 )
             CALL iom_rstput( 0, 0, inum4, 'gdepv', zdepv, ktype = jp_r4 )
             CALL iom_rstput( 0, 0, inum4, 'gdepw_0', gdepw_0, ktype = jp_r4 )
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ELSE                                                   !    ! 2D bottom depth
             DO jj = 1,jpj   
@@ -273,26 +273,26 @@
                END DO
             END DO
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( 0, 0, inum4, 'hdept', zprt, ktype = jp_r4 )     
             CALL iom_rstput( 0, 0, inum4, 'hdepw', zprw, ktype = jp_r4 ) 
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ENDIF
          !
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( 0, 0, inum4, 'gdept_1d', gdept_1d )   !    ! reference z-coord.
          CALL iom_rstput( 0, 0, inum4, 'gdepw_1d', gdepw_1d )
          CALL iom_rstput( 0, 0, inum4, 'e3t_1d'  , e3t_1d   )
          CALL iom_rstput( 0, 0, inum4, 'e3w_1d'  , e3w_1d   )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       
       IF( ln_zco ) THEN
          !                                                      ! z-coordinate - full steps
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( 0, 0, inum4, 'gdept_1d', gdept_1d )   !    ! depth
          CALL iom_rstput( 0, 0, inum4, 'gdepw_1d', gdepw_1d )
          CALL iom_rstput( 0, 0, inum4, 'e3t_1d'  , e3t_1d   )   !    ! scale factors
          CALL iom_rstput( 0, 0, inum4, 'e3w_1d'  , e3w_1d   )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !                                     ! ============================
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90	(revision 9261)
@@ -395,6 +395,8 @@
 ! Caution : extra-hallow
 ! gcx and gcxb are defined as: DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, jpdom_autoglo, 'gcx' , gcx (1:jpi,1:jpj) )
             CALL iom_get( numror, jpdom_autoglo, 'gcxb', gcxb(1:jpi,1:jpj) )
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             IF( neuler == 0 )   gcxb(:,:) = gcx (:,:)
          ELSE
@@ -405,8 +407,8 @@
 ! Caution : extra-hallow
 ! gcx and gcxb are defined as: DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'gcx' , gcx (1:jpi,1:jpj) )
          CALL iom_rstput( kt, nitrst, numrow, 'gcxb', gcxb(1:jpi,1:jpj) )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90	(revision 9261)
@@ -1019,4 +1019,5 @@
       !
       IF( TRIM(cdrw) == 'READ' ) THEN
+         IF(nn_timing == 2)  CALL timing_start('iom_rstget')
          CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:) )   
          CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:) ) 
@@ -1036,7 +1037,8 @@
          ENDIF
 #endif
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
       !
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'ub2_b'   , ub2_b  (:,:) )
          CALL iom_rstput( kt, nitrst, numrow, 'vb2_b'   , vb2_b  (:,:) )
@@ -1057,5 +1059,5 @@
          ENDIF
 #endif
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90	(revision 9261)
@@ -29,4 +29,5 @@
    USE icb_oce        ! define iceberg arrays
    USE icbutl         ! iceberg utility routines
+   USE timing
 
    IMPLICIT NONE
@@ -71,5 +72,5 @@
       TYPE(point)                  ::   localpt   ! NOT a pointer but an actual local variable
       !!----------------------------------------------------------------------
-
+      IF(nn_timing == 2)  CALL timing_start('iom_rstget')
       ! Find a restart file. Assume iceberg restarts in same directory as ocean restarts
       ! and are called TRIM(cn_ocerst)//'_icebergs'
@@ -146,4 +147,5 @@
       CALL iom_close( ncid )
       !
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
       IF( lwp .and. nn_verbose_level >= 0)  WRITE(numout,'(a)') 'icebergs, read_restart_bergs: completed'
       !
@@ -169,5 +171,5 @@
       TYPE(point)  , POINTER :: pt
       !!----------------------------------------------------------------------
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       ! Assume we write iceberg restarts to same directory as ocean restarts.
       cl_path = TRIM(cn_ocerst_outdir)
@@ -374,5 +376,5 @@
       nret = NF90_CLOSE(ncid)
       IF (nret /= NF90_NOERR) CALL ctl_stop('icebergs, write_restart: nf_close failed')
-      IF(nn_timing == 3)  CALL timing_stop('rst_put')
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       !
    END SUBROUTINE icb_rst_write
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90	(revision 9261)
@@ -596,5 +596,4 @@
                                  &                         'with 1 or more spatial dimensions: '//cldmspc//' were found.' , &
                                  &                         'Use ncwa -a to suppress the unnecessary dimensions' )
-            IF(nn_timing == 2)  CALL timing_start('rst_get')
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, pvar, itime )
@@ -604,5 +603,4 @@
                CALL ctl_stop( 'iom_g0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )
             END SELECT
-            IF(nn_timing == 2)  CALL timing_stop('rst_get')
          ENDIF
       ENDIF
@@ -914,5 +912,4 @@
          ENDIF
       
-         IF(nn_timing == 2)  CALL timing_start('iom_get') 
          SELECT CASE (iom_file(kiomid)%iolib)
          CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2,   &
@@ -925,5 +922,4 @@
             CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )
          END SELECT
-         IF(nn_timing == 2)  CALL timing_stop('iom_get')
 
          IF( istop == nstop ) THEN   ! no additional errors until this point...
@@ -1071,5 +1067,4 @@
          IF( iom_file(kiomid)%nfid > 0 ) THEN
             ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. )
-            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar )
@@ -1079,5 +1074,4 @@
                CALL ctl_stop( 'iom_rp0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )
             END SELECT
-            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ENDIF
       ENDIF
@@ -1095,5 +1089,4 @@
          IF( iom_file(kiomid)%nfid > 0 ) THEN
             ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. )
-            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar )
@@ -1103,5 +1096,4 @@
                CALL ctl_stop( 'iom_rp1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )
             END SELECT
-            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ENDIF
       ENDIF
@@ -1119,5 +1111,4 @@
          IF( iom_file(kiomid)%nfid > 0 ) THEN
             ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. )
-            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar )
@@ -1127,5 +1118,4 @@
                CALL ctl_stop( 'iom_rp2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )
             END SELECT
-            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ENDIF
       ENDIF
@@ -1143,5 +1133,4 @@
          IF( iom_file(kiomid)%nfid > 0 ) THEN
             ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. )
-            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar )
@@ -1151,5 +1140,4 @@
                CALL ctl_stop( 'iom_rp3d: accepted IO library are only jpioipsl and jprstdimg' )
             END SELECT
-            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          ENDIF
       ENDIF
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90	(revision 9261)
@@ -135,5 +135,5 @@
       INTEGER, INTENT(in) ::   kt   ! ocean time-step
       !!----------------------------------------------------------------------
-                     IF(nn_timing == 3)  CALL timing_start('rst_put')
+                     IF(nn_timing == 2)  CALL timing_start('iom_rstput')
                      CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       )   ! dynamics time step
                      CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) )   ! surface tracer time step
@@ -169,5 +169,5 @@
                      ENDIF
                      ENDIF
-                     IF(nn_timing == 3)  CALL timing_stop('rst_put')
+                     IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
 
       IF( kt == nitrst ) THEN
@@ -239,4 +239,5 @@
 
       ! Check dynamics and tracer time-step consistency and force Euler restart if changed
+      IF(nn_timing == 2)  CALL timing_start('iom_rstget')
       IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 )   THEN
          CALL iom_get( numror, 'rdt', zrdt )
@@ -302,5 +303,5 @@
          antarctica_icesheet_timelapsed = 0.0
       ENDIF
-
+      IF(nn_timing == 2)  CALL timing_start('iom_rstget')
       IF( neuler == 0 ) THEN                                  ! Euler restart (neuler=0)
          tsb  (:,:,:,:) = tsn  (:,:,:,:)                             ! all before fields set to now values
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90	(revision 9261)
@@ -144,7 +144,7 @@
          IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 
             IF(lwp) WRITE(numout,*) 'sbc_apr:   ssh_ibb read in the restart file'
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb )   ! before inv. barometer ssh
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             !
          ELSE                                         !* no restart: set from nit000 values
@@ -159,5 +159,7 @@
          IF(lwp) WRITE(numout,*) 'sbc_apr : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib )
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 9261)
@@ -252,5 +252,5 @@
 
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2)  CALL timing_start('sbc_cpl_init')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2)  CALL timing_start('sbc_cpl_init')
       !
       CALL wrk_alloc( jpi,jpj, zacs, zaos )
@@ -975,5 +975,5 @@
       CALL wrk_dealloc( jpi,jpj, zacs, zaos )
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_stop('sbc_cpl_init')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_stop('sbc_cpl_init')
       !
    END SUBROUTINE sbc_cpl_init
@@ -1050,5 +1050,5 @@
 
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_start('sbc_cpl_rcv')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_start('sbc_cpl_rcv')
       !
       CALL wrk_alloc( jpi,jpj, ztx, zty, zmsk, zemp, zqns, zqsr )
@@ -1415,5 +1415,5 @@
       CALL wrk_dealloc( jpi,jpj, ztx, zty, zmsk, zemp, zqns, zqsr )
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_stop('sbc_cpl_rcv')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_stop('sbc_cpl_rcv')
       !
    END SUBROUTINE sbc_cpl_rcv
@@ -1461,5 +1461,5 @@
       !!----------------------------------------------------------------------
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_start('sbc_cpl_ice_tau')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_start('sbc_cpl_ice_tau')
       !
       CALL wrk_alloc( jpi,jpj, ztx, zty )
@@ -1626,5 +1626,5 @@
       CALL wrk_dealloc( jpi,jpj, ztx, zty )
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_stop('sbc_cpl_ice_tau')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_stop('sbc_cpl_ice_tau')
       !
    END SUBROUTINE sbc_cpl_ice_tau
@@ -1693,5 +1693,5 @@
       !!----------------------------------------------------------------------
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_start('sbc_cpl_ice_flx')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_start('sbc_cpl_ice_flx')
       !
       CALL wrk_alloc( jpi,jpj,     zcptn, ztmp, zicefr, zmsk, zsnw )
@@ -2078,5 +2078,5 @@
       CALL wrk_dealloc( jpi,jpj,jpl, zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice )
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_stop('sbc_cpl_ice_flx')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_stop('sbc_cpl_ice_flx')
       !
    END SUBROUTINE sbc_cpl_ice_flx
@@ -2101,5 +2101,5 @@
       !!----------------------------------------------------------------------
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_start('sbc_cpl_snd')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_start('sbc_cpl_snd')
       !
       CALL wrk_alloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 )
@@ -2533,5 +2533,5 @@
       CALL wrk_dealloc( jpi,jpj,jpl, ztmp3, ztmp4 )
       !
-      IF( nn_timing == 1 .OR. nn_timing == 2 )  CALL timing_stop('sbc_cpl_snd')
+      IF( nn_timing.gt.0 .and. nn_timing .le. 2 )  CALL timing_stop('sbc_cpl_snd')
       !
    END SUBROUTINE sbc_cpl_snd
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 9261)
@@ -415,4 +415,5 @@
             & iom_varid( numror, 'utau_b', ldstop = .FALSE. ) > 0 ) THEN 
             IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields red in the restart file'
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, jpdom_autoglo, 'utau_b', utau_b )   ! before i-stress  (U-point)
             CALL iom_get( numror, jpdom_autoglo, 'vtau_b', vtau_b )   ! before j-stress  (V-point)
@@ -427,4 +428,5 @@
                sfx_b (:,:) = sfx(:,:)
             ENDIF
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
          ELSE                                                   !* no restart: set from nit000 values
             IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields set to nit000'
@@ -443,5 +445,5 @@
             &                    'at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'utau_b' , utau )
          CALL iom_rstput( kt, nitrst, numrow, 'vtau_b' , vtau )
@@ -451,5 +453,5 @@
          CALL iom_rstput( kt, nitrst, numrow, 'emp_b'  , emp  )
          CALL iom_rstput( kt, nitrst, numrow, 'sfx_b'  , sfx  )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
 
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 9261)
@@ -156,7 +156,9 @@
             & iom_varid( numror, 'rnf_b', ldstop = .FALSE. ) > 0 ) THEN
             IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields red in the restart file'
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, jpdom_autoglo, 'rnf_b', rnf_b )     ! before runoff
             CALL iom_get( numror, jpdom_autoglo, 'rnf_hc_b', rnf_tsc_b(:,:,jp_tem) )   ! before heat content of runoff
             CALL iom_get( numror, jpdom_autoglo, 'rnf_sc_b', rnf_tsc_b(:,:,jp_sal) )   ! before salinity content of runoff
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
          ELSE                                                   !* no restart: set from nit000 values
             IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields set to nit000'
@@ -172,9 +174,9 @@
             &                    'at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'rnf_b' , rnf )
          CALL iom_rstput( kt, nitrst, numrow, 'rnf_hc_b', rnf_tsc(:,:,jp_tem) )
          CALL iom_rstput( kt, nitrst, numrow, 'rnf_sc_b', rnf_tsc(:,:,jp_sal) )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90	(revision 9261)
@@ -157,5 +157,5 @@
             IF(lwp) WRITE(numout,*) '~~~~~~~'
             zf_sbc = REAL( nn_fsbc, wp )
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( kt, nitrst, numrow, 'nn_fsbc', zf_sbc )    ! sbc frequency
             CALL iom_rstput( kt, nitrst, numrow, 'ssu_m'  , ssu_m  )    ! sea surface mean fields
@@ -166,5 +166,5 @@
             IF( lk_vvl )   CALL iom_rstput( kt, nitrst, numrow, 'e3t_m'  , e3t_m  )
             CALL iom_rstput( kt, nitrst, numrow, 'frq_m'  , frq_m  )
-            IF(nn_timing == 3)  CALL timing_stop('rst_put') 
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput') 
             !
          ENDIF
@@ -209,4 +209,5 @@
          IF( ln_rstart .AND. iom_varid( numror, 'nn_fsbc', ldstop = .FALSE. ) > 0 ) THEN
             l_ssm_mean = .TRUE.
+            IF(nn_timing == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror               , 'nn_fsbc', zf_sbc )   ! sbc frequency of previous run
             CALL iom_get( numror, jpdom_autoglo, 'ssu_m'  , ssu_m  )   ! sea surface mean velocity    (T-point)
@@ -222,4 +223,5 @@
                frq_m(:,:) = 1._wp   ! default definition
             ENDIF
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             !
             IF( zf_sbc /= REAL( nn_fsbc, wp ) ) THEN      ! nn_fsbc has changed between 2 runs
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/STO/stopar.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/STO/stopar.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/STO/stopar.F90	(revision 9261)
@@ -697,4 +697,5 @@
          ! Get stochastic parameters from restart file:
          ! 2D stochastic parameters
+         IF(nn_timing == 2)  CALL timing_start('iom_rstget')
          DO jsto = 1 , jpsto2d
             WRITE(clsto2d(7:9),'(i3.3)') jsto
@@ -717,4 +718,5 @@
             CALL kiss_seed( ziseed(1) , ziseed(2) , ziseed(3) , ziseed(4) )
          ENDIF
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
 
          ! Close the restart file
@@ -760,5 +762,5 @@
             CALL kiss_state( ziseed(1) , ziseed(2) , ziseed(3) , ziseed(4) )
             zrseed = TRANSFER( ziseed , zrseed)
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             DO jseed = 1 , 4
                WRITE(clseed(5:5) ,'(i1.1)') jseed
@@ -776,5 +778,5 @@
                CALL iom_rstput( kt, nitrst, numstow, clsto3d , sto3d(:,:,:,jsto) )
             END DO
-            IF(nn_timing == 3)  CALL timing_stop('rst_put') 
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput') 
             ! close the restart file
             CALL iom_close( numstow )
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90	(revision 9261)
@@ -286,8 +286,8 @@
       ! avmb, avtb will be read in zdfini in restart case as they are used in zdftke, kpp etc...
       IF( lrst_oce .AND. cdtype == 'TRA' ) THEN
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'avmb', avmb )
          CALL iom_rstput( kt, nitrst, numrow, 'avtb', avtb )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90	(revision 9261)
@@ -368,8 +368,8 @@
             &                    'at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
-         IF(nn_timing == 3)  CALL timing_start('rst_put') 
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput') 
          CALL iom_rstput( kt, nitrst, numrow, 'qsr_hc_b'   , qsr_hc      )
          CALL iom_rstput( kt, nitrst, numrow, 'fraqsr_1lev', fraqsr_1lev )   ! default definition in sbcssm 
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          !
       ENDIF
@@ -609,5 +609,7 @@
       ! initialisation of fraqsr_1lev used in sbcssm
       IF( iom_varid( numror, 'fraqsr_1lev', ldstop = .FALSE. ) > 0 ) THEN
+         IF(nn_timing == 2)  CALL timing_start('iom_rstget')
          CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev'  , fraqsr_1lev  )
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
       ELSE
          fraqsr_1lev(:,:) = 1._wp   ! default definition
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90	(revision 9261)
@@ -209,8 +209,8 @@
             &                    'at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'sbc_hc_b', sbc_tsc(:,:,jp_tem) )
          CALL iom_rstput( kt, nitrst, numrow, 'sbc_sc_b', sbc_tsc(:,:,jp_sal) )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
@@ -255,9 +255,9 @@
                &                    'at it= ', kt,' date= ', ndastp
             IF(lwp) WRITE(numout,*) '~~~~'
-            IF(nn_timing == 3)  CALL timing_start('rst_put')
+            IF(nn_timing == 2)  CALL timing_start('iom_rstput')
             CALL iom_rstput( kt, nitrst, numrow, 'fwf_isf_b', fwfisf(:,:)          )
             CALL iom_rstput( kt, nitrst, numrow, 'isf_hc_b' , risf_tsc(:,:,jp_tem) )
             CALL iom_rstput( kt, nitrst, numrow, 'isf_sc_b' , risf_tsc(:,:,jp_sal) )
-            IF(nn_timing == 3)  CALL timing_stop('rst_put')
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          ENDIF
       END IF
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl_rst.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl_rst.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl_rst.F90	(revision 9261)
@@ -80,5 +80,5 @@
          WRITE(numout,*)
       ENDIF
-      IF(nn_timing == 3)  CALL timing_start('rst_put')
+      IF(nn_timing == 2)  CALL timing_start('iom_rstput')
       IF( ln_trdmxl_instant ) THEN 
          !-- Temperature
@@ -116,5 +116,5 @@
          CALL iom_rstput( kt, nitrst, nummxlw, 'smltrd_atf_sumb' , smltrd_atf_sumb )
       ENDIF
-      IF(nn_timing == 3)  CALL timing_stop('rst_put')
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       !
       IF( kt == nitrst ) THEN
@@ -160,5 +160,5 @@
 
       CALL iom_open( TRIM(clpath)//TRIM(cn_trdrst_in), inum, kiolib = jlibalt ) 
-
+      IF(nn_timing == 2)  CALL timing_start('iom_rstget')
       IF( ln_trdmxl_instant ) THEN 
          !-- Temperature
@@ -196,6 +196,7 @@
          CALL iom_get( inum, jpdom_autoglo, 'smltrd_atf_sumb' , smltrd_atf_sumb)
          !
-         CALL iom_close( inum )
-      ENDIF
+      ENDIF
+      IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
+      CALL iom_close( inum )
       !
    END SUBROUTINE trd_mxl_rst_read
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90	(revision 9261)
@@ -1184,4 +1184,5 @@
             !
             IF( MIN( id1, id2, id3, id4, id5, id6 ) > 0 ) THEN        ! all required arrays exist
+               IF(nn_timing == 2)  CALL timing_start('iom_rstget')
                CALL iom_get( numror, jpdom_autoglo, 'en'    , en     )
                CALL iom_get( numror, jpdom_autoglo, 'avt'   , avt    )
@@ -1190,4 +1191,5 @@
                CALL iom_get( numror, jpdom_autoglo, 'avmv'  , avmv   )
                CALL iom_get( numror, jpdom_autoglo, 'mxln'  , mxln   )
+               IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             ELSE                        
                IF(lwp) WRITE(numout,*) ' ===>>>> : previous run without gls scheme, en and mxln computed by iterative loop'
@@ -1209,5 +1211,5 @@
          !                                   ! -------------------
          IF(lwp) WRITE(numout,*) '---- gls-rst ----'
-         IF(nn_timing == 3)  CALL timing_start('rst_put')
+         IF(nn_timing == 2)  CALL timing_start('iom_rstput')
          CALL iom_rstput( kt, nitrst, numrow, 'en'   , en     ) 
          CALL iom_rstput( kt, nitrst, numrow, 'avt'  , avt_k  )
@@ -1216,5 +1218,5 @@
          CALL iom_rstput( kt, nitrst, numrow, 'avmv' , avmv_k )
          CALL iom_rstput( kt, nitrst, numrow, 'mxln' , mxln   )
-         IF(nn_timing == 3)  CALL timing_stop('rst_put')
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
          !
       ENDIF
Index: branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
===================================================================
--- branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90	(revision 9260)
+++ branches/UKMO/dev_r7750_GO6_package_oasis_timers/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90	(revision 9261)
@@ -937,4 +937,5 @@
               CALL iom_get( numror, jpdom_autoglo, 'en', en )
               IF( MIN( id2, id3, id4, id5, id6 ) > 0 ) THEN        ! all required arrays exist
+                 IF(nn_timing == 2)  CALL timing_start('iom_rstget')
                  CALL iom_get( numror, jpdom_autoglo, 'avt'  , avt   )
                  CALL iom_get( numror, jpdom_autoglo, 'avm'  , avm   )
@@ -942,4 +943,5 @@
                  CALL iom_get( numror, jpdom_autoglo, 'avmv' , avmv  )
                  CALL iom_get( numror, jpdom_autoglo, 'dissl', dissl )
+                 IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
               ELSE                                                 ! one at least array is missing
                  CALL tke_avn                                          ! compute avt, avm, avmu, avmv and dissl (approximation)
@@ -970,5 +972,5 @@
         !                                   ! -------------------
         IF(lwp) WRITE(numout,*) '---- tke-rst ----'
-        IF(nn_timing == 3)  CALL timing_start('rst_put')
+        IF(nn_timing == 2)  CALL timing_start('iom_rstput')
         CALL iom_rstput( kt, nitrst, numrow, 'en'   , en     )
         CALL iom_rstput( kt, nitrst, numrow, 'avt'  , avt_k  )
@@ -977,5 +979,5 @@
         CALL iom_rstput( kt, nitrst, numrow, 'avmv' , avmv_k )
         CALL iom_rstput( kt, nitrst, numrow, 'dissl', dissl  )
-        IF(nn_timing == 3)  CALL timing_stop('rst_put')
+        IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
         !
      ENDIF
