Index: branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/README
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/README	(revision 9051)
+++ branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/README	(revision 9079)
@@ -22,12 +22,6 @@
 = HOW TO USE
 ================================
-::: VERY IMPORTANT PRE-REQUIRED :::
-0) pre-required: this tool needs xios1
-
-  (download http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-1.0
-   DOMAINcfg tool is working with revision 703 of xios)
-
 1) copy in DOMAINcfg  directory namelist_cfg all settings (that you had in 3.6_stable) of the configuration for which you want prepare domain_cfg.nc file
-IMPORTANT : keep the namelist_ref committed inchanged. 
+IMPORTANT : keep the namelist_ref committed inchanged. !!!
 
 NEW OPTION ln_e3_dep in the namelist_ref:
Index: branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/domwri.f90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/domwri.f90	(revision 9051)
+++ branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/domwri.f90	(revision 9079)
@@ -22,4 +22,5 @@
    USE wrk_nemo        ! Memory allocation
    USE timing          ! Timing
+   USE phycst
 
    IMPLICIT NONE
Index: branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/in_out_manager.f90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/in_out_manager.f90	(revision 9051)
+++ branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/in_out_manager.f90	(revision 9079)
@@ -132,5 +132,4 @@
    LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only .OR. ln_ctl
    LOGICAL       ::   lsp_area = .TRUE.     !: to make a control print over a specific area
-   CHARACTER(lc) ::   cxios_context         !: context name used in xios
 
    !!----------------------------------------------------------------------
Index: branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/iom.f90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/iom.f90	(revision 9051)
+++ branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/iom.f90	(revision 9079)
@@ -8,5 +8,4 @@
    !!            3.0  ! 2007-07  (D. Storkey) Changes to iom_gettime
    !!            3.4  ! 2012-12  (R. Bourdalle-Badie and G. Reffray)  add C1D case  
-   !!            3.6  ! 2014-15  DIMG format removed
    !!--------------------------------------------------------------------
 
@@ -24,18 +23,10 @@
    USE iom_nf90        ! NetCDF format with native NetCDF library
    USE in_out_manager  ! I/O manager
-   USE lib_mpp         ! MPP library
-   USE domngb          ! ocean space and time domain
-   USE phycst          ! physical constants
-   USE xios
-   USE ioipsl, ONLY :  ju2ymds    ! for calendar
+   USE lib_mpp           ! MPP library
 
    IMPLICIT NONE
    PUBLIC   !   must be public to be able to access iom_def through iom
    
-
-   LOGICAL, PUBLIC, PARAMETER ::   lk_iomput = .TRUE.        !: iom_put flag
-
-
-
+   LOGICAL, PUBLIC, PARAMETER ::   lk_iomput = .FALSE.       !: iom_put flag
    PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put
    PUBLIC iom_getatt, iom_use, iom_context_finalize
@@ -44,8 +35,4 @@
    PRIVATE iom_g0d, iom_g1d, iom_g2d, iom_g3d, iom_get_123d
    PRIVATE iom_p1d, iom_p2d, iom_p3d
-
-   PRIVATE iom_set_domain_attr, iom_set_axis_attr, iom_set_field_attr, iom_set_file_attr, iom_get_file_attr, iom_set_grid_attr
-   PRIVATE set_grid, set_grid_bounds, set_scalar, set_xmlatt, set_mooring, iom_update_file_name, iom_sdate
-
 
    INTERFACE iom_get
@@ -64,5 +51,5 @@
    !!----------------------------------------------------------------------
    !! NEMO/OPA 3.3 , NEMO Consortium (2010)
-   !! $Id: iom.F90 6519 2016-05-11 10:50:34Z timgraham $
+   !! $Id: iom.F90 8572 2017-09-28 08:27:06Z cbricaud $
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
@@ -78,85 +65,4 @@
       !!----------------------------------------------------------------------
       CHARACTER(len=*), INTENT(in)  :: cdname
-
-      TYPE(xios_time)   :: dtime    = xios_time(0, 0, 0, 0, 0, 0)
-      CHARACTER(len=19) :: cldate 
-      CHARACTER(len=10) :: clname
-      INTEGER           ::   ji
-      !
-      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z_bnds
-      !!----------------------------------------------------------------------
-
-      ALLOCATE( z_bnds(jpk,2) )
-
-      clname = cdname
-      IF( TRIM(Agrif_CFixed()) /= '0' )   clname = TRIM(Agrif_CFixed())//"_"//TRIM(cdname)
-      CALL xios_context_initialize(TRIM(clname), mpi_comm_opa)
-      CALL iom_swap( cdname )
-
-      ! calendar parameters
-      SELECT CASE ( nleapy )        ! Choose calendar for IOIPSL
-      CASE ( 1)   ;   CALL xios_set_context_attr(TRIM(clname), calendar_type= "Gregorian")
-      CASE ( 0)   ;   CALL xios_set_context_attr(TRIM(clname), calendar_type= "NoLeap")
-      CASE (30)   ;   CALL xios_set_context_attr(TRIM(clname), calendar_type= "D360")
-      END SELECT
-      WRITE(cldate,"(i4.4,'-',i2.2,'-',i2.2,' ',i2.2,':',i2.2,':00')") nyear,nmonth,nday,nhour,nminute
-      CALL xios_set_context_attr(TRIM(clname), start_date=cldate )
-
-      ! horizontal grid definition
-      CALL set_scalar
-
-      IF( TRIM(cdname) == TRIM(cxios_context) ) THEN  
-         CALL set_grid( "T", glamt, gphit ) 
-         CALL set_grid( "U", glamu, gphiu )
-         CALL set_grid( "V", glamv, gphiv )
-         CALL set_grid( "W", glamt, gphit )
-         CALL set_grid_znl( gphit )
-         !
-         IF( ln_cfmeta ) THEN   ! Add additional grid metadata
-            CALL iom_set_domain_attr("grid_T", area = e1e2t(nldi:nlei, nldj:nlej))
-            CALL iom_set_domain_attr("grid_U", area = e1e2u(nldi:nlei, nldj:nlej))
-            CALL iom_set_domain_attr("grid_V", area = e1e2v(nldi:nlei, nldj:nlej))
-            CALL iom_set_domain_attr("grid_W", area = e1e2t(nldi:nlei, nldj:nlej))
-            CALL set_grid_bounds( "T", glamf, gphif, glamt, gphit )
-            CALL set_grid_bounds( "U", glamv, gphiv, glamu, gphiu )
-            CALL set_grid_bounds( "V", glamu, gphiu, glamv, gphiv )
-            CALL set_grid_bounds( "W", glamf, gphif, glamt, gphit )
-         ENDIF
-      ENDIF
-
-      ! vertical grid definition
-      CALL iom_set_axis_attr( "deptht", gdept_1d )
-      CALL iom_set_axis_attr( "depthu", gdept_1d )
-      CALL iom_set_axis_attr( "depthv", gdept_1d )
-      CALL iom_set_axis_attr( "depthw", gdepw_1d )
-
-      ! Add vertical grid bounds
-      z_bnds(:      ,1) = gdepw_1d(:)
-      z_bnds(1:jpkm1,2) = gdepw_1d(2:jpk)
-      z_bnds(jpk:   ,2) = gdepw_1d(jpk) + e3t_1d(jpk)
-      CALL iom_set_axis_attr( "deptht", bounds=z_bnds )
-      CALL iom_set_axis_attr( "depthu", bounds=z_bnds )
-      CALL iom_set_axis_attr( "depthv", bounds=z_bnds )
-      z_bnds(:    ,2) = gdept_1d(:)
-      z_bnds(2:jpk,1) = gdept_1d(1:jpkm1)
-      z_bnds(1    ,1) = gdept_1d(1) - e3w_1d(1)
-      CALL iom_set_axis_attr( "depthw", bounds=z_bnds )
-
-      CALL iom_set_axis_attr( "iax_20C", (/ REAL(20,wp) /) )
-      CALL iom_set_axis_attr( "iax_28C", (/ REAL(28,wp) /) )
-      
-      ! automatic definitions of some of the xml attributs
-      CALL set_xmlatt
-
-      ! end file definition
-      dtime%second = rdt
-      CALL xios_set_timestep(dtime)
-      CALL xios_close_context_definition()
-      
-      CALL xios_update_calendar(0)
-
-      DEALLOCATE( z_bnds )
-
-
       
    END SUBROUTINE iom_init
