Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfeiv.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfeiv.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfeiv.F90	(revision 3229)
@@ -26,4 +26,5 @@
    USE iom             ! I/O library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -60,5 +61,7 @@
       REAL(wp), DIMENSION(:,:), POINTER ::   zn, zah, zhw, zross   ! 2D workspace
       !!----------------------------------------------------------------------
-      
+      !
+      IF( nn_timing == 1 )  CALL timing_start('ldf_eiv')
+      !
       CALL wrk_alloc( jpi,jpj, zn, zah, zhw, zross )
 
@@ -241,4 +244,6 @@
       CALL wrk_dealloc( jpi,jpj, zn, zah, zhw, zross )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('ldf_eiv')
+      !
    END SUBROUTINE ldf_eiv
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90	(revision 3229)
@@ -32,4 +32,5 @@
    USE prtctl          ! Print control
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -112,5 +113,7 @@
       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zgru, zgrv
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('ldf_slp')
+      !
       CALL wrk_alloc( jpi,jpj,jpk, zdzr )
       !
@@ -365,4 +368,6 @@
       CALL wrk_dealloc( jpi,jpj,jpk, zdzr )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp')
+      !
    END SUBROUTINE ldf_slp
 
@@ -399,5 +404,7 @@
       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zti_mlb, ztj_mlb            ! for Griffies operator only
       !!----------------------------------------------------------------------
-      
+      !
+      IF( nn_timing == 1 )  CALL timing_start('ldf_slp_grif')
+      !
       CALL wrk_alloc( jpi,jpj, z1_mlbw )
       CALL wrk_alloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho,              klstart = 0  )
@@ -598,4 +605,6 @@
       CALL wrk_dealloc( jpi,jpj,  2,2, zti_mlb, ztj_mlb,        kkstart = 0, klstart = 0  )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp_grif')
+      !
    END SUBROUTINE ldf_slp_grif
 
@@ -629,5 +638,7 @@
       REAL(wp) ::   zck, zfk,      zbw             !   -      -
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('ldf_slp_mxl')
+      !
       zeps   =  1.e-20_wp        !==   Local constant initialization   ==!
       zm1_g  = -1.0_wp / grav
@@ -720,4 +731,6 @@
       CALL lbc_lnk( wslpiml, 'W', -1. )   ;   CALL lbc_lnk( wslpjml, 'W', -1. )   ! lateral boundary conditions
       !
+      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp_mxl')
+      !
    END SUBROUTINE ldf_slp_mxl
 
@@ -735,5 +748,7 @@
       INTEGER ::   ierr         ! local integer
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('ldf_slp_init')
+      !
       IF(lwp) THEN
          WRITE(numout,*)
@@ -785,4 +800,6 @@
          ENDIF
       ENDIF
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp_init')
       !
    END SUBROUTINE ldf_slp_init
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90	(revision 3229)
@@ -28,4 +28,5 @@
    USE lib_mpp         ! distribued memory computing library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
 
@@ -227,5 +228,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   zqsb        ! sensible heat flux over ocean
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('blk_oce_clio')
+      !
       CALL wrk_alloc( jpi,jpj, zqlw, zqla, zqsb )
 
@@ -381,4 +384,6 @@
       CALL wrk_dealloc( jpi,jpj, zqlw, zqla, zqsb )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('blk_oce_clio')
+      !
    END SUBROUTINE blk_oce_clio
 
@@ -444,5 +449,7 @@
       REAL(wp), DIMENSION(:,:,:), POINTER ::   z_qlw, z_qsb
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('blk_ice_clio')
+      !
       CALL wrk_alloc( jpi,jpj, ztatm, zqatm, zevsqr, zrhoa )
       CALL wrk_alloc( jpi,jpj,pdim, z_qlw, z_qsb )
@@ -625,4 +632,6 @@
       CALL wrk_dealloc( jpi,jpj,pdim, z_qlw, z_qsb )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('blk_ice_clio')
+      !
    END SUBROUTINE blk_ice_clio
 
