Index: /NEMO/branches/UKMO/NEMO_4.0.4_FOAM_IAU_SI3_SIC/src/OCE/ASM/asminc.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.4_FOAM_IAU_SI3_SIC/src/OCE/ASM/asminc.F90	(revision 15251)
+++ /NEMO/branches/UKMO/NEMO_4.0.4_FOAM_IAU_SI3_SIC/src/OCE/ASM/asminc.F90	(revision 15252)
@@ -97,5 +97,5 @@
    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   a_i_bkginc          ! Increment to the background sea ice conc categories
 #endif
-   REAL(wp) :: zhi_damin = 0.5_wp !: ice thickness for new sea ice from da increment
+   REAL(wp) :: zhi_damin = 0.45_wp !: ice thickness for new sea ice from da increment
    INTEGER  :: nhi_damin          !: thickness category corresponding to zhi_damin
    LOGICAL, PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: incr_newice !: mask .TRUE.=DA positive ice increment to open water
@@ -161,5 +161,5 @@
       ln_seaiceinc   = .FALSE.
       ln_temnofreeze = .FALSE.
-      zhi_damin = 0.5_wp
+      zhi_damin = 0.45_wp
       zopenwater_lim = 1.0e-2_wp
 
@@ -900,6 +900,8 @@
       REAL(wp) ::   zincwgt   ! IAU weight for current time step
 #if defined key_si3
-      REAL(wp), DIMENSION(jpi,jpj,jpl) :: da_i  ! change in ice concentration
+      REAL(wp), DIMENSION(jpi,jpj,jpl) :: da_i    ! change in ice concentration
+      REAL(wp), DIMENSION(jpi,jpj,jpl) :: dv_i    ! change in ice volume
       REAL(wp), DIMENSION(jpi,jpj,jpl) :: z1_a_i  ! inverse of old ice concentration
+      REAL(wp), DIMENSION(jpi,jpj,jpl) :: z1_v_i  ! inverse of old ice volume
       REAL(wp) :: rn_hinew_save
       LOGICAL, SAVE :: initial_step=.TRUE.
@@ -929,6 +931,8 @@
             WHERE( a_i(:,:,:) > epsi10 )
                z1_a_i(:,:,:) = 1.0_wp/a_i(:,:,:)
+               z1_v_i(:,:,:) = 1.0_wp/v_i(:,:,:)
             ELSEWHERE
                z1_a_i(:,:,:) = 0.0_wp
+               z1_v_i(:,:,:) = 0.0_wp
             END WHERE
 
@@ -952,6 +956,8 @@
             WHERE ( incr_newice )
                da_i(:,:,:) = 1.0_wp
+               dv_i(:,:,:) = 1.0_wp
             ELSEWHERE
                da_i(:,:,:) = a_i(:,:,:) * z1_a_i(:,:,:)
+               dv_i(:,:,:) = v_i(:,:,:) * z1_v_i(:,:,:)
             END WHERE
 
@@ -993,5 +999,5 @@
 
                qlead = 0.0_wp
-               at_i_bkginc(:,:) = SUM( a_i_bkginc(:,:,:)*zincwgt, DIM=3 )
+               at_i_bkginc(:,:) = SUM( a_i_bkginc(:,:,:), DIM=3 )
 
                call seaice_asm_qlead(ht_i_new, at_i_bkginc, qlead)
@@ -1003,18 +1009,24 @@
                rn_hinew = rn_hinew_save
 
-               incr_newice(:,:,:) = .FALSE.
                initial_step = .FALSE.
             END IF
 
-            ! as ice concentration has changed, maintain equivalent values for prognostic variables
-            v_s  (:,:,:) = v_s (:,:,:) * da_i(:,:,:)
-            sv_i (:,:,:) = sv_i(:,:,:) * da_i(:,:,:)
-            a_ip (:,:,:) = a_ip(:,:,:) * da_i(:,:,:)
-            v_ip (:,:,:) = v_ip(:,:,:) * da_i(:,:,:)
+            ! maintain equivalent values for prognostic variables
+            v_s  (:,:,:) = v_s (:,:,:) * da_i(:,:,:)        ! snow volume
+            DO jl = 1, nlay_s
+               e_s(:,:,jl,:) = e_s(:,:,jl,:) * da_i(:,:,:)  ! snow entalphy
+            END DO
+            ! Passive microwave cannot detect ice ponds
+            ! However it should be valid to reduce pond 
+            ! area/volume when ice is removed (da_i < 1)
+            WHERE ( da_i < 1 )
+                  a_ip (:,:,:) = a_ip(:,:,:) * da_i(:,:,:)  ! pond concentration
+                  v_ip (:,:,:) = v_ip(:,:,:) * da_i(:,:,:)  ! pond volume
+            END WHERE
+ 
+            ! ice volume dependent variables
+            sv_i (:,:,:) = sv_i(:,:,:) * dv_i(:,:,:)        ! ice salt content
             DO jl = 1, nlay_i
-               e_i(:,:,jl,:) = e_i(:,:,jl,:) * da_i(:,:,:)
-            END DO
-            DO jl = 1, nlay_s
-               e_s(:,:,jl,:) = e_s(:,:,jl,:) * da_i(:,:,:)
+               e_i(:,:,jl,:) = e_i(:,:,jl,:) * dv_i(:,:,:)  ! ice entalphy
             END DO
 
