Index: /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/CONFIG/SHARED/namelist_ref
===================================================================
--- /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 8362)
+++ /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 8363)
@@ -526,9 +526,11 @@
 &nam_tide      !   tide parameters
 !-----------------------------------------------------------------------
-   ln_tide     = .false.
-   ln_tide_pot = .true.    !  use tidal potential forcing
-   ln_tide_ramp= .false.   !
-   rdttideramp =    0.     !
-   clname(1)   = 'DUMMY'   !  name of constituent - all tidal components must be set in namelist_cfg
+   ln_tide       = .false.
+   ln_tide_load  = .false.               !  read load potential
+   filetide_load = 'tide_LOAD_grid_T.nc' ! filename for load potential 
+   ln_tide_pot   = .true.                !  use tidal potential forcing
+   ln_tide_ramp  = .false.               !
+   rdttideramp   =    0.                 !
+   clname(1)     = 'DUMMY'               !  name of constituent - all tidal components must be set in namelist_cfg
 /
 !-----------------------------------------------------------------------
Index: /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
===================================================================
--- /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90	(revision 8362)
+++ /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90	(revision 8363)
@@ -11,4 +11,5 @@
    USE daymod         ! calandar
    USE tideini        ! 
+   USE wrk_nemo        ! Memory allocation
    !
    USE in_out_manager ! I/O units
@@ -30,5 +31,6 @@
 
    REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   amp_pot, phi_pot
-
+   REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   amp_load, phi_load
+ 
    !!----------------------------------------------------------------------
    !! NEMO/OPA 3.5 , NEMO Consortium (2013)
@@ -49,11 +51,20 @@
       IF( nsec_day == NINT(0.5_wp * rdt) .OR. kt == nit000 ) THEN      ! start a new day
          !
-         IF( kt == nit000 ) THEN
+         IF( kt == nit000 )THEN
             ALLOCATE( amp_pot(jpi,jpj,nb_harmo),                      &
                &      phi_pot(jpi,jpj,nb_harmo), pot_astro(jpi,jpj)   )
+            IF( ln_tide_load )THEN
+               ALLOCATE( amp_load(jpi,jpj,nb_harmo), phi_load(jpi,jpj,nb_harmo) )
+               CALL tide_init_load
+            ENDIF
          ENDIF
          !
-         amp_pot(:,:,:) = 0._wp
-         phi_pot(:,:,:) = 0._wp
+         IF( ln_tide_load )THEN
+            amp_pot(:,:,:) = amp_load(:,:,:)
+            phi_pot(:,:,:) = phi_load(:,:,:)
+         ELSE 
+            amp_pot(:,:,:) = 0._wp
+            phi_pot(:,:,:) = 0._wp
+         ENDIF
          pot_astro(:,:) = 0._wp
          !
@@ -101,6 +112,6 @@
          DO ji = 1, jpi
             DO jj = 1, jpj
-               ztmp1 =  amp_pot(ji,jj,jk) * COS( phi_pot(ji,jj,jk) )
-               ztmp2 = -amp_pot(ji,jj,jk) * SIN( phi_pot(ji,jj,jk) )
+               ztmp1 =  ftide(jk) * amp_pot(ji,jj,jk) * COS( phi_pot(ji,jj,jk) + v0tide(jk) + utide(jk) )
+               ztmp2 = -ftide(jk) * amp_pot(ji,jj,jk) * SIN( phi_pot(ji,jj,jk) + v0tide(jk) + utide(jk) )
                zlat = gphit(ji,jj)*rad !! latitude en radian
                zlon = glamt(ji,jj)*rad !! longitude en radian
@@ -123,4 +134,40 @@
    END SUBROUTINE tide_init_potential
 
+   SUBROUTINE tide_init_load
+      !!----------------------------------------------------------------------
+      !!                 ***  ROUTINE tide_init_load  ***
+      !!----------------------------------------------------------------------
+      INTEGER :: inum                 ! Logical unit of input file
+      INTEGER :: ji, jj, itide        ! dummy loop indices
+      REAL(wp), POINTER, DIMENSION(:,:) ::   ztr, zti   !: workspace to read in tidal harmonics data 
+      !!----------------------------------------------------------------------
+      IF(lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) 'tide_init_load : Initialization of load potential'
+         WRITE(numout,*) '~~~~~~~~~~~~~~ '
+      ENDIF
+      !
+      CALL wrk_alloc( jpi, jpj, zti, ztr )
+      !
+      CALL iom_open ( filetide_load , inum )
+      !
+      DO itide = 1, nb_harmo
+         CALL iom_get  ( inum, jpdom_data,TRIM(Wave(ntide(itide))%cname_tide)//'_z1', ztr(:,:) )
+         CALL iom_get  ( inum, jpdom_data,TRIM(Wave(ntide(itide))%cname_tide)//'_z2', zti(:,:) )
+         !
+         DO ji=1,jpi
+            DO jj=1,jpj
+               amp_load(ji,jj,itide) =  SQRT( ztr(ji,jj)**2. + zti(ji,jj)**2. )
+               phi_load(ji,jj,itide) = ATAN2(-zti(ji,jj), ztr(ji,jj) )
+            END DO
+         END DO
+         !
+      END DO
+      CALL iom_close( inum )
+      !
+      CALL wrk_dealloc( jpi, jpj, zti, ztr )
+      !
+   END SUBROUTINE tide_init_load
+
   !!======================================================================
 END MODULE sbctide
Index: /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90
===================================================================
--- /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90	(revision 8362)
+++ /branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90	(revision 8363)
@@ -27,9 +27,11 @@
    LOGICAL , PUBLIC ::   ln_tide         !:
    LOGICAL , PUBLIC ::   ln_tide_pot     !:
+   LOGICAL , PUBLIC ::   ln_tide_load    !:
    LOGICAL , PUBLIC ::   ln_tide_ramp    !:
    INTEGER , PUBLIC ::   nb_harmo        !:
    INTEGER , PUBLIC ::   kt_tide         !:
    REAL(wp), PUBLIC ::   rdttideramp     !:
-   
+   CHARACTER(len=80), PUBLIC ::   filetide_load   !: filename for input load potential    
+
    INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   ntide   !:
 
@@ -49,5 +51,5 @@
       INTEGER  ::   ios                 ! Local integer output status for namelist read
       !
-      NAMELIST/nam_tide/ln_tide, ln_tide_pot, ln_tide_ramp, rdttideramp, clname
+      NAMELIST/nam_tide/ln_tide, ln_tide_load, filetide_load, ln_tide_pot, ln_tide_ramp, rdttideramp, clname
       !!----------------------------------------------------------------------
       !
@@ -70,4 +72,5 @@
             WRITE(numout,*) '              Use tidal components : ln_tide      = ', ln_tide
             WRITE(numout,*) '      Apply astronomical potential : ln_tide_pot  = ', ln_tide_pot
+            WRITE(numout,*) '      Read load potential          : ln_tide_load = ', ln_tide_load
             WRITE(numout,*) '                                     nb_harmo     = ', nb_harmo
             WRITE(numout,*) '                                     ln_tide_ramp = ', ln_tide_ramp
@@ -93,4 +96,6 @@
       IF( nb_harmo == 0 )   CALL ctl_stop( 'tide_init : No tidal components set in nam_tide' )
       !
+      IF( ln_tide_load.AND.(.NOT.ln_tide_pot) ) &
+          &   CALL ctl_stop('with load potential, activate astronomical potential')
       IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rdttideramp) )   &
          &   CALL ctl_stop('rdttideramp must be lower than run duration')