@@ -661,5 +670,7 @@
       REAL(wp), DIMENSION(:,:), POINTER ::   zps, zpc   ! sine (cosine) of latitude per sine (cosine) of solar declination 
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('blk_clio_qsr_oce')
+      !
       CALL wrk_alloc( jpi,jpj, zev, zdlha, zlsrise, zlsset, zps, zpc )
 
@@ -778,4 +789,6 @@
       CALL wrk_dealloc( jpi,jpj, zev, zdlha, zlsrise, zlsset, zps, zpc )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('blk_clio_qsr_oce')
+      !
    END SUBROUTINE blk_clio_qsr_oce
 
@@ -812,6 +825,8 @@
       REAL(wp), DIMENSION(:,:), POINTER ::   zdlha, zlsrise, zlsset   ! 2D workspace
       REAL(wp), DIMENSION(:,:), POINTER ::   zps, zpc   ! sine (cosine) of latitude per sine (cosine) of solar declination 
-       !!---------------------------------------------------------------------
-
+      !!---------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('blk_clio_qsr_ice')
+      !
       CALL wrk_alloc( jpi,jpj, zev, zdlha, zlsrise, zlsset, zps, zpc )
 
@@ -919,4 +934,6 @@
       CALL wrk_dealloc( jpi,jpj, zev, zdlha, zlsrise, zlsset, zps, zpc )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('blk_clio_qsr_ice')
+      !
    END SUBROUTINE blk_clio_qsr_ice
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 3229)
@@ -34,4 +34,5 @@
    USE lib_mpp         ! distribued memory computing library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
    USE prtctl          ! Print control
@@ -242,5 +243,7 @@
       REAL(wp), DIMENSION(:,:), POINTER ::   zq_zu             ! air spec. hum.  at wind speed height
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('blk_oce_core')
+      !
       CALL wrk_alloc( jpi,jpj, zwnd_i, zwnd_j, zqsatw, zqlw, zqsb, zqla, zevap )
       CALL wrk_alloc( jpi,jpj, Cd, Ch, Ce, zst, zt_zu, zq_zu )
@@ -396,4 +399,6 @@
       CALL wrk_dealloc( jpi,jpj, zwnd_i, zwnd_j, zqsatw, zqlw, zqsb, zqla, zevap )
       CALL wrk_dealloc( jpi,jpj, Cd, Ch, Ce, zst, zt_zu, zq_zu )
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('blk_oce_core')
       !
    END SUBROUTINE blk_oce_core
@@ -450,5 +455,7 @@
       REAL(wp), DIMENSION(:,:,:), POINTER ::   z_dqsb            ! sensible  heat sensitivity over ice
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('blk_ice_core')
+      !
       CALL wrk_alloc( jpi,jpj, z_wnds_t )
       CALL wrk_alloc( jpi,jpj,pdim, z_qlw, z_qsb, z_dqlw, z_dqsb ) 
@@ -610,4 +617,6 @@
       CALL wrk_dealloc( jpi,jpj,pdim, z_qlw, z_qsb, z_dqlw, z_dqsb ) 
       !
+      IF( nn_timing == 1 )  CALL timing_stop('blk_ice_core')
+      !
    END SUBROUTINE blk_ice_core
   
@@ -663,5 +672,7 @@
       INTEGER , DIMENSION(:,:), POINTER  ::   stab          ! 1st guess stability test integer
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('TURB_CORE_1Z')
+      !
       CALL wrk_alloc( jpi,jpj, stab )   ! integer
       CALL wrk_alloc( jpi,jpj, dU10, dT, dq, Cd_n10, Ce_n10, Ch_n10, sqrt_Cd_n10, sqrt_Cd, L )
@@ -739,4 +750,6 @@
       CALL wrk_dealloc( jpi,jpj, dU10, dT, dq, Cd_n10, Ce_n10, Ch_n10, sqrt_Cd_n10, sqrt_Cd, L )
       CALL wrk_dealloc( jpi,jpj, T_vpot, T_star, q_star, U_star, zeta, U_n10, xlogt, xct, zpsi_h, zpsi_m )
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('TURB_CORE_1Z')
       !
     END SUBROUTINE TURB_CORE_1Z
