Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/c1d.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/c1d.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/c1d.F90	(revision 4144)
@@ -4,16 +4,26 @@
    !! Ocean domain  :  1D configuration
    !!=====================================================================
-   !! History :   2.0  !  2004-09  (C. Ethe)  Original code
-   !!             3.0  !  2008-04 (G. Madec)  adaptation to SBC
+   !! History :   2.0  !  2004-09 (C. Ethe)     Original code
+   !!             3.0  !  2008-04 (G. Madec)    adaptation to SBC
+   !!             3.5  !  2013-10 (D. Calvert)  add namelist
    !!----------------------------------------------------------------------
+#if defined key_c1d
+   !!----------------------------------------------------------------------
+   !!   'key_c1d'                                   1D column configuration
+   !!----------------------------------------------------------------------
+   !!   c1d_init       : read in the C1D namelist
+   !!----------------------------------------------------------------------
+   USE in_out_manager   ! I/O manager
+   USE par_kind         ! kind parameters
 
    IMPLICIT NONE
    PRIVATE
 
-#if defined key_c1d
-   LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .TRUE.    !: 1D config. flag activated
-#else
-   LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .FALSE.   !: 1D config. flag de-activated
-#endif
+   PUBLIC   c1d_init                                 ! called by nemogcm.F90
+
+   LOGICAL , PUBLIC, PARAMETER ::  lk_c1d = .TRUE.   ! 1D config. flag
+
+   REAL(wp), PUBLIC            ::  rn_lat = 50       ! Column latitude
+   REAL(wp), PUBLIC            ::  rn_lon = -145     ! Column longitude
 
    !!----------------------------------------------------------------------
@@ -22,3 +32,45 @@
    !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
    !!======================================================================
