Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90	(revision 1078)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/cpl_mod.F90	(revision 1079)
@@ -338,15 +338,8 @@
 ! Save each field in a 2D array. 
 !$OMP MASTER
-       IF (version_ocean=='nemo') THEN
-          read_sst(:,:)     = tab_read_flds(:,:,1)  ! Sea surface temperature
-          read_sic(:,:)     = tab_read_flds(:,:,2)  ! Sea ice concentration
-          read_sit(:,:)     = tab_read_flds(:,:,3)  ! Sea ice temperature
-          read_alb_sic(:,:) = tab_read_flds(:,:,4)  ! Albedo at sea ice
-       ELSE IF (version_ocean=='opa8') THEN
-          read_sst(:,:)     = tab_read_flds(:,:,1)  ! Sea surface temperature (multiplicated by fraction)
-          read_sic(:,:)     = tab_read_flds(:,:,2)  ! Sea ice concentration 
-          read_alb_sic(:,:) = tab_read_flds(:,:,3)  ! Albedo at sea ice (multiplicated by fraction)
-          read_sit(:,:)     = tab_read_flds(:,:,4)  ! Sea ice temperature (multiplicated by fraction)
-       END IF
+       read_sst(:,:)     = tab_read_flds(:,:,1)  ! Sea surface temperature
+       read_sic(:,:)     = tab_read_flds(:,:,2)  ! Sea ice concentration
+       read_alb_sic(:,:) = tab_read_flds(:,:,3)  ! Albedo at sea ice
+       read_sit(:,:)     = tab_read_flds(:,:,4)  ! Sea ice temperature
 !$OMP END MASTER
 
@@ -995,25 +988,18 @@
 !*************************************************************************************
 ! All fields are stored in a table tab_flds(:,:,:)
-! First store the fields 7 to 18 which are already on the right format
+! First store the fields which are already on the right format
 !
 !*************************************************************************************
 !$OMP MASTER
+    tab_flds(:,:,7)  = cpl_windsp2D(:,:)
+    tab_flds(:,:,8)  = cpl_sols2D(:,:,2)
+    tab_flds(:,:,9)  = cpl_sols2D(:,:,1)
+    tab_flds(:,:,10) = cpl_nsol2D(:,:,2)
+    tab_flds(:,:,11) = cpl_nsol2D(:,:,1)
+    tab_flds(:,:,12) = cpl_fder2D(:,:,2)
+    
     IF (version_ocean=='nemo') THEN
-       tab_flds(:,:,7)  = cpl_windsp2D(:,:)
-       tab_flds(:,:,14) = cpl_sols2D(:,:,2)
-       tab_flds(:,:,12) = cpl_sols2D(:,:,1)
-       tab_flds(:,:,15) = cpl_nsol2D(:,:,2)
-       tab_flds(:,:,13) = cpl_nsol2D(:,:,1)
-       tab_flds(:,:,16) = cpl_fder2D(:,:,2)
-       tab_flds(:,:,11) = cpl_evap2D(:,:,2)
-       tab_flds(:,:,18) = cpl_rriv2D(:,:)
-       tab_flds(:,:,19) = cpl_rcoa2D(:,:)
+       tab_flds(:,:,18) = cpl_rriv2D(:,:) + cpl_rcoa2D(:,:)
     ELSE IF (version_ocean=='opa8') THEN
-       tab_flds(:,:,7)  = cpl_windsp2D(:,:)
-       tab_flds(:,:,8)  = cpl_sols2D(:,:,2)
-       tab_flds(:,:,9)  = cpl_sols2D(:,:,1)
-       tab_flds(:,:,10) = cpl_nsol2D(:,:,2)
-       tab_flds(:,:,11) = cpl_nsol2D(:,:,1)
-       tab_flds(:,:,12) = cpl_fder2D(:,:,2)
        tab_flds(:,:,13) = cpl_evap2D(:,:,2)
        tab_flds(:,:,14) = cpl_evap2D(:,:,1)
@@ -1021,5 +1007,5 @@
        tab_flds(:,:,18) = cpl_rriv2D(:,:)
     END IF
-    
+
 !*************************************************************************************
 ! Transform the fraction of sub-surfaces from 1D to 2D array
@@ -1081,7 +1067,4 @@
 ! fractions of ocean and seaice.
 !
-! Store the fields for rain and snow directly in tab_flds(:,:,15) and 
-! tab_flds(:,:,16) respectively.
-!
 !*************************************************************************************    
        ! fraction oce+seaice
@@ -1089,21 +1072,30 @@
 
        IF (version_ocean=='nemo') THEN
-          tab_flds(:,:,10) = 0.0
+          tab_flds(:,:,13) = cpl_evap2D(:,:,2) - (cpl_rain2D(:,:,2) + cpl_snow2D(:,:,2))
+
+          tab_flds(:,:,14) = 0.0
           tmp_taux(:,:)    = 0.0
           tmp_tauy(:,:)    = 0.0
           ! For all valid grid cells containing some fraction of ocean or sea-ice
           WHERE ( deno(:,:) /= 0 )
-             tab_flds(:,:,10) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
-                  cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
-             
              tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
                   cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
              tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
                   cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
+             tab_flds(:,:,14) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) +    &
+                  cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:)
+             
           ENDWHERE
