Index: /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90
===================================================================
--- /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90	(revision 9329)
+++ /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90	(revision 9330)
@@ -392,10 +392,10 @@
             zw3d(:,:,:) = fabm3d_25h(:,:,:,11)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:))
             CALL iom_put( "PhytoC25h", zw3d  )   ! total phytoplankton
-            zw3d(:,:,:) = fabm3d_25h(:,:,:,11)*tmask(:,:,:)*0.0832590939745 + zmdi*(1.0-tmask(:,:,:))
-            CALL iom_put( "PhyCMol25h", zw3d  )   ! total phytoplankton in mmol
-            zw3d(:,:,:) = fabm3d_25h(:,:,:,12)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:))
-            CALL iom_put( "ZooC25h", zw3d  )   ! total zooplankton
-            zw3d(:,:,:) = fabm3d_25h(:,:,:,12)*tmask(:,:,:)*0.0832590939745 + zmdi*(1.0-tmask(:,:,:))
-            CALL iom_put( "ZooCMol25h", zw3d  )   ! total zooplankton in mmol
+            !zw3d(:,:,:) = fabm3d_25h(:,:,:,11)*tmask(:,:,:)*0.0832590939745 + zmdi*(1.0-tmask(:,:,:))
+            !CALL iom_put( "PhyCMol25h", zw3d  )   ! total phytoplankton in mmol
+            !zw3d(:,:,:) = fabm3d_25h(:,:,:,12)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:))
+            !CALL iom_put( "ZooC25h", zw3d  )   ! total zooplankton
+            !zw3d(:,:,:) = fabm3d_25h(:,:,:,12)*tmask(:,:,:)*0.0832590939745 + zmdi*(1.0-tmask(:,:,:))
+            !CALL iom_put( "ZooCMol25h", zw3d  )   ! total zooplankton in mmol
 #endif
 
Index: /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/par_fabm.F90
===================================================================
--- /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/par_fabm.F90	(revision 9329)
+++ /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/par_fabm.F90	(revision 9330)
@@ -28,5 +28,8 @@
                       jp_fabm_netp2,jp_fabm_netp3, &
                       jp_fabm_netp4,jp_fabm_o3ph,  &
-                      jp_fabm_o3pc, jp_fabm_xeps
+                      jp_fabm_o3pc, jp_fabm_xeps,  &
+                      jp_fabm_o3c,  jp_fabm_o3a,  &
+                      jp_fabm_r4n,  jp_fabm_r6n,  &
+                      jp_fabm_r8n
 
    INTEGER, PUBLIC :: jp_fabmdia_3dout = 12
Index: /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/trcini_fabm.F90
===================================================================
--- /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/trcini_fabm.F90	(revision 9329)
+++ /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/trcini_fabm.F90	(revision 9330)
@@ -104,4 +104,9 @@
       jp_fabm_n5s  = fabm_state_index( 'N5_s' )
       jp_fabm_o2o  = fabm_state_index( 'O2_o' )
+      jp_fabm_o3c  = fabm_state_index( 'O3_c' )
+      jp_fabm_o3a  = fabm_state_index( 'O3_bioalk' )
+      jp_fabm_r4n  = fabm_state_index( 'R4_n' )
+      jp_fabm_r6n  = fabm_state_index( 'R6_n' )
+      jp_fabm_r8n  = fabm_state_index( 'R8_n' )
       !jp_fabm_netp1= fabm_diag_index( 'P1_netP' )
       !jp_fabm_netp2= fabm_diag_index( 'P2_netP' )
@@ -181,4 +186,9 @@
       END IF
       IF( lk_mpp )   CALL mppsync !Ensure field_def_fabm is ready.
+      
+      MLD_MAX(:,:) = 0.0
+      PGROW_AVG(:,:) = 0.0
+      PLOSS_AVG(:,:) = 0.0
+      PHYT_AVG(:,:) = 0.0
 
 1000 FORMAT (A)
Index: /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/trcsms_fabm.F90
===================================================================
--- /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/trcsms_fabm.F90	(revision 9329)
+++ /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/FABM/trcsms_fabm.F90	(revision 9330)
@@ -33,4 +33,5 @@
    USE inputs_fabm
    USE vertical_movement_fabm
+   USE zdfmxl
 
    !USE fldread         !  time interpolation
@@ -113,4 +114,6 @@
 
       CALL st2d_fabm_nxt( kt )
+      
+      CALL asmdiags_fabm
 
       IF( l_trdtrc )  CALL wrk_alloc( jpi, jpj, jpk, ztrfabm )
@@ -130,4 +133,42 @@
 
    END SUBROUTINE trc_sms_fabm
+   
+   SUBROUTINE asmdiags_fabm
+      INTEGER :: ji,jj,jk,jkmax
+   
+      PGROW_AVG(:,:) = 1.0
+      PLOSS_AVG(:,:) = 1.0
+      PHYT_AVG(:,:)  = 0.0
+
+      DO jj = 1, jpj
+         DO ji = 1, jpi
+            !
+            jkmax = jpk-1
+            DO jk = jpk-1, 1, -1
+               IF ( ( hmld_tref(ji,jj) >  gdepw_n(ji,jj,jk)   ) .AND. &
+                  & ( hmld_tref(ji,jj) <= gdepw_n(ji,jj,jk+1) ) ) THEN
+                  hmld_tref(ji,jj) = gdepw_n(ji,jj,jk+1)
+                  jkmax = jk
+               ENDIF
+            END DO
+            !
+            DO jk = 1, jkmax
+               PHYT_AVG(ji,jj) = PHYT_AVG(ji,jj) + &
+                  &              trn(ji,jj,jk,jp_fabm_p1n) + &
+                  &              trn(ji,jj,jk,jp_fabm_p2n) + &
+                  &              trn(ji,jj,jk,jp_fabm_p3n) + &
+                  &              trn(ji,jj,jk,jp_fabm_p4n)
+            END DO
+            
+            PHYT_AVG(ji,jj) = PHYT_AVG(ji,jj) / REAL(jkmax)
+
+            IF ( hmld_tref(ji,jj) .GT. MLD_MAX(ji,jj) ) THEN
+               MLD_MAX(ji,jj) = hmld_tref(ji,jj)
+            ENDIF
+            !
+         END DO
+      END DO
+   
+   END SUBROUTINE asmdiags_fabm
 
    SUBROUTINE compute_fabm()
Index: /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/trc.F90
===================================================================
--- /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/trc.F90	(revision 9329)
+++ /branches/UKMO/CO6_KD490_amm7_oper_fabm_hem08/NEMOGCM/NEMO/TOP_SRC/trc.F90	(revision 9330)
@@ -225,4 +225,11 @@
 #endif
 
+#if defined key_fabm
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  PGROW_AVG                  ! Phytoplankton growth for use in ASM code
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  PLOSS_AVG                  ! Phytoplankton loss   for use in ASM code
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  PHYT_AVG                   ! Phytoplankton        for use in ASM code
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  MLD_MAX                    ! Maximum MLD          for use in ASM code
+#endif
+
    !!----------------------------------------------------------------------
    !! NEMO/TOP 3.3.1 , NEMO Consortium (2010)
@@ -253,4 +260,6 @@
 ! FABM <<<+++
          &      ln_trc_sbc(jptra)     , ln_trc_cbc(jptra)     , ln_trc_obc(jptra)     ,       &
+         &      PGROW_AVG(jpi,jpj)    , PLOSS_AVG(jpi,jpj)    , PHYT_AVG(jpi,jpj)     ,       &
+         &      MLD_MAX(jpi,jpj)                                                      ,       &
 #endif
 #if defined key_bdy
