diff --git a/src/OCE/ICB/icbutl.F90 b/src/OCE/ICB/icbutl.F90
index 11634f30299559500dc4bc2b70108683ff625427..780d05df039e847e4e8623833ecd591d85580a04 100644
--- a/src/OCE/ICB/icbutl.F90
+++ b/src/OCE/ICB/icbutl.F90
@@ -26,8 +26,8 @@ MODULE icbutl
    USE icb_oce                             ! define iceberg arrays
    USE sbc_oce                             ! ocean surface boundary conditions
 #if defined key_si3
-   USE ice,    ONLY: u_ice, v_ice, hm_i    ! SI3 variables
-   USE icevar                              ! ice_var_sshdyn
+   USE ice,    ONLY: u_ice, v_ice, at_i, vt_i ! SI3 variables
+   USE icevar                                 ! ice_var_sshdyn
    USE sbc_ice, ONLY: snwice_mass, snwice_mass_b
 #endif
 
@@ -102,7 +102,11 @@ CONTAINS
       CALL lbc_lnk_icb( 'icbutl', ua_e , 'U', -1._wp, 1, 1 )
       CALL lbc_lnk_icb( 'icbutl', va_e , 'V', -1._wp, 1, 1 )
 #if defined key_si3
-      hi_e(A2D(0)) = hm_i (:,:)  ! clem: something is wrong here (hm_i defined in the interior only) but I do not what to do
+      WHERE( at_i(:,:) /= 0._wp )
+         hi_e(1:jpi,1:jpj) = vt_i(:,:) / at_i(:,:)
+      ELSEWHERE
+         hi_e(1:jpi,1:jpj) = 0._wp         
+      ENDWHERE
       ui_e(1:jpi, 1:jpj) = u_ice(:,:)
       vi_e(1:jpi, 1:jpj) = v_ice(:,:)
       !