Index: /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icb_oce.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icb_oce.F90	(revision 15420)
+++ /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icb_oce.F90	(revision 15421)
@@ -86,5 +86,5 @@
    ! particularly for MPP when iceberg can lie inside T grid but outside U, V, or f grid
    REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   uo_e, vo_e
-   REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ff_e, tt_e, fr_e, ss_e, qsr_e, qml_e
+   REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ff_e, tt_e, fr_e, ss_e
    REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ua_e, va_e
    REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ssh_e
@@ -178,6 +178,5 @@
          &      ff_e(0:jpi+1,0:jpj+1) , fr_e(0:jpi+1,0:jpj+1)  ,   &
          &      tt_e(0:jpi+1,0:jpj+1) , ssh_e(0:jpi+1,0:jpj+1) ,   &
-         &      ss_e(0:jpi+1,0:jpj+1) , qsr_e(0:jpi+1,0:jpj+1) ,   & 
-         &      qml_e(0:jpi+1,0:jpj+1) ,                           &
+         &      ss_e(0:jpi+1,0:jpj+1) ,                            & 
          &      first_width(nclasses) , first_length(nclasses) ,   &
          &      src_calving (jpi,jpj) ,                            &
Index: /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbdyn.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbdyn.F90	(revision 15420)
+++ /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbdyn.F90	(revision 15421)
@@ -269,5 +269,5 @@
       !
       INTEGER  ::   itloop
-      REAL(wp) ::   zuo, zui, zua, zuwave, zssh_x, zsst, zcn, zhi, zsss, psr, pml
+      REAL(wp) ::   zuo, zui, zua, zuwave, zssh_x, zsst, zcn, zhi, zsss
       REAL(wp) ::   zvo, zvi, zva, zvwave, zssh_y
       REAL(wp) ::   zff, zT, zD, zW, zL, zM, zF
@@ -282,5 +282,5 @@
       nknberg = berg%number(1)
       CALL icb_utl_interp( pxi, pe1, zuo, zui, zua, zssh_x,                     &
-         &                 pyj, pe2, zvo, zvi, zva, zssh_y, zsst, zcn, zhi, zff, zsss, psr, pml )
+         &                 pyj, pe2, zvo, zvi, zva, zssh_y, zsst, zcn, zhi, zff, zsss )
 
       zM = berg%current_point%mass
Index: /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbini.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbini.F90	(revision 15420)
+++ /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbini.F90	(revision 15421)
@@ -80,5 +80,4 @@
       ff_e(:,:) = 0._wp   ;   tt_e(:,:) = 0._wp   ;
       fr_e(:,:) = 0._wp   ;   ss_e(:,:) = 0._wp   ;
-      qsr_e(:,:) = 0._wp  ;   qml_e(:,:) = 0._wp  ;
 #if defined key_si3
       hi_e(:,:) = 0._wp   ;
Index: /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbthm.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbthm.F90	(revision 15420)
+++ /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbthm.F90	(revision 15421)
@@ -51,7 +51,6 @@
       INTEGER  ::   ii, ij
       REAL(wp) ::   zM, zT, zW, zL, zSST, zVol, zLn, zWn, zTn, znVol, zIC, zDn
-      REAL(wp) ::   zqsr, pqsr, zqml, pqml
       REAL(wp) ::   zSSS, zfzpt
-      REAL(wp) ::   zMv, zMe, zMb, zmelt, zdvo, zdva, zdM, zSs, zdMe, zdMb, zdMv, zMt
+      REAL(wp) ::   zMv, zMe, zMb, zmelt, zdvo, zdva, zdM, zSs, zdMe, zdMb, zdMv
       REAL(wp) ::   zMnew, zMnew1, zMnew2, zheat_hcflux, zheat_latent, z1_12
       REAL(wp) ::   zMbits, znMbits, zdMbitsE, zdMbitsM, zLbits, zAbits, zMbb