+CONTAINS
+
+   SUBROUTINE c1d_init
+      !!----------------------------------------------------------------------
+      !!                  ***  ROUTINE c1d_init  ***
+      !! 
+      !! ** Purpose :   Initialization of C1D options
+      !!
+      !! ** Method  :   Read namelist namc1d 
+      !!----------------------------------------------------------------------
+      NAMELIST/namc1d/ rn_lat, rn_lon
+      !!----------------------------------------------------------------------
+      !
+      REWIND ( numnam )               ! Read C1D options from namelist
+      READ   ( numnam, namc1d )
+      !
+      IF(lwp) THEN                    ! Control print
+         WRITE(numout,*)
+         WRITE(numout,*) 'c1d_init : Initialize 1D model configuration options'
+         WRITE(numout,*) '~~~~~~~~'
+         WRITE(numout,*) '   Namelist namc1d : set options for the C1D model'
+         WRITE(numout,*) '      column latitude                 rn_lat = ', rn_lat
+         WRITE(numout,*) '      column longitude                rn_lon = ', rn_lon
+      ENDIF
+      !
+      !
+   END SUBROUTINE c1d_init
+
+#else
+   !!----------------------------------------------------------------------
+   !!   Dummy module :                           No use of 1D configuration
+   !!----------------------------------------------------------------------
+   LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .FALSE.   !: 1D config. flag de-activated
+   REAL                       ::   rn_lat, rn_lon
+CONTAINS
+
+   SUBROUTINE c1d_init               ! Dummy routine
+   END SUBROUTINE c1d_init
+
+#endif
+
+   !!======================================================================
 END MODULE c1d
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90	(revision 4144)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90	(revision 4144)
@@ -0,0 +1,208 @@
+MODULE domc1d
+   !!======================================================================
+   !!                     ***  MODULE  domc1d  ***
+   !! Ocean Domain : 1D column position from lat/lon namelist specification
+   !!======================================================================
+   !! History :  3.5  !  2013-04  (D. Calvert)  Original code
+   !!----------------------------------------------------------------------
+#if defined key_c1d
+   !!----------------------------------------------------------------------
+   !!   'key_c1d'   :                                      1D Configuration
+   !!----------------------------------------------------------------------
+   !!   dom_c1d     : Determine jpizoom/jpjzoom from a given lat/lon
+   !!----------------------------------------------------------------------
+   USE phycst                        ! Physical constants (and par_oce)
+   USE iom                           ! I/O library (iom_get)
+   USE in_out_manager                ! I/O manager (ctmp1)
+   USE dom_oce , ONLY : nimpp, njmpp ! Shared/distributed memory setting (mpp_init routine)
+   USE wrk_nemo                      ! Memory allocation
+   USE timing                        ! Timing
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   dom_c1d                  ! Routine called in domcfg.F90
+
+   !!----------------------------------------------------------------------
+   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
+   !! $Id: domc1d.F90 3851 2013-04-30 10:30:51Z hadcv $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+   
+   SUBROUTINE dom_c1d( plat, plon )
+      !!----------------------------------------------------------------------
+      !!                   ***  ROUTINE dom_c1d  ***
+      !! 
+      !! ** Purpose : Recalculate jpizoom/jpjzoom indices from lat/lon point
+      !!
+      !! ** Method  : Calculate global gphit and glamt as for dom_hgr.
+      !!              After, find closest grid point to lat/lon point as for 
+      !!              dom_ngb on T grid. From this infer jpizoom and jpjzoom.
+      !!
+      !! ** Action  : Recalculate jpizoom, jpjzoom (indices of C1D zoom)
+      !!----------------------------------------------------------------------
+      INTEGER  ::  ji, jj                          ! Dummy loop indices
+      INTEGER  ::  inum                            ! Coordinate file handle (case 0)
+      INTEGER  ::  ijeq                            ! Index of equator T point (case 4)
+
+      INTEGER , DIMENSION(2) ::   iloc             ! Minloc returned indices
+
+      REAL(wp), INTENT(in) ::  plat                ! Column latitude
+      REAL(wp), INTENT(in) ::  plon                ! Column longitude
+
+      REAL(wp) ::  zlon                            ! Wraparound longitude
+      REAL(wp) ::  zti, ztj, zarg                  ! Local scalars
+      REAL(wp) ::  glam0, gphi0                    ! Variables corresponding to parameters ppglam0 ppgphi0 set in par_oce
+      REAL(wp) ::  zlam1, zcos_alpha, ze1, ze1deg  ! Case 5 local scalars
+      REAL(wp) ::  zphi1, zsin_alpha, zim05, zjm05 !          "
+
+      REAL(wp) , POINTER, DIMENSION(:,:) ::  gphidta, glamdta, zdist ! Global lat/lon
+      !!----------------------------------------------------------------------
+
+      IF( nn_timing == 1 )   CALL timing_start('dom_c1d')
+
+      CALL wrk_alloc( jpidta, jpjdta, gphidta, glamdta, zdist )
+
+
+      ! ============================= !
+      !  Code from dom_hgr:           !
+      !  Calculate global horizontal  !
+      !  mesh, only glamt and gphit   !
+      ! ============================= !
+
+      SELECT CASE( jphgr_msh )   ! type of horizontal mesh
+
+      CASE ( 0 )                 !  curvilinear coordinate on the sphere read in coordinate.nc file
+
+         CALL iom_open( 'coordinates', inum )
+         CALL iom_get( inum, jpdom_unknown, 'glamt', glamdta ) ! mig, mjg undefined at this point
+         CALL iom_get( inum, jpdom_unknown, 'gphit', gphidta ) ! so use jpdom_unknown not jpdom_data
+         CALL iom_close ( inum )
+
+         PRINT *,'Check dom_c1d coordinates file data read in:' !!!
+         PRINT *,'Bottom-left most glamdta is ', glamdta(1,1)    !!! Need to check
+         PRINT *,'Bottom-left most gphidta is ', gphidta(1,1)    !!! field read
+         PRINT *,'We are using nimpp,njmpp = ' , nimpp,njmpp     !!!
+
+      CASE ( 1 )                 ! geographical mesh on the sphere with regular grid-spacing
+
+         DO jj = 1, jpjdta
+            DO ji = 1, jpidta
+               zti = FLOAT( ji - 1 + nimpp - 1 )
+               ztj = FLOAT( jj - 1 + njmpp - 1 )
+
+               glamdta(ji,jj) = ppglam0 + ppe1_deg * zti
+               gphidta(ji,jj) = ppgphi0 + ppe2_deg * ztj
+            END DO
+         END DO
+
+      CASE ( 2:3 )               ! f- or beta-plane with regular grid-spacing
+         
+         glam0 = 0.e0
+         gphi0 = - ppe2_m * 1.e-3
+
+         DO jj = 1, jpjdta
+            DO ji = 1, jpidta
+               glamdta(ji,jj) = glam0 + ppe1_m * 1.e-3 * FLOAT( ji - 1 + nimpp - 1 )
+               gphidta(ji,jj) = gphi0 + ppe2_m * 1.e-3 * FLOAT( jj - 1 + njmpp - 1 )
+            END DO
+         END DO
+
+      CASE ( 4 )                 ! geographical mesh on the sphere, isotropic MERCATOR type
+
+         IF( ppgphi0 == -90 )   CALL ctl_stop( ' Mercator grid cannot start at south pole !!!! ' )
+
+         zarg = rpi / 4. - rpi / 180. * ppgphi0 / 2.
+         ijeq = ABS( 180. / rpi * LOG( COS( zarg ) / SIN( zarg ) ) / ppe1_deg )
+         IF( ppgphi0 > 0 )   ijeq = -ijeq
+
+         DO jj = 1, jpjdta
+            DO ji = 1, jpidta
+               zti = FLOAT( ji - 1    + nimpp - 1 )
+               ztj = FLOAT( jj - ijeq + njmpp - 1 )
+
+               glamdta(ji,jj) = ppglam0 + ppe1_deg * zti
+               gphidta(ji,jj) = 1. / rad * ASIN ( TANH( ppe1_deg * rad * ztj ) )
+            END DO
+         END DO
+
+      CASE ( 5 )                 ! beta-plane with regular grid-spacing and rotated domain (GYRE configuration)
+   
+         zlam1 = -85
+         zphi1 = 29
+         ze1 = 106000. / FLOAT(jp_cfg)
+ 
+         zsin_alpha = - SQRT( 2. ) / 2.
+         zcos_alpha =   SQRT( 2. ) / 2.
+         ze1deg = ze1 / (ra * rad)
+
+         glam0 = zlam1 + zcos_alpha * ze1deg * FLOAT( jpjdta-2 ) ! Force global
+         gphi0 = zphi1 + zsin_alpha * ze1deg * FLOAT( jpjdta-2 )
+
+         DO jj = 1, jpjdta
+            DO ji = 1, jpidta
+               zim05 = FLOAT( ji + nimpp - 1 ) - 1.5
+               zjm05 = FLOAT( jj + njmpp - 1 ) - 1.5
+
+               glamdta(ji,jj) = glam0 + zim05 * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha
+               gphidta(ji,jj) = gphi0 - zim05 * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha
+            END DO
+         END DO
+
+      CASE DEFAULT
+
+         WRITE(ctmp1,*) '          bad flag value for jphgr_msh = ', jphgr_msh
+         CALL ctl_stop( ctmp1 )
+
+      END SELECT
+
+
+      ! ============================== !
+      !  Code from dom_ngb:            !
+      !  Calculate the nearest grid    !
+      !  point to the given lat/lon &  !
+      !  update jpizoom and jpjzoom    !
+      ! ============================== !
+
+      zlon         = MOD( plon         + 720., 360. )                                      ! plon    between    0 and 360
+      glamdta(:,:) = MOD( glamdta(:,:) + 720., 360. )                                      ! glamdta between    0 and 360
+      IF( zlon > 270. )   zlon = zlon - 360.                                               ! zlon    between  -90 and 270
+      IF( zlon <  90. )   WHERE( glamdta(:,:) > 180. ) glamdta(:,:) = glamdta(:,:) - 360.  ! glamdta between -180 and 180
+
+      glamdta(:,:) = glamdta(:,:) - zlon
+      gphidta(:,:) = gphidta(:,:) - plat
+      zdist(:,:)   = glamdta(:,:) * glamdta(:,:) + gphidta(:,:) * gphidta(:,:)
+      
+      iloc(:) = MINLOC( zdist(:,:) ) ! No mask; zoom indices freely defined
+      jpizoom = iloc(1) + nimpp - 2  ! Minloc index - 1; want the bottom-left
+      jpjzoom = iloc(2) + njmpp - 2  ! corner index of the zoom domain.
+
+      CALL wrk_dealloc( jpidta, jpjdta, gphidta, glamdta, zdist )
+
+      IF (lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) 'dom_c1d : compute jpizoom & jpjzoom from global mesh and given coordinates'
+         WRITE(numout,*) '~~~~~~~'
+         WRITE(numout,*) '      column i zoom index             jpizoom = ', jpizoom
+         WRITE(numout,*) '      column j zoom index             jpjzoom = ', jpjzoom
+         WRITE(numout,*)
+      ENDIF
+
+      IF( nn_timing == 1 )   CALL timing_stop('dom_c1d')
+
+   END SUBROUTINE dom_c1d
+
+#else
+   !!----------------------------------------------------------------------
+   !!   Default option                                  NO 1D Configuration
+   !!----------------------------------------------------------------------
+CONTAINS  
+   SUBROUTINE dom_c1d( plat, plon )     ! Empty routine
+      REAL :: plat, plon
+      WRITE(*,*) 'dom_c1d: You should not have seen this print! error?',plat,plon
+   END SUBROUTINE dom_c1d
+#endif
+
+   !!======================================================================
+END MODULE domc1d
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90	(revision 4144)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90	(revision 4144)
@@ -0,0 +1,263 @@
+MODULE dtauvd
+   !!======================================================================
+   !!                     ***  MODULE  dtauvd  ***
+   !! Ocean data  :  read ocean U & V current data from gridded data
+   !!======================================================================
+   !! History :  3.5   ! 2013-08  (D. Calvert)  Original code
+   !!----------------------------------------------------------------------
+
+   !!----------------------------------------------------------------------
+   !!   dta_uvd_init   : read namelist and allocate data structures
+   !!   dta_uvd        : read and time-interpolate ocean U & V current data
+   !!----------------------------------------------------------------------
+   USE oce             ! ocean dynamics and tracers
+   USE dom_oce         ! ocean space and time domain
+   USE fldread         ! read input fields
+   USE in_out_manager  ! I/O manager
+   USE phycst          ! physical constants
+   USE lib_mpp         ! MPP library
+   USE wrk_nemo        ! Memory allocation
+   USE timing          ! Timing
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   dta_uvd_init   ! called by nemogcm.F90
+   PUBLIC   dta_uvd        ! called by istate.F90 and dyndmp.90
+
+   LOGICAL , PUBLIC ::   ln_uvd_init   = .FALSE.      ! Flag to initialise with U & V current data
+   LOGICAL , PUBLIC ::   ln_uvd_dyndmp = .FALSE.      ! Flag for Newtonian damping toward U & V current data
+
+   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_uvd   ! structure for input U & V current (file information and data)
+
+   !! * Substitutions
+#  include "domzgr_substitute.h90"
+   !!----------------------------------------------------------------------
+   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
+   !! $Id: dtauvd.F90 2392 2010-11-15 21:20:05Z gm $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE dta_uvd_init( ld_dyndmp )
+      !!----------------------------------------------------------------------
+      !!                   ***  ROUTINE dta_uvd_init  ***
+      !!                    
+      !! ** Purpose :   initialization of U & V current input data 
+      !! 
+      !! ** Method  : - read namc1d_uvd namelist
+      !!              - allocate U & V current data structure
+      !!              - fld_fill data structure with namelist information
+      !!----------------------------------------------------------------------
+      LOGICAL, INTENT(in), OPTIONAL ::   ld_dyndmp         ! force the initialization when dyndmp is used
+      !
+      INTEGER ::   ierr0, ierr1, ierr2, ierr3              ! temporary integers
+      !
+      CHARACTER(len=100)            ::   cn_dir            ! Root directory for location of files to be used
+      TYPE(FLD_N), DIMENSION(2)     ::   suv_i             ! Combined U & V namelist information
+      TYPE(FLD_N)                   ::   sn_ucur, sn_vcur  ! U & V data namelist information
+      !!
+      NAMELIST/namc1d_uvd/ ln_uvd_init, ln_uvd_dyndmp, cn_dir, sn_ucur, sn_vcur
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('dta_uvd_init')
+      !
+      ierr0 = 0  ;  ierr1 = 0  ;  ierr2 = 0  ;  ierr3 = 0
+      !
+      cn_dir = './'                 ! default: directory in which the model is executed
+      !
+      !                             !==   read namelist namc1d_uvd: flags and field info   ==!
+
+      !                             ! default values (NB: frequency positive => hours, negative => months)
+      !              !   file   ! frequency ! variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation !
+      !              !   name   !  (hours)  !  name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs    !
+      sn_ucur = FLD_N( 'ucurrent',   -1     , 'u_current',  .false.  , .true.  ,  'monthly'  , ''       , 'Ume'    )
+      sn_vcur = FLD_N( 'vcurrent',   -1     , 'v_current',  .false.  , .true.  ,  'monthly'  , ''       , 'Vme'    )
+
+      REWIND( numnam )              ! Read in namelist namc1d_uvd
+      READ  ( numnam, namc1d_uvd )
+
+      !                             ! force the initialization when dyndmp is used
+      IF( PRESENT( ld_dyndmp ) )   ln_uvd_dyndmp = .TRUE.
+      
+      IF(lwp) THEN                  ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) 'dta_uvd_init : U & V current data '
+         WRITE(numout,*) '~~~~~~~~~~~~ '
+         WRITE(numout,*) '   Namelist namc1d_uvd : Set flags'
+         WRITE(numout,*) '      Initialization of ocean U & V current with input data   ln_uvd_init   = ', ln_uvd_init
+         WRITE(numout,*) '      Damping of ocean U & V current toward input data        ln_uvd_dyndmp = ', ln_uvd_dyndmp
+         WRITE(numout,*)
+         IF( .NOT. ln_uvd_init .AND. .NOT. ln_uvd_dyndmp ) THEN
+            WRITE(numout,*)
+            WRITE(numout,*) '   U & V current data not used'
+         ENDIF
+      ENDIF
+      !                             ! no initialization when restarting
+      IF( ln_rstart .AND. ln_uvd_init ) THEN
+         CALL ctl_warn( 'dta_uvd_init: ocean restart and U & V current data initialization, ',   &
+            &           'we keep the restart U & V current values and set ln_uvd_init to FALSE' )
+         ln_uvd_init = .FALSE.
+      ENDIF
+
+      !
+      IF(  ln_uvd_init .OR. ln_uvd_dyndmp  ) THEN
+         !                          !==   allocate the data arrays   ==!
+         ALLOCATE( sf_uvd(2), STAT=ierr0 )
+         IF( ierr0 > 0 ) THEN
+            CALL ctl_stop( 'dta_uvd_init: unable to allocate sf_uvd structure' )             ;   RETURN
+         ENDIF
+         !
+                                 ALLOCATE( sf_uvd(1)%fnow(jpi,jpj,jpk)   , STAT=ierr0 )
+         IF( sn_ucur%ln_tint )   ALLOCATE( sf_uvd(1)%fdta(jpi,jpj,jpk,2) , STAT=ierr1 )
+                                 ALLOCATE( sf_uvd(2)%fnow(jpi,jpj,jpk)   , STAT=ierr2 )
+         IF( sn_vcur%ln_tint )   ALLOCATE( sf_uvd(2)%fdta(jpi,jpj,jpk,2) , STAT=ierr3 )
+         !
+         IF( ierr0 + ierr1 + ierr2 + ierr3 > 0 ) THEN
+            CALL ctl_stop( 'dta_uvd_init : unable to allocate U & V current data arrays' )   ;   RETURN
+         ENDIF
+         !                          !==   fill sf_uvd with sn_ucur, sn_vcur and control print   ==!
+         suv_i(1) = sn_ucur   ;   suv_i(2) = sn_vcur
+         CALL fld_fill( sf_uvd, suv_i, cn_dir, 'dta_uvd', 'U & V current data', 'namc1d_uvd' )
+         !
+      ENDIF
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('dta_uvd_init')
+      !
+   END SUBROUTINE dta_uvd_init
+
+
+   SUBROUTINE dta_uvd( kt, puvd )
+      !!----------------------------------------------------------------------
+      !!                   ***  ROUTINE dta_uvd  ***
+      !!                    
+      !! ** Purpose :   provides U & V current data at time step kt
+      !! 
+      !! ** Method  : - call fldread routine
+      !!              - ORCA_R2: make some hand made alterations to the data (EMPTY)
+      !!              - s- or mixed s-zps coordinate: vertical interpolation onto model mesh
+      !!              - zps coordinate: vertical interpolation onto last partial level
+      !!              - ln_uvd_dyndmp=False: deallocate the U & V current data structure,
+      !!                                     as the data is no longer used
+      !!
+      !! ** Action  :   puvd,  U & V current data interpolated onto model mesh at time-step kt
+      !!----------------------------------------------------------------------
+      INTEGER                           , INTENT(in   ) ::   kt     ! ocean time-step
+      REAL(wp), DIMENSION(jpi,jpj,jpk,2), INTENT(  out) ::   puvd   ! U & V current data
+      !
+      INTEGER ::   ji, jj, jk, jl, jkk               ! dummy loop indicies
+      INTEGER ::   ik, il0, il1, ii0, ii1, ij0, ij1  ! local integers
+      REAL(wp)::   zl, zi                            ! local floats
+      REAL(wp), POINTER, DIMENSION(:) ::  zup, zvp   ! 1D workspace
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('dta_uvd')
+      !
+      CALL fld_read( kt, 1, sf_uvd )      !==   read U & V current data at time step kt   ==!
+      !
+      !
+      !                                   !==   ORCA_R2 configuration and U & V current damping   ==! 
+      IF( cp_cfg == "orca" .AND. jp_cfg == 2 .AND. ln_uvd_dyndmp ) THEN    ! some hand made alterations
+         !!! EMPTY- to be added for running in 3D context !!!
+      ENDIF
+      !
+      puvd(:,:,:,1) = sf_uvd(1)%fnow(:,:,:)                 ! NO mask
+      puvd(:,:,:,2) = sf_uvd(2)%fnow(:,:,:) 
+      !
+      IF( ln_sco ) THEN                   !==   s- or mixed s-zps-coordinate   ==!
+         !
+         CALL wrk_alloc( jpk, zup, zvp )
+         !
+         IF( kt == nit000 .AND. lwp )THEN
+            WRITE(numout,*)
+            WRITE(numout,*) 'dta_uvd: interpolate U & V current data onto the s- or mixed s-z-coordinate mesh'
+         ENDIF
+         !
+         DO jj = 1, jpj                   ! vertical interpolation of U & V current:
+            DO ji = 1, jpi                ! determines the interpolated U & V current profiles at each (i,j) point
+               DO jk = 1, jpk
+                  zl = fsdept_0(ji,jj,jk)
+                  IF    ( zl < gdept_0(1  ) ) THEN          ! extrapolate above the first level of data
+                     zup(jk) =  puvd(ji,jj,1    ,1)
+                     zvp(jk) =  puvd(ji,jj,1    ,2)
+                  ELSEIF( zl > gdept_0(jpk) ) THEN          ! extrapolate below the last level of data
+                     zup(jk) =  puvd(ji,jj,jpkm1,1)
+                     zvp(jk) =  puvd(ji,jj,jpkm1,2)
+                  ELSE                                      ! inbetween : vertical interpolation between jkk & jkk+1
+                     DO jkk = 1, jpkm1                      ! when  gdept(jkk) < zl < gdept(jkk+1)
+                        IF( (zl-gdept_0(jkk)) * (zl-gdept_0(jkk+1)) <= 0._wp ) THEN
+                           zi = ( zl - gdept_0(jkk) ) / (gdept_0(jkk+1)-gdept_0(jkk))
+                           zup(jk) = puvd(ji,jj,jkk,1) + ( puvd(ji,jj,jkk+1,1 ) - puvd(ji,jj,jkk,1) ) * zi 
+                           zvp(jk) = puvd(ji,jj,jkk,2) + ( puvd(ji,jj,jkk+1,2 ) - puvd(ji,jj,jkk,2) ) * zi
+                        ENDIF
+                     END DO
+                  ENDIF
+               END DO
+               DO jk = 1, jpkm1           ! apply mask
+                  puvd(ji,jj,jk,1) = zup(jk) * umask(ji,jj,jk)
+                  puvd(ji,jj,jk,2) = zvp(jk) * vmask(ji,jj,jk)
+               END DO
+               puvd(ji,jj,jpk,1) = 0._wp
+               puvd(ji,jj,jpk,2) = 0._wp
+            END DO
+         END DO
+         ! 
+         CALL wrk_dealloc( jpk, zup, zvp )
+         ! 
+      ELSE                                !==   z- or zps- coordinate   ==!
+         !                             
+         puvd(:,:,:,1) = puvd(:,:,:,1) * umask(:,:,:)       ! apply mask
+         puvd(:,:,:,2) = puvd(:,:,:,2) * vmask(:,:,:)
+         !
+         IF( ln_zps ) THEN                ! zps-coordinate (partial steps) interpolation at the last ocean level
+            DO jj = 1, jpj
+               DO ji = 1, jpi
+                  ik = mbkt(ji,jj) 
+                  IF( ik > 1 ) THEN
+                     zl = ( gdept_0(ik) - fsdept_0(ji,jj,ik) ) / ( gdept_0(ik) - gdept_0(ik-1) )
+                     puvd(ji,jj,ik,1) = (1.-zl) * puvd(ji,jj,ik,1) + zl * puvd(ji,jj,ik-1,1)
+                     puvd(ji,jj,ik,2) = (1.-zl) * puvd(ji,jj,ik,2) + zl * puvd(ji,jj,ik-1,2)
+                  ENDIF
+               END DO
+            END DO
+         ENDIF
+         !
+      ENDIF
+      !
+      IF( lwp .AND. kt == nit000 ) THEN   ! control print
+         WRITE(numout,*) ' U current '
+         WRITE(numout,*)
+         WRITE(numout,*)'  level = 1'
+         CALL prihre( puvd(:,:,1    ,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout )
+         WRITE(numout,*)'  level = ', jpk/2
+         CALL prihre( puvd(:,:,jpk/2,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout )
+         WRITE(numout,*)'  level = ', jpkm1
+         CALL prihre( puvd(:,:,jpkm1,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout )
+         WRITE(numout,*)
+         WRITE(numout,*) ' V current '
+         WRITE(numout,*)
+         WRITE(numout,*)'  level = 1'
+         CALL prihre( puvd(:,:,1    ,2), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout )
+         WRITE(numout,*)'  level = ', jpk/2
+         CALL prihre( puvd(:,:,jpk/2,2), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout )
+         WRITE(numout,*)'  level = ', jpkm1
+         CALL prihre( puvd(:,:,jpkm1,2), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout )
+         WRITE(numout,*)
+      ENDIF
+      !
+      IF( .NOT. ln_uvd_dyndmp    ) THEN   !==   deallocate U & V current structure   ==! 
+         !                                !==   (data used only for initialization)  ==!
+         IF(lwp) WRITE(numout,*) 'dta_uvd: deallocate U & V current arrays as they are only used to initialize the run'
+                                   DEALLOCATE( sf_uvd(1)%fnow )     ! U current arrays in the structure
+         IF( sf_uvd(1)%ln_tint )   DEALLOCATE( sf_uvd(1)%fdta )
+                                   DEALLOCATE( sf_uvd(2)%fnow )     ! V current arrays in the structure
+         IF( sf_uvd(2)%ln_tint )   DEALLOCATE( sf_uvd(2)%fdta )
+                                   DEALLOCATE( sf_uvd         )     ! the structure itself
+      ENDIF
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('dta_uvd')
+      !
+   END SUBROUTINE dta_uvd
+
+   !!======================================================================
+END MODULE dtauvd
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90	(revision 4144)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90	(revision 4144)
@@ -0,0 +1,244 @@
+MODULE dyndmp
+   !!======================================================================
+   !!                       ***  MODULE  dyndmp  ***
+   !! Ocean dynamics: internal restoring trend on momentum (U and V current)
+   !!======================================================================
+   !! History :  3.5  ! 2013-08  (D. Calvert)  Original code
+   !!----------------------------------------------------------------------
+
+   !!----------------------------------------------------------------------
+   !!   dyn_dmp_alloc : allocate dyndmp arrays
+   !!   dyn_dmp_init  : namelist read, parameter control and resto coeff.
+   !!   dyn_dmp       : update the momentum trend with the internal damping
+   !!----------------------------------------------------------------------
+   USE oce            ! ocean: variables
+   USE dom_oce        ! ocean: domain variables
+   USE c1d            ! 1D vertical configuration
+   USE trdmod         ! ocean: trends
+   USE tradmp         ! ocean: internal damping
+   USE zdf_oce        ! ocean: vertical physics
+   USE phycst         ! physical constants
+   USE dtauvd         ! data: U & V current
+   USE zdfmxl         ! vertical physics: mixed layer depth
+   USE in_out_manager ! I/O manager
+   USE lib_mpp        ! MPP library
+   USE prtctl         ! Print control
+   USE wrk_nemo       ! Memory allocation
+   USE timing         ! Timing
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   dyn_dmp_init ! routine called by nemogcm.F90
+   PUBLIC   dyn_dmp      ! routine called by step_c1d.F90
+
+   LOGICAL, PUBLIC ::   ln_dyndmp = .TRUE.                             ! Flag for Newtonian damping
+
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  utrdmp    ! damping U current trend (m/s2)
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  vtrdmp    ! damping V current trend (m/s2)
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  resto_uv  ! restoring coeff. on U & V current
+
+   !! * Substitutions
+#  include "domzgr_substitute.h90"
+#  include "vectopt_loop_substitute.h90"
+   !!----------------------------------------------------------------------
+   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
+   !! $Id: dyndmp.F90 3294 2012-01-28 16:44:18Z rblod $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   INTEGER FUNCTION dyn_dmp_alloc()
+      !!----------------------------------------------------------------------
+      !!                ***  FUNCTION dyn_dmp_alloc  ***
+      !!----------------------------------------------------------------------
+      ALLOCATE( utrdmp(jpi,jpj,jpk), vtrdmp(jpi,jpj,jpk), resto_uv(jpi,jpj,jpk), STAT= dyn_dmp_alloc )
+      !
+      IF( lk_mpp            )   CALL mpp_sum ( dyn_dmp_alloc )
+      IF( dyn_dmp_alloc > 0 )   CALL ctl_warn('dyn_dmp_alloc: allocation of arrays failed')
+      !
+   END FUNCTION dyn_dmp_alloc
+
+
+   SUBROUTINE dyn_dmp_init
+      !!----------------------------------------------------------------------
+      !!                  ***  ROUTINE dyn_dmp_init  ***
+      !! 
+      !! ** Purpose :   Initialization for the Newtonian damping 
+      !!
+      !! ** Method  : - read the ln_dyndmp parameter from the namc1d_dyndmp namelist
+      !!              - allocate damping arrays
+      !!              - check the parameters of the namtra_dmp namelist
+      !!              - calculate damping coefficient
+      !!----------------------------------------------------------------------
+      NAMELIST/namc1d_dyndmp/ ln_dyndmp
+      !!----------------------------------------------------------------------
+
+      REWIND ( numnam )                      !==   read namelist namc1d_dyndmp : momentum damping flag     ==!
+      READ   ( numnam, namc1d_dyndmp )       !==   (namelist of namtra_dmp is used for other parameters)   ==!
+
+      IF(lwp) THEN                           ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) 'dyn_dmp_init : U and V current Newtonian damping'
+         WRITE(numout,*) '~~~~~~~~~~~~'
+         WRITE(numout,*) '   Namelist namc1d_dyndmp : Set damping flag'
+         WRITE(numout,*) '      add a damping term or not       ln_dyndmp = ', ln_dyndmp
+         WRITE(numout,*) '   Namelist namtra_dmp    : Set damping parameters'
+         WRITE(numout,*) '      horizontal damping option       nn_hdmp   = ', nn_hdmp
+         WRITE(numout,*) '      mixed layer damping option      nn_zdmp   = ', nn_zdmp, '(non-C1D zoom: forced to 0)'
+         WRITE(numout,*) '      surface time scale (days)       rn_surf   = ', rn_surf
+         WRITE(numout,*) '      bottom time scale (days)        rn_bot    = ', rn_bot
+         WRITE(numout,*) '      depth of transition (meters)    rn_dep    = ', rn_dep
+         WRITE(numout,*) '      create a damping.coeff file     nn_file   = ', nn_file
+         WRITE(numout,*)
+      ENDIF
+
+      IF( ln_dyndmp ) THEN
+         !                                   !==   allocate the data arrays   ==!
+         IF( dyn_dmp_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dyn_dmp_init: unable to allocate arrays' )
+         !
+#if ! defined key_c1d
+         SELECT CASE ( nn_hdmp )             !==   control print of horizontal option   ==!
+         CASE (  -1  )   ;   IF(lwp) WRITE(numout,*) '   momentum damping in the Med & Red seas only'
+         CASE ( 1:90 )   ;   IF(lwp) WRITE(numout,*) '   momentum damping poleward of', nn_hdmp, ' degrees'
+         CASE DEFAULT
+            WRITE(ctmp1,*) '          bad flag value for nn_hdmp = ', nn_hdmp
+            CALL ctl_stop(ctmp1)
+         END SELECT
+         !
+#endif
+         SELECT CASE ( nn_zdmp )             !==   control print of vertical option   ==!
+         CASE ( 0    )   ;   IF(lwp) WRITE(numout,*) '   momentum damping throughout the water column'
+         CASE ( 1    )   ;   IF(lwp) WRITE(numout,*) '   no momentum damping in the turbocline (avt > 5 cm2/s)'
+         CASE ( 2    )   ;   IF(lwp) WRITE(numout,*) '   no momentum damping in the mixed layer'
+         CASE DEFAULT
+            WRITE(ctmp1,*) '          bad flag value for nn_zdmp = ', nn_zdmp
+            CALL ctl_stop(ctmp1)
+         END SELECT
+         !
+         IF( .NOT. ln_uvd_dyndmp ) THEN      ! force the initialization of U & V current data for damping
+            CALL ctl_warn( 'dyn_dmp_init: U & V current read data not initialized, we force ln_uvd_dyndmp=T' )
+            CALL dta_uvd_init( ld_dyndmp=ln_dyndmp )
+         ENDIF
+         !
+         utrdmp(:,:,:) = 0._wp               ! internal damping trends
+         vtrdmp(:,:,:) = 0._wp
+         !                                   !==   Damping coefficients calculation:                           ==!
+         !                                   !==   use tradmp.F90 subroutines dtacof, dtacof_zoom and cofdis   ==!
+         !                                   !!!   NOTE: these need to be altered for use in this module if 
+         !                                   !!!       they are to be used outside the C1D context 
+         !                                   !!!       (use of U,V grid variables)
+         IF( lzoom .AND. .NOT. lk_c1d ) THEN   ;   CALL dtacof_zoom( resto_uv )
+         ELSE               ;   CALL dtacof( nn_hdmp, rn_surf, rn_bot, rn_dep, nn_file, 'DYN', resto_uv )
+         ENDIF
+         !
+      ENDIF
+      !
+   END SUBROUTINE dyn_dmp_init
+
+
+   SUBROUTINE dyn_dmp( kt )
+      !!----------------------------------------------------------------------
+      !!                   ***  ROUTINE dyn_dmp  ***
+      !!                  
+      !! ** Purpose :   Compute the momentum trends due to a newtonian damping
+      !!      of the ocean velocities towards the given data and add it to the 
+      !!      general momentum trends.
+      !!
+      !! ** Method  :   Compute Newtonian damping towards u_dta and v_dta 
+      !!      and add to the general momentum trends:
+      !!                     ua = ua + resto_uv * (u_dta - ub)
+      !!                     va = va + resto_uv * (v_dta - vb)
+      !!      The trend is computed either throughout the water column
+      !!      (nn_zdmp=0), where the vertical mixing is weak (nn_zdmp=1) or
+      !!      below the well mixed layer (nn_zdmp=2)
+      !!
+      !! ** Action  : - (ua,va)   momentum trends updated with the damping trend
+      !!----------------------------------------------------------------------
+      !
+      INTEGER, INTENT(in) ::   kt                        ! ocean time-step index
+      !!
+      INTEGER  ::   ji, jj, jk                           ! dummy loop indices
+      REAL(wp) ::   zua, zva                             ! local scalars
+      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zuv_dta  ! Read in data 
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start( 'dyn_dmp' )
+      !
+      CALL wrk_alloc( jpi, jpj, jpk, 2,  zuv_dta )
+      !
+      !                           !==   read and interpolate U & V current data at kt   ==!
+      CALL dta_uvd( kt, zuv_dta ) !!! NOTE: This subroutine must be altered for use outside
+                                  !!!       the C1D context (use of U,V grid variables)
+      !
+      SELECT CASE ( nn_zdmp )     !==   Calculate/add Newtonian damping to the momentum trend   ==!
+      !
+      CASE( 0 )                   ! Newtonian damping throughout the water column
+         DO jk = 1, jpkm1
+            DO jj = 2, jpjm1
+               DO ji = fs_2, fs_jpim1   ! vector opt.
+                  zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) )
+                  zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) )
+                  ua(ji,jj,jk) = ua(ji,jj,jk) + zua
+                  va(ji,jj,jk) = va(ji,jj,jk) + zva
+                  utrdmp(ji,jj,jk) = zua           ! save the trends
+                  vtrdmp(ji,jj,jk) = zva      
+               END DO
+            END DO
+         END DO
+         !
+      CASE ( 1 )                  ! no damping above the turbocline (avt > 5 cm2/s)
+         DO jk = 1, jpkm1
+            DO jj = 2, jpjm1
+               DO ji = fs_2, fs_jpim1   ! vector opt.
+                  IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN
+                     zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) )
+                     zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) )
+                  ELSE
+                     zua = 0._wp
+                     zva = 0._wp  
+                  ENDIF
+                  ua(ji,jj,jk) = ua(ji,jj,jk) + zua
+                  va(ji,jj,jk) = va(ji,jj,jk) + zva
+                  utrdmp(ji,jj,jk) = zua           ! save the trends
+                  vtrdmp(ji,jj,jk) = zva
+               END DO
+            END DO
+         END DO
+         !
+      CASE ( 2 )                  ! no damping in the mixed layer
+         DO jk = 1, jpkm1
+            DO jj = 2, jpjm1
+               DO ji = fs_2, fs_jpim1   ! vector opt.
+                  IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN
+                     zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) )
+                     zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) )
+                  ELSE
+                     zua = 0._wp
+                     zva = 0._wp  
+                  ENDIF
+                  ua(ji,jj,jk) = ua(ji,jj,jk) + zua
+                  va(ji,jj,jk) = va(ji,jj,jk) + zva
+                  utrdmp(ji,jj,jk) = zua           ! save the trends
+                  vtrdmp(ji,jj,jk) = zva
+               END DO
+            END DO
+         END DO
+         !
+      END SELECT
+      !
+      !                           ! Trend diagnostic
+      IF( l_trddyn )   CALL trd_mod( utrdmp, vtrdmp, jpdyn_trd_dat, 'DYN', kt )
+      !
+      !                           ! Control print
+      IF( ln_ctl   )   CALL prt_ctl( tab3d_1=ua(:,:,:), clinfo1=' dmp  - Ua: ', mask1=umask,   &
+         &                           tab3d_2=va(:,:,:), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      !
+      CALL wrk_dealloc( jpi, jpj, jpk, 2,  zuv_dta )
+      !
+      IF( nn_timing == 1 )  CALL timing_stop( 'dyn_dmp')
+      !
+   END SUBROUTINE dyn_dmp
+
+   !!======================================================================
+END MODULE dyndmp
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90	(revision 4144)
@@ -13,10 +13,11 @@
    !!   stp_c1d        : NEMO system time-stepping in c1d case
    !!----------------------------------------------------------------------
-   USE step_oce         ! time stepping definition modules 
+   USE step_oce        ! time stepping definition modules 
 #if defined key_top
-   USE trcstp           ! passive tracer time-stepping      (trc_stp routine)
+   USE trcstp          ! passive tracer time-stepping      (trc_stp routine)
 #endif
    USE dyncor_c1d      ! Coriolis term (c1d case)         (dyn_cor_1d     )
    USE dynnxt_c1d      ! time-stepping                    (dyn_nxt routine)
+   USE dyndmp          ! U & V momentum damping           (dyn_dmp routine)
    USE restart         ! restart 
 
@@ -124,4 +125,5 @@
                              CALL tra_sbc    ( kstp )        ! surface boundary condition
       IF( ln_traqsr      )   CALL tra_qsr    ( kstp )        ! penetrative solar radiation qsr
+      IF( ln_tradmp      )   CALL tra_dmp    ( kstp )        ! internal damping trends- tracers
       IF( lk_zdfkpp      )   CALL tra_kpp    ( kstp )        ! KPP non-local tracer fluxes
                              CALL tra_zdf    ( kstp )        ! vertical mixing
@@ -136,4 +138,5 @@
                                va(:,:,:) = 0.e0
 
+      IF( ln_dyndmp      )     CALL dyn_dmp    ( kstp )       ! internal damping trends- momentum
                                CALL dyn_cor_c1d( kstp )       ! vorticity term including Coriolis
                                CALL dyn_zdf    ( kstp )       ! vertical diffusion
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DOM/domcfg.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DOM/domcfg.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DOM/domcfg.F90	(revision 4144)
@@ -16,4 +16,6 @@
    USE lib_mpp         ! distributed memory computing library
    USE timing          ! Timing
+   USE c1d             ! 1D configuration
+   USE domc1d          ! 1D configuration: column location
 
    IMPLICIT NONE
@@ -80,4 +82,7 @@
       !!----------------------------------------------------------------------
 
+      !                              ! recalculate jpizoom/jpjzoom given lat/lon
+      IF( lk_c1d )  CALL dom_c1d( rn_lat, rn_lon )
+      !
       !                        ! ============== !
       !                        !  Local domain  ! 
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90	(revision 4144)
@@ -26,4 +26,5 @@
    USE oce             ! ocean dynamics and active tracers 
    USE dom_oce         ! ocean space and time domain 
+   USE c1d             ! 1D vertical configuration
    USE daymod          ! calendar
    USE eosbn2          ! eq. of state, Brunt Vaisala frequency (eos     routine)
@@ -32,4 +33,5 @@
    USE phycst          ! physical constants
    USE dtatsd          ! data temperature and salinity   (dta_tsd routine)
+   USE dtauvd          ! data: U & V current             (dta_uvd routine)
    USE in_out_manager  ! I/O manager
    USE iom             ! I/O library
@@ -70,4 +72,5 @@
       ! - ML - needed for initialization of e3t_b
       INTEGER  ::  jk     ! dummy loop indice
+      REAL(wp), POINTER, DIMENSION(:,:,:,:)  ::  zuvd    ! U & V data workspace
       !!----------------------------------------------------------------------
       !
@@ -80,4 +83,5 @@
 
       CALL dta_tsd_init                       ! Initialisation of T & S input data
+      IF( lk_c1d ) CALL dta_uvd_init          ! Initialization of U & V input data
 
       rhd  (:,:,:  ) = 0.e0
@@ -111,10 +115,19 @@
          ELSEIF( cp_cfg == 'gyre' ) THEN         
             CALL istate_gyre                     ! GYRE  configuration : start from pre-defined T-S fields
-         ELSEIF( ln_tsd_init      ) THEN         ! Initial T-S fields read in files
-            CALL dta_tsd( nit000, tsb )                  ! read 3D T and S data at nit000
-            tsn(:,:,:,:) = tsb(:,:,:,:)
-            !
-         ELSE                                    ! Initial T-S fields defined analytically
-            CALL istate_t_s
+         ELSE                                    ! Initial T-S, U-V fields read in files
+            IF ( ln_tsd_init ) THEN              ! read 3D T and S data at nit000
+               CALL dta_tsd( nit000, tsb )  
+               tsn(:,:,:,:) = tsb(:,:,:,:)
+               !
+            ELSE                                 ! Initial T-S fields defined analytically
+               CALL istate_t_s
+            ENDIF
+            IF ( ln_uvd_init .AND. lk_c1d ) THEN ! read 3D U and V data at nit000
+               CALL wrk_alloc( jpi, jpj, jpk, 2, zuvd )
+               CALL dta_uvd( nit000, zuvd )
+               ub(:,:,:) = zuvd(:,:,:,1) ;  un(:,:,:) = ub(:,:,:)
+               vb(:,:,:) = zuvd(:,:,:,2) ;  vn(:,:,:) = vb(:,:,:)
+               CALL wrk_dealloc( jpi, jpj, jpk, 2, zuvd )
+            ENDIF
          ENDIF
          !
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90	(revision 4144)
@@ -14,4 +14,5 @@
    USE oce            ! ocean dynamics and tracers variables
    USE dom_oce        ! ocean space and time domain variables
+   USE c1d            ! 1D vertical configuration
    USE phycst         ! physical constants
    USE sbc_oce        ! surface boundary condition: ocean
@@ -220,5 +221,5 @@
       IF(lk_dynspg_flt)   ioptio = ioptio + 1
       !
-      IF( ( ioptio > 1 .AND. .NOT. lk_esopa ) .OR. ioptio == 0 )   &
+      IF( ( ioptio > 1 .AND. .NOT. lk_esopa ) .OR. ( ioptio == 0 .AND. .NOT. lk_c1d ) )   &
            &   CALL ctl_stop( ' Choose only one surface pressure gradient scheme with a key cpp' )
       !
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90	(revision 4144)
@@ -463,17 +463,35 @@
    !!                   INTERFACE iom_get
    !!----------------------------------------------------------------------
-   SUBROUTINE iom_g0d( kiomid, cdvar, pvar )
+   SUBROUTINE iom_g0d( kiomid, cdvar, pvar, ktime )
       INTEGER         , INTENT(in   )                 ::   kiomid    ! Identifier of the file
       CHARACTER(len=*), INTENT(in   )                 ::   cdvar     ! Name of the variable
       REAL(wp)        , INTENT(  out)                 ::   pvar      ! read field
-      !
-      INTEGER               :: idvar   ! variable id
+      INTEGER         , INTENT(in   ),     OPTIONAL   ::   ktime     ! record number
+      !
+      INTEGER                                         ::   idvar     ! variable id
+      INTEGER                                         ::   idmspc    ! number of spatial dimensions
+      INTEGER         , DIMENSION(1)                  ::   itime     ! record number
+      CHARACTER(LEN=100)                              ::   clinfo    ! info character
+      CHARACTER(LEN=100)                              ::   clname    ! file name
+      CHARACTER(LEN=1)                                ::   cldmspc   !
+      !
+      itime = 1
+      IF( PRESENT(ktime) ) itime = ktime
+      !
+      clname = iom_file(kiomid)%name
+      clinfo = '          iom_g0d, file: '//trim(clname)//', var: '//trim(cdvar)
       !
       IF( kiomid > 0 ) THEN
          idvar = iom_varid( kiomid, cdvar )
          IF( iom_file(kiomid)%nfid > 0 .AND. idvar > 0 ) THEN
+            idmspc = iom_file ( kiomid )%ndims( idvar )
+            IF( iom_file(kiomid)%luld(idvar) )  idmspc = idmspc - 1
+            WRITE(cldmspc , fmt='(i1)') idmspc
+            IF( idmspc > 0 )  CALL ctl_stop( TRIM(clinfo), 'When reading to a 0D array, we do not accept data', &
+                                 &                         'with 1 or more spatial dimensions: '//cldmspc//' were found.' , &
+                                 &                         'Use ncwa -a to suppress the unnecessary dimensions' )
             SELECT CASE (iom_file(kiomid)%iolib)
-            CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, pvar )
-            CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar )
+            CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, pvar, itime )
+            CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar, itime )
             CASE (jprstdimg)   ;   CALL iom_rstdimg_get( kiomid, idvar, pvar )
             CASE DEFAULT    
