Index: /NEMO/trunk/cfgs/SHARED/field_def_nemo-oce.xml
===================================================================
--- /NEMO/trunk/cfgs/SHARED/field_def_nemo-oce.xml	(revision 15003)
+++ /NEMO/trunk/cfgs/SHARED/field_def_nemo-oce.xml	(revision 15004)
@@ -248,23 +248,23 @@
 
     <!-- * fwf * -->
-    <field id="fwfisf_cav"      long_name="Ice shelf fresh water flux ( from oce to isf )"                    unit="kg/m2/s"  />
-    <field id="fwfisf_par"      long_name="Ice shelf fresh water flux ( from oce to isf )"                    unit="kg/m2/s"  />
-    <field id="fwfisf3d_cav"    long_name="3d Ice shelf fresh water flux ( from oce to isf )"                 unit="kg/m2/s"  grid_ref="grid_T_3D" />
-    <field id="fwfisf3d_par"    long_name="3d Ice shelf fresh water flux ( from oce to isf )"                 unit="kg/m2/s"  grid_ref="grid_T_3D" />
+    <field id="fwfisf_cav"      long_name="Ice shelf fresh water flux ( from isf to oce )"                    unit="kg/m2/s"  />
+    <field id="fwfisf_par"      long_name="Ice shelf fresh water flux ( from isf to oce )"                    unit="kg/m2/s"  />
+    <field id="fwfisf3d_cav"    long_name="3d Ice shelf fresh water flux ( from isf to oce )"                 unit="kg/m2/s"  grid_ref="grid_T_3D" />
+    <field id="fwfisf3d_par"    long_name="3d Ice shelf fresh water flux ( from isf to oce )"                 unit="kg/m2/s"  grid_ref="grid_T_3D" />
 
     <!-- * heat fluxes * -->
-    <field id="qoceisf_cav"     long_name="Ice shelf ocean  heat flux ( from oce to isf )"                    unit="W/m2"     />
-    <field id="qoceisf_par"     long_name="Ice shelf ocean  heat flux ( from oce to isf )"                    unit="W/m2"     />
-    <field id="qlatisf_cav"     long_name="Ice shelf latent heat flux ( from oce to isf )"                    unit="W/m2"     />
-    <field id="qlatisf_par"     long_name="Ice shelf latent heat flux ( from oce to isf )"                    unit="W/m2"     />
-    <field id="qhcisf_cav"      long_name="Ice shelf heat content flux of injected water ( from oce to isf )" unit="W/m2"     />
-    <field id="qhcisf_par"      long_name="Ice shelf heat content flux of injected water ( from oce to isf )" unit="W/m2"     />
-    <field id="qoceisf3d_cav"   long_name="Ice shelf ocean  heat flux ( from oce to isf )"                    unit="W/m2"     grid_ref="grid_T_3D" />
-    <field id="qoceisf3d_par"   long_name="Ice shelf ocean  heat flux ( from oce to isf )"                    unit="W/m2"     grid_ref="grid_T_3D" />
-    <field id="qlatisf3d_cav"   long_name="Ice shelf latent heat flux ( from oce to isf )"                    unit="W/m2"     grid_ref="grid_T_3D" />
-    <field id="qlatisf3d_par"   long_name="Ice shelf latent heat flux ( from oce to isf )"                    unit="W/m2"     grid_ref="grid_T_3D" />
-    <field id="qhcisf3d_cav"    long_name="Ice shelf heat content flux of injected water ( from oce to isf )" unit="W/m2"     grid_ref="grid_T_3D" />
-    <field id="qhcisf3d_par"    long_name="Ice shelf heat content flux of injected water ( from oce to isf )" unit="W/m2"     grid_ref="grid_T_3D" />
-    <field id="qconisf"         long_name="Conductive heat flux through the ice shelf ( from oce to isf )"    unit="W/m2"     />
+    <field id="qoceisf_cav"     long_name="Ice shelf ocean  heat flux ( from isf to oce )"                    unit="W/m2"     />
+    <field id="qoceisf_par"     long_name="Ice shelf ocean  heat flux ( from isf to oce )"                    unit="W/m2"     />
+    <field id="qlatisf_cav"     long_name="Ice shelf latent heat flux ( from isf to oce )"                    unit="W/m2"     />
+    <field id="qlatisf_par"     long_name="Ice shelf latent heat flux ( from isf to oce )"                    unit="W/m2"     />
+    <field id="qhcisf_cav"      long_name="Ice shelf heat content flux of injected water ( from isf to oce )" unit="W/m2"     />
+    <field id="qhcisf_par"      long_name="Ice shelf heat content flux of injected water ( from isf to oce )" unit="W/m2"     />
+    <field id="qoceisf3d_cav"   long_name="Ice shelf ocean  heat flux ( from isf to oce )"                    unit="W/m2"     grid_ref="grid_T_3D" />
+    <field id="qoceisf3d_par"   long_name="Ice shelf ocean  heat flux ( from isf to oce )"                    unit="W/m2"     grid_ref="grid_T_3D" />
+    <field id="qlatisf3d_cav"   long_name="Ice shelf latent heat flux ( from isf to oce )"                    unit="W/m2"     grid_ref="grid_T_3D" />
+    <field id="qlatisf3d_par"   long_name="Ice shelf latent heat flux ( from isf to oce )"                    unit="W/m2"     grid_ref="grid_T_3D" />
+    <field id="qhcisf3d_cav"    long_name="Ice shelf heat content flux of injected water ( from isf to oce )" unit="W/m2"     grid_ref="grid_T_3D" />
+    <field id="qhcisf3d_par"    long_name="Ice shelf heat content flux of injected water ( from isf to oce )" unit="W/m2"     grid_ref="grid_T_3D" />
+    <field id="qconisf"         long_name="Conductive heat flux through the ice shelf ( from isf to oce )"    unit="W/m2"     />
 
     <!-- top boundary layer properties -->