@@ -88,10 +87,8 @@
          CALL icb_utl_interp( pt%xi, pt%e1, pt%uo, pt%ui, pt%ua, pt%ssh_x,   &
             &                 pt%yj, pt%e2, pt%vo, pt%vi, pt%va, pt%ssh_y,   &
-            &                 pt%sst, pt%cn, pt%hi, zff, pt%sss, pqsr, pqml )
+            &                 pt%sst, pt%cn, pt%hi, zff, pt%sss )
          !
          zSST = pt%sst
          zSSS = pt%sss
-         zqsr = MAX( pqsr, 0._wp )                        ! Downward oceanic surface solar flux
-         zqml = MAX( pqml, 0._wp )                        ! Sea ice top melt
          CALL eos_fzp(zSSS,zfzpt)                       ! freezing point
          zIC  = MIN( 1._wp, pt%cn + rn_sicn_shift )     ! Shift sea-ice concentration       !!gm ???
@@ -110,5 +107,4 @@
          zVol = zT * zW * zL
 
-
          ! Environment
          zdvo = SQRT( (pt%uvel-pt%uo)**2 + (pt%vvel-pt%vo)**2 )
@@ -125,11 +121,6 @@
          zMe = MAX( z1_12*(zSST+2.)*zSs*(1._wp+COS(rpi*(zIC**3)))     , 0._wp ) * z1_rday      ! Wave erosion                (eqn M.A8 )
 
-         ! Energy involved in top melt is a combination of 10% of solar flux (for portion of grid box that is ocean) and
-         ! 100% of sea ice top melt (for portion of grid box that is sea ice). Apply a maximum amount of melt of 5E-6 m/s
-         ! to keep this term lower than the other terms when the berg is in mid ocean.
-         zMt = MIN( (zqsr*0.1_wp + zqml) / (rLfus * rhoi) , 5.0E-6_wp )
-
          IF( ln_operator_splitting ) THEN      ! Operator split update of volume/mass
-            zTn    = MAX( zT - zMb*zdt - zMt*zdt , 0._wp )         ! new total thickness (m)
+            zTn    = MAX( zT - zMb*zdt , 0._wp )         ! new total thickness (m)
             znVol  = zTn * zW * zL                       ! new volume (m^3)
             zMnew1 = ( znVol / zVol ) * zM               ! new mass (kg)
@@ -152,10 +143,10 @@
             zLn = MAX( zL -(zMv+zMe)*zdt ,0._wp )        ! (m)
             zWn = MAX( zW -(zMv+zMe)*zdt ,0._wp )        ! (m)
-            zTn = MAX( zT - zMb*zdt - zMt*zdt ,0._wp )   ! (m)
+            zTn = MAX( zT - zMb    *zdt ,0._wp )         ! (m)
             ! Update volume and mass of berg
             znVol = zTn*zWn*zLn                          ! (m^3)
             zMnew = (znVol/zVol)*zM                      ! (kg)
             zdM   = zM - zMnew                           ! (kg)
-            zdMb = (zM/zVol) * (zW*   zL ) *(zMb+zMt)*zdt      ! approx. mass loss to basal melting (kg)
+            zdMb = (zM/zVol) * (zW*   zL ) *zMb*zdt      ! approx. mass loss to basal melting (kg)
             zdMe = (zM/zVol) * (zT*(zW+zL)) *zMe*zdt     ! approx. mass lost to erosion (kg)
             zdMv = (zM/zVol) * (zT*(zW+zL)) *zMv*zdt     ! approx. mass loss to buoyant convection (kg)
@@ -174,5 +165,5 @@
             zdMbitsM = MIN( zMbb*zdt , znMbits )                                     ! bergy bits mass lost to melting (kg)
             znMbits  = znMbits-zdMbitsM                                              ! remove mass lost to bergy bits melt
-            IF( zMnew <= 0._wp ) THEN                                                ! if parent berg has completely melted then
+            IF( zMnew == 0._wp ) THEN                                                ! if parent berg has completely melted then
                zdMbitsM = zdMbitsM + znMbits                                         ! instantly melt all the bergy bits
                znMbits  = 0._wp
