Index: branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
===================================================================
--- branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90	(revision 8953)
+++ branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90	(revision 8954)
@@ -1166,6 +1166,6 @@
          nlogchlvars = 1
 
-         ! Set the number of extra variables for logchl to 0
-         nlogchlextr = 0
+         ! Set the number of extra variables for logchl to 1 (STD)
+         nlogchlextr = 1
          
          IF ( ln_logchlfb ) THEN
Index: branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_logchl.F90
===================================================================
--- branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_logchl.F90	(revision 8953)
+++ branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_logchl.F90	(revision 8954)
@@ -82,4 +82,5 @@
       INTEGER :: jj
       INTEGER :: jk
+      INTEGER :: jadd
       INTEGER :: iflag
       INTEGER :: inobf
@@ -115,4 +116,5 @@
       TYPE(obfbdata), POINTER, DIMENSION(:) :: &
          & inpfiles
+      LOGICAL :: ll_get_std   ! Logical for getting STD
       real(wp), DIMENSION(knumfiles) :: &
          & djulini, &
@@ -120,4 +122,5 @@
       INTEGER :: iobs
       INTEGER :: iobstot
+      INTEGER :: iaddref_std
       INTEGER :: ios
       INTEGER :: ioserrcount
@@ -205,4 +208,18 @@
                CALL ctl_stop( 'File format unknown' )
             ENDIF
+
+            !------------------------------------------------------------------ 
+            ! Find the references to additional entries, if any 
+            !------------------------------------------------------------------ 
+            ! STD 
+            iaddref_std = 0 
+            ll_get_std = .FALSE.
+            DO jadd = 1,inpfiles(jj) % nadd  
+               IF (  TRIM(inpfiles(jj) % caddname(jadd)) == "STD" ) THEN 
+                  iaddref_std = jadd
+                  ll_get_std = .TRUE. 
+                  EXIT 
+               ENDIF 
+            END DO
 
             !------------------------------------------------------------------
@@ -417,4 +434,14 @@
                   logchldata%rmod(iobs,1) = fbrmdi
                ENDIF
+                  
+               ! Copy in STD 
+               IF ( ll_get_std ) THEN 
+                  logchldata%rext(iobs,1) = inpfiles(jj)%padd(1,ji,iaddref_std,1) 
+               ELSE
+                  IF ( jk == 1 )   &
+                  &   CALL ctl_warn(   &
+                  &   "No STD values for logchl observations, setting to zero.") 
+                  logchldata%rext(iobs,1) = 0. 
+               ENDIF 
             ENDIF
          ENDIF
Index: branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90
===================================================================
--- branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90	(revision 8953)
+++ branches/UKMO/dev_r4650_general_vert_coord_obsoper_logchl_std/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90	(revision 8954)
@@ -974,5 +974,5 @@
          nadd = padd%inum
       ELSE
-         nadd = 0
+         nadd = 1
       ENDIF
 
@@ -1000,9 +1000,15 @@
       fbdata%caddunit(1,1) = 'mg/m3'
       fbdata%cgrid(1)      = 'T'
-      DO ja = 1, nadd
-         fbdata%caddname(1+ja) = padd%cdname(ja)
-         fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1)
-         fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1)
-      END DO
+      IF ( PRESENT( padd ) ) THEN
+         DO ja = 1, nadd
+            fbdata%caddname(1+ja) = padd%cdname(ja)
+            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1)
+            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1)
+         END DO
+      ELSE
+         fbdata%caddname(2) = 'STD'
+         fbdata%caddlong(2) = 'Standard deviation of LOGCHL'
+         fbdata%caddunit(2) = 'mg/m3'
+      ENDIF
 
       WRITE(cfname, FMT="(A,'_fdbk_',I4.4,'.nc')") TRIM(cprefix), nproc
@@ -1067,6 +1073,11 @@
          fbdata%iobsk(1,jo,1)  = 0
          DO ja = 1, nadd
-            fbdata%padd(1,jo,1+ja,1) = &
-               & logchldata%rext(jo,padd%ipoint(ja))
+            IF ( PRESENT( padd ) ) THEN
+               fbdata%padd(1,jo,1+ja,1) = &
+                  & logchldata%rext(jo,padd%ipoint(ja))
+            ELSE
+               fbdata%padd(1,jo,1+ja,1) = &
+                  & logchldata%rext(jo,1)
+            ENDIF
          END DO
          DO je = 1, next