@@ -796,5 +809,7 @@
       INTEGER , DIMENSION(:,:), POINTER ::   stab          ! 1st stability test integer
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('TURB_CORE_2Z')
+      !
       CALL wrk_alloc( jpi,jpj, dU10, dT, dq, Cd_n10, Ce_n10, Ch_n10, sqrt_Cd_n10, sqrt_Cd, L )
       CALL wrk_alloc( jpi,jpj, T_vpot, T_star, q_star, U_star, zeta_u, zeta_t, U_n10 )
@@ -887,4 +902,6 @@
       CALL wrk_dealloc( jpi,jpj, stab )   ! interger
       !
+      IF( nn_timing == 1 )  CALL timing_stop('TURB_CORE_2Z')
+      !
     END SUBROUTINE TURB_CORE_2Z
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90	(revision 3229)
@@ -21,4 +21,5 @@
    USE lib_mpp         ! distribued memory computing library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
    USE prtctl          ! Print control
@@ -120,5 +121,7 @@
          &                  sn_tair , sn_rhm , sn_prec 
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_blk_mfs')
+      !
       !                                         ! ====================== !
       IF( kt == nit000 ) THEN                   !  First call kt=nit000  !
@@ -263,5 +266,7 @@
 
       ENDIF
-
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_blk_mfs')
+      !
    END SUBROUTINE sbc_blk_mfs
   
@@ -324,5 +329,7 @@
       REAL(wp), DIMENSION(5) :: p_e = (/-0.16,1.0,1.0,1.0,1.0/)
       INTEGER :: kku                        !index varing with wind speed
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('fluxes_mfs')
+      !
       CALL wrk_alloc( jpi,jpj, rspeed, sh10now, t10now, cdx, ce, shms )
       CALL wrk_alloc( jpi,jpj, rhom, sstk, ch, rel_windu, rel_windv )
@@ -490,5 +497,7 @@
       CALL wrk_dealloc( jpi,jpj, rspeed, sh10now, t10now, cdx, ce, shms )
       CALL wrk_dealloc( jpi,jpj, rhom, sstk, ch, rel_windu, rel_windv )
-
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('fluxes_mfs')
+      !
    END SUBROUTINE fluxes_mfs
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 3229)
@@ -48,4 +48,5 @@
    USE lib_mpp         ! distribued memory computing library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
 #if defined key_cpl_carbon_cycle
@@ -227,5 +228,7 @@
          &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf  , sn_rcv_cal   , sn_rcv_iceflx  , sn_rcv_co2
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_init')
+      !
       CALL wrk_alloc( jpi,jpj, zacs, zaos )
 
@@ -617,4 +620,6 @@
       CALL wrk_dealloc( jpi,jpj, zacs, zaos )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_cpl_init')
+      !
    END SUBROUTINE sbc_cpl_init
 
@@ -676,5 +681,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   ztx, zty 
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_rcv')
+      !
       CALL wrk_alloc( jpi,jpj, ztx, zty )
 
@@ -862,4 +869,6 @@
       CALL wrk_dealloc( jpi,jpj, ztx, zty )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_cpl_rcv')
+      !
    END SUBROUTINE sbc_cpl_rcv
    
@@ -905,5 +914,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   ztx, zty 
       !!----------------------------------------------------------------------
-      
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_ice_tau')
+      !
       CALL wrk_alloc( jpi,jpj, ztx, zty )
 
@@ -1070,4 +1081,6 @@
       CALL wrk_dealloc( jpi,jpj, ztx, zty )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_cpl_ice_tau')
+      !
    END SUBROUTINE sbc_cpl_ice_tau
    
@@ -1122,5 +1135,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   zcptn, ztmp, zicefr
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_ice_flx')
+      !
       CALL wrk_alloc( jpi,jpj, zcptn, ztmp, zicefr )
 
@@ -1301,4 +1316,6 @@
       CALL wrk_dealloc( jpi,jpj, zcptn, ztmp, zicefr )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_cpl_ice_flx')
+      !
    END SUBROUTINE sbc_cpl_ice_flx
    
@@ -1320,5 +1337,7 @@
       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmp3, ztmp4   
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_snd')
+      !
       CALL wrk_alloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 )
       CALL wrk_alloc( jpi,jpj,jpl, ztmp3, ztmp4 )
