Index: LMDZ6/trunk/libf/phylmd/albedo.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/albedo.f90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/albedo.f90	(revision 5968)
@@ -2,13 +2,14 @@
 MODULE albedo
 
-  USE clesphys_mod_h
-  USE yomcst_mod_h
-  IMPLICIT NONE
+IMPLICIT NONE
 
-CONTAINS
+contains
 
   SUBROUTINE alboc(klon, rjour, rlat, albedo)
-    USE clesphys_mod_h
-    USE orbite_mod, ONLY: orbite
+!$gpum horizontal klon
+!    USE clesphys_mod_h
+    USE yomcst_mod_h, ONLY : r_incl
+    USE orbite_mod, ONLY : orbite
+    IMPLICIT NONE
     ! ======================================================================
     ! Auteur(s): Z.X. Li (LMD/CNRS) (adaptation du GCM du LMD)
@@ -123,4 +124,6 @@
   ! =====================================================================
   SUBROUTINE alboc_cd(klon, rmu0, albedo)
+!$gpum horizontal klon
+  IMPLICIT NONE
 
     ! Auteur(s): Z.X. Li (LMD/CNRS)
@@ -159,3 +162,3 @@
   END SUBROUTINE alboc_cd
 
-END MODULE albedo
+end module albedo
Index: LMDZ6/trunk/libf/phylmd/calcul_fluxs_mod.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/calcul_fluxs_mod.f90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/calcul_fluxs_mod.f90	(revision 5968)
@@ -141,6 +141,8 @@
     dflux_s = 0.
     dflux_l = 0.
-    if (PRESENT(lat_prec_liq)) lat_prec_liq = 0.
-    if (PRESENT(lat_prec_sol)) lat_prec_sol = 0.
+    DO i=1, knon
+      if (PRESENT(lat_prec_liq)) lat_prec_liq(i) = 0.
+      if (PRESENT(lat_prec_sol)) lat_prec_sol(i) = 0.
+    ENDDO
 !
 ! zx_qs = qsat en kg/kg
Index: LMDZ6/trunk/libf/phylmd/limit_read_mod.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/limit_read_mod.f90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/limit_read_mod.f90	(revision 5968)
@@ -90,4 +90,5 @@
        knon, knindex, &
        rugos_out, alb_out)
+!$gpum horizontal knon klon
 !
 ! This subroutine is called from surf_land_bucket. 
@@ -95,6 +96,5 @@
 ! then this routine will call limit_read_tot.
 !
-    USE dimphy
-    USE surface_data
+    USE surface_data, ONLY: type_ocean, version_ocean
 
 ! Input arguments
@@ -116,7 +116,8 @@
 !****************************************************************************************
 
-IF (type_ocean == 'couple'.OR. &
+    IF (type_ocean == 'couple'.OR. &
          (type_ocean == 'slab' .AND. version_ocean == 'sicINT')) THEN
        ! limit.nc has not yet been read. Do it now!
+!$gpum nocall
        CALL limit_read_tot(itime, dtime, jour, is_modified)
     END IF
@@ -132,4 +133,5 @@
 
   SUBROUTINE limit_read_sst(knon, knindex, sst_out)
+!$gpum horizontal knon klon
 !
 ! This subroutine returns the sea surface temperature already read from limit.nc.
Index: LMDZ6/trunk/libf/phylmd/o3_chem_m.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/o3_chem_m.f90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/o3_chem_m.f90	(revision 5968)
@@ -22,5 +22,5 @@
     use mod_grid_phy_lmdz, only: nbp_lev
     use nrtype, only: pi
-    USE orbite_mod, ONLY: orbite, zenang
+    use orbite_mod, only : zenang, orbite
 
     integer, intent(in):: julien ! jour julien, 1 <= julien <= 360
Index: LMDZ6/trunk/libf/phylmd/ocean_albedo.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/ocean_albedo.f90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/ocean_albedo.f90	(revision 5968)
@@ -2,6 +2,11 @@
 ! $Id$
 !
+MODULE ocean_albedo_mod
+
+CONTAINS
 
 SUBROUTINE ocean_albedo(knon,zrmu0,knindex,pwind,SFRWL,alb_dir_new,alb_dif_new)
+!$gpum horizontal knon klon
+
 !!
 !!****  *ALBEDO_RS14*  
@@ -43,7 +48,7 @@
 !            ------------
 !
-USE ocean_albedo_para
+USE ocean_albedo_para, ONLY : nnwl, xakwl, xakrefm, xakachl, xakaw3, xakbw, xaw440, xfrwl, xrwc    
 USE phys_state_var_mod, ONLY : chl_con
-USE clesphys_mod_h
+USE clesphys_mod_h, ONLY: nsw, ok_chlorophyll
 !
 !
@@ -254,2 +259,4 @@
 
 END SUBROUTINE ocean_albedo
+
+END MODULE ocean_albedo_mod
Index: LMDZ6/trunk/libf/phylmd/ocean_forced_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/ocean_forced_mod.F90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/ocean_forced_mod.F90	(revision 5968)
@@ -29,4 +29,6 @@
 #endif            
        )