@@ -640,5 +658,5 @@
                ELSE
                   CALL ctl_stop( TRIM(clinfo), 'To keep iom lisibility, when reading a '//clrankpv//'D array,'         ,   &
-                     &                         'we do not accept data with more than '//cldmspc//' spatial dimension',   &
+                     &                         'we do not accept data with '//cldmspc//' spatial dimensions',   &
                      &                         'Use ncwa -a to suppress the unnecessary dimensions' )
                ENDIF
@@ -752,5 +770,5 @@
 
          IF( istop == nstop ) THEN   ! no additional errors until this point...
-            IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i4,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name)
+            IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name)
           
             !--- overlap areas and extra hallows (mpp)
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90	(revision 4144)
@@ -170,4 +170,5 @@
             iom_file(kiomid)%cn_var(kiv) = TRIM(cdvar)
             iom_file(kiomid)%ndims(kiv)  = i_nvd
+            iom_file(kiomid)%dimsz(:,kiv) = 0   ! reset dimsz in case previously used
             CALL flioinqv( ioipslid, cdvar, ll_fnd,   &
                   &           len_dims = iom_file(kiomid)%dimsz(1:i_nvd,kiv), &   ! dimensions size
@@ -210,5 +211,5 @@
 
 
-   SUBROUTINE iom_ioipsl_g0d( kiomid, kvid, pvar )
+   SUBROUTINE iom_ioipsl_g0d( kiomid, kvid, pvar, kstart )
       !!-----------------------------------------------------------------------
       !!                  ***  ROUTINE  iom_ioipsl_g0d  ***
@@ -216,9 +217,10 @@
       !! ** Purpose : read a scalar with IOIPSL (only fliocom module)
       !!-----------------------------------------------------------------------
-      INTEGER , INTENT(in   ) ::   kiomid    ! Identifier of the file
-      INTEGER , INTENT(in   ) ::   kvid      ! variable id
-      REAL(wp), INTENT(  out) ::   pvar      ! read field
-      !
-      CALL fliogetv( iom_file(kiomid)%nfid, TRIM(iom_file(kiomid)%cn_var(kvid)), pvar )
+      INTEGER ,               INTENT(in   )            ::   kiomid    ! Identifier of the file
+      INTEGER ,               INTENT(in   )            ::   kvid      ! variable id
+      REAL(wp),               INTENT(  out)            ::   pvar      ! read field
+      INTEGER , DIMENSION(1), INTENT(in   ), OPTIONAL  ::   kstart    ! start position of the reading in each axis
+      !
+      CALL fliogetv( iom_file(kiomid)%nfid, TRIM(iom_file(kiomid)%cn_var(kvid)), pvar, kstart )
       ! 
    END SUBROUTINE iom_ioipsl_g0d
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90	(revision 4144)
@@ -216,4 +216,5 @@
          CALL iom_nf90_check(NF90_Inquire_Variable(if90id, ivarid, dimids = idimid(1:i_nvd)), clinfo)   ! dimensions ids
          iom_file(kiomid)%luld(kiv) = .FALSE.   ! default value
+         iom_file(kiomid)%dimsz(:,kiv) = 0   ! reset dimsz in case previously used
          DO ji = 1, i_nvd                       ! dimensions size
             CALL iom_nf90_check(NF90_Inquire_Dimension(if90id, idimid(ji), len = iom_file(kiomid)%dimsz(ji,kiv)), clinfo)   
@@ -249,5 +250,5 @@
 
 
-   SUBROUTINE iom_nf90_g0d( kiomid, kvid, pvar )
+   SUBROUTINE iom_nf90_g0d( kiomid, kvid, pvar, kstart )
       !!-----------------------------------------------------------------------
       !!                  ***  ROUTINE  iom_nf90_g0d  ***
@@ -255,12 +256,13 @@
       !! ** Purpose : read a scalar with NF90
       !!-----------------------------------------------------------------------
-      INTEGER , INTENT(in   ) ::   kiomid   ! Identifier of the file
-      INTEGER , INTENT(in   ) ::   kvid     ! variable id
-      REAL(wp), INTENT(  out) ::   pvar     ! read field
+      INTEGER ,               INTENT(in   )            ::   kiomid   ! Identifier of the file
+      INTEGER ,               INTENT(in   )            ::   kvid     ! variable id
+      REAL(wp),               INTENT(  out)            ::   pvar     ! read field
+      INTEGER , DIMENSION(1), INTENT(in   ), OPTIONAL  ::   kstart   ! start position of the reading in each axis
       !
       CHARACTER(LEN=100)      ::   clinfo   ! info character
       !---------------------------------------------------------------------
       clinfo = 'iom_nf90_g0d , file: '//TRIM(iom_file(kiomid)%name)//', var: '//TRIM(iom_file(kiomid)%cn_var(kvid))
-      CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar), clinfo )
+      CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar, start = kstart), clinfo )
       ! 
    END SUBROUTINE iom_nf90_g0d
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90	(revision 4144)
@@ -21,4 +21,5 @@
    USE lib_mpp         ! MPP library
    USE wrk_nemo        ! work arrays