@@ -1545,4 +1564,6 @@
       CALL wrk_dealloc( jpi,jpj,jpl, ztmp3, ztmp4 )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_cpl_snd')
+      !
    END SUBROUTINE sbc_cpl_snd
    
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcdcy.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcdcy.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcdcy.F90	(revision 3229)
@@ -18,4 +18,5 @@
    USE in_out_manager   ! I/O manager
    USE lib_mpp          ! MPP library
+   USE timing           ! Timing
 
    IMPLICIT NONE
@@ -76,5 +77,7 @@
          & - paaa * pt1 - zinvtwopi * pbbb * SIN(pccc + ztwopi * pt1)
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_dcy')
+      !
       ! Initialization
       ! --------------
@@ -221,4 +224,6 @@
       END DO  
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_dcy')
+      !
    END FUNCTION sbc_dcy
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90	(revision 3229)
@@ -23,4 +23,5 @@
    USE lib_mpp         ! distribued memory computing library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
    USE lbclnk          ! ocean lateral boundary conditions
    USE lib_fortran
@@ -68,4 +69,6 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   ztmsk_neg, ztmsk_pos, ztmsk_tospread, z_wgt, zerp_cor
       !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_fwb')
       !
       CALL wrk_alloc( jpi,jpj, ztmsk_neg, ztmsk_pos, ztmsk_tospread, z_wgt, zerp_cor )
@@ -192,4 +195,6 @@
       CALL wrk_dealloc( jpi,jpj, ztmsk_neg, ztmsk_pos, ztmsk_tospread, z_wgt, zerp_cor )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_fwb')
+      !
    END SUBROUTINE sbc_fwb
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 3229)
@@ -49,4 +49,5 @@
    USE in_out_manager   ! I/O manager
    USE lib_mpp          ! MPP library
+   USE timing           ! Timing
    USE sbcwave          ! Wave module
 
@@ -222,5 +223,7 @@
       INTEGER, INTENT(in) ::   kt       ! ocean time step
       !!---------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc')
+      !
       !                                            ! ---------------------------------------- !
       IF( kt /= nit000 ) THEN                      !          Swap of forcing fields          !
@@ -363,4 +366,6 @@
       IF( kt == nitend )   CALL sbc_final         ! Close down surface module if necessary
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc')
+      !
    END SUBROUTINE sbc
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90	(revision 3229)
@@ -21,4 +21,5 @@
    USE lib_mpp         ! distribued memory computing library
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -78,4 +79,6 @@
       NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd
       !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('sbc_ssr')
       !
       !                                               ! -------------------- !
@@ -201,4 +204,6 @@
       ENDIF
       !
+      IF( nn_timing == 1 )  CALL timing_stop('sbc_ssr')
+      !
    END SUBROUTINE sbc_ssr
       
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90	(revision 3229)
@@ -22,4 +22,5 @@
    USE lib_mpp         ! distributed memory computing
    USE prtctl          ! Print control
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -82,5 +83,7 @@
       REAL(wp) ::   zvu, zuv, zecu, zecv   ! temporary scalars
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_bfr')
+      !
       IF( nn_bfr == 2 ) THEN                 ! quadratic botton friction
          ! Calculate and store the quadratic bottom friction coefficient bfrua and bfrva
@@ -121,4 +124,6 @@
       ENDIF
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_bfr')
+      !
    END SUBROUTINE zdf_bfr
 
@@ -144,5 +149,7 @@
       NAMELIST/nambfr/ nn_bfr, rn_bfri1, rn_bfri2, rn_bfeb2, ln_bfr2d, rn_bfrien, ln_bfrimp
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_bfr_init')
+      !
       REWIND ( numnam )               !* Read Namelist nam_bfr : bottom momentum boundary condition
       READ   ( numnam, nambfr )
