Index: /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
===================================================================
--- /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist	(revision 3889)
+++ /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist	(revision 3890)
@@ -306,5 +306,5 @@
 
    cn_dir      = './'       !  root directory for the location of the bulk files
-   rn_pref     = 101000._wp !  reference atmospheric pressure   [N/m2]/
+   rn_pref     = 101000.e0  !  reference atmospheric pressure   [N/m2]/
    ln_ref_apr  = .false.    !  ref. pressure: global mean Patm (T) or a constant (F)
    ln_apr_obc  = .false.    !  inverse barometer added to OBC ssh data
@@ -646,8 +646,8 @@
    ln_vvl_layer  = .false.          !  full layer vertical coordinate
    ln_vvl_ztilde_as_zstar = .false. !  ztilde vertical coordinate emulating zstar
-   rn_ahe3       = 0.e0             !  thickness diffusion coefficient 
-   rn_rst_e3t    = 30._wp           ! ztilde to zstar restoration timescale [days]
-   rn_lf_cutoff  = 5.0_wp           ! cutoff frequency for low-pass filter  [days]
-   rn_zdef_max   = 0.9_wp           ! maximum fractional e3t deformation
+   rn_ahe3       = 0.0e0            !  thickness diffusion coefficient 
+   rn_rst_e3t    = 30.e0            !  ztilde to zstar restoration timescale [days]
+   rn_lf_cutoff  = 5.0e0            !  cutoff frequency for low-pass filter  [days]
+   rn_zdef_max   = 0.9e0            !  maximum fractional e3t deformation
    ln_vvl_dbg    = .true.           !  debug prints    (T/F)
 /
Index: /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
===================================================================
--- /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90	(revision 3889)
+++ /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90	(revision 3890)
@@ -702,4 +702,5 @@
          !                                   ! ===============
          IF( ln_rstart ) THEN                   !* Read the restart file
+            CALL rst_read_open                  !  open the restart file if necessary
             id1 = iom_varid( numror, 'fse3t_b', ldstop = .FALSE. )
             id2 = iom_varid( numror, 'fse3t_n', ldstop = .FALSE. )
Index: /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
===================================================================
--- /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90	(revision 3889)
+++ /branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90	(revision 3890)
@@ -29,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
@@ -138,4 +139,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
@@ -148,25 +182,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'
-         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