-          tab_flds(:,:,8) = (cpl_evap2D(:,:,1) - ( cpl_rain2D(:,:,1) + cpl_snow2D(:,:,1)))
-          tab_flds(:,:,9) = (cpl_evap2D(:,:,2) - ( cpl_rain2D(:,:,2) + cpl_snow2D(:,:,2)))
+
+!          WHERE (pctsrf2D(:,:,is_sic) == 0)
+!             cpl_evap2D(:,:,2) = 0.0
+!          END WHERE
+          
+          tab_flds(:,:,14) = cpl_evap2D(:,:,2) - tab_flds(:,:,14)
+          tab_flds(:,:,15) = cpl_evap2D(:,:,1) - (cpl_rain2D(:,:,1) + cpl_snow2D(:,:,1))
+          tab_flds(:,:,16) = cpl_evap2D(:,:,2) 
           
        ELSE IF (version_ocean=='opa8') THEN
+          ! Store fields for rain and snow in tab_flds(:,:,15) and tab_flds(:,:,16)
           tab_flds(:,:,15) = 0.0
           tab_flds(:,:,16) = 0.0
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/oasis.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/oasis.F90	(revision 1078)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/oasis.F90	(revision 1079)
@@ -146,5 +146,8 @@
 !************************************************************************************
 !     Define symbolic name for fields exchanged from atmos to coupler,
-!         must be the same as (1) of the field  definition in namcouple:
+!         must be the same as (1) of the field definition in namcouple:
+!
+!   Initialization
+    cl_writ(:)='NOFLDATM'
 
     cl_writ(1)='COTAUXXU'
@@ -155,51 +158,44 @@
     cl_writ(6)='COTAUZZV'
     cl_writ(7)='COWINDSP'
-    
+    cl_writ(8)='COSHFICE'
+    cl_writ(9)='COSHFOCE'
+    cl_writ(10)='CONSFICE'
+    cl_writ(11)='CONSFOCE'
+    cl_writ(12)='CODFLXDT'
+
     IF (version_ocean=='nemo') THEN
-      cl_writ(8) ='COPEFWAT'
-      cl_writ(9) ='COPEFICE'
-      cl_writ(10)='COTOSPSU'
-      cl_writ(11)='COICEVAP'
-      cl_writ(12)='COSWFLDO'
-      cl_writ(13)='CONSFLDO'
-      cl_writ(14)='COSHFLIC'
-      cl_writ(15)='CONSFLIC'
-      cl_writ(16)='CODFLXDT'
-      cl_writ(17)='CRWOCEIS'
-      cl_writ(18)='CRWOCERD'
-      cl_writ(19)='CRWOCECD'
+      cl_writ(13)='COEMPSIC'
+      cl_writ(14)='CONESOPR'
+      cl_writ(15)='COEMPOCE'
+      cl_writ(16)='COICEVAP'
+      cl_writ(17)='COCALVIN'
+      cl_writ(18)='COLIQRUN'
     ELSE IF (version_ocean=='opa8') THEN
-      cl_writ(8) ='COSHFICE'
-      cl_writ(9) ='COSHFOCE'
-      cl_writ(10)='CONSFICE'
-      cl_writ(11)='CONSFOCE'
-      cl_writ(12)='CODFLXDT'
-      cl_writ(13)='COTFSICE'
-      cl_writ(14)='COTFSOCE'
-      cl_writ(15)='COTOLPSU'
-      cl_writ(16)='COTOSPSU'
-      cl_writ(17)='CORUNCOA'
-      cl_writ(18)='CORIVFLU'
-      cl_writ(19)='COCALVIN'
+       cl_writ(13)='COTFSICE'
+       cl_writ(14)='COTFSOCE'
+       cl_writ(15)='COTOLPSU'
+       cl_writ(16)='COTOSPSU'
+       cl_writ(17)='CORUNCOA'
+       cl_writ(18)='CORIVFLU'
+       cl_writ(19)='COCALVIN'
     ENDIF
 
 !
 !     Define symbolic name for fields exchanged from coupler to atmosphere,
-!         must be the same as (2) of the field  definition in namcouple:
-!
-    IF (version_ocean=='nemo') THEN
-       cl_read(1)='SISUTESW'
-       cl_read(2)='SIICECOV'
-       cl_read(4)='SIICEALW'
-       cl_read(3)='SIICTEMW'
-    ELSE IF (version_ocean=='opa8') THEN
-       cl_read(1)='SISUTESW'
-       cl_read(2)='SIICECOV'
-       cl_read(3)='SIICEALW'
-       cl_read(4)='SIICTEMW'
+!         must be the same as (2) of the field definition in namcouple:
+!
+!   Initialization
+    cl_read(:)='NOFLDATM'
+
+    cl_read(1)='SISUTESW'
+    cl_read(2)='SIICECOV'
+    cl_read(3)='SIICEALW'
+    cl_read(4)='SIICTEMW'
+
+    IF (cpl_current) THEN
+       cl_read(5)='CURRENTX'
+       cl_read(6)='CURRENTY'
+       cl_read(7)='CURRENTZ'
     END IF
-    cl_read(5)='CURRENTX'
-    cl_read(6)='CURRENTY'
-    cl_read(7)='CURRENTZ'
 
     il_var_nodims(1) = 2
