Index: branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM/asmlogchlbal_hadocc.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM/asmlogchlbal_hadocc.F90	(revision 8495)
+++ branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/OPA_SRC/ASM/asmlogchlbal_hadocc.F90	(revision 8648)
@@ -69,5 +69,5 @@
 
    SUBROUTINE asm_logchl_bal_hadocc( logchl_bkginc, aincper, mld_choice_bgc, &
-      &                              k_maxchlinc, ld_logchlbal,              &
+      &                              k_maxchlinc, ld_logchlbal, ld_asmdin,   &
       &                              pgrow_avg_bkg, ploss_avg_bkg,           &
       &                              phyt_avg_bkg, mld_max_bkg,              &
@@ -93,4 +93,5 @@
       REAL(wp), INTENT(in   )                               :: k_maxchlinc    ! Max chl increment
       LOGICAL,  INTENT(in   )                               :: ld_logchlbal   ! Balancing y/n
+      LOGICAL,  INTENT(in   )                               :: ld_asmdin      ! Direct initialisation y/n
       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj)           :: pgrow_avg_bkg  ! Avg phyto growth
       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj)           :: ploss_avg_bkg  ! Avg phyto loss
@@ -136,28 +137,34 @@
       
       ! Select mixed layer
-      SELECT CASE( mld_choice_bgc )
-      CASE ( 1 )                   ! Turbocline/mixing depth [W points]
-         zmld(:,:) = hmld(:,:)
-      CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points]
-         zmld(:,:) = hmlp(:,:)
-      CASE ( 3 )                   ! Kara MLD [Interpolated]
+      IF ( ld_asmdin ) THEN
+         CALL ctl_warn( ' Doing direct initialisation of HadOCC with chlorophyll assimilation', &
+            &           ' Mixed layer depth taken to be background maximum mld_max_bkg' )
+         zmld(:,:) = mld_max_bkg(:,:)
+      ELSE
+         SELECT CASE( mld_choice_bgc )
+         CASE ( 1 )                   ! Turbocline/mixing depth [W points]
+            zmld(:,:) = hmld(:,:)
+         CASE ( 2 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [W points]
+            zmld(:,:) = hmlp(:,:)
+         CASE ( 3 )                   ! Kara MLD [Interpolated]
 #if defined key_karaml
-         IF ( ln_kara ) THEN
-            zmld(:,:) = hmld_kara(:,:)
-         ELSE
+            IF ( ln_kara ) THEN
+               zmld(:,:) = hmld_kara(:,:)
+            ELSE
+               CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', &
+                  &           ' but ln_kara=.false.' )
+            ENDIF
+#else
             CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', &
-               &           ' but ln_kara=.false.' )
-         ENDIF
-#else
-         CALL ctl_stop( ' Kara mixed layer requested for LogChl assimilation,', &
-            &           ' but is not defined' )
+               &           ' but is not defined' )
 #endif
-      CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points]
-         !zmld(:,:) = hmld_tref(:,:)
-         CALL ctl_stop( ' hmld_tref mixed layer requested for LogChl assimilation,', &
-            &           ' but is not available in this version' )
-      CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points]
-         zmld(:,:) = hmlpt(:,:)
-      END SELECT
+         CASE ( 4 )                   ! Temperature criterion (0.2 K change from surface) [T points]
+            !zmld(:,:) = hmld_tref(:,:)
+            CALL ctl_stop( ' hmld_tref mixed layer requested for LogChl assimilation,', &
+               &           ' but is not available in this version' )
+         CASE ( 5 )                   ! Density criterion (0.01 kg/m^3 change from 10m) [T points]
+            zmld(:,:) = hmlpt(:,:)
+         END SELECT
+      ENDIF
       
       IF ( ld_logchlbal ) THEN   ! Nitrogen balancing
