Index: /LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90	(revision 4373)
+++ /LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90	(revision 4374)
@@ -406,6 +406,7 @@
 #endif
     USE ioipsl_getin_p_mod, ONLY : getin_p
-    use phys_state_var_mod, only: ds_ns, dt_ns, delta_sst, delta_sal, zsig, zmea
-    use phys_output_var_mod, only: dter, dser, tkt, tks, taur, sss
+    use phys_state_var_mod, only: ds_ns, dt_ns, delta_sst, delta_sal, dter, &
+         dser, dt_ds, zsig, zmea
+    use phys_output_var_mod, only: tkt, tks, taur, sss
 #ifdef CPP_XIOS
     USE wxios, ONLY: missing_val
@@ -1029,8 +1030,8 @@
     ! Martin
 
-    REAL, DIMENSION(klon):: ydelta_sst, ydelta_sal, yds_ns, ydt_ns, ydter, ydser, &
-         ytkt, ytks, ytaur, ysss
-    ! compression of delta_sst, delta_sal, ds_ns, dt_ns, dter, dser, tkt, tks,
-    ! taur, sss on ocean points
+    REAL, DIMENSION(klon):: ydelta_sst, ydelta_sal, yds_ns, ydt_ns, ydter, &
+         ydser, ydt_ds, ytkt, ytks, ytaur, ysss
+    ! compression of delta_sst, delta_sal, ds_ns, dt_ns, dter, dser,
+    ! dt_ds, tkt, tks, taur, sss on ocean points
 
 #ifdef ISO
@@ -1813,4 +1814,7 @@
              ydelta_sal(:knon) = delta_sal(ni(:knon))
              ydelta_sst(:knon) = delta_sst(ni(:knon))
+             ydter(:knon) = dter(ni(:knon))
+             ydser(:knon) = dser(ni(:knon))
+             ydt_ds(:knon) = dt_ds(ni(:knon))
           end if
           
@@ -2462,5 +2466,5 @@
                y_flux_u1, y_flux_v1, ydelta_sst(:knon), ydelta_sal(:knon), &
                yds_ns(:knon), ydt_ns(:knon), ydter(:knon), ydser(:knon), &
-               ytkt(:knon), ytks(:knon), ytaur(:knon), ysss &
+               ydt_ds(:knon), ytkt(:knon), ytks(:knon), ytaur(:knon), ysss &
 #ifdef ISO
          &      ,yxtrain_f, yxtsnow_f,yxt1,Roce, &
@@ -3394,4 +3398,9 @@
           taur(ni(:knon)) = ytaur(:knon)
           sss(ni(:knon)) = ysss(:knon)
+
+          if (activate_ocean_skin == 2 .and. type_ocean == "couple") then
+             dt_ds = missing_val
+             dt_ds(ni(:knon)) = ydt_ds(:knon)
+          end if
        end if
 
@@ -4131,5 +4140,6 @@
 
     USE indice_sol_mod
-    use phys_state_var_mod, only: delta_sal, ds_ns, dt_ns, delta_sst
+    use phys_state_var_mod, only: delta_sal, ds_ns, dt_ns, delta_sst, dter, &
+         dser, dt_ds
     use config_ocean_skin_m, only: activate_ocean_skin
 
@@ -4237,4 +4247,7 @@
                          delta_sal(i) = 0.
                          delta_sst(i) = 0.
+                         dter(i) = 0.
+                         dser(i) = 0.
+                         dt_ds(i) = 0.
                       end if
                       
Index: /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90	(revision 4373)
+++ /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90	(revision 4374)
@@ -35,5 +35,6 @@
 #endif
        zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg, &
-       ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal, ratqs_inter
+       ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal, dter, dser, &
+       dt_ds, ratqs_inter
 !FC
   USE geometry_mod,     ONLY: longitude_deg, latitude_deg
@@ -599,4 +600,17 @@
         found = phyetat0_get(delta_sst, "delta_SST", &
              "ocean-air interface temperature minus bulk SST", 0.)
