Index: branches/UKMO/dev_r5518_v3.6_asm_nemovar_community_ersem_hem08/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.6_asm_nemovar_community_ersem_hem08/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90	(revision 9318)
+++ branches/UKMO/dev_r5518_v3.6_asm_nemovar_community_ersem_hem08/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90	(revision 9331)
@@ -101,4 +101,5 @@
    LOGICAL, PUBLIC :: ln_logchltotinc = .FALSE. !: No total log10(chlorophyll) increment
    LOGICAL, PUBLIC :: ln_logchlpftinc = .FALSE. !: No PFT   log10(chlorophyll) increment
+   LOGICAL, PUBLIC :: ln_logchlbal = .FALSE.
    LOGICAL, PUBLIC :: ln_salfix = .FALSE.      !: Apply minimum salinity check
    LOGICAL, PUBLIC :: ln_temnofreeze = .FALSE. !: Don't allow the temperature to drop below freezing
@@ -131,4 +132,8 @@
    REAL(wp), PUBLIC, DIMENSION(:,:,:,:), ALLOCATABLE :: logchl_balinc  !: Increment to BGC variables from logchl assim
 #endif
+   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: pgrow_avg_bkg   ! Background phyto growth
+   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: ploss_avg_bkg   ! Background phyto loss
+   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: phyt_avg_bkg    ! Background phyto conc
+   REAL(wp), DIMENSION(:,:),     ALLOCATABLE :: mld_max_bkg     ! Background max MLD
    REAL(wp) :: rn_maxchlinc = -999.0  !: maximum absolute non-log chlorophyll increment from logchl assimilation
                                       !: <= 0 implies no maximum applied (switch turned off)
@@ -206,5 +211,5 @@
       NAMELIST/nam_asminc/ ln_bkgwri, ln_balwri, ln_avgbkg,                &
          &                 ln_trainc, ln_dyninc, ln_sshinc,                &
-         &                 ln_logchltotinc, ln_logchlpftinc,               &
+         &                 ln_logchltotinc, ln_logchlpftinc, ln_logchlbal, &
          &                 ln_asmdin, ln_asmiau,                           &
          &                 nitbkg, nitdin, nitiaustr, nitiaufin, niaufn,   &
@@ -279,4 +284,5 @@
          WRITE(numout,*) '      Logical switch for applying total logchl incs      ln_logchltotinc = ', ln_logchltotinc
          WRITE(numout,*) '      Logical switch for applying PFT   logchl incs      ln_logchlpftinc = ', ln_logchlpftinc
+         WRITE(numout,*) '      Logical switch for applying balancing logchl incs     ln_logchlbal = ', ln_logchlbal
          WRITE(numout,*) '      Number of logchl PFTs assimilated                       nn_asmpfts = ', nn_asmpfts
          WRITE(numout,*) '      Logical switch for Incremental Analysis Updating (IAU)   ln_asmiau = ', ln_asmiau
@@ -769,4 +775,30 @@
 
       ENDIF
+
+      IF ( ln_logchltotinc .OR. ln_logchlpftinc ) THEN
+
+         CALL iom_open( c_asmbkg, inum )
+
+         ALLOCATE( pgrow_avg_bkg(jpi,jpj)        )
+         ALLOCATE( ploss_avg_bkg(jpi,jpj)        )
+         ALLOCATE( phyt_avg_bkg(jpi,jpj)         )
+         ALLOCATE( mld_max_bkg(jpi,jpj)          )
+         pgrow_avg_bkg(:,:)  = 0.0
+         ploss_avg_bkg(:,:)  = 0.0
+         phyt_avg_bkg(:,:)   = 0.0
+         mld_max_bkg(:,:)    = 0.0
+
+         CALL iom_get( inum, jpdom_autoglo, 'pgrow_avg', pgrow_avg_bkg )
+         CALL iom_get( inum, jpdom_autoglo, 'ploss_avg', ploss_avg_bkg )
+         CALL iom_get( inum, jpdom_autoglo, 'phyt_avg',  phyt_avg_bkg  )
+         CALL iom_get( inum, jpdom_autoglo, 'mld_max',   mld_max_bkg   )
+         pgrow_avg_bkg(:,:) = pgrow_avg_bkg(:,:) * tmask(:,:,1)
+         ploss_avg_bkg(:,:) = ploss_avg_bkg(:,:) * tmask(:,:,1)
+         phyt_avg_bkg(:,:)  = phyt_avg_bkg(:,:)  * tmask(:,:,1)
+         mld_max_bkg(:,:)   = mld_max_bkg(:,:)   * tmask(:,:,1)
+
+         CALL iom_close( inum )
+
+      ENDIF
       !
    END SUBROUTINE asm_inc_init
@@ -1412,5 +1444,8 @@
 #if defined key_fabm
          CALL asm_logchl_bal_ersem( ln_logchlpftinc, nn_asmpfts, mld_choice_bgc, &
-            &                       rn_maxchlinc, logchl_bkginc, logchl_balinc )
+            &                       rn_maxchlinc, logchl_bkginc, logchl_balinc,   &
+            &                       pgrow_avg_bkg, ploss_avg_bkg,           &
+            &                       phyt_avg_bkg, mld_max_bkg,              &
+            &                       ln_logchlbal, zincper )
 #elif defined key_medusa && defined key_foam_medusa
          !CALL asm_logchl_bal_medusa()