@@ -184,6 +175,4 @@
             znMbits  = pt%mass_of_bits                             ! retain previous value incase non-zero
          ENDIF
-
-
 
          ! use tmask rather than tmask_i when dealing with icebergs
Index: /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbutl.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbutl.F90	(revision 15420)
+++ /NEMO/branches/UKMO/NEMO_4.0.4_bouncing_icebergs/src/OCE/ICB/icbutl.F90	(revision 15421)
@@ -23,7 +23,7 @@
    USE sbc_oce                             ! ocean surface boundary conditions
 #if defined key_si3
-   USE ice,    ONLY: u_ice, v_ice, hm_i, a_i    ! SI3 variables
+   USE ice,    ONLY: u_ice, v_ice, hm_i    ! SI3 variables
    USE icevar                              ! ice_var_sshdyn
-   USE sbc_ice, ONLY: snwice_mass, snwice_mass_b, qsr_oce, qml_ice
+   USE sbc_ice, ONLY: snwice_mass, snwice_mass_b
 #endif
 
@@ -78,6 +78,4 @@
       ua_e(1:jpi,1:jpj) = utau (:,:) * umask(:,:,1) ! maybe mask useless because mask applied in sbcblk
       va_e(1:jpi,1:jpj) = vtau (:,:) * vmask(:,:,1) ! maybe mask useless because mask applied in sbcblk
-      qsr_e(1:jpi,1:jpj) = qsr_oce(:,:)
-      qml_e(1:jpi,1:jpj) = SUM(qml_ice(:,:,:) * a_i(:,:,:), dim=3 )
       !
       CALL lbc_lnk_icb( 'icbutl', uo_e, 'U', -1._wp, 1, 1 )
@@ -89,6 +87,4 @@
       CALL lbc_lnk_icb( 'icbutl', tt_e, 'T', +1._wp, 1, 1 )
       CALL lbc_lnk_icb( 'icbutl', ss_e, 'T', +1._wp, 1, 1 )
-      CALL lbc_lnk_icb( 'icbutl', qsr_e, 'T', +1._wp, 1, 1 )
-      CALL lbc_lnk_icb( 'icbutl', qml_e, 'T', +1._wp, 1, 1 )
 #if defined key_si3
       hi_e(1:jpi, 1:jpj) = hm_i (:,:)  
@@ -113,5 +109,5 @@
    SUBROUTINE icb_utl_interp( pi, pe1, puo, pui, pua, pssh_i,   &
       &                       pj, pe2, pvo, pvi, pva, pssh_j,   &
-      &                       psst, pcn, phi, pff, psss, pqsr, pqml        )
+      &                       psst, pcn, phi, pff, psss        )
       !!----------------------------------------------------------------------
       !!                  ***  ROUTINE icb_utl_interp  ***
@@ -135,5 +131,4 @@
       REAL(wp), INTENT(  out) ::   pssh_i, pssh_j                 ! ssh i- & j-gradients
       REAL(wp), INTENT(  out) ::   psst, pcn, phi, pff, psss      ! SST, ice concentration, ice thickness, Coriolis, SSS
-      REAL(wp), INTENT(  out) ::   pqsr, pqml                     ! Ocean solar and sea ice top melt
       !
       REAL(wp) ::   zcd, zmod       ! local scalars
@@ -149,6 +144,4 @@
       pcn  = icb_utl_bilin_h( fr_e, pi, pj, 'T', .true.   )    ! ice concentration
       pff  = icb_utl_bilin_h( ff_e, pi, pj, 'F', .false.  )    ! Coriolis parameter
-      pqsr  = icb_utl_bilin_h( qsr_e, pi, pj, 'T', .true.   )  ! Ocean surface solar
-      pqml  = icb_utl_bilin_h( qml_e, pi, pj, 'T', .true.   )  ! Sea ice top melt
       !
       pua  = icb_utl_bilin_h( ua_e, pi, pj, 'U', .true.   )    ! 10m wind