@@ -272,4 +279,6 @@
       ENDIF
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_bfr_init')
+      !
    END SUBROUTINE zdf_bfr_init
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90	(revision 3229)
@@ -23,4 +23,5 @@
    USE lib_mpp         ! MPP library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -100,5 +101,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   zmsks, zmskf, zmskd1, zmskd2, zmskd3
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_ddm')
+      !
       CALL wrk_alloc( jpi,jpj, zmsks, zmskf, zmskd1, zmskd2, zmskd3 )
 
@@ -195,4 +198,6 @@
       CALL wrk_dealloc( jpi,jpj, zmsks, zmskf, zmskd1, zmskd2, zmskd3 )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_ddm')
+      !
    END SUBROUTINE zdf_ddm
    
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90	(revision 3229)
@@ -22,4 +22,5 @@
    USE iom             ! for iom_put
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -58,5 +59,7 @@
       INTEGER ::   ji, jj, jk   ! dummy loop indices
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_evd')
+      !
       IF( kt == nit000 ) THEN
          IF(lwp) WRITE(numout,*)
@@ -130,4 +133,6 @@
       CALL iom_put( "avt_evd", zavt_evd )              ! output this change
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_evd')
+      !
    END SUBROUTINE zdf_evd
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90	(revision 3229)
@@ -30,4 +30,5 @@
    USE in_out_manager ! I/O manager
    USE iom            ! I/O manager library
+   USE timing         ! Timing
 
    IMPLICIT NONE
@@ -153,5 +154,7 @@
       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_elem_c, psi
       !!--------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_gls')
+      !
       CALL wrk_alloc( jpi,jpj, zdep, zflxs, zhsro )
       CALL wrk_alloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi )
@@ -889,4 +892,7 @@
       CALL wrk_dealloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_gls')
+      !
+      !
    END SUBROUTINE zdf_gls
 
@@ -920,5 +926,7 @@
          &            nn_stab_func, nn_clos
       !!----------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_gls_init')
+      !
       REWIND( numnam )                 !* Read Namelist namzdf_gls
       READ  ( numnam, namzdf_gls )
@@ -1187,4 +1195,6 @@
       CALL gls_rst( nit000, 'READ' )   !* read or initialize all required files
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_gls_init')
+      !
    END SUBROUTINE zdf_gls_init
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90	(revision 3229)
@@ -34,4 +34,5 @@
    USE trdmod_oce      ! ocean trends definition
    USE trdtra          ! tracers trends
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -254,5 +255,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   zmask, zblcm, zblct
       !!--------------------------------------------------------------------
-     
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_kpp')
+      !
       CALL wrk_alloc( jpi, zmoa, zekman, zhmax, zria, zhbl )
       CALL wrk_alloc( jpi, za2m, za3m, zkmpm, za2t, za3t, zkmpt )
@@ -1214,4 +1217,6 @@
 #endif
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_kpp')
+      !
    END SUBROUTINE zdf_kpp
 
@@ -1229,5 +1234,7 @@
       INTEGER, INTENT(in) :: kt
       INTEGER :: ji, jj, jk
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('tra_kpp')
+      !
       IF( kt == nit000 ) THEN
          IF(lwp) WRITE(numout,*) 
@@ -1269,5 +1276,7 @@
          &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       ENDIF
-
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('tra_kpp')
+      !
    END SUBROUTINE tra_kpp
 
@@ -1373,5 +1382,7 @@
       NAMELIST/namzdf_kpp/ ln_kpprimix, rn_difmiw, rn_difsiw, rn_riinfty, rn_difri, rn_bvsqcon, rn_difcon, nn_ave
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_kpp_init')
+      !
       REWIND ( numnam )               ! Read Namelist namkpp : K-Profile Parameterisation
       READ   ( numnam, namzdf_kpp )
@@ -1571,4 +1582,6 @@
 #endif
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_kpp_init')
+      !
    END SUBROUTINE zdf_kpp_init
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90	(revision 3229)
@@ -17,4 +17,5 @@
    USE lib_mpp         ! MPP library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
    USE trc_oce, ONLY : lk_offline ! offline flag
 
@@ -78,5 +79,7 @@
       REAL(wp) ::   zavt_c = 5.e-4_wp   ! Kz criterion for the turbocline depth
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_mxl')
+      !
       CALL wrk_alloc( jpi,jpj, imld )
 
