Index: branches/2015/dev_merge_2015/NEMOGCM/NEMO/OFF_SRC/domrea.F90
===================================================================
--- branches/2015/dev_merge_2015/NEMOGCM/NEMO/OFF_SRC/domrea.F90	(revision 6077)
+++ branches/2015/dev_merge_2015/NEMOGCM/NEMO/OFF_SRC/domrea.F90	(revision 6095)
@@ -555,8 +555,8 @@
             CALL iom_get( inum4, jpdom_unknown, 'esigw', esigw )
 
-            CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_n(:,:,:) ) ! scale factors
-            CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_n(:,:,:) )
-            CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_n(:,:,:) )
-            CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_n(:,:,:) )
+            CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_0(:,:,:) ) ! scale factors
+            CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_0(:,:,:) )
+            CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_0(:,:,:) )
+            CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_0(:,:,:) )
 
             CALL iom_get( inum4, jpdom_unknown, 'gdept_1d', gdept_1d ) ! depth
@@ -572,8 +572,8 @@
             !
             IF( nmsh <= 6 ) THEN                                        ! 3D vertical scale factors
-               CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_n(:,:,:) )
-               CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_n(:,:,:) )
-               CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_n(:,:,:) )
-               CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_n(:,:,:) )
+               CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_0(:,:,:) )
+               CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_0(:,:,:) )
+               CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_0(:,:,:) )
+               CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_0(:,:,:) )
             ELSE                                                        ! 2D bottom scale factors
                CALL iom_get( inum4, jpdom_data, 'e3t_ps', e3tp )
@@ -581,14 +581,14 @@
                !                                                        ! deduces the 3D scale factors
                DO jk = 1, jpk
-                  e3t_n(:,:,jk) = e3t_1d(jk)                                    ! set to the ref. factors
-                  e3u_n(:,:,jk) = e3t_1d(jk)
-                  e3v_n(:,:,jk) = e3t_1d(jk)
-                  e3w_n(:,:,jk) = e3w_1d(jk)
+                  e3t_0(:,:,jk) = e3t_1d(jk)                                    ! set to the ref. factors
+                  e3u_0(:,:,jk) = e3t_1d(jk)
+                  e3v_0(:,:,jk) = e3t_1d(jk)
+                  e3w_0(:,:,jk) = e3w_1d(jk)
                END DO
                DO jj = 1,jpj                                                  ! adjust the deepest values
                   DO ji = 1,jpi
                      ik = mbkt(ji,jj)
-                     e3t_n(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) )
-                     e3w_n(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) )
+                     e3t_0(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) )
+                     e3w_0(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) )
                   END DO
                END DO
@@ -596,21 +596,21 @@
                   DO jj = 1, jpjm1
                      DO ji = 1, jpim1
-                        e3u_n(ji,jj,jk) = MIN( e3t_n(ji,jj,jk), e3t_n(ji+1,jj,jk) )
-                        e3v_n(ji,jj,jk) = MIN( e3t_n(ji,jj,jk), e3t_n(ji,jj+1,jk) )
+                        e3u_0(ji,jj,jk) = MIN( e3t_0(ji,jj,jk), e3t_0(ji+1,jj,jk) )
+                        e3v_0(ji,jj,jk) = MIN( e3t_0(ji,jj,jk), e3t_0(ji,jj+1,jk) )
                      END DO
                   END DO
                END DO
-               CALL lbc_lnk( e3u_n(:,:,:) , 'U', 1._wp )   ;   CALL lbc_lnk( e3uw_n(:,:,:), 'U', 1._wp )   ! lateral boundary conditions
-               CALL lbc_lnk( e3v_n(:,:,:) , 'V', 1._wp )   ;   CALL lbc_lnk( e3vw_n(:,:,:), 'V', 1._wp )
+               CALL lbc_lnk( e3u_0(:,:,:) , 'U', 1._wp )   ;   CALL lbc_lnk( e3uw_0(:,:,:), 'U', 1._wp )   ! lateral boundary conditions
+               CALL lbc_lnk( e3v_0(:,:,:) , 'V', 1._wp )   ;   CALL lbc_lnk( e3vw_0(:,:,:), 'V', 1._wp )
                !
                DO jk = 1, jpk                        ! set to z-scale factor if zero (i.e. along closed boundaries)
