Index: branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90
===================================================================
--- branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90	(revision 9315)
+++ branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90	(revision 9853)
@@ -19,4 +19,5 @@
    USE iom             ! IOM library
    USE lib_mpp         ! MPP library
+   USE timing
 
    IMPLICIT NONE
@@ -143,5 +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 == 2)  CALL timing_start('iom_rstget')
             CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb )   ! before inv. barometer ssh
+            IF(nn_timing == 2)  CALL timing_stop('iom_rstget')
             !
          ELSE                                         !* no restart: set from nit000 values
@@ -156,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_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 9315)
+++ branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 9853)
@@ -257,5 +257,5 @@
 
       !
-      IF( nn_timing == 1 )  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 )
@@ -991,5 +991,5 @@
       CALL wrk_dealloc( jpi,jpj, zacs, zaos )
       !
-      IF( nn_timing == 1 )  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
@@ -1062,5 +1062,5 @@
 
       !
-      IF( nn_timing == 1 )  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, ztx2, zty2 )
@@ -1453,5 +1453,5 @@
       CALL wrk_dealloc( jpi,jpj, ztx, zty, zmsk, zemp, zqns, zqsr, ztx2, zty2 )
       !
-      IF( nn_timing == 1 )  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
@@ -1499,5 +1499,5 @@
       !!----------------------------------------------------------------------
       !
-      IF( nn_timing == 1 )  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 )
@@ -1664,5 +1664,5 @@
       CALL wrk_dealloc( jpi,jpj, ztx, zty )
       !
-      IF( nn_timing == 1 )  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
@@ -1731,5 +1731,5 @@
       !!----------------------------------------------------------------------
       !
-      IF( nn_timing == 1 )  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 )
@@ -2116,5 +2116,5 @@
       CALL wrk_dealloc( jpi,jpj,jpl, zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice )
       !
-      IF( nn_timing == 1 )  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
@@ -2141,5 +2141,5 @@
       !!----------------------------------------------------------------------
       !
-      IF( nn_timing == 1 )  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 )
@@ -2631,5 +2631,5 @@
       CALL wrk_dealloc( jpi,jpj,jpl, ztmp3, ztmp4 )
       !
-      IF( nn_timing == 1 )  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_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 9315)
+++ branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 9853)
@@ -422,4 +422,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)
@@ -434,4 +435,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'
@@ -450,4 +452,5 @@
             &                    'at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
+         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 )
@@ -457,4 +460,5 @@
          CALL iom_rstput( kt, nitrst, numrow, 'emp_b'  , emp  )
          CALL iom_rstput( kt, nitrst, numrow, 'sfx_b'  , sfx  )
+         IF(nn_timing == 2)  CALL timing_stop('iom_rstput')
       ENDIF
 
Index: branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
===================================================================
--- branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 9315)
+++ branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 9853)
@@ -27,4 +27,5 @@
    USE eosbn2
    USE wrk_nemo        ! Memory allocation
+   USE timing
 
    IMPLICIT NONE
@@ -148,7 +149,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'
@@ -164,7 +167,9 @@
             &                    'at it= ', kt,' date= ', ndastp
          IF(lwp) WRITE(numout,*) '~~~~'
+         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 == 2)  CALL timing_stop('iom_rstput')
       ENDIF
       !
Index: branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90
===================================================================
--- branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90	(revision 9315)
+++ branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90	(revision 9853)
@@ -21,4 +21,5 @@
    USE prtctl          ! Print control
    USE iom             ! IOM library
+   USE timing
 
    IMPLICIT NONE
@@ -156,4 +157,5 @@
             IF(lwp) WRITE(numout,*) '~~~~~~~'
             zf_sbc = REAL( nn_fsbc, wp )
+            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
@@ -164,4 +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 == 2)  CALL timing_stop('iom_rstput') 
             !
          ENDIF
@@ -206,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)
@@ -219,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