@@ -119,4 +122,6 @@
       CALL wrk_dealloc( jpi,jpj, imld )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_mxl')
+      !
    END SUBROUTINE zdf_mxl
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90	(revision 3229)
@@ -28,4 +28,6 @@
    USE lib_mpp               ! MPP library
    USE wrk_nemo              ! work arrays
+   USE timing                ! Timing
+
    USE eosbn2, ONLY : nn_eos
 
@@ -120,5 +122,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   zwx, ekm_dep  
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_ric')
+      !
       CALL wrk_alloc( jpi,jpj, zwx, ekm_dep )
       !                                                ! ===============
@@ -223,4 +227,6 @@
       CALL wrk_dealloc( jpi,jpj, zwx, ekm_dep )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_ric')
+      !
    END SUBROUTINE zdf_ric
 
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90	(revision 3229)
@@ -51,4 +51,5 @@
    USE lib_mpp        ! MPP library
    USE wrk_nemo       ! work arrays
+   USE timing         ! Timing
 
    IMPLICIT NONE
@@ -211,4 +212,6 @@
       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpelc
       !!--------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('tke_tke')
       !
       CALL wrk_alloc( jpi,jpj, imlc )    ! integer
@@ -435,4 +438,6 @@
       CALL wrk_dealloc( jpi,jpj, zhlc ) 
       CALL wrk_dealloc( jpi,jpj,jpk, zpelc ) 
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('tke_tke')
       !
    END SUBROUTINE tke_tke
@@ -484,4 +489,6 @@
       !!--------------------------------------------------------------------
       !
+      IF( nn_timing == 1 )  CALL timing_start('tke_avn')
+      !
       zmxlm => tsa(:,:,:,1) 
       zmxld => tsa(:,:,:,2) 
@@ -657,4 +664,6 @@
             &          tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk )
       ENDIF
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('tke_avn')
       !
    END SUBROUTINE tke_avn
Index: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90
===================================================================
--- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90	(revision 3228)
+++ branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90	(revision 3229)
@@ -26,4 +26,5 @@
    USE lib_mpp         ! MPP library
    USE wrk_nemo        ! work arrays
+   USE timing          ! Timing
 
    IMPLICIT NONE
@@ -111,5 +112,7 @@
       REAL(wp), POINTER, DIMENSION(:,:) ::   zkz
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_tmx')
+      !
       CALL wrk_alloc( jpi,jpj, zkz )
 
@@ -177,4 +180,6 @@
       CALL wrk_dealloc( jpi,jpj, zkz )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_tmx')
+      !
    END SUBROUTINE zdf_tmx
 
@@ -212,4 +217,6 @@
       !!----------------------------------------------------------------------
       !
+      IF( nn_timing == 1 )  CALL timing_start('tmx_itf')
+      !
       CALL wrk_alloc( jpi,jpj, zkz, zsum1 , zsum2 , zsum )
       CALL wrk_alloc( jpi,jpj,jpk, zempba_3d_1, zempba_3d_2, zempba_3d, zdn2dz, zavt_itf )
@@ -302,4 +309,6 @@
       CALL wrk_dealloc( jpi,jpj,jpk, zempba_3d_1, zempba_3d_2, zempba_3d, zdn2dz, zavt_itf )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('tmx_itf')
+      !
    END SUBROUTINE tmx_itf
 
@@ -353,5 +362,7 @@
       NAMELIST/namzdf_tmx/ rn_htmx, rn_n2min, rn_tfe, rn_me, ln_tmx_itf, rn_tfe_itf
       !!----------------------------------------------------------------------
-
+      !
+      IF( nn_timing == 1 )  CALL timing_start('zdf_tmx_init')
+      !
       CALL wrk_alloc( jpi,jpj, zem2, zek1, zkz, zfact, zhdep )
       CALL wrk_alloc( jpi,jpj,jpk, zpc )
@@ -520,4 +531,6 @@
       CALL wrk_dealloc( jpi,jpj,jpk, zpc )
       !
+      IF( nn_timing == 1 )  CALL timing_stop('zdf_tmx_init')
+      !
    END SUBROUTINE zdf_tmx_init
 