Index: /NEMO/trunk/src/OCE/BDY/bdyvol.F90
===================================================================
--- /NEMO/trunk/src/OCE/BDY/bdyvol.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/BDY/bdyvol.F90	(revision 15004)
@@ -77,5 +77,5 @@
       ! Calculate the cumulate surface Flux z_cflxemp (m3/s) over all the domain
       ! -----------------------------------------------------------------------
-      IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rho0
+      IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rho0
 
       ! Compute bdy surface each cycle if non linear free surface
Index: /NEMO/trunk/src/OCE/DIA/diahsb.F90
===================================================================
--- /NEMO/trunk/src/OCE/DIA/diahsb.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/DIA/diahsb.F90	(revision 15004)
@@ -93,5 +93,5 @@
       ! 1 - Trends due to forcing !
       ! ------------------------- !
-      z_frc_trd_v = r1_rho0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) )   ! volume fluxes
+      z_frc_trd_v = r1_rho0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) ) * surf(:,:) )   ! volume fluxes
       z_frc_trd_t =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_tem) * surf(:,:) )                       ! heat fluxes
       z_frc_trd_s =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_sal) * surf(:,:) )                       ! salt fluxes
Index: /NEMO/trunk/src/OCE/DYN/dynspg_ts.F90
===================================================================
--- /NEMO/trunk/src/OCE/DYN/dynspg_ts.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/DYN/dynspg_ts.F90	(revision 15004)
@@ -320,11 +320,11 @@
       !                                   ! ---------------------------------------------------  !
       IF (ln_bt_fw) THEN                          ! FORWARD integration: use kt+1/2 fluxes (NOW+1/2)
