Index: branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
===================================================================
--- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90	(revision 4291)
+++ branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90	(revision 4292)
@@ -136,8 +136,8 @@
 
       ! vertical grid definition
-      CALL iom_set_axis_attr( "deptht", gdept_0 )
-      CALL iom_set_axis_attr( "depthu", gdept_0 )
-      CALL iom_set_axis_attr( "depthv", gdept_0 )
-      CALL iom_set_axis_attr( "depthw", gdepw_0 )
+      CALL iom_set_axis_attr( "deptht", gdept_1d )
+      CALL iom_set_axis_attr( "depthu", gdept_1d )
+      CALL iom_set_axis_attr( "depthv", gdept_1d )
+      CALL iom_set_axis_attr( "depthw", gdepw_1d )
 # if defined key_floats
       CALL iom_set_axis_attr( "nfloat", (/ (REAL(ji,wp), ji=1,nfloat) /) )
Index: branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90
===================================================================
--- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90	(revision 4291)
+++ branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90	(revision 4292)
@@ -408,5 +408,5 @@
                CALL flioputv( ioipslid, 'nav_lon'     , glamt(ix1:ix2, iy1:iy2) )
                CALL flioputv( ioipslid, 'nav_lat'     , gphit(ix1:ix2, iy1:iy2) )
-               CALL flioputv( ioipslid, 'nav_lev'     , gdept_0 )
+               CALL flioputv( ioipslid, 'nav_lev'     , gdept_1d )
                ! +++ WRONG VALUE: to be improved but not really useful...
                CALL flioputv( ioipslid, 'time_counter', kt )
Index: branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90
===================================================================
--- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90	(revision 4291)
+++ branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90	(revision 4292)
@@ -532,5 +532,5 @@
                CALL iom_nf90_check(NF90_PUT_VAR( if90id, idmy, gphit(ix1:ix2, iy1:iy2) ), clinfo)
                CALL iom_nf90_check(NF90_INQ_VARID( if90id, 'nav_lev'     , idmy ), clinfo)
-               CALL iom_nf90_check(NF90_PUT_VAR( if90id, idmy, gdept_0                 ), clinfo)
+               CALL iom_nf90_check(NF90_PUT_VAR( if90id, idmy, gdept_1d                ), clinfo)
                ! +++ WRONG VALUE: to be improved but not really useful...
                CALL iom_nf90_check(NF90_INQ_VARID( if90id, 'time_counter', idmy ), clinfo)
Index: branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
===================================================================
--- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90	(revision 4291)
+++ branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90	(revision 4292)
@@ -23,5 +23,4 @@
    USE eosbn2          ! equation of state            (eos bn2 routine)
    USE trdmld_oce      ! ocean active mixed layer tracers trends variables
-   USE domvvl          ! variable volume
    USE divcur          ! hor. divergence and curl      (div & cur routines)
    USE sbc_ice, ONLY : lk_lim3
@@ -30,7 +29,8 @@
    PRIVATE
 
-   PUBLIC   rst_opn    ! routine called by step module
-   PUBLIC   rst_write  ! routine called by step module
-   PUBLIC   rst_read   ! routine called by opa  module
+   PUBLIC   rst_opn         ! routine called by step module
+   PUBLIC   rst_write       ! routine called by step module
+   PUBLIC   rst_read        ! routine called by istate module
+   PUBLIC   rst_read_open   ! routine called in rst_read and (possibly) in dom_vvl_init
 
    !! * Substitutions
@@ -120,5 +120,4 @@
                      CALL iom_rstput( kt, nitrst, numrow, 'hdivb'  , hdivb     )
                      CALL iom_rstput( kt, nitrst, numrow, 'sshb'   , sshb      )
-      IF( lk_vvl )   CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) )
                      !
                      CALL iom_rstput( kt, nitrst, numrow, 'un'     , un        )     ! now fields
@@ -144,4 +143,37 @@
    END SUBROUTINE rst_write
 