@@ -170,15 +76,4 @@
       !!---------------------------------------------------------------------
       CHARACTER(len=*), INTENT(in) :: cdname
-
-      TYPE(xios_context) :: nemo_hdl
-
-      IF( TRIM(Agrif_CFixed()) == '0' ) THEN
-        CALL xios_get_handle(TRIM(cdname),nemo_hdl)
-      ELSE
-        CALL xios_get_handle(TRIM(Agrif_CFixed())//"_"//TRIM(cdname),nemo_hdl)
-      ENDIF
-      !
-      CALL xios_set_current_context(nemo_hdl)
-
       !
    END SUBROUTINE iom_swap
@@ -201,5 +96,5 @@
       CHARACTER(LEN=256)    ::   clname    ! the name of the file based on cdname [[+clcpu]+clcpu]
       CHARACTER(LEN=256)    ::   cltmpn    ! tempory name to store clname (in writting mode)
-      CHARACTER(LEN=10)     ::   clsuffix  ! ".nc" 
+      CHARACTER(LEN=10)     ::   clsuffix  ! ".nc" or ".dimg"
       CHARACTER(LEN=15)     ::   clcpu     ! the cpu number (max jpmax_digits digits)
       CHARACTER(LEN=256)    ::   clinfo    ! info character
@@ -266,5 +161,4 @@
       CASE (jpnf90   ) ;   clsuffix = '.nc'
       CASE DEFAULT     ;   clsuffix = ''
-         CALL ctl_stop( TRIM(clinfo), 'accepted IO library is only jpnf90 (jpioipsl option has been removed) ' )
       END SELECT
       ! Add the suffix if needed
@@ -279,6 +173,5 @@
       IF( .NOT.llok ) THEN
          ! we try to add the cpu number to the name
-         WRITE(clcpu,*) narea-1
-
+            WRITE(clcpu,*) narea-1
          clcpu  = TRIM(ADJUSTL(clcpu))
          iln = INDEX(clname,TRIM(clsuffix), back = .TRUE.)
@@ -327,5 +220,5 @@
          END SELECT
       ENDIF
-      ! Open the NetCDF file
+      ! Open the NetCDF or RSTDIMG file
       ! =============
       ! do we have some free file identifier?
@@ -353,5 +246,4 @@
          CASE (jpnf90   )   ;   CALL iom_nf90_open(    clname, kiomid, llwrt, llok, idompar )
          CASE DEFAULT
-            CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed) ' )
          END SELECT
       ENDIF
@@ -390,5 +282,4 @@
                CASE (jpnf90   )   ;   CALL iom_nf90_close(    jf )
                CASE DEFAULT
-                  CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
                END SELECT
                iom_file(jf)%nfid       = 0          ! free the id 
@@ -446,6 +337,5 @@
                   SELECT CASE (iom_file(kiomid)%iolib)
                   CASE (jpnf90   )   ;   iom_varid = iom_nf90_varid  ( kiomid, cdvar, iiv, kdimsz, kndims )
-                  CASE DEFAULT
-                     CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+                  CASE DEFAULT   
                   END SELECT
                ELSE
@@ -506,6 +396,5 @@
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar, itime )
-            CASE DEFAULT
-               CALL ctl_stop( 'iom_g0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+            CASE DEFAULT    
             END SELECT
          ENDIF
@@ -617,5 +506,4 @@
       CHARACTER(LEN=256)             ::   clname      ! file name
       CHARACTER(LEN=1)               ::   clrankpv, cldmspc      ! 
-      LOGICAL                        ::   ll_depth_spec ! T => if kstart, kcount present then *only* use values for 3rd spatial dimension.
       !---------------------------------------------------------------------
       !
@@ -630,6 +518,5 @@
       IF( PRESENT(kcount) .AND. (.NOT. PRESENT(kstart)) ) CALL ctl_stop(trim(clinfo), 'kcount present needs kstart present')
       IF( PRESENT(kstart) .AND. (.NOT. PRESENT(kcount)) ) CALL ctl_stop(trim(clinfo), 'kstart present needs kcount present')
-      IF( PRESENT(kstart) .AND. idom /= jpdom_unknown .AND.  idom /= jpdom_autoglo_xy  ) &
-     &           CALL ctl_stop(trim(clinfo), 'kstart present needs kdom = jpdom_unknown or kdom = jpdom_autoglo_xy')
+      IF( PRESENT(kstart) .AND. idom /= jpdom_unknown   ) CALL ctl_stop(trim(clinfo), 'kstart present needs kdom = jpdom_unknown')
 
       luse_jattr = .false.
@@ -643,5 +530,4 @@
              ! Ok
          CASE DEFAULT    
-            CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
          END SELECT
       ENDIF
@@ -661,10 +547,4 @@
          ! update idom definition...
          ! Identify the domain in case of jpdom_auto(glo/dta) definition
-         IF( idom == jpdom_autoglo_xy ) THEN
-            ll_depth_spec = .TRUE.
-            idom = jpdom_autoglo
-         ELSE
-            ll_depth_spec = .FALSE.
-         ENDIF
          IF( idom == jpdom_autoglo .OR. idom == jpdom_autodta ) THEN            
             IF( idom == jpdom_autoglo ) THEN   ;   idom = jpdom_global 
@@ -720,7 +600,7 @@
          istart(idmspc+1) = itime
 
-         IF( PRESENT(kstart) .AND. .NOT. ll_depth_spec ) THEN ; istart(1:idmspc) = kstart(1:idmspc) ; icnt(1:idmspc) = kcount(1:idmspc)
+         IF(              PRESENT(kstart)       ) THEN ; istart(1:idmspc) = kstart(1:idmspc) ; icnt(1:idmspc) = kcount(1:idmspc)
          ELSE
-            IF(           idom == jpdom_unknown ) THEN                                                ; icnt(1:idmspc) = idimsz(1:idmspc)
+            IF(           idom == jpdom_unknown ) THEN                                       ; icnt(1:idmspc) = idimsz(1:idmspc)
             ELSE 
                IF( .NOT. PRESENT(pv_r1d) ) THEN   !   not a 1D array
@@ -745,7 +625,6 @@
                   ENDIF
                   IF( PRESENT(pv_r3d) ) THEN
-                     IF( idom == jpdom_data ) THEN                                  ; icnt(3) = jpkdta
-                     ELSE IF( ll_depth_spec .AND. PRESENT(kstart) ) THEN            ; istart(3) = kstart(3); icnt(3) = kcount(3)
-                     ELSE                                                           ; icnt(3) = jpk
+                     IF( idom == jpdom_data ) THEN   ; icnt(3) = jpkdta
+                     ELSE                            ; icnt(3) = jpk
                      ENDIF
                   ENDIF
@@ -818,6 +697,5 @@
          CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2,   &
             &                                         pv_r1d, pv_r2d, pv_r3d )