+        found = phyetat0_get(dter, "dter", &
+             "ocean-air interface temperature minus subskin temperature", 0.)
+        found = phyetat0_get(dser, "dser", &
+             "ocean-air interface salinity minus subskin salinity", 0.)
+        found = phyetat0_get(dt_ds, "dt_ds", "(tks / tkt) * dTer", 0.)
+
+        where (pctsrf(:, is_oce) == 0.)
+           delta_sst = missing_val
+           delta_sal = missing_val
+           dter = missing_val
+           dser = missing_val
+           dt_ds = missing_val
+        end where
      end if
      
Index: /LMDZ6/trunk/libf/phylmdiso/phyredem.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyredem.F90	(revision 4373)
+++ /LMDZ6/trunk/libf/phylmdiso/phyredem.F90	(revision 4374)
@@ -30,5 +30,5 @@
                                 du_gwd_rando, du_gwd_front, u10m, v10m, &
                                 treedrg, solswfdiff, delta_sal, ds_ns, dt_ns, &
-                                delta_sst, ratqs_inter
+                                delta_sst, ratqs_inter, dter, dser, dt_ds
 #ifdef ISO
   USE phys_state_var_mod, ONLY: xtsol, fxtevap,xtrain_fall, xtsnow_fall,     &
@@ -399,4 +399,11 @@
           CALL put_field(pass, "delta_SST", &
                "ocean-air interface temperature minus bulk SST", delta_sst)
+          CALL put_field(pass, "dter", &
+               "ocean-air interface temperature minus subskin temperature", &
+               dter)
+          CALL put_field(pass, "dser", &
+               "ocean-air interface salinity minus subskin salinity", dser)
+          CALL put_field(pass, "dt_ds", &
+               "(tks / tkt) * dTer", dt_ds)
        end if
        
Index: /LMDZ6/trunk/libf/phylmdiso/phys_output_var_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phys_output_var_mod.F90	(revision 4373)
+++ /LMDZ6/trunk/libf/phylmdiso/phys_output_var_mod.F90	(revision 4374)
@@ -135,25 +135,17 @@
   ! Ocean-atmosphere interface, subskin ocean and near-surface ocean:
   
-  REAL, ALLOCATABLE, SAVE:: dter(:)
-  ! Temperature variation in the diffusive microlayer, that is
-  ! ocean-air interface temperature minus subskin temperature. In K.
-      
-  REAL, SAVE, ALLOCATABLE:: dser(:)
-  ! Temperature variation in the diffusive microlayer, that is
-  ! subskin temperature minus ocean-air interface temperature. In K.
-
-  REAL, SAVE, ALLOCATABLE:: tkt(:)
+  REAL, SAVE, ALLOCATABLE:: tkt(:) ! (klon)
   ! épaisseur (m) de la couche de diffusion thermique (microlayer)
   ! cool skin thickness
 
-  REAL, SAVE, ALLOCATABLE:: tks(:)
+  REAL, SAVE, ALLOCATABLE:: tks(:) ! (klon)
   ! épaisseur (m) de la couche de diffusion de masse (microlayer)
   
-  REAL, SAVE, ALLOCATABLE:: taur(:) ! momentum flux due to rain, in Pa
-
-  REAL, SAVE, ALLOCATABLE:: sss(:)
+  REAL, SAVE, ALLOCATABLE:: taur(:) ! (klon) momentum flux due to rain, in Pa
+
+  REAL, SAVE, ALLOCATABLE:: sss(:) ! (klon)
   ! bulk salinity of the surface layer of the ocean, in ppt
   
-  !$OMP THREADPRIVATE(dter, dser, tkt, tks, taur, sss)
+  !$OMP THREADPRIVATE(tkt, tks, taur, sss)
 
 CONTAINS
@@ -216,6 +208,6 @@
     IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon))
 
-    if (activate_ocean_skin >= 1) allocate(dter(klon), dser(klon), tkt(klon), &
-         tks(klon), taur(klon), sss(klon))
+    if (activate_ocean_skin >= 1) allocate(tkt(klon), tks(klon), taur(klon), &
+         sss(klon))
 
   END SUBROUTINE phys_output_var_init
Index: /LMDZ6/trunk/libf/phylmdiso/surf_ocean_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/surf_ocean_mod.F90	(revision 4373)
+++ /LMDZ6/trunk/libf/phylmdiso/surf_ocean_mod.F90	(revision 4374)
@@ -20,6 +20,6 @@
        z0m, z0h, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, & 
        tsurf_new, dflux_s, dflux_l, lmt_bils, &
