From d60b35e844e04d222cc1f3d8de68c47f19a5e280 Mon Sep 17 00:00:00 2001
From: Gaelle DELAUTIER <gaelle.delautier@meteo.fr>
Date: Tue, 5 Jun 2018 09:59:48 +0200
Subject: [PATCH] Gaelle 5/6/18 : mv directory OASIS in MNH and SURFEX

---
 src/{OASIS => }/MNH/mnh_oasis_define.F90      |    0
 src/{OASIS => }/MNH/mnh_oasis_grid.F90        |    0
 src/{OASIS => }/MNH/mnh_oasis_recv.F90        |    0
 src/{OASIS => }/MNH/mnh_oasis_send.F90        |    0
 src/OASIS/SURFEX/coare30_flux.F90             |  543 ------
 src/OASIS/SURFEX/coare30_seaflux.F90          |  266 ---
 src/OASIS/SURFEX/coupling_seafluxn.F90        |  789 ---------
 src/OASIS/SURFEX/dealloc_seafluxn.F90         |   95 -
 src/OASIS/SURFEX/default_prep_seaflux.F90     |  106 --
 src/OASIS/SURFEX/default_seaflux.F90          |  112 --
 src/OASIS/SURFEX/diag_cpl_esm_sea.F90         |  164 --
 src/OASIS/SURFEX/diag_inline_seafluxn.F90     |  309 ----
 src/OASIS/SURFEX/diag_seaflux_initn.F90       |  239 ---
 src/OASIS/SURFEX/get_sfx_sea.F90              |  250 ---
 src/OASIS/SURFEX/get_sfxcpln.F90              |  226 ---
 src/OASIS/SURFEX/init_seafluxn.F90            |  453 -----
 src/OASIS/SURFEX/modd_prep_seaflux.F90        |   57 -
 src/OASIS/SURFEX/modd_seafluxn.F90            |  249 ---
 src/OASIS/SURFEX/modd_sfx_oasis.F90           |  158 --
 .../SURFEX/mode_read_netcdf_mercator.F90      | 1528 -----------------
 src/OASIS/SURFEX/modn_prep_seaflux.F90        |   71 -
 src/OASIS/SURFEX/modn_seafluxn.F90            |  321 ----
 src/OASIS/SURFEX/modn_sfx_oasis.F90           |  176 --
 src/OASIS/SURFEX/prep_hor_seaflux_field.F90   |  231 ---
 src/OASIS/SURFEX/prep_seaflux.F90             |  251 ---
 src/OASIS/SURFEX/prep_seaflux_netcdf.F90      |  154 --
 src/OASIS/SURFEX/prep_seaflux_unif.F90        |  103 --
 src/OASIS/SURFEX/put_sfx_sea.F90              |  290 ----
 src/OASIS/SURFEX/put_sfxcpln.F90              |  186 --
 src/OASIS/SURFEX/read_lcover.F90              |  119 --
 src/OASIS/SURFEX/read_nam_prep_seafluxn.F90   |   64 -
 src/OASIS/SURFEX/read_namelists_seafluxn.F90  |   71 -
 src/OASIS/SURFEX/read_prep_seaflux_conf.F90   |  203 ---
 src/OASIS/SURFEX/read_seafluxn.F90            |  275 ---
 src/OASIS/SURFEX/sfx_oasis_define.F90         |  472 -----
 src/OASIS/SURFEX/sfx_oasis_init.F90           |  355 ----
 src/OASIS/SURFEX/sfx_oasis_read_nam.F90       |  568 ------
 src/OASIS/SURFEX/sfx_oasis_recv.F90           |  324 ----
 src/OASIS/SURFEX/sfx_oasis_send.F90           |  416 -----
 src/OASIS/SURFEX/write_lcover.F90             |   99 --
 src/OASIS/SURFEX/writesurf_seafluxn.F90       |  226 ---
 src/{OASIS => }/SURFEX/get_sfx_wave.F90       |    0
 src/{OASIS => }/SURFEX/put_sfx_wave.F90       |    0
 43 files changed, 10519 deletions(-)
 rename src/{OASIS => }/MNH/mnh_oasis_define.F90 (100%)
 rename src/{OASIS => }/MNH/mnh_oasis_grid.F90 (100%)
 rename src/{OASIS => }/MNH/mnh_oasis_recv.F90 (100%)
 rename src/{OASIS => }/MNH/mnh_oasis_send.F90 (100%)
 delete mode 100644 src/OASIS/SURFEX/coare30_flux.F90
 delete mode 100644 src/OASIS/SURFEX/coare30_seaflux.F90
 delete mode 100644 src/OASIS/SURFEX/coupling_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/dealloc_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/default_prep_seaflux.F90
 delete mode 100644 src/OASIS/SURFEX/default_seaflux.F90
 delete mode 100644 src/OASIS/SURFEX/diag_cpl_esm_sea.F90
 delete mode 100644 src/OASIS/SURFEX/diag_inline_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/diag_seaflux_initn.F90
 delete mode 100644 src/OASIS/SURFEX/get_sfx_sea.F90
 delete mode 100644 src/OASIS/SURFEX/get_sfxcpln.F90
 delete mode 100644 src/OASIS/SURFEX/init_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/modd_prep_seaflux.F90
 delete mode 100644 src/OASIS/SURFEX/modd_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/modd_sfx_oasis.F90
 delete mode 100644 src/OASIS/SURFEX/mode_read_netcdf_mercator.F90
 delete mode 100644 src/OASIS/SURFEX/modn_prep_seaflux.F90
 delete mode 100644 src/OASIS/SURFEX/modn_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/modn_sfx_oasis.F90
 delete mode 100644 src/OASIS/SURFEX/prep_hor_seaflux_field.F90
 delete mode 100644 src/OASIS/SURFEX/prep_seaflux.F90
 delete mode 100644 src/OASIS/SURFEX/prep_seaflux_netcdf.F90
 delete mode 100644 src/OASIS/SURFEX/prep_seaflux_unif.F90
 delete mode 100644 src/OASIS/SURFEX/put_sfx_sea.F90
 delete mode 100644 src/OASIS/SURFEX/put_sfxcpln.F90
 delete mode 100644 src/OASIS/SURFEX/read_lcover.F90
 delete mode 100644 src/OASIS/SURFEX/read_nam_prep_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/read_namelists_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/read_prep_seaflux_conf.F90
 delete mode 100644 src/OASIS/SURFEX/read_seafluxn.F90
 delete mode 100644 src/OASIS/SURFEX/sfx_oasis_define.F90
 delete mode 100644 src/OASIS/SURFEX/sfx_oasis_init.F90
 delete mode 100644 src/OASIS/SURFEX/sfx_oasis_read_nam.F90
 delete mode 100644 src/OASIS/SURFEX/sfx_oasis_recv.F90
 delete mode 100644 src/OASIS/SURFEX/sfx_oasis_send.F90
 delete mode 100644 src/OASIS/SURFEX/write_lcover.F90
 delete mode 100644 src/OASIS/SURFEX/writesurf_seafluxn.F90
 rename src/{OASIS => }/SURFEX/get_sfx_wave.F90 (100%)
 rename src/{OASIS => }/SURFEX/put_sfx_wave.F90 (100%)

diff --git a/src/OASIS/MNH/mnh_oasis_define.F90 b/src/MNH/mnh_oasis_define.F90
similarity index 100%
rename from src/OASIS/MNH/mnh_oasis_define.F90
rename to src/MNH/mnh_oasis_define.F90
diff --git a/src/OASIS/MNH/mnh_oasis_grid.F90 b/src/MNH/mnh_oasis_grid.F90
similarity index 100%
rename from src/OASIS/MNH/mnh_oasis_grid.F90
rename to src/MNH/mnh_oasis_grid.F90
diff --git a/src/OASIS/MNH/mnh_oasis_recv.F90 b/src/MNH/mnh_oasis_recv.F90
similarity index 100%
rename from src/OASIS/MNH/mnh_oasis_recv.F90
rename to src/MNH/mnh_oasis_recv.F90
diff --git a/src/OASIS/MNH/mnh_oasis_send.F90 b/src/MNH/mnh_oasis_send.F90
similarity index 100%
rename from src/OASIS/MNH/mnh_oasis_send.F90
rename to src/MNH/mnh_oasis_send.F90
diff --git a/src/OASIS/SURFEX/coare30_flux.F90 b/src/OASIS/SURFEX/coare30_flux.F90
deleted file mode 100644
index ac88af8c3..000000000
--- a/src/OASIS/SURFEX/coare30_flux.F90
+++ /dev/null
@@ -1,543 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-    SUBROUTINE COARE30_FLUX (S,PZ0SEA,PTA,PEXNA,PRHOA,PSST,PEXNS,PQA,  &
-            PVMOD,PZREF,PUREF,PPS,PQSAT,PSFTH,PSFTQ,PUSTAR,PCD,PCDN,PCH,PCE,PRI,&
-            PRESA,PRAIN,PZ0HSEA,PHS,PTP)  
-!     #######################################################################
-!
-!
-!!****  *COARE25_FLUX*  
-!!
-!!    PURPOSE
-!!    -------
-!      Calculate the surface fluxes of heat, moisture, and momentum over
-!      sea surface with bulk algorithm COARE3.0. 
-!     
-!!**  METHOD
-!!    ------
-!      transfer coefficients were obtained using a dataset which combined COARE
-!      data with those from three other ETL field experiments, and reanalysis of
-!      the HEXMAX data (DeCosmos et al. 1996). 
-!      ITERMAX=3 
-!      Take account of the surface gravity waves on the velocity roughness and 
-!      hence the momentum transfer coefficient
-!        NGRVWAVES=0 no gravity waves action (Charnock) !default value
-!        NGRVWAVES=1 wave age parameterization of Oost et al. 2002
-!        NGRVWAVES=2 model of Taylor and Yelland 2001
-!
-!!    EXTERNAL
-!!    --------
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------ 
-!!      
-!!    REFERENCE
-!!    ---------
-!!      Fairall et al (2003), J. of Climate, vol. 16, 571-591
-!!      Fairall et al (1996), JGR, 3747-3764
-!!      Gosnell et al (1995), JGR, 437-442
-!!      Fairall et al (1996), JGR, 1295-1308
-!!      
-!!    AUTHOR
-!!    ------
-!!     C. Lebeaupin  *Météo-France* (adapted from C. Fairall's code)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original     1/06/2006
-!!      B. Decharme    06/2009 limitation of Ri
-!!      B. Decharme    09/2012 Bug in Ri calculation and limitation of Ri in surface_ri.F90
-!!      B. Decharme    06/2013 bug in z0 (output) computation
-!!      M.N. Bouin     03/2014 possibility of wave parameters from external source
-!!      C. Lebeaupin   03/2014 bug if PTA=PSST and PEXNA=PEXNS: set a minimum value
-!!	   	       	       add abort if no convergence
-!!      C. Lebeaupin   06/2014 itermax=10 for low wind conditions (ZVMOD<=1)
-!!      J. Pianezze    11/2014 add coupling wave parameters 
-!-------------------------------------------------------------------------------
-!
-!*       0.     DECLARATIONS
-!               ------------
-!
-!
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_CSTS,       ONLY : XKARMAN, XG, XSTEFAN, XRD, XRV, XPI, &
-                            XLVTT, XCL, XCPD, XCPV, XRHOLW, XTT, &
-                            XP00
-USE MODD_SURF_ATM,   ONLY : XVZ0CM
-!
-USE MODD_SFX_OASIS,  ONLY : LCPL_WAVE
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF, XSURF_EPSILON
-USE MODD_WATER_PAR
-!
-USE MODI_SURFACE_RI
-USE MODI_WIND_THRESHOLD
-USE MODE_COARE30_PSI
-!
-USE MODE_THERMOS
-!
-!
-USE MODI_ABOR1_SFX
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-!
-!
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-!
-REAL, DIMENSION(:), INTENT(IN)       :: PTA   ! air temperature at atm. level (K)
-REAL, DIMENSION(:), INTENT(IN)       :: PQA   ! air humidity at atm. level (kg/kg)
-REAL, DIMENSION(:), INTENT(IN)       :: PEXNA ! Exner function at atm. level
-REAL, DIMENSION(:), INTENT(IN)       :: PRHOA ! air density at atm. level
-REAL, DIMENSION(:), INTENT(IN)       :: PVMOD ! module of wind at atm. wind level (m/s)
-REAL, DIMENSION(:), INTENT(IN)       :: PZREF ! atm. level for temp. and humidity (m)
-REAL, DIMENSION(:), INTENT(IN)       :: PUREF ! atm. level for wind (m)
-REAL, DIMENSION(:), INTENT(IN)       :: PSST  ! Sea Surface Temperature (K)
-REAL, DIMENSION(:), INTENT(IN)       :: PEXNS ! Exner function at sea surface
-REAL, DIMENSION(:), INTENT(IN)       :: PPS   ! air pressure at sea surface (Pa)
-REAL, DIMENSION(:), INTENT(IN)       :: PRAIN !precipitation rate (kg/s/m2)
-REAL, DIMENSION(:), INTENT(IN)       :: PHS   ! wave significant height
-REAL, DIMENSION(:), INTENT(IN)       :: PTP   ! wave peak period
-!
-REAL, DIMENSION(:), INTENT(INOUT)    :: PZ0SEA! roughness length over the ocean
-!                                                                                 
-!  surface fluxes : latent heat, sensible heat, friction fluxes
-REAL, DIMENSION(:), INTENT(OUT)      :: PSFTH ! heat flux (W/m2)
-REAL, DIMENSION(:), INTENT(OUT)      :: PSFTQ ! water flux (kg/m2/s)
-REAL, DIMENSION(:), INTENT(OUT)      :: PUSTAR! friction velocity (m/s)
-!
-! diagnostics
-REAL, DIMENSION(:), INTENT(OUT)      :: PQSAT ! humidity at saturation
-REAL, DIMENSION(:), INTENT(OUT)      :: PCD   ! heat drag coefficient
-REAL, DIMENSION(:), INTENT(OUT)      :: PCDN  ! momentum drag coefficient
-REAL, DIMENSION(:), INTENT(OUT)      :: PCH   ! neutral momentum drag coefficient
-REAL, DIMENSION(:), INTENT(OUT)      :: PCE  !transfer coef. for latent heat flux
-REAL, DIMENSION(:), INTENT(OUT)      :: PRI   ! Richardson number
-REAL, DIMENSION(:), INTENT(OUT)      :: PRESA ! aerodynamical resistance
-REAL, DIMENSION(:), INTENT(OUT)      :: PZ0HSEA ! heat roughness length
-!
-!
-!*      0.2    declarations of local variables
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZVMOD    ! wind intensity
-REAL, DIMENSION(SIZE(PTA))      :: ZPA      ! Pressure at atm. level
-REAL, DIMENSION(SIZE(PTA))      :: ZTA      ! Temperature at atm. level
-REAL, DIMENSION(SIZE(PTA))      :: ZQASAT   ! specific humidity at saturation  at atm. level (kg/kg)
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZO       ! rougness length ref 
-REAL, DIMENSION(SIZE(PTA))      :: ZWG      ! gustiness factor (m/s)
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZDU,ZDT,ZDQ,ZDUWG !differences
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZUSR        !velocity scaling parameter "ustar" (m/s) = friction velocity
-REAL, DIMENSION(SIZE(PTA))      :: ZTSR        !temperature sacling parameter "tstar" (degC)
-REAL, DIMENSION(SIZE(PTA))      :: ZQSR        !humidity scaling parameter "qstar" (kg/kg)
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZU10,ZT10   !vertical profils (10-m height) 
-REAL, DIMENSION(SIZE(PTA))      :: ZVISA       !kinematic viscosity of dry air
-REAL, DIMENSION(SIZE(PTA))      :: ZO10,ZOT10  !roughness length at 10m
-REAL, DIMENSION(SIZE(PTA))      :: ZCD,ZCT,ZCC
-REAL, DIMENSION(SIZE(PTA))      :: ZCD10,ZCT10 !transfer coef. at 10m
-REAL, DIMENSION(SIZE(PTA))      :: ZRIBU,ZRIBCU
-REAL, DIMENSION(SIZE(PTA))      :: ZETU,ZL10
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZCHARN                      !Charnock number depends on wind module
-REAL, DIMENSION(SIZE(PTA))      :: ZTWAVE,ZHWAVE,ZCWAVE,ZLWAVE !to compute gravity waves' impact
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZZL,ZZTL!,ZZQL    !Obukhovs stability 
-                                                     !param. z/l for u,T,q
-REAL, DIMENSION(SIZE(PTA))      :: ZRR
-REAL, DIMENSION(SIZE(PTA))      :: ZOT,ZOQ           !rougness length ref
-REAL, DIMENSION(SIZE(PTA))      :: ZPUZ,ZPTZ,ZPQZ    !PHI funct. for u,T,q 
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZBF               !constants to compute gustiness factor
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZTAU       !momentum flux (W/m2)
-REAL, DIMENSION(SIZE(PTA))      :: ZHF        !sensible heat flux (W/m2)
-REAL, DIMENSION(SIZE(PTA))      :: ZEF        !latent heat flux (W/m2)
-REAL, DIMENSION(SIZE(PTA))      :: ZWBAR      !diag for webb correction but not used here after
-REAL, DIMENSION(SIZE(PTA))      :: ZTAUR      !momentum flux due to rain (W/m2)
-REAL, DIMENSION(SIZE(PTA))      :: ZRF        !sensible heat flux due to rain (W/m2)
-REAL, DIMENSION(SIZE(PTA))      :: ZCHN,ZCEN  !neutral coef. for heat and vapor
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZLV      !latent heat constant
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZTAC,ZDQSDT,ZDTMP,ZDWAT,ZALFAC ! for precipitation impact
-REAL, DIMENSION(SIZE(PTA))      :: ZXLR                           ! vaporisation  heat  at a given temperature
-REAL, DIMENSION(SIZE(PTA))      :: ZCPLW                          ! specific heat for water at a given temperature 
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZUSTAR2  ! square of friction velocity
-!
-REAL, DIMENSION(SIZE(PTA))      :: ZDIRCOSZW! orography slope cosine (=1 on water!)
-REAL, DIMENSION(SIZE(PTA))      :: ZAC      ! Aerodynamical conductance
-!
-!
-INTEGER, DIMENSION(SIZE(PTA))   :: ITERMAX             ! maximum number of iterations
-!
-REAL    :: ZRVSRDM1,ZRDSRV,ZR2 ! thermodynamic constants
-REAL    :: ZBETAGUST           !gustiness factor
-REAL    :: ZZBL                !atm. boundary layer depth (m)
-REAL    :: ZVISW               !m2/s kinematic viscosity of water
-REAL    :: ZS                  !height of rougness length ref
-REAL    :: ZCH10               !transfer coef. at 10m
-!
-INTEGER :: J, JLOOP    !loop indice
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-!       1.     Initializations
-!              ---------------
-!
-!       1.1   Constants and parameters
-!
-IF (LHOOK) CALL DR_HOOK('COARE30_FLUX',0,ZHOOK_HANDLE)
-!
-ZRVSRDM1  = XRV/XRD-1. ! 0.607766
-ZRDSRV    = XRD/XRV    ! 0.62198
-ZR2       = 1.-ZRDSRV  ! pas utilisé dans cette routine
-ZBETAGUST = 1.2        ! value based on TOGA-COARE experiment
-ZZBL      = 600.       ! Set a default value for boundary layer depth
-ZS        = 10.        ! Standard heigth =10m
-ZCH10     = 0.00115
-!
-ZVISW     = 1.E-6
-!
-!       1.2   Array initialization by undefined values
-!
-PSFTH (:)=XUNDEF
-PSFTQ (:)=XUNDEF
-PUSTAR(:)=XUNDEF
-!
-PCD(:) = XUNDEF
-PCDN(:) = XUNDEF
-PCH(:) = XUNDEF
-PCE(:) =XUNDEF
-PRI(:) = XUNDEF
-!
-PRESA(:)=XUNDEF
-!
-!-------------------------------------------------------------------------------
-!       2. INITIAL GUESS FOR THE ITERATIVE METHOD 
-!          -------------------------------------
-!
-!       2.0     Temperature 
-!
-! Set a non-zero value for the temperature gradient
-!
-WHERE((PTA(:)*PEXNS(:)/PEXNA(:)-PSST(:))==0.) 
-      ZTA(:)=PTA(:)-1E-3
-ELSEWHERE
-      ZTA(:)=PTA(:)      
-ENDWHERE
-
-!       2.1     Wind and humidity 
-!
-! Sea surface specific humidity 
-!
-PQSAT(:)=QSAT_SEAWATER(PSST(:),PPS(:))         
-!              
-! Set a minimum value to wind 
-!
-ZVMOD(:) = WIND_THRESHOLD(PVMOD(:),PUREF(:))
-!
-! Specific humidity at saturation at the atm. level 
-!
-ZPA(:) = XP00* (PEXNA(:)**(XCPD/XRD))
-ZQASAT(:) = QSAT(ZTA(:),ZPA(:)) 
-!
-!
-ZO(:)  = 0.0001
-ZWG(:) = 0.
-IF (S%LPWG) ZWG(:) = 0.5
-!
-ZCHARN(:) = 0.011  
-!
-DO J=1,SIZE(PTA)
-  !
-  !      2.2       initial guess
-  !    
-  ZDU(J) = ZVMOD(J)   !wind speed difference with surface current(=0) (m/s)
-                      !initial guess for gustiness factor
-  ZDT(J) = -(ZTA(J)/PEXNA(J)) + (PSST(J)/PEXNS(J)) !potential temperature difference
-  ZDQ(J) = PQSAT(J)-PQA(J)                         !specific humidity difference
-  !
-  ZDUWG(J) = SQRT(ZDU(J)**2+ZWG(J)**2)     !wind speed difference including gustiness ZWG
-  !
-  !      2.3   initialization of neutral coefficients
-  !
-  ZU10(J)  = ZDUWG(J)*LOG(ZS/ZO(J))/LOG(PUREF(J)/ZO(J))
-  ZUSR(J)  = 0.035*ZU10(J)
-  ZVISA(J) = 1.326E-5*(1.+6.542E-3*(ZTA(J)-XTT)+&
-             8.301E-6*(ZTA(J)-XTT)**2-4.84E-9*(ZTA(J)-XTT)**3) !Andrea (1989) CRREL Rep. 89-11
-  ! 
-  ZO10(J) = ZCHARN(J)*ZUSR(J)*ZUSR(J)/XG+0.11*ZVISA(J)/ZUSR(J)
-  ZCD(J)  = (XKARMAN/LOG(PUREF(J)/ZO10(J)))**2  !drag coefficient
-  ZCD10(J)= (XKARMAN/LOG(ZS/ZO10(J)))**2
-  ZCT10(J)= ZCH10/SQRT(ZCD10(J))
-  ZOT10(J)= ZS/EXP(XKARMAN/ZCT10(J))
-  !
-  !-------------------------------------------------------------------------------
-  !             Grachev and Fairall (JAM, 1997)
-  ZCT(J) = XKARMAN/LOG(PZREF(J)/ZOT10(J))      !temperature transfer coefficient
-  ZCC(J) = XKARMAN*ZCT(J)/ZCD(J)               !z/L vs Rib linear coef.
-  !
-  ZRIBCU(J) = -PUREF(J)/(ZZBL*0.004*ZBETAGUST**3) !saturation or plateau Rib
-  !ZRIBU(J) =-XG*PUREF(J)*(ZDT(J)+ZRVSRDM1*(ZTA(J)-XTT)*ZDQ)/&
-  !     &((ZTA(J)-XTT)*ZDUWG(J)**2)
-  ZRIBU(J)  = -XG*PUREF(J)*(ZDT(J)+ZRVSRDM1*ZTA(J)*ZDQ(J))/&
-               (ZTA(J)*ZDUWG(J)**2)  
-  !
-  IF (ZRIBU(J)<0.) THEN
-    ZETU(J) = ZCC(J)*ZRIBU(J)/(1.+ZRIBU(J)/ZRIBCU(J))    !Unstable G and F
-  ELSE
-    ZETU(J) = ZCC(J)*ZRIBU(J)/(1.+27./9.*ZRIBU(J)/ZCC(J))!Stable 
-  ENDIF
-  !
-  ZL10(J) = PUREF(J)/ZETU(J) !MO length
-  !
-ENDDO
-!
-!  First guess M-O stability dependent scaling params. (u*,T*,q*) to estimate ZO and z/L (ZZL)
-ZUSR(:) = ZDUWG(:)*XKARMAN/(LOG(PUREF(:)/ZO10(:))-PSIFCTU(PUREF(:)/ZL10(:)))
-ZTSR(:) = -ZDT(:)*XKARMAN/(LOG(PZREF(:)/ZOT10(:))-PSIFCTT(PZREF(:)/ZL10(:)))
-ZQSR(:) = -ZDQ(:)*XKARMAN/(LOG(PZREF(:)/ZOT10(:))-PSIFCTT(PZREF(:)/ZL10(:)))
-!
-IF (LCPL_WAVE .AND. .NOT. (ANY(S%XCHARN==0.0)) ) THEN
-  ZCHARN(:) = S%XCHARN(:)
-ELSE
-  ZCHARN(:) = 0.011
-END IF
-!
-ZZL(:) = 0.0
-!
-DO J=1,SIZE(PTA)
-  !
-  IF (ZETU(J)>50.) THEN
-    ITERMAX(J) = 1
-  ELSE
-    ITERMAX(J) = 3 !number of iterations
-  ENDIF
-  IF (ZVMOD(J)<=1.) THEN
-    ITERMAX(J) = 10
-  ENDIF
-  !
-  IF (.NOT.LCPL_WAVE) THEN
-    !then modify Charnork for high wind speeds Chris Fairall's data
-    IF (ZDUWG(J)>10.) ZCHARN(J) = 0.011 + (0.018-0.011)*(ZDUWG(J)-10.)/(18-10)
-    IF (ZDUWG(J)>18.) ZCHARN(J) = 0.018
-  END IF
-  !
-  !                3.  ITERATIVE LOOP TO COMPUTE USR, TSR, QSR 
-  !                -------------------------------------------
-  !
-  IF (S%LWAVEWIND .AND. .NOT. LCPL_WAVE) THEN
-    ZHWAVE(J) = 0.018*PVMOD(J)*PVMOD(J)*(1.+0.015*PVMOD(J))
-    ZTWAVE(J) = 0.729*PVMOD(J)
-  ELSE 
-    ZHWAVE(J) = PHS(J)
-    ZTWAVE(J) = PTP(J)
-    ! to avoid the nullity of HS and TP 
-    IF (ZHWAVE(J) .EQ. 0.0) ZHWAVE(J) = 0.018*PVMOD(J)*PVMOD(J)*(1.+0.015*PVMOD(J))
-    IF (ZTWAVE(J) .EQ. 0.0) ZTWAVE(J) = 0.729*PVMOD(J)
-  ENDIF 
-!
-  ZCWAVE(J) = XG*ZTWAVE(J)/(2.*XPI)
-  ZLWAVE(J) = ZTWAVE(J)*ZCWAVE(J)
-  !
-ENDDO
-!
-   
-!
-DO JLOOP=1,MAXVAL(ITERMAX) ! begin of iterative loop
-  !
-  DO J=1,SIZE(PTA)
-    !
-    IF (JLOOP.GT.ITERMAX(J)) CYCLE
-    !
-    IF (S%NGRVWAVES==0) THEN
-      ZO(J) = ZCHARN(J)*ZUSR(J)*ZUSR(J)/XG + 0.11*ZVISA(J)/ZUSR(J) !Smith 1988
-    ELSE IF (S%NGRVWAVES==1) THEN
-      ZO(J) = (50./(2.*XPI))*ZLWAVE(J)*(ZUSR(J)/ZCWAVE(J))**4.5 &
-              + 0.11*ZVISA(J)/ZUSR(J)                       !Oost et al. 2002  
-    ELSE IF (S%NGRVWAVES==2) THEN
-      ZO(J) = 1200.*ZHWAVE(J)*(ZHWAVE(J)/ZLWAVE(J))**4.5 &
-              + 0.11*ZVISA(J)/ZUSR(J)                       !Taulor and Yelland 2001  
-    ENDIF
-    !
-    ZRR(J) = ZO(J)*ZUSR(J)/ZVISA(J)
-    ZOQ(J) = MIN(1.15E-4 , 5.5E-5/ZRR(J)**0.6)
-    ZOT(J) = ZOQ(J)
-    !
-    ZZL(J) = XKARMAN * XG * PUREF(J) * &
-              ( ZTSR(J)*(1.+ZRVSRDM1*PQA(J)) + ZRVSRDM1*ZTA(J)*ZQSR(J) ) / &
-              ( ZTA(J)*ZUSR(J)*ZUSR(J)*(1.+ZRVSRDM1*PQA(J)) )  
-    ZZTL(J)= ZZL(J)*PZREF(J)/PUREF(J)  ! for T 
-!    ZZQL(J)=ZZL(J)*PZREF(J)/PUREF(J)  ! for Q
-  ENDDO
-  !
-  ZPUZ(:) = PSIFCTU(ZZL(:))     
-  ZPTZ(:) = PSIFCTT(ZZTL(:))
-  !
-  DO J=1,SIZE(PTA)
-    !
-    ! ZPQZ(J)=PSIFCTT(ZZQL(J))    
-    ZPQZ(J) = ZPTZ(J)
-    !
-    !             3.1 scale parameters
-    !
-    ZUSR(J) = ZDUWG(J)*XKARMAN/(LOG(PUREF(J)/ZO(J)) -ZPUZ(J))
-    ZTSR(J) = -ZDT(J)  *XKARMAN/(LOG(PZREF(J)/ZOT(J))-ZPTZ(J))
-    ZQSR(J) = -ZDQ(J)  *XKARMAN/(LOG(PZREF(J)/ZOQ(J))-ZPQZ(J))
-    !
-    !             3.2 Gustiness factor (ZWG)
-    !
-    IF(S%LPWG) THEN
-      ZBF(J) = -XG/ZTA(J)*ZUSR(J)*(ZTSR(J)+ZRVSRDM1*ZTA(J)*ZQSR(J))
-      IF (ZBF(J)>0.) THEN
-        ZWG(J) = ZBETAGUST*(ZBF(J)*ZZBL)**(1./3.)
-      ELSE
-        ZWG(J) = 0.2
-      ENDIF
-    ENDIF  
-    ZDUWG(J) = SQRT(ZVMOD(J)**2 + ZWG(J)**2)
-    !
-  ENDDO
-  !
-ENDDO
-!-------------------------------------------------------------------------------
-!
-!            4.  COMPUTE transfer coefficients PCD, PCH, ZCE and SURFACE FLUXES
-!                --------------------------------------------------------------
-!
-ZTAU(:) = XUNDEF
-ZHF(:)  = XUNDEF
-ZEF(:)  = XUNDEF
-!
-ZWBAR(:) = 0.
-ZTAUR(:) = 0.
-ZRF(:)   = 0.
-!
-DO J=1,SIZE(PTA)
-  !
-  !
-  !            4. transfert coefficients PCD, PCH and PCE 
-  !                 and neutral PCDN, ZCHN, ZCEN 
-  !
-  PCD(J) = (ZUSR(J)/ZDUWG(J))**2.
-  PCH(J) = ZUSR(J)*ZTSR(J)/(ZDUWG(J)*(ZTA(J)*PEXNS(J)/PEXNA(J)-PSST(J)))
-  PCE(J) = ZUSR(J)*ZQSR(J)/(ZDUWG(J)*(PQA(J)-PQSAT(J)))
-  !
-  PCDN(J) = (XKARMAN/LOG(ZS/ZO(J)))**2.
-  ZCHN(J) = (XKARMAN/LOG(ZS/ZO(J)))*(XKARMAN/LOG(ZS/ZOT(J)))
-  ZCEN(J) = (XKARMAN/LOG(ZS/ZO(J)))*(XKARMAN/LOG(ZS/ZOQ(J)))
-  !
-  ZLV(J) = XLVTT + (XCPV-XCL)*(PSST(J)-XTT)
-  !
-  !            4. 2 surface fluxes 
-  !
-  IF (ABS(PCDN(J))>1.E-2) THEN   !!!! secure COARE3.0 CODE 
-    write(*,*) 'pb PCDN in COARE30: ',PCDN(J)
-    write(*,*) 'point: ',J,"/",SIZE(PTA)
-    write(*,*) 'roughness: ', ZO(J)
-    write(*,*) 'ustar: ',ZUSR(J)
-    write(*,*) 'wind: ',ZDUWG(J)
-    CALL ABOR1_SFX('COARE30: PCDN too large -> no convergence')
-  ELSE
-    ZTSR(J) = -ZTSR(J)
-    ZQSR(J) = -ZQSR(J)
-    ZTAU(J) = -PRHOA(J)*ZUSR(J)*ZUSR(J)*ZVMOD(J)/ZDUWG(J)
-    ZHF(J)  =  PRHOA(J)*XCPD*ZUSR(J)*ZTSR(J)
-    ZEF(J)  =  PRHOA(J)*ZLV(J)*ZUSR(J)*ZQSR(J)
-    !    
-    !           4.3 Contributions to surface  fluxes due to rainfall
-    !
-    ! SB: a priori, le facteur ZRDSRV=XRD/XRV est introduit pour
-    !     adapter la formule de Clausius-Clapeyron (pour l'air
-    !     sec) au cas humide.
-    IF (S%LPRECIP) THEN
-      ! 
-      ! heat surface  fluxes
-      !
-      ZTAC(J)  = ZTA(J)-XTT
-      !
-      ZXLR(J)  = XLVTT + (XCPV-XCL)* ZTAC(J)                            ! latent heat of rain vaporization
-      ZDQSDT(J)= ZQASAT(J) * ZXLR(J) / (XRD*ZTA(J)**2)                  ! Clausius-Clapeyron relation
-      ZDTMP(J) = (1.0 + 3.309e-3*ZTAC(J) -1.44e-6*ZTAC(J)*ZTAC(J)) * &  !heat diffusivity
-                  0.02411 / (PRHOA(J)*XCPD)
-      !
-      ZDWAT(J) = 2.11e-5 * (XP00/ZPA(J)) * (ZTA(J)/XTT)**1.94           ! water vapour diffusivity from eq (13.3)
-      !                                                                 ! of Pruppacher and Klett (1978)      
-      ZALFAC(J)= 1.0 / (1.0 + &                                         ! Eq.11 in GoF95
-                   ZRDSRV*ZDQSDT(J)*ZXLR(J)*ZDWAT(J)/(ZDTMP(J)*XCPD))   ! ZALFAC=wet-bulb factor (sans dim)     
-      ZCPLW(J) = 4224.8482 + ZTAC(J) * &
-                              ( -4.707 + ZTAC(J) * &
-                                (0.08499 + ZTAC(J) * &
-                                  (1.2826e-3 + ZTAC(J) * &
-                                    (4.7884e-5 - 2.0027e-6* ZTAC(J))))) ! specific heat  
-      !       
-      ZRF(J)   = PRAIN(J) * ZCPLW(J) * ZALFAC(J) * &                    !Eq.12 in GoF95 !SIGNE?
-                   (PSST(J) - ZTA(J) + (PQSAT(J)-PQA(J))*ZXLR(J)/XCPD )
-      !
-      ! Momentum flux due to rainfall  
-      !
-      ZTAUR(J)=-0.85*(PRAIN(J) *ZVMOD(J)) !pp3752 in FBR96
-      !
-    ENDIF
-    !
-    !             4.4   Webb correction to latent heat flux
-    ! 
-    ZWBAR(J)=- (1./ZRDSRV)*ZUSR(J)*ZQSR(J) / (1.0+(1./ZRDSRV)*PQA(J)) &
-               - ZUSR(J)*ZTSR(J)/ZTA(J)                        ! Eq.21*rhoa in FBR96    
-    !
-    !             4.5   friction velocity which contains correction du to rain            
-    !
-    ZUSTAR2(J)= - (ZTAU(J) + ZTAUR(J)) / PRHOA(J)
-    PUSTAR(J) =  SQRT(ZUSTAR2(J))
-    !
-    !             4.6   Total surface fluxes
-    !           
-    PSFTH (J) =  ZHF(J) + ZRF(J)
-    PSFTQ (J) =  ZEF(J) / ZLV(J)
-    ! 
-  ENDIF
-ENDDO                      
-!-------------------------------------------------------------------------------
-!
-!       5.  FINAL STEP : TOTAL SURFACE FLUXES AND DERIVED DIAGNOSTICS 
-!           -----------
-!       5.1    Richardson number
-!             
-!
-ZDIRCOSZW(:) = 1.
- CALL SURFACE_RI(PSST,PQSAT,PEXNS,PEXNA,ZTA,ZQASAT,&
-                PZREF,PUREF,ZDIRCOSZW,PVMOD,PRI   )  
-!
-!       5.2     Aerodynamical conductance and resistance
-!             
-ZAC(:) = PCH(:)*ZVMOD(:)
-PRESA(:) = 1. / MAX(ZAC(:),XSURF_EPSILON)
-!
-!       5.3 Z0 and Z0H over sea
-!
-PZ0SEA(:) =  ZCHARN(:) * ZUSTAR2(:) / XG + XVZ0CM * PCD(:) / PCDN(:)
-!
-PZ0SEA(:) = MAX(MIN(ZO(:),0.05),10E-6)
-!
-PZ0HSEA(:) = PZ0SEA(:)
-!
-IF (LHOOK) CALL DR_HOOK('COARE30_FLUX',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE COARE30_FLUX
diff --git a/src/OASIS/SURFEX/coare30_seaflux.F90 b/src/OASIS/SURFEX/coare30_seaflux.F90
deleted file mode 100644
index 4dd0ea977..000000000
--- a/src/OASIS/SURFEX/coare30_seaflux.F90
+++ /dev/null
@@ -1,266 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-    SUBROUTINE COARE30_SEAFLUX (S, PMASK,KSIZE_WATER,KSIZE_ICE,     &
-                                PTA,PEXNA,PRHOA,PSST,PEXNS,PQA,     & 
-                                PRAIN,PSNOW,PVMOD,PZREF,PUREF,PPS,  &
-                                PQSAT,PSFTH,PSFTQ,PUSTAR,           &
-                                PCD,PCDN,PCH,PCE,PRI,PRESA,PZ0HSEA )
-!     ##################################################################
-!
-!
-!!****  *COARE30_SEAFLUX*  
-!!
-!!    PURPOSE
-!!    -------
-!     
-!      Calculate the sea surface fluxes with modified bulk algorithm COARE:  
-!
-!      Calculates the surface fluxes of heat, moisture, and momentum over
-!      sea surface with the simplified COARE 3.0 bulk algorithm from Fairall et al 
-!      2003
-!   
-!      based on water_flux computation for sea ice
-!     
-!!**  METHOD
-!!    ------
-!
-!!    EXTERNAL
-!!    --------
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------ 
-!!      
-!!    REFERENCE
-!!    ---------
-!!     
-!!    AUTHOR
-!!    ------
-!!     C. Lebeaupin  *Météo-France* 
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original     18/03/2005
-!!      B. Decharme     04/2013 : Pack only input variables
-!!      S. Senesi       01/2014 : When handling sea ice cover, compute open sea flux, 
-!!                                and only where ice cover < 1.
-!!      M.N. Bouin     03/2014 possibility of wave parameters from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.     DECLARATIONS
-!               ------------
-!
-!
-!
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-USE MODI_ICE_SEA_FLUX
-USE MODI_COARE30_FLUX
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-!
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-!
-REAL, DIMENSION(:), INTENT(IN)   :: PMASK        ! Either a mask positive for open sea, or a seaice fraction
-INTEGER           , INTENT(IN)   :: KSIZE_WATER  ! number of points with some sea water 
-INTEGER           , INTENT(IN)   :: KSIZE_ICE    ! number of points with some sea ice
-!                                    
-REAL, DIMENSION(:), INTENT(IN)    :: PTA   ! air temperature at atm. level (K)
-REAL, DIMENSION(:), INTENT(IN)    :: PQA   ! air humidity at atm. level (kg/kg)
-REAL, DIMENSION(:), INTENT(IN)    :: PEXNA ! Exner function at atm. level
-REAL, DIMENSION(:), INTENT(IN)    :: PRHOA ! air density at atm. level
-REAL, DIMENSION(:), INTENT(IN)    :: PVMOD ! module of wind at atm. wind level (m/s)
-REAL, DIMENSION(:), INTENT(IN)    :: PZREF ! atm. level for temp. and humidity (m)
-REAL, DIMENSION(:), INTENT(IN)    :: PUREF ! atm. level for wind (m)
-REAL, DIMENSION(:), INTENT(IN)    :: PSST  ! Sea Surface Temperature (K)
-REAL, DIMENSION(:), INTENT(IN)    :: PEXNS ! Exner function at sea surface
-REAL, DIMENSION(:), INTENT(IN)    :: PPS   ! air pressure at sea surface (Pa)
-REAL, DIMENSION(:), INTENT(IN)    :: PRAIN ! precipitation rate (kg/s/m2)
-REAL, DIMENSION(:), INTENT(IN)    :: PSNOW ! snow rate (kg/s/m2)
-!                                                                                 
-!  surface fluxes : latent heat, sensible heat, friction fluxes
-REAL, DIMENSION(:), INTENT(OUT)      :: PSFTH ! heat flux (W/m2)
-REAL, DIMENSION(:), INTENT(OUT)      :: PSFTQ ! water flux (kg/m2/s)
-REAL, DIMENSION(:), INTENT(OUT)      :: PUSTAR! friction velocity (m/s)
-!
-! diagnostics
-REAL, DIMENSION(:), INTENT(OUT)      :: PQSAT ! humidity at saturation
-REAL, DIMENSION(:), INTENT(OUT)      :: PCD   ! heat drag coefficient
-REAL, DIMENSION(:), INTENT(OUT)      :: PCDN  ! momentum drag coefficient
-REAL, DIMENSION(:), INTENT(OUT)      :: PCH   ! neutral momentum drag coefficient
-REAL, DIMENSION(:), INTENT(OUT)      :: PCE   !transfer coef. for latent heat flux
-REAL, DIMENSION(:), INTENT(OUT)      :: PRI   ! Richardson number
-REAL, DIMENSION(:), INTENT(OUT)      :: PRESA ! aerodynamical resistance
-REAL, DIMENSION(:), INTENT(OUT)      :: PZ0HSEA ! heat roughness length
-!
-!*      0.2    declarations of local variables
-!
-INTEGER, DIMENSION(KSIZE_WATER) :: IR_WATER
-INTEGER, DIMENSION(KSIZE_ICE)   :: IR_ICE
-INTEGER                         :: J1,J2,JJ
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-!       1.     Create Masks for ice and water sea
-!              ------------------------------------
-IF (LHOOK) CALL DR_HOOK('MODI_COARE30_SEAFLUX:COARE30_SEAFLUX',0,ZHOOK_HANDLE)
-!
-IR_WATER(:)=0
-IR_ICE(:)=0
-J1=0
-J2=0
-!
-IF (S%LHANDLE_SIC) THEN 
-   ! Must compute open sea fluxes even over fully ice-covered sea, which may melt partly
-   DO JJ=1,SIZE(PSST(:))
-      IR_WATER(JJ)= JJ
-   END DO
-   ! Do not compute on sea-ice (done in coupling_iceflux)
-ELSE
-   ! PMASK = XSST -XTTS
-   DO JJ=1,SIZE(PSST(:))
-      IF (PMASK(JJ) >=0.0 ) THEN
-         J1 = J1 + 1
-         IR_WATER(J1)= JJ
-      ELSE
-         J2 = J2 + 1
-         IR_ICE(J2)= JJ
-      ENDIF
-   END DO
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!       2.      water sea : call to COARE30_FLUX
-!              ------------------------------------------------
-!
-IF (KSIZE_WATER > 0 ) CALL TREAT_SURF(IR_WATER,'W')
-!
-!-------------------------------------------------------------------------------
-!
-!       3.      sea ice : call to ICE_SEA_FLUX
-!              ------------------------------------
-!
-IF ( (KSIZE_ICE > 0 ) .AND. (.NOT. S%LHANDLE_SIC) ) CALL TREAT_SURF(IR_ICE,'I')
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODI_COARE30_SEAFLUX:COARE30_SEAFLUX',1,ZHOOK_HANDLE)
-!-------------------------------------------------------------------------------
-!
-CONTAINS
-!
-SUBROUTINE TREAT_SURF(KMASK,YTYPE)
-!
-INTEGER, INTENT(IN), DIMENSION(:) :: KMASK
- CHARACTER(LEN=1), INTENT(IN) :: YTYPE
-!
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_TA   ! air temperature at atm. level (K)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_QA   ! air humidity at atm. level (kg/kg)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_EXNA ! Exner function at atm. level
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_RHOA ! air density at atm. level
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_VMOD ! module of wind at atm. wind level (m/s)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_ZREF ! atm. level for temp. and humidity (m)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_UREF ! atm. level for wind (m)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_SST  ! Sea Surface Temperature (K)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_HS   ! wave significant height
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_TP   ! wave peak period
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_EXNS ! Exner function at sea surface
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_PS   ! air pressure at sea surface (Pa)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_RAIN !precipitation rate (kg/s/m2)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_SNOW !snow rate (kg/s/m2)
-!
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_Z0SEA! roughness length over the ocean
-!                                                                                 
-!  surface fluxes : latent heat, sensible heat, friction fluxes
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_SFTH ! heat flux (W/m2)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_SFTQ ! water flux (kg/m2/s)
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_USTAR! friction velocity (m/s)
-!
-! diagnostics
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_QSAT ! humidity at saturation
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_CD   ! heat drag coefficient
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_CDN  ! momentum drag coefficient
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_CH   ! neutral momentum drag coefficient
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_CE   !transfer coef. for latent heat flux
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_RI   ! Richardson number
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_RESA ! aerodynamical resistance
-REAL, DIMENSION(SIZE(KMASK))      :: ZW_Z0HSEA ! heat roughness length
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('COARE30_SEAFLUX:TREAT_SURF',0,ZHOOK_HANDLE)
-!
-DO JJ=1, SIZE(KMASK)
-  ZW_TA(JJ)   = PTA(KMASK(JJ))
-  ZW_QA(JJ)   = PQA(KMASK(JJ))
-  ZW_EXNA(JJ) = PEXNA(KMASK(JJ))
-  ZW_RHOA(JJ) = PRHOA(KMASK(JJ))
-  ZW_VMOD(JJ) = PVMOD(KMASK(JJ))
-  ZW_ZREF(JJ) = PZREF(KMASK(JJ)) 
-  ZW_UREF(JJ) = PUREF(KMASK(JJ))
-  ZW_SST(JJ)  = PSST(KMASK(JJ))
-  ZW_TP(JJ)   = S%XTP(KMASK(JJ))
-  ZW_HS(JJ)   = S%XHS(KMASK(JJ))  
-  ZW_EXNS(JJ) = PEXNS(KMASK(JJ)) 
-  ZW_PS(JJ)   = PPS(KMASK(JJ))
-  ZW_RAIN(JJ) = PRAIN(KMASK(JJ))
-  ZW_SNOW(JJ) = PSNOW(KMASK(JJ))
-  ZW_Z0SEA(JJ)= S%XZ0(KMASK(JJ))
-ENDDO
-!  
-ZW_SFTH(:)   = XUNDEF
-ZW_SFTQ(:)   = XUNDEF
-ZW_USTAR(:)  = XUNDEF
-ZW_QSAT(:)   = XUNDEF
-ZW_CD(:)     = XUNDEF
-ZW_CDN(:)    = XUNDEF
-ZW_CH(:)     = XUNDEF
-ZW_CE(:)     = XUNDEF
-ZW_RI(:)     = XUNDEF
-ZW_RESA(:)   = XUNDEF
-ZW_Z0HSEA(:) = XUNDEF
-!
-IF (YTYPE=='W') THEN
-  !
-  CALL COARE30_FLUX(S, ZW_Z0SEA,ZW_TA,ZW_EXNA,ZW_RHOA,ZW_SST,ZW_EXNS,&
-        ZW_QA,ZW_VMOD,ZW_ZREF,ZW_UREF,ZW_PS,ZW_QSAT,ZW_SFTH,ZW_SFTQ,ZW_USTAR,&
-        ZW_CD,ZW_CDN,ZW_CH,ZW_CE,ZW_RI,ZW_RESA,ZW_RAIN,ZW_Z0HSEA,ZW_HS,ZW_TP)   
-  !
-ELSEIF ( (YTYPE=='I') .AND. (.NOT. S%LHANDLE_SIC)) THEN
-  !
-  CALL ICE_SEA_FLUX(ZW_Z0SEA,ZW_TA,ZW_EXNA,ZW_RHOA,ZW_SST,ZW_EXNS,ZW_QA,ZW_RAIN,ZW_SNOW,  &
-         ZW_VMOD,ZW_ZREF,ZW_UREF,ZW_PS,ZW_QSAT,ZW_SFTH,ZW_SFTQ,ZW_USTAR,ZW_CD, &
-         ZW_CDN,ZW_CH,ZW_RI,ZW_RESA,ZW_Z0HSEA)  
-  !
-ENDIF
-!
-DO JJ=1, SIZE(KMASK)
-   S%XZ0(KMASK(JJ))  =  ZW_Z0SEA(JJ)
-   PSFTH(KMASK(JJ))   =  ZW_SFTH(JJ) 
-   PSFTQ(KMASK(JJ))   =  ZW_SFTQ(JJ) 
-   PUSTAR(KMASK(JJ))  =  ZW_USTAR(JJ)
-   PQSAT(KMASK(JJ))   =  ZW_QSAT(JJ)
-   PCD(KMASK(JJ))     =  ZW_CD(JJ) 
-   PCDN(KMASK(JJ))    =  ZW_CDN(JJ) 
-   PCH(KMASK(JJ))     =  ZW_CH(JJ)
-   PCE(KMASK(JJ))     =  ZW_CE(JJ)
-   PRI(KMASK(JJ))     =  ZW_RI(JJ) 
-   PRESA(KMASK(JJ))   =  ZW_RESA(JJ) 
-   PZ0HSEA(KMASK(JJ)) = ZW_Z0HSEA(JJ) 
-END DO
-IF (LHOOK) CALL DR_HOOK('COARE30_SEAFLUX:TREAT_SURF',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE TREAT_SURF
-! 
-END SUBROUTINE COARE30_SEAFLUX
diff --git a/src/OASIS/SURFEX/coupling_seafluxn.F90 b/src/OASIS/SURFEX/coupling_seafluxn.F90
deleted file mode 100644
index 5ea7b516c..000000000
--- a/src/OASIS/SURFEX/coupling_seafluxn.F90
+++ /dev/null
@@ -1,789 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     ###############################################################################
-SUBROUTINE COUPLING_SEAFLUX_n (CHS, DTS, DGS, O, OR, G, S, DST, SLT, &
-                               HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, &
-                               KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF,     &
-                               PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW,      &
-                               PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS,      &
-                               PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF,    &
-                               PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF,        &
-                               PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF,  HTEST                 )  
-!     ###############################################################################
-!
-!!****  *COUPLING_SEAFLUX_n * - Driver of the WATER_FLUX scheme for sea   
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     V. Masson 
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004
-!!      Modified    01/2006 : sea flux parameterization.
-!!      Modified    09/2006 : P. Tulet Introduce Sea salt aerosol Emission/Deposition
-!!      Modified    03/2009 : B. Decharme SST could change during a run => ALB and EMIS 
-!!      Modified    05/2009 : V. Masson : implicitation of momentum fluxes
-!!      Modified    09/2009 : B. Decharme Radiative properties at time t+1
-!!      Modified    01/2010 : B. Decharme Add XTTS
-!!      Modified    09/2012 : B. Decharme New wind implicitation
-!!      Modified    10/2012 : P. Le Moigne CMO1D update
-!!      Modified    04/2013 : P. Le Moigne Wind implicitation and SST update displaced
-!!      Modified    04/2013 : B. Decharme new coupling variables
-!!      Modified    01/2014 : S. Senesi : handle sea-ice cover, sea-ice model interface, 
-!!                               and apply to Gelato
-!!      Modified    01/2014 : S. Belamari Remove MODE_THERMOS and XLVTT
-!!      Modified    05/2014 : S. Belamari New ECUME : Include salinity & atm. pressure impact 
-!!      Modified    01/2015 : R. Séférian interactive ocaen surface albedo
-!!      Modified    03/2014 : M.N. Bouin possibility of wave parameters from external source
-!!      Modified    11/2014 : J. Pianezze : add currents for wave coupling
-!!                                       
-!!---------------------------------------------------------------------
-!
-!
-USE MODD_CH_SEAFLUX_n, ONLY : CH_SEAFLUX_t
-USE MODD_DATA_SEAFLUX_n, ONLY : DATA_SEAFLUX_t
-USE MODD_SURFEX_n, ONLY : SEAFLUX_DIAG_t
-USE MODD_OCEAN_n, ONLY : OCEAN_t
-USE MODD_OCEAN_REL_n, ONLY : OCEAN_REL_t
-USE MODD_SFX_GRID_n, ONLY : GRID_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_DST_n, ONLY : DST_t
-USE MODD_SLT_n, ONLY : SLT_t
-!
-USE MODD_REPROD_OPER, ONLY : CIMPLICIT_WIND
-!
-USE MODD_CSTS,       ONLY : XRD, XCPD, XP00, XTT, XTTS, XTTSI, XDAY
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-USE MODD_SFX_OASIS,  ONLY : LCPL_WAVE, LCPL_SEA, LCPL_SEAICE
-USE MODD_WATER_PAR,  ONLY : XEMISWAT, XEMISWATICE
-!
-USE MODD_WATER_PAR, ONLY : XALBSEAICE
-!
-!
-USE MODI_WATER_FLUX
-USE MODI_MR98
-USE MODI_ECUME_SEAFLUX
-USE MODI_COARE30_SEAFLUX
-USE MODI_ADD_FORECAST_TO_DATE_SURF
-USE MODI_MOD1D_n
-USE MODI_DIAG_INLINE_SEAFLUX_n
-USE MODI_CH_AER_DEP
-USE MODI_CH_DEP_WATER
-USE MODI_DSLT_DEP
-USE MODI_SST_UPDATE
-USE MODI_INTERPOL_SST_MTH
-USE MODI_UPDATE_RAD_SEA
-!
-USE MODE_DSLT_SURF
-USE MODD_DST_SURF
-USE MODD_SLT_SURF
-! 
-USE MODD_OCEAN_GRID,   ONLY : NOCKMIN
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-USE MODI_ABOR1_SFX
-!
-USE MODI_COUPLING_ICEFLUX_n
-USE MODI_SEAICE_GELATO1D_n
-!
-USE MODI_COUPLING_SLT_n
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-!
-TYPE(CH_SEAFLUX_t), INTENT(INOUT) :: CHS
-TYPE(DATA_SEAFLUX_t), INTENT(INOUT) :: DTS
-TYPE(SEAFLUX_DIAG_t), INTENT(INOUT) :: DGS
-TYPE(OCEAN_t), INTENT(INOUT) :: O
-TYPE(OCEAN_REL_t), INTENT(INOUT) :: OR
-TYPE(GRID_t), INTENT(INOUT) :: G
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S 
-TYPE(DST_t), INTENT(INOUT) :: DST
-TYPE(SLT_t), INTENT(INOUT) :: SLT
-!
-CHARACTER(LEN=6),    INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
-CHARACTER(LEN=1),    INTENT(IN)  :: HCOUPLING ! type of coupling
-                                      ! 'E' : explicit
-                                      ! 'I' : implicit
-REAL,                INTENT(IN)  :: PTIMEC    ! current duration since start of the run (s)
-INTEGER,             INTENT(IN)  :: KYEAR     ! current year (UTC)
-INTEGER,             INTENT(IN)  :: KMONTH    ! current month (UTC)
-INTEGER,             INTENT(IN)  :: KDAY      ! current day (UTC)
-REAL,                INTENT(IN)  :: PTIME     ! current time since midnight (UTC, s)
-INTEGER,             INTENT(IN)  :: KI        ! number of points
-INTEGER,             INTENT(IN)  :: KSV       ! number of scalars
-INTEGER,             INTENT(IN)  :: KSW       ! number of short-wave spectral bands
-REAL, DIMENSION(KI), INTENT(IN)  :: PTSUN     ! solar time                    (s from midnight)
-REAL,                INTENT(IN)  :: PTSTEP    ! atmospheric time-step                 (s)
-REAL, DIMENSION(KI), INTENT(IN)  :: PZREF     ! height of T,q forcing                 (m)
-REAL, DIMENSION(KI), INTENT(IN)  :: PUREF     ! height of wind forcing                (m)
-!
-REAL, DIMENSION(KI), INTENT(IN)  :: PTA       ! air temperature forcing               (K)
-REAL, DIMENSION(KI), INTENT(IN)  :: PQA       ! air humidity forcing                  (kg/m3)
-REAL, DIMENSION(KI), INTENT(IN)  :: PRHOA     ! air density                           (kg/m3)
-REAL, DIMENSION(KI,KSV),INTENT(IN) :: PSV     ! scalar variables
-!                                             ! chemistry:   first char. in HSV: '#'  (molecule/m3)
-!                                             !
-CHARACTER(LEN=6), DIMENSION(KSV),INTENT(IN):: HSV  ! name of all scalar variables
-REAL, DIMENSION(KI), INTENT(IN)  :: PU        ! zonal wind                            (m/s)
-REAL, DIMENSION(KI), INTENT(IN)  :: PV        ! meridian wind                         (m/s)
-REAL, DIMENSION(KI,KSW),INTENT(IN) :: PDIR_SW ! direct  solar radiation (on horizontal surf.)
-!                                             !                                       (W/m2)
-REAL, DIMENSION(KI,KSW),INTENT(IN) :: PSCA_SW ! diffuse solar radiation (on horizontal surf.)
-!                                             !                                       (W/m2)
-REAL, DIMENSION(KSW),INTENT(IN)  :: PSW_BANDS ! mean wavelength of each shortwave band (m)
-REAL, DIMENSION(KI), INTENT(IN)  :: PZENITH   ! zenithal angle at t  (radian from the vertical)
-REAL, DIMENSION(KI), INTENT(IN)  :: PZENITH2  ! zenithal angle at t+1(radian from the vertical)
-REAL, DIMENSION(KI), INTENT(IN)  :: PAZIM     ! azimuthal angle      (radian from North, clockwise)
-REAL, DIMENSION(KI), INTENT(IN)  :: PLW       ! longwave radiation (on horizontal surf.)
-!                                             !                                       (W/m2)
-REAL, DIMENSION(KI), INTENT(IN)  :: PPS       ! pressure at atmospheric model surface (Pa)
-REAL, DIMENSION(KI), INTENT(IN)  :: PPA       ! pressure at forcing level             (Pa)
-REAL, DIMENSION(KI), INTENT(IN)  :: PCO2      ! CO2 concentration in the air          (kg/m3)
-REAL, DIMENSION(KI), INTENT(IN)  :: PSNOW     ! snow precipitation                    (kg/m2/s)
-REAL, DIMENSION(KI), INTENT(IN)  :: PRAIN     ! liquid precipitation                  (kg/m2/s)
-!
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFTH     ! flux of heat                          (W/m2)
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFTQ     ! flux of water vapor                   (kg/m2/s)
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFU      ! zonal momentum flux                   (Pa)
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFV      ! meridian momentum flux                (Pa)
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFCO2    ! flux of CO2                           (m/s*kg_CO2/kg_air)
-REAL, DIMENSION(KI,KSV),INTENT(OUT):: PSFTS   ! flux of scalar var.                   (kg/m2/s)
-!
-REAL, DIMENSION(KI), INTENT(OUT) :: PTRAD     ! radiative temperature                 (K)
-REAL, DIMENSION(KI,KSW),INTENT(OUT):: PDIR_ALB! direct albedo for each spectral band  (-)
-REAL, DIMENSION(KI,KSW),INTENT(OUT):: PSCA_ALB! diffuse albedo for each spectral band (-)
-REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS     ! emissivity                            (-)
-!
-REAL, DIMENSION(KI), INTENT(OUT) :: PTSURF    ! surface effective temperature         (K)
-REAL, DIMENSION(KI), INTENT(OUT) :: PZ0       ! roughness length for momentum         (m)
-REAL, DIMENSION(KI), INTENT(OUT) :: PZ0H      ! roughness length for heat             (m)
-REAL, DIMENSION(KI), INTENT(OUT) :: PQSURF    ! specific humidity at surface          (kg/kg)
-!
-REAL, DIMENSION(KI), INTENT(IN) :: PPEW_A_COEF! implicit coefficients   (m2s/kg)
-REAL, DIMENSION(KI), INTENT(IN) :: PPEW_B_COEF! needed if HCOUPLING='I' (m/s)
-REAL, DIMENSION(KI), INTENT(IN) :: PPET_A_COEF
-REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_A_COEF
-REAL, DIMENSION(KI), INTENT(IN) :: PPET_B_COEF
-REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_B_COEF
-CHARACTER(LEN=2),    INTENT(IN) :: HTEST ! must be equal to 'OK'
-!
-!*      0.2    declarations of local variables
-!     
-REAL, DIMENSION(KI,KSW) :: ZDIR_ALB   ! Direct albedo at time t
-REAL, DIMENSION(KI,KSW) :: ZSCA_ALB   ! Diffuse albedo at time t
-!
-REAL, DIMENSION(KI) :: ZEXNA      ! Exner function at forcing level
-REAL, DIMENSION(KI) :: ZEXNS      ! Exner function at surface level
-REAL, DIMENSION(KI) :: ZU         ! zonal wind
-REAL, DIMENSION(KI) :: ZV         ! meridian wind
-REAL, DIMENSION(KI) :: ZWIND      ! Wind
-REAL, DIMENSION(KI) :: ZCD        ! Drag coefficient on open sea
-REAL, DIMENSION(KI) :: ZCD_ICE    ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZCDN       ! Neutral Drag coefficient on open sea
-REAL, DIMENSION(KI) :: ZCDN_ICE   ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZCH        ! Heat transfer coefficient on open sea
-REAL, DIMENSION(KI) :: ZCH_ICE    ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZCE        ! Vaporization heat transfer coefficient on open sea
-REAL, DIMENSION(KI) :: ZCE_ICE    ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZRI        ! Richardson number on open sea
-REAL, DIMENSION(KI) :: ZRI_ICE    ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZRESA_SEA  ! aerodynamical resistance on open sea
-REAL, DIMENSION(KI) :: ZRESA_SEA_ICE  ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZUSTAR     ! friction velocity (m/s) on open sea
-REAL, DIMENSION(KI) :: ZUSTAR_ICE ! "     "          on seaice
-REAL, DIMENSION(KI) :: ZZ0        ! roughness length over open sea
-REAL, DIMENSION(KI) :: ZZ0_ICE    ! roughness length over seaice
-REAL, DIMENSION(KI) :: ZZ0H       ! heat roughness length over open sea
-REAL, DIMENSION(KI) :: ZZ0H_ICE   ! heat roughness length over seaice
-REAL, DIMENSION(KI) :: ZZ0W       ! Work array for Z0 and Z0H computation
-REAL, DIMENSION(KI) :: ZQSAT      ! humidity at saturation on open sea
-REAL, DIMENSION(KI) :: ZQSAT_ICE  ! "     "          on seaice
-!
-REAL, DIMENSION(KI) :: ZSFTH      ! Heat flux for open sea (and for sea-ice points if merged)
-REAL, DIMENSION(KI) :: ZSFTQ      ! Water vapor flux on open sea (and for sea-ice points if merged)
-REAL, DIMENSION(KI) :: ZSFU       ! zonal      momentum flux on open sea (and for sea-ice points if merged)(Pa)
-REAL, DIMENSION(KI) :: ZSFV       ! meridional momentum flux on open sea (and for sea-ice points if merged)(Pa)
-!
-REAL, DIMENSION(KI) :: ZSFTH_ICE  ! Heat flux on sea ice 
-REAL, DIMENSION(KI) :: ZSFTQ_ICE  ! Sea-ice sublimation flux
-REAL, DIMENSION(KI) :: ZSFU_ICE   ! zonal      momentum flux on seaice (Pa)
-REAL, DIMENSION(KI) :: ZSFV_ICE   ! meridional momentum flux on seaice (Pa)
-
-REAL, DIMENSION(KI) :: ZHU        ! Near surface relative humidity
-REAL, DIMENSION(KI) :: ZQA        ! specific humidity (kg/kg)
-REAL, DIMENSION(KI) :: ZEMIS      ! Emissivity at time t
-REAL, DIMENSION(KI) :: ZTRAD      ! Radiative temperature at time t
-!
-REAL, DIMENSION(KI) :: ZSST       ! XSST corrected for anomalously low values (which actually are sea-ice temp)
-REAL, DIMENSION(KI) :: ZMASK      ! A mask for diagnosing where seaice exists (or, for coupling_iceflux, may appear)
-!
-REAL                             :: ZCONVERTFACM0_SLT, ZCONVERTFACM0_DST
-REAL                             :: ZCONVERTFACM3_SLT, ZCONVERTFACM3_DST
-REAL                             :: ZCONVERTFACM6_SLT, ZCONVERTFACM6_DST
-!
-INTEGER                          :: ISIZE_WATER  ! number of points with some sea water 
-INTEGER                          :: ISIZE_ICE    ! number of points with some sea ice
-!
-INTEGER                          :: ISWB       ! number of shortwave spectral bands
-INTEGER                          :: JSWB       ! loop counter on shortwave spectral bands
-INTEGER                          :: ISLT       ! number of sea salt variable
-!
-INTEGER :: IBEG, IEND
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------------
-! Preliminaries:
-!-------------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N',0,ZHOOK_HANDLE)
-IF (HTEST/='OK') THEN
-  CALL ABOR1_SFX('COUPLING_SEAFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER')        
-END IF
-!-------------------------------------------------------------------------------------
-!
-ZEXNA    (:) = XUNDEF
-ZEXNS    (:) = XUNDEF
-ZU       (:) = XUNDEF
-ZV       (:) = XUNDEF
-ZWIND    (:) = XUNDEF
-ZSFTQ    (:) = XUNDEF
-ZSFTH    (:) = XUNDEF
-ZCD      (:) = XUNDEF    
-ZCDN     (:) = XUNDEF
-ZCH      (:) = XUNDEF
-ZCE      (:) = XUNDEF
-ZRI      (:) = XUNDEF
-ZHU      (:) = XUNDEF
-ZRESA_SEA(:) = XUNDEF
-ZUSTAR   (:) = XUNDEF
-ZZ0      (:) = XUNDEF
-ZZ0H     (:) = XUNDEF
-ZQSAT    (:) = XUNDEF
-!
-ZSFTQ_ICE(:) = XUNDEF
-ZSFTH_ICE(:) = XUNDEF
-ZCD_ICE  (:) = XUNDEF    
-ZCDN_ICE (:) = XUNDEF
-ZCH_ICE  (:) = XUNDEF
-ZCE_ICE  (:) = XUNDEF
-ZRI_ICE  (:) = XUNDEF
-ZRESA_SEA_ICE= XUNDEF
-ZUSTAR_ICE(:) = XUNDEF
-ZZ0_ICE  (:) = XUNDEF
-ZZ0H_ICE (:) = XUNDEF
-ZQSAT_ICE(:) = XUNDEF
-!
-ZEMIS    (:) = XUNDEF
-ZTRAD    (:) = XUNDEF
-ZDIR_ALB (:,:) = XUNDEF
-ZSCA_ALB (:,:) = XUNDEF
-!
-!-------------------------------------------------------------------------------------
-!
-ZEXNS(:)     = (PPS(:)/XP00)**(XRD/XCPD)
-ZEXNA(:)     = (PPA(:)/XP00)**(XRD/XCPD)
-!
-IF(LCPL_SEA .OR. LCPL_WAVE)THEN 
-  !Sea currents are taken into account
-  ZU(:)=PU(:)-S%XUMER(:)
-  ZV(:)=PV(:)-S%XVMER(:)
-ELSE
-  ZU(:)=PU(:)
-  ZV(:)=PV(:)        
-ENDIF
-!
-ZWIND(:) = SQRT(ZU(:)**2+ZV(:)**2)
-!
-PSFTS(:,:) = 0.
-!
-ZHU = 1.
-!
-ZQA(:) = PQA(:) / PRHOA(:)
-!
-! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-! Time evolution
-! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-!
-S%TTIME%TIME = S%TTIME%TIME + PTSTEP
- CALL ADD_FORECAST_TO_DATE_SURF(S%TTIME%TDATE%YEAR,S%TTIME%TDATE%MONTH,S%TTIME%TDATE%DAY,S%TTIME%TIME)
-!
-!--------------------------------------------------------------------------------------
-! Fluxes over water according to Charnock formulae
-!--------------------------------------------------------------------------------------
-!
-IF (S%LHANDLE_SIC) THEN 
-  ! Flux for sea are computed everywhere
-  ISIZE_WATER = SIZE(ZMASK)
-  ! Ensure freezing SST values where XSST actually has very low (sea-ice) values (old habits)
-  ZSST(:)=MAX(S%XSST(:), XTTSI) 
-  ! Flux over sea-ice will not be computed by next calls, but by coupling_iceflux. Hence :
-  ISIZE_ICE   = 0
-  ! Flux over sea-ice will be computed by coupling_iceflux anywhere sea-ice could form in one 
-  ! time-step (incl. under forcing). ZMASK value is set to 1. on these points
-  ZMASK(:)=0.
-  WHERE ( S%XSIC(:) > 0. ) ZMASK(:)=1. 
-  ! To be large, assume that seaice may form where SST is < 10C
-  WHERE ( S%XSST(:) - XTTS <= 10. ) ZMASK(:)=1.
-  IF (S%LINTERPOL_SIC) WHERE (S%XFSIC(:) > 0. ) ZMASK(:)=1. 
-  IF (S%LINTERPOL_SIT) WHERE (S%XFSIT(:) > 0. ) ZMASK(:)=1.
-ELSE
-  ZSST (:) = S%XSST(:)
-  ZMASK(:) = S%XSST(:) - XTTS
-  ISIZE_WATER = COUNT(ZMASK(:)>=0.)
-  ISIZE_ICE   = SIZE(S%XSST) - ISIZE_WATER
-ENDIF
-!
-SELECT CASE (S%CSEA_FLUX)
-CASE ('DIRECT')
-CALL WATER_FLUX(S%XZ0, PTA, ZEXNA, PRHOA, ZSST, ZEXNS, ZQA, &
-                PRAIN, PSNOW, XTTS, ZWIND, PZREF, PUREF,    &
-                PPS, S%LHANDLE_SIC, ZQSAT,  ZSFTH, ZSFTQ,   &
-                ZUSTAR, ZCD, ZCDN, ZCH, ZRI, ZRESA_SEA, ZZ0H )  
-CASE ('ITERAT')
-CALL MR98     (S%XZ0, PTA, ZEXNA, PRHOA, S%XSST, ZEXNS, ZQA,  &
-               XTTS, ZWIND, PZREF, PUREF, PPS, ZQSAT,         &
-               ZSFTH, ZSFTQ, ZUSTAR,                          &
-               ZCD, ZCDN, ZCH, ZRI, ZRESA_SEA, ZZ0H           )  
-
-CASE ('ECUME ','ECUME6')
-CALL ECUME_SEAFLUX(S, ZMASK, ISIZE_WATER, ISIZE_ICE,       &
-              PTA, ZEXNA ,PRHOA, ZSST, ZEXNS, ZQA,         &
-              PRAIN, PSNOW, ZWIND, PZREF, PUREF, PPS, PPA, &
-              ZQSAT, ZSFTH, ZSFTQ, ZUSTAR,                 &
-              ZCD, ZCDN, ZCH, ZCE, ZRI, ZRESA_SEA, ZZ0H    )
-CASE ('COARE3')
-CALL COARE30_SEAFLUX(S, ZMASK, ISIZE_WATER, ISIZE_ICE,        &
-              PTA, ZEXNA ,PRHOA, ZSST, ZEXNS, ZQA, PRAIN,     &
-              PSNOW, ZWIND, PZREF, PUREF, PPS, ZQSAT,         &
-              ZSFTH, ZSFTQ, ZUSTAR,                           &
-              ZCD, ZCDN, ZCH, ZCE, ZRI, ZRESA_SEA, ZZ0H       )  
-END SELECT
-!
-!-------------------------------------------------------------------------------------
-!radiative properties at time t
-!-------------------------------------------------------------------------------------
-!
-ISWB = SIZE(PSW_BANDS)
-!
-DO JSWB=1,ISWB
-ZDIR_ALB(:,JSWB) = S%XDIR_ALB(:)
-ZSCA_ALB(:,JSWB) = S%XSCA_ALB(:)
-END DO
-!
-IF (S%LHANDLE_SIC) THEN 
-ZEMIS(:) =   (1 - S%XSIC(:)) * XEMISWAT    + S%XSIC(:) * XEMISWATICE
-ZTRAD(:) = (((1 - S%XSIC(:)) * XEMISWAT    * S%XSST (:)**4 + &
-             S%XSIC(:)  * XEMISWATICE * S%XTICE(:)**4)/ ZEMIS(:)) ** 0.25
-ELSE
-ZTRAD(:) = S%XSST (:)
-ZEMIS(:) = S%XEMIS(:)
-END IF
-!
-!-------------------------------------------------------------------------------------
-!Specific fields for seaice model (when using earth system model or embedded  
-!seaice scheme)
-!-------------------------------------------------------------------------------------
-!
-IF(LCPL_SEAICE.OR.S%LHANDLE_SIC)THEN
-CALL COUPLING_ICEFLUX_n(KI, PTA, ZEXNA, PRHOA, S%XTICE, ZEXNS, &
-             ZQA, PRAIN, PSNOW, ZWIND, PZREF, PUREF,     &
-             PPS, S%XSST, XTTS, ZSFTH_ICE, ZSFTQ_ICE,    &  
-             S%LHANDLE_SIC, ZMASK, ZQSAT_ICE, ZZ0_ICE,   &
-             ZUSTAR_ICE, ZCD_ICE, ZCDN_ICE, ZCH_ICE,   &
-             ZRI_ICE, ZRESA_SEA_ICE, ZZ0H_ICE          )
-ENDIF
-!
-IF (S%LHANDLE_SIC) CALL COMPLEMENT_EACH_OTHER_FLUX
-!
-!-------------------------------------------------------------------------------------
-! Momentum fluxes over sea or se-ice
-!-------------------------------------------------------------------------------------
-!
-CALL SEA_MOMENTUM_FLUXES(ZCD, ZSFU, ZSFV)
-!
-! Momentum fluxes over sea-ice if embedded seaice scheme is used
-!
-IF (S%LHANDLE_SIC) CALL SEA_MOMENTUM_FLUXES(ZCD_ICE, ZSFU_ICE, ZSFV_ICE)
-!
-! CO2 flux
-!
-PSFCO2(:) = 0.0
-!
-!IF(LCPL_SEA.AND.CSEACO2=='NONE')THEN
-!  PSFCO2(:) = XSEACO2(:)
-!ELSEIF(CSEACO2=='CST ')THEN
-!  PSFCO2 = E * deltapCO2 
-!  According to Wanninkhof (medium hypothesis) : 
-!  E = 1.13.10^-3 * WIND^2 CO2mol.m-2.yr-1.uatm-1
-!    = 1.13.10^-3 * WIND^2 * Mco2.10^-3 * (1/365*24*3600)
-!  deltapCO2 = -8.7 uatm (Table 1 half hypothesis)
-PSFCO2(:) = - ZWIND(:)**2 * 1.13E-3 * 8.7 * 44.E-3 / ( 365*24*3600 )
-!ENDIF
-!
-!-------------------------------------------------------------------------------------
-! Scalar fluxes:
-!-------------------------------------------------------------------------------------
-!
-IF (CHS%SVS%NBEQ>0) THEN
-  !
-  IF (CHS%CCH_DRY_DEP == "WES89") THEN
-    !
-    IBEG = CHS%SVS%NSV_CHSBEG
-    IEND = CHS%SVS%NSV_CHSEND
-    !
-    CALL CH_DEP_WATER  (ZRESA_SEA, ZUSTAR, PTA, ZTRAD,PSV(:,IBEG:IEND), &
-                        CHS%SVS%CSV(IBEG:IEND), CHS%XDEP(:,1:CHS%SVS%NBEQ) )  
-    !
-    PSFTS(:,IBEG:IEND) = - PSV(:,IBEG:IEND) * CHS%XDEP(:,1:CHS%SVS%NBEQ)  
-    !
-    IF (CHS%SVS%NAEREQ > 0 ) THEN
-      !
-      IBEG = CHS%SVS%NSV_AERBEG
-      IEND = CHS%SVS%NSV_AEREND
-      !
-      CALL CH_AER_DEP(PSV(:,IBEG:IEND),PSFTS(:,IBEG:IEND),ZUSTAR,ZRESA_SEA,PTA,PRHOA)   
-      !  
-    END IF
-    !
-  ELSE
-    !
-    IBEG = CHS%SVS%NSV_AERBEG
-    IEND = CHS%SVS%NSV_AEREND
-    !
-    PSFTS(:,IBEG:IEND) =0.
-    IF (IEND.GT.IBEG)     PSFTS(:,IBEG:IEND) =0.
-    !
-  ENDIF
-  !
-ENDIF
-!
-IF (CHS%SVS%NDSTEQ>0) THEN
-  !
-  IBEG = CHS%SVS%NSV_DSTBEG
-  IEND = CHS%SVS%NSV_DSTEND
-  !
-  CALL DSLT_DEP(PSV(:,IBEG:IEND), PSFTS(:,IBEG:IEND), ZUSTAR, ZRESA_SEA, PTA, &
-                PRHOA, DST%XEMISSIG_DST, DST%XEMISRADIUS_DST, JPMODE_DST,     &
-                XDENSITY_DST, XMOLARWEIGHT_DST, ZCONVERTFACM0_DST, ZCONVERTFACM6_DST, &
-                ZCONVERTFACM3_DST, LVARSIG_DST, LRGFIX_DST, CVERMOD  )  
-  !
-  CALL MASSFLUX2MOMENTFLUX(         &
-                PSFTS(:,IBEG:IEND), & !I/O ![kg/m2/sec] In: flux of only mass, out: flux of moments
-                PRHOA,                          & !I [kg/m3] air density
-                DST%XEMISRADIUS_DST,                &!I [um] emitted radius for the modes (max 3)
-                DST%XEMISSIG_DST,                   &!I [-] emitted sigma for the different modes (max 3)
-                NDSTMDE,                        &
-                ZCONVERTFACM0_DST,              &
-                ZCONVERTFACM6_DST,              &
-                ZCONVERTFACM3_DST,              &
-                LVARSIG_DST, LRGFIX_DST         )  
-  !
-ENDIF
-
-!
-IF (CHS%SVS%NSLTEQ>0) THEN
-  !
-  IBEG = CHS%SVS%NSV_SLTBEG
-  IEND = CHS%SVS%NSV_SLTEND
-  !
-  ISLT = IEND - IBEG + 1
-  !
-  CALL COUPLING_SLT_n(SLT, &
-                      SIZE(ZUSTAR,1),           & !I [nbr] number of sea point
-                      ISLT,                     & !I [nbr] number of sea salt variables
-                      ZWIND,                    & !I [m/s] wind velocity
-                      PSFTS(:,IBEG:IEND) )   
-  !
-  CALL DSLT_DEP(PSV(:,IBEG:IEND), PSFTS(:,IBEG:IEND), ZUSTAR, ZRESA_SEA, PTA, &
-                PRHOA, SLT%XEMISSIG_SLT, SLT%XEMISRADIUS_SLT, JPMODE_SLT,     &
-                XDENSITY_SLT, XMOLARWEIGHT_SLT, ZCONVERTFACM0_SLT, ZCONVERTFACM6_SLT, &
-                ZCONVERTFACM3_SLT, LVARSIG_SLT, LRGFIX_SLT, CVERMOD  )  
-  !
-  CALL MASSFLUX2MOMENTFLUX(         &
-                PSFTS(:,IBEG:IEND), & !I/O ![kg/m2/sec] In: flux of only mass, out: flux of moments
-                PRHOA,                          & !I [kg/m3] air density
-                SLT%XEMISRADIUS_SLT,            &!I [um] emitted radius for the modes (max 3)
-                SLT%XEMISSIG_SLT,               &!I [-] emitted sigma for the different modes (max 3)
-                NSLTMDE,                        &
-                ZCONVERTFACM0_SLT,              &
-                ZCONVERTFACM6_SLT,              &
-                ZCONVERTFACM3_SLT,              &
-                LVARSIG_SLT, LRGFIX_SLT         ) 
-  !
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Inline diagnostics at time t for SST and TRAD
-!-------------------------------------------------------------------------------
-!
-CALL DIAG_INLINE_SEAFLUX_n(DGS%O, DGS%D, DGS%DC, DGS%DI, DGS%DIC, DGS%DMI, &
-                           S, PTSTEP, PTA, ZQA, PPA, PPS, PRHOA, PU,       &
-                           PV, PZREF, PUREF, ZCD, ZCDN, ZCH, ZCE, ZRI, ZHU,&
-                           ZZ0H, ZQSAT, ZSFTH, ZSFTQ, ZSFU, ZSFV,          &
-                           PDIR_SW, PSCA_SW, PLW, ZDIR_ALB, ZSCA_ALB,      &
-                           ZEMIS, ZTRAD, PRAIN, PSNOW,                     &
-                           ZCD_ICE, ZCDN_ICE, ZCH_ICE, ZCE_ICE, ZRI_ICE,   &
-                           ZZ0_ICE, ZZ0H_ICE, ZQSAT_ICE, ZSFTH_ICE,        &
-                           ZSFTQ_ICE, ZSFU_ICE, ZSFV_ICE)
-!
-!-------------------------------------------------------------------------------
-! A kind of "average_flux"
-!-------------------------------------------------------------------------------
-!
-IF (S%LHANDLE_SIC) THEN
-  PSFTH  (:) = ZSFTH (:) * ( 1 - S%XSIC (:)) + ZSFTH_ICE(:) * S%XSIC(:)
-  PSFTQ  (:) = ZSFTQ (:) * ( 1 - S%XSIC (:)) + ZSFTQ_ICE(:) * S%XSIC(:)
-  PSFU   (:) = ZSFU  (:) * ( 1 - S%XSIC (:)) +  ZSFU_ICE(:) * S%XSIC(:)
-  PSFV   (:) = ZSFV  (:) * ( 1 - S%XSIC (:)) +  ZSFV_ICE(:) * S%XSIC(:)
-ELSE
-  PSFTH  (:) = ZSFTH (:) 
-  PSFTQ  (:) = ZSFTQ (:) 
-  PSFU   (:) = ZSFU  (:) 
-  PSFV   (:) = ZSFV  (:) 
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! IMPOSED SSS OR INTERPOLATED SSS AT TIME t+1
-!-------------------------------------------------------------------------------
-!
-! Daily update Sea surface salinity from monthly data
-!
-IF (S%LINTERPOL_SSS .AND. MOD(S%TTIME%TIME,XDAY) == 0.) THEN
-  CALL INTERPOL_SST_MTH(S,'S')
-  IF (ANY(S%XSSS(:)<0.0)) THEN
-    CALL ABOR1_SFX('COUPLING_SEAFLUX_N: XSSS should be >=0') 
-  ENDIF                      
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! SEA-ICE coupling at time t+1
-!-------------------------------------------------------------------------------
-!
-IF (S%LHANDLE_SIC) THEN
-  !
-  IF (S%LINTERPOL_SIC) THEN
-    IF ((MOD(S%TTIME%TIME,XDAY) == 0.) .OR. (PTIMEC <= PTSTEP )) THEN
-      ! Daily update Sea Ice Cover constraint from monthly data
-      CALL INTERPOL_SST_MTH(S,'C')
-      IF (ANY(S%XFSIC(:)>1.0).OR.ANY(S%XFSIC(:)<0.0)) THEN
-        CALL ABOR1_SFX('COUPLING_SEAFLUX_N: FSIC should be >=0 and <=1') 
-      ENDIF                    
-    ENDIF
-  ENDIF
-  !
-  IF (S%LINTERPOL_SIT) THEN
-    IF ((MOD(S%TTIME%TIME,XDAY) == 0.) .OR. (PTIMEC <= PTSTEP )) THEN
-      ! Daily update Sea Ice Thickness constraint from monthly data
-      CALL INTERPOL_SST_MTH(S,'H')
-      IF (ANY(S%XFSIT(:)<0.0)) THEN
-        CALL ABOR1_SFX('COUPLING_SEAFLUX_N: XFSIT should be >=0') 
-      ENDIF  
-    ENDIF
-  ENDIF
-  !
-  IF (S%CSEAICE_SCHEME=='GELATO') THEN
-    CALL SEAICE_GELATO1D_n(S, HPROGRAM,PTIMEC, PTSTEP)
-  ENDIF
-  ! Update of cell-averaged albedo, emissivity and radiative 
-  ! temperature is done later
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! OCEANIC COUPLING, IMPOSED SST OR INTERPOLATED SST AT TIME t+1
-!-------------------------------------------------------------------------------
-!
-IF (O%LMERCATOR) THEN
-  !
-  ! Update SST reference profile for relaxation purpose
-  IF (DTS%LSST_DATA) THEN
-    CALL SST_UPDATE(DTS, S, OR%XSEAT_REL(:,NOCKMIN+1))
-    !
-    ! Convert to degree C for ocean model
-    OR%XSEAT_REL(:,NOCKMIN+1) = OR%XSEAT_REL(:,NOCKMIN+1) - XTT
-  ENDIF
-  !
-  CALL MOD1D_n(DGS%GO, O, OR, G%XLAT, S, &
-               HPROGRAM,PTIME,ZEMIS(:),ZDIR_ALB(:,1:KSW),ZSCA_ALB(:,1:KSW),&
-               PLW(:),PSCA_SW(:,1:KSW),PDIR_SW(:,1:KSW),PSFTH(:),          &
-               PSFTQ(:),PSFU(:),PSFV(:),PRAIN(:))
-  !
-ELSEIF(DTS%LSST_DATA) THEN 
-  !
-  ! Imposed SST 
-  !
-  CALL SST_UPDATE(DTS, S, S%XSST)
-  !
-ELSEIF (S%LINTERPOL_SST.AND.MOD(S%TTIME%TIME,XDAY) == 0.) THEN
-   !
-   ! Imposed monthly SST 
-   !
-   CALL INTERPOL_SST_MTH(S,'T')
-   !
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!Physical properties see by the atmosphere in order to close the energy budget 
-!between surfex and the atmosphere. All variables should be at t+1 but very 
-!difficult to do. Maybe it will be done later. However, Ts is at time t+1
-!-------------------------------------------------------------------------------
-!
-IF (S%LHANDLE_SIC) THEN
-  IF (S%CSEAICE_SCHEME/='GELATO') THEN
-     S%XTICE    = S%XSST
-     S%XSIC     = S%XFSIC
-     S%XICE_ALB = XALBSEAICE           
-  ENDIF         
-  PTSURF (:) = S%XSST(:) * ( 1 - S%XSIC (:)) +   S%XTICE(:) * S%XSIC(:)
-  PQSURF (:) = ZQSAT (:) * ( 1 - S%XSIC (:)) + ZQSAT_ICE(:) * S%XSIC(:)
-  ZZ0W   (:) = ( 1 - S%XSIC(:) ) * 1.0/(LOG(PUREF(:)/ZZ0(:))    **2)  +  &
-                     S%XSIC(:)   * 1.0/(LOG(PUREF(:)/ZZ0_ICE(:))**2)  
-  PZ0    (:) = PUREF (:) * EXP ( - SQRT ( 1./  ZZ0W(:) ))
-  ZZ0W   (:) = ( 1 - S%XSIC(:) ) * 1.0/(LOG(PZREF(:)/ZZ0H(:))    **2)  +  &
-                     S%XSIC(:)   * 1.0/(LOG(PZREF(:)/ZZ0H_ICE(:))**2)  
-  PZ0H   (:) = PZREF (:) * EXP ( - SQRT ( 1./  ZZ0W(:) ))
-ELSE
-  PTSURF (:) = S%XSST(:) 
-  PQSURF (:) = ZQSAT (:) 
-  PZ0    (:) = S%XZ0 (:) 
-  PZ0H   (:) = ZZ0H  (:) 
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!Radiative properties at time t+1 (see by the atmosphere) in order to close
-!the energy budget between surfex and the atmosphere
-!-------------------------------------------------------------------------------
-!
- CALL UPDATE_RAD_SEA(S,PZENITH2,XTTS,PDIR_ALB,PSCA_ALB,PEMIS,PTRAD,PU,PV)
-!
-!=======================================================================================
-!
-IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!=======================================================================================
-!
-CONTAINS
-!
-SUBROUTINE SEA_MOMENTUM_FLUXES(PCD, PSFU, PSFV)
-!
-IMPLICIT NONE
-!
-REAL, DIMENSION(KI), INTENT(IN)  :: PCD       ! Drag coefficient (on open sea or seaice)
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFU      ! zonal momentum flux                   (Pa)
-REAL, DIMENSION(KI), INTENT(OUT) :: PSFV      ! meridian momentum flux                (Pa)
-!
-REAL, DIMENSION(KI) :: ZUSTAR2    ! square of friction velocity (m2/s2)
-REAL, DIMENSION(KI) :: ZWORK      ! Work array
-!
-REAL, DIMENSION(KI) :: ZPEW_A_COEF
-REAL, DIMENSION(KI) :: ZPEW_B_COEF
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N: SEA_MOMENTUM_FLUXES',0,ZHOOK_HANDLE)
-!
-IF( (LCPL_SEA .OR. LCPL_WAVE) .AND. HCOUPLING .EQ. 'E')THEN
-  ZPEW_A_COEF(:)=0.0
-  ZPEW_B_COEF(:)=ZWIND(:)
-ELSE
-  ZPEW_A_COEF(:)=PPEW_A_COEF(:)
-  ZPEW_B_COEF(:)=PPEW_B_COEF(:)
-ENDIF
-!
-ZWORK  (:) = XUNDEF
-ZUSTAR2(:) = XUNDEF
-!
-IF(CIMPLICIT_WIND=='OLD')THEN
-! old implicitation (m2/s2)
-  ZUSTAR2(:) = (PCD(:)*ZWIND(:)*ZPEW_B_COEF(:)) /            &
-              (1.0-PRHOA(:)*PCD(:)*ZWIND(:)*ZPEW_A_COEF(:))
-ELSE
-! new implicitation (m2/s2)
-  ZUSTAR2(:) = (PCD(:)*ZWIND(:)*(2.*ZPEW_B_COEF(:)-ZWIND(:))) /&
-              (1.0-2.0*PRHOA(:)*PCD(:)*ZWIND(:)*ZPEW_A_COEF(:))
-!                   
-  ZWORK(:)  = PRHOA(:)*PPEW_A_COEF(:)*ZUSTAR2(:) + ZPEW_B_COEF(:)
-  ZWORK(:) = MAX(ZWORK(:),0.)
-!
-  WHERE(ZPEW_A_COEF(:)/= 0.)
-        ZUSTAR2(:) = MAX( ( ZWORK(:) - PPEW_B_COEF(:) ) / (PRHOA(:)*ZPEW_A_COEF(:)), 0.)
-  ENDWHERE
-!              
-ENDIF
-!
-PSFU = 0.
-PSFV = 0.
-WHERE (ZWIND(:)>0.)
-  PSFU(:) = - PRHOA(:) * ZUSTAR2(:) * ZU(:) / ZWIND(:)
-  PSFV(:) = - PRHOA(:) * ZUSTAR2(:) * ZV(:) / ZWIND(:)
-END WHERE
-!
-IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N: SEA_MOMENTUM_FLUXES',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE SEA_MOMENTUM_FLUXES
-!
-!=======================================================================================
-!
-SUBROUTINE COMPLEMENT_EACH_OTHER_FLUX
-!
-! Provide dummy fluxes on places with no open-sea or no sea-ice 
-! Allows a smooth computing of CLS parameters in all cases while avoiding 
-! having to pack arrays (in routines PARAM_CLS and CLS_TQ)
-!
-IMPLICIT NONE
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N: COMPLEMENT_EACH_OTHER_FLUX',0,ZHOOK_HANDLE)
-!
-  WHERE (S%XSIC(:) == 1.)
-     ZSFTH=ZSFTH_ICE 
-     ZSFTQ=ZSFTQ_ICE 
-     ZSFU=ZSFU_ICE
-     ZSFV=ZSFV_ICE
-     ZQSAT=ZQSAT_ICE
-     ZCD=ZCD_ICE
-     ZCDN=ZCDN_ICE
-     ZCH=ZCH_ICE
-     ZCE=ZCE_ICE
-     ZRI=ZRI_ICE 
-     ZZ0H=ZZ0H_ICE
-  END WHERE
-  WHERE (S%XSIC(:) == 0.)
-     ZSFTH_ICE=ZSFTH 
-     ZSFTQ_ICE=ZSFTQ 
-     ZSFU_ICE=ZSFU
-     ZSFV_ICE=ZSFV
-     ZQSAT_ICE=ZQSAT
-     ZCD_ICE=ZCD
-     ZCDN_ICE=ZCDN
-     ZCH_ICE=ZCH
-     ZCE_ICE=ZCE
-     ZRI_ICE=ZRI 
-     ZZ0H_ICE=ZZ0H
-  END WHERE
-!
-IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N: COMPLEMENT_EACH_OTHER_FLUX',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE COMPLEMENT_EACH_OTHER_FLUX
-!
-!=======================================================================================
-!
-END SUBROUTINE COUPLING_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/dealloc_seafluxn.F90 b/src/OASIS/SURFEX/dealloc_seafluxn.F90
deleted file mode 100644
index 568fc710d..000000000
--- a/src/OASIS/SURFEX/dealloc_seafluxn.F90
+++ /dev/null
@@ -1,95 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #################################################################################
-SUBROUTINE DEALLOC_SEAFLUX_n (SM)
-!     #################################################################################
-!
-!!****  *DEALLOC_SEAFLUX_n * - Deallocate all arrays
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     V. Masson 
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004
-!!      S. Belamari 03/2014   other _SEA_ variables
-!!      S. Senesi   09/2013   introduce sea-ice-cover ans sea-surface salinity
-!!------------------------------------------------------------------
-!
-USE MODD_DIAG_n, ONLY : DIAG_INIT, DIAG_OPTIONS_INIT
-USE MODD_DIAG_OCEAN_n, ONLY : DIAG_OCEAN_INIT
-USE MODD_DIAG_MISC_SEAICE_n, ONLY : DIAG_MISC_SEAICE_INIT
-!
-USE MODD_CH_SEAFLUX_n, ONLY : CH_SEAFLUX_INIT
-USE MODD_DATA_SEAFLUX_n, ONLY : DATA_SEAFLUX_INIT
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_INIT
-USE MODD_OCEAN_n, ONLY : OCEAN_INIT
-USE MODD_OCEAN_REL_n, ONLY : OCEAN_REL_INIT
-!
-USE MODD_SFX_GRID_n, ONLY : GRID_INIT
-USE MODD_CANOPY_n, ONLY : CANOPY_INIT
-!
-USE MODD_SURFEX_n, ONLY : SEAFLUX_MODEL_t
-!
-USE MODI_GLTOOLS_DEALLOC
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-!
-!*      0.2    declarations of local variables
-!
-!
-TYPE(SEAFLUX_MODEL_t), INTENT(INOUT) :: SM
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('DEALLOC_SEAFLUX_N',0,ZHOOK_HANDLE)
-!
-CALL DIAG_OPTIONS_INIT(SM%SD%O) 
-CALL DIAG_INIT(SM%SD%D)
-CALL DIAG_INIT(SM%SD%DC)
-CALL DIAG_INIT(SM%SD%DI)
-CALL DIAG_INIT(SM%SD%DIC)
-CALL DIAG_OCEAN_INIT(SM%SD%GO)  
-CALL DIAG_MISC_SEAICE_INIT(SM%SD%DMI)
-  !  
-CALL DATA_SEAFLUX_INIT(SM%DTS)
-CALL GRID_INIT(SM%G)
-CALL CANOPY_INIT(SM%SB)  
-CALL CH_SEAFLUX_INIT(SM%CHS)
-CALL SEAFLUX_INIT(SM%S)
-CALL SEAFLUX_INIT(SM%S)  
-CALL OCEAN_INIT(SM%O)
-CALL OCEAN_REL_INIT(SM%OR)
-!
-!-------------------------------------------------------------------------------------
-!
-IF (ASSOCIATED(SM%S%TGLT%bat) .AND. SM%S%CSEAICE_SCHEME=='GELATO' ) CALL GLTOOLS_DEALLOC(SM%S%TGLT)
-!
-IF (LHOOK) CALL DR_HOOK('DEALLOC_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------------
-!
-END SUBROUTINE DEALLOC_SEAFLUX_n
-
-
diff --git a/src/OASIS/SURFEX/default_prep_seaflux.F90 b/src/OASIS/SURFEX/default_prep_seaflux.F90
deleted file mode 100644
index 8d8986031..000000000
--- a/src/OASIS/SURFEX/default_prep_seaflux.F90
+++ /dev/null
@@ -1,106 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE DEFAULT_PREP_SEAFLUX
-!     ###########################
-!
-!!****  *DEFAULT_PREP_SEAFLUX* - routine to set default values for the configuration for SEAFLUX field preparation
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Malardel   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2003 
-!!      01/2008     C. Lebeaupin Brossier ! initialization of oceanic var. 
-!!                                        ! from MERCATOR analyses types
-!!      07/2012     P. Le Moigne          ! CMO1D phasing
-!!      01/2014     S. Senesi             ! introduce fractional seaice and sea-ice model 
-!!      03/2014     S. Belamari           ! initialize sea surface salinity
-!!      03/2014     M.N. Bouin            ! possibility of wave parameters 
-!!                                        ! from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_PREP_SEAFLUX,   ONLY : CFILE_SEAFLX, CTYPE_SEAFLX, CFILEPGD_SEAFLX, CTYPEPGD, XSST_UNIF,&
-                                XSSS_UNIF, XSIC_UNIF, CFILEWAVE_SEAFLX, CTYPEWAVE
-!
-USE MODN_PREP_SEAFLUX,   ONLY : LSEA_SBL, CSEAICE_SCHEME, LOCEAN_MERCATOR, LOCEAN_CURRENT, &
-                                XTIME_REL, LCUR_REL, LTS_REL,    &
-                                LZERO_FLUX, LCORR_FLUX, XCORFLX, LDIAPYC
-
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-!-------------------------------------------------------------------------------
-!
-
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-IF (LHOOK) CALL DR_HOOK('DEFAULT_PREP_SEAFLUX',0,ZHOOK_HANDLE)
-CFILE_SEAFLX = '                          '
-CTYPE_SEAFLX = 'GRIB  '
-!
-CFILEWAVE_SEAFLX = '                          '
-CTYPEWAVE       = '      '
-!
-CFILEPGD_SEAFLX = '                          '
-CTYPEPGD        = '      '
-!
-XSST_UNIF = XUNDEF
-XSSS_UNIF = XUNDEF
-XSIC_UNIF = XUNDEF
-!
-LSEA_SBL = .FALSE.
-CSEAICE_SCHEME='NONE  '
-LOCEAN_MERCATOR = .FALSE.
-LOCEAN_CURRENT = .FALSE.
-!
-XTIME_REL  = 25920000.
-XCORFLX    = 0.
-LCUR_REL   = .FALSE.
-LTS_REL    = .FALSE.
-LZERO_FLUX = .FALSE.
-LCORR_FLUX = .FALSE.
-LDIAPYC    = .FALSE.
-!
-IF (LHOOK) CALL DR_HOOK('DEFAULT_PREP_SEAFLUX',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE DEFAULT_PREP_SEAFLUX
diff --git a/src/OASIS/SURFEX/default_seaflux.F90 b/src/OASIS/SURFEX/default_seaflux.F90
deleted file mode 100644
index 1141c6aa7..000000000
--- a/src/OASIS/SURFEX/default_seaflux.F90
+++ /dev/null
@@ -1,112 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE DEFAULT_SEAFLUX(PTSTEP,POUT_TSTEP,HSEA_ALB,HSEA_FLUX,   &
-                                   OPWG, OPRECIP, OPWEBB, KZ0, KGRVWAVES,&
-                                   OPROGSST, KTIME_COUPLING,POCEAN_TSTEP,&
-                                   PICHCE, HINTERPOL_SST, HINTERPOL_SSS, &
-                                   OWAVEWIND     )
-!     ########################################################################
-!
-!!****  *DEFAULT_SEAFLUX* - routine to set default values for the configuration for SEAFLUX scheme
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      V. Masson   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004 
-!!      Modified    01/2006 : sea flux parameterization.
-!!      S. Belamari 03/2014 : add KZ0 (to choose PZ0SEA formulation)
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-REAL,              INTENT(OUT) :: PTSTEP        ! time step for run
-REAL,              INTENT(OUT) :: POUT_TSTEP    ! time step for writing
-CHARACTER(LEN=6),  INTENT(OUT) :: HSEA_FLUX     ! type of sea scheme
-CHARACTER(LEN=4),  INTENT(OUT) :: HSEA_ALB      ! type of sea albedo
-LOGICAL,           INTENT(OUT) :: OPWG          ! gustiness impact
-LOGICAL,           INTENT(OUT) :: OPRECIP       ! precipitation correction
-LOGICAL,           INTENT(OUT) :: OPWEBB        ! Webb correction
-INTEGER,           INTENT(OUT) :: KZ0           ! PZ0SEA formulation
-INTEGER,           INTENT(OUT) :: KGRVWAVES     ! Wave gravity in roughness length
-LOGICAL,           INTENT(OUT) :: OPROGSST      !two-way coupling
-INTEGER,           INTENT(OUT) :: KTIME_COUPLING!coupling frequency
-REAL,              INTENT(OUT) :: PICHCE        !CE coef calculation for ECUME
-REAL,              INTENT(OUT) :: POCEAN_TSTEP  !ocean 1D model time-step
-CHARACTER(LEN=6),  INTENT(OUT) :: HINTERPOL_SST ! Quadratic interpolation of monthly SST
-CHARACTER(LEN=6),  INTENT(OUT) :: HINTERPOL_SSS ! Quadratic interpolation of monthly SSS
-LOGICAL,           INTENT(OUT) :: OWAVEWIND     ! wave parameters from wind only
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('DEFAULT_SEAFLUX',0,ZHOOK_HANDLE)
-!
-PTSTEP     = XUNDEF
-POUT_TSTEP = XUNDEF
-!
-HSEA_FLUX = "ECUME "
-HSEA_ALB  = "TA96"
-!
-OPWG    = .FALSE.
-OPRECIP = .FALSE. 
-OPWEBB  = .FALSE.
-OWAVEWIND = .TRUE.
-!
-KZ0 = 0
-KGRVWAVES = 0
-!
-OPROGSST = .FALSE.
-KTIME_COUPLING = 300
-POCEAN_TSTEP = 300.
-!
-PICHCE = 0.0
-!
-HINTERPOL_SST = "NONE"
-HINTERPOL_SSS = "NONE"
-!
-IF (LHOOK) CALL DR_HOOK('DEFAULT_SEAFLUX',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE DEFAULT_SEAFLUX
diff --git a/src/OASIS/SURFEX/diag_cpl_esm_sea.F90 b/src/OASIS/SURFEX/diag_cpl_esm_sea.F90
deleted file mode 100644
index 835d46a87..000000000
--- a/src/OASIS/SURFEX/diag_cpl_esm_sea.F90
+++ /dev/null
@@ -1,164 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-       SUBROUTINE DIAG_CPL_ESM_SEA (S, D, DI, PTSTEP, PSFTQ, PRAIN, PSNOW, &
-                                    PLW, PPS, PSFTH_ICE, PSFTQ_ICE, PDIR_SW, PSCA_SW, OSIC)  
-!     ###################################################################
-!
-!!****  *DIAG_CPL_ESM_SEA * - Computes diagnostics over sea for 
-!!                Earth system model coupling or embedded seaice scheme
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     B. Decharme 
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    08/2009
-!!      S.Senesi    01/2014  Adapt to embedded seaice scheme (SWU and LWU 
-!!                           for seaice are provided as inputs)
-!!      A.Voldoire  04/2015  Add LCPL_SEAICE test
-!!      Modified    11/2014 : J. Pianezze : Add surface pressure coupling parameter
-!!------------------------------------------------------------------
-!
-USE MODD_DIAG_n, ONLY : DIAG_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_CSTS,      ONLY : XSTEFAN, XLSTT
-USE MODD_WATER_PAR, ONLY : XEMISWATICE
-!
-USE MODD_SFX_OASIS, ONLY : LCPL_SEAICE
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-!
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(DIAG_t), INTENT(INOUT) :: D
-TYPE(DIAG_t), INTENT(INOUT) :: DI
-!
-REAL,               INTENT(IN) :: PTSTEP    ! atmospheric time-step
-REAL, DIMENSION(:), INTENT(IN) :: PSFTQ     ! water flux
-REAL, DIMENSION(:), INTENT(IN) :: PRAIN     ! Rainfall
-REAL, DIMENSION(:), INTENT(IN) :: PSNOW     ! Snowfall
-REAL, DIMENSION(:), INTENT(IN) :: PLW       ! longwave radiation (on horizontal surf.)
-REAL, DIMENSION(:), INTENT(IN) :: PPS       ! Surface pressure
-REAL, DIMENSION(:), INTENT(IN) :: PSFTH_ICE ! heat flux  (W/m2)
-REAL, DIMENSION(:), INTENT(IN) :: PSFTQ_ICE ! water flux (kg/m2/s)
-REAL, DIMENSION(:,:),INTENT(IN):: PDIR_SW   ! direct  solar radiation (on horizontal surf.)
-REAL, DIMENSION(:,:),INTENT(IN):: PSCA_SW   ! diffuse solar radiation (on horizontal surf.)
-LOGICAL,            INTENT(IN) :: OSIC
-!
-!*      0.2    declarations of local variables
-!
-REAL, DIMENSION(SIZE(S%XICE_ALB)) :: ZSWU, ZTICE4
-!
-INTEGER                      :: ISWB ! number of SW bands
-INTEGER                      :: JSWB ! loop counter on number of SW bands
-INTEGER                      :: INI  ! number of points
-INTEGER                      :: JI   ! loop counter on number of points
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('DIAG_CPL_ESM_SEA',0,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------------
-! Total or free-ice sea flux
-!-------------------------------------------------------------------------------------
-!
-!* 10m wind speed (m)
-!
-S%XCPL_SEA_WIND(:) = S%XCPL_SEA_WIND(:) + PTSTEP * SQRT(D%XZON10M(:)**2+D%XMER10M(:)**2)
-! 
-!* wind stress (Pa.s)
-!
-S%XCPL_SEA_FWSU(:) = S%XCPL_SEA_FWSU(:) + PTSTEP * D%XFMU(:)
-S%XCPL_SEA_FWSV(:) = S%XCPL_SEA_FWSV(:) + PTSTEP * D%XFMV(:)
-S%XCPL_SEA_FWSM(:) = S%XCPL_SEA_FWSM(:) + PTSTEP * SQRT(D%XFMU(:)**2+D%XFMV(:)**2)
-!
-!* Solar net heat flux (J/m2)
-!
-S%XCPL_SEA_SNET(:) = S%XCPL_SEA_SNET(:) + PTSTEP * (D%XSWD(:) - D%XSWU(:))
-!
-!* Non solar heat flux (J/m2)
-!
-S%XCPL_SEA_HEAT(:) = S%XCPL_SEA_HEAT(:) + PTSTEP * (D%XGFLUX(:) + D%XSWU(:) - D%XSWD(:)) 
-!
-!* Evaporation (kg/m2)
-!
-S%XCPL_SEA_EVAP(:) = S%XCPL_SEA_EVAP(:) + PTSTEP * PSFTQ(:)
-!
-!* Precip (kg/m2)
-! 
-S%XCPL_SEA_RAIN(:) = S%XCPL_SEA_RAIN(:) + PTSTEP * PRAIN(:)
-S%XCPL_SEA_SNOW(:) = S%XCPL_SEA_SNOW(:) + PTSTEP * PSNOW(:)
-!
-!* Evaporation - Precip (kg/m2)
-! 
-S%XCPL_SEA_EVPR(:) = S%XCPL_SEA_EVPR(:) + S%XCPL_SEA_EVAP(:) - S%XCPL_SEA_RAIN(:) - S%XCPL_SEA_SNOW(:)
-!
-!* Cumulated surface pressure (Pa.s)
-! 
-S%XCPL_SEA_PRES(:) = S%XCPL_SEA_PRES(:) + PTSTEP * PPS(:)
-!
-!-------------------------------------------------------------------------------------
-! Ice flux
-!-------------------------------------------------------------------------------------
-IF (LCPL_SEAICE.OR.OSIC) THEN
-!
-  INI  = SIZE(PDIR_SW,1)
-  ISWB = SIZE(PDIR_SW,2)
-!
-!* Solar net heat flux (J/m2)
-!
-  IF (OSIC) THEN
-    ZSWU(:)=DI%XSWU(:)
-  ELSE
-    ZSWU(:)=0.0
-    DO JSWB=1,ISWB
-      DO JI=1,INI
-         ZSWU(JI) = ZSWU(JI) + (PDIR_SW(JI,JSWB)+PSCA_SW(JI,JSWB)) * S%XICE_ALB(JI)
-      ENDDO
-    ENDDO
-  ENDIF
-!
-  S%XCPL_SEAICE_SNET(:) = S%XCPL_SEAICE_SNET(:) + PTSTEP * (D%XSWD(:) - ZSWU(:))
-!
-!* Non solar heat flux (J/m2)
-!
-  IF (OSIC) THEN
-    S%XCPL_SEAICE_HEAT(:) = S%XCPL_SEAICE_HEAT(:) + PTSTEP * &
-              ( PLW(:) - DI%XLWU(:) - PSFTH_ICE(:) - XLSTT*PSFTQ_ICE(:) )
-  ELSE
-    ZTICE4(:)=S%XTICE(:)**4
-    S%XCPL_SEAICE_HEAT(:) = S%XCPL_SEAICE_HEAT(:) + PTSTEP * ( XEMISWATICE*(PLW(:)-XSTEFAN*ZTICE4(:)) &
-                                                         - PSFTH_ICE(:) - XLSTT*PSFTQ_ICE(:)      ) 
-  ENDIF 
-!
-!* Sublimation (kg/m2)
-!
-  S%XCPL_SEAICE_EVAP(:) = S%XCPL_SEAICE_EVAP(:) + PTSTEP * PSFTQ_ICE(:)
-!
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('DIAG_CPL_ESM_SEA',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------------
-!
-END SUBROUTINE DIAG_CPL_ESM_SEA
diff --git a/src/OASIS/SURFEX/diag_inline_seafluxn.F90 b/src/OASIS/SURFEX/diag_inline_seafluxn.F90
deleted file mode 100644
index 30b0c96dc..000000000
--- a/src/OASIS/SURFEX/diag_inline_seafluxn.F90
+++ /dev/null
@@ -1,309 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE DIAG_INLINE_SEAFLUX_n (DGO, D, DC, DI, DIC, DGMSI, S,              &
-                                  PTSTEP, PTA, PQA, PPA, PPS, PRHOA, PZONA,           &
-                                  PMERA, PHT, PHW, PCD, PCDN, PCH, PCE, PRI, PHU,     &
-                                  PZ0H, PQSAT, PSFTH, PSFTQ, PSFZON, PSFMER,          &
-                                  PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB,          &
-                                  PEMIS, PTRAD, PRAIN, PSNOW,                         & 
-                                  PCD_ICE, PCDN_ICE, PCH_ICE, PCE_ICE, PRI_ICE,       &
-                                  PZ0_ICE, PZ0H_ICE, PQSAT_ICE, PSFTH_ICE, PSFTQ_ICE, &
-                                   PSFZON_ICE, PSFMER_ICE )
-                                          
-!     #####################################################################################
-!
-!!****  *DIAG_INLINE_SEAFLUX_n * - computes diagnostics during SEAFLUX time-step
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     V. Masson 
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004
-!!      Modified    01/2006 : sea flux parameterization.
-!!      B. Decharme 08/2009 : Diag for Earth System Model Coupling
-!!      S. Riette   06/2009 CLS_2M becomes CLS_TQ, CLS_TQ and CLS_WIND have one
-!!                          more argument (height of diagnostic)
-!!      B. Decharme 04/2013 : Add EVAP and SUBL diag
-!!      S. Senesi   01/2014 ! introduce fractional seaice and sea-ice model 
-!!      J. Pianezze 08/2016 : Add surface pressure coupling parameter
-!!------------------------------------------------------------------
-!
-USE MODD_DIAG_n, ONLY : DIAG_t, DIAG_OPTIONS_t
-USE MODD_DIAG_MISC_SEAICE_n, ONLY : DIAG_MISC_SEAICE_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_CSTS,           ONLY : XTTS
-USE MODD_SURF_PAR,       ONLY : XUNDEF
-USE MODD_SFX_OASIS,      ONLY : LCPL_SEA
-!
-USE MODD_TYPES_GLT,     ONLY : T_GLT
-USE MODD_GLT_PARAM ,    ONLY : GELATO_DIM=>NX
-USE MODE_GLT_STATS ,    ONLY : GLT_AVHICEM, GLT_AVHSNWM
-USE MODI_CLS_TQ
-USE MODI_CLS_WIND
-USE MODI_DIAG_SURF_BUDGET_SEA
-USE MODI_DIAG_SURF_BUDGETC
-USE MODI_DIAG_CPL_ESM_SEA
-!
-USE MODI_SEAFLUX_ALBEDO
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-!
-TYPE(DIAG_OPTIONS_t), INTENT(INOUT) :: DGO
-TYPE(DIAG_t), INTENT(INOUT) :: D
-TYPE(DIAG_t), INTENT(INOUT) :: DC
-TYPE(DIAG_t), INTENT(INOUT) :: DI
-TYPE(DIAG_t), INTENT(INOUT) :: DIC
-TYPE(DIAG_MISC_SEAICE_t), INTENT(INOUT) :: DGMSI
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-!
-REAL,               INTENT(IN) :: PTSTEP ! atmospheric time-step                 (s)
-REAL, DIMENSION(:), INTENT(IN) :: PTA    ! atmospheric temperature
-REAL, DIMENSION(:), INTENT(IN) :: PQA    ! atmospheric specific humidity
-REAL, DIMENSION(:), INTENT(IN) :: PPA    ! atmospheric level pressure
-REAL, DIMENSION(:), INTENT(IN) :: PPS    ! surface pressure
-REAL, DIMENSION(:), INTENT(IN) :: PRHOA  ! air density
-REAL, DIMENSION(:), INTENT(IN) :: PZONA  ! zonal wind
-REAL, DIMENSION(:), INTENT(IN) :: PMERA  ! meridian wind
-REAL, DIMENSION(:), INTENT(IN) :: PHT    ! atmospheric level height
-REAL, DIMENSION(:), INTENT(IN) :: PHW    ! atmospheric level height for wind
-REAL, DIMENSION(:), INTENT(IN) :: PCD    ! drag coefficient for momentum
-REAL, DIMENSION(:), INTENT(IN) :: PCDN   ! neutral drag coefficient
-REAL, DIMENSION(:), INTENT(IN) :: PCH    ! drag coefficient for heat
-REAL, DIMENSION(:), INTENT(IN) :: PCE    ! drag coefficient for vapor
-REAL, DIMENSION(:), INTENT(IN) :: PRI    ! Richardson number
-REAL, DIMENSION(:), INTENT(IN) :: PHU    ! near-surface humidity
-REAL, DIMENSION(:), INTENT(IN) :: PZ0H   ! roughness length for heat
-REAL, DIMENSION(:), INTENT(IN) :: PQSAT  ! humidity at saturation
-REAL, DIMENSION(:), INTENT(IN) :: PSFZON ! zonal friction
-REAL, DIMENSION(:), INTENT(IN) :: PSFMER ! meridian friction
-REAL, DIMENSION(:), INTENT(IN) :: PSFTH  ! heat flux  (W/m2)
-REAL, DIMENSION(:), INTENT(IN) :: PSFTQ  ! water flux (kg/m2/s)
-REAL, DIMENSION(:,:),INTENT(IN):: PDIR_SW   ! direct  solar radiation (on horizontal surf.)
-!                                           !                                       (W/m2)
-REAL, DIMENSION(:,:),INTENT(IN):: PSCA_SW   ! diffuse solar radiation (on horizontal surf.)
-!                                           !                                       (W/m2)
-REAL, DIMENSION(:), INTENT(IN) :: PLW       ! longwave radiation (on horizontal surf.)
-REAL, DIMENSION(:), INTENT(IN) :: PTRAD     ! radiative temperature                 (K)
-REAL, DIMENSION(:,:),INTENT(IN):: PDIR_ALB  ! direct albedo for each spectral band  (-)
-REAL, DIMENSION(:,:),INTENT(IN):: PSCA_ALB  ! diffuse albedo for each spectral band (-)
-REAL, DIMENSION(:), INTENT(IN) :: PEMIS     ! emissivity                            (-)
-!
-REAL, DIMENSION(:), INTENT(IN) :: PRAIN     ! Rainfall (kg/m2/s)
-REAL, DIMENSION(:), INTENT(IN) :: PSNOW     ! Snowfall (kg/m2/s)
-!
-REAL, DIMENSION(:), INTENT(IN)    :: PCD_ICE    ! drag coefficient for momentum
-REAL, DIMENSION(:), INTENT(IN)    :: PCDN_ICE   ! neutral drag coefficient
-REAL, DIMENSION(:), INTENT(IN)    :: PCH_ICE    ! drag coefficient for heat
-REAL, DIMENSION(:), INTENT(IN)    :: PCE_ICE    ! drag coefficient for vapor
-REAL, DIMENSION(:), INTENT(IN)    :: PRI_ICE    ! Richardson number
-REAL, DIMENSION(:), INTENT(IN)    :: PZ0_ICE    ! roughness length for momentum
-REAL, DIMENSION(:), INTENT(IN)    :: PZ0H_ICE   ! roughness length for heat
-REAL, DIMENSION(:), INTENT(IN)    :: PQSAT_ICE  ! humidity at saturation
-REAL, DIMENSION(:), INTENT(IN)    :: PSFTH_ICE  ! heat flux  (W/m2)
-REAL, DIMENSION(:), INTENT(IN)    :: PSFTQ_ICE  ! water flux (kg/m2/s)
-REAL, DIMENSION(:), INTENT(IN)    :: PSFZON_ICE ! zonal friction
-REAL, DIMENSION(:), INTENT(IN)    :: PSFMER_ICE ! meridian friction
-!
-!*      0.2    declarations of local variables
-!
-LOGICAL                         :: GSIC
-REAL, DIMENSION(SIZE(PTA))      :: ZZ0W
-REAL, DIMENSION(SIZE(PTA))      :: ZH
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('DIAG_INLINE_SEAFLUX_N',0,ZHOOK_HANDLE)
-!
-! * Mean surface temperature need to couple with AGCM
-!
-IF (S%LHANDLE_SIC) THEN
-   D%XTS   (:) = (1 - S%XSIC(:)) * S%XSST(:) + S%XSIC(:) * S%XTICE(:)
-   D%XTSRAD(:) = PTRAD(:)
-ELSE
-   D%XTS   (:) = S%XSST (:)
-   D%XTSRAD(:) = PTRAD(:)
-ENDIF
-!
-IF (.NOT. S%LSBL) THEN
-!
-  IF (DGO%N2M==2) THEN
-    ZH(:)=2.          
-    CALL CLS_TQ(PTA, PQA, PPA, PPS, PHT, PCD, PCH, PRI, &
-                S%XSST, PHU, PZ0H, ZH,D%XT2M, D%XQ2M, D%XHU2M)
-    ZH(:)=10.                
-    CALL CLS_WIND(PZONA, PMERA, PHW,PCD, PCDN, PRI, ZH,  &
-                  D%XZON10M, D%XMER10M)  
-    IF (S%LHANDLE_SIC) THEN
-       ZH(:)=2.          
-       CALL CLS_TQ(PTA, PQA, PPA, PPS, PHT, PCD_ICE, PCH_ICE, PRI_ICE,       &
-            S%XTICE, PHU, PZ0H_ICE, ZH, DI%XT2M, DI%XQ2M, DI%XHU2M)  
-       ZH(:)=10.                
-       CALL CLS_WIND(PZONA, PMERA, PHW, PCD_ICE, PCDN_ICE, PRI_ICE, ZH,  &
-            DI%XZON10M, DI%XMER10M  )  
-    ENDIF 
-  END IF
-!
-  IF (DGO%N2M>=1) THEN
-     IF (S%LHANDLE_SIC) THEN
-        !
-        D%XT2M    = D%XT2M    * (1 - S%XSIC) + DI%XT2M    * S%XSIC
-        D%XQ2M    = D%XQ2M    * (1 - S%XSIC) + DI%XQ2M    * S%XSIC
-        D%XHU2M   = D%XHU2M   * (1 - S%XSIC) + DI%XHU2M   * S%XSIC
-        !
-        D%XZON10M(:) = D%XZON10M(:) * (1 - S%XSIC(:)) + DI%XZON10M(:) * S%XSIC(:)
-        D%XMER10M(:) = D%XMER10M(:) * (1 - S%XSIC(:)) + DI%XMER10M(:) * S%XSIC(:)
-        DI%XWIND10M(:) = SQRT(DI%XZON10M(:)**2+DI%XMER10M(:)**2)
-        !
-        D%XRI    = PRI     * (1 - S%XSIC) + PRI_ICE     * S%XSIC
-        DI%XRI   =PRI_ICE
-     ELSE
-        D%XRI    =PRI
-     ENDIF
-    !
-    D%XT2M_MIN(:) = MIN(D%XT2M_MIN(:),D%XT2M(:))
-    D%XT2M_MAX(:) = MAX(D%XT2M_MAX(:),D%XT2M(:))
-    !
-    D%XHU2M_MIN(:) = MIN(D%XHU2M_MIN(:),D%XHU2M(:))
-    D%XHU2M_MAX(:) = MAX(D%XHU2M_MAX(:),D%XHU2M(:))
-    !
-    D%XWIND10M(:) = SQRT(D%XZON10M(:)**2+D%XMER10M(:)**2)
-    D%XWIND10M_MAX(:) = MAX(D%XWIND10M_MAX(:),D%XWIND10M(:))
-    !
-  ENDIF
-!
-ELSE
-  IF (DGO%N2M>=1) THEN
-    D%XT2M    = XUNDEF
-    D%XQ2M    = XUNDEF
-    D%XHU2M   = XUNDEF
-    D%XZON10M = XUNDEF
-    D%XMER10M = XUNDEF
-    D%XRI     = PRI
-  ENDIF
-ENDIF
-!
-IF (DGO%LSURF_BUDGET.OR.DGO%LSURF_BUDGETC) THEN
-!
-  CALL SEAFLUX_ALBEDO(PDIR_SW,PSCA_SW,PDIR_ALB,PSCA_ALB,D%XALBT)
-!
-  CALL DIAG_SURF_BUDGET_SEA   (D, DI, S, XTTS, PRHOA, PSFTH, PSFTH_ICE, &
-                               PSFTQ, PSFTQ_ICE, PDIR_SW, PSCA_SW, PLW,   &
-                               PDIR_ALB, PSCA_ALB, PEMIS, PTRAD,          &
-                               PSFZON, PSFZON_ICE, PSFMER, PSFMER_ICE   ) 
-  IF (S%LHANDLE_SIC) DI%XLE = D%XLEI
-!
-END IF
-!
-IF(DGO%LSURF_BUDGETC)THEN
-  !
-  CALL DIAG_SURF_BUDGETC(D, DC, PTSTEP, .TRUE.)
-  !
-  IF (S%LHANDLE_SIC) THEN
-     CALL DIAG_SURF_BUDGETC(DI, DIC, PTSTEP, .FALSE.)
-     DIC%XLE = DC%XLEI
-  ENDIF
-  !
-ENDIF
-!
-IF (DGO%LCOEF) THEN
-   IF (S%LHANDLE_SIC) THEN 
-      !
-      !* Transfer coefficients
-      !
-      D%XCD = (1 - S%XSIC) * PCD + S%XSIC * PCD_ICE
-      D%XCH = (1 - S%XSIC) * PCH + S%XSIC * PCH_ICE
-      D%XCE = (1 - S%XSIC) * PCE + S%XSIC * PCE_ICE
-      !
-      !* Roughness lengths
-      !
-      ZZ0W = ( 1 - S%XSIC ) * 1.0/(LOG(PHW/S%XZ0)    **2)  +  S%XSIC   * 1.0/(LOG(PHW/PZ0_ICE)**2)  
-      D%XZ0  = PHW  * EXP ( - SQRT ( 1./  ZZ0W ))
-      ZZ0W = ( 1 - S%XSIC ) * 1.0/(LOG(PHW/PZ0H)    **2)  +  S%XSIC   * 1.0/(LOG(PHW/PZ0H_ICE)**2)  
-      D%XZ0H = PHW  * EXP ( - SQRT ( 1./  ZZ0W ))
-
-      DI%XCD  = PCD_ICE
-      DI%XCH  = PCH_ICE
-      DI%XZ0  = PZ0_ICE
-      DI%XZ0H = PZ0H_ICE
-      !
-   ELSE
-      !
-      !* Transfer coefficients
-      !
-      D%XCD = PCD
-      D%XCH = PCH
-      D%XCE = PCE
-      !
-      !* Roughness lengths
-      !
-      D%XZ0  = S%XZ0
-      D%XZ0H = PZ0H
-   ENDIF
-   !
-ENDIF
-!
-IF (DGO%LSURF_VARS) THEN
-  !
-  !* Humidity at saturation
-  !
-   IF (S%LHANDLE_SIC) THEN 
-      D%XQS     = (1 - S%XSIC) * PQSAT + S%XSIC * PQSAT_ICE
-      DI%XQS = PQSAT_ICE
-   ELSE 
-      D%XQS = PQSAT
-   ENDIF
-ENDIF
-!
-! Diags from embedded Seaice model
-! CALL DIAG_INLINE_SEAICE() : simply  : 
-!
-IF (DGMSI%LDIAG_MISC_SEAICE) THEN
-   IF (TRIM(S%CSEAICE_SCHEME) == 'GELATO') THEN 
-      GELATO_DIM=SIZE(PTA)
-      DGMSI%XSIT  = RESHAPE(glt_avhicem(S%TGLT%dom,S%TGLT%sit),(/GELATO_DIM/))
-      DGMSI%XSND  = RESHAPE(glt_avhsnwm(S%TGLT%dom,S%TGLT%sit),(/GELATO_DIM/))
-      DGMSI%XMLT  = S%TGLT%oce_all(:,1)%tml
-   ELSE
-      ! Placeholder for an alternate seaice scheme
-   ENDIF
-ENDIF
-!
-! Diags for Earth System Model coupling or for embedded Seaice model
-! (we are actually using XCPL_.. variables for feeding the seaice model)
-!
-GSIC=(S%LHANDLE_SIC.AND.(S%CSEAICE_SCHEME /= 'NONE  '))
-!
-IF (LCPL_SEA.OR.GSIC) THEN
-!
-  CALL DIAG_CPL_ESM_SEA(S, D, DI, PTSTEP, PSFTQ, PRAIN, PSNOW, &
-                        PLW, PPS, PSFTH_ICE, PSFTQ_ICE, PDIR_SW, PSCA_SW, GSIC )
-! 
-ENDIF
-IF (LHOOK) CALL DR_HOOK('DIAG_INLINE_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------------
-!
-END SUBROUTINE DIAG_INLINE_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/diag_seaflux_initn.F90 b/src/OASIS/SURFEX/diag_seaflux_initn.F90
deleted file mode 100644
index daa9db0c1..000000000
--- a/src/OASIS/SURFEX/diag_seaflux_initn.F90
+++ /dev/null
@@ -1,239 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE DIAG_SEAFLUX_INIT_n (DOC, DGO, D, DC, OREAD_BUDGETC, S, &
-                                      HPROGRAM,KLU,KSW)
-!     #####################
-!
-!!****  *DIAG_SEAFLUX_INIT_n* - routine to initialize SEAFLUX diagnostic variables
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      V. Masson   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004 
-!!      Modified    01/2006 : sea flux parameterization.
-!!      Modified    08/2009 : cumulative sea flux 
-!!      B. decharme 04/2013 : Add EVAP and SUBL diag
-!!      S.Senesi    01/2014 : introduce fractional seaice 
-!!      Modified    11/2014 : J. Pianezze : Add surface pressure coupling parameter
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODE_DIAG
-!
-USE MODD_DIAG_OCEAN_n, ONLY : DIAG_OCEAN_t
-USE MODD_DIAG_n, ONLY : DIAG_t, DIAG_OPTIONS_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-#ifdef SFX_OL
-USE MODN_IO_OFFLINE,     ONLY : LRESTART
-#endif
-USE MODD_SURF_PAR,       ONLY : XUNDEF
-USE MODD_SFX_OASIS,      ONLY : LCPL_SEA,LCPL_SEAICE
-!  
-USE MODI_READ_SURF
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-TYPE(DIAG_OCEAN_t), INTENT(INOUT) :: DOC
-TYPE(DIAG_OPTIONS_t), INTENT(INOUT) :: DGO
-TYPE(DIAG_t), INTENT(INOUT) :: D
-TYPE(DIAG_t), INTENT(INOUT) :: DC
-LOGICAL, INTENT(IN) :: OREAD_BUDGETC
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-!
-INTEGER, INTENT(IN) :: KLU   ! size of arrays
-INTEGER, INTENT(IN) :: KSW   ! number of SW spectral bands
- CHARACTER(LEN=6), INTENT(IN):: HPROGRAM  ! program calling
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-INTEGER           :: IVERSION
-INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
-CHARACTER(LEN=LEN_HREC) :: YREC           ! Name of the article to be read
-!
-REAL(KIND=JPRB)   :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('DIAG_SEAFLUX_INIT_N',0,ZHOOK_HANDLE)
-!
-!* surface energy budget
-!
- CALL ALLOC_BUD(DGO,D,KLU,KSW)
-!
-IF (DGO%LSURF_BUDGET.OR.DGO%LSURF_BUDGETC) THEN
-  !
-  ALLOCATE(D%XEVAP   (KLU))
-  ALLOCATE(D%XSUBL   (KLU))
-  ALLOCATE(D%XALBT   (KLU))  
-  !
-  D%XEVAP    = XUNDEF
-  D%XSUBL    = XUNDEF  
-  D%XALBT    = XUNDEF  
-  !
-ELSE
-  !
-  ALLOCATE(D%XEVAP   (0))
-  ALLOCATE(D%XSUBL   (0))  
-  ALLOCATE(D%XALBT   (0)) 
-  ! 
-ENDIF
-!
-ALLOCATE(D%XTSRAD(KLU))
-D%XTSRAD = XUNDEF
-!
-!* cumulative surface energy budget
-!
-#ifdef SFX_OL
-IF (DGO%LSURF_BUDGETC .OR. (LRESTART .AND. .NOT.DGO%LRESET_BUDGETC)) THEN
-#else
-IF (DGO%LSURF_BUDGETC .OR. .NOT.DGO%LRESET_BUDGETC) THEN
-#endif
-  ! 
-  CALL ALLOC_SURF_BUD(DC,KLU,KLU,KSW)  
-  ALLOCATE(DC%XEVAP (KLU))
-  ALLOCATE(DC%XSUBL (KLU))  
-  !
-  IF (.NOT.OREAD_BUDGETC .OR. OREAD_BUDGETC.AND.DGO%LRESET_BUDGETC) THEN
-    CALL INIT_SURF_BUD(DC,0.)
-    DC%XEVAP = 0.0
-    DC%XSUBL = 0.0
-  ELSE
-     CALL READ_SURF(HPROGRAM,'VERSION',IVERSION,IRESP)    
-     YREC='RNC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XRN,IRESP)
-     YREC='HC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XH,IRESP)
-     YREC='LEC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XLE,IRESP)
-     YREC='LEIC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XLEI,IRESP) 
-     YREC='GFLUXC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XGFLUX,IRESP)
-     YREC='SWDC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XSWD,IRESP)
-     YREC='SWUC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XSWU,IRESP)
-     YREC='LWDC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XLWD,IRESP)
-     YREC='LWUC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XLWU,IRESP)
-     YREC='FMUC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XFMU,IRESP)
-     YREC='FMVC_SEA'
-     CALL READ_SURF(HPROGRAM,YREC,DC%XFMV,IRESP)
-     IF (IVERSION<8)THEN
-       DC%XEVAP     = 0.0
-       DC%XSUBL     = 0.0              
-     ELSE
-       !
-       YREC='EVAPC_SEA'
-       CALL READ_SURF(HPROGRAM,YREC,DC%XEVAP,IRESP)
-       YREC='SUBLC_SEA'
-       CALL READ_SURF(HPROGRAM,YREC,DC%XSUBL,IRESP)
-     ENDIF
-  ENDIF   
-ELSE
-  CALL ALLOC_SURF_BUD(DC,0,0,0)
-ENDIF
-!
-!* ocean diag
-!
-IF (DOC%LDIAG_OCEAN) THEN
-  ALLOCATE(DOC%XTOCMOY  (KLU))
-  ALLOCATE(DOC%XSOCMOY  (KLU))
-  ALLOCATE(DOC%XUOCMOY  (KLU))
-  ALLOCATE(DOC%XVOCMOY  (KLU))
-  ALLOCATE(DOC%XDOCMOY  (KLU))
-  !
-  DOC%XTOCMOY(:)=XUNDEF
-  DOC%XSOCMOY(:)=XUNDEF
-  DOC%XUOCMOY(:)=XUNDEF
-  DOC%XVOCMOY(:)=XUNDEF
-  DOC%XDOCMOY(:)=XUNDEF
-ELSE
-  ALLOCATE(DOC%XTOCMOY  (0))
-  ALLOCATE(DOC%XSOCMOY  (0))
-  ALLOCATE(DOC%XUOCMOY  (0))
-  ALLOCATE(DOC%XVOCMOY  (0))
-  ALLOCATE(DOC%XDOCMOY  (0))
-ENDIF
-!
-!
-!* Earth system model coupling variables
-!
-IF(LCPL_SEA.OR.S%LHANDLE_SIC)THEN
-!        
-  ALLOCATE(S%XCPL_SEA_WIND(KLU))
-  ALLOCATE(S%XCPL_SEA_FWSU(KLU))
-  ALLOCATE(S%XCPL_SEA_FWSV(KLU))
-  ALLOCATE(S%XCPL_SEA_SNET(KLU))
-  ALLOCATE(S%XCPL_SEA_HEAT(KLU))
-  ALLOCATE(S%XCPL_SEA_EVAP(KLU))
-  ALLOCATE(S%XCPL_SEA_RAIN(KLU))
-  ALLOCATE(S%XCPL_SEA_SNOW(KLU))
-  ALLOCATE(S%XCPL_SEA_EVPR(KLU))
-  ALLOCATE(S%XCPL_SEA_FWSM(KLU))
-  ALLOCATE(S%XCPL_SEA_PRES(KLU))  
-  S%XCPL_SEA_WIND(:) = 0.0
-  S%XCPL_SEA_FWSU(:) = 0.0
-  S%XCPL_SEA_FWSV(:) = 0.0
-  S%XCPL_SEA_SNET(:) = 0.0
-  S%XCPL_SEA_HEAT(:) = 0.0
-  S%XCPL_SEA_EVAP(:) = 0.0
-  S%XCPL_SEA_RAIN(:) = 0.0
-  S%XCPL_SEA_EVPR(:) = 0.0  
-  S%XCPL_SEA_SNOW(:) = 0.0
-  S%XCPL_SEA_FWSM(:) = 0.0
-  S%XCPL_SEA_PRES(:) = 0.0  
-!
-ELSE
-  ALLOCATE(S%XCPL_SEA_WIND(0))
-  ALLOCATE(S%XCPL_SEA_FWSU(0))
-  ALLOCATE(S%XCPL_SEA_FWSV(0))
-  ALLOCATE(S%XCPL_SEA_SNET(0))
-  ALLOCATE(S%XCPL_SEA_HEAT(0))
-  ALLOCATE(S%XCPL_SEA_EVAP(0))
-  ALLOCATE(S%XCPL_SEA_RAIN(0))
-  ALLOCATE(S%XCPL_SEA_SNOW(0))
-  ALLOCATE(S%XCPL_SEA_EVPR(0))  
-  ALLOCATE(S%XCPL_SEA_FWSM(0))
-  ALLOCATE(S%XCPL_SEA_PRES(0))  
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('DIAG_SEAFLUX_INIT_N',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE DIAG_SEAFLUX_INIT_n
diff --git a/src/OASIS/SURFEX/get_sfx_sea.F90 b/src/OASIS/SURFEX/get_sfx_sea.F90
deleted file mode 100644
index 4778ff731..000000000
--- a/src/OASIS/SURFEX/get_sfx_sea.F90
+++ /dev/null
@@ -1,250 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE GET_SFX_SEA (S, U, W, &
-                              OCPL_SEAICE,OWATER,                      &
-                              PSEA_FWSU,PSEA_FWSV,PSEA_HEAT,PSEA_SNET, &
-                              PSEA_WIND,PSEA_FWSM,PSEA_EVAP,PSEA_RAIN, &
-                              PSEA_SNOW,PSEA_EVPR,PSEA_WATF,PSEA_PRES, &
-                              PSEAICE_HEAT,PSEAICE_SNET,PSEAICE_EVAP   )  
-!     ############################################################################
-!
-!!****  *GET_SFX_SEA* - routine to get some variables from surfex to
-!                        a oceanic general circulation model
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme      *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2013
-!!      Modified    11/2014 : J. Pianezze - Add surface pressure coupling parameter
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_WATFLUX_n, ONLY : WATFLUX_t
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-!
-!
-!
-USE MODI_UNPACK_SAME_RANK
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(WATFLUX_t), INTENT(INOUT) :: W
-!
-LOGICAL,            INTENT(IN)  :: OCPL_SEAICE ! sea-ice / ocean key
-LOGICAL,            INTENT(IN)  :: OWATER      ! water included in sea smask
-!
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_FWSU  ! Cumulated zonal wind stress       (Pa.s)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_FWSV  ! Cumulated meridian wind stress    (Pa.s)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_HEAT  ! Cumulated Non solar net heat flux (J/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_SNET  ! Cumulated Solar net heat flux     (J/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_WIND  ! Cumulated 10m wind speed          (m)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_FWSM  ! Cumulated wind stress             (Pa.s)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_EVAP  ! Cumulated Evaporation             (kg/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_RAIN  ! Cumulated Rainfall rate           (kg/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_SNOW  ! Cumulated Snowfall rate           (kg/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_EVPR  ! Cumulated Evap-Precip             (kg/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_WATF  ! Cumulated Net water flux (kg/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEA_PRES  ! Cumulated Surface pressure        (Pa.s)
-!
-REAL, DIMENSION(:), INTENT(OUT) :: PSEAICE_HEAT ! Cumulated Sea-ice non solar net heat flux (J/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEAICE_SNET ! Cumulated Sea-ice solar net heat flux     (J/m2)
-REAL, DIMENSION(:), INTENT(OUT) :: PSEAICE_EVAP ! Cumulated Sea-ice sublimation             (kg/m2)
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZWIND
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZFWSU
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZFWSV
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZSNET
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZHEAT
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZEVAP
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZRAIN
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZSNOW
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZFWSM
-!
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZSNET_ICE
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZHEAT_ICE
-REAL, DIMENSION(SIZE(PSEA_HEAT))  :: ZEVAP_ICE
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('GET_SFX_SEA',0,ZHOOK_HANDLE)
-!-------------------------------------------------------------------------------
-!
-!*       1.0   Initialization
-!              --------------
-!
-PSEA_FWSU (:) = XUNDEF
-PSEA_FWSV (:) = XUNDEF
-PSEA_HEAT (:) = XUNDEF
-PSEA_SNET (:) = XUNDEF
-PSEA_WIND (:) = XUNDEF
-PSEA_FWSM (:) = XUNDEF
-PSEA_EVAP (:) = XUNDEF
-PSEA_RAIN (:) = XUNDEF
-PSEA_SNOW (:) = XUNDEF
-PSEA_WATF (:) = XUNDEF
-!
-PSEAICE_HEAT (:) = XUNDEF
-PSEAICE_SNET (:) = XUNDEF
-PSEAICE_EVAP (:) = XUNDEF
-!
-ZFWSU (:) = XUNDEF
-ZFWSV (:) = XUNDEF
-ZHEAT (:) = XUNDEF
-ZSNET (:) = XUNDEF
-ZWIND (:) = XUNDEF
-ZFWSM (:) = XUNDEF
-ZEVAP (:) = XUNDEF
-ZRAIN (:) = XUNDEF
-ZSNOW (:) = XUNDEF
-!
-ZHEAT_ICE (:) = XUNDEF
-ZSNET_ICE (:) = XUNDEF
-ZEVAP_ICE (:) = XUNDEF
-!
-!*       2.0   Get variable over sea
-!              ---------------------
-!
-IF(U%NSIZE_SEA>0)THEN
-!
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_WIND(:),PSEA_WIND(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_FWSU(:),PSEA_FWSU(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_FWSV(:),PSEA_FWSV(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_SNET(:),PSEA_SNET(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_HEAT(:),PSEA_HEAT(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_EVAP(:),PSEA_EVAP(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_RAIN(:),PSEA_RAIN(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_SNOW(:),PSEA_SNOW(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_EVPR(:),PSEA_EVPR(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_FWSM(:),PSEA_FWSM(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEA_PRES(:),PSEA_PRES(:),XUNDEF)
-  S%XCPL_SEA_WIND(:) = 0.0
-  S%XCPL_SEA_EVAP(:) = 0.0
-  S%XCPL_SEA_HEAT(:) = 0.0
-  S%XCPL_SEA_SNET(:) = 0.0
-  S%XCPL_SEA_FWSU(:) = 0.0
-  S%XCPL_SEA_FWSV(:) = 0.0
-  S%XCPL_SEA_RAIN(:) = 0.0
-  S%XCPL_SEA_SNOW(:) = 0.0
-  S%XCPL_SEA_EVPR(:) = 0.0
-  S%XCPL_SEA_FWSM(:) = 0.0
-  S%XCPL_SEA_PRES(:) = 0.0
-!
-  IF (OCPL_SEAICE) THEN
-    CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEAICE_SNET(:),PSEAICE_SNET(:),XUNDEF)
-    CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEAICE_HEAT(:),PSEAICE_HEAT(:),XUNDEF)
-    CALL UNPACK_SAME_RANK(U%NR_SEA(:),S%XCPL_SEAICE_EVAP(:),PSEAICE_EVAP(:),XUNDEF)
-    S%XCPL_SEAICE_SNET(:) = 0.0
-    S%XCPL_SEAICE_EVAP(:) = 0.0
-    S%XCPL_SEAICE_HEAT(:) = 0.0  
-  ENDIF
-!
-ENDIF
-!
-!*       3.0   Get variable over water without Flake
-!              -------------------------------------
-!
-IF (OWATER.AND.U%NSIZE_WATER>0) THEN
-!
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_WIND(:),ZWIND(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_FWSU(:),ZFWSU(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_FWSV(:),ZFWSV(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_SNET(:),ZSNET(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_HEAT(:),ZHEAT(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_EVAP(:),ZEVAP(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_RAIN(:),ZRAIN(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_SNOW(:),ZSNOW(:),XUNDEF)
-  CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATER_FWSM(:),ZFWSM(:),XUNDEF)
-!
-  WHERE(U%XWATER(:)>0.0) 
-    PSEA_WIND(:) = (U%XSEA(:)*PSEA_WIND(:)+U%XWATER(:)*ZWIND(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_FWSU(:) = (U%XSEA(:)*PSEA_FWSU(:)+U%XWATER(:)*ZFWSU(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_FWSV(:) = (U%XSEA(:)*PSEA_FWSV(:)+U%XWATER(:)*ZFWSV(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_SNET(:) = (U%XSEA(:)*PSEA_SNET(:)+U%XWATER(:)*ZSNET(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_HEAT(:) = (U%XSEA(:)*PSEA_HEAT(:)+U%XWATER(:)*ZHEAT(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_EVAP(:) = (U%XSEA(:)*PSEA_EVAP(:)+U%XWATER(:)*ZEVAP(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_RAIN(:) = (U%XSEA(:)*PSEA_RAIN(:)+U%XWATER(:)*ZRAIN(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_SNOW(:) = (U%XSEA(:)*PSEA_SNOW(:)+U%XWATER(:)*ZSNOW(:))/(U%XSEA(:)+U%XWATER(:))
-    PSEA_FWSM(:) = (U%XSEA(:)*PSEA_FWSM(:)+U%XWATER(:)*ZFWSM(:))/(U%XSEA(:)+U%XWATER(:))
-  ENDWHERE 
-!
-  W%XCPL_WATER_WIND(:) = 0.0
-  W%XCPL_WATER_EVAP(:) = 0.0
-  W%XCPL_WATER_HEAT(:) = 0.0
-  W%XCPL_WATER_SNET(:) = 0.0
-  W%XCPL_WATER_FWSU(:) = 0.0
-  W%XCPL_WATER_FWSV(:) = 0.0
-  W%XCPL_WATER_RAIN(:) = 0.0
-  W%XCPL_WATER_SNOW(:) = 0.0
-  W%XCPL_WATER_FWSM(:) = 0.0
-!
-  IF (OCPL_SEAICE) THEN
-    CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATERICE_SNET(:),ZSNET_ICE(:),XUNDEF)
-    CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATERICE_HEAT(:),ZHEAT_ICE(:),XUNDEF)
-    CALL UNPACK_SAME_RANK(U%NR_WATER(:),W%XCPL_WATERICE_EVAP(:),ZEVAP_ICE(:),XUNDEF)
-    WHERE(U%XWATER(:)>0.0)     
-      PSEAICE_SNET(:) = (U%XSEA(:)*PSEAICE_SNET(:)+U%XWATER(:)*ZSNET_ICE(:))/(U%XSEA(:)+U%XWATER(:))
-      PSEAICE_HEAT(:) = (U%XSEA(:)*PSEAICE_HEAT(:)+U%XWATER(:)*ZHEAT_ICE(:))/(U%XSEA(:)+U%XWATER(:))
-      PSEAICE_EVAP(:) = (U%XSEA(:)*PSEAICE_EVAP(:)+U%XWATER(:)*ZEVAP_ICE(:))/(U%XSEA(:)+U%XWATER(:))
-    ENDWHERE  
-    W%XCPL_WATERICE_SNET(:) = 0.0
-    W%XCPL_WATERICE_EVAP(:) = 0.0
-    W%XCPL_WATERICE_HEAT(:) = 0.0
-  ENDIF  
-! 
-ENDIF
-!
-!*       4.0   Net water flux
-!              -----------------------
-!
-IF(U%NSIZE_SEA>0)THEN
-!
-  PSEA_WATF(:) = PSEA_RAIN(:) + PSEA_SNOW(:) - PSEA_EVAP(:)
-!
-ENDIF
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('GET_SFX_SEA',1,ZHOOK_HANDLE)
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE GET_SFX_SEA
diff --git a/src/OASIS/SURFEX/get_sfxcpln.F90 b/src/OASIS/SURFEX/get_sfxcpln.F90
deleted file mode 100644
index 32a566dda..000000000
--- a/src/OASIS/SURFEX/get_sfxcpln.F90
+++ /dev/null
@@ -1,226 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE GET_SFXCPL_n (IM, S, U, W, &
-                               HPROGRAM,KI,PRUI,PWIND,PFWSU,PFWSV,PSNET, &
-                                PHEAT,PEVAP,PRAIN,PSNOW,PEVPR,PICEFLUX,  &
-                                PFWSM,PPS,PHEAT_ICE,PEVAP_ICE,PSNET_ICE)  
-!     ###################################################################
-!
-!!****  *GETSFXCPL_n* - routine to get some variables from surfex into
-!                       ocean and/or a river routing model when the coupler
-!                       is not in SURFEX but in ARPEGE.
-!
-!                       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!                       This routine will be suppress soon.
-!                       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme      *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    08/2009
-!!    10/2016 B. Decharme : bug surface/groundwater coupling 
-!!      Modified    11/2014 : J. Pianezze - Add surface pressure coupling parameter
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-!
-!
-USE MODD_SURFEX_n, ONLY : ISBA_MODEL_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_WATFLUX_n, ONLY : WATFLUX_t
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-USE MODN_SFX_OASIS,  ONLY : LWATER
-USE MODD_SFX_OASIS,  ONLY : LCPL_LAND, LCPL_CALVING, LCPL_GW, &
-                            LCPL_FLOOD, LCPL_SEA, LCPL_SEAICE
-!
-USE MODI_GET_SFX_SEA
-USE MODI_GET_SFX_LAND
-USE MODI_ABOR1_SFX
-USE MODI_GET_LUOUT
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-USE MODI_GET_1D_MASK
-!
-USE MODI_GET_FRAC_n
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(ISBA_MODEL_t), INTENT(INOUT) :: IM
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(WATFLUX_t), INTENT(INOUT) :: W
-!
- CHARACTER(LEN=6),    INTENT(IN)  :: HPROGRAM
-INTEGER,             INTENT(IN)  :: KI      ! number of points
-!
-REAL, DIMENSION(KI), INTENT(OUT) :: PRUI
-REAL, DIMENSION(KI), INTENT(OUT) :: PWIND
-REAL, DIMENSION(KI), INTENT(OUT) :: PFWSU
-REAL, DIMENSION(KI), INTENT(OUT) :: PFWSV
-REAL, DIMENSION(KI), INTENT(OUT) :: PSNET
-REAL, DIMENSION(KI), INTENT(OUT) :: PHEAT
-REAL, DIMENSION(KI), INTENT(OUT) :: PEVAP
-REAL, DIMENSION(KI), INTENT(OUT) :: PRAIN
-REAL, DIMENSION(KI), INTENT(OUT) :: PSNOW
-REAL, DIMENSION(KI), INTENT(OUT) :: PEVPR
-REAL, DIMENSION(KI), INTENT(OUT) :: PICEFLUX
-REAL, DIMENSION(KI), INTENT(OUT) :: PFWSM
-REAL, DIMENSION(KI), INTENT(OUT) :: PPS
-REAL, DIMENSION(KI), INTENT(OUT) :: PHEAT_ICE
-REAL, DIMENSION(KI), INTENT(OUT) :: PEVAP_ICE
-REAL, DIMENSION(KI), INTENT(OUT) :: PSNET_ICE
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-REAL, DIMENSION(KI)   :: ZRUNOFF    ! Cumulated Surface runoff             (kg/m2)
-REAL, DIMENSION(KI)   :: ZDRAIN     ! Cumulated Deep drainage              (kg/m2)
-REAL, DIMENSION(KI)   :: ZCALVING   ! Cumulated Calving flux               (kg/m2)
-REAL, DIMENSION(KI)   :: ZSRCFLOOD  ! Cumulated flood freshwater flux      (kg/m2)
-!
-REAL, DIMENSION(KI)   :: ZSEA_FWSU  ! Cumulated zonal wind stress       (Pa.s)
-REAL, DIMENSION(KI)   :: ZSEA_FWSV  ! Cumulated meridian wind stress    (Pa.s)
-REAL, DIMENSION(KI)   :: ZSEA_HEAT  ! Cumulated Non solar net heat flux (J/m2)
-REAL, DIMENSION(KI)   :: ZSEA_SNET  ! Cumulated Solar net heat flux     (J/m2)
-REAL, DIMENSION(KI)   :: ZSEA_WIND  ! Cumulated 10m wind speed          (m)
-REAL, DIMENSION(KI)   :: ZSEA_FWSM  ! Cumulated wind stress             (Pa.s)
-REAL, DIMENSION(KI)   :: ZSEA_EVAP  ! Cumulated Evaporation             (kg/m2)
-REAL, DIMENSION(KI)   :: ZSEA_RAIN  ! Cumulated Rainfall rate           (kg/m2)
-REAL, DIMENSION(KI)   :: ZSEA_SNOW  ! Cumulated Snowfall rate           (kg/m2)
-REAL, DIMENSION(KI)   :: ZSEA_EVPR  ! Cumulated Evap-Precp. rate        (kg/m2)
-REAL, DIMENSION(KI)   :: ZSEA_WATF  ! Cumulated freshwater flux         (kg/m2)
-REAL, DIMENSION(KI)   :: ZSEA_PRES  ! Cumulated Surface pressure        (Pa.s)
-!
-REAL, DIMENSION(KI)   :: ZSEAICE_HEAT ! Cumulated Sea-ice non solar net heat flux (J/m2)
-REAL, DIMENSION(KI)   :: ZSEAICE_SNET ! Cumulated Sea-ice solar net heat flux     (J/m2)
-REAL, DIMENSION(KI)   :: ZSEAICE_EVAP ! Cumulated Sea-ice sublimation             (kg/m2)
-!
-INTEGER :: ILU, ILUOUT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('GET_SFXCPL_N',0,ZHOOK_HANDLE)
-!
-CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
-!-------------------------------------------------------------------------------
-! Global argument
-!
-IF(KI/=U%NSIZE_FULL)THEN
-  WRITE(ILUOUT,*) 'size of field expected by the coupling :', KI
-  WRITE(ILUOUT,*) 'size of field in SURFEX                :', U%NSIZE_FULL
-  CALL ABOR1_SFX('GET_SFXCPL_N: VECTOR SIZE NOT CORRECT FOR COUPLING')
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Get variable over nature tile
-!
-IF(LCPL_LAND)THEN
-!
-! * Init land output fields
-!
-  ZRUNOFF  (:) = XUNDEF
-  ZDRAIN   (:) = XUNDEF
-  ZCALVING (:) = XUNDEF
-  ZSRCFLOOD(:) = XUNDEF
-!
-! * Get land output fields
-!       
-  CALL GET_SFX_LAND(IM%O, IM%S, U, &
-                    LCPL_GW,LCPL_FLOOD,LCPL_CALVING,    &
-                    ZRUNOFF,ZDRAIN,ZCALVING,ZSRCFLOOD )
-!
-! * Assign land output fields
-!        
-  PRUI    (:) = ZRUNOFF (:)+ZDRAIN(:)
-  PICEFLUX(:) = ZCALVING(:)
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Get variable over sea and water tiles and for ice
-!
-IF(LCPL_SEA)THEN
-!
-! * Init sea output fields
-!
-  ZSEA_FWSU (:) = XUNDEF
-  ZSEA_FWSV (:) = XUNDEF
-  ZSEA_HEAT (:) = XUNDEF
-  ZSEA_SNET (:) = XUNDEF
-  ZSEA_WIND (:) = XUNDEF
-  ZSEA_FWSM (:) = XUNDEF
-  ZSEA_EVAP (:) = XUNDEF
-  ZSEA_RAIN (:) = XUNDEF
-  ZSEA_SNOW (:) = XUNDEF
-  ZSEA_WATF (:) = XUNDEF
-  ZSEA_PRES (:) = XUNDEF
-!
-  ZSEAICE_HEAT (:) = XUNDEF
-  ZSEAICE_SNET (:) = XUNDEF
-  ZSEAICE_EVAP (:) = XUNDEF
-!
-! * Get sea output fields
-!
-  CALL GET_SFX_SEA(S, U, W, &
-                   LCPL_SEAICE,LWATER,                      &
-                   ZSEA_FWSU,ZSEA_FWSV,ZSEA_HEAT,ZSEA_SNET, &
-                   ZSEA_WIND,ZSEA_FWSM,ZSEA_EVAP,ZSEA_RAIN, &
-                   ZSEA_SNOW,ZSEA_EVPR,ZSEA_WATF,ZSEA_PRES, &
-                   ZSEAICE_HEAT,ZSEAICE_SNET,ZSEAICE_EVAP   )
-!
-! * Assign sea output fields
-!
-  PFWSU     (:) = ZSEA_FWSU (:)
-  PFWSV     (:) = ZSEA_FWSV (:)
-  PSNET     (:) = ZSEA_SNET (:)
-  PHEAT     (:) = ZSEA_HEAT (:)
-  PEVAP     (:) = ZSEA_EVAP (:)
-  PRAIN     (:) = ZSEA_RAIN (:)
-  PSNOW     (:) = ZSEA_SNOW (:)
-  PFWSM     (:) = ZSEA_FWSM (:)
-  PHEAT_ICE (:) = ZSEAICE_HEAT (:)
-  PEVAP_ICE (:) = ZSEAICE_EVAP (:)
-  PSNET_ICE (:) = ZSEAICE_SNET (:)
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('GET_SFXCPL_N',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE GET_SFXCPL_n
diff --git a/src/OASIS/SURFEX/init_seafluxn.F90 b/src/OASIS/SURFEX/init_seafluxn.F90
deleted file mode 100644
index e718fd1bb..000000000
--- a/src/OASIS/SURFEX/init_seafluxn.F90
+++ /dev/null
@@ -1,453 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #############################################################
-      SUBROUTINE INIT_SEAFLUX_n (DTCO, OREAD_BUDGETC, UG, U, GCP, SM, &
-                                 HPROGRAM,HINIT,KI,KSV,KSW,                 &
-                                 HSV,PCO2,PRHOA,PZENITH,PAZIM,PSW_BANDS,    &
-                                 PDIR_ALB,PSCA_ALB, PEMIS,PTSRAD,PTSURF,    &
-                                 KYEAR, KMONTH,KDAY,PTIME,                  &
-                                 HATMFILE,HATMFILETYPE,HTEST                )  
-!     #############################################################
-!
-!!****  *INIT_SEAFLUX_n* - routine to initialize SEAFLUX
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      V. Masson   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2003
-!!      Modified    01/2006 : sea flux parameterization.
-!!                  01/2008 : coupling with 1D ocean
-!!      B. Decharme 08/2009 : specific treatment for sea/ice in the Earth System Model 
-!!      B. Decharme 07/2011 : read pgd+prep 
-!!      B. Decharme 04/2013 : new coupling variables
-!!      S. Senesi   01/2014 : introduce sea-ice model 
-!!      S. Belamari 03/2014 : add NZ0 (to choose PZ0SEA formulation)
-!!      R. Séférian 01/2015 : introduce interactive ocean surface albedo
-!!      M.N. Bouin  03/2014 : possibility of wave parameters
-!!                          ! from external source
-!!      J. Pianezze 11/2014 : add wave coupling flag for wave parameters
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_SURFEX_n, ONLY : SEAFLUX_MODEL_t
-!
-USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t
-USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_GRID_CONF_PROJ_n, ONLY : GRID_CONF_PROJ_t
-!
-USE MODD_SFX_OASIS,      ONLY : LCPL_WAVE, LCPL_SEA, LCPL_SEAICE
-!
-USE MODD_READ_NAMELIST,  ONLY : LNAM_READ
-USE MODD_CSTS,           ONLY : XTTS
-USE MODD_SNOW_PAR,       ONLY : XZ0HSN
-USE MODD_SURF_PAR,       ONLY : XUNDEF, NUNDEF
-USE MODD_CHS_AEROSOL,    ONLY: LVARSIGI, LVARSIGJ
-USE MODD_DST_SURF,       ONLY: LVARSIG_DST, NDSTMDE, NDST_MDEBEG, LRGFIX_DST
-USE MODD_SLT_SURF,       ONLY: LVARSIG_SLT, NSLTMDE, NSLT_MDEBEG, LRGFIX_SLT
-!
-USE MODI_INIT_IO_SURF_n
-USE MODI_DEFAULT_CH_DEP
-!
-USE MODI_DEFAULT_SEAFLUX
-USE MODI_DEFAULT_DIAG_SEAFLUX
-USE MODI_READ_DEFAULT_SEAFLUX_n
-USE MODI_READ_SEAFLUX_CONF_n
-USE MODI_READ_SEAFLUX_n
-!
-USE MODI_READ_OCEAN_n
-!
-USE MODI_DEFAULT_SEAICE
-USE MODI_READ_SEAICE_n
-!
-USE MODI_READ_PGD_SEAFLUX_n
-USE MODI_DIAG_SEAFLUX_INIT_n
-USE MODI_DIAG_SEAICE_INIT_n
-USE MODI_END_IO_SURF_n
-USE MODI_GET_LUOUT
-USE MODI_READ_SURF
-USE MODI_READ_SEAFLUX_DATE
-USE MODI_READ_NAM_PREP_SEAFLUX_n
-USE MODI_INIT_CHEMICAL_n
-USE MODI_PREP_CTRL_SEAFLUX
-USE MODI_UPDATE_RAD_SEA
-USE MODI_READ_SBL_n
-USE MODI_ABOR1_SFX
-!
-USE MODI_SET_SURFEX_FILEIN
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(DATA_COVER_t), INTENT(INOUT) :: DTCO
-TYPE(SURF_ATM_GRID_t), INTENT(INOUT) :: UG
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(GRID_CONF_PROJ_t),INTENT(INOUT) :: GCP
-TYPE(SEAFLUX_MODEL_t), INTENT(INOUT) :: SM
-!
-LOGICAL, INTENT(IN) :: OREAD_BUDGETC
-!
-CHARACTER(LEN=6),                 INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
-CHARACTER(LEN=3),                 INTENT(IN)  :: HINIT     ! choice of fields to initialize
-INTEGER,                          INTENT(IN)  :: KI        ! number of points
-INTEGER,                          INTENT(IN)  :: KSV       ! number of scalars
-INTEGER,                          INTENT(IN)  :: KSW       ! number of short-wave spectral bands
-CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN)  :: HSV       ! name of all scalar variables
-REAL,             DIMENSION(KI),  INTENT(IN)  :: PCO2      ! CO2 concentration (kg/m3)
-REAL,             DIMENSION(KI),  INTENT(IN)  :: PRHOA     ! air density
-REAL,             DIMENSION(KI),  INTENT(IN)  :: PZENITH   ! solar zenithal angle
-REAL,             DIMENSION(KI),  INTENT(IN)  :: PAZIM     ! solar azimuthal angle (rad from N, clock)
-REAL,             DIMENSION(KSW), INTENT(IN)  :: PSW_BANDS ! middle wavelength of each band
-REAL,             DIMENSION(KI,KSW),INTENT(OUT) :: PDIR_ALB  ! direct albedo for each band
-REAL,             DIMENSION(KI,KSW),INTENT(OUT) :: PSCA_ALB  ! diffuse albedo for each band
-REAL,             DIMENSION(KI),  INTENT(OUT) :: PEMIS     ! emissivity
-REAL,             DIMENSION(KI),  INTENT(OUT) :: PTSRAD    ! radiative temperature
-REAL,             DIMENSION(KI),  INTENT(OUT) :: PTSURF    ! surface effective temperature         (K)
-INTEGER,                          INTENT(IN)  :: KYEAR     ! current year (UTC)
-INTEGER,                          INTENT(IN)  :: KMONTH    ! current month (UTC)
-INTEGER,                          INTENT(IN)  :: KDAY      ! current day (UTC)
-REAL,                             INTENT(IN)  :: PTIME     ! current time since
-                                                           !  midnight (UTC, s)
-!
-CHARACTER(LEN=28),                INTENT(IN)  :: HATMFILE    ! atmospheric file name
-CHARACTER(LEN=6),                 INTENT(IN)  :: HATMFILETYPE! atmospheric file type
-CHARACTER(LEN=2),                 INTENT(IN)  :: HTEST       ! must be equal to 'OK'
-!
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-INTEGER           :: ILU    ! sizes of SEAFLUX arrays
-INTEGER           :: ILUOUT ! unit of output listing file
-INTEGER           :: IRESP  ! return code
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-!         Initialisation for IO
-!
-IF (LHOOK) CALL DR_HOOK('INIT_SEAFLUX_N',0,ZHOOK_HANDLE)
-!
- CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
-IF (HTEST/='OK') THEN
-  CALL ABOR1_SFX('INIT_SEAFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER')
-END IF
-!
-!
-!         Others litlle things
-!
-PDIR_ALB = XUNDEF
-PSCA_ALB = XUNDEF
-PEMIS    = XUNDEF
-PTSRAD   = XUNDEF
-PTSURF   = XUNDEF
-!
-SM%O%LMERCATOR = .FALSE.
-SM%O%LCURRENT  = .FALSE.
-!
-IF (LNAM_READ) THEN
- !
- !*       0.     Defaults
- !               --------
- !
- !        0.1. Hard defaults
- !      
- 
- CALL DEFAULT_SEAFLUX(SM%S%XTSTEP,SM%S%XOUT_TSTEP,SM%S%CSEA_ALB,SM%S%CSEA_FLUX,SM%S%LPWG,  &
-                      SM%S%LPRECIP,SM%S%LPWEBB,SM%S%NZ0,SM%S%NGRVWAVES,SM%O%LPROGSST,      &
-                      SM%O%NTIME_COUPLING,SM%O%XOCEAN_TSTEP,SM%S%XICHCE,SM%S%CINTERPOL_SST,&
-                      SM%S%CINTERPOL_SSS,SM%S%LWAVEWIND                            )
- CALL DEFAULT_SEAICE(HPROGRAM,                                                  &
-                     SM%S%CINTERPOL_SIC,SM%S%CINTERPOL_SIT, SM%S%XFREEZING_SST, &
-                     SM%S%XSEAICE_TSTEP, SM%S%XSIC_EFOLDING_TIME,               &
-                     SM%S%XSIT_EFOLDING_TIME, SM%S%XCD_ICE_CST, SM%S%XSI_FLX_DRV)     
- !                     
- CALL DEFAULT_CH_DEP(SM%CHS%CCH_DRY_DEP) 
- !            
- CALL DEFAULT_DIAG_SEAFLUX(SM%SD%O%N2M,SM%SD%O%LSURF_BUDGET,SM%SD%O%L2M_MIN_ZS,&
-                           SM%SD%O%LRAD_BUDGET,SM%SD%O%LCOEF,SM%SD%O%LSURF_VARS,&
-                           SM%SD%GO%LDIAG_OCEAN,SM%SD%DMI%LDIAG_MISC_SEAICE,&
-                           SM%SD%O%LSURF_BUDGETC,SM%SD%O%LRESET_BUDGETC,SM%SD%O%XDIAG_TSTEP )  
-
-ENDIF
-!
-!
-!        0.2. Defaults from file header
-!    
- CALL READ_DEFAULT_SEAFLUX_n(SM%CHS, SM%SD%GO, SM%SD%O, SM%SD%DMI, SM%O, SM%S, HPROGRAM)
-!
-!*       1.1    Reading of configuration:
-!               -------------------------
-!
- CALL READ_SEAFLUX_CONF_n(SM%CHS, SM%SD%GO, SM%SD%O, SM%SD%DMI, SM%O, SM%S, HPROGRAM)
-!
-SM%S%LINTERPOL_SST=.FALSE.
-SM%S%LINTERPOL_SSS=.FALSE.
-SM%S%LINTERPOL_SIC=.FALSE.
-SM%S%LINTERPOL_SIT=.FALSE.
-!
-IF(LCPL_SEA)THEN 
-  IF(SM%SD%O%N2M<1)THEN
-     CALL ABOR1_SFX('INIT_SEAFLUX_n: N2M must be set >0 in case of LCPL_SEA')
-  ENDIF
-! No STT / SSS interpolation in Earth System Model
-  SM%S%CINTERPOL_SST='NONE  '
-  SM%S%CINTERPOL_SSS='NONE  '
-  SM%S%CINTERPOL_SIC='NONE  '
-  SM%S%CINTERPOL_SIT='NONE  '
-ELSE
-   IF(TRIM(SM%S%CINTERPOL_SST)/='NONE')THEN
-      SM%S%LINTERPOL_SST=.TRUE.
-   ENDIF
-   IF(TRIM(SM%S%CINTERPOL_SSS)/='NONE')THEN
-      SM%S%LINTERPOL_SSS=.TRUE.
-   ENDIF
-   IF(TRIM(SM%S%CINTERPOL_SIC)/='NONE')THEN
-      SM%S%LINTERPOL_SIC=.TRUE.
-   ENDIF
-   IF(TRIM(SM%S%CINTERPOL_SIT)/='NONE')THEN
-      SM%S%LINTERPOL_SIT=.TRUE.
-   ENDIF
-ENDIF
-!
-!*       1.     Cover fields and grid:
-!               ---------------------
-!* date
-!
-SELECT CASE (HINIT)
-!
-  CASE ('PGD')
-!
-    SM%S%TTIME%TDATE%YEAR = NUNDEF
-    SM%S%TTIME%TDATE%MONTH= NUNDEF
-    SM%S%TTIME%TDATE%DAY  = NUNDEF
-    SM%S%TTIME%TIME       = XUNDEF
-!
-  CASE ('PRE')
-!
-    CALL PREP_CTRL_SEAFLUX(SM%SD%O,SM%SD%GO%LDIAG_OCEAN,SM%SD%DMI%LDIAG_MISC_SEAICE,ILUOUT ) 
-    IF (LNAM_READ) CALL READ_NAM_PREP_SEAFLUX_n(HPROGRAM)      
-    CALL READ_SEAFLUX_DATE(SM%O%LMERCATOR,HPROGRAM,HINIT,ILUOUT,HATMFILE,HATMFILETYPE,&
-                           KYEAR,KMONTH,KDAY,PTIME,SM%S%TTIME)
-!
-  CASE DEFAULT
-!
-CALL INIT_IO_SURF_n(DTCO, U, HPROGRAM,'FULL  ','SURF  ','READ ')
-    CALL READ_SURF(HPROGRAM,'DTCUR',SM%S%TTIME,IRESP)
-    CALL END_IO_SURF_n(HPROGRAM)
-!
-END SELECT
-!
-!-----------------------------------------------------------------------------------------------------
-! READ PGD FILE
-!-----------------------------------------------------------------------------------------------------
-!
-!         Initialisation for IO
-!
- CALL SET_SURFEX_FILEIN(HPROGRAM,'PGD ') ! change input file name to pgd name
-!
-CALL INIT_IO_SURF_n(DTCO, U, HPROGRAM,'SEA   ','SEAFLX','READ ')
-!
-!         Reading of the fields
-!
- CALL READ_PGD_SEAFLUX_n(DTCO, SM%DTS, SM%G, SM%S, U, UG, GCP, HPROGRAM)
-!
- CALL END_IO_SURF_n(HPROGRAM)
-!
- CALL SET_SURFEX_FILEIN(HPROGRAM,'PREP') ! restore input file name
-!-------------------------------------------------------------------------------
-!
-!* if only physiographic fields are to be initialized, stop here.
-!
-IF (HINIT/='ALL' .AND. HINIT/='SOD') THEN
-  IF (LHOOK) CALL DR_HOOK('INIT_SEAFLUX_N',1,ZHOOK_HANDLE)
-  RETURN
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-!         Initialisation for IO
-!
-CALL INIT_IO_SURF_n(DTCO, U, HPROGRAM,'SEA   ','SEAFLX','READ ')
-!
-!*       2.     Prognostic fields:
-!               ----------------
-!
-IF(SM%S%LINTERPOL_SST.OR.SM%S%LINTERPOL_SSS.OR.SM%S%LINTERPOL_SIC.OR.SM%S%LINTERPOL_SIT)THEN
-!  Initialize current Month for SST interpolation
-   SM%S%TZTIME%TDATE%YEAR  = SM%S%TTIME%TDATE%YEAR
-   SM%S%TZTIME%TDATE%MONTH = SM%S%TTIME%TDATE%MONTH
-   SM%S%TZTIME%TDATE%DAY   = SM%S%TTIME%TDATE%DAY
-   SM%S%TZTIME%TIME        = SM%S%TTIME%TIME        
-ENDIF
-!
- CALL READ_SEAFLUX_n(DTCO, SM%G, SM%S, U, HPROGRAM,ILUOUT)
-!
-IF (HINIT/='ALL') THEN
-  CALL END_IO_SURF_n(HPROGRAM)
-  IF (LHOOK) CALL DR_HOOK('INIT_SEAFLUX_N',1,ZHOOK_HANDLE)
-  RETURN
-END IF
-!-------------------------------------------------------------------------------
-!
-!*       2.1    Ocean fields:
-!               -------------
-!
- CALL READ_OCEAN_n(DTCO, SM%O, SM%OR, U, HPROGRAM)
-!
-!-------------------------------------------------------------------------------
-!
-ILU = SIZE(SM%S%XCOVER,1)
-!
-ALLOCATE(SM%S%XSST_INI    (ILU))
-SM%S%XSST_INI(:) = SM%S%XSST(:)
-!
-ALLOCATE(SM%S%XZ0H(ILU))
-WHERE (SM%S%XSST(:)>=XTTS)
-  SM%S%XZ0H(:) = SM%S%XZ0(:)
-ELSEWHERE
-  SM%S%XZ0H(:) = XZ0HSN
-ENDWHERE
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     Specific fields when using earth system model or sea-ice scheme
-!               (Sea current and Sea-ice temperature)
-!               -----------------------------------------------------------------
-!
-IF(LCPL_SEA.OR.SM%S%LHANDLE_SIC.OR.LCPL_WAVE)THEN       
-! 
-  ALLOCATE(SM%S%XUMER   (ILU))
-  ALLOCATE(SM%S%XVMER   (ILU))
-!
-  SM%S%XUMER   (:)=0.
-  SM%S%XVMER   (:)=0.
-!
-ELSE
-! 
-  ALLOCATE(SM%S%XUMER   (0))
-  ALLOCATE(SM%S%XVMER   (0))
-!
-ENDIF
-!
-IF(LCPL_WAVE) THEN
-  ALLOCATE(SM%S%XCHARN  (ILU))
-  SM%S%XCHARN  (:)=0.011
-ELSE
-  ALLOCATE(SM%S%XCHARN   (0))
-ENDIF
-!
-IF(LCPL_SEAICE.OR.SM%S%LHANDLE_SIC)THEN       
-  ALLOCATE(SM%S%XTICE   (ILU))
-  ALLOCATE(SM%S%XICE_ALB(ILU))
-  SM%S%XTICE   (:)=XUNDEF
-  SM%S%XICE_ALB(:)=XUNDEF
-ELSE
-  ALLOCATE(SM%S%XTICE   (0))
-  ALLOCATE(SM%S%XICE_ALB(0))
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       4.     Seaice prognostic variables and forcings :
-!
-CALL READ_SEAICE_n(SM%G, SM%S, HPROGRAM,ILU,ILUOUT)
-!
-!-------------------------------------------------------------------------------
-!
-!*       5.     Albedo, emissivity and temperature fields on the mix (open sea + sea ice)
-!               -----------------------------------------------------------------
-!
-ALLOCATE(SM%S%XEMIS    (ILU))
-SM%S%XEMIS    = 0.0
-!
-CALL UPDATE_RAD_SEA(SM%S,PZENITH,XTTS,PDIR_ALB,PSCA_ALB,PEMIS,PTSRAD )  
-!
-IF (SM%S%LHANDLE_SIC) THEN
-   PTSURF(:) = SM%S%XSST(:) * ( 1 - SM%S%XSIC(:)) + SM%S%XTICE(:) * SM%S%XSIC(:)
-ELSE
-   PTSURF(:) = SM%S%XSST(:)
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       6.     SBL air fields:
-!               --------------
-!
- CALL READ_SBL_n(DTCO, U, SM%SB, SM%S%LSBL, HPROGRAM, "SEA   ")
-!
-!-------------------------------------------------------------------------------
-!
-!*       7.     Chemistry /dust
-!               ---------
-!
- CALL INIT_CHEMICAL_n(ILUOUT, KSV, HSV, SM%CHS%SVS,           &
-                     SM%CHS%CCH_NAMES, SM%CHS%CAER_NAMES,     &
-                     HDSTNAMES=SM%CHS%CDSTNAMES, HSLTNAMES=SM%CHS%CSLTNAMES,  &
-                     HSNWNAMES=SM%CHS%CSNWNAMES     )
-!
-!* deposition scheme
-!
-IF (SM%CHS%SVS%NBEQ>0 .AND. SM%CHS%CCH_DRY_DEP=='WES89') THEN
-  ALLOCATE(SM%CHS%XDEP(ILU,SM%CHS%SVS%NBEQ))
-ELSE
-  ALLOCATE(SM%CHS%XDEP(0,0))
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-!*       8.     diagnostics initialization
-!               --------------------------
-!
-IF(.NOT.(SM%S%LHANDLE_SIC.OR.LCPL_SEAICE))THEN
-  SM%SD%DMI%LDIAG_MISC_SEAICE=.FALSE.
-ENDIF
-!
- CALL DIAG_SEAFLUX_INIT_n(SM%SD%GO, SM%SD%O, SM%SD%D, SM%SD%DC, OREAD_BUDGETC, SM%S, &
-                          HPROGRAM,ILU,KSW)
-IF (SM%S%LHANDLE_SIC.OR.LCPL_SEAICE) &
-        CALL DIAG_SEAICE_INIT_n(SM%SD%O, SM%SD%DI, SM%SD%DIC, SM%SD%DMI, &
-                               OREAD_BUDGETC, SM%S, HPROGRAM,ILU,KSW)
-                 
-!
-!-------------------------------------------------------------------------------
-!
-!         End of IO
-!
- CALL END_IO_SURF_n(HPROGRAM)
-IF (LHOOK) CALL DR_HOOK('INIT_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!
-END SUBROUTINE INIT_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/modd_prep_seaflux.F90 b/src/OASIS/SURFEX/modd_prep_seaflux.F90
deleted file mode 100644
index 9b034aea4..000000000
--- a/src/OASIS/SURFEX/modd_prep_seaflux.F90
+++ /dev/null
@@ -1,57 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     ################
-      MODULE MODD_PREP_SEAFLUX
-!     ################
-!
-!!****  *MODD_PREP_SEAFLUX - declaration for field interpolations
-!!
-!!    PURPOSE
-!!    -------
-!     Declaration of surface parameters
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!      S.Malardel    *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original       10/03
-!!      Modified     09/2013 : S. Senesi : introduce variables for sea-ice model
-!!      Modified     03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                         ! from external source
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-IMPLICIT NONE
-!
-SAVE
-!--------------------------------------------------------------------------
-!
-CHARACTER(LEN=28) :: CFILE_SEAFLX   ! input file name
-CHARACTER(LEN=6)  :: CTYPE_SEAFLX   ! input file type
-CHARACTER(LEN=28) :: CFILEWAVE_SEAFLX   ! input file name wave parameters
-CHARACTER(LEN=6)  :: CTYPEWAVE      ! file type for wave parameters
-CHARACTER(LEN=28) :: CFILEPGD_SEAFLX   ! input file name
-CHARACTER(LEN=6)  :: CTYPEPGD          ! input file type
-!
-REAL              :: XSST_UNIF   !  uniform prescribed SST
-REAL              :: XSSS_UNIF   !  uniform prescribed SSS
-REAL              :: XSIC_UNIF   !  uniform prescribed Seaice cover
-!
-!--------------------------------------------------------------------------
-!
-END MODULE MODD_PREP_SEAFLUX
-
-
diff --git a/src/OASIS/SURFEX/modd_seafluxn.F90 b/src/OASIS/SURFEX/modd_seafluxn.F90
deleted file mode 100644
index 360b12c62..000000000
--- a/src/OASIS/SURFEX/modd_seafluxn.F90
+++ /dev/null
@@ -1,249 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #################
-      MODULE MODD_SEAFLUX_n
-!     #################
-!
-!!****  *MODD_SEAFLUX_n - declaration of surface parameters for an inland water surface
-!!
-!!    PURPOSE
-!!    -------
-!     Declaration of surface parameters
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!      V. Masson   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original      01/2004
-!!      S. Senesi     01/2014  adapt to fractional seaice, and to seaice scheme
-!!      S. Belamari   03/2014  Include NZ0
-!!      Modified      03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!!      Modified      11/2014 : J. Pianezze ! add surface pressure, evap-rain and charnock coefficient
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-USE MODD_TYPE_DATE_SURF
-!
-USE MODD_TYPES_GLT,   ONLY : T_GLT
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-
-TYPE SEAFLUX_t
-!
-! General surface: 
-!
-  REAL, POINTER, DIMENSION(:)   :: XZS     ! orography
-  REAL, POINTER, DIMENSION(:,:) :: XCOVER  ! fraction of each ecosystem       (-)
-  LOGICAL, POINTER, DIMENSION(:):: LCOVER  ! GCOVER(i)=T --> ith cover field is not 0.
-  LOGICAL                       :: LSBL    ! T: SBL scheme between sea and atm. forcing level
-!                                          ! F: no atmospheric layers below forcing level      
-  LOGICAL                       :: LHANDLE_SIC ! T: we do weight seaice and open sea fluxes
-  CHARACTER(LEN=6)              :: CSEAICE_SCHEME! Name of the seaice scheme 
-  REAL, POINTER, DIMENSION(:)   :: XSEABATHY   ! bathymetry
-!
-  LOGICAL                       :: LINTERPOL_SST ! Interpolation of monthly SST
-  CHARACTER(LEN=6)              :: CINTERPOL_SST ! Interpolation method of monthly SST
-  LOGICAL                       :: LINTERPOL_SSS ! Interpolation of monthly SSS
-  CHARACTER(LEN=6)              :: CINTERPOL_SSS ! Interpolation method of monthly SSS
-  LOGICAL                       :: LINTERPOL_SIC ! Interpolation of monthly SIC
-  CHARACTER(LEN=6)              :: CINTERPOL_SIC ! Interpolation method of monthly SIC
-  LOGICAL                       :: LINTERPOL_SIT ! Interpolation of monthly SIT
-  CHARACTER(LEN=6)              :: CINTERPOL_SIT ! Interpolation method of monthly SIT
-  REAL                          :: XFREEZING_SST ! Value marking frozen sea in SST data
-  REAL                          :: XSIC_EFOLDING_TIME ! For damping of SIC (days)
-  REAL                          :: XSIT_EFOLDING_TIME ! For damping of SIT (days)
-  REAL                          :: XSEAICE_TSTEP ! Sea ice model time step
-  REAL                          :: XCD_ICE_CST   ! Turbulent exchange coefficient for seaice
-  REAL                          :: XSI_FLX_DRV   ! Derivative of fluxes on seaice w.r.t to the temperature (W m-2 K-1)
-  
-!
-! Type of formulation for the fluxes
-!
-  CHARACTER(LEN=6)                  :: CSEA_FLUX   ! type of flux computation
-  CHARACTER(LEN=4)                  :: CSEA_ALB    ! type of albedo
-  LOGICAL                           :: LPWG        ! flag for gust
-  LOGICAL                           :: LPRECIP     ! flag for precip correction
-  LOGICAL                           :: LPWEBB      ! flag for Webb correction
-  INTEGER                           :: NZ0         ! set to 0,1 or 2 according to Z0 formulation
-                                                   ! 0= ARPEGE / 1= Smith (1988) / 2= Direct
-  INTEGER                           :: NGRVWAVES   ! set to 0,1 or 2 according to the 
-                                                   ! gravity waves model used in coare30_flux
-  LOGICAL                           :: LWAVEWIND    ! wave parameters computed from wind only
-  REAL                              :: XICHCE      ! CE coef calculation for ECUME
-  LOGICAL                           :: LPERTFLUX   ! flag for stochastic flux perturbation
-!
-! Sea/Ocean:
-!
-  REAL, POINTER, DIMENSION(:) :: XSST    ! sea surface temperature
-  REAL, POINTER, DIMENSION(:) :: XSSS    ! sea surface salinity
-  REAL, POINTER, DIMENSION(:) :: XHS     ! significant wave height
-  REAL, POINTER, DIMENSION(:) :: XTP     ! wave peak period
-  REAL, POINTER, DIMENSION(:) :: XTICE   ! sea ice temperature
-  REAL, POINTER, DIMENSION(:) :: XSIC    ! sea ice concentration ( constraint for seaice scheme )
-  REAL, POINTER, DIMENSION(:) :: XSST_INI! initial sea surface temperature
-  REAL, POINTER, DIMENSION(:) :: XZ0     ! roughness length
-  REAL, POINTER, DIMENSION(:) :: XZ0H    ! roughness length for heat
-  REAL, POINTER, DIMENSION(:) :: XEMIS   ! emissivity
-  REAL, POINTER, DIMENSION(:) :: XDIR_ALB! direct albedo
-  REAL, POINTER, DIMENSION(:) :: XSCA_ALB! diffuse albedo
-  REAL, POINTER, DIMENSION(:) :: XICE_ALB! sea-ice albedo from seaice model (ESM or embedded)
-  REAL, POINTER, DIMENSION(:) :: XUMER   ! U component of sea current (for ESM coupling)
-  REAL, POINTER, DIMENSION(:) :: XVMER   ! V component of sea current (for ESM coupling)
-!
-  REAL, POINTER, DIMENSION(:,:) :: XSST_MTH! monthly sea surface temperature (precedent, current and next)
-  REAL, POINTER, DIMENSION(:,:) :: XSSS_MTH! monthly sea surface salinity    (precedent, current and next)
-  REAL, POINTER, DIMENSION(:,:) :: XSIC_MTH! monthly sea ice cover           (precedent, current and next)
-  REAL, POINTER, DIMENSION(:,:) :: XSIT_MTH! monthly sea ice thickness       (precedent, current and next)
-  REAL, POINTER, DIMENSION(:)   :: XFSIC   ! nudging (or forcing) sea ice cover
-  REAL, POINTER, DIMENSION(:)   :: XFSIT   ! nudging sea ice thickness
-!
-  REAL, POINTER, DIMENSION(:) :: XCHARN  ! Charnock coefficient (for ESM coupling)
-!
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_WIND ! 10m wind speed for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_FWSU ! zonal wind stress for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_FWSV ! meridian wind stress for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_SNET ! Solar net heat flux
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_HEAT ! Non solar net heat flux
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_EVAP ! Evaporation for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_RAIN ! Rainfall for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_EVPR ! Evaporatrion - Rainfall for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_SNOW ! Snowfall for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_FWSM ! wind stress for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEA_PRES ! Surface pressure for ESM coupling
-!  
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEAICE_SNET ! Solar net heat flux for ESM coupling
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEAICE_HEAT ! Non solar net heat flux
-  REAL, POINTER, DIMENSION(:) :: XCPL_SEAICE_EVAP ! Ice sublimation for ESM coupling
-!
-  REAL, POINTER, DIMENSION(:) :: XPERTFLUX     ! Stochastic flux perturbation pattern
-!
-! Sea-ice :
-!
-  TYPE(T_GLT)                           :: TGLT ! Sea-ice state , diagnostics and auxilliaries
-                                             ! for the case of embedded Gelato Seaice model
-!
-! Date:
-!
-  TYPE (DATE_TIME)                      :: TTIME   ! current date and time
-  TYPE (DATE_TIME)                      :: TZTIME  
-  LOGICAL                               :: LTZTIME_DONE
-  INTEGER                               :: JSX  
-!
-! Time-step:
-!
-  REAL                                  :: XTSTEP  ! time step
-!
-  REAL                                  :: XOUT_TSTEP  ! output writing time step
-!
-!
-!
-END TYPE SEAFLUX_t
-
-
-
-CONTAINS
-
-!
-
-
-
-
-SUBROUTINE SEAFLUX_INIT(YSEAFLUX)
-TYPE(SEAFLUX_t), INTENT(INOUT) :: YSEAFLUX
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-IF (LHOOK) CALL DR_HOOK("MODD_SEAFLUX_N:SEAFLUX_INIT",0,ZHOOK_HANDLE)
-  NULLIFY(YSEAFLUX%XZS)
-  NULLIFY(YSEAFLUX%XCOVER)
-  NULLIFY(YSEAFLUX%LCOVER)
-  NULLIFY(YSEAFLUX%XSEABATHY)
-  NULLIFY(YSEAFLUX%XSST)
-  NULLIFY(YSEAFLUX%XSSS)
-  NULLIFY(YSEAFLUX%XSIC)
-  NULLIFY(YSEAFLUX%XHS)
-  NULLIFY(YSEAFLUX%XTP)
-  NULLIFY(YSEAFLUX%XTICE)
-  NULLIFY(YSEAFLUX%XSST_INI)
-  NULLIFY(YSEAFLUX%XZ0)
-  NULLIFY(YSEAFLUX%XZ0H)
-  NULLIFY(YSEAFLUX%XEMIS)
-  NULLIFY(YSEAFLUX%XDIR_ALB)
-  NULLIFY(YSEAFLUX%XSCA_ALB)
-  NULLIFY(YSEAFLUX%XICE_ALB)
-  NULLIFY(YSEAFLUX%XUMER)
-  NULLIFY(YSEAFLUX%XVMER)
-  NULLIFY(YSEAFLUX%XSST_MTH)
-  NULLIFY(YSEAFLUX%XSSS_MTH)
-  NULLIFY(YSEAFLUX%XSIC_MTH)
-  NULLIFY(YSEAFLUX%XSIT_MTH)
-  NULLIFY(YSEAFLUX%XFSIC)
-  NULLIFY(YSEAFLUX%XFSIT)
-  NULLIFY(YSEAFLUX%XCPL_SEA_WIND)
-  NULLIFY(YSEAFLUX%XCPL_SEA_FWSU)
-  NULLIFY(YSEAFLUX%XCPL_SEA_FWSV)
-  NULLIFY(YSEAFLUX%XCPL_SEA_SNET)
-  NULLIFY(YSEAFLUX%XCPL_SEA_HEAT)
-  NULLIFY(YSEAFLUX%XCPL_SEA_EVAP)
-  NULLIFY(YSEAFLUX%XCPL_SEA_RAIN)
-  NULLIFY(YSEAFLUX%XCPL_SEA_EVPR)
-  NULLIFY(YSEAFLUX%XCPL_SEA_SNOW)
-  NULLIFY(YSEAFLUX%XCPL_SEA_FWSM)
-  NULLIFY(YSEAFLUX%XCPL_SEA_PRES)
-  NULLIFY(YSEAFLUX%XCPL_SEAICE_SNET)
-  NULLIFY(YSEAFLUX%XCPL_SEAICE_HEAT)
-  NULLIFY(YSEAFLUX%XCPL_SEAICE_EVAP)
-  NULLIFY(YSEAFLUX%XPERTFLUX)
-YSEAFLUX%LSBL=.FALSE.
-YSEAFLUX%LHANDLE_SIC=.FALSE.
-YSEAFLUX%CSEAICE_SCHEME='NONE  '
-YSEAFLUX%LINTERPOL_SST=.FALSE.
-YSEAFLUX%CINTERPOL_SST=' '
-YSEAFLUX%LINTERPOL_SSS=.FALSE.
-YSEAFLUX%CINTERPOL_SSS=' '
-YSEAFLUX%LINTERPOL_SIC=.FALSE.
-YSEAFLUX%CINTERPOL_SIC=' '
-YSEAFLUX%LINTERPOL_SIT=.FALSE.
-YSEAFLUX%CINTERPOL_SIT=' '
-YSEAFLUX%XFREEZING_SST=-1.8
-YSEAFLUX%XSIC_EFOLDING_TIME=0. ! means : no damping
-YSEAFLUX%XSIT_EFOLDING_TIME=0. ! means : no damping
-YSEAFLUX%XSEAICE_TSTEP=XUNDEF 
-YSEAFLUX%XCD_ICE_CST=0.
-YSEAFLUX%XSI_FLX_DRV=-20. 
-YSEAFLUX%CSEA_FLUX=' '
-YSEAFLUX%CSEA_ALB=' '
-YSEAFLUX%LPWG=.FALSE.
-YSEAFLUX%LPRECIP=.FALSE.
-YSEAFLUX%LPWEBB=.FALSE.
-YSEAFLUX%NZ0=0
-YSEAFLUX%NGRVWAVES=0
-YSEAFLUX%LWAVEWIND=.TRUE.
-YSEAFLUX%XICHCE=0.
-YSEAFLUX%LPERTFLUX=.FALSE.
-YSEAFLUX%JSX=0
-YSEAFLUX%LTZTIME_DONE = .FALSE.
-YSEAFLUX%XTSTEP=0.
-YSEAFLUX%XOUT_TSTEP=0.
-IF (LHOOK) CALL DR_HOOK("MODD_SEAFLUX_N:SEAFLUX_INIT",1,ZHOOK_HANDLE)
-END SUBROUTINE SEAFLUX_INIT
-
-
-END MODULE MODD_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/modd_sfx_oasis.F90 b/src/OASIS/SURFEX/modd_sfx_oasis.F90
deleted file mode 100644
index 3d8bc24bd..000000000
--- a/src/OASIS/SURFEX/modd_sfx_oasis.F90
+++ /dev/null
@@ -1,158 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!###############
-MODULE MODD_SFX_OASIS
-!###############
-!
-!!****  *MODD_SFX_OASIS - declaration of variable for SFX-OASIS coupling
-!!
-!!    PURPOSE
-!!    -------
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original       10/13
-!!      Modified       11/2014 : J. Pianezze - add wave coupling and creation of OASIS grids
-!!      S.Senesi       08/2015 : add CMODEL_NAME
-!!    10/2016 B. Decharme : bug surface/groundwater coupling
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-IMPLICIT NONE
-!
-!-------------------------------------------------------------------------------
-!
-! * Surfex - Oasis coupling general key :
-!
-!-------------------------------------------------------------------------------
-!
-LOGICAL             :: LOASIS   = .FALSE. ! To use oasis coupler or not
-!
-LOGICAL             :: LOASIS_GRID = .FALSE. ! To define oasis grids, areas and masks during simulation
-!
-CHARACTER(LEN=6)    :: CMODEL_NAME        ! component model name (i.e. name under which 
-!                                         ! Surfex is declared to Oasis)
-!
-REAL                :: XRUNTIME = 0.0     ! Total simulated time in oasis namcouple (s)
-!
-!-------------------------------------------------------------------------------
-!
-! * Land surface variables for Surfex - Oasis coupling
-!
-!-------------------------------------------------------------------------------
-!
-LOGICAL             :: LCPL_LAND    = .FALSE. ! Fields to/from surfex land area
-LOGICAL             :: LCPL_CALVING = .FALSE. ! Calving flux from surfex land area
-LOGICAL             :: LCPL_GW      = .FALSE. ! Fields to/from surfex land area to/from groundwater scheme
-LOGICAL             :: LCPL_FLOOD   = .FALSE. ! Fields to/from surfex land area to/from floodplains scheme
-!
-! Output variables
-!
-INTEGER             :: NRUNOFF_ID    ! Surface runoff id
-INTEGER             :: NDRAIN_ID     ! Drainage id
-INTEGER             :: NCALVING_ID   ! Calving flux id
-INTEGER             :: NSRCFLOOD_ID  ! Floodplains freshwater flux id
-!
-! Input variables
-!
-INTEGER             :: NWTD_ID       ! water table depth id
-INTEGER             :: NFWTD_ID      ! grid-cell fraction of water table rise id
-INTEGER             :: NFFLOOD_ID    ! Floodplains fraction id
-INTEGER             :: NPIFLOOD_ID   ! Potential flood infiltration id
-!
-!-------------------------------------------------------------------------------
-!
-! * Lake variables for Surfex - Oasis coupling
-!
-!-------------------------------------------------------------------------------
-!
-LOGICAL             :: LCPL_LAKE    = .FALSE. ! Fields to/from surfex lake area
-!
-! Output variables
-!
-INTEGER             :: NLAKE_EVAP_ID ! Evaporation id
-INTEGER             :: NLAKE_RAIN_ID ! Rainfall id
-INTEGER             :: NLAKE_SNOW_ID ! Snowfall id
-INTEGER             :: NLAKE_WATF_ID ! Freshwater id
-!
-!-------------------------------------------------------------------------------
-!
-! * Sea variables for Surfex - Oasis coupling 
-!
-!-------------------------------------------------------------------------------
-!
-LOGICAL             :: LCPL_SEA     = .FALSE. ! Fields to/from surfex sea/water area
-LOGICAL             :: LCPL_SEAICE  = .FALSE. ! Fields to/from surfex sea-ice area (e.g. GELATO 3D, ...)
-!
-! Sea Output variables
-!
-INTEGER             :: NSEA_FWSU_ID ! zonal wind stress id
-INTEGER             :: NSEA_FWSV_ID ! meridian wind stress id
-INTEGER             :: NSEA_HEAT_ID ! Non solar net heat flux id
-INTEGER             :: NSEA_SNET_ID ! Solar net heat flux id
-INTEGER             :: NSEA_WIND_ID ! 10m wind speed id
-INTEGER             :: NSEA_FWSM_ID ! wind stress id
-INTEGER             :: NSEA_EVAP_ID ! Evaporation id
-INTEGER             :: NSEA_RAIN_ID ! Rainfall id
-INTEGER             :: NSEA_SNOW_ID ! Snowfall id
-INTEGER             :: NSEA_EVPR_ID ! Evap.-Precip. id
-INTEGER             :: NSEA_WATF_ID ! Freshwater id
-INTEGER             :: NSEA_PRES_ID ! Surface pressure id
-!
-! Sea-ice Output variables
-!
-INTEGER             :: NSEAICE_HEAT_ID ! Sea-ice non solar net heat flux id
-INTEGER             :: NSEAICE_SNET_ID ! Sea-ice solar net heat flux id
-INTEGER             :: NSEAICE_EVAP_ID ! Sea-ice sublimation id
-!
-! Sea Input variables
-!
-INTEGER             :: NSEA_SST_ID ! Sea surface temperature id
-INTEGER             :: NSEA_UCU_ID ! Sea u-current stress id
-INTEGER             :: NSEA_VCU_ID ! Sea v-current stress id
-!
-! Sea-ice Input variables
-!
-INTEGER             :: NSEAICE_SIT_ID  ! Sea-ice Temperature id
-INTEGER             :: NSEAICE_CVR_ID  ! Sea-ice cover id
-INTEGER             :: NSEAICE_ALB_ID  ! Sea-ice albedo id
-!
-!-------------------------------------------------------------------------------
-!
-! * Wave variables for Surfex - Oasis coupling 
-!
-!-------------------------------------------------------------------------------
-!
-LOGICAL             :: LCPL_WAVE    = .FALSE. ! Fields to/from surfex wave area
-!
-! Wave Output variables
-!
-INTEGER             :: NWAVE_U10_ID ! 10m u-wind speed id
-INTEGER             :: NWAVE_V10_ID ! 10m v-wind speed id
-!
-! Wave Input variables
-!
-INTEGER             :: NWAVE_CHA_ID ! Charnock coefficient id
-INTEGER             :: NWAVE_UCU_ID ! Wave u-current velocity id
-INTEGER             :: NWAVE_VCU_ID ! Wave v-current velocity id
-INTEGER             :: NWAVE_HS_ID  ! Significant wave height id
-INTEGER             :: NWAVE_TP_ID  ! Peak period id
-!
-!-------------------------------------------------------------------------------
-!
-END MODULE MODD_SFX_OASIS
diff --git a/src/OASIS/SURFEX/mode_read_netcdf_mercator.F90 b/src/OASIS/SURFEX/mode_read_netcdf_mercator.F90
deleted file mode 100644
index ad51a19ab..000000000
--- a/src/OASIS/SURFEX/mode_read_netcdf_mercator.F90
+++ /dev/null
@@ -1,1528 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!!
-!!      Modified    09/2013 : S. Senesi : adapt READ_NETCDF_SST to read 2D fields other than SST
-!!
-MODULE MODE_READ_NETCDF_MERCATOR
-!!!=============================================================================
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source 
-!!                                        ! + correction of 2 bugs
-!-------------------------------------------------------------------------------
-!
-!
-USE MODI_ABOR1_SFX
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-CONTAINS
-!-------------------------------------------------------------------
-!-------------------------------------------------------------------
-!     ####################
-      SUBROUTINE HANDLE_ERR_MER(status,line)
-!     ####################
-USE NETCDF
-!
-IMPLICIT NONE
-INTEGER, INTENT(IN)           :: status
- CHARACTER(LEN=80), INTENT(IN) :: line
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:HANDLE_ERR_MER',0,ZHOOK_HANDLE)
-IF (status /= NF90_NOERR) THEN
-  CALL ABOR1_SFX('MODE_READ_NETCDF_MERCATOR: HANDLE_ERR_MER')
-END IF
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:HANDLE_ERR_MER',1,ZHOOK_HANDLE)
-END SUBROUTINE HANDLE_ERR_MER
-!-------------------------------------------------------------------
-!-------------------------------------------------------------------
-!     ####################
-      SUBROUTINE GET1DCDF(KCDF_ID,IDVAR,PMISSVALUE,PVALU1D)
-!     ####################
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
-INTEGER,INTENT(IN) :: KCDF_ID !netcdf file identifiant
-INTEGER,INTENT(IN) :: IDVAR   !variable to read identifiant
-REAL, INTENT(OUT) ::  PMISSVALUE !undefined value
-REAL,DIMENSION(:),INTENT(OUT) :: PVALU1D !value array
-!
-integer :: status
-character(len=80) :: HACTION
-integer,save :: NDIMS=1
-integer :: KVARTYPE
-integer,DIMENSION(:),ALLOCATABLE :: NVARDIMID,NVARDIMLEN
-character(len=80),DIMENSION(:),ALLOCATABLE :: NVARDIMNAM
-integer :: JLOOP
-integer :: NGATTS   
-integer, dimension(1) :: NDIMID
-character(len=80),DIMENSION(:),ALLOCATABLE :: HNAME
-REAL,DIMENSION(:),ALLOCATABLE :: ZVALU1D !value array
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:GET1DCDF',0,ZHOOK_HANDLE)
-PMISSVALUE=-9999.9
-ALLOCATE(NVARDIMID (NDIMS))
-ALLOCATE(NVARDIMLEN(NDIMS))
-ALLOCATE(NVARDIMNAM(NDIMS))
-NVARDIMID (:)=0
-NVARDIMLEN(:)=0
-NVARDIMNAM(:)=' '
-!
-HACTION='get variable type'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,XTYPE=KVARTYPE)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-status=nf90_inquire_variable(KCDF_ID,IDVAR,DIMIDS=NDIMID)
-HACTION='get variable dimensions name'
-status=nf90_inquire_dimension(KCDF_ID,NDIMID(NDIMS),NAME=NVARDIMNAM(NDIMS))
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-HACTION='get variable dimensions length'
-status=nf90_inquire_dimension(KCDF_ID,NDIMID(NDIMS),LEN=NVARDIMLEN(NDIMS))
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!     &'has a length of',NVARDIMLEN(NDIMS)
-!!
-HACTION='get attributs'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,NATTS=NGATTS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-allocate(hname(1:NGATTS))
-!
-ALLOCATE(ZVALU1D(1:NVARDIMLEN(NDIMS)))
-ZVALU1D=0.
-!
-IF (KVARTYPE>=5) then
-  HACTION='get variable values (1D)'
-  status=nf90_get_var(KCDF_ID,IDVAR,ZVALU1D(:))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ENDIF
-!
-PVALU1D(:)=ZVALU1D(:)
-!
-IF (ALLOCATED(ZVALU1D  ))  DEALLOCATE(ZVALU1D)
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:GET1DCDF',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE GET1DCDF
-!-------------------------------------------------------------------
-!-------------------------------------------------------------------
-!     ####################
-      SUBROUTINE GET2DCDF(KCDF_ID,IDVAR,PDIM1,HDIM1NAME,PDIM2,HDIM2NAME,&
-             PMISSVALUE,PVALU2D)  
-!     ####################
-USE MODD_SURF_PAR,         ONLY : XUNDEF
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
-INTEGER,INTENT(IN) :: KCDF_ID !netcdf file identifiant
-INTEGER,INTENT(IN) :: IDVAR   !variable to read identifiant
-REAL,DIMENSION(:),INTENT(OUT) :: PDIM1,PDIM2 !dimensions for PVALU2D array
- CHARACTER(len=80),INTENT(OUT) :: HDIM1NAME,HDIM2NAME     !dimensions names
-REAL, INTENT(OUT) :: PMISSVALUE
-REAL,DIMENSION(:,:),INTENT(OUT) :: PVALU2D !value array
-!
-integer :: status
-character(len=80) :: HACTION
-integer,save :: NDIMS=2
-integer :: KVARTYPE
-integer,DIMENSION(:),ALLOCATABLE :: NVARDIMID,NVARDIMLEN
-character(len=80),DIMENSION(:),ALLOCATABLE :: NVARDIMNAM
-integer :: JLOOP2, JLOOP, J1, J2
-integer :: NGATTS   
-character(len=80),DIMENSION(:),ALLOCATABLE :: HNAME
-real :: ZMISS1,ZMISS2
-real :: ZSCFA, ZOFFS
-REAL,DIMENSION(:,:),ALLOCATABLE :: ZVALU2D !value array
-INTEGER,DIMENSION(:,:),ALLOCATABLE :: IVALU2D
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:GET2DCDF',0,ZHOOK_HANDLE)
-PMISSVALUE=-9999.9 
-ALLOCATE(NVARDIMID (NDIMS))
-ALLOCATE(NVARDIMLEN(NDIMS))
-ALLOCATE(NVARDIMNAM(NDIMS))
-NVARDIMID (:)=0
-NVARDIMLEN(:)=0
-NVARDIMNAM(:)=' '
-!
-HACTION='get variable type'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,XTYPE=KVARTYPE)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-HACTION='get variable dimensions identifiant'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,DIMIDS=NVARDIMID)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-HACTION='get attributs'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,NATTS=NGATTS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-allocate(hname(1:NGATTS))
-!
-ZSCFA=1.
-ZOFFS=0.
-DO JLOOP=1,NGATTS
-  status=nf90_inq_attname(KCDF_ID,IDVAR,JLOOP,hname(JLOOP))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  if (TRIM(hname(JLOOP))=='missing_value') then
-    HACTION='get missing value'
-    status=nf90_get_att(KCDF_ID,IDVAR,"missing_value",PMISSVALUE)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  else
-    if (TRIM(hname(JLOOP))=='_FillValue') then
-      HACTION='get _FillValue'
-      status=nf90_get_att(KCDF_ID,IDVAR,"_FillValue",PMISSVALUE)
-      if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    endif    
-  endif
-  if (TRIM(hname(JLOOP))=='scale_factor') then
-    HACTION='get scale factor'
-    status=nf90_get_att(KCDF_ID,IDVAR,"scale_factor",ZSCFA)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  endif   
-  if (TRIM(hname(JLOOP))=='add_offset') then
-    HACTION='get offset'
-    status=nf90_get_att(KCDF_ID,IDVAR,"add_offset",ZOFFS)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  endif    
-ENDDO
-!
-!
-DO JLOOP2=1,NDIMS
-  HACTION='get variable dimensions name'
-  status=nf90_inquire_dimension(KCDF_ID,NVARDIMID(JLOOP2),NAME=NVARDIMNAM(JLOOP2))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  HACTION='get variable dimensions length'
-  status=nf90_inquire_dimension(KCDF_ID,NVARDIMID(JLOOP2),LEN=NVARDIMLEN(JLOOP2))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ENDDO
-! 
-IF (KVARTYPE>=5) then
-  ALLOCATE(ZVALU2D(1:NVARDIMLEN(1),1:NVARDIMLEN(2)))
-  ZVALU2D=0.        
-  HACTION='get variable values (2D)'
-  status=nf90_get_var(KCDF_ID,IDVAR,ZVALU2D(:,:))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ELSE
-  ALLOCATE(IVALU2D(1:NVARDIMLEN(1),1:NVARDIMLEN(2)))
-  IVALU2D=0.         
-  HACTION='get variable values (2D)'
-  status=nf90_get_var(KCDF_ID,IDVAR,IVALU2D(:,:))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)  
-ENDIF
-PVALU2D(:,:)=XUNDEF
-DO J1=1,NVARDIMLEN(1)
-  DO J2=1,NVARDIMLEN(2)
-    IF (KVARTYPE>=5) THEN
-      IF (ZVALU2D(J1,J2)/=PMISSVALUE) PVALU2D(J1,J2)=ZVALU2D(J1,J2)*ZSCFA+ZOFFS
-    ELSE
-      IF (ZVALU2D(J1,J2)/=PMISSVALUE) PVALU2D(J1,J2)=IVALU2D(J1,J2)*ZSCFA+ZOFFS
-    ENDIF
-  ENDDO
-ENDDO
-!
- CALL GET1DCDF(KCDF_ID,NVARDIMID(1),ZMISS1,PDIM1)
- CALL GET1DCDF(KCDF_ID,NVARDIMID(2),ZMISS2,PDIM2)
-HDIM1NAME=NVARDIMNAM(1)
-HDIM2NAME=NVARDIMNAM(2)
-IF (ALLOCATED(ZVALU2D  ))  DEALLOCATE(ZVALU2D)
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:GET2DCDF',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE GET2DCDF
-!-------------------------------------------------------------------
-!-------------------------------------------------------------------
-!     ####################
-      SUBROUTINE GET3DCDF(KCDF_ID,IDVAR,PDIM1,HDIM1NAME,PDIM2,HDIM2NAME,&
-             PDIM3,HDIM3NAME,PMISSVALUE,PVALU3D)  
-!     ####################
-USE MODD_SURF_PAR,         ONLY : XUNDEF
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
-INTEGER,INTENT(IN) :: KCDF_ID !netcdf file identifiant
-INTEGER,INTENT(IN) :: IDVAR   !variable to read identifiant
-REAL,DIMENSION(:),INTENT(OUT) :: PDIM1,PDIM2,PDIM3 !dimensions for PVALU2D array
- CHARACTER(len=80),INTENT(OUT) :: HDIM1NAME,HDIM2NAME,HDIM3NAME    !dimensions names
-REAL, INTENT(OUT) :: PMISSVALUE
-REAL,DIMENSION(:,:,:),INTENT(OUT) :: PVALU3D !value array
-!
-integer :: status
-character(len=80) :: HACTION
-integer,save :: NDIMS=3
-integer :: KVARTYPE
-integer,DIMENSION(:),ALLOCATABLE :: NVARDIMID,NVARDIMLEN
-character(len=80),DIMENSION(:),ALLOCATABLE :: NVARDIMNAM
-integer :: JLOOP2, JLOOP
-integer :: J1,J2,J3
-integer :: NGATTS   
-character(len=80),DIMENSION(:),ALLOCATABLE :: HNAME
-real :: ZMISS1,ZMISS2,ZMISS3
-real :: ZSCFA, ZOFFS
-REAL,DIMENSION(:,:,:),ALLOCATABLE :: ZVALU3D !value array
-INTEGER,DIMENSION(:,:,:),ALLOCATABLE :: IVALU3D
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:GET3DCDF',0,ZHOOK_HANDLE)
-PMISSVALUE=-9999.9 
-ALLOCATE(NVARDIMID (NDIMS))
-ALLOCATE(NVARDIMLEN(NDIMS))
-ALLOCATE(NVARDIMNAM(NDIMS))
-NVARDIMID (:)=0
-NVARDIMLEN(:)=0
-NVARDIMNAM(:)=' '
-!
-HACTION='get variable type'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,XTYPE=KVARTYPE)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-HACTION='get variable dimensions identifiant'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,DIMIDS=NVARDIMID)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-HACTION='get attributs'
-status=nf90_inquire_variable(KCDF_ID,IDVAR,NATTS=NGATTS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-allocate(hname(1:NGATTS))
-!
-ZSCFA=1.
-ZOFFS=0.
-DO JLOOP=1,NGATTS
-  status=nf90_inq_attname(KCDF_ID,IDVAR,JLOOP,hname(JLOOP))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  if (TRIM(hname(JLOOP))=='missing_value') then
-    HACTION='get missing value'
-    status=nf90_get_att(KCDF_ID,IDVAR,"missing_value",PMISSVALUE)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  else
-    if (TRIM(hname(JLOOP))=='_FillValue') then
-      HACTION='get _FillValue'
-      status=nf90_get_att(KCDF_ID,IDVAR,"_FillValue",PMISSVALUE)
-      if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    endif
-  endif
-  if (TRIM(hname(JLOOP))=='scale_factor') then
-    HACTION='get scale factor'
-    status=nf90_get_att(KCDF_ID,IDVAR,"scale_factor",ZSCFA)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  endif  
-  if (TRIM(hname(JLOOP))=='add_offset') then
-    HACTION='get offset'
-    status=nf90_get_att(KCDF_ID,IDVAR,"add_offset",ZOFFS)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  endif 
-ENDDO
-!
-!
-DO JLOOP2=1,NDIMS
-  HACTION='get variable dimensions name'
-  status=nf90_inquire_dimension(KCDF_ID,NVARDIMID(JLOOP2),NAME=NVARDIMNAM(JLOOP2))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  HACTION='get variable dimensions length'
-  status=nf90_inquire_dimension(KCDF_ID,NVARDIMID(JLOOP2),LEN=NVARDIMLEN(JLOOP2))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ENDDO
-! 
-IF (KVARTYPE>=5) then
-  ALLOCATE(ZVALU3D(1:NVARDIMLEN(1),1:NVARDIMLEN(2),1:NVARDIMLEN(3)))
-  ZVALU3D=0.        
-  HACTION='get variable values (3D)'
-  status=nf90_get_var(KCDF_ID,IDVAR,ZVALU3D(:,:,:))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ELSE
-  ALLOCATE(IVALU3D(1:NVARDIMLEN(1),1:NVARDIMLEN(2),1:NVARDIMLEN(3)))
-  IVALU3D=0.         
-  HACTION='get variable values (3D)'
-  status=nf90_get_var(KCDF_ID,IDVAR,IVALU3D(:,:,:))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ENDIF
-!
-PVALU3D(:,:,:)=XUNDEF
-DO J1=1,NVARDIMLEN(1)
-  DO J2=1,NVARDIMLEN(2)
-    DO J3=1,NVARDIMLEN(3)
-      IF (KVARTYPE>=5) THEN
-        IF (ZVALU3D(J1,J2,J3)/=PMISSVALUE) PVALU3D(J1,J2,J3)=ZVALU3D(J1,J2,J3)*ZSCFA+ZOFFS
-      ELSE
-        IF (IVALU3D(J1,J2,J3)/=PMISSVALUE) PVALU3D(J1,j2,J3)=IVALU3D(J1,J2,J3)*ZSCFA+ZOFFS
-      ENDIF
-    ENDDO
-  ENDDO
-ENDDO
-!
- CALL GET1DCDF(KCDF_ID,NVARDIMID(1),ZMISS1,PDIM1)
- CALL GET1DCDF(KCDF_ID,NVARDIMID(2),ZMISS2,PDIM2)
- CALL GET1DCDF(KCDF_ID,NVARDIMID(3),ZMISS3,PDIM3)
-HDIM1NAME=NVARDIMNAM(1)
-HDIM2NAME=NVARDIMNAM(2)
-HDIM3NAME=NVARDIMNAM(3)
-IF (ALLOCATED(ZVALU3D  ))  DEALLOCATE(ZVALU3D)
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:GET3DCDF',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE GET3DCDF
-!--------------------------------------------------------------------
-!-------------------------------------------------------------------
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_DIM_CDF(HFILENAME,HNCVARNAME,KDIM)
-!     ####################
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-INTEGER,           INTENT(OUT):: KDIM        ! value of dimension to get
-!
-integer :: status
-integer :: kcdf_id
-integer :: NBVARS
-character(len=80) :: HACTION
-character(len=80),DIMENSION(:),ALLOCATABLE :: YVARNAME
-integer ::JLOOP1,JLOOP
-integer ::ID_VARTOGET,ID_VARTOGET1,ID_VARTOGET2
-integer ::NVARDIMS
-INTEGER, DIMENSION(1) :: NDIMID
-integer,DIMENSION(2) ::NLEN2D, NDIMID2D
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-!*    1.      Open the netcdf file 
-!             --------------------
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_DIM_CDF',0,ZHOOK_HANDLE)
-HACTION='open netcdf'
-status=NF90_OPEN(HFILENAME,nf90_nowrite,kcdf_id)
-if (status/=NF90_NOERR) then 
-  CALL HANDLE_ERR_MER(status,HACTION)
-endif
-!
-!-----------
-!
-!*    2.      get the number of variables in netcdf file 
-!             ------------------------------------------
-HACTION='get number of variables'
-status=NF90_INQUIRE(kcdf_id,NVARIABLES=NBVARS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-ALLOCATE(YVARNAME(NBVARS))
-!
-!-----------
-!
-!*    3.      get the variables names in netcdf file 
-!             --------------------------------------
-ID_VARTOGET1=0
-ID_VARTOGET2=0
-DO JLOOP1=1,NBVARS
-  HACTION='get variables  names'
-  status=NF90_INQUIRE_VARIABLE(kcdf_id,JLOOP1,NAME=YVARNAME(JLOOP1))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  if (YVARNAME(JLOOP1)==HNCVARNAME) then
-    ID_VARTOGET1=JLOOP1
-  endif
-  if (YVARNAME(JLOOP1)/=HNCVARNAME) then
-    if((LGT(TRIM(YVARNAME(JLOOP1)),TRIM(HNCVARNAME))).AND.&
-           (SCAN(TRIM(YVARNAME(JLOOP1)),TRIM(HNCVARNAME))==1)) then  
-      ID_VARTOGET2=JLOOP1
-    endif
-  endif
-ENDDO
-if (ID_VARTOGET1/=0) then
-  ID_VARTOGET=ID_VARTOGET1
-else
-  ID_VARTOGET=ID_VARTOGET2
-endif
-if (ID_VARTOGET==0) then
-  HACTION='close netcdf'
-  status=nf90_close(kcdf_id)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  CALL ABOR1_SFX('MODE_READ_NETCDF_MERCATOR: READ_DIM_CDF')
-endif
-!-----------
-!
-!*    4.      get the total dimension of HNCVARNAME 
-!             -------------------------------------
-!
-!     4.1      get the variable dimensions number
-!             -----------------------------------
-!
-HACTION='get variable dimensions number'
-status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,NDIMS=NVARDIMS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-!     4.2      get the variable dimensions length
-!              ----------------------------------
-SELECT CASE (NVARDIMS)
-!CAS 1D
-  CASE (1) 
-    HACTION='get variable dimensions length'
-    status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NDIMID)
-    status=nf90_inquire_dimension(kcdf_id,NDIMID(1),LEN=KDIM)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-!CAS 2D
-  CASE (2)
-    KDIM=1
-    status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NDIMID2D)
-    DO JLOOP=1,NVARDIMS
-      HACTION='get variable dimensions length'
-      status=nf90_inquire_dimension(kcdf_id,NDIMID2D(JLOOP),LEN=NLEN2D(JLOOP))
-      if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-      KDIM=KDIM*NLEN2D(JLOOP)
-    ENDDO
-END SELECT
-!-----------
-!*    10.     Close the netcdf file 
-!             ---------------------
-HACTION='close netcdf'
-status=nf90_close(kcdf_id)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-!-----------
-!*    11.     Deallocate 
-!             ----------
-IF (ALLOCATED(YVARNAME     ))  DEALLOCATE(YVARNAME)
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_DIM_CDF',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE READ_DIM_CDF
-!-------------------------------------------------------------------
-!-------------------------------------------------------------------
-!     ####################
-       SUBROUTINE PREP_NETCDF_GRID(HFILENAME,HNCVARNAME)
-!     ####################
-!
-USE MODD_SURFEX_MPI, ONLY : WLOG_MPI, NRANK, NPIO, NPROC, NCOMM
-USE MODD_HORIBL, ONLY : LGLOBLON, LGLOBS, LGLOBN, XILO1H, XILO2H, NINLOH, &
-                        XLA, XOLA, XOLO, NP, XLOPH, NO
-USE MODD_PREP,       ONLY : XLAT_OUT, XLON_OUT, LINTERP, XX_OUT, XY_OUT
-!
-USE MODD_GRID_LATLONREGUL
-USE MODD_SURF_PAR
-!
-USE MODI_HORIBL_SURF_INIT
-USE MODI_HORIBL_SURF_COEF
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
-#ifdef SFX_MPI
-INCLUDE "mpif.h"
-#endif
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-!
-integer :: status
-integer :: kcdf_id
-integer :: INBVARS
-character(len=80) :: HACTION
-character(len=80),DIMENSION(:),ALLOCATABLE :: YVARNAME
-integer,DIMENSION(:),ALLOCATABLE :: NVARDIMID
-integer ::JLOOP1,JLOOP
-integer ::ID_VARTOGET,ID_VARTOGET1,ID_VARTOGET2
-integer ::INVARDIMS
-integer,DIMENSION(3) ::INDIMLEN
-character(LEN=80),DIMENSION(3) :: NDIMNAM
-integer :: IDIM
-integer :: INLON
-INTEGER :: IINLA, INO
-real :: ZZLAMISS,ZZLOMISS
-INTEGER :: INFOMPI
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:PREP_NETCDF_GRID',0,ZHOOK_HANDLE)
-NINLAT  =-NUNDEF
-NINDEPTH=-NUNDEF
-NILENGTH=-NUNDEF
-!
-XILAT1=XUNDEF
-XILON1=XUNDEF
-XILAT2=XUNDEF
-XILON2=XUNDEF
-!*    1.      Open the netcdf file 
-!             --------------------
-IF (NRANK==NPIO) THEN
-
-  HACTION='open netcdf'
-  status=NF90_OPEN(HFILENAME,nf90_nowrite,kcdf_id)
-  !write(0,*) 'identifiant de ',HFILENAME,'=',kcdf_id
-  if (status/=NF90_NOERR) then 
-    CALL HANDLE_ERR_MER(status,HACTION)
- !else
-  !   write(0,*) 'netcdf file opened: ',HFILENAME
-  endif
-  !
-  !-----------
-  !
-  !*    2.      get the number of variables in netcdf file 
-  !             ------------------------------------------
-  HACTION='get number of variables'
-  status=NF90_INQUIRE(kcdf_id,NVARIABLES=INBVARS)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !write(0,*) 'nb vars', INBVARS
-  ALLOCATE(YVARNAME(INBVARS))
-  !
-  !-----------
-  !
-  !*    3.      get the variables names in netcdf file 
-  !             --------------------------------------
-  ID_VARTOGET1=0
-  ID_VARTOGET2=0
-  DO JLOOP1=1,INBVARS
-    HACTION='get variables  names'
-    status=NF90_INQUIRE_VARIABLE(kcdf_id,JLOOP1,NAME=YVARNAME(JLOOP1))
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    !write(0,*) 'var',JLOOP1,' name: ',YVARNAME(JLOOP1)
-    if (YVARNAME(JLOOP1)==HNCVARNAME) then
-      !write(0,*) 'var',JLOOP1,' corresponding to variable required'
-      ID_VARTOGET1=JLOOP1
-    endif
-    if (YVARNAME(JLOOP1)/=HNCVARNAME) then
-      if((LGT(TRIM(YVARNAME(JLOOP1)),TRIM(HNCVARNAME))).AND.&
-             (SCAN(TRIM(YVARNAME(JLOOP1)),TRIM(HNCVARNAME))==1)) then  
-        !write(0,*) 'var',JLOOP1,YVARNAME(JLOOP1),' could correspond to variable required ?'
-        !write(0,*) HNCVARNAME,' is variable required; only ',YVARNAME(JLOOP1),' found'
-        ID_VARTOGET2=JLOOP1
-      endif
-    endif
-  ENDDO
-  DEALLOCATE(YVARNAME)
-  if (ID_VARTOGET1/=0) then
-    ID_VARTOGET=ID_VARTOGET1
-  else
-    ID_VARTOGET=ID_VARTOGET2
-  endif
-  !
-  if (ID_VARTOGET==0) then
-    HACTION='close netcdf'
-    status=nf90_close(kcdf_id)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  endif
-  !  
-ENDIF
-!
-IF (NPROC>1) THEN
-#ifdef SFX_MPI
-  CALL MPI_BCAST(ID_VARTOGET,KIND(ID_VARTOGET)/4,MPI_INTEGER,NPIO,NCOMM,INFOMPI)
-#endif
-ENDIF
-!
-if (ID_VARTOGET==0) then
-  IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:PREP_NETCDF_GRID',1,ZHOOK_HANDLE)
-  RETURN
-endif
-!
-NILENGTH=0
-!
-IF (NRANK==NPIO) THEN
-  !
-  !-----------
-  !
-  !*    4.      get the total dimension of HNCVARNAME 
-  !             -------------------------------------
-  !
-  !     4.1      get the variable dimensions number
-  !             -----------------------------------
-  !
-  HACTION='get variable dimensions number'
-  status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,NDIMS=INVARDIMS)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !write(0,*) 'variable dimensions number = ',INVARDIMS
-  ALLOCATE(NVARDIMID(INVARDIMS))
-  HACTION='get variable dimensions identifiant'
-  status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NVARDIMID)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !
-  !     4.2      get the variable dimensions length
-  !              ----------------------------------
-  SELECT CASE (INVARDIMS)
-  !CAS 1D
-    CASE (1) 
-      HACTION='get variable dimensions length'
-      status=nf90_inquire_dimension(kcdf_id,NVARDIMID(1),LEN=IDIM)
-      if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !
-  !CAS 2D,3D
-    CASE (2,3)
-      DO JLOOP=1,INVARDIMS
-        HACTION='get variable dimensions length'
-        status=nf90_inquire_dimension(kcdf_id,NVARDIMID(JLOOP),LEN=INDIMLEN(JLOOP))
-        if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-        HACTION='get variable dimensions names'
-        status=nf90_inquire_dimension(kcdf_id,NVARDIMID(JLOOP),NAME=NDIMNAM(JLOOP))
-        if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-        if ((NDIMNAM(JLOOP)=='lat').OR.(NDIMNAM(JLOOP)=='latitude')) then
-          NINLAT=INDIMLEN(JLOOP)
-          if (.not.allocated(XILATARRAY)) allocate(XILATARRAY(INDIMLEN(JLOOP)))
-          if (.not.allocated(NINLON)) allocate(NINLON(NINLAT))
-          CALL GET1DCDF(kcdf_id,NVARDIMID(JLOOP),ZZLAMISS,XILATARRAY(:))
-        endif
-        if ((NDIMNAM(JLOOP)=='lon').OR.(NDIMNAM(JLOOP)=='longitude')) then
-          INLON=INDIMLEN(JLOOP)
-          if (.not.allocated(XILONARRAY)) allocate(XILONARRAY(INDIMLEN(JLOOP)))
-          CALL GET1DCDF(kcdf_id,NVARDIMID(JLOOP),ZZLOMISS,XILONARRAY(:))
-        endif
-        if (NDIMNAM(JLOOP)=='depth') NINDEPTH=INDIMLEN(JLOOP)
-      ENDDO
-      NINLON(:)=INLON
-  END SELECT
-  !-----------
-  !*    10.     Close the netcdf file 
-  !             ---------------------
-  HACTION='close netcdf'
-  status=nf90_close(kcdf_id)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !write(0,*) 'OK: netcdf file closed: ',HFILENAME
-  !
-ENDIF
-!
-IF (NPROC>1) THEN
-#ifdef SFX_MPI
-  CALL MPI_BCAST(NINLAT,KIND(NINLAT)/4,MPI_INTEGER,NPIO,NCOMM,INFOMPI)
-  CALL MPI_BCAST(INLON,KIND(INLON)/4,MPI_INTEGER,NPIO,NCOMM,INFOMPI)
-  IF (NRANK/=NPIO) THEN
-    ALLOCATE(NINLON(NINLAT))
-    ALLOCATE(XILATARRAY(NINLAT))
-    ALLOCATE(XILONARRAY(INLON))
-  ENDIF
-  CALL MPI_BCAST(NINLON,SIZE(NINLON)*KIND(NINLON)/4,MPI_INTEGER,NPIO,NCOMM,INFOMPI)
-  CALL MPI_BCAST(XILATARRAY,SIZE(XILATARRAY)*KIND(XILATARRAY)/4,MPI_REAL,NPIO,NCOMM,INFOMPI)
-  CALL MPI_BCAST(XILONARRAY,SIZE(XILONARRAY)*KIND(XILONARRAY)/4,MPI_REAL,NPIO,NCOMM,INFOMPI)
-#endif 
-ENDIF
-!
-!-----------
-!GRID PARAM FOR HORIBL_SURF
-NILENGTH=0
-DO JLOOP1=1,NINLAT
-  NILENGTH = NILENGTH + NINLON(JLOOP1)
-ENDDO
-XILAT1=XILATARRAY(1)
-XILON1=XILONARRAY(1)
-XILAT2=XILATARRAY(SIZE(XILATARRAY))
-XILON2=XILONARRAY(SIZE(XILONARRAY))
-!
-!*    11.     Deallocate 
-!             ----------
-!
-IF (ALLOCATED(XLAT_OUT)) THEN
-  !
-  INO = SIZE(XLAT_OUT)
-  !
-  IF (ALLOCATED(NO)) DEALLOCATE(NO)
-  IF (ALLOCATED(XLA)) DEALLOCATE(XLA)
-  IF (ALLOCATED(XOLA)) DEALLOCATE(XOLA)
-  IF (ALLOCATED(XOLO)) DEALLOCATE(XOLO)
-  IF (ALLOCATED(NINLOH)) DEALLOCATE(NINLOH)
-
-  ALLOCATE(NO(INO,4))
-  ALLOCATE(XOLA(INO),XOLO(INO))
-  ALLOCATE(XLA(INO,4))
-  !
-  IINLA = NINLAT
-  ALLOCATE(NINLOH(IINLA+4))
-  CALL HORIBL_SURF_INIT(XILAT1,XILON1,XILAT2,XILON2,NINLAT,NINLON, &
-                        INO,XLON_OUT,XLAT_OUT,LINTERP,.FALSE.,LGLOBLON,&
-                        LGLOBN,LGLOBS,NO,NINLOH,XOLA,XOLO,XILO1H,&
-                        XILO2H,XLA,XILATARRAY)
-  !
-  IF (ALLOCATED(NP)) DEALLOCATE(NP)
-  IF (ALLOCATED(XLOPH)) DEALLOCATE(XLOPH)
-  ALLOCATE(NP(INO,12))
-  ALLOCATE(XLOPH(INO,12))
-  
-  IF (LGLOBS) IINLA = IINLA + 2
-  IF (LGLOBN) IINLA = IINLA + 2
-  CALL HORIBL_SURF_COEF(INO,LINTERP,LGLOBLON,XILO1H,XILO2H,XOLO,&
-                        NO,NINLOH(1:IINLA),NP,XLOPH)
-    !
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:PREP_NETCDF_GRID',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE PREP_NETCDF_GRID
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_Z1D_CDF(HFILENAME,HNCVARNAME,PVAL)
-!     ####################
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-REAL, DIMENSION(:), INTENT(OUT) :: PVAL      ! value to get
-!
-integer :: status
-integer :: kcdf_id
-integer :: NBVARS
-character(len=80) :: HACTION
-character(len=80),DIMENSION(:),ALLOCATABLE :: VARNAME
-integer ::JLOOP1
-integer ::ID_VARTOGET,ID_VARTOGET1,ID_VARTOGET2
-integer ::NVARDIMS
-INTEGER, DIMENSION(1) :: NDIMID
-integer ::NLEN
-real,DIMENSION(:),ALLOCATABLE   :: ZVALU
-real :: ZMISS
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-!*    1.      Open the netcdf file 
-!             --------------------
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_Z1D_CDF',0,ZHOOK_HANDLE)
-status=-9999
-kcdf_id=-9999
-HACTION='open netcdf'
-status=NF90_OPEN(HFILENAME,nf90_nowrite,kcdf_id)
-if (status/=NF90_NOERR) then 
-  CALL HANDLE_ERR_MER(status,HACTION)
-endif
-!-----------
-!*    2.      get the number of variables in netcdf file 
-!             ------------------------------------------
-HACTION='get number of variables'
-status=NF90_INQUIRE(kcdf_id,NVARIABLES=NBVARS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'nb vars', NBVARS
-ALLOCATE(VARNAME(NBVARS))
-!-----------
-!*    3.      get the variables names in netcdf file 
-!             --------------------------------------
-ID_VARTOGET1=0
-ID_VARTOGET2=0
-DO JLOOP1=1,NBVARS
-  HACTION='get variables  names'
-  status=NF90_INQUIRE_VARIABLE(kcdf_id,JLOOP1,NAME=VARNAME(JLOOP1))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  if (VARNAME(JLOOP1)==HNCVARNAME) then
-    ID_VARTOGET1=JLOOP1
-  endif
-  if (VARNAME(JLOOP1)/=HNCVARNAME) then
-    if((LGT(TRIM(VARNAME(JLOOP1)),TRIM(HNCVARNAME))).AND.&
-           (SCAN(TRIM(VARNAME(JLOOP1)),TRIM(HNCVARNAME))==1)) then  
-      ID_VARTOGET2=JLOOP1
-    endif
-  endif
-ENDDO
-if (ID_VARTOGET1/=0) then
-  ID_VARTOGET=ID_VARTOGET1
-else
-  ID_VARTOGET=ID_VARTOGET2
-endif
-if (ID_VARTOGET==0) then
-  HACTION='close netcdf'
-  status=nf90_close(kcdf_id)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  CALL ABOR1_SFX('MODE_READ_NETCDF_MERCATOR: READ_Z1D_CDF')
-endif
-!-----------
-!*    4.      get the variable in netcdf file 
-!             -------------------------------
-!     4.1      get the variable dimensions number
-!             -----------------------------------
-HACTION='get variable dimensions number'
-status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,NDIMS=NVARDIMS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-!     4.2      get the variable dimensions length and values
-!            ----------------------------------------------
-SELECT CASE (NVARDIMS)
-!CAS 1D
-  CASE (1) 
-    HACTION='get variable dimensions length'
-    status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NDIMID)
-    status=nf90_inquire_dimension(kcdf_id,NDIMID(1),LEN=NLEN)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    ALLOCATE(ZVALU(NLEN))
-    !write(0,*) 'call GET1DCDF'
-    CALL GET1DCDF(kcdf_id,ID_VARTOGET,ZMISS,ZVALU)
-    PVAL(:)=ZVALU(:)
-!CAS 2D
-  CASE (2)
-    write(0,*) 'YOU ARE TRYING TO READ A 2D FIELD FOR :', TRIM(HNCVARNAME)
-    CALL ABOR1_SFX('MODE_READ_NETCDF_MERCATOR: READ_Z1D_CDF')
-END SELECT
-!-----------
-!*    5.     Close the netcdf file 
-!             ---------------------
-HACTION='close netcdf'
-status=nf90_close(kcdf_id)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!-----------
-!*    6.     Deallocate 
-!             ----------
-IF (ALLOCATED(VARNAME     ))  DEALLOCATE(VARNAME)
-IF (ALLOCATED(ZVALU       ))  DEALLOCATE(ZVALU  )
-!!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_Z1D_CDF',1,ZHOOK_HANDLE)
-END SUBROUTINE READ_Z1D_CDF
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_LATLONVAL_CDF(HFILENAME,HNCVARNAME,PLON,PLAT,PVAL)
-!     ####################
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-REAL, DIMENSION(:), INTENT(OUT) :: PLON,PLAT ! Longitudes/latitudes in netcdf file 
-REAL, DIMENSION(:), INTENT(OUT) :: PVAL      ! value to get
-!
-integer :: status
-integer :: kcdf_id
-integer :: NBVARS
-character(len=80) :: HACTION
-character(len=80),DIMENSION(:),ALLOCATABLE :: VARNAME
-integer ::JLOOP1,JDIM1,JDIM2,JLOOP
-integer ::ID_VARTOGET,ID_VARTOGET1,ID_VARTOGET2
-integer ::NVARDIMS
-integer ::NLEN
-integer, dimension(1) :: NDIMID
-integer,DIMENSION(2) ::NLEN2D, NDIMID2D
-integer,DIMENSION(:),ALLOCATABLE :: NVARDIMID,NVARDIMLEN
-character(len=80),DIMENSION(:),ALLOCATABLE :: NVARDIMNAM
-real,DIMENSION(:),ALLOCATABLE   :: ZVALU
-real,DIMENSION(:,:),ALLOCATABLE :: ZVALU2D
-real :: ZMISS
-real,DIMENSION(:),ALLOCATABLE :: ZDIM1
-real,DIMENSION(:),ALLOCATABLE :: ZDIM2
-character(len=80) :: YDIM1NAME,YDIM2NAME
-integer :: ILONFOUND,ILATFOUND, IARG
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-!
-!
-!*    1.      Open the netcdf file 
-!             --------------------
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_LATLONVAL_CDF',0,ZHOOK_HANDLE)
-status=-9999
-kcdf_id=-9999
-HACTION='open netcdf'
-status=NF90_OPEN(HFILENAME,nf90_nowrite,kcdf_id)
-!write(0,*) 'status=',status
-!write(0,*) 'identifiant de ',HFILENAME,'=',kcdf_id
-if (status/=NF90_NOERR) then 
-  CALL HANDLE_ERR_MER(status,HACTION)
-!else
-!  write(0,*) 'netcdf file opened: ',HFILENAME
-endif
-!
-!-----------
-!
-!*    2.      get the number of variables in netcdf file 
-!             ------------------------------------------
-HACTION='get number of variables'
-status=NF90_INQUIRE(kcdf_id,NVARIABLES=NBVARS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'nb vars', NBVARS
-ALLOCATE(VARNAME(NBVARS))
-!
-!-----------
-!
-!*    3.      get the variables names in netcdf file 
-!             --------------------------------------
-ID_VARTOGET1=0
-ID_VARTOGET2=0
-DO JLOOP1=1,NBVARS
-  HACTION='get variables  names'
-  status=NF90_INQUIRE_VARIABLE(kcdf_id,JLOOP1,NAME=VARNAME(JLOOP1))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !write(0,*) 'var',JLOOP1,' name: ',VARNAME(JLOOP1)
-  if (VARNAME(JLOOP1)==HNCVARNAME) then
-    !write(0,*) 'var',JLOOP1,' corresponding to variable required'
-    ID_VARTOGET1=JLOOP1
-  endif
-  if (VARNAME(JLOOP1)/=HNCVARNAME) then
-    if((LGT(TRIM(VARNAME(JLOOP1)),TRIM(HNCVARNAME))).AND.&
-           (SCAN(TRIM(VARNAME(JLOOP1)),TRIM(HNCVARNAME))==1)) then  
-      !write(0,*) 'var',JLOOP1,VARNAME(JLOOP1),' could correspond to variable required ?'
-      !write(0,*) HNCVARNAME,' is variable required; only ',VARNAME(JLOOP1),' found'
-      ID_VARTOGET2=JLOOP1
-    endif
-  endif
-ENDDO
-if (ID_VARTOGET1/=0) then
-  ID_VARTOGET=ID_VARTOGET1
-else
-  ID_VARTOGET=ID_VARTOGET2
-endif
-if (ID_VARTOGET==0) then
-  HACTION='close netcdf'
-  status=nf90_close(kcdf_id)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  CALL ABOR1_SFX('MODE_READ_NETCDF_MERCATOR: READ_LATLONVAL_CDF')
-endif
-!-----------
-!
-!*    4.      get the variable in netcdf file 
-!             -------------------------------
-!
-!     4.1      get the variable dimensions number
-!             -----------------------------------
-!
-HACTION='get variable dimensions number'
-status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,NDIMS=NVARDIMS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'variable dimensions number = ',NVARDIMS
-!
-!     4.2      get the variable dimensions length and values
-!              ----------------------------------------------
-SELECT CASE (NVARDIMS)
-!CAS 1D
-  CASE (1) 
-    HACTION='get variable dimensions length'
-    status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NDIMID)
-    status=nf90_inquire_dimension(kcdf_id,NDIMID(1),LEN=NLEN)
-    if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    ALLOCATE(ZVALU(NLEN))
-    !write(0,*) 'call GET1DCDF'
-    CALL GET1DCDF(kcdf_id,ID_VARTOGET,ZMISS,ZVALU)
-    PVAL(:)=ZVALU(:)
-!CAS 2D
-  CASE (2)
-    status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NDIMID2D)
-    DO JLOOP=1,NVARDIMS
-      HACTION='get variable dimensions length'
-      status=nf90_inquire_dimension(kcdf_id,NDIMID2D(JLOOP),LEN=NLEN2D(JLOOP))
-      if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    ENDDO
-    ALLOCATE(ZVALU2D(NLEN2D(1),NLEN2D(2)))
-    ALLOCATE(ZDIM1(NLEN2D(1)))
-    ALLOCATE(ZDIM2(NLEN2D(2)))
-    !write(0,*) 'call GET2DCDF'
-    CALL GET2DCDF(kcdf_id,ID_VARTOGET,ZDIM1,YDIM1NAME,ZDIM2,YDIM2NAME,&
-           ZMISS,ZVALU2D)  
-    !write(0,*) 'YDIM1NAME: ',YDIM1NAME
-    !write(0,*) 'YDIM2NAME: ',YDIM2NAME
-    if ((YDIM1NAME=='lon').OR.(YDIM1NAME=='longitude')) ILONFOUND=1
-    if ((YDIM2NAME=='lon').OR.(YDIM2NAME=='longitude')) ILONFOUND=2
-    if ((YDIM1NAME=='lat').OR.(YDIM1NAME=='latitude'))  ILATFOUND=1
-    if ((YDIM2NAME=='lat').OR.(YDIM2NAME=='latitude'))  ILATFOUND=2
-    IARG=0
-!
-!     4.3      complete arrays
-!              ---------------
-    IF ((ILONFOUND==1).AND.(ILATFOUND==2)) then
-      !write(0,*) 'ILONFOUND',ILONFOUND,'ILATFOUND',ILATFOUND
-      DO JDIM1=1,SIZE(ZDIM1)
-        DO JDIM2=1,SIZE(ZDIM2)
-          IARG=IARG+1
-          PVAL(IARG)=ZVALU2D(JDIM1,JDIM2)
-          PLON(IARG)=ZDIM1(JDIM1)
-          PLAT(IARG)=ZDIM2(JDIM2)
-        ENDDO
-      ENDDO
-    ELSEIF ((ILONFOUND==2).AND.(ILATFOUND==1)) then
-      !write(0,*) 'ILONFOUND',ILONFOUND,'ILATFOUND',ILATFOUND
-      DO JDIM1=1,SIZE(ZDIM1)
-        DO JDIM2=1,SIZE(ZDIM2)
-          IARG=IARG+1
-          PVAL(IARG)=ZVALU2D(JDIM1,JDIM2)
-          PLAT(IARG)=ZDIM1(JDIM1)
-          PLON(IARG)=ZDIM2(JDIM2)
-        ENDDO
-      ENDDO
-    ELSE
-      write(0,*) '*****WARNING*****: incompatible dimensions to lat/lon/value arrays'
-    ENDIF
-!
-END SELECT
-!
-!
-!-----------
-!*    10.     Close the netcdf file 
-!             ---------------------
-HACTION='close netcdf'
-status=nf90_close(kcdf_id)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'OK: netcdf file closed: ',HFILENAME
-!
-!-----------
-!*    11.     Deallocate 
-!             ----------
-IF (ALLOCATED(VARNAME     ))  DEALLOCATE(VARNAME)
-IF (ALLOCATED(ZVALU       ))  DEALLOCATE(ZVALU  )
-IF (ALLOCATED(ZVALU2D     ))  DEALLOCATE(ZVALU2D)
-IF (ALLOCATED(ZDIM1       ))  DEALLOCATE(ZDIM1  )
-IF (ALLOCATED(ZDIM2       ))  DEALLOCATE(ZDIM2  )
-!
-!
-IF (ALLOCATED(NVARDIMID   ))  DEALLOCATE(NVARDIMID )
-IF (ALLOCATED(NVARDIMNAM  ))  DEALLOCATE(NVARDIMNAM)
-IF (ALLOCATED(NVARDIMLEN  ))  DEALLOCATE(NVARDIMLEN)
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_LATLONVAL_CDF',1,ZHOOK_HANDLE)
-END SUBROUTINE READ_LATLONVAL_CDF
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_LATLONDEPVAL_CDF(HFILENAME,HNCVARNAME,PLON,PLAT,PDEP,PVAL)
-!     ####################
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-REAL, DIMENSION(:), INTENT(OUT) :: PLON,PLAT ! Longitudes/latitudes in netcdf file 
-REAL, DIMENSION(:), INTENT(OUT) :: PDEP      ! depth in netcdf file
-REAL, DIMENSION(:,:), INTENT(OUT) :: PVAL      ! value to get
-!
-integer :: status
-integer :: kcdf_id
-integer :: NBVARS
-character(len=80) :: HACTION
-character(len=80),DIMENSION(:),ALLOCATABLE :: VARNAME
-integer ::JLOOP1,JDIM1,JDIM2,JDIM3,JLOOP
-!integer ::JLOOP2,JLOOP
-integer ::ID_VARTOGET,ID_VARTOGET1,ID_VARTOGET2
-integer ::NVARDIMS
-integer,DIMENSION(3) ::NLEN3D
-integer,DIMENSION(:),ALLOCATABLE :: NVARDIMID,NVARDIMLEN
-character(len=80),DIMENSION(:),ALLOCATABLE :: NVARDIMNAM
-real,DIMENSION(:,:,:),ALLOCATABLE :: ZVALU3D
-real :: ZMISS
-real,DIMENSION(:),ALLOCATABLE :: ZDIM1
-real,DIMENSION(:),ALLOCATABLE :: ZDIM2
-real,DIMENSION(:),ALLOCATABLE :: ZDIM3
-character(len=80) :: YDIM1NAME,YDIM2NAME,YDIM3NAME
-integer :: ILONFOUND,ILATFOUND,IDEPFOUND
-integer ::  IARG
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-!
-!
-!*    1.      Open the netcdf file 
-!             --------------------
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_LATLONDEPVAL_CDF',0,ZHOOK_HANDLE)
-HACTION='open netcdf'
-status=NF90_OPEN(HFILENAME,nf90_nowrite,kcdf_id)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'netcdf file opened: ',HFILENAME
-!
-!-----------
-!
-!*    2.      get the number of variables in netcdf file 
-!             ------------------------------------------
-HACTION='get number of variables'
-status=NF90_INQUIRE(kcdf_id,NVARIABLES=NBVARS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'nb vars', NBVARS
-ALLOCATE(VARNAME(NBVARS))
-!
-!-----------
-!
-!*    3.      get the variables names in netcdf file 
-!             --------------------------------------
-ID_VARTOGET1=0
-ID_VARTOGET2=0
-DO JLOOP1=1,NBVARS
-  HACTION='get variables  names'
-  status=NF90_INQUIRE_VARIABLE(kcdf_id,JLOOP1,NAME=VARNAME(JLOOP1))
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  !write(0,*) 'var',JLOOP1,' name: ',VARNAME(JLOOP1)
-  if (VARNAME(JLOOP1)==HNCVARNAME) then
-    !write(0,*) 'var',JLOOP1,' corresponding to variable required'
-    ID_VARTOGET1=JLOOP1
-  endif
-  if (VARNAME(JLOOP1)/=HNCVARNAME) then
-    if((LGT(TRIM(VARNAME(JLOOP1)),TRIM(HNCVARNAME))).AND.&
-           (SCAN(TRIM(VARNAME(JLOOP1)),TRIM(HNCVARNAME))==1)) then  
-      !write(0,*) 'var',JLOOP1,VARNAME(JLOOP1),' could correspond to variable required ?'
-      !write(0,*) HNCVARNAME,' is variable required; only ',VARNAME(JLOOP1),' found'
-      ID_VARTOGET2=JLOOP1
-    endif
-  endif
-ENDDO
-if (ID_VARTOGET1/=0) then
-  ID_VARTOGET=ID_VARTOGET1
-else
-  ID_VARTOGET=ID_VARTOGET2
-endif
-if (ID_VARTOGET==0) then
-  HACTION='close netcdf'
-  status=nf90_close(kcdf_id)
-  if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-  CALL ABOR1_SFX('MODE_READ_NETCDF_MERCATOR: READ_LATLONDEPVAL_CDF')
-endif
-!-----------
-!
-!*    4.      get the variable in netcdf file 
-!             -------------------------------
-!
-!     4.1      get the variable dimensions number
-!             -----------------------------------
-!
-HACTION='get variable dimensions number'
-status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,NDIMS=NVARDIMS)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'variable dimensions number = ',NVARDIMS
-ALLOCATE(NVARDIMID(NVARDIMS))
-HACTION='get variable dimensions identifiant'
-status=nf90_inquire_variable(kcdf_id,ID_VARTOGET,DIMIDS=NVARDIMID)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!
-!
-!     4.2      get the variable dimensions length and values
-!              ----------------------------------------------
-SELECT CASE (NVARDIMS)
-!CAS 1D, 2D
-  CASE (1,2) 
-    write(0,*) '********************************************'
-    write(0,*) '* number of dimension to low: ',NVARDIMS,' *'
-    write(0,*) '* you need a 3-dimension variable          *'
-    write(0,*) '********************************************'
-!CAS 3D
-  CASE (3)
-    DO JLOOP=1,NVARDIMS
-      HACTION='get variable dimensions length'
-      status=nf90_inquire_dimension(kcdf_id,NVARDIMID(JLOOP),LEN=NLEN3D(JLOOP))
-      if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-    ENDDO
-    ALLOCATE(ZVALU3D(NLEN3D(1),NLEN3D(2),NLEN3D(3)))
-    ALLOCATE(ZDIM1(NLEN3D(1)))
-    ALLOCATE(ZDIM2(NLEN3D(2)))
-    ALLOCATE(ZDIM3(NLEN3D(3)))
-    !write(0,*) 'call GET3DCDF'
-    CALL GET3DCDF(kcdf_id,ID_VARTOGET,ZDIM1,YDIM1NAME,ZDIM2,YDIM2NAME,&
-           ZDIM3,YDIM3NAME,ZMISS,ZVALU3D) 
-    !write(0,*) 'YDIM1NAME: ',YDIM1NAME
-    !write(0,*) 'YDIM2NAME: ',YDIM2NAME
-    !write(0,*) 'YDIM3NAME: ',YDIM3NAME
-    if ((YDIM1NAME=='lon').OR.(YDIM1NAME=='longitude')) ILONFOUND=1
-    if ((YDIM2NAME=='lon').OR.(YDIM2NAME=='longitude')) ILONFOUND=2
-    if ((YDIM3NAME=='lon').OR.(YDIM3NAME=='longitude')) ILONFOUND=3
-    if ((YDIM1NAME=='lat').OR.(YDIM1NAME=='latitude'))  ILATFOUND=1
-    if ((YDIM2NAME=='lat').OR.(YDIM2NAME=='latitude'))  ILATFOUND=2
-    if ((YDIM3NAME=='lat').OR.(YDIM3NAME=='latitude'))  ILATFOUND=3
-    if (YDIM1NAME=='depth')                             IDEPFOUND=1
-    if (YDIM2NAME=='depth')                             IDEPFOUND=2
-    if (YDIM3NAME=='depth')                             IDEPFOUND=3
-    IARG=0
-    !write(0,*) 'ILONFOUND',ILONFOUND,'ILATFOUND',ILATFOUND,'IDEPFOUND',IDEPFOUND
-!!
-!!     4.3      complete arrays
-!!              ---------------
-    IF ((ILONFOUND==1).AND.(ILATFOUND==2).AND.(IDEPFOUND==3)) then
-      !write(0,*) 'SIZE LON=',SIZE(ZDIM1),'SIZE LAT',SIZE(ZDIM2),'SIZE DEP',SIZE(ZDIM3)
-      !write(0,*) 'SIZE PLON=',SIZE(PLON),'SIZE PLAT',SIZE(PLAT),'SIZE PDEP',SIZE(PDEP)
-      PDEP(:)=ZDIM3(:)
-      DO JDIM2=1,SIZE(ZDIM2)
-        DO JDIM1=1,SIZE(ZDIM1)
-          IARG=IARG+1
-          PLON(IARG)=ZDIM1(JDIM1)
-          PLAT(IARG)=ZDIM2(JDIM2)
-          DO JDIM3=1,SIZE(ZDIM3)
-            PVAL(IARG,JDIM3)=ZVALU3D(JDIM1,JDIM2,JDIM3)
-          ENDDO
-        ENDDO
-      ENDDO
-      !write(0,*) 'END complete arrays'
-!
-    ELSEIF ((ILONFOUND==2).AND.(ILATFOUND==1).AND.(IDEPFOUND==3)) then
-      PDEP(:)=ZDIM3(:)
-      DO JDIM1=1,SIZE(ZDIM1)
-        DO JDIM2=1,SIZE(ZDIM2)
-          IARG=IARG+1
-          PLON(IARG)=ZDIM2(JDIM2)
-          PLAT(IARG)=ZDIM1(JDIM1)
-          DO JDIM3=1,SIZE(ZDIM3)
-            PVAL(IARG,JDIM3)=ZVALU3D(JDIM1,JDIM2,JDIM3)
-          ENDDO
-        ENDDO
-      ENDDO
-!
-    ELSEIF ((ILONFOUND==1).AND.(ILATFOUND==3).AND.(IDEPFOUND==2)) then
-      PDEP(:)=ZDIM2(:)
-      DO JDIM3=1,SIZE(ZDIM3)
-        DO JDIM1=1,SIZE(ZDIM1)
-          IARG=IARG+1
-          PLON(IARG)=ZDIM1(JDIM1)
-          PLAT(IARG)=ZDIM3(JDIM3)
-          DO JDIM2=1,SIZE(ZDIM2)
-            PVAL(IARG,JDIM2)=ZVALU3D(JDIM1,JDIM2,JDIM3)
-          ENDDO
-        ENDDO
-      ENDDO
-!
-    ELSEIF ((ILATFOUND==1).AND.(ILONFOUND==3).AND.(IDEPFOUND==2)) then
-      PDEP(:)=ZDIM2(:)
-      DO JDIM1=1,SIZE(ZDIM1)
-        DO JDIM3=1,SIZE(ZDIM3)
-          IARG=IARG+1
-          PLON(IARG)=ZDIM3(JDIM3)
-          PLAT(IARG)=ZDIM1(JDIM1)
-          DO JDIM2=1,SIZE(ZDIM2)
-            PVAL(IARG,JDIM2)=ZVALU3D(JDIM1,JDIM2,JDIM3)
-          ENDDO
-        ENDDO
-      ENDDO
-!
-    ELSEIF ((ILONFOUND==2).AND.(ILATFOUND==3).AND.(IDEPFOUND==1)) then
-      PDEP(:)=ZDIM1(:)
-      DO JDIM3=1,SIZE(ZDIM3)
-        DO JDIM2=1,SIZE(ZDIM2)
-          IARG=IARG+1
-          PLON(IARG)=ZDIM2(JDIM2)
-          PLAT(IARG)=ZDIM3(JDIM3)
-          DO JDIM1=1,SIZE(ZDIM1)
-            PVAL(IARG,JDIM1)=ZVALU3D(JDIM1,JDIM2,JDIM3)
-          ENDDO
-        ENDDO
-      ENDDO
-!
-    ELSEIF ((ILATFOUND==2).AND.(ILONFOUND==3).AND.(IDEPFOUND==1)) then
-      PDEP(:)=ZDIM1(:)
-      DO JDIM2=1,SIZE(ZDIM2)
-        DO JDIM3=1,SIZE(ZDIM3)
-          IARG=IARG+1
-          PLON(IARG)=ZDIM3(JDIM3)
-          PLAT(IARG)=ZDIM2(JDIM2)
-          DO JDIM1=1,SIZE(ZDIM1)
-            PVAL(IARG,JDIM1)=ZVALU3D(JDIM1,JDIM2,JDIM3)
-          ENDDO
-        ENDDO
-      ENDDO
-!
-    ELSE
-      write(0,*) '*****WARNING*****: incompatible dimensions to lat/lon/value arrays'
-    ENDIF
-!
-END SELECT
-!
-!-----------
-!*    10.     Close the netcdf file 
-!             ---------------------
-HACTION='close netcdf'
-!write(0,*) HACTION
-status=nf90_close(kcdf_id)
-if (status/=NF90_NOERR) CALL HANDLE_ERR_MER(status,HACTION)
-!write(0,*) 'OK: netcdf file closed: ',HFILENAME
-!
-!-----------
-!*    11.     Deallocate 
-!             ----------
-IF (ALLOCATED(VARNAME     ))  DEALLOCATE(VARNAME)
-IF (ALLOCATED(ZVALU3D     ))  DEALLOCATE(ZVALU3D)
-IF (ALLOCATED(ZDIM1       ))  DEALLOCATE(ZDIM1  )
-IF (ALLOCATED(ZDIM2       ))  DEALLOCATE(ZDIM2  )
-IF (ALLOCATED(ZDIM3       ))  DEALLOCATE(ZDIM3  )
-!
-!
-IF (ALLOCATED(NVARDIMID   ))  DEALLOCATE(NVARDIMID )
-IF (ALLOCATED(NVARDIMNAM  ))  DEALLOCATE(NVARDIMNAM)
-IF (ALLOCATED(NVARDIMLEN  ))  DEALLOCATE(NVARDIMLEN)
-201   FORMAT(4(3X,F10.4))
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_LATLONDEPVAL_CDF',1,ZHOOK_HANDLE)
-END SUBROUTINE READ_LATLONDEPVAL_CDF
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_NETCDF_SST(HFILENAME,HNCVARNAME,PFIELD)
-!     ####################
-!
-USE MODD_GRID_LATLONREGUL, ONLY : NINDEPTH,NILENGTH
-USE MODD_SURF_PAR,         ONLY : XUNDEF
-USE MODD_CSTS,             ONLY : XTT
-USE MODD_PREP,       ONLY : CINTERP_TYPE
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-REAL, POINTER,DIMENSION(:) :: PFIELD      ! value to get
-!
-REAL,DIMENSION(:), ALLOCATABLE :: ZLATI
-REAL,DIMENSION(:), ALLOCATABLE :: ZLONG
-REAL,TARGET,DIMENSION(:,:), ALLOCATABLE :: ZVALUE
-REAL,DIMENSION(:), ALLOCATABLE :: ZDEPTH
-REAL,TARGET,DIMENSION(:), ALLOCATABLE :: ZVAL
-integer :: jloop
-!PLM
-REAL :: ZUNDEF=999.
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_NETCDF_SST',0,ZHOOK_HANDLE)
-IF (NILENGTH<0) then
-  ALLOCATE(PFIELD(1))
-  PFIELD(:)=XUNDEF
-  CINTERP_TYPE='UNIF  ' !!prescribed uniform field
-ELSEIF (NINDEPTH<0) THEN
-  ALLOCATE(ZLATI(NILENGTH) )
-  ALLOCATE(ZLONG(NILENGTH) )
-  ALLOCATE(ZVAL (NILENGTH) )
-  CALL READ_LATLONVAL_CDF(HFILENAME,HNCVARNAME,ZLONG,ZLATI,ZVAL)
-  ALLOCATE(PFIELD(NILENGTH))
-  PFIELD(:)=XUNDEF
-  PFIELD(:) = ZVAL(:)
-  IF (TRIM(HNCVARNAME) == 'temperature') THEN 
-     WHERE (ZVAL(:)/=ZUNDEF .AND. ZVAL(:)<100.) PFIELD(:)=PFIELD(:)+XTT
-  ENDIF
-  CINTERP_TYPE='HORIBL' !!interpolation from gaussian, legendre or regular grid
-!                       !!CINGRID_TYPE='GAUSS  ' ou ='AROME '
-!                       !!CINGRID_TYPE='LATLON '
-ELSE
-  ALLOCATE(ZVALUE(NILENGTH,NINDEPTH))
-  ALLOCATE(ZLATI(NILENGTH) )
-  ALLOCATE(ZLONG(NILENGTH) )
-  ALLOCATE(ZDEPTH(NINDEPTH))
-!
- CALL READ_LATLONDEPVAL_CDF(HFILENAME,HNCVARNAME,ZLONG,ZLATI,ZDEPTH,ZVALUE)
-!
-  ALLOCATE(PFIELD(NILENGTH))
-  PFIELD(:)=XUNDEF
-  PFIELD(:)=ZVALUE(:,1)
-  IF (TRIM(HNCVARNAME) == 'temperature') THEN 
-     WHERE (ZVALUE(:,1)/=ZUNDEF .AND. ZVALUE(:,1)<100.) PFIELD(:)=PFIELD(:)+XTT
-  ENDIF
-  CINTERP_TYPE='HORIBL' !!interpolation from gaussian, legendre or regular grid
-!                       !!CINGRID_TYPE='GAUSS  ' ou ='AROME '
-!                       !!CINGRID_TYPE='LATLON '
-ENDIF
-!
-IF (ALLOCATED(ZVALUE      ))  DEALLOCATE(ZVALUE )
-IF (ALLOCATED(ZLONG       ))  DEALLOCATE(ZLONG  )
-IF (ALLOCATED(ZLATI       ))  DEALLOCATE(ZLATI  )
-IF (ALLOCATED(ZDEPTH      ))  DEALLOCATE(ZDEPTH )
-IF (ALLOCATED(ZVAL        ))  DEALLOCATE(ZVAL   )
-!
-202   FORMAT(3(3X,F10.4))
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_NETCDF_SST',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE READ_NETCDF_SST
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_NETCDF_ZS_SEA(HFILENAME,HNCVARNAME,PFIELD)
-!     ####################
-!
-USE MODD_GRID_LATLONREGUL, ONLY : NINLAT,NINLON,NINDEPTH,NILENGTH
-USE MODD_PREP,       ONLY : CINTERP_TYPE
-!
-USE NETCDF
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-REAL, POINTER, DIMENSION(:)   :: PFIELD      ! value to get
-!
-REAL,DIMENSION(:), ALLOCATABLE :: ZLATI
-REAL,DIMENSION(:), ALLOCATABLE :: ZLONG
-REAL,TARGET, DIMENSION(:), ALLOCATABLE:: ZVALUE
-integer :: jloop
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_NETCDF_ZS_SEA',0,ZHOOK_HANDLE)
-if(NINDEPTH>0) then
-  !write(0,*) '*****warning*****',HNCVARNAME,' is a 3D field'
-  ALLOCATE(PFIELD(1))
-  PFIELD(:)=0.
-  CINTERP_TYPE='UNIF  ' !!prescribed uniform field
-elseif(NILENGTH>0) then 
-  ALLOCATE(ZVALUE(NILENGTH))
-  ALLOCATE(ZLATI(NILENGTH) )
-  ALLOCATE(ZLONG(NILENGTH) )
-!
-  CALL READ_LATLONVAL_CDF(HFILENAME,HNCVARNAME,ZLONG,ZLATI,ZVALUE)
-  ALLOCATE(PFIELD(NILENGTH))
-  PFIELD(:)=ZVALUE(:)
-  CINTERP_TYPE='HORIBL' !!interpolation from gaussian, legendre or regular grid
-!                       !!CINGRID_TYPE='GAUSS  ' ou ='AROME '
-!                       !!CINGRID_TYPE='LATLON '
-else
-  ALLOCATE(PFIELD(1))
-  PFIELD(:)=0.
-  CINTERP_TYPE='UNIF  ' !!prescribed uniform field
-endif
-!
-IF (ALLOCATED(ZVALUE      ))  DEALLOCATE(ZVALUE )
-IF (ALLOCATED(ZLONG       ))  DEALLOCATE(ZLONG  )
-IF (ALLOCATED(ZLATI       ))  DEALLOCATE(ZLATI  )
-!
-202   FORMAT(3(3X,F10.4))
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_NETCDF_ZS_SEA',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE READ_NETCDF_ZS_SEA
-!------------------------------------------------------------------------------
-!==============================================================================
-!     ####################
-       SUBROUTINE READ_NETCDF_WAVE(HFILENAME,HNCVARNAME,PFIELD)
-!     ####################
-!
-USE MODD_GRID_LATLONREGUL, ONLY : NINLAT,NINLON,NINDEPTH,NILENGTH
-USE MODD_PREP,       ONLY : CINTERP_TYPE
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=28), INTENT(IN) :: HFILENAME   ! Name of the field file.
- CHARACTER(LEN=28), INTENT(IN) :: HNCVARNAME  ! Name of variable to read in netcdf file
-REAL, POINTER, DIMENSION(:)   :: PFIELD      ! value to get
-!
-REAL,DIMENSION(:), ALLOCATABLE :: ZLATI
-REAL,DIMENSION(:), ALLOCATABLE :: ZLONG
-REAL,TARGET, DIMENSION(:), ALLOCATABLE:: ZVALUE
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!
-include 'netcdf.inc'
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_NETCDF_WAVE',0,ZHOOK_HANDLE)
-if(NINDEPTH>0) then
-  !write(0,*) '*****warning*****',HNCVARNAME,' is a 3D field'
-  ALLOCATE(PFIELD(1))
-  PFIELD(:)=0.
-  CINTERP_TYPE='UNIF  ' !!prescribed uniform field
-elseif(NILENGTH>0) then
-  ALLOCATE(ZVALUE(NILENGTH))
-  ALLOCATE(ZLATI(NILENGTH) )
-  ALLOCATE(ZLONG(NILENGTH) )
-!
-  CALL READ_LATLONVAL_CDF(HFILENAME,HNCVARNAME,ZLONG,ZLATI,ZVALUE)
-  ALLOCATE(PFIELD(NILENGTH))
-  PFIELD(:)=ZVALUE(:)
-  CINTERP_TYPE='HORIBL' !!interpolation from gaussian, legendre or regular grid
-!                       !!CINGRID_TYPE='GAUSS  ' ou ='AROME '
-!                       !!CINGRID_TYPE='LATLON '
-else
-  ALLOCATE(PFIELD(1))
-  PFIELD(:)=0.
-  CINTERP_TYPE='UNIF  ' !!prescribed uniform field
-endif
-!
-IF (ALLOCATED(ZVALUE      ))  DEALLOCATE(ZVALUE )
-IF (ALLOCATED(ZLONG       ))  DEALLOCATE(ZLONG  )
-IF (ALLOCATED(ZLATI       ))  DEALLOCATE(ZLATI  )
-!
-IF (LHOOK) CALL DR_HOOK('MODE_READ_NETCDF_MERCATOR:READ_NETCDF_WAVE',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE READ_NETCDF_WAVE
-!------------------------------------------------------------------------------
-!==============================================================================
-END MODULE MODE_READ_NETCDF_MERCATOR
diff --git a/src/OASIS/SURFEX/modn_prep_seaflux.F90 b/src/OASIS/SURFEX/modn_prep_seaflux.F90
deleted file mode 100644
index 7aaec327c..000000000
--- a/src/OASIS/SURFEX/modn_prep_seaflux.F90
+++ /dev/null
@@ -1,71 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-
-!     ##################
-      MODULE MODN_PREP_SEAFLUX
-!     ##################
-!
-!!****  *MODN_PREP_SEAFLUX* - declaration of namelist NAM_PREP_SEAFLUX
-!!
-!!    PURPOSE
-!!    -------
-!       The purpose of this module is to specify  the namelist NAM_PREP_SEAFLUX
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!       
-!!    AUTHOR
-!!    ------
-!!      S.Malardel    *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2003                    
-!!      Modified    07/2012, P. Le Moigne : CMO1D phasing
-!!                  07/2013, S. Senesi    : handle seaice scheme
-!!                              and uniform sea surface salinity and ice cover
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-USE MODD_PREP_SEAFLUX, ONLY : CFILE_SEAFLX, CTYPE_SEAFLX, CFILEPGD_SEAFLX, CTYPEPGD, &
-                              XSST_UNIF, XSSS_UNIF, XSIC_UNIF, CFILEWAVE_SEAFLX, CTYPEWAVE
-!
-IMPLICIT NONE
-!
-INTEGER           :: NYEAR            ! YEAR for surface
-INTEGER           :: NMONTH           ! MONTH for surface
-INTEGER           :: NDAY             ! DAY for surface
-REAL              :: XTIME            ! TIME for surface
-LOGICAL           :: LSEA_SBL         ! flag to use air layers inside the SBL
-CHARACTER(LEN=6)  :: CSEAICE_SCHEME    ! name of the seaice scheme
-LOGICAL           :: LOCEAN_MERCATOR  ! oceanic variables initialized from 
-                                      !   MERCATOR if true
-LOGICAL           :: LOCEAN_CURRENT   ! initial ocean state with current 
-                                      !   (if false ucur=0, vcur=0)
-REAL              :: XTIME_REL        ! relaxation time (s)
-LOGICAL           :: LCUR_REL         ! If T, relax on current
-LOGICAL           :: LTS_REL          ! If T, relax on T, S
-LOGICAL           :: LZERO_FLUX       ! If T, relax on T, S
-LOGICAL           :: LCORR_FLUX       ! If T, fluxes correction is made
-REAL              :: XCORFLX          ! correction coefficient ( W.m-2.K-1)
-LOGICAL           :: LDIAPYC          ! If T, fluxes correction is made                                      
-!
-NAMELIST/NAM_PREP_SEAFLUX/CFILE_SEAFLX, CTYPE_SEAFLX, CFILEPGD_SEAFLX, CTYPEPGD, XSST_UNIF,  &
-                          CFILEWAVE_SEAFLX, CTYPEWAVE, &        
-                          XSSS_UNIF, XSIC_UNIF, NYEAR, NMONTH, NDAY, XTIME, LSEA_SBL, &
-                          CSEAICE_SCHEME, LOCEAN_MERCATOR, LOCEAN_CURRENT,              & 
-                          XTIME_REL,LCUR_REL,LTS_REL,                                  &
-                          LZERO_FLUX,XCORFLX,LCORR_FLUX, LDIAPYC  
-!
-END MODULE MODN_PREP_SEAFLUX
diff --git a/src/OASIS/SURFEX/modn_seafluxn.F90 b/src/OASIS/SURFEX/modn_seafluxn.F90
deleted file mode 100644
index cd647ff24..000000000
--- a/src/OASIS/SURFEX/modn_seafluxn.F90
+++ /dev/null
@@ -1,321 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     ##################
-      MODULE MODN_SEAFLUX_n
-!     ##################
-!
-!!****  *MODN_SEAFLUX_n* - declaration of namelist NAM_SEAFLUXn
-!!
-!!    PURPOSE
-!!    -------
-!       The purpose of this module is to specify  the namelist NAM_SEAFLUX_n
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!       
-!!    AUTHOR
-!!    ------
-!!      V. Masson    *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004                    
-!!      Modified    01/2006 : sea flux parameterization.
-!!      Modified    08/2009 : LSURF_BUDGETC
-!!      Modified    01/2014 : S. Senesi : introduce sea-ice model
-!!      Modified    03/2014 : S. Belamari - add NZ0 (to choose PZ0SEA formulation)
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=6)  :: CSEA_FLUX
- CHARACTER(LEN=4)  :: CSEA_ALB
-REAL     :: XTSTEP
-REAL     :: XOUT_TSTEP
-REAL     :: XDIAG_TSTEP
-INTEGER  :: N2M
-LOGICAL  :: L2M_MIN_ZS         
-LOGICAL  :: LSURF_BUDGET
-LOGICAL  :: LRAD_BUDGET
-LOGICAL  :: LSURF_BUDGETC
-LOGICAL  :: LRESET_BUDGETC
-LOGICAL  :: LCOEF
-LOGICAL  :: LSURF_VARS
-LOGICAL  :: LPWG
-LOGICAL  :: LPRECIP
-LOGICAL  :: LPWEBB
-LOGICAL  :: LDIAG_OCEAN
-LOGICAL  :: LWAVEWIND
-LOGICAL  :: LDIAG_MISC_SEAICE
-INTEGER  :: NZ0
-INTEGER  :: NGRVWAVES
-REAL     :: XICHCE
-CHARACTER(LEN=6)  :: CCH_DRY_DEP
-LOGICAL  :: LPROGSST
-LOGICAL  :: LPERTFLUX              ! True = stochastic flux perturbation (default:False)
-INTEGER  :: NTIME_COUPLING
-REAL :: XOCEAN_TSTEP
-CHARACTER(LEN=6)  :: CINTERPOL_SST
-CHARACTER(LEN=6)  :: CINTERPOL_SSS
-CHARACTER(LEN=6)  :: CINTERPOL_SIC
-CHARACTER(LEN=6)  :: CINTERPOL_SIT
-REAL     :: XFREEZING_SST
-REAL     :: XSIC_EFOLDING_TIME
-REAL     :: XSIT_EFOLDING_TIME
-REAL     :: XSEAICE_TSTEP
-REAL     :: XCD_ICE_CST
-REAL     :: XSI_FLX_DRV
-!
-NAMELIST/NAM_SEAFLUXn/CSEA_FLUX,CSEA_ALB, LPWG, LPRECIP, LPWEBB, NGRVWAVES, &
-                      NZ0, LPROGSST, NTIME_COUPLING, XOCEAN_TSTEP, XICHCE, &
-                      CINTERPOL_SST, CINTERPOL_SSS, LPERTFLUX, LWAVEWIND
-NAMELIST/NAM_DIAG_SURFn/N2M,L2M_MIN_ZS,LSURF_BUDGET,LRAD_BUDGET, &
-                          LSURF_BUDGETC,LRESET_BUDGETC,LCOEF,LSURF_VARS  
-NAMELIST/NAM_CH_SEAFLUXn/CCH_DRY_DEP
-NAMELIST/NAM_DIAG_OCEANn/LDIAG_OCEAN
-NAMELIST/NAM_SEAICEn/LDIAG_MISC_SEAICE, CINTERPOL_SIC, CINTERPOL_SIT,           &
-                     XFREEZING_SST, XSIC_EFOLDING_TIME, XSIT_EFOLDING_TIME,&
-                     XSEAICE_TSTEP, XCD_ICE_CST, XSI_FLX_DRV
-!
-CONTAINS
-!
-SUBROUTINE INIT_NAM_SEAFLUXn (O, S)
-!
-  USE MODD_OCEAN_n, ONLY : OCEAN_t
-  USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(OCEAN_t), INTENT(INOUT) :: O
-  TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_SEAFLUXN',0,ZHOOK_HANDLE)
-  XTSTEP = S%XTSTEP
-  XOUT_TSTEP = S%XOUT_TSTEP
-  CSEA_FLUX = S%CSEA_FLUX
-  CSEA_ALB = S%CSEA_ALB
-  LPWG = S%LPWG
-  LPRECIP = S%LPRECIP
-  CINTERPOL_SST = S%CINTERPOL_SST
-  CINTERPOL_SSS = S%CINTERPOL_SSS
-  LPWEBB = S%LPWEBB
-  NZ0 = S%NZ0
-  NGRVWAVES = S%NGRVWAVES
-  LWAVEWIND = S%LWAVEWIND
-  LPROGSST = O%LPROGSST
-  NTIME_COUPLING = O%NTIME_COUPLING
-  XOCEAN_TSTEP = O%XOCEAN_TSTEP
-  XICHCE = S%XICHCE
-  LPERTFLUX = S%LPERTFLUX
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_SEAFLUXN',1,ZHOOK_HANDLE)
-END SUBROUTINE INIT_NAM_SEAFLUXn
-
-SUBROUTINE UPDATE_NAM_SEAFLUXn (O, S)
-!
-  USE MODD_OCEAN_n, ONLY : OCEAN_t
-  USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(OCEAN_t), INTENT(INOUT) :: O
-  TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_SEAFLUXN',0,ZHOOK_HANDLE)
-  S%XTSTEP = XTSTEP
-  S%XOUT_TSTEP = XOUT_TSTEP  
-  S%CSEA_FLUX = CSEA_FLUX
-  S%CSEA_ALB = CSEA_ALB
-  S%LPWG = LPWG
-  S%LPRECIP = LPRECIP
-  S%CINTERPOL_SST = CINTERPOL_SST
-  S%CINTERPOL_SSS = CINTERPOL_SSS
-  S%LPWEBB = LPWEBB
-  S%NZ0 = NZ0
-  S%NGRVWAVES = NGRVWAVES
-  S%LWAVEWIND = LWAVEWIND  
-  O%LPROGSST = LPROGSST
-  O%NTIME_COUPLING = NTIME_COUPLING
-  O%XOCEAN_TSTEP = XOCEAN_TSTEP
-  S%XICHCE = XICHCE
-  S%LPERTFLUX = LPERTFLUX
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_SEAFLUXN',1,ZHOOK_HANDLE)
-END SUBROUTINE UPDATE_NAM_SEAFLUXn
-!
-SUBROUTINE INIT_NAM_DIAG_SURFn (DGO)
-!
-  USE MODD_DIAG_n, ONLY : DIAG_OPTIONS_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(DIAG_OPTIONS_t), INTENT(INOUT) :: DGO
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_SURFN',0,ZHOOK_HANDLE)
-  XDIAG_TSTEP = DGO%XDIAG_TSTEP  
-  N2M = DGO%N2M
-  L2M_MIN_ZS = DGO%L2M_MIN_ZS
-  LSURF_BUDGET = DGO%LSURF_BUDGET
-  LRAD_BUDGET = DGO%LRAD_BUDGET
-  LSURF_BUDGETC = DGO%LSURF_BUDGETC
-  LRESET_BUDGETC = DGO%LRESET_BUDGETC  
-  LCOEF = DGO%LCOEF
-  LSURF_VARS = DGO%LSURF_VARS
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_SURFN',1,ZHOOK_HANDLE)
-END SUBROUTINE INIT_NAM_DIAG_SURFn
-
-SUBROUTINE UPDATE_NAM_DIAG_SURFn (DGO)
-!
-  USE MODD_DIAG_n, ONLY : DIAG_OPTIONS_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(DIAG_OPTIONS_t), INTENT(INOUT) :: DGO
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_SURFN',0,ZHOOK_HANDLE)
-  DGO%XDIAG_TSTEP = XDIAG_TSTEP  
-  DGO%N2M = N2M
-  DGO%L2M_MIN_ZS = L2M_MIN_ZS
-  DGO%LSURF_BUDGET = LSURF_BUDGET
-  DGO%LRAD_BUDGET = LRAD_BUDGET 
-  DGO%LSURF_BUDGETC = LSURF_BUDGETC
-  DGO%LRESET_BUDGETC = LRESET_BUDGETC  
-  DGO%LCOEF = LCOEF
-  DGO%LSURF_VARS = LSURF_VARS
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_SURFN',1,ZHOOK_HANDLE)
-END SUBROUTINE UPDATE_NAM_DIAG_SURFn
-!
-SUBROUTINE INIT_NAM_CH_SEAFLUXn (CHS)
-!
-  USE MODD_CH_SEAFLUX_n, ONLY : CH_SEAFLUX_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(CH_SEAFLUX_t), INTENT(INOUT) :: CHS
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_CH_SEAFLUXN',0,ZHOOK_HANDLE)
-  CCH_DRY_DEP = CHS%CCH_DRY_DEP
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_CH_SEAFLUXN',1,ZHOOK_HANDLE)
-END SUBROUTINE INIT_NAM_CH_SEAFLUXn
-
-SUBROUTINE UPDATE_NAM_CH_SEAFLUXn (CHS)
-!
-  USE MODD_CH_SEAFLUX_n, ONLY : CH_SEAFLUX_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(CH_SEAFLUX_t), INTENT(INOUT) :: CHS
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_CH_SEAFLUXN',0,ZHOOK_HANDLE)
-  CHS%CCH_DRY_DEP = CCH_DRY_DEP
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_CH_SEAFLUXN',1,ZHOOK_HANDLE)
-END SUBROUTINE UPDATE_NAM_CH_SEAFLUXn
-
-SUBROUTINE INIT_NAM_DIAG_OCEANn (DGO)
-!
-  USE MODD_DIAG_OCEAN_n, ONLY : DIAG_OCEAN_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(DIAG_OCEAN_t), INTENT(INOUT) :: DGO
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_OCEANN',0,ZHOOK_HANDLE)
-  LDIAG_OCEAN = DGO%LDIAG_OCEAN
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_DIAG_OCEANN',1,ZHOOK_HANDLE)
-END SUBROUTINE INIT_NAM_DIAG_OCEANn
-
-SUBROUTINE UPDATE_NAM_DIAG_OCEANn (DGO)
-!
-  USE MODD_DIAG_OCEAN_n, ONLY : DIAG_OCEAN_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(DIAG_OCEAN_t), INTENT(INOUT) :: DGO
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_OCEANN',0,ZHOOK_HANDLE)
-  DGO%LDIAG_OCEAN = LDIAG_OCEAN
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_DIAG_OCEANN',1,ZHOOK_HANDLE)
-END SUBROUTINE UPDATE_NAM_DIAG_OCEANn
-
-SUBROUTINE INIT_NAM_SEAICEn (DGMSI, S)
-!
-  USE MODD_DIAG_MISC_SEAICE_n, ONLY : DIAG_MISC_SEAICE_t
-  USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-  IMPLICIT NONE
-
-!
-  TYPE(DIAG_MISC_SEAICE_t), INTENT(INOUT) :: DGMSI
-  TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_SEAICEN',0,ZHOOK_HANDLE)
-  LDIAG_MISC_SEAICE = DGMSI%LDIAG_MISC_SEAICE
-  CINTERPOL_SIC = S%CINTERPOL_SIC
-  CINTERPOL_SIT = S%CINTERPOL_SIT
-  XSIC_EFOLDING_TIME=S%XSIC_EFOLDING_TIME
-  XSIT_EFOLDING_TIME=S%XSIT_EFOLDING_TIME
-  XSEAICE_TSTEP=S%XSEAICE_TSTEP
-  XFREEZING_SST = S%XFREEZING_SST
-  XCD_ICE_CST = S%XCD_ICE_CST
-  XSI_FLX_DRV = S%XSI_FLX_DRV
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:INIT_NAM_SEAICEN',1,ZHOOK_HANDLE)
-END SUBROUTINE INIT_NAM_SEAICEn
-
-SUBROUTINE UPDATE_NAM_SEAICEn (DGMSI, S)
-!
-  USE MODD_DIAG_MISC_SEAICE_n, ONLY : DIAG_MISC_SEAICE_t
-  USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-  IMPLICIT NONE
-!
-  TYPE(DIAG_MISC_SEAICE_t), INTENT(INOUT) :: DGMSI
-  TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-  IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_SEAICEN',0,ZHOOK_HANDLE)
-  DGMSI%LDIAG_MISC_SEAICE = LDIAG_MISC_SEAICE
-  S%CINTERPOL_SIC = CINTERPOL_SIC
-  S%CINTERPOL_SIT = CINTERPOL_SIT
-  S%XSIC_EFOLDING_TIME = XSIC_EFOLDING_TIME
-  S%XSIT_EFOLDING_TIME = XSIT_EFOLDING_TIME
-  S%XSEAICE_TSTEP = XSEAICE_TSTEP
-  S%XFREEZING_SST = XFREEZING_SST
-  S%XCD_ICE_CST = XCD_ICE_CST
-  S%XSI_FLX_DRV = XSI_FLX_DRV
-IF (LHOOK) CALL DR_HOOK('MODN_SEAFLUX_N:UPDATE_NAM_SEAICEN',1,ZHOOK_HANDLE)
-END SUBROUTINE UPDATE_NAM_SEAICEn
-
-END MODULE MODN_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/modn_sfx_oasis.F90 b/src/OASIS/SURFEX/modn_sfx_oasis.F90
deleted file mode 100644
index 5572ee6ce..000000000
--- a/src/OASIS/SURFEX/modn_sfx_oasis.F90
+++ /dev/null
@@ -1,176 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!###############
-MODULE MODN_SFX_OASIS
-!###############
-!
-!!****  *MODN_SFX_OASIS - declaration of namelist for SFX-OASIS coupling
-!!
-!!    PURPOSE
-!!    -------
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original       10/13
-!!    10/2016 B. Decharme : bug surface/groundwater coupling
-!!      Modified       11/2014 : J. Pianezze - add wave coupling parameters
-!!                                             and surface pressure parameter for ocean coupling
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-IMPLICIT NONE
-!
-!
-REAL             :: XTSTEP_CPL_LAND = -1.0  ! Coupling time step for land
-REAL             :: XTSTEP_CPL_SEA  = -1.0  ! Coupling time step for sea
-REAL             :: XTSTEP_CPL_LAKE = -1.0  ! Coupling time step for lake
-REAL             :: XTSTEP_CPL_WAVE = -1.0  ! Coupling time step for wave
-!
-!-------------------------------------------------------------------------------
-!
-! * Land surface variables for Surfex - Oasis coupling
-!
-!-------------------------------------------------------------------------------
-!
-! Output variables
-!
-CHARACTER(LEN=8) :: CRUNOFF     = '        '   ! Surface runoff 
-CHARACTER(LEN=8) :: CDRAIN      = '        '   ! Deep drainage 
-CHARACTER(LEN=8) :: CCALVING    = '        '   ! Calving flux 
-CHARACTER(LEN=8) :: CSRCFLOOD   = '        '   ! Floodplains freshwater flux
-!
-! Input variables
-!
-CHARACTER(LEN=8) :: CWTD        = '        '   ! water table depth
-CHARACTER(LEN=8) :: CFWTD       = '        '   ! grid-cell fraction of water table rise
-CHARACTER(LEN=8) :: CFFLOOD     = '        '   ! Floodplains fraction
-CHARACTER(LEN=8) :: CPIFLOOD    = '        '   ! Flood potential infiltartion
-!
-REAL             :: XFLOOD_LIM = 0.01
-!
-!-------------------------------------------------------------------------------
-!
-! * Lake variables for Surfex - Oasis coupling
-!
-!-------------------------------------------------------------------------------
-!
-! Input variables
-!
-CHARACTER(LEN=8) :: CLAKE_EVAP  = '        '   ! Evaporation over lake area
-CHARACTER(LEN=8) :: CLAKE_RAIN  = '        '   ! Rainfall over lake area
-CHARACTER(LEN=8) :: CLAKE_SNOW  = '        '   ! Snowfall over lake area
-CHARACTER(LEN=8) :: CLAKE_WATF  = '        '   ! Net freshwater flux
-!
-!-------------------------------------------------------------------------------
-!
-! * Sea variables for Surfex - Oasis coupling 
-!
-!-------------------------------------------------------------------------------
-!
-! Sea Output variables
-!
-CHARACTER(LEN=8) :: CSEA_FWSU = '        '   ! zonal wind stress 
-CHARACTER(LEN=8) :: CSEA_FWSV = '        '   ! meridian wind stress 
-CHARACTER(LEN=8) :: CSEA_HEAT = '        '   ! Non solar net heat flux
-CHARACTER(LEN=8) :: CSEA_SNET = '        '   ! Solar net heat flux
-CHARACTER(LEN=8) :: CSEA_WIND = '        '   ! module of 10m wind speed 
-CHARACTER(LEN=8) :: CSEA_FWSM = '        '   ! module of wind stress 
-CHARACTER(LEN=8) :: CSEA_EVAP = '        '   ! Evaporation 
-CHARACTER(LEN=8) :: CSEA_RAIN = '        '   ! Rainfall 
-CHARACTER(LEN=8) :: CSEA_SNOW = '        '   ! Snowfall 
-CHARACTER(LEN=8) :: CSEA_EVPR = '        '   ! Evaporation - Preci.
-CHARACTER(LEN=8) :: CSEA_WATF = '        '   ! Net freshwater flux
-CHARACTER(LEN=8) :: CSEA_PRES = '        '   ! Surface pressure 
-!
-! Sea-ice Output variables
-!  
-CHARACTER(LEN=8) :: CSEAICE_HEAT = '        '   ! Sea-ice non solar net heat flux
-CHARACTER(LEN=8) :: CSEAICE_SNET = '        '   ! Sea-ice solar net heat flux 
-CHARACTER(LEN=8) :: CSEAICE_EVAP = '        '   ! Sea-ice sublimation 
-!
-! Sea Input variables
-!
-CHARACTER(LEN=8) :: CSEA_SST    = '        ' ! Sea surface temperature
-CHARACTER(LEN=8) :: CSEA_UCU    = '        ' ! Sea u-current stress
-CHARACTER(LEN=8) :: CSEA_VCU    = '        ' ! Sea v-current stress
-!
-! Sea-ice Input variables
-!
-CHARACTER(LEN=8) :: CSEAICE_SIT = '        ' ! Sea-ice temperature
-CHARACTER(LEN=8) :: CSEAICE_CVR = '        ' ! Sea-ice cover
-CHARACTER(LEN=8) :: CSEAICE_ALB = '        ' ! Sea-ice albedo
-!
-!-------------------------------------------------------------------------------
-!
-! * Wave variables for Surfex - Oasis coupling 
-!
-!-------------------------------------------------------------------------------
-!
-! Wave Output variables
-!
-CHARACTER(LEN=8) :: CWAVE_U10  = '        '   ! 10m u-wind speed 
-CHARACTER(LEN=8) :: CWAVE_V10  = '        '   ! 10m u-wind speed 
-!
-! Wave Input variables
-!
-CHARACTER(LEN=8) :: CWAVE_CHA    = '        ' ! Charnock coefficient
-CHARACTER(LEN=8) :: CWAVE_UCU    = '        ' ! Wave u-current velocity
-CHARACTER(LEN=8) :: CWAVE_VCU    = '        ' ! Wave v-current velocity
-CHARACTER(LEN=8) :: CWAVE_HS     = '        ' ! Significant wave height
-CHARACTER(LEN=8) :: CWAVE_TP     = '        ' ! Peak period
-!
-! Switch to add water into sea oasis mask
-!
-LOGICAL          :: LWATER = .FALSE.
-!-------------------------------------------------------------------------------
-!
-!*       1.    NAMELISTS FOR LAND SURFACE FIELD
-!              ------------------------------------------------
-!
-NAMELIST/NAM_SFX_LAND_CPL/XTSTEP_CPL_LAND, XFLOOD_LIM,          &
-                         CRUNOFF,CDRAIN,CCALVING,CWTD,CFWTD,    &
-                         CFFLOOD,CPIFLOOD,CSRCFLOOD
-!
-!
-!*       2.    NAMELISTS FOR LAKE FIELD
-!              ---------------------------------------------------------------
-!
-NAMELIST/NAM_SFX_LAKE_CPL/XTSTEP_CPL_LAKE,                              &
-                          CLAKE_EVAP,CLAKE_RAIN,CLAKE_SNOW,CLAKE_WATF
-!
-!
-!*       3.    NAMELISTS FOR OCEANIC FIELD
-!              ---------------------------------------------------------------
-!
-NAMELIST/NAM_SFX_SEA_CPL/XTSTEP_CPL_SEA, LWATER,                               &
-                          CSEA_FWSU,CSEA_FWSV,CSEA_HEAT,CSEA_SNET,CSEA_WIND,   &
-                          CSEA_FWSM,CSEA_EVAP,CSEA_RAIN,CSEA_SNOW,CSEA_EVPR,   &
-                          CSEA_WATF,CSEA_PRES,CSEAICE_HEAT,CSEAICE_SNET,       &
-                          CSEAICE_EVAP,CSEA_SST,CSEA_UCU,CSEA_VCU,             &
-                          CSEAICE_SIT,CSEAICE_CVR,CSEAICE_ALB
-!
-!*       4.    NAMELISTS FOR WAVE FIELD
-!              ---------------------------------------------------------------
-!
-NAMELIST/NAM_SFX_WAVE_CPL/XTSTEP_CPL_WAVE,                                     &
-                          CWAVE_U10, CWAVE_V10,                                &
-                          CWAVE_CHA, CWAVE_UCU, CWAVE_VCU, CWAVE_HS, CWAVE_TP
-!
-!-------------------------------------------------------------------------------
-!
-END MODULE MODN_SFX_OASIS
diff --git a/src/OASIS/SURFEX/prep_hor_seaflux_field.F90 b/src/OASIS/SURFEX/prep_hor_seaflux_field.F90
deleted file mode 100644
index 9864abbd4..000000000
--- a/src/OASIS/SURFEX/prep_hor_seaflux_field.F90
+++ /dev/null
@@ -1,231 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE PREP_HOR_SEAFLUX_FIELD (DTCO, UG, U, GCP, DTS, O, OR, KLAT, S, &
-                                   HPROGRAM,HSURF,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!     #################################################################################
-!
-!!****  *PREP_HOR_SEAFLUX_FIELD* - reads, interpolates and prepares a sea field
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     S. Malardel
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004
-!!      P. Le Moigne 10/2005, Phasage Arome
-!!      P. Le Moigne 09/2007, sst from clim
-!!      S. Senesi    09/2013, extends to fields of SSS and SIC
-!!      P. Marguinaud10/2014, Support for a 2-part PREP
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!!------------------------------------------------------------------
-!
-USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t
-USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_GRID_CONF_PROJ_n, ONLY : GRID_CONF_PROJ_t
-!
-USE MODD_DATA_SEAFLUX_n, ONLY : DATA_SEAFLUX_t
-USE MODD_OCEAN_n, ONLY : OCEAN_t
-USE MODD_OCEAN_REL_n, ONLY : OCEAN_REL_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_TYPE_DATE_SURF, ONLY : DATE_TIME
-USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO, NCOMM, NPROC
-USE MODD_PREP,           ONLY : CINGRID_TYPE, CINTERP_TYPE, XZS_LS, XLAT_OUT, XLON_OUT, &
-                                XX_OUT, XY_OUT, CMASK
-!
-USE MODD_GRID_GRIB, ONLY : CINMODEL
-!
-USE MODE_PREP_CTL, ONLY : PREP_CTL, PREP_CTL_INT_PART2, PREP_CTL_INT_PART4
-!
-USE MODI_PREP_GRIB_GRID
-USE MODI_READ_PREP_SEAFLUX_CONF
-USE MODI_PREP_SEAFLUX_GRIB
-USE MODI_PREP_SEAFLUX_UNIF
-USE MODI_PREP_SEAFLUX_BUFFER
-USE MODI_PREP_SEAFLUX_NETCDF
-USE MODI_HOR_INTERPOL
-USE MODI_GET_LUOUT
-USE MODI_PREP_SEAFLUX_EXTERN
-USE MODI_PREP_SST_INIT
-!
-USE MODI_PREP_HOR_OCEAN_FIELDS
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-USE MODI_ABOR1_SFX
-!
-IMPLICIT NONE
-!
-#ifdef SFX_MPI
-INCLUDE "mpif.h"
-#endif
-!
-!*      0.1    declarations of arguments
-!
-TYPE(DATA_COVER_t), INTENT(INOUT) :: DTCO
-TYPE(SURF_ATM_GRID_t), INTENT(INOUT) :: UG
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(GRID_CONF_PROJ_t),INTENT(INOUT) :: GCP
-!
-TYPE(DATA_SEAFLUX_t), INTENT(INOUT) :: DTS
-TYPE(OCEAN_t), INTENT(INOUT) :: O
-TYPE(OCEAN_REL_t), INTENT(INOUT) :: OR
-INTEGER, INTENT(IN) :: KLAT
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE (PREP_CTL),    INTENT(INOUT) :: YDCTL
-!
- CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
- CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
- CHARACTER(LEN=28),  INTENT(IN)  :: HATMFILE    ! name of the Atmospheric file
- CHARACTER(LEN=6),   INTENT(IN)  :: HATMFILETYPE! type of the Atmospheric file
- CHARACTER(LEN=28),  INTENT(IN)  :: HPGDFILE    ! name of the Atmospheric file
- CHARACTER(LEN=6),   INTENT(IN)  :: HPGDFILETYPE! type of the Atmospheric file
-!
-!*      0.2    declarations of local variables
-!
- CHARACTER(LEN=6)              :: YFILETYPE ! type of input file
- CHARACTER(LEN=28)             :: YFILE     ! name of file
- CHARACTER(LEN=6)              :: YFILEPGDTYPE ! type of input file
- CHARACTER(LEN=28)             :: YFILEPGD     ! name of file
-REAL, POINTER, DIMENSION(:,:) :: ZFIELDIN  ! field to interpolate horizontally
-REAL, POINTER, DIMENSION(:,:) :: ZFIELDOUT ! field interpolated   horizontally
-TYPE (DATE_TIME) :: TZTIME_GRIB    ! current date and time
-INTEGER  :: ILUOUT    ! output listing logical unit
-INTEGER :: INFOMPI, INL
-!
-LOGICAL                       :: GUNIF     ! flag for prescribed uniform field
- CHARACTER (LEN=28)            :: CLFILE
-INTEGER                       :: IRESP
- CHARACTER (LEN=100)           :: CLCOMMENT
- CHARACTER (LEN=6)             :: CLSCHEME
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------------
-!
-!
-!*      1.     Reading of input file name and type
-!
-IF (LHOOK) CALL DR_HOOK('PREP_HOR_SEAFLUX_FIELD',0,ZHOOK_HANDLE)
- CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
- CALL READ_PREP_SEAFLUX_CONF(O%LMERCATOR, &
-                             HPROGRAM,HSURF,YFILE,YFILETYPE,YFILEPGD,YFILEPGDTYPE,&
-                            HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,ILUOUT,GUNIF)
-!
- CMASK = 'SEA'
-!
-NULLIFY (ZFIELDIN, ZFIELDOUT)
-!
-IF (YDCTL%LPART1) THEN
-!
-!--------------------------------------------------------------------- ----------------
-!
-!*      2.     Reading of input  configuration (Grid and interpolation type)
-!
-  IF (GUNIF) THEN
-    CALL PREP_SEAFLUX_UNIF(ILUOUT,HSURF,ZFIELDIN)
-  ELSE IF (YFILETYPE=='GRIB  ') THEN
-    CALL PREP_GRIB_GRID(YFILE,ILUOUT,CINMODEL,CINGRID_TYPE,CINTERP_TYPE,TZTIME_GRIB)
-    IF (NRANK==NPIO) CALL PREP_SEAFLUX_GRIB(HPROGRAM,HSURF,YFILE,ILUOUT,ZFIELDIN)        
-  ELSE IF (YFILETYPE=='MESONH' .OR. YFILETYPE=='ASCII ' .OR. YFILETYPE=='LFI   '&
-          .OR. YFILETYPE=='FA    '.OR. YFILETYPE=='AROME '.OR.YFILETYPE=='NC    ') THEN        
-    CALL PREP_SEAFLUX_EXTERN(GCP,HPROGRAM,HSURF,YFILE,YFILETYPE,YFILEPGD,YFILEPGDTYPE,ILUOUT,ZFIELDIN)
-  ELSE IF (YFILETYPE=='BUFFER') THEN
-    CALL PREP_SEAFLUX_BUFFER(HPROGRAM,HSURF,ILUOUT,ZFIELDIN)
-  ELSE IF (YFILETYPE=='NETCDF') THEN
-    CALL PREP_SEAFLUX_NETCDF(HPROGRAM,HSURF,YFILE,ILUOUT,ZFIELDIN)
-  ELSE
-    CALL ABOR1_SFX('PREP_HOR_SEAFLUX_FIELD: data file type not supported : '//YFILETYPE)
-  END IF
-!
-ENDIF
-!
-!
-!*      4.     Horizontal interpolation
-!
- CALL PREP_CTL_INT_PART2 (YDCTL, HSURF, 'SEA', CMASK, ZFIELDIN)
-!
-IF (YDCTL%LPART3) THEN
-!
-  IF (NRANK==NPIO) THEN
-    INL = SIZE(ZFIELDIN,2)
-  ELSEIF (.NOT.ASSOCIATED(ZFIELDIN)) THEN
-   ALLOCATE(ZFIELDIN(0,0))
-  ENDIF
-!
-  IF (NPROC>1) THEN
-#ifdef SFX_MPI
-    CALL MPI_BCAST(INL,KIND(INL)/4,MPI_INTEGER,NPIO,NCOMM,INFOMPI)
-#endif
-  ENDIF
-  ALLOCATE(ZFIELDOUT(KLAT,INL))
-!
-  CALL HOR_INTERPOL(DTCO, U, GCP, ILUOUT,ZFIELDIN,ZFIELDOUT)
-!
-ENDIF
-!
- CALL PREP_CTL_INT_PART4 (YDCTL, HSURF, 'SEA', CMASK, ZFIELDIN, ZFIELDOUT)
-!
-IF (YDCTL%LPART5) THEN
-!
-!*      5.     Return to historical variable
-!
-  SELECT CASE (HSURF)
-  CASE('ZS     ') 
-    ALLOCATE(XZS_LS(SIZE(ZFIELDOUT,1)))
-    XZS_LS(:) = ZFIELDOUT(:,1)
-  CASE('SST    ')
-    ALLOCATE(S%XSST(SIZE(ZFIELDOUT,1)))
-    S%XSST(:) = ZFIELDOUT(:,1)
-    IF (DTS%LSST_DATA) THEN
-      ! XSST is derived from array XDATA_SST from MODD_DATA_SEAFLUX, with time interpolation
-      CALL PREP_SST_INIT(DTS, S%TTIME, S%JSX, S%XSST)
-    END IF
-    IF (O%LMERCATOR) THEN
-      ! Preparing input for ocean 1D model
-      CALL PREP_HOR_OCEAN_FIELDS(DTCO, UG, U, GCP, O, OR, KLAT, S%XSEABATHY, &
-                                 HPROGRAM,HSURF,YFILE,YFILETYPE,ILUOUT,GUNIF)
-    ENDIF
-  CASE('SSS    ')
-    ALLOCATE(S%XSSS(SIZE(ZFIELDOUT,1)))
-    S%XSSS(:) = ZFIELDOUT(:,1)
-  CASE('SIC    ')
-    ALLOCATE(S%XSIC(SIZE(ZFIELDOUT,1)))
-    S%XSIC(:) = ZFIELDOUT(:,1)
-  CASE('HS     ')
-    ALLOCATE(S%XHS(SIZE(ZFIELDOUT,1)))
-    S%XHS(:) = ZFIELDOUT(:,1)
-  CASE('TP     ')
-    ALLOCATE(S%XTP(SIZE(ZFIELDOUT,1)))
-    S%XTP(:) = ZFIELDOUT(:,1)    
-  END SELECT
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------------
-!
-!*      6.     Deallocations
-!
-IF (ASSOCIATED (ZFIELDIN)) DEALLOCATE(ZFIELDIN )
-IF (ASSOCIATED (ZFIELDOUT)) DEALLOCATE(ZFIELDOUT)
-IF (LHOOK) CALL DR_HOOK('PREP_HOR_SEAFLUX_FIELD',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------------
-!
-END SUBROUTINE PREP_HOR_SEAFLUX_FIELD
diff --git a/src/OASIS/SURFEX/prep_seaflux.F90 b/src/OASIS/SURFEX/prep_seaflux.F90
deleted file mode 100644
index b136269e8..000000000
--- a/src/OASIS/SURFEX/prep_seaflux.F90
+++ /dev/null
@@ -1,251 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE PREP_SEAFLUX (DTCO, UG, U, GCP, SG, SB, S, DTS, O, OR, &
-                        HPROGRAM,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!     #################################################################################
-!
-!!****  *PREP_SEAFLUX* - prepares variables for SEAFLUX scheme
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     S. Malardel 
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004
-!!      S. Riette   06/2009 PREP_SEAFLUX_SBL has no more argument
-!!      Modified    07/2012, P. Le Moigne : CMO1D phasing
-!!      Modified    01/2014, S. Senesi : introduce sea-ice model 
-!!      Modified    01/2015, R. Séférian : introduce ocean surface albedo 
-!!      P. Marguinaud10/2014, Support for a 2-part PREP
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!!------------------------------------------------------------------
-!
-USE MODD_SFX_GRID_n, ONLY : GRID_t
-USE MODD_CANOPY_n, ONLY : CANOPY_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-USE MODD_DATA_SEAFLUX_n, ONLY : DATA_SEAFLUX_t
-USE MODD_OCEAN_n, ONLY : OCEAN_t
-USE MODD_OCEAN_REL_n, ONLY : OCEAN_REL_t
-!
-USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t
-USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_GRID_CONF_PROJ_n, ONLY : GRID_CONF_PROJ_t
-!
-USE MODI_PREP_HOR_SEAFLUX_FIELD
-USE MODI_PREP_VER_SEAFLUX
-USE MODI_PREP_OUTPUT_GRID
-USE MODI_PREP_SBL
-USE MODI_PREP_SEAICE
-USE MODI_GET_LUOUT
-!
-USE MODN_PREP_SEAFLUX
-USE MODD_READ_NAMELIST,  ONLY : LNAM_READ
-USE MODD_PREP,           ONLY : XZS_LS
-USE MODD_SURF_ATM,       ONLY : LVERTSHIFT
-!
-USE MODE_PREP_CTL, ONLY : PREP_CTL
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-USE MODI_CLEAN_PREP_OUTPUT_GRID
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-TYPE(DATA_COVER_t), INTENT(INOUT) :: DTCO
-TYPE(SURF_ATM_GRID_t), INTENT(INOUT) :: UG
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(GRID_CONF_PROJ_t),INTENT(INOUT) :: GCP
-!
-TYPE(GRID_t), INTENT(INOUT) :: SG
-TYPE(CANOPY_t), INTENT(INOUT) :: SB
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(DATA_SEAFLUX_t), INTENT(INOUT) :: DTS
-TYPE(OCEAN_t), INTENT(INOUT) :: O
-TYPE(OCEAN_REL_t), INTENT(INOUT) :: OR
-TYPE (PREP_CTL),    INTENT(INOUT) :: YDCTL
-!
- CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
- CHARACTER(LEN=28),  INTENT(IN)  :: HATMFILE    ! name of the Atmospheric file
- CHARACTER(LEN=6),   INTENT(IN)  :: HATMFILETYPE! type of the Atmospheric file
- CHARACTER(LEN=28),  INTENT(IN)  :: HPGDFILE    ! name of the Atmospheric file
- CHARACTER(LEN=6),   INTENT(IN)  :: HPGDFILETYPE! type of the Atmospheric file
-!
-!*      0.2    declarations of local variables
-!
-INTEGER :: JMTH,INMTH
-INTEGER :: ILUOUT
-LOGICAL :: GFOUND         ! Return code when searching namelist
-INTEGER :: ILUNAM         ! logical unit of namelist file
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-
-!-------------------------------------------------------------------------------------
-!
-!*      0.     Default of configuration
-!
-!
-IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX',0,ZHOOK_HANDLE)
- CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
- CALL PREP_OUTPUT_GRID(UG%G, SG, U%NSIZE_FULL, ILUOUT)
-!
-!-------------------------------------------------------------------------------------
-!
-!*      1.     Read namelist
-!
-S%LSBL = LSEA_SBL
-!
-O%LMERCATOR = LOCEAN_MERCATOR
-O%LCURRENT  = LOCEAN_CURRENT
-!
-! Relaxation-forcing parameters
-OR%XTAU_REL   = XTIME_REL
-OR%XQCORR     = XCORFLX
-!
-OR%LREL_CUR   = LCUR_REL
-OR%LREL_TS    = LTS_REL
-OR%LFLUX_NULL = LZERO_FLUX
-OR%LFLX_CORR  = LCORR_FLUX
-OR%LDIAPYCNAL = LDIAPYC
-!
-!-------------------------------------------------------------------------------------
-!
-!*      2.     Reading and horizontal interpolations
-!
-!
-!*      2.0    Large scale orography
-!
-CALL PREP_HOR_SEAFLUX_FIELD(DTCO, UG, U, GCP, DTS, O, OR, SIZE(SG%XLAT), S, &
-                            HPROGRAM,'ZS     ',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!
-!*      2.1.1    Temperature
-!
-CALL PREP_HOR_SEAFLUX_FIELD(DTCO, UG, U, GCP, DTS, O, OR, SIZE(SG%XLAT), S, &
-                            HPROGRAM,'SST    ',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!
-!*      2.1.2    Salinity
-!
-
-CALL PREP_HOR_SEAFLUX_FIELD(DTCO, UG, U, GCP, DTS, O, OR, SIZE(SG%XLAT), S, &
-                            HPROGRAM,'SSS    ',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!
-!*      2.1.3   Sea-ice
-!
-IF (CSEAICE_SCHEME /= 'NONE  ') THEN 
-   CALL PREP_SEAICE(UG, DTCO, DTS, O, OR, SIZE(SG%XLAT), S, U, GCP, &
-                    HPROGRAM,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-ENDIF
-!
-!
-!*      2.2    Significant height and peak period
-!
- CALL PREP_HOR_SEAFLUX_FIELD(DTCO, UG, U, GCP, DTS, O, OR, SIZE(SG%XLAT), S, &
-                             HPROGRAM,'HS     ',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!
- CALL PREP_HOR_SEAFLUX_FIELD(DTCO, UG, U, GCP, DTS, O, OR, SIZE(SG%XLAT), S, &
-                             HPROGRAM,'TP     ',HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
-!
-!
- CALL CLEAN_PREP_OUTPUT_GRID
-
-IF (YDCTL%LPART6) THEN
-!
-!*      2.2    Roughness
-!
-  ALLOCATE(S%XZ0(SIZE(S%XSST)))
-  S%XZ0 = 0.001
-!
-  ALLOCATE(S%XZ0H(SIZE(S%XSST)))
-  S%XZ0H = S%XZ0
-!
-!*      2.3   Ocean Surface Albedo
-!
-  IF(S%CSEA_ALB=='RS14')THEN
-    ALLOCATE(S%XDIR_ALB(SIZE(S%XSST)))
-    ALLOCATE(S%XSCA_ALB(SIZE(S%XSST)))
-    S%XDIR_ALB = 0.065
-    S%XSCA_ALB = 0.065
-  ENDIF
-!
-!-------------------------------------------------------------------------------------
-!
-!*      3.     Vertical interpolations of all variables
-!
-  IF(LVERTSHIFT)THEN
-    CALL PREP_VER_SEAFLUX(S)
-  ENDIF
-!
-  DEALLOCATE(XZS_LS)
-!
-!-------------------------------------------------------------------------------------
-!
-!*      4.     Preparation of optional interpolation of monthly sst
-!
-  S%LINTERPOL_SST=.FALSE.
-  IF(TRIM(S%CINTERPOL_SST)/='NONE')THEN
-!
-    S%LINTERPOL_SST=.TRUE.
-!
-! Precedent, Current, Next, and Second-next Monthly SST
-    INMTH=4
-!
-    ALLOCATE(S%XSST_MTH(SIZE(S%XSST),INMTH))
-    DO JMTH=1,INMTH
-      S%XSST_MTH(:,JMTH)=S%XSST(:)
-    ENDDO
-!
-  ENDIF
-!
-!-------------------------------------------------------------------------------------
-!
-!
-!*      5.     Optional preparation of interpolation of monthly Sea Surface salinity
-!
-  S%LINTERPOL_SSS=.FALSE.
-  IF(TRIM(S%CINTERPOL_SSS)/='NONE')THEN
-!
-     S%LINTERPOL_SSS=.TRUE.
-   !
-   ! Precedent, Current, Next, and Second-next Monthly SSS
-     INMTH=4
-   !
-     ALLOCATE(S%XSSS_MTH(SIZE(S%XSSS),INMTH))
-     DO JMTH=1,INMTH
-       S%XSSS_MTH(:,JMTH)=S%XSSS(:)
-     ENDDO
-   !
-  ENDIF
-!
-!-------------------------------------------------------------------------------------
-!
-!*      6.     Preparation of SBL air variables
-!
-!
-  IF (S%LSBL) CALL PREP_SBL(SG%NDIM, SB)
-!
-ENDIF
-!-------------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------------
-!
-END SUBROUTINE PREP_SEAFLUX
diff --git a/src/OASIS/SURFEX/prep_seaflux_netcdf.F90 b/src/OASIS/SURFEX/prep_seaflux_netcdf.F90
deleted file mode 100644
index 3fdd63de8..000000000
--- a/src/OASIS/SURFEX/prep_seaflux_netcdf.F90
+++ /dev/null
@@ -1,154 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE PREP_SEAFLUX_NETCDF(HPROGRAM,HSURF,HFILE,KLUOUT,PFIELD)
-!     #################################################################################
-!
-!!****  *PREP_SEAFLUX_NETCDF* - prepares SEAFLUX fields from oceanic analyses in NETCDF
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     C. Lebeaupin Brossier
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2008
-!!      Modified    09/2013 : S. Senesi : extends to SSS and SIC fields
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!!------------------------------------------------------------------
-!
-USE MODE_READ_NETCDF_MERCATOR
-!
-!USE MODD_TYPE_DATE_SURF
-!
-USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO, NCOMM, NPROC
-USE MODD_PREP,       ONLY : CINGRID_TYPE, CINTERP_TYPE
-USE MODD_GRID_LATLONREGUL,  ONLY : NILENGTH,NINDEPTH
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-#ifdef SFX_MPI
-INCLUDE "mpif.h"
-#endif
-!
-!*      0.1    declarations of arguments
-!
- CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
- CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
- CHARACTER(LEN=28),  INTENT(IN)  :: HFILE     ! name of file
-INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
-REAL,DIMENSION(:,:), POINTER    :: PFIELD    ! field to interpolate horizontally
-!
-!*      0.2    declarations of local variables
-!
-!TYPE (DATE_TIME)                :: TZTIME_GRIB    ! current date and time
-!CHARACTER(LEN=6)              :: YINMODEL ! model from which GRIB file originates
-REAL, DIMENSION(:),       POINTER :: ZFIELD   ! field read
- CHARACTER(LEN=28) :: YNCVAR
-INTEGER :: INFOMPI
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------------
-!
-!*      1.     Grid type
-!              ---------
-IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_NETCDF',0,ZHOOK_HANDLE)
-CINGRID_TYPE='LATLON '
-!
-!*      2.     Reading of field
-!              ----------------
-!-----------------
-SELECT CASE(HSURF)
-!-----------------
-!
-!* 2.1 Orography
-!      ---------
-!
-  CASE('ZS     ')
-    YNCVAR='topo'
-    CALL PREP_NETCDF_GRID(HFILE,YNCVAR)
-    IF (NRANK==NPIO) THEN
-      CALL READ_NETCDF_ZS_SEA(HFILE,YNCVAR,ZFIELD)
-      ALLOCATE(PFIELD(MAX(1,NILENGTH),1))
-      PFIELD(:,1) = ZFIELD(:)
-      DEALLOCATE(ZFIELD)
-    ELSE
-      ALLOCATE(PFIELD(0,0))
-    ENDIF
-!
-!
-!* 2.2 Temperature profiles
-!      --------------------
-!
-  CASE('SST    ','SSS    ','SIC    ')
-    IF ( HSURF == 'SST    ') THEN
-       YNCVAR='temperature'
-    ELSE IF ( HSURF == 'SSS    ') THEN
-       YNCVAR='sss'
-    ELSE IF ( HSURF == 'SIC    ') THEN
-       YNCVAR='sic'
-    END IF
-    CALL PREP_NETCDF_GRID(HFILE,YNCVAR)
-    IF (NRANK==NPIO) THEN 
-      CALL READ_NETCDF_SST(HFILE,YNCVAR,ZFIELD)
-      ALLOCATE(PFIELD(MAX(1,NILENGTH),1))
-      PFIELD(:,1) = ZFIELD(:)
-      DEALLOCATE(ZFIELD)
-    ENDIF
-!
-!
-!* 2.3 Wave parameters
-!      --------------------
-!
-  CASE('HS     ')
-    YNCVAR='significant_h'
-    CALL PREP_NETCDF_GRID(HFILE,YNCVAR)
-    CALL READ_NETCDF_WAVE(HFILE,YNCVAR,ZFIELD)
-    ALLOCATE(PFIELD(MAX(1,NILENGTH),1))
-    PFIELD(:,1) = ZFIELD(:)
-    DEALLOCATE(ZFIELD)
-!
-  CASE('TP     ')
-    YNCVAR='peak_period'
-    CALL PREP_NETCDF_GRID(HFILE,YNCVAR)
-    CALL READ_NETCDF_WAVE(HFILE,YNCVAR,ZFIELD)
-    ALLOCATE(PFIELD(MAX(1,NILENGTH),1))
-    PFIELD(:,1) = ZFIELD(:)
-    DEALLOCATE(ZFIELD)
-!
-END SELECT
-!
-IF (NPROC>1) THEN
-#ifdef SFX_MPI
-  CALL MPI_BCAST(CINTERP_TYPE,LEN(CINTERP_TYPE),MPI_CHARACTER,NPIO,NCOMM,INFOMPI)
-#endif
-  IF (TRIM(CINTERP_TYPE)=="UNIF") THEN
-    IF (NRANK/=NPIO) ALLOCATE(PFIELD(1,1))
-#ifdef SFX_MPI
-    CALL MPI_BCAST(PFIELD(1:1,1:1),KIND(PFIELD)/4,MPI_REAL,NPIO,NCOMM,INFOMPI)
-#endif
-  ELSEIF (NRANK/=NPIO) THEN
-    ALLOCATE(PFIELD(0,0))
-  ENDIF
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_NETCDF',1,ZHOOK_HANDLE)
-!-------------------------------------------------------------------------------------
-END SUBROUTINE PREP_SEAFLUX_NETCDF
diff --git a/src/OASIS/SURFEX/prep_seaflux_unif.F90 b/src/OASIS/SURFEX/prep_seaflux_unif.F90
deleted file mode 100644
index 7af8afcc8..000000000
--- a/src/OASIS/SURFEX/prep_seaflux_unif.F90
+++ /dev/null
@@ -1,103 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE PREP_SEAFLUX_UNIF(KLUOUT,HSURF,PFIELD)
-!     #################################################################################
-!
-!!****  *PREP_SEAFLUX_UNIF* - prepares SEAFLUX field from prescribed values
-!!
-!!    PURPOSE
-!!    -------
-!
-!!**  METHOD
-!!    ------
-!!
-!!    REFERENCE
-!!    ---------
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!     S. Malardel
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004
-!!      Modified    09/2013 : S. Senesi : extends to SSS and SIC variables
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!!------------------------------------------------------------------
-!
-
-!
-USE MODD_PREP,       ONLY : CINTERP_TYPE
-USE MODD_PREP_SEAFLUX,   ONLY : XSST_UNIF, XSSS_UNIF, XSIC_UNIF
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*      0.1    declarations of arguments
-!
-INTEGER,            INTENT(IN)  :: KLUOUT    ! output listing logical unit
- CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
-REAL, POINTER, DIMENSION(:,:)   :: PFIELD    ! field to interpolate horizontally
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!*      0.2    declarations of local variables
-!
-!
-!-------------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_UNIF',0,ZHOOK_HANDLE)
-SELECT CASE(HSURF)
-!
-!*      3.0    Orography
-!
-  CASE('ZS     ')
-    ALLOCATE(PFIELD(1,1))
-    PFIELD = 0.
-!
-!*      3.1    Sea surface temperature
-!
-  CASE('SST    ')
-    ALLOCATE(PFIELD(1,1))
-    PFIELD = XSST_UNIF
-!
-!*      3.2    Sea surface salinity
-!
-  CASE('SSS    ')
-    ALLOCATE(PFIELD(1,1))
-    PFIELD = XSSS_UNIF
-!
-!
-!*      3.3    Sea Ice Cover
-!
-  CASE('SIC    ')
-    ALLOCATE(PFIELD(1,1))
-    PFIELD = XSIC_UNIF
-!
-!*      3.4    Wave parameters
-!
-  CASE('HS     ')
-    ALLOCATE(PFIELD(1,1))
-    PFIELD = 1.
-!
-  CASE('TP     ')
-    ALLOCATE(PFIELD(1,1))
-    PFIELD = 8.
-END SELECT
-!
-!*      4.     Interpolation method
-!              --------------------
-!
-CINTERP_TYPE='UNIF  '
-IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_UNIF',1,ZHOOK_HANDLE)
-!
-!
-!-------------------------------------------------------------------------------------
-END SUBROUTINE PREP_SEAFLUX_UNIF
diff --git a/src/OASIS/SURFEX/put_sfx_sea.F90 b/src/OASIS/SURFEX/put_sfx_sea.F90
deleted file mode 100644
index 36d61886a..000000000
--- a/src/OASIS/SURFEX/put_sfx_sea.F90
+++ /dev/null
@@ -1,290 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE PUT_SFX_SEA (S, U, W, KLUOUT,OCPL_SEAICE,OWATER,PSEA_SST,PSEA_UCU, &
-                             PSEA_VCU,PSEAICE_SIT,PSEAICE_CVR,PSEAICE_ALB )  
-!     ####################################################
-!
-!!****  *PUT_SFX_SEA* - routine to put some variables from
-!!                       an oceanic general circulation model
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme      *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    08/2009
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_WATFLUX_n, ONLY : WATFLUX_t
-!
-USE MODD_SFX_OASIS
-USE MODD_SURF_PAR,   ONLY : XUNDEF, NUNDEF
-USE MODD_CSTS,       ONLY : XTT, XTTS, XICEC
-!
-!
-USE MODI_PACK_SAME_RANK
-USE MODI_ABOR1_SFX
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(WATFLUX_t), INTENT(INOUT) :: W
-!
-INTEGER,           INTENT(IN)  :: KLUOUT
-LOGICAL,           INTENT(IN)  :: OCPL_SEAICE
-LOGICAL,           INTENT(IN)  :: OWATER
-!
-REAL, DIMENSION(:), INTENT(IN) :: PSEA_SST
-REAL, DIMENSION(:), INTENT(IN) :: PSEA_UCU
-REAL, DIMENSION(:), INTENT(IN) :: PSEA_VCU
-REAL, DIMENSION(:), INTENT(IN) :: PSEAICE_SIT
-REAL, DIMENSION(:), INTENT(IN) :: PSEAICE_CVR
-REAL, DIMENSION(:), INTENT(IN) :: PSEAICE_ALB
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-!
-CHARACTER(LEN=50)     :: YCOMMENT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA',0,ZHOOK_HANDLE)
-!
-!*       1.0   Initialization
-!              --------------
-!
-!
-!*       2.0   Get variable over sea
-!              ---------------------
-!
-IF(U%NSIZE_SEA>0)THEN
-! 
-  CALL TREAT_SEA(U%NSIZE_SEA)
-!
-ENDIF
-!
-!*       3.0   Get variable over water without flake
-!              -------------------------------------
-!
-IF(OWATER.AND.U%NSIZE_WATER>0)THEN
-!
-  CALL TREAT_WATER(U%NSIZE_WATER)
-!
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-CONTAINS
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE TREAT_SEA(KLU)
-!
-USE MODI_PACK_SAME_RANK
-!
-IMPLICIT NONE
-!
-INTEGER,     INTENT(IN) :: KLU
-!
-REAL,    DIMENSION(KLU) :: ZSST     ! sea surface temperature
-REAL,    DIMENSION(KLU) :: ZICE_FRAC! ice fraction
-REAL                    :: ZTMIN    ! Minimum temperature over this proc
-REAL                    :: ZTMAX    ! Maximum temperature over this proc
-CHARACTER(LEN=50)       :: YCOMMENT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA:TREAT_SEA',0,ZHOOK_HANDLE)
-!
-IF(NSEA_SST_ID/=NUNDEF)THEN
-  YCOMMENT='Sea surface temperature'
-  CALL PACK_SAME_RANK(U%NR_SEA(:),PSEA_SST(:),ZSST(:))
-  WHERE (ZSST(:)/=0.0) S%XSST(:)=ZSST(:)
-  CALL CHECK_SEA(YCOMMENT,S%XSST(:))
-  !
-  ZTMIN=MINVAL(S%XSST(:))
-  ZTMAX=MAXVAL(S%XSST(:))
-  !
-  IF(ZTMIN<=0.0.OR.ZTMAX>500.)THEN
-    WRITE(KLUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-    WRITE(KLUOUT,*)'SST from ocean model not define or not physic'
-    WRITE(KLUOUT,*)'SST MIN =',ZTMIN,'SST MAX =',ZTMAX
-    WRITE(KLUOUT,*)'There is certainly a problem between         '
-    WRITE(KLUOUT,*)'SURFEX and OASIS sea/land mask               '
-    WRITE(KLUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-    CALL ABOR1_SFX('PUT_SFX_SEA: SST from ocean model not define or not physic')
-  ENDIF
-ENDIF
-!
-IF(NSEA_UCU_ID/=NUNDEF)THEN
-  YCOMMENT='Sea u-current stress'
-  CALL PACK_SAME_RANK(U%NR_SEA(:),PSEA_UCU(:),S%XUMER(:))
-  CALL CHECK_SEA(YCOMMENT,S%XUMER(:))
-ENDIF
-!
-IF(NSEA_VCU_ID/=NUNDEF)THEN
-  YCOMMENT='Sea v-current stress'
-  CALL PACK_SAME_RANK(U%NR_SEA(:),PSEA_VCU(:),S%XVMER(:))
-  CALL CHECK_SEA(YCOMMENT,S%XVMER(:))
-ENDIF
-!
-IF(OCPL_SEAICE)THEN
-!
-  YCOMMENT='Sea-ice Temperature'
-  CALL PACK_SAME_RANK(U%NR_SEA(:),PSEAICE_SIT(:),S%XTICE(:))
-  CALL CHECK_SEA(YCOMMENT,S%XTICE(:))
-!
-  YCOMMENT='Sea-ice cover'
-  CALL PACK_SAME_RANK(U%NR_SEA(:),PSEAICE_CVR(:),ZICE_FRAC(:))
-  CALL CHECK_SEA(YCOMMENT,ZICE_FRAC(:))
-!
-  WHERE(ZICE_FRAC(:)>=XICEC)
-    S%XSST(:) = MIN(S%XSST(:),XTTS-0.01)
-  ELSEWHERE
-    S%XSST(:) = MAX(S%XSST(:),XTTS)
-  ENDWHERE
-!
-  YCOMMENT='Sea-ice albedo'
-  CALL PACK_SAME_RANK(U%NR_SEA(:),PSEAICE_ALB(:),S%XICE_ALB(:))
-  CALL CHECK_SEA(YCOMMENT,S%XICE_ALB(:))
-!
-! Fill the table with sea ice albedo where temperature is lower than the
-! freezing point
-  WHERE(S%XSST(:) < XTTS)
-    S%XDIR_ALB(:)=S%XICE_ALB(:)
-    S%XSCA_ALB(:)=S%XICE_ALB(:)
-  ENDWHERE
-!
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA:TREAT_SEA',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE TREAT_SEA
-!
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE TREAT_WATER(KLU)
-!
-!
-IMPLICIT NONE
-!
-INTEGER,     INTENT(IN) :: KLU
-!
-REAL,    DIMENSION(KLU) :: ZICE_FRAC! ice fraction
-REAL                    :: ZTMIN    ! Minimum temperature over this proc
-REAL                    :: ZTMAX    ! Maximum temperature over this proc
-CHARACTER(LEN=50)       :: YCOMMENT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA:TREAT_WATER',0,ZHOOK_HANDLE)
-!
-YCOMMENT='Water surface temperature'
-CALL PACK_SAME_RANK(U%NR_WATER(:),PSEA_SST(:),W%XTS(:))
-CALL CHECK_SEA(YCOMMENT,W%XTS(:))
-!
-ZTMIN=MINVAL(W%XTS(:))
-ZTMAX=MAXVAL(W%XTS(:))
-!
-IF(ZTMIN<=0.0.OR.ZTMAX>500.)THEN
-  WRITE(KLUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-  WRITE(KLUOUT,*)'TS_WATER from ocean model not define or not physic'
-  WRITE(KLUOUT,*)'TS_WATER MIN =',ZTMIN,'TS_WATER MAX =',ZTMAX
-  WRITE(KLUOUT,*)'There is certainly a problem between              '
-  WRITE(KLUOUT,*)'SURFEX and OASIS sea/land mask                    '
-  WRITE(KLUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-  CALL ABOR1_SFX('PUT_SFX_SEA: SST from ocean model not define or not physic')
-ENDIF
-!
-YCOMMENT='Water-ice Temperature'
-CALL PACK_SAME_RANK(U%NR_WATER(:),PSEAICE_SIT(:),W%XTICE(:))
-CALL CHECK_SEA(YCOMMENT,W%XTICE(:))
-!
-YCOMMENT='Water-ice cover'
-CALL PACK_SAME_RANK(U%NR_WATER(:),PSEAICE_CVR(:),ZICE_FRAC(:))
-CALL CHECK_SEA(YCOMMENT,ZICE_FRAC(:))
-!
-WHERE(ZICE_FRAC(:)>=XICEC)
-  W%XTS(:) = MIN(W%XTS(:),XTT-0.01)
-ELSEWHERE
-  W%XTS(:) = MAX(W%XTS(:),XTT)
-ENDWHERE
-!
-YCOMMENT='Water-ice albedo'
-CALL PACK_SAME_RANK(U%NR_WATER(:),PSEAICE_ALB(:),W%XICE_ALB(:))
-CALL CHECK_SEA(YCOMMENT,W%XICE_ALB(:))
-!
-! Fill the table with sea ice albedo where temperature is lower than the freezing
-! point
-WHERE(W%XTS(:) < XTT)
-  W%XDIR_ALB(:)=W%XICE_ALB(:)
-  W%XSCA_ALB(:)=W%XICE_ALB(:)
-ENDWHERE
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA:TREAT_WATER',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE TREAT_WATER
-!
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE CHECK_SEA(HCOMMENT,PFIELD)
-!
-IMPLICIT NONE
-!
-CHARACTER(LEN=*),   INTENT(IN) :: HCOMMENT
-REAL, DIMENSION(:), INTENT(IN) :: PFIELD
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA:CHECK_SEA',0,ZHOOK_HANDLE)
-!
-IF(ANY(PFIELD(:)>=XUNDEF))THEN
-  WRITE(KLUOUT,*)'PUT_SFX_SEA: problem after get '//TRIM(HCOMMENT)//' from OASIS'
-  WRITE(KLUOUT,*)'PUT_SFX_SEA: some points not defined = ',COUNT(PFIELD(:)>=XUNDEF)
-  CALL ABOR1_SFX('PUT_SFX_SEA: problem after get '//TRIM(HCOMMENT)//' from OASIS')          
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFX_SEA:CHECK_SEA',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE CHECK_SEA
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE PUT_SFX_SEA
diff --git a/src/OASIS/SURFEX/put_sfxcpln.F90 b/src/OASIS/SURFEX/put_sfxcpln.F90
deleted file mode 100644
index 99066282d..000000000
--- a/src/OASIS/SURFEX/put_sfxcpln.F90
+++ /dev/null
@@ -1,186 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE PUT_SFXCPL_n (F, IM, S, U, W, &
-                         HPROGRAM,KI,KSW,PSW_BANDS,PZENITH, &
-                        PLAND_WTD,PLAND_FWTD,PLAND_FFLOOD, &
-                        PLAND_PIFLOOD,PSEA_SST,PSEA_UCU,   &
-                        PSEA_VCU,PSEAICE_SIT,PSEAICE_CVR,  &
-                        PSEAICE_ALB,PTSRAD,                &
-                        PDIR_ALB,PSCA_ALB,PEMIS,PTSURF,    & 
-                        PWAVE_CHA,PWAVE_UCU,PWAVE_VCU,     &
-                        PWAVE_HS,PWAVE_TP     )  
-!     #################################################################################################
-!
-!!****  *PUT_SFXCPL_n* - routine to modify some variables in surfex from information coming
-!                        from an ocean and/or a river routing model (but already on Surfex grid)
-!
-!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme      *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    08/2009
-!!      Modified       11/2014 : J. Pianezze - add wave coupling parameters
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_FLAKE_n, ONLY : FLAKE_t
-USE MODD_SURFEX_n, ONLY : ISBA_MODEL_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-USE MODD_WATFLUX_n, ONLY : WATFLUX_t
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-USE MODN_SFX_OASIS,  ONLY : LWATER
-USE MODD_SFX_OASIS,  ONLY : LCPL_SEA, LCPL_SEAICE, &
-                            LCPL_LAND, LCPL_GW,    &
-                            LCPL_FLOOD, LCPL_WAVE
-!                          
-USE MODI_GET_LUOUT
-!
-USE MODI_ABOR1_SFX
-USE MODI_PUT_SFX_LAND
-USE MODI_PUT_SFX_SEA
-USE MODI_PUT_SFX_WAVE
-USE MODI_UPDATE_ESM_SURF_ATM_n
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(FLAKE_t), INTENT(INOUT) :: F
-TYPE(ISBA_MODEL_t), INTENT(INOUT) :: IM
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-TYPE(WATFLUX_t), INTENT(INOUT) :: W
-!
-CHARACTER(LEN=6),        INTENT(IN)  :: HPROGRAM
-INTEGER,                 INTENT(IN)  :: KI      ! number of points
-INTEGER,                 INTENT(IN)  :: KSW     ! number of bands
-!
-REAL, DIMENSION(KI),      INTENT(IN) :: PZENITH
-REAL, DIMENSION(KSW),     INTENT(IN) :: PSW_BANDS ! mean wavelength of each shortwave band (m)
-!
-REAL, DIMENSION(KI),      INTENT(IN) :: PLAND_WTD     ! Land water table depth (m)
-REAL, DIMENSION(KI),      INTENT(IN) :: PLAND_FWTD    ! Land grid-cell fraction of water table rise (-)
-REAL, DIMENSION(KI),      INTENT(IN) :: PLAND_FFLOOD  ! Land Floodplains fraction (-)
-REAL, DIMENSION(KI),      INTENT(IN) :: PLAND_PIFLOOD ! Land Potential flood infiltration (kg/m2)
-!
-REAL, DIMENSION(KI),      INTENT(IN) :: PSEA_SST ! Sea surface temperature (K)
-REAL, DIMENSION(KI),      INTENT(IN) :: PSEA_UCU ! Sea u-current stress (Pa)
-REAL, DIMENSION(KI),      INTENT(IN) :: PSEA_VCU ! Sea v-current stress (Pa)
-!
-REAL, DIMENSION(KI),      INTENT(IN) :: PSEAICE_SIT ! Sea-ice Temperature (K)
-REAL, DIMENSION(KI),      INTENT(IN) :: PSEAICE_CVR ! Sea-ice cover (-)
-REAL, DIMENSION(KI),      INTENT(IN) :: PSEAICE_ALB ! Sea-ice albedo (-)
-!
-REAL, DIMENSION(KI),      INTENT(IN) :: PWAVE_CHA ! Charnock coefficient (-)
-REAL, DIMENSION(KI),      INTENT(IN) :: PWAVE_UCU ! u-current velocity   (m/s)
-REAL, DIMENSION(KI),      INTENT(IN) :: PWAVE_VCU ! v-current velocity   (m/s)
-REAL, DIMENSION(KI),      INTENT(IN) :: PWAVE_HS  ! Significant wave height (m)
-REAL, DIMENSION(KI),      INTENT(IN) :: PWAVE_TP  ! Peak period (s)
-!
-REAL, DIMENSION(KI),     INTENT(OUT) :: PTSRAD   ! Total radiative temperature see by the atmosphere
-REAL, DIMENSION(KI),     INTENT(OUT) :: PTSURF   ! Total surface temperature see by the atmosphere
-REAL, DIMENSION(KI),     INTENT(OUT) :: PEMIS    ! Total emissivity see by the atmosphere
-REAL, DIMENSION(KI,KSW), INTENT(OUT) :: PDIR_ALB ! Total direct albedo see by the atmosphere
-REAL, DIMENSION(KI,KSW), INTENT(OUT) :: PSCA_ALB ! Total diffus albedo see by the atmosphere
-!
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-!
-INTEGER :: ILU, ILUOUT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('PUT_SFXCL_N',0,ZHOOK_HANDLE)
-!
-CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!-------------------------------------------------------------------------------
-!
-! Global argument
-!
-IF(KI/=U%NSIZE_FULL)THEN
-  WRITE(ILUOUT,*) 'size of field from the coupler :', KI
-  WRITE(ILUOUT,*) 'size of field in SURFEX        :', U%NSIZE_FULL
-  CALL ABOR1_SFX('PUT_SFXCPL_N: VECTOR SIZE NOT CORRECT FOR COUPLING')
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Put variable over land tile
-!-------------------------------------------------------------------------------
-!
-IF(LCPL_LAND)THEN
-  CALL PUT_SFX_LAND(IM%O, IM%S, IM%K, IM%NK, IM%NP, U, ILUOUT, LCPL_GW, LCPL_FLOOD, &
-                    PLAND_WTD(:), PLAND_FWTD(:),PLAND_FFLOOD(:),PLAND_PIFLOOD(:))        
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Put variable over sea and/or water tile
-!-------------------------------------------------------------------------------
-!
-IF(LCPL_SEA)THEN
-!
-  CALL PUT_SFX_SEA(S, U, W, ILUOUT,LCPL_SEAICE,LWATER,PSEA_SST(:),PSEA_UCU(:), &
-                   PSEA_VCU(:),PSEAICE_SIT(:),PSEAICE_CVR(:),PSEAICE_ALB(:) )
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Put variable over sea and/or water tile for waves
-!-------------------------------------------------------------------------------
-!
-IF(LCPL_WAVE)THEN
-!
-  CALL PUT_SFX_WAVE(S, U, &
-                    ILUOUT,PWAVE_CHA(:),PWAVE_UCU(:),PWAVE_VCU(:),PWAVE_HS(:),PWAVE_TP(:) )
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-! Update radiative properties at time t+1 for radiative scheme
-!-------------------------------------------------------------------------------
-!
-IF(LCPL_SEA.OR.LCPL_FLOOD)THEN
-  CALL UPDATE_ESM_SURF_ATM_n(F, IM, S, U, W, HPROGRAM, KI, KSW, PZENITH, PSW_BANDS,  &
-                             PTSRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF )
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('PUT_SFXCL_N',1,ZHOOK_HANDLE)
-!
-!
-END SUBROUTINE PUT_SFXCPL_n
diff --git a/src/OASIS/SURFEX/read_lcover.F90 b/src/OASIS/SURFEX/read_lcover.F90
deleted file mode 100644
index 0d60f0e61..000000000
--- a/src/OASIS/SURFEX/read_lcover.F90
+++ /dev/null
@@ -1,119 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE READ_LCOVER (HPROGRAM,OCOVER)
-!     ################################
-!
-!!****  *READ_LCOVER* - routine to read a file for
-!!                         physiographic data file of model _n 
-!!
-!!    PURPOSE
-!!    -------
-!!       The purpose of this routine is to initialise the list of covers
-!!
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!      
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      V. Masson   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2008
-!!      M. Moge     02/2015 parallelization for mésonh
-!!      J. Pianezze 08/2016 replacement of MPI_COMM_WOLRD by NMNH_COMM_WORLD
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-#ifdef MNH_PARALLEL
-USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
-#endif
-!
-USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
-!
-USE MODI_READ_SURF
-USE MODI_OLD_NAME
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-#ifdef MNH_PARALLEL
-#ifndef NOMPI
-INCLUDE "mpif.h"
-#endif
-#endif
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-!
- CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
-LOGICAL, DIMENSION(JPCOVER)    :: OCOVER   ! list of covers
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-LOGICAL, DIMENSION(:), ALLOCATABLE :: GCOVER ! cover list in the file
- CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
- CHARACTER(LEN=LEN_HREC) :: YRECFMOLD      ! Name of the article to be read
-INTEGER   :: IVERSION       ! version of surfex file being read
-INTEGER   :: IRESP          ! Error code after redding
-#ifdef MNH_PARALLEL
-INTEGER   :: IINFO
-#endif
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------
-!
-!
-!* ascendant compatibility
-IF (LHOOK) CALL DR_HOOK('READ_LCOVER',0,ZHOOK_HANDLE)
-YRECFM='VERSION'
- CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP)
-IF (IVERSION<=3) THEN
-  ALLOCATE(GCOVER(255))
-ELSE
-  ALLOCATE(GCOVER(JPCOVER))
-END IF
- YRECFMOLD='COVER_LIST'
- CALL OLD_NAME(HPROGRAM,YRECFMOLD,YRECFM)
- CALL READ_SURF(HPROGRAM,YRECFM,GCOVER(:),IRESP,HDIR='-')
-!
-OCOVER=.FALSE.
-OCOVER(:SIZE(GCOVER))=GCOVER(:)
-!
-#ifdef MNH_PARALLEL
-#ifndef NOMPI
-CALL MPI_ALLREDUCE(GCOVER, OCOVER, SIZE(GCOVER),MPI_LOGICAL, MPI_LOR, NMNH_COMM_WORLD, IINFO)
-#else
-CALL MPI_ALLREDUCE(GCOVER, OCOVER, SIZE(GCOVER),MPI_LOGICAL, MPI_LOR, MPI_COMM_WORLD, IINFO)
-#endif
-#endif
-!
-DEALLOCATE(GCOVER)
-IF (LHOOK) CALL DR_HOOK('READ_LCOVER',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE READ_LCOVER
diff --git a/src/OASIS/SURFEX/read_nam_prep_seafluxn.F90 b/src/OASIS/SURFEX/read_nam_prep_seafluxn.F90
deleted file mode 100644
index 0f294e65a..000000000
--- a/src/OASIS/SURFEX/read_nam_prep_seafluxn.F90
+++ /dev/null
@@ -1,64 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE READ_NAM_PREP_SEAFLUX_n(HPROGRAM)
-!     #######################################################
-!
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!---------------------------------------
-!
-USE MODD_SURF_PAR, ONLY : XUNDEF, NUNDEF
-USE MODN_PREP_SEAFLUX
-
-USE MODI_DEFAULT_PREP_SEAFLUX
-!
-USE MODI_TEST_NAM_VAR_SURF
-USE MODI_GET_LUOUT
-USE MODI_OPEN_NAMELIST
-USE MODI_CLOSE_NAMELIST
-USE MODE_POS_SURF
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
- CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
-!
-INTEGER :: ILUNAM         ! logical unit of namelist file
-INTEGER :: ILUOUT
-LOGICAL :: GFOUND         ! Return code when searching namelist
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!---------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('READ_NAM_PREP_SEAFLUX_N',0,ZHOOK_HANDLE)
-NYEAR=NUNDEF
-NMONTH=NUNDEF
-NDAY=NUNDEF
-XTIME=XUNDEF
-!
-CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
-CALL DEFAULT_PREP_SEAFLUX
-!
-CALL OPEN_NAMELIST(HPROGRAM,ILUNAM)
-CALL POSNAM(ILUNAM,'NAM_PREP_SEAFLUX',GFOUND,ILUOUT)
-IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_PREP_SEAFLUX)
-CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM)
-!
-CALL TEST_NAM_VAR_SURF(ILUOUT,'CTYPE_SEAFLX',   CTYPE_SEAFLX,   '      ','GRIB  ','MESONH',&
-                          'ASCII ','NETCDF','LFI   ','FA    ')   
-CALL TEST_NAM_VAR_SURF(ILUOUT,'CTYPEPGD',   CTYPEPGD,   '      ','GRIB  ','MESONH','ASCII ','LFI   ','FA    ')
-CALL TEST_NAM_VAR_SURF(ILUOUT,'CSEAICE_SCHEME',CSEAICE_SCHEME,'GELATO','NONE  ')
- CALL TEST_NAM_VAR_SURF(ILUOUT,'CTYPEWAVE', CTYPEWAVE, '      ','GRIB  ','MESONH','ASCII ',&
-                          'NETCDF','LFI   ')
-! 
-IF (LHOOK) CALL DR_HOOK('READ_NAM_PREP_SEAFLUX_N',1,ZHOOK_HANDLE)
-!------------------------------------
-!
-END SUBROUTINE READ_NAM_PREP_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/read_namelists_seafluxn.F90 b/src/OASIS/SURFEX/read_namelists_seafluxn.F90
deleted file mode 100644
index 0630335e0..000000000
--- a/src/OASIS/SURFEX/read_namelists_seafluxn.F90
+++ /dev/null
@@ -1,71 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-SUBROUTINE READ_NAMELISTS_SEAFLUX_n (SM, &
-                                     HPROGRAM,HINIT)
-!     #######################################################
-!
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!---------------------------------------------------------------------------   
-!
-!
-!
-USE MODD_SURFEX_n, ONLY : SEAFLUX_MODEL_t
-!
-USE MODN_SEAFLUX_n
-!
-USE MODI_DEFAULT_SEAFLUX
-USE MODI_DEFAULT_CH_DEP
-USE MODI_DEFAULT_DIAG_SEAFLUX
-USE MODI_READ_DEFAULT_SEAFLUX_n
-USE MODI_DEFAULT_SEAICE
-USE MODI_READ_SEAFLUX_CONF_n
-!
-USE MODI_READ_NAM_PREP_SEAFLUX_n
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!
-TYPE(SEAFLUX_MODEL_t), INTENT(INOUT) :: SM
-!
- CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
- CHARACTER(LEN=3),   INTENT(IN)  :: HINIT     ! choice of fields to initialize
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!---------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('READ_NAMELISTS_SEAFLUX_N',0,ZHOOK_HANDLE)
-!
-CALL DEFAULT_SEAFLUX(XTSTEP,XOUT_TSTEP,CSEA_ALB,CSEA_FLUX,LPWG,         &
-                     LPRECIP,LPWEBB,NZ0,NGRVWAVES,LPROGSST,           &
-                     NTIME_COUPLING,XOCEAN_TSTEP,XICHCE,CINTERPOL_SST,&
-                     CINTERPOL_SSS,LWAVEWIND)
-CALL DEFAULT_SEAICE(HPROGRAM, CINTERPOL_SIC, CINTERPOL_SIT,             &
-                    XFREEZING_SST,XSEAICE_TSTEP, XSIC_EFOLDING_TIME,    &
-                    XSIT_EFOLDING_TIME, XCD_ICE_CST, XSI_FLX_DRV        )     
-!               
-CALL DEFAULT_CH_DEP(CCH_DRY_DEP)
-!
-CALL DEFAULT_DIAG_SEAFLUX(N2M,LSURF_BUDGET,L2M_MIN_ZS,LRAD_BUDGET,LCOEF,LSURF_VARS,&
-                          LDIAG_OCEAN,LDIAG_MISC_SEAICE,LSURF_BUDGETC,LRESET_BUDGETC,XDIAG_TSTEP)  
-!
-CALL READ_DEFAULT_SEAFLUX_n(SM%CHS, SM%SD%GO, SM%SD%O, SM%SD%DMI, SM%O, SM%S, &
-                            HPROGRAM)
-!
-CALL READ_SEAFLUX_CONF_n(SM%CHS, SM%SD%GO, SM%SD%O, SM%SD%DMI, SM%O, SM%S, &
-                         HPROGRAM)
-!
-IF (HINIT=='PRE') CALL READ_NAM_PREP_SEAFLUX_n(HPROGRAM)
-!
-IF (LHOOK) CALL DR_HOOK('READ_NAMELISTS_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!---------------------------------------------------------------------------
-!
-END SUBROUTINE READ_NAMELISTS_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/read_prep_seaflux_conf.F90 b/src/OASIS/SURFEX/read_prep_seaflux_conf.F90
deleted file mode 100644
index d0d819072..000000000
--- a/src/OASIS/SURFEX/read_prep_seaflux_conf.F90
+++ /dev/null
@@ -1,203 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE READ_PREP_SEAFLUX_CONF (OMERCATOR, HPROGRAM,HVAR,HFILE,HFILETYPE,&
-                                         HFILEPGD,HFILEPGDTYPE, HATMFILE,HATMFILETYPE,&
-                                         HPGDFILE,HPGDFILETYPE,KLUOUT,OUNIF)
-!     #######################################################
-!
-!!****  *READ_PREP_SEAFLUX_CONF* - routine to read the configuration for 
-!!                                 SEAFLUX fields preparation
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Malardel   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2004 
-!!      P. Le Moigne 10/2005, Phasage Arome
-!!      C. Lebeaupin 01/2008  Add oceanic variables initialization
-!!      Modified     09/2013  S. Senesi : introduce variables for sea-ice scheme 
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-USE MODD_OCEAN_n, ONLY : OCEAN_t
-!
-USE MODN_PREP_SEAFLUX
-!
-USE MODI_READ_PREP_SURF_ATM_CONF
-USE MODI_PREP_OCEAN_MERCATORVERGRID
-!
-USE MODD_PREP_SEAFLUX, ONLY : CFILE_SEAFLX, CTYPE_SEAFLX, CFILEPGD_SEAFLX, CTYPEPGD, &
-                              CFILEWAVE_SEAFLX, CTYPEWAVE, XSST_UNIF, XSSS_UNIF, XSIC_UNIF
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF
-!
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-USE MODI_ABOR1_SFX
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-LOGICAL, INTENT(IN) :: OMERCATOR
-!
-CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling ISBA
-CHARACTER(LEN=7),  INTENT(IN)  :: HVAR     ! variable treated
-CHARACTER(LEN=28), INTENT(OUT) :: HFILE    ! file name
-CHARACTER(LEN=6),  INTENT(OUT) :: HFILETYPE! file type
-CHARACTER(LEN=28), INTENT(OUT) :: HFILEPGD    ! file name
-CHARACTER(LEN=6),  INTENT(OUT) :: HFILEPGDTYPE! file type
-CHARACTER(LEN=28), INTENT(IN)  :: HATMFILE    ! atmospheric file name
-CHARACTER(LEN=6),  INTENT(IN)  :: HATMFILETYPE! atmospheric file type
-CHARACTER(LEN=28), INTENT(IN)  :: HPGDFILE    ! atmospheric file name
-CHARACTER(LEN=6),  INTENT(IN)  :: HPGDFILETYPE! atmospheric file type
-INTEGER,           INTENT(IN)  :: KLUOUT   ! logical unit of output listing
-LOGICAL,           INTENT(OUT) :: OUNIF    ! flag for prescribed uniform field
-
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears 
-                                    ! at the open of the file in LFI  routines 
-INTEGER           :: ILUNAM         ! Logical unit of namelist file
-!
- CHARACTER(LEN=28) :: YNAMELIST      ! namelist file
-!
-LOGICAL           :: GFOUND         ! Return code when searching namelist
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------
-!
-!
-IF (LHOOK) CALL DR_HOOK('READ_PREP_SEAFLUX_CONF',0,ZHOOK_HANDLE)
-HFILE = '                         '
-HFILETYPE = '      '
-!
-HFILEPGD = '                            '
-HFILEPGDTYPE = '      '
-!
-OUNIF     = .FALSE.
-!
-!-------------------------------------------------------------------------------
-!
-!* Select seaflux files if they are defined
-!  -----------------------------------------
-!
-IF (HVAR .EQ. 'HS     ' .OR. HVAR .EQ. 'TP     ') THEN
-  IF (LEN_TRIM(HFILE)==0 .AND. LEN_TRIM(CFILEWAVE_SEAFLX)>0 .AND. LEN_TRIM(CTYPEWAVE)>0) THEN
-    HFILE     = CFILEWAVE_SEAFLX
-    HFILETYPE = CTYPEWAVE
-  END IF
-ELSE
-  IF (LEN_TRIM(HFILE)==0 .AND. LEN_TRIM(CFILE_SEAFLX)>0 .AND. LEN_TRIM(CTYPE_SEAFLX)>0) THEN
-    HFILE     = CFILE_SEAFLX
-    HFILETYPE = CTYPE_SEAFLX
-  END IF
-END IF
-!
-IF (LEN_TRIM(HFILEPGD)==0 .AND. LEN_TRIM(CFILEPGD_SEAFLX)>0 .AND. LEN_TRIM(CTYPEPGD)>0) THEN
-  HFILEPGD     = CFILEPGD_SEAFLX
-  HFILEPGDTYPE = CTYPEPGD
-END IF
-!
-!! If no file name in the scheme namelist,
-!! try to find a name in NAM_SURF_ATM
-!
-IF (LEN_TRIM(HFILE)==0) THEN
-!
- CALL READ_PREP_SURF_ATM_CONF(HPROGRAM,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,&
-                             HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,KLUOUT)
-!
-END IF
-!-------------------------------------------------------------------------------
-!
-!* Is an uniform field prescribed?
-!  ------------------------------
-!
-SELECT CASE (HVAR)
-   CASE ('SST    ') 
-      OUNIF = (XSST_UNIF/=XUNDEF) 
-   CASE ('SSS    ') 
-      IF (CSEAICE_SCHEME == 'NONE  '.AND. &
-         LEN_TRIM(HFILETYPE)==0.0   .AND. &
-         XSSS_UNIF==XUNDEF                )THEN
-         XSSS_UNIF=0.0
-      ENDIF
-      OUNIF = (XSSS_UNIF/=XUNDEF)
-   CASE ('SIC    ') 
-      OUNIF = (XSIC_UNIF/=XUNDEF) 
-END SELECT
-
-!
-!-------------------------------------------------------------------------------
-!
-!* If no file and no uniform field is prescribed: error
-!  ---------------------------------------------
-!
-IF (HVAR=='DATE   ' .OR. HVAR=='ZS     ') THEN
-  OUNIF = (HFILETYPE=='      ')
-  IF (LHOOK) CALL DR_HOOK('READ_PREP_SEAFLUX_CONF',1,ZHOOK_HANDLE)
-  RETURN
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-!* If no file and var == wave: uniform field
-!  ---------------------------------------------
-!
-IF (HVAR=='HS    ' .OR. HVAR=='TP    ') THEN
-  OUNIF = (HFILETYPE/='NETCDF')
-  IF (LHOOK) CALL DR_HOOK('READ_PREP_SEAFLUX_CONF',1,ZHOOK_HANDLE)
-  RETURN
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-IF (LEN_TRIM(HFILETYPE)==0 .AND. .NOT. OUNIF) THEN
-   CALL ABOR1_SFX('READ_PREP_SEAFLUX_CONF: AN INPUT VALUE IS REQUIRED FOR '//HVAR)
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-!* If 1D coupling: ocean variables initializing
-!  --------------------------------------------
-!
-IF (OMERCATOR) THEN
-  WRITE(KLUOUT,*) 'LMERCATOR=T : initializing oceanic vertical grid'
-  CALL PREP_OCEAN_MERCATORVERGRID(HPROGRAM,OUNIF)
-END IF
-IF (LHOOK) CALL DR_HOOK('READ_PREP_SEAFLUX_CONF',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE READ_PREP_SEAFLUX_CONF
diff --git a/src/OASIS/SURFEX/read_seafluxn.F90 b/src/OASIS/SURFEX/read_seafluxn.F90
deleted file mode 100644
index bf2ea39c6..000000000
--- a/src/OASIS/SURFEX/read_seafluxn.F90
+++ /dev/null
@@ -1,275 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE READ_SEAFLUX_n (DTCO, G, S, U, HPROGRAM,KLUOUT)
-!     #########################################
-!
-!!****  *READ_SEAFLUX_n* - read SEAFLUX varaibles
-!!
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!	V. Masson   *Meteo France*	
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2003 
-!!      Modified    02/2008 Add oceanic variables initialisation
-!!      S. Belamari 04/2014 Suppress LMERCATOR
-!!      R. Séférian 01/2015 introduce new ocean surface albedo
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-!
-!
-USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t
-USE MODD_SFX_GRID_n, ONLY : GRID_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-!
-USE MODD_SURF_PAR,       ONLY : XUNDEF
-!
-USE MODI_READ_SURF
-USE MODI_INTERPOL_SST_MTH
-!
-USE MODI_GET_TYPE_DIM_n
-USE MODI_ABOR1_SFX
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(DATA_COVER_t), INTENT(INOUT) :: DTCO
-TYPE(GRID_t), INTENT(INOUT) :: G
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-!
-CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
-INTEGER,           INTENT(IN)  :: KLUOUT
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-INTEGER           :: JMTH, INMTH
-CHARACTER(LEN=2 ) :: YMTH
-!
-INTEGER           :: ILU          ! 1D physical dimension
-!
-INTEGER           :: IRESP          ! Error code after redding
-!
-CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
-!
-INTEGER           :: IVERSION       ! surface version
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-!* 1D physical dimension
-!
-IF (LHOOK) CALL DR_HOOK('READ_SEAFLUX_N',0,ZHOOK_HANDLE)
-!
-YRECFM='SIZE_SEA'
-CALL GET_TYPE_DIM_n(DTCO, U, 'SEA   ',ILU)
-!
-!*       2.     Prognostic fields:
-!               -----------------
-!
-!* water temperature
-!
-ALLOCATE(S%XSST(ILU))
-!
-IF(S%LINTERPOL_SST)THEN
-!
-! Precedent, Current, Next, and Second-next Monthly SST
-  INMTH=4
-!
-  ALLOCATE(S%XSST_MTH(SIZE(S%XSST),INMTH))
-  DO JMTH=1,INMTH
-     WRITE(YMTH,'(I2)') (JMTH-1)
-     YRECFM='SST_MTH'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))
-     CALL READ_SURF(HPROGRAM,YRECFM,S%XSST_MTH(:,JMTH),IRESP)
-  ENDDO
-!
-  CALL INTERPOL_SST_MTH(S,'T')
-!
-ELSE
-! 
-  ALLOCATE(S%XSST_MTH(0,0))
-!
-  YRECFM='SST'
-  CALL READ_SURF(HPROGRAM,YRECFM,S%XSST(:),IRESP)
-!
-ENDIF
-!
-!* stochastic flux perturbation pattern
-!
-ALLOCATE(S%XPERTFLUX(ILU))
-IF( S%LPERTFLUX ) THEN
-   CALL READ_SURF(HPROGRAM,'PERTSEAFLUX',S%XPERTFLUX(:),IRESP)
-ELSE
-  S%XPERTFLUX(:) = 0.
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     Semi-prognostic fields:
-!               ----------------------
-!
-!* roughness length
-!
-ALLOCATE(S%XZ0(ILU))
-YRECFM='Z0SEA'
-S%XZ0(:) = 0.001
-CALL READ_SURF(HPROGRAM,YRECFM,S%XZ0(:),IRESP)
-!
-!* flag to use or not the SeaIce model 
-!
-CALL READ_SURF(HPROGRAM,'VERSION',IVERSION,IRESP)
-IF (IVERSION <8) THEN
-   S%LHANDLE_SIC=.FALSE.
-ELSE
-   CALL READ_SURF(HPROGRAM,'HANDLE_SIC',S%LHANDLE_SIC,IRESP)
-ENDIF
-!
-!
-! * sea surface salinity
-!
-ALLOCATE(S%XSSS(ILU))
-S%XSSS(:)=0.0
-!
-!* Sea surface salinity nudging data
-!
-IF(S%LINTERPOL_SSS)THEN
-   !
-   ! Precedent, Current, Next, and Second-next Monthly SSS
-   INMTH=4
-   !
-   ALLOCATE(S%XSSS_MTH(ILU,INMTH))
-   DO JMTH=1,INMTH
-      WRITE(YMTH,'(I2)') (JMTH-1)
-      YRECFM='SSS_MTH'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))
-      CALL READ_SURF(HPROGRAM,YRECFM,S%XSSS_MTH(:,JMTH),IRESP)
-      CALL CHECK_SEA(YRECFM,S%XSSS_MTH(:,JMTH))
-   ENDDO
-   !
-   CALL INTERPOL_SST_MTH(S,'S')
-   !
-ELSEIF (IVERSION>=8) THEN
-   ! 
-   ALLOCATE(S%XSSS_MTH(0,0))
-   !
-   YRECFM='SSS'
-   CALL READ_SURF(HPROGRAM,YRECFM,S%XSSS,IRESP)
-   IF(S%LHANDLE_SIC)THEN
-     CALL CHECK_SEA(YRECFM,S%XSSS(:))
-   ENDIF
-   !
-ENDIF
-!
-!* ocean surface albedo (direct and diffuse fraction)
-!
-ALLOCATE(S%XDIR_ALB (ILU))
-ALLOCATE(S%XSCA_ALB (ILU))
-!
-IF(S%CSEA_ALB=='RS14')THEN
-!
-  YRECFM='OSA_DIR'
-  CALL READ_SURF(HPROGRAM,YRECFM,S%XDIR_ALB(:),IRESP)
-!
-  YRECFM='OSA_SCA'
-  CALL READ_SURF(HPROGRAM,YRECFM,S%XSCA_ALB(:),IRESP)
-!
-ELSE
-!
-  S%XDIR_ALB(:)=0.065
-  S%XSCA_ALB(:)=0.065
-!
-ENDIF
-!
-!* Peak frequency and significant wave height
-!
-ALLOCATE(S%XHS(ILU))
-ALLOCATE(S%XTP(ILU))
-!
-IF (.NOT.S%LWAVEWIND) THEN
-  YRECFM='HS'
-  CALL READ_SURF(HPROGRAM,YRECFM,S%XHS(:),IRESP)
-  YRECFM='TP'
-  CALL READ_SURF(HPROGRAM,YRECFM,S%XTP(:),IRESP)
-ELSE
-  S%XHS(:)=XUNDEF
-  S%XTP(:)=XUNDEF
-END IF
-!
-IF (LHOOK) CALL DR_HOOK('READ_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-CONTAINS
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE CHECK_SEA(HFIELD,PFIELD)
-!
-!
-IMPLICIT NONE
-!
-CHARACTER(LEN=LEN_HREC),  INTENT(IN) :: HFIELD
-REAL, DIMENSION(:), INTENT(IN) :: PFIELD
-!
-REAL            :: ZMAX,ZMIN
-INTEGER         :: JI, IERRC
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('READ_SEAFLUX_N:CHECK_SEA',0,ZHOOK_HANDLE)
-!
-ZMIN=-1.0E10
-ZMAX=1.0E10
-!
-IERRC=0
-!
-DO JI=1,ILU
-   IF(PFIELD(JI)>ZMAX.OR.PFIELD(JI)<ZMIN)THEN
-      IERRC=IERRC+1
-      WRITE(KLUOUT,*)'PROBLEM FIELD '//TRIM(HFIELD)//' =',PFIELD(JI),&
-                     'NOT REALISTIC AT LOCATION (LAT/LON)',G%XLAT(JI),G%XLON(JI)
-   ENDIF
-ENDDO
-!         
-IF(IERRC>0) CALL ABOR1_SFX('READ_SEAFLUX_N: FIELD '//TRIM(HFIELD)//' NOT REALISTIC')
-!
-IF (LHOOK) CALL DR_HOOK('READ_SEAFLUX_N:CHECK_SEA',1,ZHOOK_HANDLE)
-
-END SUBROUTINE CHECK_SEA
-!
-!------------------------------------------------------------------------------
-END SUBROUTINE READ_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/sfx_oasis_define.F90 b/src/OASIS/SURFEX/sfx_oasis_define.F90
deleted file mode 100644
index d7de437d2..000000000
--- a/src/OASIS/SURFEX/sfx_oasis_define.F90
+++ /dev/null
@@ -1,472 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!#########
-SUBROUTINE SFX_OASIS_DEFINE (IO, U, HPROGRAM,KNPTS,KPARAL)
-!###################################################
-!
-!!****  *SFX_OASIS_DEFINE* - Definitions for exchange of coupling fields
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2013
-!!    10/2016 B. Decharme : bug surface/groundwater coupling
-!!      Modified    11/2014 : J. Pianezze - add wave coupling parameters
-!!                                          and surface pressure for ocean coupling
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-!
-USE MODD_ISBA_OPTIONS_n, ONLY : ISBA_OPTIONS_t
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-!
-USE MODD_SURF_PAR,  ONLY : NUNDEF
-!
-USE MODN_SFX_OASIS
-USE MODD_SFX_OASIS
-!
-USE MODI_GET_LUOUT
-USE MODI_ABOR1_SFX
-USE MODI_SFX_OASIS_CHECK
-!
-#ifdef CPLOASIS
-USE MOD_OASIS
-#endif
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-!
-TYPE(ISBA_OPTIONS_t), INTENT(INOUT) :: IO
-TYPE(SURF_ATM_t), INTENT(INOUT) :: U
-!
-CHARACTER(LEN=6),        INTENT(IN) :: HPROGRAM    ! program calling surf. schemes
-INTEGER,                 INTENT(IN) :: KNPTS  ! Number of grid point on this proc
-INTEGER, DIMENSION(:),   INTENT(IN) :: KPARAL
-!
-!
-!*       0.2   Declarations of local parameter
-!              -------------------------------
-!
-INTEGER, DIMENSION(2), PARAMETER  :: IVAR_NODIMS  = (/1,1/) ! rank and number of bundles in coupling field
-!
-!
-!*       0.3   Declarations of local variables
-!              -------------------------------
-!
-INTEGER, DIMENSION(2)          :: IVAR_SHAPE  ! indexes for the coupling field local dimension
-!
-INTEGER                        :: IPART_ID ! Local partition ID
-INTEGER                        :: IERR     ! Error info
-!
-INTEGER                        :: ILUOUT, IFLAG
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_DEFINE',0,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-#ifdef CPLOASIS
-!-------------------------------------------------------------------------------
-!
-!
-!*       0.     Initialize :
-!               ------------
-!
-CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
-CALL SFX_OASIS_CHECK(IO, U, ILUOUT)
-!
-!-------------------------------------------------------------------------------
-!
-!*       1.     Define parallel partitions:
-!               ---------------------------
-!
-CALL OASIS_DEF_PARTITION(IPART_ID,KPARAL(:),IERR)
-!
-IF(IERR/=OASIS_OK)THEN
-   WRITE(ILUOUT,*)'SFX_OASIS_DEFINE: OASIS def partition problem, err = ',IERR
-   CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def partition problem')
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       2.     Coupling fields shape :
-!               -----------------------
-!
-IVAR_SHAPE(1)= 1
-IVAR_SHAPE(2)= KNPTS
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     Sea variables for Surfex - Oasis coupling :
-!               -------------------------------------------
-!
-IF(LCPL_SEA)THEN
-!
-! Sea output fields
-!
-  IF(LEN_TRIM(CSEA_FWSU)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_FWSU_ID,CSEA_FWSU,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea zonal wind stress')
-  ELSE
-    NSEA_FWSU_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_FWSV)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_FWSV_ID,CSEA_FWSV,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea meridian wind stress')
-  ELSE
-    NSEA_FWSV_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_HEAT)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_HEAT_ID,CSEA_HEAT,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea Non solar net heat flux')
-  ELSE
-    NSEA_HEAT_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_SNET)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_SNET_ID,CSEA_SNET,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea Solar net heat')
-  ELSE
-    NSEA_SNET_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_WIND)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_WIND_ID,CSEA_WIND,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea 10m wind speed')
-  ELSE
-    NSEA_WIND_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_FWSM)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_FWSM_ID,CSEA_FWSM,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea wind stress')
-  ELSE
-    NSEA_FWSM_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_EVAP)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_EVAP_ID,CSEA_EVAP,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea Evaporation')
-  ELSE
-    NSEA_EVAP_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_RAIN)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_RAIN_ID,CSEA_RAIN,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea Rainfall rate')
-  ELSE
-    NSEA_RAIN_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_SNOW)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_SNOW_ID,CSEA_SNOW,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea Snowfall rate')
-  ELSE
-    NSEA_SNOW_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_EVPR)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_EVPR_ID,CSEA_EVPR,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea Evap.-Precip. rate')
-  ELSE
-    NSEA_EVPR_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_WATF)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_WATF_ID,CSEA_WATF,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea freshwater rate')
-  ELSE
-    NSEA_WATF_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_PRES)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_PRES_ID,CSEA_PRES,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for surface pressure')
-  ELSE
-    NSEA_PRES_ID=NUNDEF
-  ENDIF
-!
-! Sea intput fields
-!
-  IF(LEN_TRIM(CSEA_SST)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_SST_ID,CSEA_SST,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea surface temperature')
-  ELSE
-    NSEA_SST_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_UCU)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_UCU_ID,CSEA_UCU,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea u-current stress')
-  ELSE
-    NSEA_UCU_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CSEA_VCU)/=0)THEN
-    CALL OASIS_DEF_VAR(NSEA_VCU_ID,CSEA_VCU,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea v-current stress')
-  ELSE
-    NSEA_VCU_ID=NUNDEF
-  ENDIF
-!
-! Particular case due to Sea-ice
-!
-  IF(LCPL_SEAICE)THEN
-!
-!   Output fields
-!
-    IF(LEN_TRIM(CSEAICE_HEAT)/=0)THEN
-      CALL OASIS_DEF_VAR(NSEAICE_HEAT_ID,CSEAICE_HEAT,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-      IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
-    ELSE
-      NSEAICE_HEAT_ID=NUNDEF
-    ENDIF
-!
-    IF(LEN_TRIM(CSEAICE_SNET)/=0)THEN
-      CALL OASIS_DEF_VAR(NSEAICE_SNET_ID,CSEAICE_SNET,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-      IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice solar net heat flux')
-    ELSE
-      NSEAICE_SNET_ID=NUNDEF
-    ENDIF
-!
-    IF(LEN_TRIM(CSEAICE_EVAP)/=0)THEN
-      CALL OASIS_DEF_VAR(NSEAICE_EVAP_ID,CSEAICE_EVAP,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-      IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice sublimation')
-    ELSE
-      NSEAICE_EVAP_ID=NUNDEF
-    ENDIF
-!
-!   Intput fields
-!
-    CALL OASIS_DEF_VAR(NSEAICE_SIT_ID,CSEAICE_SIT,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
-!
-    CALL OASIS_DEF_VAR(NSEAICE_CVR_ID,CSEAICE_CVR,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
-!
-    CALL OASIS_DEF_VAR(NSEAICE_ALB_ID,CSEAICE_ALB,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for Sea-ice non solar net heat')
-!
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       4.     Lake variables for Surfex - Oasis coupling :
-!               -------------------------------------------
-!
-IF(LCPL_LAKE)THEN
-!
-! Output fields
-!
-  IF(LEN_TRIM(CLAKE_EVAP)/=0)THEN
-    CALL OASIS_DEF_VAR(NLAKE_EVAP_ID,CLAKE_EVAP,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for lake Evaporation')
-  ELSE
-    NLAKE_EVAP_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CLAKE_RAIN)/=0)THEN
-    CALL OASIS_DEF_VAR(NLAKE_RAIN_ID,CLAKE_RAIN,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for lake Rainfall rate')
-  ELSE
-    NLAKE_RAIN_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CLAKE_SNOW)/=0)THEN
-    CALL OASIS_DEF_VAR(NLAKE_SNOW_ID,CLAKE_SNOW,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for lake Snowfall rate')
-  ELSE
-    NLAKE_SNOW_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CLAKE_WATF)/=0)THEN
-    CALL OASIS_DEF_VAR(NLAKE_WATF_ID,CLAKE_WATF,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for sea freshwater rate')
-  ELSE
-    NLAKE_WATF_ID=NUNDEF
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       5.     Land surface variables for Surfex - Oasis coupling :
-!               ----------------------------------------------------
-!
-IF(LCPL_LAND)THEN
-!
-! Output Surface runoff
-!
-  CALL OASIS_DEF_VAR(NRUNOFF_ID,CRUNOFF,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)
-  IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Surface runoff')
-!
-! Output Calving flux
-!
-  IF(LCPL_CALVING)THEN
-!
-!     Output Calving flux
-      CALL OASIS_DEF_VAR(NCALVING_ID,CCALVING,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-      IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Calving flux')
-!
-  ENDIF  
-!
-! Output Deep drainage
-!
-  CALL OASIS_DEF_VAR(NDRAIN_ID,CDRAIN,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-  IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Deep drainage')
-!
-! Particular case due to water table depth / surface coupling
-!
-  IF(LCPL_GW)THEN
-!
-!     Input Water table depth
-      CALL OASIS_DEF_VAR(NWTD_ID,CWTD,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-      IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Water table depth')
-!          
-!     Input grid-cell fraction of WTD to rise
-      CALL OASIS_DEF_VAR(NFWTD_ID,CFWTD,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-      IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land fraction of WTD to rise')
-!   
-  ENDIF      
-!
-! Particular case due to floodplains coupling
-!
-  IF(LCPL_FLOOD)THEN
-!
-!   Output Flood precip interception
-    CALL OASIS_DEF_VAR(NSRCFLOOD_ID,CSRCFLOOD,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Floodplains freshwater flux')
-!          
-!   Input floodplains fraction
-    CALL OASIS_DEF_VAR(NFFLOOD_ID,CFFLOOD,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Floodplains fraction')
-!          
-!   Input floodplains potential infiltration
-    CALL OASIS_DEF_VAR(NPIFLOOD_ID,CPIFLOOD,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_DOUBLE,IERR)  
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for land Floodplains potential infiltration')
-!    
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       6.     Wave variables for Surfex - Oasis coupling :
-!               -------------------------------------------
-!
-IF(LCPL_WAVE) THEN
-!
-! Wave output fields
-!
-  IF(LEN_TRIM(CWAVE_U10)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_U10_ID,CWAVE_U10,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for U10')
-  ELSE
-    NWAVE_U10_ID=NUNDEF
-  ENDIF
-!
-  IF(LEN_TRIM(CWAVE_V10)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_V10_ID,CWAVE_V10,IPART_ID,IVAR_NODIMS,OASIS_OUT,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for V10')
-  ELSE
-    NWAVE_V10_ID=NUNDEF
-  ENDIF
-!
-! Wave input fields
-!
-  IF (LEN_TRIM(CWAVE_CHA)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_CHA_ID,CWAVE_CHA,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for CHA')
-  ELSE
-    NWAVE_CHA_ID=NUNDEF
-  ENDIF
-!
-  IF (LEN_TRIM(CWAVE_UCU)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_UCU_ID,CWAVE_UCU,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for UCU')
-  ELSE
-    NWAVE_UCU_ID=NUNDEF
-  ENDIF
-!
-  IF (LEN_TRIM(CWAVE_VCU)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_VCU_ID,CWAVE_VCU,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for VCU')
-  ELSE
-    NWAVE_VCU_ID=NUNDEF
-  ENDIF
-!
-  IF (LEN_TRIM(CWAVE_HS)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_HS_ID,CWAVE_HS,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for HS')
-  ELSE
-    NWAVE_HS_ID=NUNDEF
-  ENDIF
-!
-  IF (LEN_TRIM(CWAVE_TP)/=0)THEN
-    CALL OASIS_DEF_VAR(NWAVE_TP_ID,CWAVE_TP,IPART_ID,IVAR_NODIMS,OASIS_IN,IVAR_SHAPE,OASIS_REAL,IERR)
-    IF(IERR/=OASIS_OK) CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS def var problem for TP')
-  ELSE
-    NWAVE_TP_ID=NUNDEF
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       6.     End of declaration phase:
-!               --------------
-!
-CALL OASIS_ENDDEF(IERR)
-!
-IF(IERR/=OASIS_OK)THEN
-   WRITE(ILUOUT,*)'SFX_OASIS_DEFINE: OASIS enddef problem, err = ',IERR
-   CALL ABOR1_SFX('SFX_OASIS_DEFINE: OASIS enddef problem')
-ENDIF
-!
-!-------------------------------------------------------------------------------
-#endif
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_DEFINE',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE SFX_OASIS_DEFINE
diff --git a/src/OASIS/SURFEX/sfx_oasis_init.F90 b/src/OASIS/SURFEX/sfx_oasis_init.F90
deleted file mode 100644
index 2a0e34860..000000000
--- a/src/OASIS/SURFEX/sfx_oasis_init.F90
+++ /dev/null
@@ -1,355 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-SUBROUTINE SFX_OASIS_INIT(HNAMELIST,KLOCAL_COMM,HINIT)
-!!
-!!
-!!     PURPOSE
-!!     --------
-!!
-!!     Initialize coupled mode communication and XIOS I/O scheme
-!!
-!!
-!!     METHOD
-!!     ------
-!!
-!!     Depending on namelist flags for Oasis and XIOS, either call :
-!!        - XIOS_INITIALIZE alone (when LXIOS and not LOASIS) , or
-!!        - OASIS_INIT_COMP (when LOASIS) and then, depending on LXIOS, 
-!!           * either XIOS_INITALIZE  
-!!           * or OASIS_GET_LOCAL_COMM 
-!!
-!!     Note : OASIS-MCT interface must be initialized before any DR_HOOK call
-!!
-!!     EXTERNAL
-!!     --------
-!!
-!!
-!!     REFERENCE
-!!     ---------
-!!
-!!     S. Valcke et al., 2013: OASIS-MCT User Guide 
-!!     CERFACS, Toulouse, France, 50 pp.
-!!     https://verc.enes.org/oasis/oasis-dedicated-user-support-1/documentation/oasis3-mct-user-guide
-!!
-!!     XIOS Reference guide - Yann Meurdesoif - 10/10/2014 - 
-!!     svn co -r 515 http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-1.0 <dir> ; cd <dir>/doc ; ....
-!!
-!!
-!!     AUTHOR
-!!     ------
-!!
-!!     B. Decharme, CNRM
-!!
-!!     MODIFICATION
-!!     --------------
-!!
-!!     Original    10/2013
-!!     S.Sénési    08/2015 - handle XIOS
-!!     B.Decharme  09/2016 - no CALL ABORT if no namelist in Arpege
-!!     Modified    11/2014 : J. Pianezze - add LOASIS_GRID flag
-!!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_SFX_OASIS, ONLY : LOASIS, LOASIS_GRID, CMODEL_NAME, XRUNTIME
-USE MODI_ABOR1_SFX
-!
-USE MODD_XIOS , ONLY : LXIOS ! Should we call XIOS_INITIALIZE instead of OASIS_GET_LOCAL_COMM
-!
-#ifdef WXIOS
-USE XIOS, ONLY : XIOS_INITIALIZE
-#endif
-!
-#ifdef CPLOASIS
-USE MOD_OASIS
-#endif
-!
-IMPLICIT NONE
-!
-#ifdef CPLOASIS
-INCLUDE 'mpif.h'
-#endif
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
- CHARACTER(LEN=28), INTENT(IN )           :: HNAMELIST
-INTEGER,           INTENT(OUT)           :: KLOCAL_COMM ! value of local communicator
- CHARACTER(LEN=3),  INTENT(IN ), OPTIONAL :: HINIT       ! choice of fields to initialize
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
- CHARACTER(LEN=9)   :: YWORD, YTIMERUN
- CHARACTER(LEN=1000):: YLINE, YFOUND
-INTEGER            :: IERR, IWORK, IRANK
-INTEGER            :: ICOMP_ID
-INTEGER            :: ITIMERUN
-LOGICAL            :: GFOUND
- CHARACTER(LEN=3)   :: YINIT
-!
-!
-!*       0.3   Declarations of namelist variables
-!              ----------------------------------
-!
-NAMELIST/NAM_OASIS/LOASIS,LOASIS_GRID,CMODEL_NAME
-!
-!-------------------------------------------------------------------------------
-!
-! ATTENTION : Do not introduce DR_HOOK in this routine
-!
-!*       0.     Initialization:
-!               ---------------
-!
-LOASIS      = .FALSE.
-LOASIS_GRID = .FALSE.
- CMODEL_NAME = 'surfex'
-XRUNTIME    = 0.0
-!
-YINIT = 'ALL'
-IF(PRESENT(HINIT))YINIT=HINIT
-!
-!-------------------------------------------------------------------------------
-!
-!*       1.     Read namelist:
-!               --------------
-!
-IF(LEN_TRIM(HNAMELIST)/=0)THEN
-!
-  OPEN(UNIT=11,FILE=HNAMELIST,ACTION='READ',FORM="FORMATTED",POSITION="REWIND",STATUS='OLD',IOSTAT=IERR)   
-!
-  IF (IERR /= 0) THEN
-    WRITE(*,'(A)' )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-    WRITE(*,'(A)' )' WARNING WARNING WARNING WARNING WARNING     '
-    WRITE(*,'(A)' )' ---------------------------------------     '
-    WRITE(*,'(2A)')'SFX_OASIS_INIT: SFX NAMELIST FILE NOT FOUND: ',TRIM(HNAMELIST)
-    WRITE(*,'(A)' )'-------------------------------------------  '     
-    WRITE(*,'(A)' )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-#ifndef SFX_ARO 
-    CALL ABORT
-    STOP
-#endif
-  ELSE
-    READ (UNIT=11,NML=NAM_OASIS,IOSTAT=IERR)
-    CLOSE(UNIT=11)
-  ENDIF
-  !
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       2.     Setup OASIS (possibly via XIOS) and XIOS
-!               ----------------------------------------
-!
-IF (LXIOS) THEN
-!
-!
-#ifdef WXIOS
-   ! NOTE : XIOS_INITIALIZE will call OASIS_INIT_COMP and 
-   ! OASIS_GET_LOCALCOMM if its own config file calls for Oasis
-!$OMP SINGLE
-  CALL XIOS_INITIALIZE(CMODEL_NAME, return_comm=KLOCAL_COMM)
-!$OMP END SINGLE
-!
-#else
-!
-   WRITE(*,*) 'SFX_OASIS_INIT : BINARY WAS NOT COMPILED WITH XIOS SUPPORT '
-   CALL ABOR1_SFX('SFX_OASIS_INIT : BINARY WAS NOT COMPILED WITH XIOS SUPPORT')
-!
-#endif
-!
-!
-ELSE  ! (i.e. .NOT. LXIOS)
-!
-#ifdef CPLOASIS
-
-  IF (LOASIS ) THEN
-    IRANK=0
-    CALL OASIS_INIT_COMP(ICOMP_ID,CMODEL_NAME,IERR)  
-    IF (IERR/=OASIS_OK) THEN
-      WRITE(*,'(A)'   )'SFX : Error initializing OASIS'
-      WRITE(*,'(A,I4)')'SFX : Return code from oasis_init_comp : ',IERR
-      CALL OASIS_ABORT(ICOMP_ID,CMODEL_NAME,'SFX_OASIS_INIT: Error initializing OASIS')
-      CALL ABORT
-      STOP
-    ENDIF
-    CALL OASIS_GET_LOCALCOMM(KLOCAL_COMM,IERR) 
-    IF (IERR/=OASIS_OK) THEN
-      IF(IRANK==0)THEN
-        WRITE(*,'(A)'   )'SFX : Error getting local communicator from OASIS'
-        WRITE(*,'(A,I4)')'SFX : Return code from oasis_get_local_comm : ',IERR
-      ENDIF
-      CALL OASIS_ABORT(ICOMP_ID,CMODEL_NAME,'SFX_OASIS_INIT: Error getting local communicator')
-      CALL ABORT
-      STOP
-    ENDIF
-!
-  ELSE
-    KLOCAL_COMM=0
-    RETURN
-  ENDIF
-
-#else
-
-  KLOCAL_COMM=0
-  RETURN
-
-#endif
-!
-ENDIF
-!
-#ifdef SFX_MPI
-CALL MPI_COMM_RANK(KLOCAL_COMM,IRANK,IWORK)
-#endif
-IF(IRANK==0)THEN
-   WRITE(*,'(A)')'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   IF (LOASIS) WRITE(*,'(A)')'OASIS used for model : '//TRIM(CMODEL_NAME)
-   IF (LXIOS)  WRITE(*,'(A)')'XIOS  used for model : '//TRIM(CMODEL_NAME)
-   WRITE(*,'(A)')'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-ENDIF
-!
-IF(YINIT=='PRE')THEN
-   RETURN
-ENDIF
-
-#ifdef CPLOASIS
-IF (LOASIS) THEN
-!
-!-------------------------------------------------------------------------------
-!
-!*       5.     Read total simulated time in namcouple
-!               --------------------------------------
-!
- OPEN (UNIT=11,FILE ='namcouple',STATUS='OLD',FORM ='FORMATTED',POSITION="REWIND",IOSTAT=IERR)
- IF (IERR /= 0) THEN
-    IF(IRANK==0)THEN
-       WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-       WRITE(*,'(A)'   )'SFX : OASIS namcouple not found'
-       WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-    ENDIF
-    CALL ABORT
-    STOP
- ENDIF
-!
- YTIMERUN=' $RUNTIME'
- ITIMERUN=-1
-!
- DO WHILE (ITIMERUN==-1)
-    READ (UNIT = 11,FMT = '(A9)',IOSTAT=IERR) YWORD
-    IF(IERR/=0)THEN
-       IF(IRANK==0)THEN
-          WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-          WRITE(*,'(A)'   )'SFX : Problem $RUNTIME empty in namcouple'
-          WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 
-       ENDIF
-       CALL ABORT
-       STOP           
-    ENDIF
-    IF (YWORD==YTIMERUN)THEN
-       READ (UNIT = 11,FMT = '(A1000)',IOSTAT=IERR) YLINE
-       IF(IERR/=0)THEN
-          IF(IRANK==0)THEN
-             WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-             WRITE(*,'(A)'   )'SFX : Problem looking for $RUNTIME in namcouple'
-             WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 
-          ENDIF
-          CALL ABORT
-          STOP           
-       ENDIF
-       CALL FOUND_TIMERUN (YLINE, YFOUND, 1000, GFOUND)
-       IF (GFOUND) THEN
-          READ (YFOUND,FMT = '(I100)',IOSTAT=IERR) ITIMERUN
-          IF(IERR/=0)THEN
-             IF(IRANK==0)THEN
-                WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-                WRITE(*,'(A)'   )'SFX : Problem reading $RUNTIME in namcouple'
-                WRITE(*,'(2A)'  )'$RUNTIME = ', TRIM(YFOUND)
-                WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 
-             ENDIF
-             CALL ABORT
-             STOP
-          ENDIF
-       ENDIF
-    ENDIF
- ENDDO
- CLOSE(11)
-!
- XRUNTIME = REAL(ITIMERUN)
-!
-ENDIF
-#endif
-!
-!-------------------------------------------------------------------------------
- CONTAINS
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE FOUND_TIMERUN(HIN, HOUT, KLEN, OFOUND)
-!
-IMPLICIT NONE
-!
-INTEGER ,          INTENT (IN   ) :: KLEN
- CHARACTER (LEN=*), INTENT (INOUT) :: HIN 
- CHARACTER (LEN=*), INTENT (INOUT) :: HOUT
-LOGICAL,           INTENT (OUT  ) :: OFOUND
-!
-!* ---------------------------- Local declarations -------------------
-!
- CHARACTER(LEN=1), PARAMETER :: YBLANK = ' '
- CHARACTER(LEN=1), PARAMETER :: YNADA  = '#'
-
- CHARACTER(LEN=KLEN) :: YLINE
- CHARACTER(LEN=KLEN) :: YWORK
-!
-INTEGER             :: ILEN
-INTEGER             :: IERR
-!
-!
-!*    1. Skip line if it is a comment
-!        ----------------------------
-!
-DO WHILE (HIN(1:1)==YNADA)
-   READ (UNIT = 11, FMT = '(A9)',IOSTAT=IERR) YLINE 
-   IF(IERR/=0)THEN
-       IF(IRANK==0)THEN
-         WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-         WRITE(*,'(A)'   )'SFX : Problem looking for $RUNTINE line in namcouple'
-         WRITE(*,'(A)'   )'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 
-       ENDIF
-       CALL ABORT
-       STOP           
-   ENDIF
-   HIN(1:KLEN) = YLINE(1:KLEN)
-ENDDO 
-!
-!* Fill HOUT with blanks
-!
-HOUT = YBLANK
-!
-!* Fill temporary string and remove leading blanks
-!
-YWORK = ADJUSTL(HIN)
-!
-IF(LEN_TRIM(YWORK)<=0)THEN
-   OFOUND = .FALSE.
-   RETURN
-ENDIF
-!
-!* Find the length of this set of characters
-!
-ILEN = INDEX(YWORK,YBLANK) - 1
-!
-!* Copy to HOUT
-!
-HOUT(1:ILEN) = YWORK(1:ILEN)
-!
-OFOUND = .TRUE.
-!
-END SUBROUTINE FOUND_TIMERUN
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE SFX_OASIS_INIT
diff --git a/src/OASIS/SURFEX/sfx_oasis_read_nam.F90 b/src/OASIS/SURFEX/sfx_oasis_read_nam.F90
deleted file mode 100644
index c1b5b596d..000000000
--- a/src/OASIS/SURFEX/sfx_oasis_read_nam.F90
+++ /dev/null
@@ -1,568 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!#########
-SUBROUTINE SFX_OASIS_READ_NAM(HPROGRAM,PTSTEP_SURF,HINIT)
-!##################################################################
-!
-!!****  *SFX_OASIS_READ_NAM* - routine to read the configuration for SFX-OASIS coupling
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    05/2008 
-!!    10/2016 B. Decharme : bug surface/groundwater coupling 
-!!      Modified    11/2014 : J. Pianezze - add wave coupling parameters
-!!                                          and surface pressure for ocean coupling
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODN_SFX_OASIS
-!
-USE MODD_SFX_OASIS, ONLY : LOASIS, XRUNTIME,               &
-                           LCPL_LAND, LCPL_GW, LCPL_FLOOD, &
-                           LCPL_CALVING, LCPL_LAKE,        &
-                           LCPL_SEA, LCPL_SEAICE, LCPL_WAVE
-!
-USE MODE_POS_SURF
-!
-USE MODI_GET_LUOUT
-USE MODI_OPEN_NAMELIST
-USE MODI_CLOSE_NAMELIST
-!
-USE MODI_ABOR1_SFX
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-CHARACTER(LEN=6), INTENT(IN)           :: HPROGRAM    ! program calling surf. schemes
-REAL,             INTENT(IN)           :: PTSTEP_SURF ! Surfex time step
-CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HINIT       ! choice of fields to initialize
-!
-!*       0.2   Declarations of local parameter
-!              -------------------------------
-!
-INTEGER,          PARAMETER :: KIN   = 1
-INTEGER,          PARAMETER :: KOUT  = 0
-CHARACTER(LEN=5), PARAMETER :: YLAND = 'land'
-CHARACTER(LEN=5), PARAMETER :: YLAKE = 'lake'
-CHARACTER(LEN=5), PARAMETER :: YSEA  = 'ocean'
-CHARACTER(LEN=5), PARAMETER :: YWAVE = 'wave'
-!
-!*       0.3   Declarations of local variables
-!              -------------------------------
-!
-LOGICAL            :: GFOUND         ! Return code when searching namelist
-INTEGER            :: ILUOUT         ! Listing id
-INTEGER            :: ILUNAM         ! logical unit of namelist file
-CHARACTER(LEN=20)  :: YKEY
-CHARACTER(LEN=50)  :: YCOMMENT
-CHARACTER(LEN=3)   :: YINIT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_READ_NAM',0,ZHOOK_HANDLE)
-!
-!
-!*       0.     Initialize :
-!               ------------
-!
-LCPL_LAND    = .FALSE.
-LCPL_GW      = .FALSE.
-LCPL_FLOOD   = .FALSE.
-LCPL_CALVING = .FALSE.
-LCPL_LAKE    = .FALSE.
-LCPL_SEA     = .FALSE.
-LCPL_SEAICE  = .FALSE.
-LCPL_WAVE    = .FALSE.
-!
-IF(.NOT.LOASIS)THEN
-  IF (LHOOK) CALL DR_HOOK('SFX_OASIS_READ_NAM',1,ZHOOK_HANDLE)
-  RETURN
-ENDIF
-!
-YINIT = 'ALL'
-IF(PRESENT(HINIT))YINIT=HINIT
-!
-CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
-!*       1.     Read namelists and check status :
-!               --------------------------------
-!
-CALL OPEN_NAMELIST(HPROGRAM,ILUNAM)
-!
-CALL POSNAM(ILUNAM,'NAM_SFX_LAND_CPL',GFOUND,ILUOUT)
-!
-IF (GFOUND) THEN
-   READ(UNIT=ILUNAM,NML=NAM_SFX_LAND_CPL)
-ELSE
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'NAM_SFX_LAND_CPL not found : Surfex land not coupled with river routing'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-ENDIF
-!
-CALL POSNAM(ILUNAM,'NAM_SFX_SEA_CPL',GFOUND,ILUOUT)
-!
-IF (GFOUND) THEN
-   READ(UNIT=ILUNAM,NML=NAM_SFX_SEA_CPL)
-ELSE
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'NAM_SFX_SEA_CPL not found : Surfex sea not coupled with ocean model'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-ENDIF
-!
-CALL POSNAM(ILUNAM,'NAM_SFX_LAKE_CPL',GFOUND,ILUOUT)
-!
-IF (GFOUND) THEN
-   READ(UNIT=ILUNAM,NML=NAM_SFX_LAKE_CPL)
-ELSE
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'NAM_SFX_LAKE_CPL not found : Surfex lake not coupled with ocean model'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-ENDIF
-!
-CALL POSNAM(ILUNAM,'NAM_SFX_WAVE_CPL',GFOUND,ILUOUT)
-!
-IF (GFOUND) THEN
-   READ(UNIT=ILUNAM,NML=NAM_SFX_WAVE_CPL)
-ELSE
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'NAM_SFX_WAVE_CPL not found : Surfex not coupled with wave model'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-   WRITE(ILUOUT,*)'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
-ENDIF
-!
-CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM)
-!
-IF(XTSTEP_CPL_LAND>0.0)LCPL_LAND=.TRUE.
-IF(XTSTEP_CPL_LAKE>0.0)LCPL_LAKE=.TRUE.
-IF(XTSTEP_CPL_SEA >0.0)LCPL_SEA =.TRUE.
-IF(XTSTEP_CPL_WAVE>0.0)LCPL_WAVE=.TRUE.
-!
-IF(.NOT.LCPL_LAND.AND..NOT.LCPL_SEA.AND..NOT.LCPL_WAVE)THEN
-  CALL ABOR1_SFX('SFX_OASIS_READ_NAM: OASIS USED BUT NAMELIST NOT FOUND')
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       2.     Check time step consistency
-!               ---------------------------
-!
-IF(YINIT/='PRE')THEN
-  IF(MOD(XRUNTIME,PTSTEP_SURF)/=0.)THEN
-    WRITE(ILUOUT,*)'! MOD(XRUNTIME,XTSTEP_SURF)/=0 !!!'     
-    WRITE(ILUOUT,*)'! XTSTEP_SURF (model timestep) must be a multiple of $RUNTIME in oasis namcouple !!!'     
-    CALL ABOR1_SFX('SFX_OASIS_READ_NAM: XTSTEP_SURF must be a multiple of $RUNTIME in oasis namcouple !!!')
-  ENDIF
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     Check status for Land surface fields 
-!               ------------------------------------
-!
-IF(LCPL_LAND)THEN
-!
-  IF(YINIT/='PRE')THEN
-    IF(MOD(XTSTEP_CPL_LAND,PTSTEP_SURF)/=0.)THEN
-      WRITE(ILUOUT,*)'! MOD(XTSTEP_SURF,XTSTEP_CPL_LAND) /= 0     !'
-      WRITE(ILUOUT,*)'XTSTEP_SURF =',PTSTEP_SURF,'XTSTEP_CPL_LAND = ',XTSTEP_CPL_LAND
-      IF(PTSTEP_SURF>XTSTEP_CPL_LAND) &
-      WRITE(ILUOUT,*)'! XTSTEP_SURF (model timestep) is superiror to  XTSTEP_CPL_LAND !'         
-      CALL ABOR1_SFX('SFX_OASIS_READ_NAM: XTSTEP_SURF and XTSTEP_CPL_LAND not consistent !!!')
-    ENDIF
-  ENDIF
-!
-! Land Output variable
-!
-  YKEY  ='CRUNOFF'
-  YCOMMENT='Surface runoff'
-  CALL CHECK_FIELD(CRUNOFF,YKEY,YCOMMENT,YLAND,KOUT)
-!
-  YKEY  ='CDRAIN'
-  YCOMMENT='Deep drainage'
-  CALL CHECK_FIELD(CDRAIN,YKEY,YCOMMENT,YLAND,KOUT)
-!
-! Particular case due to calving case
-!
-  IF(LEN_TRIM(CCALVING)>0)THEN
-    LCPL_CALVING = .TRUE.
-  ENDIF
-!
-  IF(LCPL_CALVING)THEN
-    YKEY  ='CCALVING'
-    YCOMMENT='Calving flux'
-    CALL CHECK_FIELD(CCALVING,YKEY,YCOMMENT,YLAND,KOUT)
-  ENDIF
-!
-! Particular case due to water table depth / surface coupling
-!    
-  IF(LEN_TRIM(CWTD)>0.OR.LEN_TRIM(CFWTD)>0)THEN
-    LCPL_GW = .TRUE.
-  ENDIF
-!
-  IF(LCPL_GW)THEN
-!
-!   Input variable
-!
-    YKEY  ='CWTD'
-    YCOMMENT='Water table depth'
-    CALL CHECK_FIELD(CWTD,YKEY,YCOMMENT,YLAND,KIN)
-!
-    YKEY  ='CFWTD'
-    YCOMMENT='Fraction of WTD to rise'
-    CALL CHECK_FIELD(CFWTD,YKEY,YCOMMENT,YLAND,KIN)
-!
-  ENDIF
-!
-! Particular case due to floodplains coupling
-!    
-  IF(LEN_TRIM(CSRCFLOOD)>0.OR.LEN_TRIM(CFFLOOD)>0.OR.LEN_TRIM(CPIFLOOD)>0)THEN
-    LCPL_FLOOD = .TRUE.
-  ENDIF
-!
-  IF(LCPL_FLOOD)THEN
-!
-!   Output variable
-!
-    YKEY  ='CSRCFLOOD'
-    YCOMMENT='flood freshwater flux'
-    CALL CHECK_FIELD(CSRCFLOOD,YKEY,YCOMMENT,YLAND,KOUT)
-!
-!   Input variable
-!
-    YKEY  ='CFFLOOD'
-    YCOMMENT='Flood fraction'
-    CALL CHECK_FIELD(CFFLOOD,YKEY,YCOMMENT,YLAND,KIN)
-!
-    YKEY  ='CPIFLOOD'
-    YCOMMENT='Flood potential infiltration'
-    CALL CHECK_FIELD(CPIFLOOD,YKEY,YCOMMENT,YLAND,KIN)
-!
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       4.     Check status for Land surface fields 
-!               ------------------------------------
-!
-IF(LCPL_LAKE)THEN
-!
-  IF(YINIT/='PRE')THEN
-    IF(MOD(XTSTEP_CPL_LAKE,PTSTEP_SURF)/=0.)THEN
-      WRITE(ILUOUT,*)'! MOD(XTSTEP_SURF,XTSTEP_CPL_LAKE) /= 0     !'
-      WRITE(ILUOUT,*)'XTSTEP_SURF =',PTSTEP_SURF,'XTSTEP_CPL_LAKE = ',XTSTEP_CPL_LAKE
-      IF(PTSTEP_SURF>XTSTEP_CPL_LAKE) &
-      WRITE(ILUOUT,*)'! XTSTEP_SURF (model timestep) is superiror to  XTSTEP_CPL_LAKE !'     
-      CALL ABOR1_SFX('SFX_OASIS_READ_NAM: XTSTEP_SURF and XTSTEP_CPL_LAKE not consistent !!!')          
-    ENDIF
-  ENDIF
-!
-! Output variables
-!
-  YKEY  ='CLAKE_EVAP'
-  YCOMMENT='Evaporation rate'
-  CALL CHECK_FIELD(CLAKE_EVAP,YKEY,YCOMMENT,YLAKE,KOUT)
-!
-  YKEY  ='CLAKE_RAIN'
-  YCOMMENT='Rainfall rate'
-  CALL CHECK_FIELD(CLAKE_RAIN,YKEY,YCOMMENT,YLAKE,KOUT)
-!
-  YKEY  ='CLAKE_SNOW'
-  YCOMMENT='Snowfall rate'
-  CALL CHECK_FIELD(CLAKE_SNOW,YKEY,YCOMMENT,YLAKE,KOUT)
-!
-  YKEY  ='CLAKE_WATF'
-  YCOMMENT='Freshwater flux'
-  CALL CHECK_FIELD(CLAKE_WATF,YKEY,YCOMMENT,YLAKE,KOUT)
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       5.     Check status for Sea fields 
-!               ---------------------------
-!
-IF(LCPL_SEA)THEN
-!
-  IF(YINIT/='PRE')THEN
-    IF(MOD(XTSTEP_CPL_SEA,PTSTEP_SURF)/=0.)THEN
-      WRITE(ILUOUT,*)'! MOD(XTSTEP_SURF,XTSTEP_CPL_SEA) /= 0     !'
-      WRITE(ILUOUT,*)'XTSTEP_SURF =',PTSTEP_SURF,'XTSTEP_CPL_SEA = ',XTSTEP_CPL_SEA
-      IF(PTSTEP_SURF>XTSTEP_CPL_SEA) &
-      WRITE(ILUOUT,*)'! XTSTEP_SURF (model timestep) is superiror to  XTSTEP_CPL_SEA !'     
-      CALL ABOR1_SFX('SFX_OASIS_READ_NAM: XTSTEP_SURF and XTSTEP_CPL_SEA not consistent !!!')          
-    ENDIF
-  ENDIF
-!
-! Sea Output variables
-!
-  YKEY  ='CSEA_FWSU'
-  YCOMMENT='zonal wind stress'
-  CALL CHECK_FIELD(CSEA_FWSU,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_FWSV'
-  YCOMMENT='meridian wind stress'
-  CALL CHECK_FIELD(CSEA_FWSV,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_HEAT'
-  YCOMMENT='Non solar net heat flux'
-  CALL CHECK_FIELD(CSEA_HEAT,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_SNET'
-  YCOMMENT='Solar net heat flux'
-  CALL CHECK_FIELD(CSEA_SNET,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_WIND'
-  YCOMMENT='module of 10m wind speed'
-  CALL CHECK_FIELD(CSEA_WIND,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_FWSM'
-  YCOMMENT='module of wind stress'
-  CALL CHECK_FIELD(CSEA_FWSM,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_EVAP'
-  YCOMMENT='Evaporation rate'
-  CALL CHECK_FIELD(CSEA_EVAP,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_RAIN'
-  YCOMMENT='Rainfall rate'
-  CALL CHECK_FIELD(CSEA_RAIN,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_SNOW'
-  YCOMMENT='Snowfall rate'
-  CALL CHECK_FIELD(CSEA_SNOW,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_EVPR'
-  YCOMMENT='Evap. - Precip. rate'
-  CALL CHECK_FIELD(CSEA_EVPR,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_WATF'
-  YCOMMENT='Freshwater flux'
-  CALL CHECK_FIELD(CSEA_WATF,YKEY,YCOMMENT,YSEA,KOUT)
-!
-  YKEY  ='CSEA_PRES'
-  YCOMMENT='Surface pressure'
-  CALL CHECK_FIELD(CSEA_PRES,YKEY,YCOMMENT,YSEA,KOUT)
-!
-! Sea Input variables
-!
-  YKEY  ='CSEA_SST'
-  YCOMMENT='Sea surface temperature'
-  CALL CHECK_FIELD(CSEA_SST,YKEY,YCOMMENT,YSEA,KIN)
-!
-  YKEY  ='CSEA_UCU'
-  YCOMMENT='Sea u-current stress'
-  CALL CHECK_FIELD(CSEA_UCU,YKEY,YCOMMENT,YSEA,KIN)
-!
-  YKEY  ='CSEA_VCU'
-  YCOMMENT='Sea v-current stress'
-  CALL CHECK_FIELD(CSEA_VCU,YKEY,YCOMMENT,YSEA,KIN)
-!
-! Sea-ice fluxes
-!
-  IF(LEN_TRIM(CSEAICE_HEAT)>0.OR.LEN_TRIM(CSEAICE_SNET)>0.OR. &
-     LEN_TRIM(CSEAICE_EVAP)>0.OR.LEN_TRIM(CSEAICE_SIT )>0.OR. &
-     LEN_TRIM(CSEAICE_CVR )>0.OR.LEN_TRIM(CSEAICE_ALB )>0     )THEN
-     LCPL_SEAICE=.TRUE.
-  ENDIF
-!
-  IF(LCPL_SEAICE)THEN
-!
-!   Sea-ice Output variables
-!
-    YKEY  ='CSEAICE_HEAT'
-    YCOMMENT='Sea-ice non solar net heat flux'
-    CALL CHECK_FIELD(CSEAICE_HEAT,YKEY,YCOMMENT,YSEA,KOUT)
-!
-    YKEY  ='CSEAICE_SNET'
-    YCOMMENT='Sea-ice solar net heat flux'
-    CALL CHECK_FIELD(CSEAICE_SNET,YKEY,YCOMMENT,YSEA,KOUT)
-!
-    YKEY  ='CSEAICE_EVAP'
-    YCOMMENT='Sea-ice sublimation'
-    CALL CHECK_FIELD(CSEAICE_EVAP,YKEY,YCOMMENT,YSEA,KOUT)
-!
-!   Sea-ice Input variables
-!
-    YKEY  ='CSEAICE_SIT'
-    YCOMMENT='Sea-ice temperature'
-    CALL CHECK_FIELD(CSEAICE_SIT,YKEY,YCOMMENT,YSEA,KIN)
-!
-    YKEY  ='CSEAICE_CVR'
-    YCOMMENT='Sea-ice cover'
-    CALL CHECK_FIELD(CSEAICE_CVR,YKEY,YCOMMENT,YSEA,KIN)
-!
-    YKEY  ='CSEAICE_ALB'
-    YCOMMENT='Sea-ice albedo'
-    CALL CHECK_FIELD(CSEAICE_ALB,YKEY,YCOMMENT,YSEA,KIN)
-!
-  ENDIF
-!  
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       6.     Check status for Wave fields 
-!               ---------------------------
-!
-IF(LCPL_WAVE)THEN
-!
-  IF(YINIT/='PRE')THEN
-    IF(MOD(XTSTEP_CPL_WAVE,PTSTEP_SURF)/=0.)THEN
-      WRITE(ILUOUT,*)'! MOD(XTSTEP_SURF,XTSTEP_CPL_WAVE) /= 0     !'
-      WRITE(ILUOUT,*)'XTSTEP_SURF =',PTSTEP_SURF,'XTSTEP_CPL_WAVE = ',XTSTEP_CPL_WAVE
-      IF(PTSTEP_SURF>XTSTEP_CPL_WAVE) &
-      WRITE(ILUOUT,*)'! XTSTEP_SURF (model timestep) is superiror to  XTSTEP_CPL_WAVE !'
-      CALL ABOR1_SFX('SFX_OASIS_READ_NAM: XTSTEP_SURF and XTSTEP_CPL_WAVE not consistent !!!')
-    ENDIF
-  ENDIF
-!
-! Wave Output variables
-!
-  YKEY  ='CWAVE_U10'
-  YCOMMENT='10m u-wind speed'
-  CALL CHECK_FIELD(CWAVE_U10,YKEY,YCOMMENT,YWAVE,KOUT)
-!
-  YKEY  ='CWAVE_V10'
-  YCOMMENT='10m v-wind speed'
-  CALL CHECK_FIELD(CWAVE_V10,YKEY,YCOMMENT,YWAVE,KOUT)
-!
-! Wave Input variables
-!
-  YKEY  ='CWAVE_CHA'
-  YCOMMENT='Charnock Coefficient'
-  CALL CHECK_FIELD(CWAVE_CHA,YKEY,YCOMMENT,YWAVE,KIN)
-!
-  YKEY  ='CWAVE_UCU'
-  YCOMMENT='u-current velocity'
-  CALL CHECK_FIELD(CWAVE_UCU,YKEY,YCOMMENT,YWAVE,KIN)
-!
-  YKEY  ='CWAVE_VCU'
-  YCOMMENT='v-current velocity'
-  CALL CHECK_FIELD(CWAVE_VCU,YKEY,YCOMMENT,YWAVE,KIN)
-!
-  YKEY  ='CWAVE_HS'
-  YCOMMENT='Significant wave height'
-  CALL CHECK_FIELD(CWAVE_HS,YKEY,YCOMMENT,YWAVE,KIN)
-!
-  YKEY  ='CWAVE_TP'
-  YCOMMENT='Peak period'
-  CALL CHECK_FIELD(CWAVE_TP,YKEY,YCOMMENT,YWAVE,KIN)
-!  
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_READ_NAM',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-CONTAINS
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE CHECK_FIELD(HFIELD,HKEY,HCOMMENT,HTYP,KID)
-!
-IMPLICIT NONE
-!
-CHARACTER(LEN=*), INTENT(IN) :: HFIELD
-CHARACTER(LEN=*), INTENT(IN) :: HKEY
-CHARACTER(LEN=*), INTENT(IN) :: HCOMMENT
-CHARACTER(LEN=*), INTENT(IN) :: HTYP
-INTEGER,          INTENT(IN) :: KID
-!
-CHARACTER(LEN=20)  :: YWORK
-CHARACTER(LEN=20)  :: YNAMELIST
-CHARACTER(LEN=128) :: YCOMMENT1
-CHARACTER(LEN=128) :: YCOMMENT2
-LOGICAL            :: LSTOP
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_READ_NAM:CHECK_FIELD',0,ZHOOK_HANDLE)
-!
-IF(LEN_TRIM(HFIELD)==0)THEN
-!
-  IF(KID==0)THEN
-    YWORK=TRIM(HTYP)//' - SFX'
-  ELSE
-    YWORK='SFX - '//TRIM(HTYP)
-  ENDIF
-!
-  SELECT CASE (HTYP)
-     CASE(YLAND)
-          YNAMELIST='NAM_SFX_LAND_CPL'
-     CASE(YSEA)
-          YNAMELIST='NAM_SFX_SEA_CPL'
-     CASE(YLAKE)
-          YNAMELIST='NAM_SFX_LAKE_CPL' 
-     CASE(YWAVE)
-          YNAMELIST='NAM_SFX_WAVE_CPL'
-     CASE DEFAULT
-          CALL ABOR1_SFX('SFX_OASIS_READ_NAM: TYPE NOT SUPPORTED OR IMPLEMENTD : '//TRIM(HTYP))               
-  END SELECT
-!
-  YCOMMENT1= 'SFX_OASIS_READ_NAM: '//TRIM(HCOMMENT)//' is not done for '//TRIM(YWORK)//' coupling'
-  YCOMMENT2= 'SFX_OASIS_READ_NAM: Namelist key '//TRIM(HKEY)//' is not in '//TRIM(YNAMELIST)
-!
-  WRITE(ILUOUT,*)TRIM(YCOMMENT1)
-  WRITE(ILUOUT,*)TRIM(YCOMMENT2)
-!
-! For oceanic coupling do not stop the model if a field from surfex to ocean is
-! not  done because many particular case can be used
-!
-  IF((KID==0.OR.KID==1).AND.HTYP/=YLAND)THEN
-    LSTOP=.FALSE.
-  ELSE
-    LSTOP=.TRUE.
-  ENDIF
-!
-  IF(LSTOP)THEN
-    CALL ABOR1_SFX(YCOMMENT1)
-  ENDIF
-!  
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_READ_NAM:CHECK_FIELD',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE CHECK_FIELD
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE SFX_OASIS_READ_NAM
diff --git a/src/OASIS/SURFEX/sfx_oasis_recv.F90 b/src/OASIS/SURFEX/sfx_oasis_recv.F90
deleted file mode 100644
index 8aa18215e..000000000
--- a/src/OASIS/SURFEX/sfx_oasis_recv.F90
+++ /dev/null
@@ -1,324 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!#########
-SUBROUTINE SFX_OASIS_RECV(HPROGRAM,KI,KSW,PTIMEC,                &
-                          ORECV_LAND, ORECV_SEA, ORECV_WAVE,     &
-                          PLAND_WTD,PLAND_FWTD,                  &
-                          PLAND_FFLOOD,PLAND_PIFLOOD,            &
-                          PSEA_SST,PSEA_UCU,PSEA_VCU,            &
-                          PSEAICE_SIT,PSEAICE_CVR,PSEAICE_ALB,   &
-                          PWAVE_CHA,PWAVE_UCU,PWAVE_VCU,         &
-                          PWAVE_HS,PWAVE_TP             )
-!########################################
-!
-!!****  *SFX_OASIS_RECV* - Receive coupling fields from oasis
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!      B. Decharme   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2013
-!!      Modified    11/2014 : J. Pianezze - add wave coupling parameters
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_SURF_PAR,   ONLY : XUNDEF, NUNDEF
-!
-USE MODD_SFX_OASIS
-!
-USE MODI_GET_LUOUT
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-#ifdef CPLOASIS
-USE MOD_OASIS
-#endif
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-CHARACTER(LEN=*),       INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
-INTEGER,                INTENT(IN)  :: KI        ! number of points on this proc
-INTEGER,                INTENT(IN)  :: KSW       ! number of short-wave spectral bands
-REAL,                   INTENT(IN)  :: PTIMEC    ! Cumulated run time step (s)
-!
-LOGICAL,                INTENT(IN)  :: ORECV_LAND
-LOGICAL,                INTENT(IN)  :: ORECV_SEA
-LOGICAL,                INTENT(IN)  :: ORECV_WAVE
-!
-REAL, DIMENSION(KI),    INTENT(OUT) :: PLAND_WTD     ! Land water table depth (m)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PLAND_FWTD    ! Land grid-cell fraction of water table rise (-)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PLAND_FFLOOD  ! Land Floodplains fraction (-)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PLAND_PIFLOOD ! Land Potential flood infiltration (kg/m2/s)
-!
-REAL, DIMENSION(KI),    INTENT(OUT) :: PSEA_SST ! Sea surface temperature (K)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PSEA_UCU ! Sea u-current stress (Pa)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PSEA_VCU ! Sea v-current stress (Pa)
-!
-REAL, DIMENSION(KI),    INTENT(OUT) :: PSEAICE_SIT ! Sea-ice Temperature (K)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PSEAICE_CVR ! Sea-ice cover (-)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PSEAICE_ALB ! Sea-ice albedo (-)
-!
-REAL, DIMENSION(KI),    INTENT(OUT) :: PWAVE_CHA ! Charnock coefficient (-)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PWAVE_UCU ! u-current velocity (m/s)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PWAVE_VCU ! v-current velocity (m/s)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PWAVE_HS  ! Significant wave height (m)
-REAL, DIMENSION(KI),    INTENT(OUT) :: PWAVE_TP  ! Peak period (s)
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-REAL, DIMENSION(KI,1) :: ZREAD
-!
-INTEGER               :: IDATE  ! current coupling time step (s)
-INTEGER               :: IERR   ! Error info
-INTEGER               :: ILUOUT
-CHARACTER(LEN=50)     :: YCOMMENT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-#ifdef CPLOASIS
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_RECV',0,ZHOOK_HANDLE)
-!
-!*       1.     Initialize :
-!               ------------
-!
-CALL GET_LUOUT(HPROGRAM,ILUOUT)
-!
-IDATE = INT(PTIMEC)
-!
-!-------------------------------------------------------------------------------
-!
-!*       2.     Get Land surface variable :
-!               ------------------------------------
-!
-IF(ORECV_LAND)THEN
-!
-! * Init river input fields
-!
-  ZREAD(:,:) = XUNDEF
-!
-  PLAND_WTD    (:) = XUNDEF
-  PLAND_FWTD   (:) = XUNDEF
-  PLAND_FFLOOD (:) = XUNDEF
-  PLAND_PIFLOOD(:) = XUNDEF
-!
-! * Receive river input fields
-!
-  IF(LCPL_GW)THEN
-!
-    YCOMMENT='water table depth'
-    CALL OASIS_GET(NWTD_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PLAND_WTD(:)=ZREAD(:,1)
-!
-    YCOMMENT='fraction of water table rise'
-    CALL OASIS_GET(NFWTD_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PLAND_FWTD(:)=ZREAD(:,1)
-!
-  ENDIF
-!
-  IF(LCPL_FLOOD)THEN
-!
-    YCOMMENT='Flood fraction'
-    CALL OASIS_GET(NFFLOOD_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PLAND_FFLOOD(:)=ZREAD(:,1)
-!
-    YCOMMENT='Potential flood infiltration'
-    CALL OASIS_GET(NPIFLOOD_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PLAND_PIFLOOD(:)=ZREAD(:,1)
-!
-    WHERE(PLAND_PIFLOOD(:)==0.0)PLAND_FFLOOD(:)=0.0
-!
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     Get Sea variables :
-!               -----------------------------
-!
-!
-IF(ORECV_SEA)THEN
-!
-! * Init ocean input fields
-!
-  ZREAD(:,:) = XUNDEF
-!
-  PSEA_SST (:) = XUNDEF
-  PSEA_UCU (:) = XUNDEF
-  PSEA_VCU (:) = XUNDEF
-!
-  PSEAICE_SIT (:) = XUNDEF
-  PSEAICE_CVR (:) = XUNDEF
-  PSEAICE_ALB (:) = XUNDEF
-!
-! * Receive ocean input fields
-!
-  IF(NSEA_SST_ID/=NUNDEF)THEN
-    YCOMMENT='Sea surface temperature'
-    CALL OASIS_GET(NSEA_SST_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PSEA_SST(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(NSEA_UCU_ID/=NUNDEF)THEN
-    YCOMMENT='Sea u-current stress'
-    CALL OASIS_GET(NSEA_UCU_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PSEA_UCU(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(NSEA_VCU_ID/=NUNDEF)THEN
-    YCOMMENT='Sea v-current stress'
-    CALL OASIS_GET(NSEA_VCU_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PSEA_VCU(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(LCPL_SEAICE)THEN
-!
-    YCOMMENT='Sea-ice Temperature'
-    CALL OASIS_GET(NSEAICE_SIT_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PSEAICE_SIT(:)=ZREAD(:,1)
-!
-    YCOMMENT='Sea-ice cover'
-    CALL OASIS_GET(NSEAICE_CVR_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PSEAICE_CVR(:)=ZREAD(:,1)
-!
-    YCOMMENT='Sea-ice albedo'
-    CALL OASIS_GET(NSEAICE_ALB_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PSEAICE_ALB(:)=ZREAD(:,1)
-!
-  ENDIF
-!
-ENDIF
-!-------------------------------------------------------------------------------
-!
-!*       4.     Get Wave variables :
-!               -----------------------------
-!
-!
-IF(ORECV_WAVE)THEN
-!
-! * Init ocean input fields
-!
-  ZREAD(:,:) = XUNDEF
-!
-  PWAVE_CHA (:) = XUNDEF
-  PWAVE_UCU  (:) = XUNDEF
-  PWAVE_VCU  (:) = XUNDEF
-  PWAVE_HS  (:) = XUNDEF
-  PWAVE_TP  (:) = XUNDEF
-!
-! * Receive wave input fields
-!
-  IF(NWAVE_CHA_ID/=NUNDEF)THEN
-    YCOMMENT='Charnock coefficient'
-    CALL OASIS_GET(NWAVE_CHA_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PWAVE_CHA(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(NWAVE_UCU_ID/=NUNDEF)THEN
-    YCOMMENT='u-current velocity'
-    CALL OASIS_GET(NWAVE_UCU_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PWAVE_UCU(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(NWAVE_VCU_ID/=NUNDEF)THEN
-    YCOMMENT='v-current velocity'
-    CALL OASIS_GET(NWAVE_VCU_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PWAVE_VCU(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(NWAVE_HS_ID/=NUNDEF)THEN
-    YCOMMENT='Significant wave height'
-    CALL OASIS_GET(NWAVE_HS_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PWAVE_HS(:)=ZREAD(:,1)
-  ENDIF
-!
-  IF(NWAVE_TP_ID/=NUNDEF)THEN
-    YCOMMENT='Peak period'
-    CALL OASIS_GET(NWAVE_TP_ID,IDATE,ZREAD(:,:),IERR)
-    CALL CHECK_RECV(ILUOUT,IERR,YCOMMENT)
-    PWAVE_TP(:)=ZREAD(:,1)
-  ENDIF
-!
-ENDIF
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_RECV',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-CONTAINS
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE CHECK_RECV(KLUOUT,KERR,HCOMMENT)
-!
-USE MODI_ABOR1_SFX
-!
-IMPLICIT NONE
-!
-INTEGER,          INTENT(IN)  :: KLUOUT
-INTEGER,          INTENT(IN)  :: KERR
-CHARACTER(LEN=*), INTENT(IN)  :: HCOMMENT
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_RECV:CHECK_RECV',0,ZHOOK_HANDLE)
-!
-IF (KERR/=OASIS_OK.AND.KERR<OASIS_RECVD) THEN
-   WRITE(KLUOUT,'(A,I4)')'Return OASIS code receiving '//TRIM(HCOMMENT)//' : ',KERR
-   CALL ABOR1_SFX('SFX_OASIS_RECV: problem receiving '//TRIM(HCOMMENT)//' from OASIS')
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_RECV:CHECK_RECV',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE CHECK_RECV
-!
-!-------------------------------------------------------------------------------
-#endif
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE SFX_OASIS_RECV
diff --git a/src/OASIS/SURFEX/sfx_oasis_send.F90 b/src/OASIS/SURFEX/sfx_oasis_send.F90
deleted file mode 100644
index 6d20b477c..000000000
--- a/src/OASIS/SURFEX/sfx_oasis_send.F90
+++ /dev/null
@@ -1,416 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!#########
-SUBROUTINE SFX_OASIS_SEND(KLUOUT,KI,KDATE,OSEND_LAND,OSEND_LAKE,OSEND_SEA,OSEND_WAVE,  &
-                          PLAND_RUNOFF,PLAND_DRAIN,PLAND_CALVING,               &
-                          PLAND_SRCFLOOD,                                       &
-                          PLAKE_EVAP,PLAKE_RAIN,PLAKE_SNOW,PLAKE_WATF,          &
-                          PSEA_FWSU,PSEA_FWSV,PSEA_HEAT,PSEA_SNET,PSEA_WIND,    &
-                          PSEA_FWSM,PSEA_EVAP,PSEA_RAIN,PSEA_SNOW,PSEA_EVPR,    &
-                          PSEA_WATF,PSEA_PRES,PSEAICE_HEAT,PSEAICE_SNET,        &
-                          PSEAICE_EVAP,PWAVE_U10,PWAVE_V10            )
-!###########################################
-!
-!!****  *SFX_OASIS_SEND* - Send coupling fields
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!    Attention : all fields are sent in Pa, m/s, W/m2 or kg/m2/s
-!!   
-!!
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!	B. Decharme   *Meteo France*	
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    10/2013
-!!      Modified    11/2014 : J. Pianezze - add wave coupling parameters
-!!                                          and surface pressure for ocean coupling
-!!    10/2016 B. Decharme : bug surface/groundwater coupling
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODN_SFX_OASIS,  ONLY : XTSTEP_CPL_SEA, XTSTEP_CPL_WAVE, XTSTEP_CPL_LAKE, &
-                            XTSTEP_CPL_LAND
-!                    
-USE MODD_SURF_PAR,   ONLY : XUNDEF, NUNDEF
-!
-USE MODD_SFX_OASIS
-!
-USE MODI_GET_LUOUT
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-#ifdef CPLOASIS
-USE MOD_OASIS
-#endif
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
-INTEGER,             INTENT(IN) :: KLUOUT
-INTEGER,             INTENT(IN) :: KI            ! number of points
-INTEGER,             INTENT(IN) :: KDATE  ! current coupling time step (s)
-LOGICAL,             INTENT(IN) :: OSEND_LAND
-LOGICAL,             INTENT(IN) :: OSEND_LAKE
-LOGICAL,             INTENT(IN) :: OSEND_SEA
-LOGICAL,             INTENT(IN) :: OSEND_WAVE
-!
-REAL, DIMENSION(KI), INTENT(IN) :: PLAND_RUNOFF    ! Cumulated Surface runoff             (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PLAND_DRAIN     ! Cumulated Deep drainage              (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PLAND_CALVING   ! Cumulated Calving flux               (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PLAND_SRCFLOOD  ! Cumulated flood freshwater flux      (kg/m2)
-!
-REAL, DIMENSION(KI), INTENT(IN) :: PLAKE_EVAP  ! Cumulated Evaporation              (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PLAKE_RAIN  ! Cumulated Rainfall rate            (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PLAKE_SNOW  ! Cumulated Snowfall rate            (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PLAKE_WATF  ! Cumulated freshwater flux          (kg/m2)
-!
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_FWSU  ! Cumulated zonal wind stress       (Pa.s)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_FWSV  ! Cumulated meridian wind stress    (Pa.s)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_HEAT  ! Cumulated Non solar net heat flux (J/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_SNET  ! Cumulated Solar net heat flux     (J/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_WIND  ! Cumulated 10m wind speed          (m)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_FWSM  ! Cumulated wind stress             (Pa.s)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_EVAP  ! Cumulated Evaporation             (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_RAIN  ! Cumulated Rainfall rate           (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_SNOW  ! Cumulated Snowfall rate           (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_EVPR  ! Evap. - Precip. rate              (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_WATF  ! Cumulated freshwater flux         (kg/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEA_PRES  ! Cumulated Surface pressure        (Pa.s)
-!
-REAL, DIMENSION(KI), INTENT(IN) :: PSEAICE_HEAT ! Cumulated Sea-ice non solar net heat flux (J/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEAICE_SNET ! Cumulated Sea-ice solar net heat flux     (J/m2)
-REAL, DIMENSION(KI), INTENT(IN) :: PSEAICE_EVAP ! Cumulated Sea-ice sublimation             (kg/m2)
-!
-REAL, DIMENSION(KI), INTENT(IN) :: PWAVE_U10  ! 
-REAL, DIMENSION(KI), INTENT(IN) :: PWAVE_V10  !
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-REAL, DIMENSION(KI,1) :: ZWRITE ! Mean flux send to OASIS (Pa, m/s, W/m2 or kg/m2/s)
-!
-CHARACTER(LEN=50)     :: YCOMMENT
-INTEGER               :: IERR   ! Error info
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-#ifdef CPLOASIS
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_SEND',0,ZHOOK_HANDLE)
-!
-!*       1.     Initialize :
-!               ------------
-!
-ZWRITE(:,:) = XUNDEF
-!
-!-------------------------------------------------------------------------------
-!
-!*       2.     Send land fields to OASIS:
-!               --------------------------
-!
-IF(OSEND_LAND)THEN
-!
-! * Send river output fields
-!
-  YCOMMENT='Surface runoff over land'
-  CALL OUTVAR(PLAND_RUNOFF,XTSTEP_CPL_LAND,ZWRITE(:,1))
-  CALL OASIS_PUT(NRUNOFF_ID,KDATE,ZWRITE(:,:),IERR)
-  CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-!
-  YCOMMENT='Deep drainage over land'
-  CALL OUTVAR(PLAND_DRAIN,XTSTEP_CPL_LAND,ZWRITE(:,1))
-  CALL OASIS_PUT(NDRAIN_ID,KDATE,ZWRITE(:,:),IERR)
-  CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-!
-  IF(LCPL_CALVING)THEN
-    YCOMMENT='calving flux over land'
-    CALL OUTVAR(PLAND_CALVING,XTSTEP_CPL_LAND,ZWRITE(:,1))
-    CALL OASIS_PUT(NCALVING_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(LCPL_FLOOD)THEN      
-    YCOMMENT='flood freshwater flux over land (P-E-I)'
-    CALL OUTVAR(PLAND_SRCFLOOD,XTSTEP_CPL_LAND,ZWRITE(:,1))
-    CALL OASIS_PUT(NSRCFLOOD_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1)) 
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     Send lake fields to OASIS :
-!               --------------------------
-IF(OSEND_LAKE)THEN
-!
-! * Send output fields (in kg/m2/s)
-!
-  IF(NLAKE_EVAP_ID/=NUNDEF)THEN
-    YCOMMENT='Evaporation over lake'
-    CALL OUTVAR(PLAKE_EVAP,XTSTEP_CPL_LAKE,ZWRITE(:,1))
-    CALL OASIS_PUT(NLAKE_EVAP_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NLAKE_RAIN_ID/=NUNDEF)THEN
-    YCOMMENT='Rainfall rate over lake'
-    CALL OUTVAR(PLAKE_RAIN,XTSTEP_CPL_LAKE,ZWRITE(:,1))
-    CALL OASIS_PUT(NLAKE_RAIN_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NLAKE_SNOW_ID/=NUNDEF)THEN
-    YCOMMENT='Snowfall rate over lake'
-    CALL OUTVAR(PLAKE_SNOW,XTSTEP_CPL_LAKE,ZWRITE(:,1))
-    CALL OASIS_PUT(NLAKE_SNOW_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NLAKE_WATF_ID/=NUNDEF)THEN
-    YCOMMENT='Freshwater flux over lake (P-E)'
-    CALL OUTVAR(PLAKE_WATF,XTSTEP_CPL_LAKE,ZWRITE(:,1))
-    CALL OASIS_PUT(NLAKE_WATF_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-
-
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       4.     Send sea fields to OASIS :
-!               --------------------------
-!
-IF(OSEND_SEA)THEN
-!
-! * Send sea output fields (in Pa, m/s, W/m2 or kg/m2/s)
-!
-  IF(NSEA_FWSU_ID/=NUNDEF)THEN
-    YCOMMENT='zonal wind stress over sea'
-    CALL OUTVAR(PSEA_FWSU,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_FWSU_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_FWSV_ID/=NUNDEF)THEN
-    YCOMMENT='meridian wind stress over sea'
-    CALL OUTVAR(PSEA_FWSV,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_FWSV_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_HEAT_ID/=NUNDEF)THEN
-    YCOMMENT='Non solar net heat flux over sea'
-    CALL OUTVAR(PSEA_HEAT,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_HEAT_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_SNET_ID/=NUNDEF)THEN
-    YCOMMENT='Solar net heat flux over sea'
-    CALL OUTVAR(PSEA_SNET,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_SNET_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_WIND_ID/=NUNDEF)THEN
-    YCOMMENT='10m wind speed over sea'
-    CALL OUTVAR(PSEA_WIND,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_WIND_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_FWSM_ID/=NUNDEF)THEN
-    YCOMMENT='wind stress over sea'
-    CALL OUTVAR(PSEA_FWSM,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_FWSM_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_EVAP_ID/=NUNDEF)THEN
-    YCOMMENT='Evaporation over sea'
-    CALL OUTVAR(PSEA_EVAP,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_EVAP_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_RAIN_ID/=NUNDEF)THEN
-    YCOMMENT='Rainfall rate over sea'
-    CALL OUTVAR(PSEA_RAIN,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_RAIN_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_SNOW_ID/=NUNDEF)THEN
-    YCOMMENT='Snowfall rate over sea'
-    CALL OUTVAR(PSEA_SNOW,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_SNOW_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_EVPR_ID/=NUNDEF)THEN
-    YCOMMENT='Evap. - Precip. rate over sea'
-    CALL OUTVAR(PSEA_EVPR,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_EVPR_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_WATF_ID/=NUNDEF)THEN
-    YCOMMENT='Freshwater flux over sea (P-E)'
-    CALL OUTVAR(PSEA_WATF,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_WATF_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NSEA_PRES_ID/=NUNDEF)THEN
-    YCOMMENT='Surface pressure'
-    CALL OUTVAR(PSEA_PRES,XTSTEP_CPL_SEA,ZWRITE(:,1))
-    CALL OASIS_PUT(NSEA_PRES_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-! * Sea-ice output fields (in W/m2 or kg/m2/s)
-!
-  IF(LCPL_SEAICE)THEN
-!
-    IF(NSEAICE_HEAT_ID/=NUNDEF)THEN
-      YCOMMENT='Sea-ice non solar net heat flux over sea-ice'
-      CALL OUTVAR(PSEAICE_HEAT,XTSTEP_CPL_SEA,ZWRITE(:,1))
-      CALL OASIS_PUT(NSEAICE_HEAT_ID,KDATE,ZWRITE(:,:),IERR)
-      CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-    ENDIF
-!
-    IF(NSEAICE_SNET_ID/=NUNDEF)THEN
-      YCOMMENT='Sea-ice solar net heat flux over sea-ice'
-      CALL OUTVAR(PSEAICE_SNET,XTSTEP_CPL_SEA,ZWRITE(:,1))
-      CALL OASIS_PUT(NSEAICE_SNET_ID,KDATE,ZWRITE(:,:),IERR)
-      CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-    ENDIF
-!
-    IF(NSEAICE_EVAP_ID/=NUNDEF)THEN
-      YCOMMENT='Sea-ice sublimation over sea-ice'
-      CALL OUTVAR(PSEAICE_EVAP,XTSTEP_CPL_SEA,ZWRITE(:,1))
-      CALL OASIS_PUT(NSEAICE_EVAP_ID,KDATE,ZWRITE(:,:),IERR)
-      CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-    ENDIF
-!
-  ENDIF
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       5.     Send wave fields to OASIS :
-!               --------------------------
-IF(OSEND_WAVE)THEN
-!
-! * Send output fields
-!
-  IF(NWAVE_U10_ID/=NUNDEF)THEN
-    YCOMMENT='10m u-wind speed'
-    ZWRITE(:,1) = PWAVE_U10(:)
-    CALL OASIS_PUT(NWAVE_U10_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-  IF(NWAVE_V10_ID/=NUNDEF)THEN
-    YCOMMENT='10m v-wind speed'
-    ZWRITE(:,1) = PWAVE_V10(:)
-    CALL OASIS_PUT(NWAVE_V10_ID,KDATE,ZWRITE(:,:),IERR)
-    CALL CHECK_SFX_SEND(KLUOUT,IERR,YCOMMENT,ZWRITE(:,1))
-  ENDIF
-!
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_SEND',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-CONTAINS
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE CHECK_SFX_SEND(KLUOUT,KERR,HCOMMENT,PWRITE)
-!
-USE MODI_ABOR1_SFX
-!
-IMPLICIT NONE
-!
-INTEGER,          INTENT(IN) :: KLUOUT
-INTEGER,          INTENT(IN) :: KERR
-CHARACTER(LEN=*), INTENT(IN) :: HCOMMENT
-!
-REAL, DIMENSION(:), INTENT(OUT):: PWRITE
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_SEND:CHECK_SFX_SEND',0,ZHOOK_HANDLE)
-!
-PWRITE(:) = XUNDEF
-!
-IF (KERR/=OASIS_OK.AND.KERR<OASIS_SENT) THEN
-   WRITE(KLUOUT,'(A,I4)')'Return OASIS code from sending '//TRIM(HCOMMENT)//' : ',KERR
-   CALL ABOR1_SFX('SFX_OASIS_SEND: problem sending '//TRIM(HCOMMENT))
-ENDIF 
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_SEND:CHECK_SFX_SEND',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE CHECK_SFX_SEND
-!
-!-------------------------------------------------------------------------------
-!
-SUBROUTINE OUTVAR(PIN,PDIV,PWRITE)
-!
-IMPLICIT NONE
-!
-REAL, DIMENSION(:), INTENT(IN) :: PIN
-REAL,               INTENT(IN) :: PDIV
-!
-REAL, DIMENSION(:), INTENT(OUT):: PWRITE
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_SEND:OUTVAR',0,ZHOOK_HANDLE)
-!
-WHERE(PIN(:)/=XUNDEF)
-     PWRITE(:)=PIN(:)/PDIV
-ELSEWHERE
-     PWRITE(:)=XUNDEF
-ENDWHERE
-!
-IF (LHOOK) CALL DR_HOOK('SFX_OASIS_SEND:OUTVAR',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE OUTVAR
-!
-!-------------------------------------------------------------------------------
-#endif
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE SFX_OASIS_SEND
diff --git a/src/OASIS/SURFEX/write_lcover.F90 b/src/OASIS/SURFEX/write_lcover.F90
deleted file mode 100644
index 32a1be568..000000000
--- a/src/OASIS/SURFEX/write_lcover.F90
+++ /dev/null
@@ -1,99 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE WRITE_LCOVER(HSELECT,HPROGRAM,OCOVER)
-!     ################################
-!
-!!****  *READ_LCOVER* - routine to write a file for
-!!                         physiographic data file of model _n 
-!!
-!!    PURPOSE
-!!    -------
-!!       The purpose of this routine is to write the list of covers to a file in parallel using MPI
-!!
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!      
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!	M. Moge   *LA - CNRS*	
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      J. Pianezze 08/2016 replacement of MPI_COMM_WOLRD by NMNH_COMM_WORLD
-!!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-#ifdef MNH_PARALLEL
-USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
-#endif
-!
-USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
-!
-USE MODI_WRITE_SURF
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-#ifdef MNH_PARALLEL
-#ifndef NOMPI
-INCLUDE "mpif.h"
-#endif
-#endif
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
- CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: HSELECT
- CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
-LOGICAL, DIMENSION(JPCOVER)    :: OCOVER   ! list of covers
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-INTEGER           :: IRESP          ! Error code after reading
-CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
-CHARACTER(LEN=100):: YCOMMENT       ! Comment string
-LOGICAL, DIMENSION(JPCOVER)    :: GCOVER   ! tmp list of covers
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-INTEGER   :: IINFO
-!-------------------------------------------------------------------------------
-!
-!
-!* ascendant compatibility
-IF (LHOOK) CALL DR_HOOK('WRITE_LCOVER',0,ZHOOK_HANDLE)
-#ifdef MNH_PARALLEL
-#ifndef NOMPI
-CALL MPI_ALLREDUCE(OCOVER, GCOVER, SIZE(OCOVER),MPI_LOGICAL, MPI_LOR, NMNH_COMM_WORLD, IINFO)
-OCOVER(:)=GCOVER(:)
-#endif
-#endif
-YRECFM='COVER_LIST'
-YCOMMENT='(LOGICAL LIST)'
-CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,OCOVER(:),IRESP,HCOMMENT=YCOMMENT,HDIR='-')
-!
-IF (LHOOK) CALL DR_HOOK('WRITE_LCOVER',1,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE WRITE_LCOVER
diff --git a/src/OASIS/SURFEX/writesurf_seafluxn.F90 b/src/OASIS/SURFEX/writesurf_seafluxn.F90
deleted file mode 100644
index 69bb0a844..000000000
--- a/src/OASIS/SURFEX/writesurf_seafluxn.F90
+++ /dev/null
@@ -1,226 +0,0 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!SFX_LIC for details. version 1.
-!     #########
-      SUBROUTINE WRITESURF_SEAFLUX_n (HSELECT, O, OR, S, HPROGRAM)
-!     ########################################
-!
-!!****  *WRITE_SEAFLUX_n* - writes SEAFLUX fields
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!
-!!    AUTHOR
-!!    ------
-!!	V. Masson   *Meteo France*	
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    01/2003 
-!!      Modified    01/2014 : S. Senesi : handle seaice scheme
-!!      S. Belamari 03/2014   Include sea surface salinity XSSS
-!!      R. Séférian 01/2015 : introduce interactive ocean surface albedo
-!!      S. Senesi   08/2015 : fix units in some HCOMMENTs
-!!      Modified    03/2014 : M.N. Bouin  ! possibility of wave parameters
-!!                                        ! from external source
-!!      Modified    11/2014 : J. Pianezze ! add currents and charnock coefficient
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-!
-USE MODD_SURF_ATM_n, ONLY : SURF_ATM_t
-!
-USE MODD_OCEAN_n, ONLY : OCEAN_t
-USE MODD_OCEAN_REL_n, ONLY : OCEAN_REL_t
-USE MODD_SEAFLUX_n, ONLY : SEAFLUX_t
-!
-USE MODD_SFX_OASIS,  ONLY : LCPL_WAVE, LCPL_SEA
-!
-USE MODI_WRITE_SURF
-USE MODI_WRITESURF_OCEAN_n
-USE MODI_WRITESURF_SEAICE_n
-!
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
-USE PARKIND1  ,ONLY : JPRB
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of arguments
-!              -------------------------
-!
- CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: HSELECT 
-!
-TYPE(OCEAN_t), INTENT(INOUT) :: O
-TYPE(OCEAN_REL_t), INTENT(INOUT) :: OR
-TYPE(SEAFLUX_t), INTENT(INOUT) :: S
-!
- CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling
-
-!
-!*       0.2   Declarations of local variables
-!              -------------------------------
-!
-INTEGER           :: JMTH, INMTH
- CHARACTER(LEN=2 ) :: YMTH
-!
-INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
- CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
- CHARACTER(LEN=100):: YCOMMENT       ! Comment string
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-!
-!
-IF (LHOOK) CALL DR_HOOK('WRITESURF_SEAFLUX_N',0,ZHOOK_HANDLE)
-!
- CALL WRITESURF_OCEAN_n(HSELECT, O, OR, HPROGRAM)
-!
-!*       2.     Sea-ice prognostic fields:
-!               --------------------------
-!
-!* flag to tell if Sea Ice model is used
-!
-YCOMMENT='flag to handle sea ice cover'
- CALL WRITE_SURF(HSELECT, HPROGRAM,'HANDLE_SIC',S%LHANDLE_SIC,IRESP,YCOMMENT)
-!
-IF (S%LHANDLE_SIC) CALL WRITESURF_SEAICE_n(HSELECT, S, HPROGRAM)
-!
-!
-!*       3.     Prognostic fields:
-!               -----------------
-!
-!* water temperature
-!
-IF(S%LINTERPOL_SST)THEN
-!
-  INMTH=SIZE(S%XSST_MTH,2)
-!
-  DO JMTH=1,INMTH
-     WRITE(YMTH,'(I2)') (JMTH-1)
-     YRECFM='SST_MTH'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))
-     YCOMMENT='SST at month t'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))//' (K)'
-     CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XSST_MTH(:,JMTH),IRESP,HCOMMENT=YCOMMENT)
-  ENDDO
-!
-ENDIF
-!
-YRECFM='SST'
-YCOMMENT='SST (K)'
- CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XSST(:),IRESP,HCOMMENT=YCOMMENT)  
-!
-!-------------------------------------------------------------------------------
-!
-!*       4.     Semi-prognostic fields:
-!               ----------------------
-!
-!* roughness length
-!
-YRECFM='Z0SEA'
-YCOMMENT='Z0SEA (m)'
- CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XZ0(:),IRESP,HCOMMENT=YCOMMENT)
- !
-!* significant height
-!
-YRECFM='HS'
-YCOMMENT='HS (m)'
- CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,S%XHS(:),IRESP,HCOMMENT=YCOMMENT)
-!
-!* peak period
-!
-YRECFM='TP'
-YCOMMENT='TP (s)'
- CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,S%XTP(:),IRESP,HCOMMENT=YCOMMENT)
-!
-!
-IF (LCPL_WAVE) THEN
-  !
-  !* Charnock coefficient
-  !
-  YRECFM='CHARN'
-  YCOMMENT='CHARN (-)'
-  CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,S%XCHARN(:),IRESP,HCOMMENT=YCOMMENT)
-  !
-END IF
-!
-IF (LCPL_WAVE .OR. LCPL_SEA) THEN
-  !
-  !* u-current velocity
-  !
-  YRECFM='UMER'
-  YCOMMENT='UMER (m/s)'
-  CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,S%XUMER(:),IRESP,HCOMMENT=YCOMMENT)
-  !
-  !* v-current velocity
-  !
-  YRECFM='VMER'
-  YCOMMENT='VMER (m/s)'
-  CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,S%XVMER(:),IRESP,HCOMMENT=YCOMMENT)
-  !
-ENDIF
-!
-!* sea surface salinity
-!
-IF(S%LINTERPOL_SSS)THEN
-   !
-   INMTH=SIZE(S%XSSS_MTH,2)
-   !
-   DO JMTH=1,INMTH
-      WRITE(YMTH,'(I2)') (JMTH-1)
-      YRECFM='SSS_MTH'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))
-      YCOMMENT='Sea Surface Salinity at month t'//ADJUSTL(YMTH(:LEN_TRIM(YMTH)))//' (psu)'
-      CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XSSS_MTH(:,JMTH),IRESP,HCOMMENT=YCOMMENT)
-   ENDDO
-!
-ENDIF
-!
-YRECFM='SSS'
-YCOMMENT='Sea Surface Salinity (psu)'
- CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XSSS(:),IRESP,HCOMMENT=YCOMMENT)  
-!
-!
-!* ocean surface albedo (direct and diffuse fraction)
-!
-IF(S%CSEA_ALB=='RS14')THEN
-!
-  YRECFM='OSA_DIR'
-  YCOMMENT='direct ocean surface albedo (-)'
-  CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XDIR_ALB(:),IRESP,HCOMMENT=YCOMMENT)
-!
-  YRECFM='OSA_SCA'
-  YCOMMENT='diffuse ocean surface albedo (-)'
-  CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%XSCA_ALB(:),IRESP,HCOMMENT=YCOMMENT)
-!
-ENDIF
-!
-!-------------------------------------------------------------------------------
-!
-!*       5.  Time
-!            ----
-!
-YRECFM='DTCUR'
-YCOMMENT='s'
- CALL WRITE_SURF(HSELECT, HPROGRAM,YRECFM,S%TTIME,IRESP,HCOMMENT=YCOMMENT)
-!
-IF (LHOOK) CALL DR_HOOK('WRITESURF_SEAFLUX_N',1,ZHOOK_HANDLE)
-!
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE WRITESURF_SEAFLUX_n
diff --git a/src/OASIS/SURFEX/get_sfx_wave.F90 b/src/SURFEX/get_sfx_wave.F90
similarity index 100%
rename from src/OASIS/SURFEX/get_sfx_wave.F90
rename to src/SURFEX/get_sfx_wave.F90
diff --git a/src/OASIS/SURFEX/put_sfx_wave.F90 b/src/SURFEX/put_sfx_wave.F90
similarity index 100%
rename from src/OASIS/SURFEX/put_sfx_wave.F90
rename to src/SURFEX/put_sfx_wave.F90
-- 
GitLab