-         CASE DEFAULT
-            CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+         CASE DEFAULT    
          END SELECT
 
@@ -845,8 +723,12 @@
                IF( zofs /= 0. )   pv_r1d(:) = pv_r1d(:) + zofs
             ELSEIF( PRESENT(pv_r2d) ) THEN
+!CDIR COLLAPSE
                IF( zscf /= 1.)   pv_r2d(:,:) = pv_r2d(:,:) * zscf
+!CDIR COLLAPSE
                IF( zofs /= 0.)   pv_r2d(:,:) = pv_r2d(:,:) + zofs
             ELSEIF( PRESENT(pv_r3d) ) THEN
+!CDIR COLLAPSE
                IF( zscf /= 1.)   pv_r3d(:,:,:) = pv_r3d(:,:,:) * zscf
+!CDIR COLLAPSE
                IF( zofs /= 0.)   pv_r3d(:,:,:) = pv_r3d(:,:,:) + zofs
             ENDIF
@@ -899,6 +781,5 @@
                      SELECT CASE (iom_file(kiomid)%iolib)
                      CASE (jpnf90   )   ;   CALL iom_nf90_gettime(   kiomid, idvar, ptime, cdunits, cdcalendar )
-                     CASE DEFAULT
-                        CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+                     CASE DEFAULT    
                      END SELECT
                   ELSE
@@ -932,6 +813,5 @@
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpnf90   )   ;   CALL iom_nf90_getatt( kiomid, cdatt, pvar )
-            CASE DEFAULT
-               CALL ctl_stop( 'iom_g0d_att: accepted IO library is only jpnf90' )
+            CASE DEFAULT    
             END SELECT
          ENDIF
@@ -956,6 +836,5 @@
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar )
-            CASE DEFAULT
-               CALL ctl_stop( 'iom_rp0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+            CASE DEFAULT     
             END SELECT
          ENDIF
@@ -976,6 +855,5 @@
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar )
-            CASE DEFAULT
-               CALL ctl_stop( 'iom_rp1d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+            CASE DEFAULT     
             END SELECT
          ENDIF
@@ -996,6 +874,5 @@
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar )
-            CASE DEFAULT
-               CALL ctl_stop( 'iom_rp2d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+            CASE DEFAULT     
             END SELECT
          ENDIF
@@ -1016,6 +893,5 @@
             SELECT CASE (iom_file(kiomid)%iolib)
             CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar )
-            CASE DEFAULT
-               CALL ctl_stop( 'iom_rp3d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' )
+            CASE DEFAULT     
             END SELECT
          ENDIF
@@ -1031,11 +907,5 @@
       REAL(wp)        , INTENT(in) ::   pfield0d
       REAL(wp)        , DIMENSION(jpi,jpj) ::   zz     ! masson
-
-      zz(:,:)=pfield0d
-      CALL xios_send_field(cdname, zz)
-      !CALL xios_send_field(cdname, (/pfield0d/)) 
-
-
-
+      IF( .FALSE. )   WRITE(numout,*) cdname, pfield0d   ! useless test to avoid compilation warnings
    END SUBROUTINE iom_p0d
 
@@ -1043,9 +913,5 @@
       CHARACTER(LEN=*)          , INTENT(in) ::   cdname
       REAL(wp),     DIMENSION(:), INTENT(in) ::   pfield1d
-
-      CALL xios_send_field( cdname, RESHAPE( (/pfield1d/), (/1,1,SIZE(pfield1d)/) ) )
-
-
-
+      IF( .FALSE. )   WRITE(numout,*) cdname, pfield1d   ! useless test to avoid compilation warnings
    END SUBROUTINE iom_p1d
 
@@ -1053,9 +919,5 @@
       CHARACTER(LEN=*)            , INTENT(in) ::   cdname
       REAL(wp),     DIMENSION(:,:), INTENT(in) ::   pfield2d
-
-      CALL xios_send_field(cdname, pfield2d)
-
-
-
+      IF( .FALSE. )   WRITE(numout,*) cdname, pfield2d   ! useless test to avoid compilation warnings
    END SUBROUTINE iom_p2d
 
@@ -1063,9 +925,5 @@
       CHARACTER(LEN=*)                , INTENT(in) ::   cdname
       REAL(wp),       DIMENSION(:,:,:), INTENT(in) ::   pfield3d
-
-      CALL xios_send_field(cdname, pfield3d)
-
-
-
+      IF( .FALSE. )   WRITE(numout,*) cdname, pfield3d   ! useless test to avoid compilation warnings
    END SUBROUTINE iom_p3d
    !!----------------------------------------------------------------------