-         zssh_frc(:,:) = r1_rho0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) )
+         zssh_frc(:,:) = r1_rho0 * ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) )
       ELSE                                        ! CENTRED integration: use kt-1/2 + kt+1/2 fluxes (NOW)
          zztmp = r1_rho0 * r1_2
          zssh_frc(:,:) = zztmp * (   emp(:,:)        + emp_b(:,:)          &
             &                      - rnf(:,:)        - rnf_b(:,:)          &
-            &                      + fwfisf_cav(:,:) + fwfisf_cav_b(:,:)   &
-            &                      + fwfisf_par(:,:) + fwfisf_par_b(:,:)   )
+            &                      - fwfisf_cav(:,:) - fwfisf_cav_b(:,:)   &
+            &                      - fwfisf_par(:,:) - fwfisf_par_b(:,:)   )
       ENDIF
       !                                   !=  Add Stokes drift divergence  =!   (if exist)
Index: /NEMO/trunk/src/OCE/DYN/sshwzv.F90
===================================================================
--- /NEMO/trunk/src/OCE/DYN/sshwzv.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/DYN/sshwzv.F90	(revision 15004)
@@ -305,6 +305,6 @@
                &                          - zcoef   * (         emp_b(:,:) -        emp(:,:)   &
                &                                              - rnf_b(:,:) +        rnf(:,:)   &
-               &                                       + fwfisf_cav_b(:,:) - fwfisf_cav(:,:)   &
-               &                                       + fwfisf_par_b(:,:) - fwfisf_par(:,:)   ) * ssmask(:,:)
+               &                                       - fwfisf_cav_b(:,:) + fwfisf_cav(:,:)   &
+               &                                       - fwfisf_par_b(:,:) + fwfisf_par(:,:)   ) * ssmask(:,:)
 
             ! ice sheet coupling
Index: /NEMO/trunk/src/OCE/ISF/isfcav.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfcav.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfcav.F90	(revision 15004)
@@ -60,9 +60,9 @@
       !!                   - output
       !! 
-      !! ** Convention : all fluxes are from oce to isf ( > 0 out of the ocean )
+      !! ** Convention : all fluxes are from isf to oce
       !!
       !!---------------------------------------------------------------------
       !!-------------------------- OUT --------------------------------------
-      REAL(wp), DIMENSION(jpi,jpj)     , INTENT(inout) :: pqfwf  ! ice shelf melt (>0 out)
+      REAL(wp), DIMENSION(jpi,jpj)     , INTENT(inout) :: pqfwf  ! ice shelf fwf
       REAL(wp), DIMENSION(jpi,jpj,jpts), INTENT(inout) :: ptsc   ! T & S ice shelf cavity contents
       !!-------------------------- IN  --------------------------------------
@@ -127,13 +127,13 @@
       END DO
       !
-      ! compute heat and water flux ( > 0 out )
+      ! compute heat and water flux ( > 0 from isf to oce)
       pqfwf(:,:) = pqfwf(:,:) * mskisf_cav(:,:)
       zqoce(:,:) = zqoce(:,:) * mskisf_cav(:,:)
       zqhc (:,:) = zqhc(:,:)  * mskisf_cav(:,:)
       !
-      ! compute heat content flux ( > 0 out )
+      ! compute heat content flux ( > 0 from isf to oce)
       zqlat(:,:) = - pqfwf(:,:) * rLfusisf    ! 2d latent heat flux (W/m2)
       !
-      ! total heat flux ( > 0 out )
+      ! total heat flux ( > 0 from isf to oce)
       zqh(:,:) = ( zqhc (:,:) + zqoce(:,:) )
       !
@@ -145,5 +145,5 @@
       !
       ! set temperature content
-      ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rho0_rcp
+      ptsc(:,:,jp_tem) = zqh(:,:) * r1_rho0_rcp
       !
       ! write restart variables (qoceisf, qhcisf, fwfisf for now and before)
Index: /NEMO/trunk/src/OCE/ISF/isfcavmlt.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfcavmlt.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfcavmlt.F90	(revision 15004)
@@ -9,5 +9,6 @@
 
    !!----------------------------------------------------------------------