+   USE lbclnk          ! ocean lateral boundary conditions (C1D case)
    USE ioipsl, ONLY :   ymds2ju, ju2ymds   ! for calendar
 
@@ -31,5 +32,5 @@
    TYPE, PUBLIC ::   FLD_N      !: Namelist field informations
       CHARACTER(len = 256) ::   clname      ! generic name of the NetCDF flux file
-      INTEGER              ::   nfreqh      ! frequency of each flux file
+      REAL(wp)             ::   nfreqh      ! frequency of each flux file
       CHARACTER(len = 34)  ::   clvar       ! generic name of the variable in the NetCDF flux file
       LOGICAL              ::   ln_tint     ! time interpolation or not (T/F)
@@ -45,5 +46,5 @@
       CHARACTER(len = 256)            ::   clrootname   ! generic name of the NetCDF file
       CHARACTER(len = 256)            ::   clname       ! current name of the NetCDF file
-      INTEGER                         ::   nfreqh       ! frequency of each flux file
+      REAL(wp)                        ::   nfreqh       ! frequency of each flux file
       CHARACTER(len = 34)             ::   clvar        ! generic name of the variable in the NetCDF flux file
       LOGICAL                         ::   ln_tint      ! time interpolation or not (T/F)
@@ -193,5 +194,5 @@
                   sd(jf)%fdta(:,:,:,1) = sd(jf)%fdta(:,:,:,2)   ! re-swap before record field
                   sd(jf)%nrec_b(1) = sd(jf)%nrec_a(1)           ! update before record informations
-                  sd(jf)%nrec_b(2) = sd(jf)%nrec_a(2) - sd(jf)%nfreqh * 3600  ! assume freq to be in hours in this case
+                  sd(jf)%nrec_b(2) = sd(jf)%nrec_a(2) - NINT( sd(jf)%nfreqh * 3600 )  ! assume freq to be in hours in this case
                   sd(jf)%rotn(1)   = sd(jf)%rotn(2)             ! update before rotate informations
                   sd(jf)%nrec_a(1) = itmp                       ! move back to after record 
@@ -211,5 +212,5 @@
                      sd(jf)%fdta(:,:,:,1) = sd(jf)%fdta(:,:,:,2)   ! re-swap before record field
                      sd(jf)%nrec_b(1) = sd(jf)%nrec_a(1)           ! update before record informations
-                     sd(jf)%nrec_b(2) = sd(jf)%nrec_a(2) - sd(jf)%nfreqh * 3600  ! assume freq to be in hours in this case
+                     sd(jf)%nrec_b(2) = sd(jf)%nrec_a(2) - NINT( sd(jf)%nfreqh * 3600 )  ! assume freq to be in hours in this case
                      sd(jf)%rotn(1)   = sd(jf)%rotn(2)             ! update before rotate informations
                      sd(jf)%nrec_a(1) = sd(jf)%nrec_a(1) + 1       ! move back to after record
@@ -264,6 +265,6 @@
             IF( sd(jf)%ln_tint ) THEN              ! temporal interpolation
                IF(lwp .AND. kt - nit000 <= 100 ) THEN 
-                  clfmt = "('fld_read: var ', a, ' kt = ', i8, ' (', f7.2,' days), Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," //   &
-                     &    "', records b/a: ', i4.4, '/', i4.4, ' (days ', f7.2,'/', f7.2, ')')"
+                  clfmt = "('fld_read: var ', a, ' kt = ', i8, ' (', f9.4,' days), Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," //   &
+                     &    "', records b/a: ', i6.4, '/', i6.4, ' (days ', f9.4,'/', f9.4, ')')"
                   WRITE(numout, clfmt)  TRIM( sd(jf)%clvar ), kt, REAL(isecsbc,wp)/rday, nyear, nmonth, nday,   &            
                      & sd(jf)%nrec_b(1), sd(jf)%nrec_a(1), REAL(sd(jf)%nrec_b(2),wp)/rday, REAL(sd(jf)%nrec_a(2),wp)/rday
@@ -277,6 +278,6 @@
             ELSE   ! nothing to do...
                IF(lwp .AND. kt - nit000 <= 100 ) THEN
-                  clfmt = "('fld_read: var ', a, ' kt = ', i8,' (', f7.2,' days), Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," //   &
-                     &    "', record: ', i4.4, ' (days ', f7.2, ' <-> ', f7.2, ')')"
+                  clfmt = "('fld_read: var ', a, ' kt = ', i8,' (', f9.4,' days), Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," //   &
+                     &    "', record: ', i6.4, ' (days ', f9.4, ' <-> ', f9.4, ')')"
                   WRITE(numout, clfmt) TRIM(sd(jf)%clvar), kt, REAL(isecsbc,wp)/rday, nyear, nmonth, nday,    &
                      &                 sd(jf)%nrec_a(1), REAL(sd(jf)%nrec_b(2),wp)/rday, REAL(sd(jf)%nrec_a(2),wp)/rday
@@ -349,18 +350,18 @@
             ELSE                                ! higher frequency mean (in hours) 
                IF    ( sdjf%cltype      == 'monthly' ) THEN   ! monthly file
-                  sdjf%nrec_a(1) = 24 * nmonth_len(nmonth-1) / sdjf%nfreqh                 ! last record of previous month
+                  sdjf%nrec_a(1) = NINT( 24 * nmonth_len(nmonth-1) / sdjf%nfreqh )         ! last record of previous month
                   llprevmth = .TRUE.                                                       ! use previous month file?
                   llprevyr  = llprevmth .AND. nmonth == 1                                  ! use previous year  file?
                ELSEIF( sdjf%cltype(1:4) == 'week'    ) THEN   ! weekly file
                   llprevweek = .TRUE.                                                      ! use previous week  file?
-                  sdjf%nrec_a(1) = 24 * 7 / sdjf%nfreqh                                    ! last record of previous week
+                  sdjf%nrec_a(1) = NINT( 24 * 7 / sdjf%nfreqh )                            ! last record of previous week
                   isec_week = NINT(rday) * 7                                               ! add a shift toward previous week
                ELSEIF( sdjf%cltype      == 'daily'   ) THEN   ! daily file
-                  sdjf%nrec_a(1) = 24 / sdjf%nfreqh                                        ! last record of previous day
+                  sdjf%nrec_a(1) = NINT( 24 / sdjf%nfreqh )                                ! last record of previous day
                   llprevday = .TRUE.                                                       ! use previous day   file?
                   llprevmth = llprevday .AND. nday   == 1                                  ! use previous month file?
                   llprevyr  = llprevmth .AND. nmonth == 1                                  ! use previous year  file?
                ELSE                                           ! yearly file
-                  sdjf%nrec_a(1) = 24 * nyear_len(0) / sdjf%nfreqh                         ! last record of previous year 
+                  sdjf%nrec_a(1) = NINT( 24 * nyear_len(0) / sdjf%nfreqh )                 ! last record of previous year 
                   llprevyr = .NOT. sdjf%ln_clim                                            ! use previous year  file?
                ENDIF
@@ -401,5 +402,5 @@
          CALL fld_get( sdjf, map )
 
-         clfmt = "('fld_init : time-interpolation for ', a, ' read previous record = ', i4, ' at time = ', f7.2, ' days')"
+         clfmt = "('fld_init : time-interpolation for ', a, ' read previous record = ', i6, ' at time = ', f7.2, ' days')"
          IF(lwp) WRITE(numout, clfmt) TRIM(sdjf%clvar), sdjf%nrec_a(1), REAL(sdjf%nrec_a(2),wp)/rday
 
@@ -511,5 +512,5 @@
          !                                   ! ================================ !
          !
-         ifreq_sec = sdjf%nfreqh * 3600                                                 ! frequency mean (in seconds)
+         ifreq_sec = NINT( sdjf%nfreqh * 3600 )                                         ! frequency mean (in seconds)
          IF( sdjf%cltype(1:4) == 'week' )   isec_week = ksec_week( sdjf%cltype(6:8) )   ! since the first day of the current week
          ! number of second since the beginning of the file
@@ -581,4 +582,7 @@
       INTEGER                  ::   iw     ! index into wgts array
       INTEGER                  ::   ipdom  ! index of the domain
+      INTEGER                  ::   idvar  ! variable ID
+      INTEGER                  ::   idmspc ! number of spatial dimensions
+      LOGICAL                  ::   lmoor  ! C1D case: point data
       !!---------------------------------------------------------------------
       !
@@ -598,12 +602,39 @@
          ELSE                                  ;  ipdom = jpdom_unknown
          ENDIF
+         ! C1D case: If product of spatial dimensions == ipk, then x,y are of
+         ! size 1 (point/mooring data): this must be read onto the central grid point
+         idvar  = iom_varid( sdjf%num, sdjf%clvar )
+         idmspc = iom_file( sdjf%num )%ndims( idvar )
+         IF( iom_file( sdjf%num )%luld( idvar ) )   idmspc = idmspc - 1
+         lmoor  = (idmspc == 0 .OR. PRODUCT( iom_file( sdjf%num )%dimsz( 1:MAX(idmspc,1) ,idvar ) ) == ipk)
+         !
          SELECT CASE( ipk )
          CASE(1)