@@ -1073,596 +931,19 @@
 
 
-   SUBROUTINE iom_set_domain_attr( cdid, ni_glo, nj_glo, ibegin, jbegin, ni, nj, zoom_ibegin, zoom_jbegin, zoom_ni, zoom_nj,   &
-      &                                    data_dim, data_ibegin, data_ni, data_jbegin, data_nj, lonvalue, latvalue, mask,     &
-      &                                    nvertex, bounds_lon, bounds_lat, area )
-      CHARACTER(LEN=*)                   , INTENT(in) ::   cdid
-      INTEGER                  , OPTIONAL, INTENT(in) ::   ni_glo, nj_glo, ibegin, jbegin, ni, nj
-      INTEGER                  , OPTIONAL, INTENT(in) ::   data_dim, data_ibegin, data_ni, data_jbegin, data_nj
-      INTEGER                  , OPTIONAL, INTENT(in) ::   zoom_ibegin, zoom_jbegin, zoom_ni, zoom_nj, nvertex
-      REAL(wp), DIMENSION(:)   , OPTIONAL, INTENT(in) ::   lonvalue, latvalue
-      REAL(wp), DIMENSION(:,:) , OPTIONAL, INTENT(in) ::   bounds_lon, bounds_lat, area
-      LOGICAL,  DIMENSION(:,:) , OPTIONAL, INTENT(in) ::   mask
-
-      IF ( xios_is_valid_domain     (cdid) ) THEN
-         CALL xios_set_domain_attr     ( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   &
-            &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   &
-            &    zoom_ibegin=zoom_ibegin, zoom_jbegin=zoom_jbegin, zoom_ni=zoom_ni, zoom_nj=zoom_nj,                       &
-            &    lonvalue=lonvalue, latvalue=latvalue, mask=mask, nvertex=nvertex, bounds_lon=bounds_lon,                  &
-            &    bounds_lat=bounds_lat, area=area )
-      ENDIF
-
-      IF ( xios_is_valid_domaingroup(cdid) ) THEN
-         CALL xios_set_domaingroup_attr( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   &
-            &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   &
-            &    zoom_ibegin=zoom_ibegin, zoom_jbegin=zoom_jbegin, zoom_ni=zoom_ni, zoom_nj=zoom_nj,                       &
-            &    lonvalue=lonvalue, latvalue=latvalue, mask=mask, nvertex=nvertex, bounds_lon=bounds_lon,                  &
-            &    bounds_lat=bounds_lat, area=area )
-      ENDIF
-      CALL xios_solve_inheritance()
-
-   END SUBROUTINE iom_set_domain_attr
-
-
-   SUBROUTINE iom_set_axis_attr( cdid, paxis, bounds )
-      CHARACTER(LEN=*)      , INTENT(in) ::   cdid
-      REAL(wp), DIMENSION(:)  , OPTIONAL, INTENT(in) ::   paxis
-      REAL(wp), DIMENSION(:,:), OPTIONAL, INTENT(in) ::   bounds
-      IF ( PRESENT(paxis) ) THEN
-         IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, size=SIZE(paxis), value=paxis )
-         IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, size=SIZE(paxis), value=paxis )
-      ENDIF
-      IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, bounds=bounds )
-      IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, bounds=bounds )
-      CALL xios_solve_inheritance()
-   END SUBROUTINE iom_set_axis_attr
-
-
-   SUBROUTINE iom_set_field_attr( cdid, freq_op, freq_offset )
-      CHARACTER(LEN=*)          , INTENT(in) ::   cdid
-      CHARACTER(LEN=*),OPTIONAL , INTENT(in) ::   freq_op
-      CHARACTER(LEN=*),OPTIONAL , INTENT(in) ::   freq_offset
-      IF ( xios_is_valid_field     (cdid) )   CALL xios_set_field_attr       &
-    &     ( cdid, freq_op=freq_op, freq_offset=freq_offset )
-      IF ( xios_is_valid_fieldgroup(cdid) )   CALL xios_set_fieldgroup_attr  &
-    &                    ( cdid, freq_op=freq_op, freq_offset=freq_offset )
-      CALL xios_solve_inheritance()
-   END SUBROUTINE iom_set_field_attr
-
-
-   SUBROUTINE iom_set_file_attr( cdid, name, name_suffix )
-      CHARACTER(LEN=*)          , INTENT(in) ::   cdid
-      CHARACTER(LEN=*),OPTIONAL , INTENT(in) ::   name, name_suffix
-      IF ( xios_is_valid_file     (cdid) )   CALL xios_set_file_attr     ( cdid, name=name, name_suffix=name_suffix )
-      IF ( xios_is_valid_filegroup(cdid) )   CALL xios_set_filegroup_attr( cdid, name=name, name_suffix=name_suffix )
-      CALL xios_solve_inheritance()
-   END SUBROUTINE iom_set_file_attr
-
-
-   SUBROUTINE iom_get_file_attr( cdid, name, name_suffix, output_freq )
-      CHARACTER(LEN=*)          , INTENT(in ) ::   cdid
-      CHARACTER(LEN=*),OPTIONAL , INTENT(out) ::   name, name_suffix, output_freq
-      LOGICAL                                 ::   llexist1,llexist2,llexist3
-      !---------------------------------------------------------------------
-      IF( PRESENT( name        ) )   name = ''          ! default values
-      IF( PRESENT( name_suffix ) )   name_suffix = ''
-      IF( PRESENT( output_freq ) )   output_freq = ''
-      IF ( xios_is_valid_file     (cdid) ) THEN
-         CALL xios_solve_inheritance()
-         CALL xios_is_defined_file_attr     ( cdid, name = llexist1, name_suffix = llexist2, output_freq = llexist3)
-         IF(llexist1)   CALL xios_get_file_attr     ( cdid, name = name )
-         IF(llexist2)   CALL xios_get_file_attr     ( cdid, name_suffix = name_suffix )
-         IF(llexist3)   CALL xios_get_file_attr     ( cdid, output_freq = output_freq )
-      ENDIF
-      IF ( xios_is_valid_filegroup(cdid) ) THEN
-         CALL xios_solve_inheritance()
-         CALL xios_is_defined_filegroup_attr( cdid, name = llexist1, name_suffix = llexist2, output_freq = llexist3)
-         IF(llexist1)   CALL xios_get_filegroup_attr( cdid, name = name )
-         IF(llexist2)   CALL xios_get_filegroup_attr( cdid, name_suffix = name_suffix )
-         IF(llexist3)   CALL xios_get_filegroup_attr( cdid, output_freq = output_freq )
-      ENDIF
-   END SUBROUTINE iom_get_file_attr
-
-
-   SUBROUTINE iom_set_grid_attr( cdid, mask )
-      CHARACTER(LEN=*)                   , INTENT(in) ::   cdid
-      LOGICAL, DIMENSION(:,:,:), OPTIONAL, INTENT(in) ::   mask
-      IF ( xios_is_valid_grid     (cdid) )   CALL xios_set_grid_attr     ( cdid, mask=mask )
-      IF ( xios_is_valid_gridgroup(cdid) )   CALL xios_set_gridgroup_attr( cdid, mask=mask )
-      CALL xios_solve_inheritance()
-   END SUBROUTINE iom_set_grid_attr
-
    SUBROUTINE iom_setkt( kt, cdname )
-      INTEGER         , INTENT(in) ::   kt 
+      INTEGER         , INTENT(in)::   kt 
       CHARACTER(LEN=*), INTENT(in) ::   cdname
-      !     
-      CALL iom_swap( cdname )   ! swap to cdname context
-      CALL xios_update_calendar(kt)
-      IF( cdname /= TRIM(cxios_context) ) CALL iom_swap( TRIM(cxios_context) )   ! return back to nemo context
-      !
+      IF( .FALSE. )   WRITE(numout,*) kt, cdname   ! useless test to avoid compilation warnings
    END SUBROUTINE iom_setkt
 
    SUBROUTINE iom_context_finalize( cdname )
-      CHARACTER(LEN=*), INTENT(in) :: cdname
-      !
-      IF( xios_is_valid_context(cdname) ) THEN
-         CALL iom_swap( cdname )   ! swap to cdname context
-         CALL xios_context_finalize() ! finalize the context
-         IF( cdname /= TRIM(cxios_context) ) CALL iom_swap( TRIM(cxios_context) )   ! return back to nemo context
-      ENDIF
-      !
+      CHARACTER(LEN=*), INTENT(in) ::   cdname
+      IF( .FALSE. )   WRITE(numout,*)  cdname   ! useless test to avoid compilation warnings
    END SUBROUTINE iom_context_finalize