-   !!   isfcav_mlt    : compute or read ice shelf fwf/heat fluxes in the ice shelf cavity
+   !!   isfcav_mlt    : compute or read ice shelf fwf/heat fluxes from isf 
+   !!                   to oce
    !!----------------------------------------------------------------------
 
@@ -114,12 +115,12 @@
       CALL eos_fzp( pstbl(:,:), ztfrz(:,:), risfdep(:,:) )
       !
-      ! read input file
+      ! read input file of fwf (from isf to oce; ie melt)
       CALL fld_read ( kt, 1, sf_isfcav_fwf )
       !
       ! define fwf and qoce
       ! ocean heat flux is assume to be equal to the latent heat
-      pqfwf(:,:) = - sf_isfcav_fwf(1)%fnow(:,:,1)      ! fwf                ( >0 out)
-      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( >0 out)
-      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out)
+      pqfwf(:,:) =   sf_isfcav_fwf(1)%fnow(:,:,1)      ! fwf                ( > 0 from isf to oce)
+      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( > 0 from isf to oce)
+      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( > 0 from isf to oce)
       !
       ! output freezing point at the interface
@@ -163,7 +164,7 @@
       !
       ! compute ocean-ice heat flux and then derive fwf assuming that ocean heat flux equal latent heat
-      pqfwf(:,:) = - pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 out )
-      pqoce(:,:) = - pqfwf(:,:) * rLfusisf                         ! ocea-ice flux     ( > 0 out )
-      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp                 ! heat content flux ( > 0 out )
+      pqfwf(:,:) =   pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 from isf to oce)
+      pqoce(:,:) = - pqfwf(:,:) * rLfusisf                         ! ocea-ice flux     ( > 0 from isf to oce)
+      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp                 ! heat content flux ( > 0 from isf to oce)
       !
       ! output thermal driving and freezinpoint at the ice shelf interface
@@ -240,7 +241,7 @@
          !
          ! compute the upward water and heat flux (eq. 24 and eq. 26)
-         pqfwf(ji,jj) = rho0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    (> 0 out)
-         pqoce(ji,jj) = rho0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux (> 0 out)
-         pqhc (ji,jj) = rcp      * pqfwf(ji,jj) * ztfrz(ji,jj)                             ! heat content   flux (> 0 out)
+         pqfwf(ji,jj) = - rho0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    ( > 0 from isf to oce)
+         pqoce(ji,jj) = - rho0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux ( > 0 from isf to oce)
+         pqhc (ji,jj) =   rcp      * pqfwf(ji,jj) * ztfrz(ji,jj)                             ! heat content   flux ( > 0 from isf to oce)
          !
          zqcon(ji,jj) = zeps3 * ( ztfrz(ji,jj) - rtsurf )
@@ -283,9 +284,9 @@
       CALL eos_fzp( pstbl(:,:), ztfrz(:,:), risfdep(:,:) )
       !
-      ! read input file
+      ! read input file of fwf from isf to oce
       CALL fld_read ( kt, 1, sf_isfcav_fwf )
       !
       ! ice shelf 2d map
-      zfwf(:,:) = - sf_isfcav_fwf(1)%fnow(:,:,1)
+      zfwf(:,:) = sf_isfcav_fwf(1)%fnow(:,:,1)
       !
       ! compute glob sum from input file
@@ -302,7 +303,7 @@
       ! define fwf and qoce
       ! ocean heat flux is assume to be equal to the latent heat
-      pqfwf(:,:) =   zfwf(:,:)                         ! fwf                ( >0 out)
-      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( >0 out)
-      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out)
+      pqfwf(:,:) =   zfwf(:,:)                         ! fwf                ( > 0 from isf to oce)
+      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( > 0 from isf to oce)
+      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( > 0 from isf to oce)
       !
       CALL iom_put('isftfrz_cav', ztfrz * mskisf_cav(:,:) )