-            IF( sdjf%ln_tint ) THEN   ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fdta(:,:,1,2), sdjf%nrec_a(1) )
-            ELSE                      ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fnow(:,:,1  ), sdjf%nrec_a(1) )
+            IF( lk_c1d .AND. lmoor ) THEN
+               IF( sdjf%ln_tint ) THEN
+                  CALL iom_get( sdjf%num, sdjf%clvar, sdjf%fdta(2,2,1,2), sdjf%nrec_a(1) )
+                  CALL lbc_lnk( sdjf%fdta(:,:,1,2),'Z',1. )
+               ELSE
+                  CALL iom_get( sdjf%num, sdjf%clvar, sdjf%fnow(2,2,1  ), sdjf%nrec_a(1) )
+                  CALL lbc_lnk( sdjf%fnow(:,:,1  ),'Z',1. )
+               ENDIF
+            ELSE
+               IF( sdjf%ln_tint ) THEN   ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fdta(:,:,1,2), sdjf%nrec_a(1) )
+               ELSE                      ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fnow(:,:,1  ), sdjf%nrec_a(1) )
+               ENDIF
             ENDIF
          CASE DEFAULT
-            IF( sdjf%ln_tint ) THEN   ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fdta(:,:,:,2), sdjf%nrec_a(1) )
-            ELSE                      ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fnow(:,:,:  ), sdjf%nrec_a(1) )
+            IF (lk_c1d .AND. lmoor ) THEN
+               IF( sdjf%ln_tint ) THEN
+                  CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, sdjf%fdta(2,2,:,2), sdjf%nrec_a(1) )
+                  CALL lbc_lnk( sdjf%fdta(:,:,:,2),'Z',1. )
+               ELSE
+                  CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, sdjf%fnow(2,2,:  ), sdjf%nrec_a(1) )
+                  CALL lbc_lnk( sdjf%fnow(:,:,:  ),'Z',1. )
+               ENDIF
+            ELSE
+               IF( sdjf%ln_tint ) THEN   ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fdta(:,:,:,2), sdjf%nrec_a(1) )
+               ELSE                      ;   CALL iom_get( sdjf%num, ipdom, sdjf%clvar, sdjf%fnow(:,:,:  ), sdjf%nrec_a(1) )
+               ENDIF
             ENDIF
          END SELECT
@@ -817,8 +848,8 @@
             ENDIF
          ELSE                                                                       ! higher frequency mean (in hours)
-            IF(     sdjf%cltype      == 'monthly' ) THEN   ;   sdjf%nreclast = 24 * imonth_len / sdjf%nfreqh 
-            ELSEIF( sdjf%cltype(1:4) == 'week'    ) THEN   ;   sdjf%nreclast = 24 * 7          / sdjf%nfreqh
-            ELSEIF( sdjf%cltype      == 'daily'   ) THEN   ;   sdjf%nreclast = 24              / sdjf%nfreqh
-            ELSE                                           ;   sdjf%nreclast = 24 * iyear_len  / sdjf%nfreqh 
+            IF(     sdjf%cltype      == 'monthly' ) THEN   ;   sdjf%nreclast = NINT( 24 * imonth_len / sdjf%nfreqh )
+            ELSEIF( sdjf%cltype(1:4) == 'week'    ) THEN   ;   sdjf%nreclast = NINT( 24 * 7          / sdjf%nfreqh )
+            ELSEIF( sdjf%cltype      == 'daily'   ) THEN   ;   sdjf%nreclast = NINT( 24              / sdjf%nfreqh )
+            ELSE                                           ;   sdjf%nreclast = NINT( 24 * iyear_len  / sdjf%nfreqh )
             ENDIF
          ENDIF
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 4144)
@@ -73,5 +73,8 @@
 
    !                                  !!* Namelist namsbc_core : CORE bulk parameters
-   LOGICAL  ::   ln_2m     = .FALSE.   ! logical flag for height of air temp. and hum
+   LOGICAL  ::   ln_2m     = .FALSE.   ! logical flag for case where z(q,t) = 2m and z(u) = 10m
+   LOGICAL  ::   ln_bulk2z = .FALSE.   ! logical flag for case where z(q,t) and z(u) are specified in the namelist
+   REAL(wp) ::   rn_zqt    = 10.       ! z(q,t) : height of humidity and temperature measurements
+   REAL(wp) ::   rn_zu     = 10.       ! z(u)   : height of wind measurements
    LOGICAL  ::   ln_taudif = .FALSE.   ! logical flag to use the "mean of stress module - module of mean stress" data
    REAL(wp) ::   rn_pfac   = 1.        ! multiplication factor for precipitation
@@ -129,5 +132,6 @@
       NAMELIST/namsbc_core/ cn_dir , ln_2m  , ln_taudif, rn_pfac,           &
          &                  sn_wndi, sn_wndj, sn_humi  , sn_qsr ,           &
-         &                  sn_qlw , sn_tair, sn_prec  , sn_snow, sn_tdif
+         &                  sn_qlw , sn_tair, sn_prec  , sn_snow,           &
+         &                  sn_tdif, rn_zqt , ln_bulk2z, rn_zu
       !!---------------------------------------------------------------------
 
@@ -319,4 +323,18 @@
             &                      Cd    , Ch              , Ce  ,   &
             &                      zt_zu , zq_zu                   )
+      ELSE IF( ln_bulk2z ) THEN
+         !! If the height of the air temp./spec. hum. and wind are to be specified by hand :
+         IF( rn_zqt == rn_zu ) THEN
+            !! If air temp. and spec. hum. are at the same height as wind :
+            CALL TURB_CORE_1Z( rn_zu, zst   , sf(jp_tair)%fnow(:,:,1),       &
+               &                      zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, &
+               &                      Cd    , Ch                     , Ce  )
+         ELSE
+            !! If air temp. and spec. hum. are at a different height to wind :
+            CALL TURB_CORE_2Z(rn_zqt, rn_zu , zst   , sf(jp_tair)%fnow,         &
+               &                              zqsatw, sf(jp_humi)%fnow, wndm,   &
+               &                              Cd    , Ch              , Ce  ,   &
+               &                              zt_zu , zq_zu                 )
+         ENDIF
       ELSE
          !! If air temp. and spec. hum. are given at same height than wind (10m) :
@@ -363,6 +381,6 @@
       !  Turbulent fluxes over ocean
       ! -----------------------------
-      IF( ln_2m ) THEN
-         ! Values of temp. and hum. adjusted to 10m must be used instead of 2m values
+      IF( ln_2m .OR. ( ln_bulk2z .AND. rn_zqt /= rn_zu ) ) THEN
+         ! Values of temp. and hum. adjusted to height of wind must be used
          zevap(:,:) = MAX( 0.e0, rhoa    *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * wndm(:,:) )   ! Evaporation
          zqsb (:,:) =            rhoa*cpa*Ch(:,:)*( zst   (:,:) - zt_zu(:,:) ) * wndm(:,:)     ! Sensible Heat
@@ -786,6 +804,6 @@
       !!      Momentum, Latent and sensible heat exchange coefficients
       !!      Caution: this procedure should only be used in cases when air
-      !!      temperature (T_air) and air specific humidity (q_air) are at 2m
-      !!      whereas wind (dU) is at 10m.
+      !!      temperature (T_air) and air specific humidity (q_air) are at a
+      !!      different height to wind (dU).
       !!
       !! References :   Large & Yeager, 2004 : ???
@@ -805,5 +823,5 @@
 
       INTEGER :: j_itt
-      INTEGER , PARAMETER :: nb_itt = 3              ! number of itterations
+      INTEGER , PARAMETER :: nb_itt = 5              ! number of itterations
       REAL(wp), PARAMETER ::   grav   = 9.8          ! gravity                       
       REAL(wp), PARAMETER ::   kappa  = 0.4          ! von Karman's constant
@@ -902,5 +920,5 @@
            !!
            !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) :
-           xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)
+           xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)   ! L & Y eq. (10a)
            Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd)
          ENDIF
@@ -908,8 +926,8 @@
          xlogt = log(zu/10.) - zpsi_hu
          !!
-         xct = 1. + Ch_n10*xlogt/kappa/sqrt_Cd_n10
+         xct = 1. + Ch_n10*xlogt/kappa/sqrt_Cd_n10               ! L & Y eq. (10b)
          Ch  = Ch_n10*sqrt_Cd/sqrt_Cd_n10/xct
          !!
-         xct = 1. + Ce_n10*xlogt/kappa/sqrt_Cd_n10
+         xct = 1. + Ce_n10*xlogt/kappa/sqrt_Cd_n10               ! L & Y eq. (10c)
          Ce  = Ce_n10*sqrt_Cd/sqrt_Cd_n10/xct
          !!
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90	(revision 4144)
@@ -27,4 +27,5 @@
    USE oce            ! ocean: variables
    USE dom_oce        ! ocean: domain variables
+   USE c1d            ! 1D vertical configuration
    USE trdmod_oce     ! ocean: trend variables
    USE trdtra         ! active tracers: trends
@@ -44,15 +45,15 @@
    PUBLIC   tra_dmp      ! routine called by step.F90
    PUBLIC   tra_dmp_init ! routine called by opa.F90
-   PUBLIC   dtacof       ! routine called by in both tradmp.F90 and trcdmp.F90
-   PUBLIC   dtacof_zoom  ! routine called by in both tradmp.F90 and trcdmp.F90
+   PUBLIC   dtacof       ! routine called by tradmp.F90, trcdmp.F90 and dyndmp.F90
+   PUBLIC   dtacof_zoom  ! routine called by tradmp.F90, trcdmp.F90 and dyndmp.F90
 
    !                                !!* Namelist namtra_dmp : T & S newtonian damping *
-   LOGICAL, PUBLIC ::   ln_tradmp = .TRUE.    !: internal damping flag
-   INTEGER         ::   nn_hdmp   =   -1      ! = 0/-1/'latitude' for damping over T and S
-   INTEGER         ::   nn_zdmp   =    0      ! = 0/1/2 flag for damping in the mixed layer
-   REAL(wp)        ::   rn_surf   =   50._wp  ! surface time scale for internal damping        [days]
-   REAL(wp)        ::   rn_bot    =  360._wp  ! bottom time scale for internal damping         [days]
-   REAL(wp)        ::   rn_dep    =  800._wp  ! depth of transition between rn_surf and rn_bot [meters]
-   INTEGER         ::   nn_file   =    2      ! = 1 create a damping.coeff NetCDF file 
+   LOGICAL , PUBLIC ::   ln_tradmp = .TRUE.    !: internal damping flag
+   INTEGER , PUBLIC ::   nn_hdmp   =   -1      ! = 0/-1/'latitude' for damping over T and S
+   INTEGER , PUBLIC ::   nn_zdmp   =    0      ! = 0/1/2 flag for damping in the mixed layer
+   REAL(wp), PUBLIC ::   rn_surf   =   50._wp  ! surface time scale for internal damping        [days]
+   REAL(wp), PUBLIC ::   rn_bot    =  360._wp  ! bottom time scale for internal damping         [days]
+   REAL(wp), PUBLIC ::   rn_dep    =  800._wp  ! depth of transition between rn_surf and rn_bot [meters]
+   INTEGER , PUBLIC ::   nn_file   =    2      ! = 1 create a damping.coeff NetCDF file 
 
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   strdmp   !: damping salinity trend (psu/s)
@@ -191,5 +192,5 @@
       !! ** Purpose :   Initialization for the newtonian damping 
       !!
-      !! ** Method  :   read the nammbf namelist and check the parameters
+      !! ** Method  :   read the namtra_dmp namelist and check the parameters
       !!----------------------------------------------------------------------
       NAMELIST/namtra_dmp/ ln_tradmp, nn_hdmp, nn_zdmp, rn_surf, rn_bot, rn_dep, nn_file
@@ -199,5 +200,5 @@
       READ   ( numnam, namtra_dmp )
       
-      IF( lzoom )   nn_zdmp = 0          ! restoring to climatology at closed north or south boundaries
+      IF( lzoom .AND. .NOT. lk_c1d )   nn_zdmp = 0          ! restoring to climatology at closed north or south boundaries
 
       IF(lwp) THEN                       ! Namelist print
@@ -206,7 +207,7 @@
          WRITE(numout,*) '~~~~~~~'
          WRITE(numout,*) '   Namelist namtra_dmp : set damping parameter'
-         WRITE(numout,*) '      add a damping termn or not      ln_tradmp = ', ln_tradmp
+         WRITE(numout,*) '      add a damping term or not       ln_tradmp = ', ln_tradmp
          WRITE(numout,*) '      T and S damping option          nn_hdmp   = ', nn_hdmp
-         WRITE(numout,*) '      mixed layer damping option      nn_zdmp   = ', nn_zdmp, '(zoom: forced to 0)'
+         WRITE(numout,*) '      mixed layer damping option      nn_zdmp   = ', nn_zdmp, '(non-C1D zoom: forced to 0)'
          WRITE(numout,*) '      surface time scale (days)       rn_surf   = ', rn_surf
          WRITE(numout,*) '      bottom time scale (days)        rn_bot    = ', rn_bot
@@ -220,4 +221,5 @@
          IF( tra_dmp_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'tra_dmp_init: unable to allocate arrays' )
          !
+#if ! defined key_c1d
          SELECT CASE ( nn_hdmp )
          CASE (  -1  )   ;   IF(lwp) WRITE(numout,*) '   tracer damping in the Med & Red seas only'
@@ -228,4 +230,5 @@
          END SELECT
          !
+#endif
          SELECT CASE ( nn_zdmp )
          CASE ( 0 )   ;   IF(lwp) WRITE(numout,*) '   tracer damping throughout the water column'
@@ -245,5 +248,5 @@
          ttrdmp(:,:,:) = 0._wp
          !                          ! Damping coefficients initialization
-         IF( lzoom ) THEN   ;   CALL dtacof_zoom( resto )
+         IF( lzoom .AND. .NOT. lk_c1d ) THEN   ;   CALL dtacof_zoom( resto )
          ELSE               ;   CALL dtacof( nn_hdmp, rn_surf, rn_bot, rn_dep, nn_file, 'TRA', resto )
          ENDIF
@@ -353,5 +356,5 @@
       REAL(wp)                        , INTENT(in   )  ::  pn_dep     ! depth of transition (meters)
       INTEGER                         , INTENT(in   )  ::  kn_file    ! save the damping coef on a file or not
-      CHARACTER(len=3)                , INTENT(in   )  ::  cdtype     ! =TRA or TRC (tracer indicator)
+      CHARACTER(len=3)                , INTENT(in   )  ::  cdtype     ! =TRA, TRC or DYN (tracer/dynamics indicator)
       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)  ::  presto     ! restoring coeff. (s-1)
       !
@@ -373,4 +376,28 @@
       CALL wrk_alloc( jpi, jpj, zmrs      )
       CALL wrk_alloc( jpi, jpj, jpk, zdct )
+#if defined key_c1d
+      !                                   ! ====================
+      !                                   !  C1D configuration : local domain
+      !                                   ! ====================
+      !
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) '              dtacof : C1D 3x3 local domain'
+      IF(lwp) WRITE(numout,*) '              -----------------------------'
+      !
+      presto(:,:,:) = 0._wp
+      !
+      zsdmp = 1._wp / ( pn_surf * rday )
+      zbdmp = 1._wp / ( pn_bot  * rday )
+      DO jk = 2, jpkm1
+         DO jj = 1, jpj
+            DO ji = 1, jpi
+               !   ONLY vertical variation from zsdmp (sea surface) to zbdmp (bottom)
+               presto(ji,jj,jk) = zbdmp + (zsdmp-zbdmp) * EXP(-fsdept(ji,jj,jk)/pn_dep)
+            END DO
+         END DO
+      END DO
+      !
+      presto(:,:, : ) = presto(:,:,:) * tmask(:,:,:)
+#else
       !                                   ! ====================
       !                                   !  ORCA configuration : global domain