-                  WHERE( e3u_n(:,:,jk) == 0._wp )   e3u_n(:,:,jk) = e3t_1d(jk)
-                  WHERE( e3v_n(:,:,jk) == 0._wp )   e3v_n(:,:,jk) = e3t_1d(jk)
+                  WHERE( e3u_0(:,:,jk) == 0._wp )   e3u_0(:,:,jk) = e3t_1d(jk)
+                  WHERE( e3v_0(:,:,jk) == 0._wp )   e3v_0(:,:,jk) = e3t_1d(jk)
                END DO
             END IF
 
             IF( iom_varid( inum4, 'gdept_0', ldstop = .FALSE. ) > 0 ) THEN   ! 3D depth of t- and w-level
-               CALL iom_get( inum4, jpdom_data, 'gdept_0', gdept_n(:,:,:) )
-               CALL iom_get( inum4, jpdom_data, 'gdepw_0', gdepw_n(:,:,:) )
+               CALL iom_get( inum4, jpdom_data, 'gdept_0', gdept_0(:,:,:) )
+               CALL iom_get( inum4, jpdom_data, 'gdepw_0', gdepw_0(:,:,:) )
             ELSE                                                           ! 2D bottom depth
                CALL iom_get( inum4, jpdom_data, 'hdept', zprt )
@@ -618,6 +618,6 @@
                !
                DO jk = 1, jpk                                              ! deduces the 3D depth
-                  gdept_n(:,:,jk) = gdept_1d(jk)
-                  gdepw_n(:,:,jk) = gdepw_1d(jk)
+                  gdept_0(:,:,jk) = gdept_1d(jk)
+                  gdepw_0(:,:,jk) = gdepw_1d(jk)
                END DO
                DO jj = 1, jpj
@@ -625,7 +625,7 @@
                      ik = mbkt(ji,jj)
                      IF( ik > 0 ) THEN
-                        gdepw_n(ji,jj,ik+1) = zprw(ji,jj)
-                        gdept_n(ji,jj,ik  ) = zprt(ji,jj)
-                        gdept_n(ji,jj,ik+1) = gdept_n(ji,jj,ik) + e3t_n(ji,jj,ik)
+                        gdepw_0(ji,jj,ik+1) = zprw(ji,jj)
+                        gdept_0(ji,jj,ik  ) = zprt(ji,jj)
+                        gdept_0(ji,jj,ik+1) = gdept_0(ji,jj,ik) + e3t_0(ji,jj,ik)
                      ENDIF
                   END DO
@@ -641,12 +641,29 @@
             CALL iom_get( inum4, jpdom_unknown, 'e3w_1d'  , e3w_1d   )
             DO jk = 1, jpk
-               e3t_n(:,:,jk) = e3t_1d(jk)                              ! set to the ref. factors
-               e3u_n(:,:,jk) = e3t_1d(jk)
-               e3v_n(:,:,jk) = e3t_1d(jk)
-               e3w_n(:,:,jk) = e3w_1d(jk)
-               gdept_n(:,:,jk) = gdept_1d(jk)
-               gdepw_n(:,:,jk) = gdepw_1d(jk)
+               e3t_0(:,:,jk) = e3t_1d(jk)                              ! set to the ref. factors
+               e3u_0(:,:,jk) = e3t_1d(jk)
+               e3v_0(:,:,jk) = e3t_1d(jk)
+               e3w_0(:,:,jk) = e3w_1d(jk)
+               gdept_0(:,:,jk) = gdept_1d(jk)
+               gdepw_0(:,:,jk) = gdepw_1d(jk)
             END DO
          ENDIF
+
+      !
+      !              !==  time varying part of coordinate system  ==!
+      !
+      !       before        !          now          !       after         !
+      ;  gdept_b = gdept_0  ;   gdept_n = gdept_0   !        ---          ! depth of grid-points
+      ;  gdepw_b = gdepw_0  ;   gdepw_n = gdepw_0   !        ---          !
+      ;                     ;   gde3w_n = gde3w_0   !        ---          !
+      !
+      ;    e3t_b =   e3t_0  ;     e3t_n =   e3t_0   ;   e3t_a =  e3t_0    ! scale factors
+      ;    e3u_b =   e3u_0  ;     e3u_n =   e3u_0   ;   e3u_a =  e3u_0    !
+      ;    e3v_b =   e3v_0  ;     e3v_n =   e3v_0   ;   e3v_a =  e3v_0    !
+      ;                     ;     e3f_n =   e3f_0   !        ---          !
+      ;    e3w_b =   e3w_0  ;     e3w_n =   e3w_0   !        ---          !
+      ;   e3uw_b =  e3uw_0  ;    e3uw_n =  e3uw_0   !        ---          !
+      ;   e3vw_b =  e3vw_0  ;    e3vw_n =  e3vw_0   !        ---          !
+      !
 
 !!gm BUG in s-coordinate this does not work!