Index: /NEMO/trunk/src/OCE/ISF/isfcpl.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfcpl.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfcpl.F90	(revision 15004)
@@ -685,5 +685,5 @@
       !==============================================================================
       !
-      ! mask (>0 out)
+      ! mask
       risfcpl_cons_vol(:,:,:       ) = risfcpl_cons_vol(:,:,:       ) * tmask(:,:,:)
       risfcpl_cons_tsc(:,:,:,jp_sal) = risfcpl_cons_tsc(:,:,:,jp_sal) * tmask(:,:,:)
Index: /NEMO/trunk/src/OCE/ISF/isfdiags.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfdiags.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfdiags.F90	(revision 15004)
@@ -40,5 +40,5 @@
       !!
       !! ** Purpose : manage the 2d and 3d flux outputs of the ice shelf module
-      !!              fwf, latent heat flux, heat content flux, oce->ice heat flux
+      !!              from isf to oce fwf, latent heat, heat content fluxes
       !!
       !!----------------------------------------------------------------------
@@ -62,8 +62,8 @@
       !
       ! output 2d melt rate, latent heat and heat content flux from the injected water
-      CALL iom_put( TRIM(cvarqfwf), pqfwf(:,:) )   ! mass         flux ( >0 out )
-      CALL iom_put( TRIM(cvarqoce), pqoce(:,:) )   ! oce to ice   flux ( >0 out )
-      CALL iom_put( TRIM(cvarqlat), pqlat(:,:) )   ! latent heat  flux ( >0 out )
-      CALL iom_put( TRIM(cvarqhc) , pqhc (:,:) )   ! heat content flux ( >0 out )
+      CALL iom_put( TRIM(cvarqfwf), pqfwf(:,:) )   ! mass         flux ( > 0 from isf to oce)
+      CALL iom_put( TRIM(cvarqoce), pqoce(:,:) )   ! oce to ice   flux ( > 0 from isf to oce)
+      CALL iom_put( TRIM(cvarqlat), pqlat(:,:) )   ! latent heat  flux ( > 0 from isf to oce)
+      CALL iom_put( TRIM(cvarqhc) , pqhc (:,:) )   ! heat content flux ( > 0 from isf to oce)
       !
       ! output 3d Diagnostics
Index: /NEMO/trunk/src/OCE/ISF/isfdynatf.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfdynatf.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfdynatf.F90	(revision 15004)
@@ -83,5 +83,5 @@
       ! add the increment
       DO jk = 1, jpkm1
-         pe3t_f(:,:,jk) = pe3t_f(:,:,jk) - tmask(:,:,jk) * zfwfinc(:,:)   &
+         pe3t_f(:,:,jk) = pe3t_f(:,:,jk) + tmask(:,:,jk) * zfwfinc(:,:)   &
             &                              * e3t(:,:,jk,Kmm)
       END DO
Index: /NEMO/trunk/src/OCE/ISF/isfhdiv.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfhdiv.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfhdiv.F90	(revision 15004)
@@ -107,8 +107,8 @@
          ! level fully include in the ice shelf boundary layer
          DO jk = ikt, ikb - 1
-            phdiv(ji,jj,jk) = phdiv(ji,jj,jk) + zhdiv(ji,jj)
+            phdiv(ji,jj,jk) = phdiv(ji,jj,jk) - zhdiv(ji,jj)
          END DO
          ! level partially include in ice shelf boundary layer 
-         phdiv(ji,jj,ikb) = phdiv(ji,jj,ikb) + zhdiv(ji,jj) * pfrac(ji,jj)
+         phdiv(ji,jj,ikb) = phdiv(ji,jj,ikb) - zhdiv(ji,jj) * pfrac(ji,jj)
       END_2D
       !
Index: /NEMO/trunk/src/OCE/ISF/isfpar.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfpar.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfpar.F90	(revision 15004)
@@ -57,5 +57,5 @@
       !!              the name tbl was kept.
       !!