-       flux_u1, flux_v1, delta_sst, delta_sal, ds_ns, dt_ns, dter, dser, tkt, tks, &
-       taur, sss &
+       flux_u1, flux_v1, delta_sst, delta_sal, ds_ns, dt_ns, dter, dser, &
+       dt_ds, tkt, tks, taur, sss &
 #ifdef ISO
         &       ,xtprecip_rain, xtprecip_snow,xtspechum,Roce, &
@@ -114,4 +114,16 @@
     ! minus foundation temperature. (Can be negative.) In K.
 
+    REAL, intent(inout):: dter(:) ! (knon)
+    ! Temperature variation in the diffusive microlayer, that is
+    ! ocean-air interface temperature minus subskin temperature. In
+    ! K.
+
+    REAL, intent(inout):: dser(:) ! (knon)
+    ! Salinity variation in the diffusive microlayer, that is
+    ! ocean-air interface salinity minus subskin salinity. In ppt.
+
+    real, intent(inout):: dt_ds(:) ! (knon)
+    ! (tks / tkt) * dTer, in K
+
     ! Output variables
     !**************************************************************************
@@ -129,13 +141,4 @@
     REAL, DIMENSION(klon), INTENT(OUT)       :: flux_u1, flux_v1
 
-    REAL, intent(out):: dter(:) ! (knon)
-    ! Temperature variation in the diffusive microlayer, that is
-    ! ocean-air interface temperature minus subskin temperature. In
-    ! K.
-
-    REAL, intent(out):: dser(:) ! (knon)
-    ! Salinity variation in the diffusive microlayer, that is
-    ! ocean-air interface salinity minus subskin salinity. In ppt.
-
     REAL, intent(out):: tkt(:) ! (knon)
     ! épaisseur (m) de la couche de diffusion thermique (microlayer)
@@ -152,4 +155,5 @@
     ! defined for subscripts 1:knon, but we have to declare it with
     ! size klon because of the coupling machinery.)
+
 #ifdef ISO
     REAL, DIMENSION(ntraciso,klon), INTENT(out)        :: xtevap ! isotopes in surface evaporation flux 
@@ -172,5 +176,5 @@
     real s_int(knon) ! ocean-air interface salinity, in ppt
 
-    !******************************************************************************
+    !**************************************************************************
 
 #ifdef ISO
@@ -213,7 +217,5 @@
     ENDIF
 
-
     rhoa = PS(:KNON) / (Rd * temp_air(:knon) * (1. + retv * spechum(:knon)))
-
     !******************************************************************************
     ! Switch according to type of ocean (couple, slab or forced)
@@ -232,5 +234,5 @@
             qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
             tsurf_new, dflux_s, dflux_l, sens_prec_liq, sss, delta_sal, rhoa, &
-            delta_sst)
+            delta_sst, dTer, dSer, dt_ds)
 
     CASE('slab')
@@ -376,7 +378,11 @@
        delta_sst = t_int - tsurf_new(:knon)
        delta_sal = s_int - sss(:knon)
-       if (activate_ocean_skin >= 2) tsurf_new(:knon) = t_int
+
+       if (activate_ocean_skin == 2) then
+          tsurf_new(:knon) = t_int
+          if (type_ocean == 'couple') dt_ds = (tks / tkt) * dter
+       end if
     end if
-
+    
   END SUBROUTINE surf_ocean
   !****************************************************************************
Index: /LMDZ6/trunk/libf/phylmdiso/wake.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/wake.F90	(revision 4373)
+++ /LMDZ6/trunk/libf/phylmdiso/wake.F90	(revision 4374)
@@ -2550,5 +2550,5 @@
     d_deltaqw, sigmaw, d_sigmaw, alpha)
   ! ------------------------------------------------------
-  ! Dtermination du coefficient alpha tel que les tendances
+  ! D\'etermination du coefficient alpha tel que les tendances
   ! corriges alpha*d_G, pour toutes les grandeurs G, correspondent
   ! a une humidite positive dans la zone (x) et dans la zone (w).