+   SUBROUTINE rst_read_open
+      !!---------------------------------------------------------------------- 
+      !!                   ***  ROUTINE rst_read_open  ***
+      !! 
+      !! ** Purpose :   Open read files for restart (format fixed by jprstlib )
+      !! 
+      !! ** Method  :   Use a non-zero, positive value of numror to assess whether or not
+      !!                the file has already been opened
+      !!----------------------------------------------------------------------
+      INTEGER  ::   jlibalt = jprstlib
+      LOGICAL  ::   llok
+      !!----------------------------------------------------------------------
+
+      IF( numror .LE. 0 ) THEN
+         IF(lwp) THEN                                             ! Contol prints
+            WRITE(numout,*)
+            SELECT CASE ( jprstlib )
+            CASE ( jpnf90    )   ;   WRITE(numout,*) 'rst_read : read oce NetCDF restart file'
+            CASE ( jprstdimg )   ;   WRITE(numout,*) 'rst_read : read oce binary restart file'
+            END SELECT
+            IF ( snc4set%luse )      WRITE(numout,*) 'rst_read : configured with NetCDF4 support'
+            WRITE(numout,*) '~~~~~~~~'
+         ENDIF
+
+         IF ( jprstlib == jprstdimg ) THEN
+           ! eventually read netcdf file (monobloc)  for restarting on different number of processors
+           ! if {cn_ocerst_in}.nc exists, then set jlibalt to jpnf90
+           INQUIRE( FILE = TRIM(cn_ocerst_in)//'.nc', EXIST = llok )
+           IF ( llok ) THEN ; jlibalt = jpnf90  ; ELSE ; jlibalt = jprstlib ; ENDIF
+         ENDIF
+         CALL iom_open( cn_ocerst_in, numror, kiolib = jlibalt )
+      ENDIF
+   END SUBROUTINE rst_read_open
 
    SUBROUTINE rst_read
@@ -154,25 +186,9 @@
       !!----------------------------------------------------------------------
       REAL(wp) ::   zrdt, zrdttra1
-      INTEGER  ::   jk, jlibalt = jprstlib
+      INTEGER  ::   jk
       LOGICAL  ::   llok
       !!----------------------------------------------------------------------
 
-      IF(lwp) THEN                                             ! Contol prints
-         WRITE(numout,*)
-         SELECT CASE ( jprstlib )
-         CASE ( jpnf90    )   ;   WRITE(numout,*) 'rst_read : read oce NetCDF restart file ',TRIM(cn_ocerst_in)//'.nc'
-         CASE ( jprstdimg )   ;   WRITE(numout,*) 'rst_read : read oce binary restart file'
-         END SELECT
-         IF ( snc4set%luse )      WRITE(numout,*) 'rst_read : configured with NetCDF4 support'
-         WRITE(numout,*) '~~~~~~~~'
-      ENDIF
-
-      IF ( jprstlib == jprstdimg ) THEN
-        ! eventually read netcdf file (monobloc)  for restarting on different number of processors
-        ! if {cn_ocerst_in}.nc exists, then set jlibalt to jpnf90
-        INQUIRE( FILE = TRIM(cn_ocerst_in)//'.nc', EXIST = llok )
-        IF ( llok ) THEN ; jlibalt = jpnf90  ; ELSE ; jlibalt = jprstlib ; ENDIF
-      ENDIF
-      CALL iom_open( cn_ocerst_in, numror, kiolib = jlibalt )
+      CALL rst_read_open           ! open restart for reading (if not already opened)
 
       ! Check dynamics and tracer time-step consistency and force Euler restart if changed
@@ -194,5 +210,4 @@
          CALL iom_get( numror, jpdom_autoglo, 'hdivb'  , hdivb   )
          CALL iom_get( numror, jpdom_autoglo, 'sshb'   , sshb    )
-         IF( lk_vvl )   CALL iom_get( numror, jpdom_autoglo, 'fse3t_b', fse3t_b(:,:,:) )
       ELSE
          neuler = 0
@@ -230,9 +245,4 @@
          hdivb(:,:,:)   = hdivn(:,:,:)
          sshb (:,:)     = sshn (:,:)
-         IF( lk_vvl ) THEN
-            DO jk = 1, jpk
-               fse3t_b(:,:,jk) = fse3t_n(:,:,jk)
-            END DO
-         ENDIF
       ENDIF
       !