@@ -552,4 +579,5 @@
          CALL ctl_stop( 'Choose a correct value of nn_hdmp or put ln_tradmp to FALSE' )
       ENDIF
+#endif
 
       !                            !--------------------------------!
@@ -559,4 +587,5 @@
          IF( cdtype == 'TRA' ) cfile = 'damping.coeff'
          IF( cdtype == 'TRC' ) cfile = 'damping.coeff.trc'
+         IF( cdtype == 'DYN' ) cfile = 'damping.coeff.dyn'
          cfile = TRIM( cfile )
          CALL iom_open  ( cfile, inum0, ldwrt = .TRUE., kiolib = jprstlib )
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 4144)
@@ -76,4 +76,5 @@
    USE c1d             ! 1D configuration
    USE step_c1d        ! Time stepping loop for the 1D configuration
+   USE dyndmp          ! Momentum damping
 #if defined key_top
    USE trcini          ! passive tracer initialisation
@@ -328,4 +329,5 @@
                             CALL     phy_cst    ! Physical constants
                             CALL     eos_init   ! Equation of state
+      IF( lk_c1d        )   CALL     c1d_init   ! 1D column configuration
                             CALL     dom_cfg    ! Domain configuration
                             CALL     dom_init   ! Domain
@@ -368,5 +370,5 @@
                             CALL tra_bbc_init   ! bottom heat flux
       IF( lk_trabbl     )   CALL tra_bbl_init   ! advective (and/or diffusive) bottom boundary layer scheme
-      IF( ln_tradmp     )   CALL tra_dmp_init   ! internal damping trends
+                            CALL tra_dmp_init   ! internal damping trends- tracers
                             CALL tra_adv_init   ! horizontal & vertical advection
                             CALL tra_ldf_init   ! lateral mixing
@@ -374,4 +376,5 @@
 
       !                                     ! Dynamics
+      IF( lk_c1d        )   CALL dyn_dmp_init   ! internal damping trends- momentum
                             CALL dyn_adv_init   ! advection (vector or flux form)
                             CALL dyn_vor_init   ! vorticity term including Coriolis
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_AMM_12km.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_AMM_12km.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_AMM_12km.h90	(revision 4144)
@@ -4,84 +4,101 @@
    !!                  (AMM_12km configuration VN3.3)
    !!---------------------------------------------------------------------
-   CHARACTER (len=16)        &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "amm"         !: name of the configuration
-   INTEGER                   &
+      ::                      &  
+      cp_cfg  =  "amm"           !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      jp_cfg = 011  ,        &  !: resolution of the configuration (degrees)
-      ! Original data size
-      jpidta  = 198,        &  !: first horizontal dimension > or = to jpi
-      jpjdta  = 224,        &  !: second                     > or = to jpj
-      jpkdta  = 51,         &  !: number of levels           > or = to jpk
-      ! total domain matrix size
-      jpiglo  = jpidta,      &  !: first  dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: second dimension of global domain --> j
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+      ::                      &
+      jp_cfg  =  011   ,      &  !: Resolution of the configuration (degrees)
+
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  198   ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  224   ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  51    ,      &  !: Number of levels      ( >= jpk    )
+
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
       ! Domain characteristics
-      jperio  =    0            !: lateral cond. type (between 0 and 6)
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL,PARAMETER      ::  pp_not_used = 999999_wp , &
-      &                    pp_to_be_computed = 0._wp
-   !!
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   !!
-   INTEGER, PARAMETER ::     & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
+
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp), PARAMETER ::       &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
 
-   !!
-   !! Vertical grid parameter for domzgr
-   !! ==================================
-   !!
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = pp_to_be_computed ,  &  !: Computed in domzgr, set ppdzmin and pphmax below
-      &     ppa0  = pp_to_be_computed ,  &  !:    "           "
-      &     ppa1  = pp_to_be_computed ,  &  !:    "           "
-      !
-      &     ppkth =  23.563_wp        ,  &  !: (non dimensional): gives the approximate
-      !                                     !: layer number above which  stretching will
-      !                                     !: be maximum. Usually of order jpk/2.
-      &     ppacr =    9.00000000000_wp     !: (non dimensional): stretching factor
-      !                                     !: for the grid. The highest zacr, the smallest
-      !                                     !: the stretching.
 
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &
-      &     ppdzmin = 6._wp           ,  &  !: (meters) vertical thickness of the top layer
-      &     pphmax  = 5720._wp              !: (meters) Maximum depth of the ocean gdepw(jpk)
-   !!
+   !!  Coefficients associated with the vertical coordinate system
+
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   pp_to_be_computed     ,  &  !: Computed in domzgr, set ppdzmin and pphmax below
+      &     ppa0  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppa1  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppkth =   23.563_wp             ,  &  !: (non dimensional): gives the approximate
+      !                                           !: layer number above which  stretching will
+      !                                           !: be maximum. Usually of order jpk/2.
+      &     ppacr =   9.00000000000_wp            !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
+      !                                           !: the stretching.
+
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
+      &     ppdzmin = 6._wp                 ,  &  !: (meters) vertical thickness of the top layer
+      &     pphmax  = 5720._wp                    !: (meters) Maximum depth of the ocean gdepw(jpk)
    LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
@@ -90,4 +107,3 @@
       &     ppkth2  = pp_not_used           ,  &  !:
       &     ppacr2  = pp_not_used                 !:
-
    !!---------------------------------------------------------------------
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R2.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R2.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R2.h90	(revision 4144)
@@ -8,92 +8,108 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "eel"            !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "eel"           !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 2   ,         &  !: resolution of the configuration (km)
+      ::                      &
+      jp_cfg  =  2     ,      &  !: Resolution of the configuration (km)
 
-      ! data size              !!! * size of all the input files *
-      jpidta  = 83,          &  !: 1st horizontal dimension ( >= jpi )
-      jpjdta  = 242,         &  !: 2nd    "            "    ( >= jpj )
-      jpkdta  = 30,          &  !: number of levels         ( >= jpk )
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  83    ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  242   ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  30    ,      &  !: Number of levels      ( >= jpk    )
 
-      ! global domain size     !!! * full domain *
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: 2nd    "                  "    --> j
-      ! zoom starting position
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
 
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
       ! Domain characteristics
-      jperio  =     1           !: lateral cond. type (between 0 and 6)
+      jperio  =  1               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &  !:
-      pp_not_used       = 999999._wp  , & !: ???
-      pp_to_be_computed =      0._wp      !: ???
-   !!
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   !!
-   INTEGER,PARAMETER   ::    & !:
-      jphgr_msh = 3            !: type of horizontal mesh
-      !                        ! = 0 curvilinear coordinate on the sphere
-      !                        !     read in coordinate.nc file
-      !                        ! = 1 geographical mesh on the sphere
-      !                        !     with regular grid-spacing
-      !                        ! = 2 f-plane with regular grid-spacing
-      !                        ! = 3 beta-plane with regular grid-spacing
-      !                        ! = 4 Mercator grid with T/U point at the equator  with
-      !                        !     isotropic resolution (e1_deg)
+
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 3              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) ,PARAMETER ::     &  !:
-      ppglam0  =    0.0_wp,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  =   35.0_wp,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                          ! latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used ,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used ,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = 0.0_wp     , &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = 35.0_wp    , &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = 2000.0_wp,   &  !: zonal      grid-spacing (meters )
+      ppe1_m   = 2000.0_wp  , &  !: zonal      grid-spacing (meters )
       ppe2_m   = 2000.0_wp       !: meridional grid-spacing (meters )
-   !!
+
+
    !!  Coefficients associated with the vertical coordinate system
-   !!
-   REAL(wp) &
+
+   REAL(wp)                                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER                              &
 #endif
-      ::     &  !:
-      &     ppsur = -2033.194295283385_wp   ,  &  !: Computed in domzgr
-      &     ppa0  =  155.8325369664153_wp   ,  &  !:
-      &     ppa1  =  146.3615918601890_wp   ,  &  !:
-      !
-      &     ppkth =  17.28520372419791_wp   ,  &  !: (non dimensional): gives the approximate
+      ::                                       &	
+      &     ppsur =   -2033.194295283385_wp ,  &  !: Computed in domzgr, set ppdzmin, pphmax below
+      &     ppa0  =   155.8325369664153_wp  ,  &  !:
+      &     ppa1  =   146.3615918601890_wp  ,  &  !:
+      &     ppkth =   17.28520372419791_wp  ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =  5.000000000000000_wp         !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      &     ppacr =   5.000000000000000_wp        !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
 
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R5.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R5.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R5.h90	(revision 4144)
@@ -8,92 +8,108 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "eel"            !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "eel"           !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 5      ,      &  !: resolution of the configuration (km)
+      ::                      &
+      jp_cfg  =  5     ,      &  !: Resolution of the configuration (km)
 
-      ! data size              !!! * size of all the input files
-      jpidta  =  66   ,      &  !: first horizontal dimension > or = to jpi
-      jpjdta  =  66   ,      &  !: second                     > or = to jpj
-      jpkdta  =  31   ,      &  !: number of levels           > or = to jpk
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  66    ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  66    ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  31    ,      &  !: Number of levels      ( >= jpk    )
 
-      ! total domain size      !!! * full domain *
-      jpiglo  = jpidta,      &  !: first  dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: second dimension of global domain --> j
-      ! zoom starting position
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
 
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
       ! Domain characteristics
-      jperio  =   1             !: lateral cond. type (between 0 and 6)
+      jperio  =  1               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &  !:
-      pp_not_used       = 999999._wp ,  &  !:
-      pp_to_be_computed =      0._wp       !:
 
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
 
-   INTEGER,PARAMETER   ::    & !:
-      jphgr_msh = 2            !: type of horizontal mesh
-      !                        ! = 0 curvilinear coordinate on the sphere
-      !                        !     read in coordinate.nc file
-      !                        ! = 1 geographical mesh on the sphere
-      !                        !     with regular grid-spacing
-      !                        ! = 2 f-plane with regular grid-spacing
-      !                        ! = 3 beta-plane with regular grid-spacing
-      !                        ! = 4 Mercator grid with T/U point at the equator  with
-      !                        !     isotropic resolution (e1_deg)
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 2              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) &
+
+   REAL(wp)                       &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER                 &
 #endif
-      ::     &  !:
-      ppglam0  =    0.0_wp,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = 43.436430714_wp,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                          ! latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+      ::                          &
+      ppglam0  = 0.0_wp         , &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = 43.436430714_wp, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                              !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used    , &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used    , &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = 8000.0_wp,   &  !: zonal      grid-spacing (meters)
-      ppe2_m   = 8000.0_wp       !: meridional grid-spacing (meters)
-   !!
+      ppe1_m   = 8000.0_wp      , &  !: zonal      grid-spacing (meters )
+      ppe2_m   = 8000.0_wp           !: meridional grid-spacing (meters )
+
+
    !!  Coefficients associated with the vertical coordinate system
-   !!
-   REAL(wp), PARAMETER  ::       &   !:
-      &     ppsur = -4762.96143546300_wp    ,  &  !: Computed in domzgr, set ppdzmin, pphmax below
+
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -4762.96143546300_wp  ,  &  !: Computed in domzgr, set ppdzmin, pphmax below
       &     ppa0  =   255.58049070440_wp    ,  &  !:
       &     ppa1  =   245.58132232490_wp    ,  &  !:
-      !
-      &     ppkth =    21.43336197938_wp    ,  &  !: (non dimensional): gives the approximate
+      &     ppkth =   21.43336197938_wp     ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =     3.00000000000_wp          !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      &     ppacr =   3.00000000000_wp            !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
 
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &  !:
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R6.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R6.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_EEL_R6.h90	(revision 4144)
@@ -8,92 +8,108 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "eel"            !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "eel"           !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::     &
-      jp_cfg = 6      ,      &  !: resolution of the configuration (km)
+      ::                      &
+      jp_cfg  =  6     ,      &  !: Resolution of the configuration (km)
 
-      ! data size              !!! * size of all the input files *
-      jpidta  = 29,          &  !: 1st lateral dimension ( >= jpi )
-      jpjdta  = 83,          &  !: 2nd    "         "    ( >= jpj )
-      jpkdta  = 30,          &  !: number of levels      ( >= jpk )
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  29    ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  83    ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  30    ,      &  !: Number of levels      ( >= jpk    )
 
-      ! global domain size     !!! * full domain *
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: 2nd    "                  "    --> j
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data domain indices
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
 
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
       ! Domain characteristics
-      jperio  =      1          !: lateral cond. type (between 0 and 6)
+      jperio  =  1               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &  !:
-      pp_not_used       = 999999._wp ,  &  !: ???
-      pp_to_be_computed =      0._wp       !: ???
 
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
 
-   INTEGER,PARAMETER   ::    & !:
-      jphgr_msh = 3            !: type of horizontal mesh
-      !                        ! = 0 curvilinear coordinate on the sphere
-      !                        !     read in coordinate.nc file
-      !                        ! = 1 geographical mesh on the sphere
-      !                        !     with regular grid-spacing
-      !                        ! = 2 f-plane with regular grid-spacing
-      !                        ! = 3 beta-plane with regular grid-spacing
-      !                        ! = 4 Mercator grid with T/U point at the equator  with
-      !                        !     isotropic resolution (e1_deg)
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 3              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) &
+
+   REAL(wp)                   &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::     &  !:
-      ppglam0  =    0.0_wp,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  =   35.0_wp,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                          !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+      ::                      &
+      ppglam0  = 0.0_wp     , &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = 35.0_wp    , &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = 6000.0_wp,   &  !: zonal      grid-spacing (meters )
+      ppe1_m   = 6000.0_wp  , &  !: zonal      grid-spacing (meters )
       ppe2_m   = 6000.0_wp       !: meridional grid-spacing (meters )
+
 
    !!  Coefficients associated with the vertical coordinate system
 
-   REAL(wp), PARAMETER  ::       &  !:
-      &     ppsur = -2033.194295283385_wp   ,  &  !: Computed in domzgr
-      &     ppa0  =  155.8325369664153_wp   ,  &  !:
-      &     ppa1  =  146.3615918601890_wp   ,  &  !:
-      !
-      &     ppkth =  17.28520372419791_wp   ,  &  !: (non dimensional): gives the approximate
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -2033.194295283385_wp ,  &  !: Computed in domzgr, set ppdzmin, pphmax below
+      &     ppa0  =   155.8325369664153_wp  ,  &  !:
+      &     ppa1  =   146.3615918601890_wp  ,  &  !:
+      &     ppkth =   17.28520372419791_wp  ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =  5.000000000000000_wp         !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      &     ppacr =   5.000000000000000_wp        !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
 
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
 
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &  !:
+   REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_GYRE.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_GYRE.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_GYRE.h90	(revision 4144)
@@ -8,99 +8,111 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "gyre"           !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "gyre"          !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg =  1   ,        &  !: 
+      ::                      &
+      jp_cfg  =  1     ,      &  !: Resolution of the configuration (degrees)
 
-      ! data size              !!! * size of all the input files *
-      jpidta  = 30*jp_cfg+2, &  !: 1st horizontal dimension ( >= jpi )
-      jpjdta  = 20*jp_cfg+2, &  !: 2nd    "            "    ( >= jpj )
-      jpkdta  = 31,          &  !: number of levels         ( >= jpk )
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  30*jp_cfg+2, &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  20*jp_cfg+2, &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  31         , &  !: Number of levels      ( >= jpk    )
 
-      ! global domain size     !!! * full domain *
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: 2nd    "                  "    --> j
-      ! zoom starting position
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
 
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
       ! Domain characteristics