-
-
-   SUBROUTINE set_grid( cdgrd, plon, plat )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE set_grid  ***
-      !!
-      !! ** Purpose :   define horizontal grids
-      !!
-      !!----------------------------------------------------------------------
-      CHARACTER(LEN=1)            , INTENT(in) ::   cdgrd
-      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   plon
-      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   plat
-      !
-      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmask
-      INTEGER  :: ni,nj
-      
-      ni=nlei-nldi+1 ; nj=nlej-nldj+1
-
-      CALL iom_set_domain_attr("grid_"//cdgrd, ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-1, jbegin=njmpp+nldj-1, ni=ni, nj=nj)
-      CALL iom_set_domain_attr("grid_"//cdgrd, data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj)
-      CALL iom_set_domain_attr("grid_"//cdgrd, lonvalue = RESHAPE(plon(nldi:nlei, nldj:nlej),(/ ni*nj /)),   &
-         &                                     latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))  
-
-      IF ( ln_mskland ) THEN
-         ! mask land points, keep values on coast line -> specific mask for U, V and W points
-         SELECT CASE ( cdgrd )
-         CASE('T')   ;   zmask(:,:,:)       = tmask(:,:,:)
-         CASE('U')   ;   zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:)   ;   CALL lbc_lnk( zmask, 'U', 1. )
-         CASE('V')   ;   zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:)   ;   CALL lbc_lnk( zmask, 'V', 1. )
-         CASE('W')   ;   zmask(:,:,2:jpk  ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk)   ;   zmask(:,:,1) = tmask(:,:,1)
-         END SELECT
-         !
-         CALL iom_set_domain_attr( "grid_"//cdgrd       , mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,1),(/ni,nj    /)) /= 0. )
-         CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D", mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,:),(/ni,nj,jpk/)) /= 0. )
-      ENDIF
-      
-   END SUBROUTINE set_grid
-
-
-   SUBROUTINE set_grid_bounds( cdgrd, plon_cnr, plat_cnr, plon_pnt, plat_pnt )
-      !!----------------------------------------------------------------------
-      !!                   ***  ROUTINE set_grid_bounds  ***
-      !!
-      !! ** Purpose :   define horizontal grid corners
-      !!
-      !!----------------------------------------------------------------------
-      CHARACTER(LEN=1) , INTENT(in) :: cdgrd
-      !
-      REAL(wp), DIMENSION(jpi,jpj), INTENT(in)           :: plon_cnr, plat_cnr  ! Lat/lon coordinates of a contiguous vertex of cell (i,j)
-      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) :: plon_pnt, plat_pnt  ! Lat/lon coordinates of the point of cell (i,j)
-      !
-      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:)   :: z_bnds      ! Lat/lon coordinates of the vertices of cell (i,j)
-      REAL(wp), ALLOCATABLE, DIMENSION(:,:)       :: z_fld       ! Working array to determine where to rotate cells
-      REAL(wp), ALLOCATABLE, DIMENSION(:,:)       :: z_rot       ! Lat/lon working array for rotation of cells
-      !
-      INTEGER :: icnr, jcnr                                      ! Offset such that the vertex coordinate (i+icnr,j+jcnr)
-      !                                                          ! represents the bottom-left corner of cell (i,j)
-      INTEGER :: ji, jj, jn, ni, nj
-
-      ALLOCATE( z_bnds(4,jpi,jpj,2), z_fld(jpi,jpj), z_rot(4,2)  )
-
-      ! Offset of coordinate representing bottom-left corner
-      SELECT CASE ( TRIM(cdgrd) )
-         CASE ('T', 'W')
-            icnr = -1 ; jcnr = -1
-         CASE ('U')
-            icnr =  0 ; jcnr = -1
-         CASE ('V')
-            icnr = -1 ; jcnr =  0
-      END SELECT
-
-      ni = nlei-nldi+1 ; nj = nlej-nldj+1  ! Dimensions of subdomain interior
-
-      z_fld(:,:) = 1._wp
-      CALL lbc_lnk( z_fld, cdgrd, -1. )    ! Working array for location of northfold
-
-      ! Cell vertices that can be defined
-      DO jj = 2, jpjm1
-         DO ji = 2, jpim1
-            z_bnds(1,ji,jj,1) = plat_cnr(ji+icnr,  jj+jcnr  ) ! Bottom-left
-            z_bnds(2,ji,jj,1) = plat_cnr(ji+icnr+1,jj+jcnr  ) ! Bottom-right
-            z_bnds(3,ji,jj,1) = plat_cnr(ji+icnr+1,jj+jcnr+1) ! Top-right
-            z_bnds(4,ji,jj,1) = plat_cnr(ji+icnr,  jj+jcnr+1) ! Top-left
-            z_bnds(1,ji,jj,2) = plon_cnr(ji+icnr,  jj+jcnr  ) ! Bottom-left
-            z_bnds(2,ji,jj,2) = plon_cnr(ji+icnr+1,jj+jcnr  ) ! Bottom-right
-            z_bnds(3,ji,jj,2) = plon_cnr(ji+icnr+1,jj+jcnr+1) ! Top-right
-            z_bnds(4,ji,jj,2) = plon_cnr(ji+icnr,  jj+jcnr+1) ! Top-left
-         END DO
-      END DO
-
-      ! Cell vertices on boundries
-      DO jn = 1, 4
-         CALL lbc_lnk( z_bnds(jn,:,:,1), cdgrd, 1., pval=999._wp )
-         CALL lbc_lnk( z_bnds(jn,:,:,2), cdgrd, 1., pval=999._wp )
-      END DO
-
-      ! Zero-size cells at closed boundaries if cell points provided,
-      ! otherwise they are closed cells with unrealistic bounds
-      IF( PRESENT(plon_pnt) .AND. PRESENT(plat_pnt) ) THEN
-         IF( (nbondi == -1 .OR. nbondi == 2) .AND. .NOT. (jperio == 1 .OR. jperio == 4 .OR. jperio == 6) ) THEN
-            DO jn = 1, 4        ! (West or jpni = 1), closed E-W
-               z_bnds(jn,1,:,1) = plat_pnt(1,:)  ;  z_bnds(jn,1,:,2) = plon_pnt(1,:)
-            END DO
-         ENDIF
-         IF( (nbondi == 1 .OR. nbondi == 2) .AND. .NOT. (jperio == 1 .OR. jperio == 4 .OR. jperio == 6) ) THEN
-            DO jn = 1, 4        ! (East or jpni = 1), closed E-W
-               z_bnds(jn,nlci,:,1) = plat_pnt(nlci,:)  ;  z_bnds(jn,nlci,:,2) = plon_pnt(nlci,:)
-            END DO
-         ENDIF
-         IF( nbondj == -1 .OR. (nbondj == 2 .AND. jperio /= 2) ) THEN
-            DO jn = 1, 4        ! South or (jpnj = 1, not symmetric)
-               z_bnds(jn,:,1,1) = plat_pnt(:,1)  ;  z_bnds(jn,:,1,2) = plon_pnt(:,1)
-            END DO
-         ENDIF
-         IF( (nbondj == 1 .OR. nbondj == 2) .AND. jperio  < 3 ) THEN
-            DO jn = 1, 4        ! (North or jpnj = 1), no north fold
-               z_bnds(jn,:,nlcj,1) = plat_pnt(:,nlcj)  ;  z_bnds(jn,:,nlcj,2) = plon_pnt(:,nlcj)
-            END DO
-         ENDIF
-      ENDIF
-
-      ! Rotate cells at the north fold
-      IF( (nbondj == 1 .OR. nbondj == 2) .AND. jperio >= 3 ) THEN
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               IF( z_fld(ji,jj) == -1. ) THEN
-                  z_rot(1,:) = z_bnds(3,ji,jj,:) ; z_rot(2,:) = z_bnds(4,ji,jj,:)
-                  z_rot(3,:) = z_bnds(1,ji,jj,:) ; z_rot(4,:) = z_bnds(2,ji,jj,:)
-                  z_bnds(:,ji,jj,:) = z_rot(:,:)
-               ENDIF
-            END DO
-         END DO
-
-      ! Invert cells at the symmetric equator
-      ELSE IF( nbondj == 2 .AND. jperio == 2 ) THEN
-         DO ji = 1, jpi
-            z_rot(1:2,:) = z_bnds(3:4,ji,1,:)
-            z_rot(3:4,:) = z_bnds(1:2,ji,1,:)
-            z_bnds(:,ji,1,:) = z_rot(:,:)
-         END DO
-      ENDIF
-
-      CALL iom_set_domain_attr("grid_"//cdgrd, bounds_lat = RESHAPE(z_bnds(:,nldi:nlei,nldj:nlej,1),(/ 4,ni*nj /)),           &
-                                               bounds_lon = RESHAPE(z_bnds(:,nldi:nlei,nldj:nlej,2),(/ 4,ni*nj /)), nvertex=4 )
-
-      DEALLOCATE( z_bnds, z_fld, z_rot ) 
-
-   END SUBROUTINE set_grid_bounds
-
-
-   SUBROUTINE set_grid_znl( plat )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE set_grid_znl  ***
-      !!
-      !! ** Purpose :   define grids for zonal mean
-      !!
-      !!----------------------------------------------------------------------
-      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   plat
-      !
-      REAL(wp), DIMENSION(:), ALLOCATABLE  ::   zlon
-      INTEGER  :: ni,nj, ix, iy
-
-      
-      ni=nlei-nldi+1 ; nj=nlej-nldj+1            ! define zonal mean domain (jpj*jpk)
-      ALLOCATE( zlon(ni*nj) )       ;       zlon(:) = 0.
-
-      CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-1, jbegin=njmpp+nldj-1, ni=ni, nj=nj)
-      CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj)
-      CALL iom_set_domain_attr("gznl", lonvalue = zlon,   &
-         &                             latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))  
-      !
-      CALL dom_ngb( 180., 90., ix, iy, 'T' ) !  i-line that passes near the North Pole : Reference latitude (used in plots)
-      CALL iom_set_domain_attr ('ptr', zoom_ibegin=ix, zoom_nj=jpjglo)
-      CALL iom_update_file_name('ptr')
-      !
-   END SUBROUTINE set_grid_znl
-
-   SUBROUTINE set_scalar
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE set_scalar  ***
-      !!
-      !! ** Purpose :   define fake grids for scalar point
-      !!
-      !!----------------------------------------------------------------------
-      REAL(wp), DIMENSION(1)   ::   zz = 1.
-      !!----------------------------------------------------------------------
-      CALL iom_set_domain_attr('scalarpoint', ni_glo=jpnij, nj_glo=1, ibegin=narea, jbegin=1, ni=1, nj=1)
-      CALL iom_set_domain_attr('scalarpoint', data_dim=2, data_ibegin = 1, data_ni = 1, data_jbegin = 1, data_nj = 1)
-      
-      zz=REAL(narea,wp)
-      CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz)
-
-   END SUBROUTINE set_scalar
-
-
-   SUBROUTINE set_xmlatt
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE set_xmlatt  ***
-      !!
-      !! ** Purpose :   automatic definitions of some of the xml attributs...
-      !!
-      !!----------------------------------------------------------------------
-      CHARACTER(len=1),DIMENSION( 3) ::   clgrd                    ! suffix name
-      CHARACTER(len=256)             ::   clsuff                   ! suffix name
-      CHARACTER(len=1)               ::   cl1                      ! 1 character
-      CHARACTER(len=2)               ::   cl2                      ! 2 characters
-      CHARACTER(len=3)               ::   cl3                      ! 3 characters
-      INTEGER                        ::   ji, jg                   ! loop counters
-      INTEGER                        ::   ix, iy                   ! i-,j- index
-      REAL(wp)        ,DIMENSION(11) ::   zlontao                  ! longitudes of tao    moorings
-      REAL(wp)        ,DIMENSION( 7) ::   zlattao                  ! latitudes  of tao    moorings
-      REAL(wp)        ,DIMENSION( 4) ::   zlonrama                 ! longitudes of rama   moorings
-      REAL(wp)        ,DIMENSION(11) ::   zlatrama                 ! latitudes  of rama   moorings
-      REAL(wp)        ,DIMENSION( 3) ::   zlonpira                 ! longitudes of pirata moorings
-      REAL(wp)        ,DIMENSION( 9) ::   zlatpira                 ! latitudes  of pirata moorings
-      !!----------------------------------------------------------------------
-      ! 
-      ! frequency of the call of iom_put (attribut: freq_op)
-      WRITE(cl1,'(i1)')        1   ;   CALL iom_set_field_attr('field_definition', freq_op = cl1//'ts', freq_offset='0ts')
-       
-      ! output file names (attribut: name)
-      DO ji = 1, 9
-         WRITE(cl1,'(i1)') ji 
-         CALL iom_update_file_name('file'//cl1)
-      END DO
-      DO ji = 1, 99
-         WRITE(cl2,'(i2.2)') ji 
-         CALL iom_update_file_name('file'//cl2)
-      END DO
-      DO ji = 1, 999
-         WRITE(cl3,'(i3.3)') ji 
-         CALL iom_update_file_name('file'//cl3)
-      END DO
-
-      ! Zooms...
-      clgrd = (/ 'T', 'U', 'W' /) 
-      DO jg = 1, SIZE(clgrd)                                                                   ! grid type
-         cl1 = clgrd(jg)
-         ! Equatorial section (attributs: jbegin, ni, name_suffix)
-         CALL dom_ngb( 0., 0., ix, iy, cl1 )
-         CALL iom_set_domain_attr ('Eq'//cl1, zoom_jbegin=iy, zoom_ni=jpiglo)
-         CALL iom_get_file_attr   ('Eq'//cl1, name_suffix = clsuff             )
-         CALL iom_set_file_attr   ('Eq'//cl1, name_suffix = TRIM(clsuff)//'_Eq')
-         CALL iom_update_file_name('Eq'//cl1)
-      END DO
-      ! TAO moorings (attributs: ibegin, jbegin, name_suffix)
-      zlontao = (/ 137.0, 147.0, 156.0, 165.0, -180.0, -170.0, -155.0, -140.0, -125.0, -110.0, -95.0 /)
-      zlattao = (/  -8.0,  -5.0,  -2.0,   0.0,    2.0,    5.0,    8.0 /)
-      CALL set_mooring( zlontao, zlattao )
-      ! RAMA moorings (attributs: ibegin, jbegin, name_suffix)
-      zlonrama = (/  55.0,  67.0, 80.5, 90.0 /)
-      zlatrama = (/ -16.0, -12.0, -8.0, -4.0, -1.5, 0.0, 1.5, 4.0, 8.0, 12.0, 15.0 /)
-      CALL set_mooring( zlonrama, zlatrama )
-      ! PIRATA moorings (attributs: ibegin, jbegin, name_suffix)
-      zlonpira = (/ -38.0, -23.0, -10.0 /)
-      zlatpira = (/ -19.0, -14.0,  -8.0, 0.0, 4.0, 8.0, 12.0, 15.0, 20.0 /)
-      CALL set_mooring( zlonpira, zlatpira )
-
-      
-   END SUBROUTINE set_xmlatt
-
-
-   SUBROUTINE set_mooring( plon, plat)
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE set_mooring  ***
-      !!
-      !! ** Purpose :   automatic definitions of moorings xml attributs...
-      !!
-      !!----------------------------------------------------------------------
-      REAL(wp), DIMENSION(:), INTENT(in) ::  plon, plat           ! longitudes/latitudes oft the mooring
-      !
-!!$      CHARACTER(len=1),DIMENSION(4) ::   clgrd = (/ 'T', 'U', 'V', 'W' /)   ! suffix name
-      CHARACTER(len=1),DIMENSION(1) ::   clgrd = (/ 'T' /)        ! suffix name
-      CHARACTER(len=256)            ::   clname                   ! file name
-      CHARACTER(len=256)            ::   clsuff                   ! suffix name
-      CHARACTER(len=1)              ::   cl1                      ! 1 character
-      CHARACTER(len=6)              ::   clon,clat                ! name of longitude, latitude
-      INTEGER                       ::   ji, jj, jg               ! loop counters
-      INTEGER                       ::   ix, iy                   ! i-,j- index
-      REAL(wp)                      ::   zlon, zlat
-      !!----------------------------------------------------------------------
-      DO jg = 1, SIZE(clgrd)
-         cl1 = clgrd(jg)
-         DO ji = 1, SIZE(plon)
-            DO jj = 1, SIZE(plat)
-               zlon = plon(ji)
-               zlat = plat(jj)
-               ! modifications for RAMA moorings
-               IF( zlon ==  67. .AND. zlat ==  15. )   zlon =  65.
-               IF( zlon ==  90. .AND. zlat <=  -4. )   zlon =  95.
-               IF( zlon ==  95. .AND. zlat ==  -4. )   zlat =  -5.
-               ! modifications for PIRATA moorings
-               IF( zlon == -38. .AND. zlat == -19. )   zlon = -34.
-               IF( zlon == -38. .AND. zlat == -14. )   zlon = -32.
-               IF( zlon == -38. .AND. zlat ==  -8. )   zlon = -30.
-               IF( zlon == -38. .AND. zlat ==   0. )   zlon = -35.
-               IF( zlon == -23. .AND. zlat ==  20. )   zlat =  21.
-               IF( zlon == -10. .AND. zlat == -14. )   zlat = -10.
-               IF( zlon == -10. .AND. zlat ==  -8. )   zlat =  -6.
-               IF( zlon == -10. .AND. zlat ==   4. ) THEN   ;   zlon = 0.   ;   zlat = 0.   ;   ENDIF
-               CALL dom_ngb( zlon, zlat, ix, iy, cl1 )
-               IF( zlon >= 0. ) THEN  
-                  IF( zlon == REAL(NINT(zlon), wp) ) THEN   ;   WRITE(clon, '(i3,  a)') NINT( zlon), 'e'
-                  ELSE                                      ;   WRITE(clon, '(f5.1,a)')       zlon , 'e'
-                  ENDIF
-               ELSE             
-                  IF( zlon == REAL(NINT(zlon), wp) ) THEN   ;   WRITE(clon, '(i3,  a)') NINT(-zlon), 'w'
-                  ELSE                                      ;   WRITE(clon, '(f5.1,a)')      -zlon , 'w'
-                  ENDIF
-               ENDIF
-               IF( zlat >= 0. ) THEN  
-                  IF( zlat == REAL(NINT(zlat), wp) ) THEN   ;   WRITE(clat, '(i2,  a)') NINT( zlat), 'n'
-                  ELSE                                      ;   WRITE(clat, '(f4.1,a)')       zlat , 'n'
-                  ENDIF
-               ELSE             
-                  IF( zlat == REAL(NINT(zlat), wp) ) THEN   ;   WRITE(clat, '(i2,  a)') NINT(-zlat), 's'
-                  ELSE                                      ;   WRITE(clat, '(f4.1,a)')      -zlat , 's'
-                  ENDIF
-               ENDIF
-               clname = TRIM(ADJUSTL(clat))//TRIM(ADJUSTL(clon))
-               CALL iom_set_domain_attr (TRIM(clname)//cl1, zoom_ibegin= ix, zoom_jbegin= iy)
-               CALL iom_get_file_attr   (TRIM(clname)//cl1, name_suffix = clsuff                         )
-               CALL iom_set_file_attr   (TRIM(clname)//cl1, name_suffix = TRIM(clsuff)//'_'//TRIM(clname))
-               CALL iom_update_file_name(TRIM(clname)//cl1)
-            END DO
-         END DO
-      END DO
-      
-   END SUBROUTINE set_mooring
-
-   
-   SUBROUTINE iom_update_file_name( cdid )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE iom_update_file_name  ***
-      !!
-      !! ** Purpose :   
-      !!
-      !!----------------------------------------------------------------------
-      CHARACTER(LEN=*)          , INTENT(in) ::   cdid
-      !
-      CHARACTER(LEN=256) ::   clname
-      CHARACTER(LEN=20)  ::   clfreq
-      CHARACTER(LEN=20)  ::   cldate
-      INTEGER            ::   idx
-      INTEGER            ::   jn
-      INTEGER            ::   itrlen
-      INTEGER            ::   iyear, imonth, iday, isec
-      REAL(wp)           ::   zsec
-      LOGICAL            ::   llexist
-      !!----------------------------------------------------------------------
-
-      DO jn = 1,2
-
-         IF( jn == 1 )   CALL iom_get_file_attr( cdid, name        = clname, output_freq = clfreq )
-         IF( jn == 2 )   CALL iom_get_file_attr( cdid, name_suffix = clname )
-
-         IF ( TRIM(clname) /= '' ) THEN 
-
-            idx = INDEX(clname,'@expname@') + INDEX(clname,'@EXPNAME@')
-            DO WHILE ( idx /= 0 ) 
-               clname = clname(1:idx-1)//TRIM(cexper)//clname(idx+9:LEN_TRIM(clname))
-               idx = INDEX(clname,'@expname@') + INDEX(clname,'@EXPNAME@')
-            END DO
-
-            idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@')
-            DO WHILE ( idx /= 0 ) 
-               IF ( TRIM(clfreq) /= '' ) THEN
-                  itrlen = LEN_TRIM(clfreq)
-                  IF ( clfreq(itrlen-1:itrlen) == 'mo' ) clfreq = clfreq(1:itrlen-1)
-                  clname = clname(1:idx-1)//TRIM(clfreq)//clname(idx+6:LEN_TRIM(clname))
-               ELSE
-                  CALL ctl_stop('error in the name of file id '//TRIM(cdid),   &
-                     & ' attribute output_freq is undefined -> cannot replace @freq@ in '//TRIM(clname) )
-               ENDIF
-               idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@')
-            END DO
-
-            idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@')
-            DO WHILE ( idx /= 0 ) 
-               cldate = iom_sdate( fjulday - rdt / rday )
-               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+11:LEN_TRIM(clname))
-               idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@')
-            END DO
-
-            idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@')
-            DO WHILE ( idx /= 0 ) 
-               cldate = iom_sdate( fjulday - rdt / rday, ldfull = .TRUE. )
-               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+15:LEN_TRIM(clname))
-               idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@')
-            END DO
-
-            idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@')
-            DO WHILE ( idx /= 0 ) 
-               cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. )
-               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+9:LEN_TRIM(clname))
-               idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@')
-            END DO
-
-            idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@')
-            DO WHILE ( idx /= 0 ) 
-               cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. )
-               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+13:LEN_TRIM(clname))
-               idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@')
-            END DO
-
-            IF( jn == 1 .AND. TRIM(Agrif_CFixed()) /= '0' )   clname = TRIM(Agrif_CFixed())//"_"//TRIM(clname)
-            IF( jn == 1 )   CALL iom_set_file_attr( cdid, name        = clname )
-            IF( jn == 2 )   CALL iom_set_file_attr( cdid, name_suffix = clname )
-
-         ENDIF
-
-      END DO
-
-   END SUBROUTINE iom_update_file_name
-
-
-   FUNCTION iom_sdate( pjday, ld24, ldfull )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE iom_sdate  ***
-      !!
-      !! ** Purpose :   send back the date corresponding to the given julian day
-      !!
-      !!----------------------------------------------------------------------
-      REAL(wp), INTENT(in   )           ::   pjday         ! julian day
-      LOGICAL , INTENT(in   ), OPTIONAL ::   ld24          ! true to force 24:00 instead of 00:00
-      LOGICAL , INTENT(in   ), OPTIONAL ::   ldfull        ! true to get the compleate date: yyyymmdd_hh:mm:ss
-      !
-      CHARACTER(LEN=20) ::   iom_sdate
-      CHARACTER(LEN=50) ::   clfmt                         !  format used to write the date 
-      INTEGER           ::   iyear, imonth, iday, ihour, iminute, isec
-      REAL(wp)          ::   zsec
-      LOGICAL           ::   ll24, llfull
-      !
-      IF( PRESENT(ld24) ) THEN   ;   ll24 = ld24
-      ELSE                       ;   ll24 = .FALSE.
-      ENDIF
-
-      IF( PRESENT(ldfull) ) THEN   ;   llfull = ldfull
-      ELSE                         ;   llfull = .FALSE.
-      ENDIF
-
-      CALL ju2ymds( pjday, iyear, imonth, iday, zsec )
-      isec = NINT(zsec)
-
-      IF ( ll24 .AND. isec == 0 ) THEN   ! 00:00 of the next day -> move to 24:00 of the current day
-         CALL ju2ymds( pjday - 1., iyear, imonth, iday, zsec )
-         isec = 86400
-      ENDIF
-
-      IF( iyear < 10000 ) THEN   ;   clfmt = "i4.4,2i2.2"                ! format used to write the date 
-      ELSE                       ;   WRITE(clfmt, "('i',i1,',2i2.2')") INT(LOG10(REAL(iyear,wp))) + 1
-      ENDIF
-      
-!$AGRIF_DO_NOT_TREAT      
-! Should be fixed in the conv
-      IF( llfull ) THEN 
-         clfmt = TRIM(clfmt)//",'_',i2.2,':',i2.2,':',i2.2"
-         ihour   = isec / 3600
-         isec    = MOD(isec, 3600)
-         iminute = isec / 60
-         isec    = MOD(isec, 60)
-         WRITE(iom_sdate, '('//TRIM(clfmt)//')') iyear, imonth, iday, ihour, iminute, isec    ! date of the end of run
-      ELSE
-         WRITE(iom_sdate, '('//TRIM(clfmt)//')') iyear, imonth, iday                          ! date of the end of run
-      ENDIF
-!$AGRIF_END_DO_NOT_TREAT      
-
-   END FUNCTION iom_sdate
 
 
    LOGICAL FUNCTION iom_use( cdname )
       CHARACTER(LEN=*), INTENT(in) ::   cdname
-      iom_use = xios_field_is_active( cdname )
+      iom_use = .FALSE.
    END FUNCTION iom_use
    
Index: branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/nemogcm.f90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/nemogcm.f90	(revision 9051)
+++ branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/nemogcm.f90	(revision 9079)
@@ -52,6 +52,4 @@
    USE lib_mpp        ! distributed memory computing
 
-   USE xios           ! xIOserver
-
    USE lbcnfd , ONLY  : isendto, nsndto, nfsloop, nfeloop   ! Setup of north fold exchanges 
 
@@ -112,5 +110,4 @@
       CALL nemo_closefile
       !
-      CALL xios_finalize                  ! end mpp communications with xios
       !
    END SUBROUTINE nemo_gcm
@@ -137,5 +134,4 @@
       !
       cltxt = ''
-      cxios_context = 'nemo'
       !
       !                             ! Open reference namelist and configuration namelist files
@@ -167,9 +163,7 @@
       !                             !      on unit number numond on first proc   !
       !                             !--------------------------------------------!
-      IF( Agrif_Root() ) THEN
-            CALL  xios_initialize( "for_xios_mpi_id",return_comm=ilocal_comm )    ! nemo local communicator given by xios
-      ENDIF
       ! Nodes selection (control print return in cltxt)
-      narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop, ilocal_comm )
+      ilocal_comm = 0
+      narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop )
       narea = narea + 1                                     ! mynode return the rank of proc (0 --> jpnij -1 )
 
Index: branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/step_oce.f90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/step_oce.f90	(revision 9051)
+++ branches/2017/dev_merge_2017/NEMOGCM/TOOLS/DOMAINcfg/src/step_oce.f90	(revision 9079)
@@ -22,5 +22,4 @@
 
 
-   USE xios
 
    !!----------------------------------------------------------------------