-      !! ** Convention : all fluxes are from oce to isf ( > 0 out of the ocean )
+      !! ** Convention : all fluxes are from isf to oce
       !!
       !!---------------------------------------------------------------------
@@ -73,13 +73,13 @@
       CALL isfpar_mlt( kt, Kmm, zqhc, zqoce, pqfwf  )
       !
-      ! compute heat and water flux ( > 0 out )
+      ! compute heat and water flux (from isf to oce)
       pqfwf(:,:) = pqfwf(:,:) * mskisf_par(:,:)
       zqoce(:,:) = zqoce(:,:) * mskisf_par(:,:)
       zqhc (:,:) = zqhc(:,:)  * mskisf_par(:,:)
       !
-      ! compute latent heat flux ( > 0 out )
+      ! compute latent heat flux (from isf to oce)
       zqlat(:,:) = - pqfwf(:,:) * rLfusisf    ! 2d latent heat flux (W/m2)
       !
-      ! total heat flux ( > 0 out )
+      ! total heat flux (from isf to oce)
       zqh(:,:) = ( zqhc (:,:) + zqoce(:,:) )
       !
@@ -91,5 +91,5 @@
       !
       ! set temperature content
-      ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rho0_rcp
+      ptsc(:,:,jp_tem) = zqh(:,:) * r1_rho0_rcp
       !
       ! write restart variables (qoceisf, qhcisf, fwfisf for now and before)
Index: /NEMO/trunk/src/OCE/ISF/isfparmlt.F90
===================================================================
--- /NEMO/trunk/src/OCE/ISF/isfparmlt.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/ISF/isfparmlt.F90	(revision 15004)
@@ -102,5 +102,5 @@
       !!--------------------------------------------------------------------
       !
-      ! 0. ------------Read specified runoff
+      ! 0. ------------Read specified fwf from isf to oce
       CALL fld_read ( kt, 1, sf_isfpar_fwf   )
       !
@@ -112,7 +112,7 @@
       CALL isf_tbl(Kmm, ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par )
       !
-      pqfwf(:,:) = - sf_isfpar_fwf(1)%fnow(:,:,1)      ! fresh water flux from the isf (fwfisf <0 mean melting)       ( > 0 out )
-      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean/ice shelf flux assume to be equal to latent heat flux  ( > 0 out )
-      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux                                            ( > 0 out )
+      pqfwf(:,:) =   sf_isfpar_fwf(1)%fnow(:,:,1)      ! fresh water flux from the isf (fwfisf <0 mean melting)       ( > 0 from isf to oce)
+      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean/ice shelf flux assume to be equal to latent heat flux  ( > 0 from isf to oce)
+      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux                                            ( > 0 from isf to oce)
       !
       CALL iom_put('isftfrz_par', ztfrz(:,:) * mskisf_par(:,:) )
@@ -157,7 +157,7 @@
       !
       ! 2. ------------Net heat flux and fresh water flux due to the ice shelf
-      pqfwf(:,:) = - rho0 * rcp * rn_isfpar_bg03_gt0 * risfLeff(:,:) * e1t(:,:) * (ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) / rLfusisf  ! ( > 0 out )
-      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean/ice shelf flux assume to be equal to latent heat flux  ( > 0 out )
-      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux                                            ( > 0 out )
+      pqfwf(:,:) =   rho0 * rcp * rn_isfpar_bg03_gt0 * risfLeff(:,:) * e1t(:,:) * (ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) / rLfusisf  ! ( > 0 from isf to oce)
+      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean/ice shelf flux assume to be equal to latent heat flux  ( > 0 from isf to oce)
+      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux                                            ( > 0 from isf to oce)
       !
       ! 3. ------------BG03 output
@@ -207,6 +207,6 @@
       !
       ! 2. ------------Scale isf melt pattern with total amount from oasis
-      ! ice shelf 2d map
-      zfwf(:,:) = - sf_isfpar_fwf(1)%fnow(:,:,1)
+      ! ice shelf 2d map of fwf from isf to oce
+      zfwf(:,:) = sf_isfpar_fwf(1)%fnow(:,:,1)
       !
       ! compute glob sum from input file