-      jperio  =     0           !: lateral cond. type (between 0 and 6)
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &  !:
-      pp_not_used       = 999999._wp  , & !: ???
-      pp_to_be_computed =      0._wp      !: ???
-   !!
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   !!
-   INTEGER,PARAMETER   ::    & !:
-      jphgr_msh = 5            !: type of horizontal mesh
-      !                        ! = 0 curvilinear coordinate on the sphere
-      !                        !     read in coordinate.nc file
-      !                        ! = 1 geographical mesh on the sphere
-      !                        !     with regular grid-spacing
-      !                        ! = 2 f-plane with regular grid-spacing
-      !                        ! = 3 beta-plane with regular grid-spacing
-      !                        ! = 4 Mercator grid with T/U point at the equator  with
-      !                        !     isotropic resolution (e1_deg)
-      !                        ! =5  beta-plane with regular grid-spacing and rotated domain (GYRE configuration)
+
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 5              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
+      !                          !: = 5 beta-plane with regular grid-spacing and rotated domain (GYRE configuration)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) &
+
+   REAL(wp)                   &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::     &  !:
-      ppglam0  =    0.0_wp,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  =   29.0_wp,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                          ! latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used ,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used ,   &  !: meridional grid-spacing (degrees)
+      ::                      &
+      ppglam0  = 0.0_wp     , &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = 29.0_wp    , &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,    &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used        !: meridional grid-spacing (meters )
-   !!
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
+
+
    !!  Coefficients associated with the vertical coordinate system
-   !!
 
-   REAL(wp), PARAMETER  ::       &  !:
-      &     ppsur = -2033.194295283385_wp   ,  &  !: 
-      &     ppa0  =  155.8325369664153_wp   ,  &  !:
-      &     ppa1  =  146.3615918601890_wp   ,  &  !:
-      !
-      &     ppkth =  17.28520372419791_wp   ,  &  !: (non dimensional): gives the approximate
-      !                                           !    layer number above which  stretching will
-      !                                           !    be maximum. Usually of order jpk/2.
-      &     ppacr =  5.000000000000000_wp         !: (non dimensional): stretching factor
-      !                                           !    for the grid. The highest zacr, the smallest
-      !                                           !    the stretching.
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -2033.194295283385_wp ,  &  !:
+      &     ppa0  =   155.8325369664153_wp  ,  &  !:
+      &     ppa1  =   146.3615918601890_wp  ,  &  !:
+      &     ppkth =   17.28520372419791_wp  ,  &  !: (non dimensional): gives the approximate
+      !                                           !: layer number above which  stretching will
+      !                                           !: be maximum. Usually of order jpk/2.
+      &     ppacr =   5.000000000000000_wp        !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
+      !                                           !: the stretching.
 
-   !!
-   !!  If all ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &  !:
-      &     ppdzmin = pp_not_used   ,  &  !: (meters): depth of the top (first) model layer
-      !                             !            depth of second "w" level
-      &     pphmax  = pp_not_used         !: (meters): maximum depth of the ocean
-      !                             !            depth of the last "w" level
-   LOGICAL,  PARAMETER ::        &
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
+      &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
+      &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
       &     ppacr2  = pp_not_used                 !:
-
    !!---------------------------------------------------------------------
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R025.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R025.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R025.h90	(revision 4144)
@@ -9,69 +9,91 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "orca"           !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "orca"          !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 025  ,        &  !: resolution of the configuration (degrees)
-      ! Original data size
-      jpidta  = 1442,        &  !: first horizontal dimension > or = to jpi
-      jpjdta  = 1021,        &  !: second                     > or = to jpj
+      ::                      &
+      jp_cfg  =  025   ,      &  !: Resolution of the configuration (degrees)
+
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  1442  ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  1021  ,      &  !: 2nd lateral dimension ( >= jpjglo )
 #if key_orca_r025==75
-      jpkdta  = 75 ,         &  !: number of levels           > or = to jpk
+      jpkdta  =  75    ,      &  !: Number of levels      ( >= jpk    )
 #else
-      jpkdta  = 46 ,         &  !: number of levels           > or = to jpk
+      jpkdta  =  46    ,      &  !: Number of levels      ( >= jpk    )
 #endif
-      ! total domain matrix size
-      jpiglo  = jpidta,      &  !: first  dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: second dimension of global domain --> j
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
       ! Domain characteristics
-      jperio  =    4            !: lateral cond. type (between 0 and 6)
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  4               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL,PARAMETER      ::  pp_not_used = 999999_wp , &
-      &                    pp_to_be_computed = 0._wp
-   !!
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   !!
-   INTEGER, PARAMETER ::     & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
+
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp), PARAMETER ::       &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
+
 
    !!  Coefficients associated with the vertical coordinate system
 
 #if key_orca_r025==75
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur =  -3958.951371276829_wp  ,  &  !: ORCA r025 coefficients
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -3958.951371276829_wp ,  &  !: ORCA r025 coefficients
       &     ppa0  =   103.9530096000000_wp  ,  &  !: (75 levels case)
       &     ppa1  =   2.415951269000000_wp  ,  &  !:
@@ -79,42 +101,38 @@
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =       7.00000000000_wp        !: (non dimensional): stretching factor
+      &     ppacr =   7.00000000000_wp            !: (non dimensional): stretching factor
       !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
+
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
    REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   !!
    LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .TRUE.                    !: Use/do not use double tanf function for vertical coordinates
    REAL(wp), PARAMETER ::                      &
-      &     ppa2  =   100.7609285000000_wp  ,  &  !: Double tanh function parameters
-      &     ppkth2=   48.02989372000000_wp  ,  &  !:
-      &     ppacr2=    13.00000000000_wp          !:
-      !
+      &     ppa2    = 100.7609285000000_wp  ,  &  !: Double tanh function parameters
+      &     ppkth2  = 48.02989372000000_wp  ,  &  !:
+      &     ppacr2  = 13.00000000000_wp           !:
 #else
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = pp_to_be_computed ,        &  !: Computed in domzgr, set ppdzmin and pphmax below
-      &     ppa0  = pp_to_be_computed ,        &  !:    "           "
-      &     ppa1  = pp_to_be_computed ,        &  !:    "           "
-      !
-      &     ppkth =  23.563_wp        ,        &  !: (non dimensional): gives the approximate
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   pp_to_be_computed     ,  &  !: Computed in domzgr, set ppdzmin and pphmax below
+      &     ppa0  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppa1  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppkth =   23.563_wp             ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
       &     ppacr =   9.00000000000_wp            !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
+
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
    REAL(wp), PARAMETER ::                      &
-      &     ppdzmin = 6._wp           ,        &  !: (meters) vertical thickness of the top layer
+      &     ppdzmin = 6._wp                 ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = 5750._wp                    !: (meters) Maximum depth of the ocean gdepw(jpk)
-   !!
    LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R05.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R05.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R05.h90	(revision 4144)
@@ -9,126 +9,122 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "orca"           !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "orca"          !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 05  ,         &  !: resolution of the configuration (degrees)
+      ::                      &
+      jp_cfg  =  05    ,      &  !: Resolution of the configuration (degrees)
 
-      ! data size              !!! * size of all the input files *
-      jpidta  = 722,         &  !: 1st lateral dimension > or = to jpiglo
-      jpjdta  = 511,         &  !: 2nd   "         "     > or = to jpjglo
-      jpkdta  =  31             !: number of levels      > or = to jpkglo
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  722   ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  511   ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  31    ,      &  !: Number of levels      ( >= jpk    )
 
-#if defined key_antarctic
-      ! zoom domain size       !!! *  antarctic zoom  * 
-   INTEGER     &
-#if !defined key_agrif
-      , PARAMETER  &
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#elif defined key_antarctic
+      ! Zoom domain size         !!! *  Antarctic zoom  * 
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  187   ,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  1               !: Lateral cond. type (between 0 and 6)
+#elif defined key_arctic
+      ! Zoom domain size         !!! *  Arctic zoom  *
+      jpiglo  =  562   ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta-301+1,&  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  81    ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  301   ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  5               !: Lateral cond. type (between 0 and 6)
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  6               !: Lateral cond. type (between 0 and 6)
 #endif
-      :: &
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = 187   ,      &  !: 2nd     "                 "    --> j 
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data domain indices
-      ! Domain characteristics
-      jperio  =   1             !: lateral cond. type (between 0 and 6)
 
-#elif defined key_arctic
-      ! zoom domain size       !!! *  arctic zoom  *
-   INTEGER    &
-#if !defined key_agrif
-      , PARAMETER  &
-#endif
-      :: &
-      ! zoom domain size       !!! *  arctic zoom  *
-      jpiglo  = 562,         &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta-301+1,&  !: 2nd     "                 "    --> j
-      ! zoom starting position
-      jpizoom =  81   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom = 301   ,      &  !: in data domain indices
-      ! Domain characteristics
-      jperio  =   5             !: lateral cond. type (between 0 and 6)
-
-#else
-      ! global domain size     !!! *  global domain  *
-   INTEGER    &
-#if !defined key_agrif
-      , PARAMETER  &
-#endif
-      :: &
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: 2nd     "                 "    --> j
-      ! zoom starting position    
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data domain indices
-      ! Domain characteristics
-      jperio  =    6            !: lateral cond. type (between 0 and 6)
-#endif
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &
+
+   REAL(wp), PARAMETER ::              &
       pp_not_used       = 999999._wp , &  !:
-      pp_to_be_computed = 0._wp          !:
+      pp_to_be_computed = 0._wp           !:
 
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
 
-   INTEGER, PARAMETER   ::   & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) , PARAMETER ::      &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            ! latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
 
-   !!
-   !! Vertical grid parameter for domzgr
-   !! =====================================
-   !!
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = -4762.96143546300_wp    ,  &  !: ORCA r4, r2 and r05 coefficients
+
+   !!  Coefficients associated with the vertical coordinate system
+
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -4762.96143546300_wp  ,  &  !: ORCA r4, r2 and r05 coefficients
       &     ppa0  =   255.58049070440_wp    ,  &  !: (default coefficients)
       &     ppa1  =   245.58132232490_wp    ,  &  !:
-      &     ppkth =    21.43336197938_wp    ,  &  !: (non dimensional): gives the approximate
+      &     ppkth =   21.43336197938_wp     ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =     3.00000000000_wp          !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      &     ppacr =   3.00000000000_wp            !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
 
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R1.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R1.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R1.h90	(revision 4144)
@@ -12,69 +12,91 @@
    !! Use: key_orca_r1=75 to set 75 levels
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "orca"           !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "orca"          !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 1    ,        &  !: resolution of the configuration (degrees)
-      ! Original data size
-      jpidta  =  362,        &  !: first horizontal dimension > or = to jpi
-      jpjdta  =  292,        &  !: second                     > or = to jpj
+      ::                      &
+      jp_cfg  =  1     ,      &  !: Resolution of the configuration (degrees)
+
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  362   ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  292   ,      &  !: 2nd lateral dimension ( >= jpjglo )
 #if key_orca_r1==75
-      jpkdta  = 75 ,         &  !: number of levels           > or = to jpk
+      jpkdta  =  75    ,      &  !: Number of levels      ( >= jpk    )
 #else
-      jpkdta  = 46 ,         &  !: number of levels           > or = to jpk
+      jpkdta  =  46    ,      &  !: Number of levels      ( >= jpk    )
 #endif
-      ! total domain matrix size
-      jpiglo  = jpidta,      &  !: first  dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: second dimension of global domain --> j
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
       ! Domain characteristics
-      jperio  =   6             !: lateral cond. type (between 0 and 6)
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  6               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL,PARAMETER      ::  pp_not_used = 999999_wp , &
-      &                    pp_to_be_computed = 0._wp
-   !!
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   !!
-   INTEGER, PARAMETER ::     & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
+
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp), PARAMETER ::       &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
+
 
    !!  Coefficients associated with the vertical coordinate system
 
 #if key_orca_r1==75
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur =  -3958.951371276829_wp  ,  &  !: ORCA r1 coefficients
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -3958.951371276829_wp ,  &  !: ORCA r1 coefficients
       &     ppa0  =   103.9530096000000_wp  ,  &  !: (75 levels case)
       &     ppa1  =   2.415951269000000_wp  ,  &  !:
@@ -82,42 +104,38 @@
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =       7.00000000000_wp        !: (non dimensional): stretching factor
+      &     ppacr =   7.00000000000_wp            !: (non dimensional): stretching factor
       !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
+
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
    REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   !!
    LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .TRUE.                    !: Use/do not use double tanf function for vertical coordinates
    REAL(wp), PARAMETER ::                      &
-      &     ppa2  =   100.7609285000000_wp  ,  &  !: Double tanh function parameters
-      &     ppkth2=   48.02989372000000_wp  ,  &  !:
-      &     ppacr2=    13.00000000000_wp          !:
-      !
+      &     ppa2    = 100.7609285000000_wp  ,  &  !: Double tanh function parameters
+      &     ppkth2  = 48.02989372000000_wp  ,  &  !:
+      &     ppacr2  = 13.00000000000_wp           !:
 #else
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = pp_to_be_computed ,        &  !: Computed in domzgr, set ppdzmin and pphmax below
-      &     ppa0  = pp_to_be_computed ,        &  !:    "           "
-      &     ppa1  = pp_to_be_computed ,        &  !:    "           "
-      !
-      &     ppkth =  23.563_wp        ,        &  !: (non dimensional): gives the approximate
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   pp_to_be_computed     ,  &  !: Computed in domzgr, set ppdzmin and pphmax below
+      &     ppa0  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppa1  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppkth =   23.563_wp             ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
       &     ppacr =   9.00000000000_wp            !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
+
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
    REAL(wp), PARAMETER ::                      &
-      &     ppdzmin = 6._wp           ,        &  !: (meters) vertical thickness of the top layer
+      &     ppdzmin = 6._wp                 ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = 5750._wp                    !: (meters) Maximum depth of the ocean gdepw(jpk)
-   !!
    LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R2.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R2.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R2.h90	(revision 4144)
@@ -9,154 +9,122 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "orca"           !: name of the configuration 
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "orca"          !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 2,            &  !: resolution of the configuration (degrees)
+      ::                      &
+      jp_cfg  =  2     ,      &  !: Resolution of the configuration (degrees)
 
-      ! data size              !!! * size of all input files *
-      jpidta  = 182,         &  !: 1st lateral dimension ( >= jpiglo )
-      jpjdta  = 149,         &  !: 2nd    "       "      ( >= jpjglo )
-      jpkdta  = 31              !: number of levels      ( >= jpk    ) 
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  182   ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  149   ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  31    ,      &  !: Number of levels      ( >= jpk    )
 
-#if defined key_antarctic
-      ! zoom domain size       !!! *  antarctic zoom  * 
-   INTEGER     &
-#if !defined key_agrif
-      , PARAMETER  &
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
+      ! Domain characteristics
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#elif defined key_antarctic
+      ! Zoom domain size         !!! *  Antarctic zoom  * 
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  50    ,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  1               !: Lateral cond. type (between 0 and 6)
+#elif defined key_arctic
+      ! Zoom domain size         !!! *  Arctic zoom  *
+      jpiglo  =  142   ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta-97+1, &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  21    ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  97    ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  3               !: Lateral cond. type (between 0 and 6)
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  4               !: Lateral cond. type (between 0 and 6)
 #endif
-      :: &
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = 50,          &  !: 2nd    "                  "    --> j
-      ! zoom starting position
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data domain indices
-      ! Domain characteristics
-      jperio  =   1             !: lateral cond. type (between 0 and 6)
 