+!$gpum horizontal knon klon
+
 !
 ! This subroutine treats the "open ocean", all grid points that are not entierly covered
Index: LMDZ6/trunk/libf/phylmd/s2s.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/s2s.F90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/s2s.F90	(revision 5968)
@@ -2,4 +2,5 @@
   MODULE s2s
     USE s2s_mod 
+    INTEGER, PUBLIC, PARAMETER :: s2s_str_maxlen = 256
   END MODULE s2s
 #else
@@ -8,6 +9,8 @@
   MODULE s2s
   
-    PRIVATE
-    PUBLIC s2s_initialize, s2s_finalize, s2s_gpu_activated, s2s_register_activated
+   PRIVATE
+    INTEGER, PARAMETER :: s2s_str_maxlen = 256
+
+    PUBLIC s2s_initialize, s2s_finalize, s2s_gpu_activated, s2s_register_activated, s2s_str_maxlen 
 
   CONTAINS
Index: LMDZ6/trunk/libf/phylmd/surf_ocean_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/surf_ocean_mod.F90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/surf_ocean_mod.F90	(revision 5968)
@@ -30,4 +30,5 @@
 #endif               
         &       )
+!$gpum horizontal knon klon
 
     use albedo, only: alboc, alboc_cd
@@ -39,4 +40,5 @@
     USE ocean_cpl_mod, ONLY    : ocean_cpl_noice
     USE indice_sol_mod, ONLY : nbsrf, is_oce
+    USE ocean_albedo_mod, ONLY : ocean_albedo 
 #ifdef ISO
     USE infotrac_phy, ONLY : ntraciso=>ntiso,niso
@@ -175,5 +177,5 @@
     INTEGER               :: i, k
     REAL                  :: tmp
-    REAL, PARAMETER       :: cepdu2=(0.1)**2
+    REAL, PARAMETER       :: cepdu2=(0.1)*(0.1)
     REAL, DIMENSION(knon) :: alb_eau, z0_lim
     REAL, DIMENSION(knon) :: radsol
@@ -188,4 +190,5 @@
     REAL, DIMENSION(knon) :: yrlat ! compressed latitude
     !**************************************************************************
+!$gpum nocall checksum
 
 #ifdef ISO
@@ -245,4 +248,5 @@
     SELECT CASE(type_ocean)
     CASE('couple')
+!$gpum nocall
        CALL ocean_cpl_noice( &
             swnet, lwnet, alb1, &
@@ -259,4 +263,5 @@
 
     CASE('slab')
+!$gpum nocall
        CALL ocean_slab_noice( &
             itime, dtime, jour, knon, knindex, &
@@ -403,4 +408,5 @@
 !ym not porting to GPU for now      
        if (type_ocean /= 'couple') sss(:knon) = 35.
+!$gpum nocall
        call bulk_flux(tkt, tks, taur, dter, dser, t_int, s_int, ds_ns, dt_ns, &
             u = windsp(:knon), t_ocean_1 = tsurf_new(:knon), s1 = sss(:knon), &
Index: LMDZ6/trunk/libf/phylmd/surface_data.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/surface_data.f90	(revision 5967)
+++ LMDZ6/trunk/libf/phylmd/surface_data.f90	(revision 5968)
@@ -3,5 +3,5 @@
 !
 MODULE surface_data
-
+  USE s2s, ONLY : s2s_str_maxlen
   IMPLICIT NONE
 
@@ -15,5 +15,5 @@
   !$OMP THREADPRIVATE(type_veget)
 
-  CHARACTER(len=6), SAVE :: type_ocean    ! force/slab/couple
+  CHARACTER(len=s2s_str_maxlen), SAVE :: type_ocean    ! force/slab/couple
   !$OMP THREADPRIVATE(type_ocean)
 
@@ -63,5 +63,5 @@
   ! if type_ocean=couple : version_ocean=opa8 ou nemo
   ! if type_ocean=slab   : version_ocean=sicOBS or sicINT or sicNO
-  CHARACTER(len=6), SAVE :: version_ocean 
+  CHARACTER(len=s2s_str_maxlen), SAVE :: version_ocean 
   !$OMP THREADPRIVATE(version_ocean)
 