@@ -223,7 +223,7 @@
       ! 3. -----------Define fwf and qoce
       ! ocean heat flux is assume to be equal to the latent heat
-      pqfwf(:,:) =   zfwf(:,:)                         ! fwf                ( >0 out )
-      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( >0 out ) (assumed to be the latent heat flux)
-      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out )
+      pqfwf(:,:) =   zfwf(:,:)                         ! fwf                ( > 0 from isf to oce)
+      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( > 0 from isf to oce) (assumed to be the latent heat flux)
+      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( > 0 from isf to oce)
       !
       CALL iom_put('isftfrz_par', ztfrz )
Index: /NEMO/trunk/src/OCE/SBC/sbccpl.F90
===================================================================
--- /NEMO/trunk/src/OCE/SBC/sbccpl.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/SBC/sbccpl.F90	(revision 15004)
@@ -1521,5 +1521,5 @@
          ! ice shelf fwf
          IF( srcv(jpr_isf)%laction )  THEN
-            fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1)  ! fresh water flux from the isf (fwfisf <0 mean melting)
+            fwfisf_oasis(:,:) = frcv(jpr_isf)%z3(:,:,1)  ! fresh water flux from the isf to the ocean ( > 0 = melting )
          END IF
 
@@ -1862,6 +1862,6 @@
          rnf(:,:)    = rnf(:,:) + fwficb(:,:)
       ENDIF
-      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf <0 mean melting)
-        fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1)
+      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf > 0 mean melting)
+        fwfisf_oasis(:,:) = frcv(jpr_isf)%z3(:,:,1)
       ENDIF
 
@@ -1901,6 +1901,6 @@
 !!$         rnf(:,:)    = rnf(:,:) + fwficb(:,:)
 !!$      ENDIF
-!!$      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf <0 mean melting)
-!!$        fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1)
+!!$      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf >0 mean melting)
+!!$        fwfisf_oasis(:,:) = frcv(jpr_isf)%z3(:,:,1)
 !!$      ENDIF
 !!$      !
@@ -1931,5 +1931,5 @@
       ! note: runoff output is done in sbcrnf (which includes icebergs too) and iceshelf output is done in sbcisf
 !!      IF( srcv(jpr_rnf)%laction )   CALL iom_put( 'runoffs' , rnf(:,:) * tmask(:,:,1)                                 )  ! runoff
-!!      IF( srcv(jpr_isf)%laction )   CALL iom_put( 'iceshelf_cea', -fwfisf(:,:) * tmask(:,:,1)                         )  ! iceshelf
+!!      IF( srcv(jpr_isf)%laction )   CALL iom_put( 'iceshelf_cea', fwfisf(:,:) * tmask(:,:,1)                         )  ! iceshelf
       !
       !                                                      ! ========================= !
Index: /NEMO/trunk/src/OCE/SBC/sbcfwb.F90
===================================================================
--- /NEMO/trunk/src/OCE/SBC/sbcfwb.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/SBC/sbcfwb.F90	(revision 15004)
@@ -117,5 +117,5 @@
          !
          IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN
-            y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) )
+            y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) - snwice_fmass(:,:) ) )
             CALL mpp_delay_sum( 'sbcfwb', 'fwb', y_fwfnow(:), z_fwfprv(:), kt == nitend - nn_fsbc + 1 )
             z_fwfprv(1) = z_fwfprv(1) / area
@@ -180,5 +180,5 @@
             ztmsk_neg(:,:) = tmask_i(:,:) - ztmsk_pos(:,:)
             !                                                  ! fwf global mean (excluding ocean to ice/snow exchanges) 
-            z_fwf     = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) ) / area
+            z_fwf     = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) - snwice_fmass(:,:) ) ) / area
             !            
             IF( z_fwf < 0._wp ) THEN         ! spread out over >0 erp area to increase evaporation