-#elif defined key_arctic
-      ! zoom domain size       !!! *  arctic zoom  *
-   INTEGER    &
-#if !defined key_agrif
-      , PARAMETER  &
-#endif
-      :: &
-      jpiglo  = 142   ,      &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta-97+1, &  !: 2nd    "                  "    --> j
-      ! zoom starting position 
-      jpizoom =  21   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =  97   ,      &  !: in data domain indices
-      ! Domain characteristics
-      jperio  =   3             !: lateral cond. type (between 0 and 6)
-
-#elif defined key_c1d
-      ! global domain size     !!! *  global domain  *
-   INTEGER    &
-#if !defined key_agrif
-      , PARAMETER  &
-#endif
-      :: &
-      jpiglo  = 3     ,      &  !: 1st dimension of global domain --> i
-      jpjglo  = 3     ,      &  !: 2nd    "                  "    --> j
-      ! starting position of the zoom 
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =   133  ,    &  !: in data domain indices (160W,75N)
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =   110  ,    &  !: in data domain indices (160W,50N)
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =   97   ,    &  !: in data domain indices (160W,30N)
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =   86   ,    &  !: in data domain indices (160W,10N)
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =   49   ,    &  !: in data domain indices (160W,30S)
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =   27   ,    &  !: in data domain indices (160W,60S)
-      ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom
-      ! jpjzoom =    7   ,    &  !: in data domain indices (160W,75S)
-      jpizoom =   110   ,    &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   97   ,    &  !: in data domain indices (64W,31.5N) BATS site
-      ! Domain characteristics
-      jperio  =   0            !: lateral cond. type (between 0 and 6)
-#else
-      ! global domain size     !!! *  global domain  *
-   INTEGER    &
-#if !defined key_agrif
-      , PARAMETER  &
-#endif
-      :: &
-      jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: 2nd    "                  "    --> j
-      ! starting position of the zoom 
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data domain indices
-      ! Domain characteristics
-      jperio  =   4             !: lateral cond. type (between 0 and 6)
-
-#endif
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &
-      pp_not_used       = 999999_wp , &  !:
-      pp_to_be_computed = 0._wp          !:
 
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
 
-   INTEGER,PARAMETER   ::    & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) ,PARAMETER ::       &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
 
-   !!
-   !! Vertical grid parameter for domzgr
-   !! ==================================
-   !!
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = -4762.96143546300_wp    ,  &  !: ORCA r4, r2 and r05 coefficients
+
+   !!  Coefficients associated with the vertical coordinate system
+
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -4762.96143546300_wp  ,  &  !: ORCA r4, r2 and r05 coefficients
       &     ppa0  =   255.58049070440_wp    ,  &  !: (default coefficients)
       &     ppa1  =   245.58132232490_wp    ,  &  !:
-      &     ppkth =    21.43336197938_wp    ,  &  !: (non dimensional): gives the approximate
+      &     ppkth =   21.43336197938_wp     ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =     3.00000000000_wp          !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      &     ppacr =   3.00000000000_wp            !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
 
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R4.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R4.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_ORCA_R4.h90	(revision 4144)
@@ -1,4 +1,4 @@
    !!---------------------------------------------------------------------
-   !!                     ***  par_ORCA_R4.h90  ***   
+   !!                     ***  par_ORCA_R4.h90  ***  
    !!   Ocean Domain : 4 degrees resolution global ocean
    !!                  (0RCA_R4 configuration)
@@ -9,84 +9,104 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-       ::    &  
-     cp_cfg = "orca"           !: name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "orca"          !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 4      ,      &  !: resolution of the configuration (degrees)
-      ! Original data size
-      jpidta  =  92   ,      &  !: first horizontal dimension > or = to jpi
-      jpjdta  =  76   ,      &  !: second                     > or = to jpj
-      jpkdta  =  31   ,      &  !: number of levels           > or = to jpk
-      ! global domain matrix size
-      jpiglo  = jpidta,      &  !: first  dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: second dimension of global domain --> j
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+      ::                      &
+      jp_cfg  =  4     ,      &  !: Resolution of the configuration (degrees)
+
+      ! Data domain size         !!! *  Size of all input files  *
+      jpidta  =  92    ,      &  !: 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  76    ,      &  !: 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  31    ,      &  !: Number of levels      ( >= jpk    )
+
+#if defined key_c1d
+      ! Zoom domain size         !!! *  C1D zoom  *
+      jpiglo  =  3     ,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  3     ,      &  !: 2nd dimension of global domain --> j
       ! Domain characteristics
-      jperio  =   4             !: lateral cond. type (between 0 and 6)
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
+   INTEGER                    &
+      ::                      &
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1               !: in data domain indices
+#else
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
+      ! Domain characteristics
+      jperio  =  4               !: Lateral cond. type (between 0 and 6)
+#endif
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL(wp), PARAMETER ::   &
-      pp_not_used       = 999999_wp , &  !:
-      pp_to_be_computed = 0._wp          !:
 
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   INTEGER, PARAMETER ::     & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        ! = 0 curvilinear coordinate on the sphere
-      !                        !     read in coordinate.nc file
-      !                        ! = 1 geographical mesh on the sphere
-      !                        !     with regular grid-spacing
-      !                        ! = 2 f-plane with regular grid-spacing
-      !                        ! = 3 beta-plane with regular grid-spacing
-      !                        ! = 4 Mercator grid with T/U point at the equator  with
-      !                        !     isotropic resolution (e1_deg)
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp) , PARAMETER ::      &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            ! latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
 
 
-   !! Vertical grid parameter for domzgr
-   !! ==================================
+   !!  Coefficients associated with the vertical coordinate system
 
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = -4762.96143546300_wp    ,  &  !: ORCA r4, r2 and r05 coefficients
+   REAL(wp), PARAMETER  ::                     &
+      &     ppsur =   -4762.96143546300_wp  ,  &  !: ORCA r4, r2 and r05 coefficients
       &     ppa0  =   255.58049070440_wp    ,  &  !: (default coefficients)
       &     ppa1  =   245.58132232490_wp    ,  &  !:
-      &     ppkth =    21.43336197938_wp    ,  &  !: (non dimensional): gives the approximate
+      &     ppkth =   21.43336197938_wp     ,  &  !: (non dimensional): gives the approximate
       !                                           !: layer number above which  stretching will
       !                                           !: be maximum. Usually of order jpk/2.
-      &     ppacr =     3.00000000000_wp          !: (non dimensional): stretching factor
-      !                                           !: for the grid. The highest zacr, the smallest
+      &     ppacr =   3.00000000000_wp            !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
       !                                           !: the stretching.
 
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
 
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer
       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
+   LOGICAL,  PARAMETER ::                      &
       &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
+   REAL(wp), PARAMETER ::                      &
       &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
       &     ppkth2  = pp_not_used           ,  &  !:
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_POMME_R025.h90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_POMME_R025.h90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_POMME_R025.h90	(revision 4144)
@@ -9,94 +9,101 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   CHARACTER (len=16)      &
+   CHARACTER (len=16)         &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      ::    &  
-      cp_cfg = "pomme"          !: POMME025 name of the configuration
-   INTEGER     &
+      ::                      &  
+      cp_cfg  =  "pomme"         !: Name of the configuration
+   INTEGER                    &
 #if !defined key_agrif
-      , PARAMETER  &
+      , PARAMETER             &
 #endif
-      :: &
-      jp_cfg = 025  ,        &  !: resolution of the configuration (degrees)
-      ! Original data size
+      ::                      &
+      jp_cfg  =  025   ,      &  !: Resolution of the configuration (degrees)
+
       ! ORCA025 global grid size
-      jpiglo_ORCA025 = 1442, &
-      jpjglo_ORCA025 = 1021, &  ! not used currently
+      jpiglo_ORCA025 = 1442,  &
+      jpjglo_ORCA025 = 1021,  &  ! not used currently
       ! POMME "global" domain localisation in the ORCA025 global grid
-      jpi_iw    = 1059,      & 
-      jpi_ie    = 1088,      &  
-      jpj_js    = 661,       &
-      jpj_jn    = 700,       &
-      jpidta  = ( jpi_ie - jpi_iw + 1 ), &   !: =30 first horizontal dimension > or = to jpi
-      jpjdta  = ( jpj_jn - jpj_js + 1 ), &   !: =40 second                     > or = to jpj
-      jpkdta  = 46 ,         &  !: number of levels           > or = to jpk
-      ! total domain matrix size
-      jpiglo  = jpidta,      &  !: first  dimension of global domain --> i
-      jpjglo  = jpjdta,      &  !: second dimension of global domain --> j
-      ! starting position of the zoom
-      jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,      &  !: in data indices
+      jpi_iw  =  1059  ,      & 
+      jpi_ie  =  1088  ,      &  
+      jpj_js  =  661   ,      &
+      jpj_jn  =  700   ,      &
+
+      ! Data domain size                      !!! *  Size of all input files  *
+      jpidta  =  ( jpi_ie - jpi_iw + 1 ), &   !: =30 1st lateral dimension ( >= jpiglo )
+      jpjdta  =  ( jpj_jn - jpj_js + 1 ), &   !: =40 2nd lateral dimension ( >= jpjglo )
+      jpkdta  =  46    ,      &               !: Number of levels          ( >= jpk    )
+
+      ! Global domain size       !!! *  Global domain  *
+      jpiglo  =  jpidta,      &  !: 1st dimension of global domain --> i
+      jpjglo  =  jpjdta,      &  !: 2nd dimension of global domain --> j
+      ! Starting position of the zoom
+      jpizoom =  1     ,      &  !: Left bottom (i,j) indices of the zoom
+      jpjzoom =  1     ,      &  !: in data domain indices
       ! Domain characteristics
-      jperio  =    0            !: lateral cond. type (between 0 and 6)
+      jperio  =  0               !: Lateral cond. type (between 0 and 6)
+
 
    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-   REAL,PARAMETER      ::  pp_not_used = 999999_wp , &
-      &                    pp_to_be_computed = 0._wp
-   !!
-   !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 )
-   !!
-   INTEGER, PARAMETER ::     & !
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
+
+   REAL(wp), PARAMETER ::              &
+      pp_not_used       = 999999._wp , &  !:
+      pp_to_be_computed = 0._wp           !:
+
+
+   !! Coefficients associated with the horizontal coordinate system
+
+   INTEGER, PARAMETER  ::     &
+      jphgr_msh = 0              !: type of horizontal mesh
+      !                          !: = 0 curvilinear coordinate on the sphere
+      !                          !:     read in coordinate.nc file
+      !                          !: = 1 geographical mesh on the sphere
+      !                          !:     with regular grid-spacing
+      !                          !: = 2 f-plane with regular grid-spacing
+      !                          !: = 3 beta-plane with regular grid-spacing
+      !                          !: = 4 Mercator grid with T/U point at the equator  with
+      !                          !:     isotropic resolution (e1_deg)
 
       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid.
       !   The mercator grid starts only approximately at gphi0 because
       !   of the constraint that the equator be a T point.
-   REAL(wp), PARAMETER ::       &  !
-      ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                            !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees)
+
+   REAL(wp), PARAMETER ::     &
+      ppglam0  = pp_not_used, &  !: longitude of first raw and column T-point   (jphgr_msh = 1)
+      ppgphi0  = pp_not_used, &  !: latitude  of first raw and column T-point   (jphgr_msh = 1)
+      !                          !: latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
+      ppe1_deg = pp_not_used, &  !: zonal      grid-spacing (degrees)
+      ppe2_deg = pp_not_used, &  !: meridional grid-spacing (degrees)
       !
-      ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters )
-      ppe2_m   = pp_not_used       !: meridional grid-spacing (meters )
+      ppe1_m   = pp_not_used, &  !: zonal      grid-spacing (meters )
+      ppe2_m   = pp_not_used     !: meridional grid-spacing (meters )
+
 
    !!  Coefficients associated with the vertical coordinate system
 
-   REAL(wp), PARAMETER  ::       &
-      &     ppsur = pp_to_be_computed ,  &  !: Computed in domzgr, set ppdzmin and pphmax below
-      &     ppa0  = pp_to_be_computed ,  &  !:    "           "
-      &     ppa1  = pp_to_be_computed ,  &  !:    "           "
-      !
-      &     ppkth =  23.563_wp        ,  &  !: (non dimensional): gives the approximate
-      !                                     !: layer number above which  stretching will
-      !                                     !: be maximum. Usually of order jpk/2.
-      &     ppacr =    9.00000000000_wp     !: (non dimensional): stretching factor
-      !                                     !: for the grid. The highest zacr, the smallest
-      !                                     !: the stretching.
+   REAL(wp), PARAMETER ::                      &
+      &     ppsur =   pp_to_be_computed     ,  &  !: Computed in domzgr, set ppdzmin and pphmax below
+      &     ppa0  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppa1  =   pp_to_be_computed     ,  &  !:    "           "
+      &     ppkth =   23.563_wp             ,  &  !: (non dimensional): gives the approximate
+      !                                           !: layer number above which  stretching will
+      !                                           !: be maximum. Usually of order jpk/2.
+      &     ppacr =   9.00000000000_wp            !: (non dimensional): stretching factor
+      !                                           !: for the grid. The higher zacr, the smaller
+      !                                           !: the stretching.
 
-   !!
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-   !!
-   REAL(wp), PARAMETER ::        &
-      &     ppdzmin = 6._wp           ,  &  !: (meters) vertical thickness of the top layer
-      &     pphmax  = 5750._wp              !: (meters) Maximum depth of the ocean gdepw(jpk)
-   LOGICAL,  PARAMETER ::        &
-      &     ldbletanh = .FALSE.             !: Use/do not use double tanf function for vertical coordinates
-   REAL(wp), PARAMETER ::        &
-      &     ppa2    = pp_not_used     ,  &  !: Double tanh function parameters
-      &     ppkth2  = pp_not_used     ,  &  !:
-      &     ppacr2  = pp_not_used           !:
+      !  If both ppa0 ppa1 and ppsur are specified to pp_to_be_computed, then
+      !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+
+   REAL(wp), PARAMETER ::                      &
+      &     ppdzmin = 6._wp                 ,  &  !: (meters) vertical thickness of the top layer
+      &     pphmax  = 5750._wp                    !: (meters) Maximum depth of the ocean gdepw(jpk)
+   LOGICAL,  PARAMETER ::                      &
+      &     ldbletanh = .FALSE.                   !: Use/do not use double tanf function for vertical coordinates
+   REAL(wp), PARAMETER ::                      &
+      &     ppa2    = pp_not_used           ,  &  !: Double tanh function parameters
+      &     ppkth2  = pp_not_used           ,  &  !:
+      &     ppacr2  = pp_not_used                 !:
    !!---------------------------------------------------------------------
Index: branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_oce.F90
===================================================================
--- branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_oce.F90	(revision 4134)
+++ branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/par_oce.F90	(revision 4144)
@@ -99,4 +99,12 @@
 
    ! global or zoom domain size                      !!! * computational domain *
+#if defined key_c1d
+   INTEGER, PUBLIC, PARAMETER ::   jpiglo  = 3        !: 1st dimension of global domain --> i
+   INTEGER, PUBLIC, PARAMETER ::   jpjglo  = 3        !: 2nd    -                  -    --> j
+
+   ! zoom starting position 
+   INTEGER, PUBLIC            ::   jpizoom =   1      !: left bottom (i,j) indices of the zoom
+   INTEGER, PUBLIC            ::   jpjzoom =   1      !: in data domain indices
+#else
    INTEGER, PUBLIC, PARAMETER ::   jpiglo  = jpidta   !: 1st dimension of global domain --> i
    INTEGER, PUBLIC, PARAMETER ::   jpjglo  = jpjdta   !: 2nd    -                  -    --> j
@@ -105,4 +113,5 @@
    INTEGER, PUBLIC, PARAMETER ::   jpizoom =   1      !: left bottom (i,j) indices of the zoom
    INTEGER, PUBLIC, PARAMETER ::   jpjzoom =   1      !: in data domain indices
+#endif
 
    ! Domain characteristics