Index: /NEMO/trunk/src/OCE/TRA/traatf.F90
===================================================================
--- /NEMO/trunk/src/OCE/TRA/traatf.F90	(revision 15003)
+++ /NEMO/trunk/src/OCE/TRA/traatf.F90	(revision 15004)
@@ -293,6 +293,6 @@
             IF ( ll_rnf ) ze3t_f = ze3t_f + zfact2 * zscale * (    rnf_b(ji,jj) -    rnf(ji,jj) )
             IF ( ll_isf ) THEN
-               IF ( ln_isfcav_mlt ) ze3t_f = ze3t_f - zfact2 * zscale * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) )
-               IF ( ln_isfpar_mlt ) ze3t_f = ze3t_f - zfact2 * zscale * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) )
+               IF ( ln_isfcav_mlt ) ze3t_f = ze3t_f + zfact2 * zscale * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) )
+               IF ( ln_isfpar_mlt ) ze3t_f = ze3t_f + zfact2 * zscale * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) )
             ENDIF
             !
Index: /NEMO/trunk/src/TOP/trcais.F90
===================================================================
--- /NEMO/trunk/src/TOP/trcais.F90	(revision 15003)
+++ /NEMO/trunk/src/TOP/trcais.F90	(revision 15004)
@@ -184,5 +184,5 @@
                   DO_2D( 1, 1, 1, 1 )
                      IF( ln_isfpar_mlt ) THEN
-                        zcalv = - fwfisf_par(ji,jj) * r1_rho0 / rhisf_tbl_par(ji,jj)
+                        zcalv = fwfisf_par(ji,jj) * r1_rho0 / rhisf_tbl_par(ji,jj)
                         ikt = misfkt_par(ji,jj)
                         ikb = misfkb_par(ji,jj)
@@ -190,5 +190,5 @@
                      END IF   
                      IF( ln_isfcav_mlt ) THEN
-                        zcalv = - fwfisf_cav(ji,jj) * r1_rho0 / rhisf_tbl_cav(ji,jj)
+                        zcalv = fwfisf_cav(ji,jj) * r1_rho0 / rhisf_tbl_cav(ji,jj)
                         ikt = misfkt_cav(ji,jj)
                         ikb = misfkb_cav(ji,jj)
Index: /NEMO/trunk/tests/ISOMIP+/MY_SRC/sbcfwb.F90
===================================================================
--- /NEMO/trunk/tests/ISOMIP+/MY_SRC/sbcfwb.F90	(revision 15003)
+++ /NEMO/trunk/tests/ISOMIP+/MY_SRC/sbcfwb.F90	(revision 15004)
@@ -118,5 +118,5 @@
          !
          IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN
-            y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) )
+            y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) - snwice_fmass(:,:) ) )
             CALL mpp_delay_sum( 'sbcfwb', 'fwb', y_fwfnow(:), z_fwfprv(:), kt == nitend - nn_fsbc + 1 )
             z_fwfprv(1) = z_fwfprv(1) / area
@@ -132,5 +132,5 @@
          !
          IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN
-            z_fwf = glob_sum( 'sbcfwb',  e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) )
+            z_fwf = glob_sum( 'sbcfwb',  e1e2t(:,:) * ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) - snwice_fmass(:,:) ) )
             !
             ! correction for ice sheet coupling testing (ie remove the excess through the surface)
@@ -201,5 +201,5 @@
             ztmsk_neg(:,:) = tmask_i(:,:) - ztmsk_pos(:,:)
             !                                                  ! fwf global mean (excluding ocean to ice/snow exchanges) 
-            z_fwf     = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) ) / area
+            z_fwf     = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) - fwfisf_cav(:,:) - fwfisf_par(:,:) - snwice_fmass(:,:) ) ) / area
             !            
             IF( z_fwf < 0._wp ) THEN         ! spread out over >0 erp area to increase evaporation
