Index: branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/CONFIG/SHARED/namelist_ref
===================================================================
--- branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 11470)
+++ branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 11863)
@@ -1213,4 +1213,5 @@
    ln_slphynon = .false.            ! Logical switch for surface non-diatom log10(phytoplankton carbon) obs
    ln_sspm     = .false.            ! Logical switch for surface suspended particulate matter obs
+   ln_skd490   = .false.            ! Logical switch for surface attenuation coefficient of downwelling radiation at 490 nm
    ln_sfco2    = .false.            ! Logical switch for surface fugacity         of carbon dioxide obs
    ln_spco2    = .false.            ! Logical switch for surface partial pressure of carbon dioxide obs
@@ -1257,4 +1258,5 @@
    cn_slphynonfbfiles = 'slphynon_01.nc' ! Surface non-diatom log10(phytoplankton carbon) obs file names
    cn_sspmfbfiles     = 'sspm_01.nc'     ! Surface suspended particulate matter obs file names
+   cn_skd490fbfiles   = 'skd490_01.nc'   ! Surface Kd490 obs file names
    cn_sfco2fbfiles    = 'sfco2_01.nc'    ! Surface fugacity         of carbon dioxide obs file names
    cn_spco2fbfiles    = 'spco2_01.nc'    ! Surface partial pressure of carbon dioxide obs file names
Index: branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
===================================================================
--- branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90	(revision 11470)
+++ branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90	(revision 11863)
@@ -167,4 +167,5 @@
          & cn_slphynonfbfiles, & ! Surface non-diatom log10(phytoplankton carbon) input filenames
          & cn_sspmfbfiles,     & ! Surface suspended particulate matter input filenames
+         & cn_skd490fbfiles,   & ! Surface Kd490 input filenames
          & cn_sfco2fbfiles,    & ! Surface fugacity         of carbon dioxide input filenames
          & cn_spco2fbfiles,    & ! Surface partial pressure of carbon dioxide input filenames
@@ -203,4 +204,5 @@
       LOGICAL :: ln_slphynon     ! Logical switch for surface non-diatom log10(phytoplankton carbon) obs
       LOGICAL :: ln_sspm         ! Logical switch for surface suspended particulate matter obs
+      LOGICAL :: ln_skd490       ! Logical switch for surface Kd490
       LOGICAL :: ln_sfco2        ! Logical switch for surface fugacity         of carbon dioxide obs
       LOGICAL :: ln_spco2        ! Logical switch for surface partial pressure of carbon dioxide obs
@@ -230,4 +232,5 @@
          & clproffiles, &        ! Profile filenames
          & clsurffiles           ! Surface filenames
+      CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvars  ! Expected variable names
 
       LOGICAL, DIMENSION(:), ALLOCATABLE :: llvar   ! Logical for profile variable read
@@ -251,4 +254,5 @@
          &            ln_slphytot, ln_slphydia, ln_slphynon,          &
          &            ln_sspm,     ln_sfco2,    ln_spco2,             &
+         &            ln_skd490,                                      &
          &            ln_plchltot, ln_pchltot,  ln_pno3,              &
          &            ln_psi4,     ln_ppo4,     ln_pdic,              &
@@ -270,4 +274,5 @@
          &            cn_slphytotfbfiles, cn_slphydiafbfiles,         &
          &            cn_slphynonfbfiles, cn_sspmfbfiles,             &
+         &            cn_skd490fbfiles,                               &
          &            cn_sfco2fbfiles, cn_spco2fbfiles,               &
          &            cn_plchltotfbfiles, cn_pchltotfbfiles,          &
@@ -312,4 +317,5 @@
       cn_slphynonfbfiles(:) = ''
       cn_sspmfbfiles(:)     = ''
+      cn_skd490fbfiles(:)   = ''
       cn_sfco2fbfiles(:)    = ''
       cn_spco2fbfiles(:)    = ''
@@ -374,4 +380,5 @@
          WRITE(numout,*) '             Logical switch for surface non-diatom log(phyC) obs ln_slphynon = ', ln_slphynon
          WRITE(numout,*) '             Logical switch for surface SPM observations             ln_sspm = ', ln_sspm
+         WRITE(numout,*) '             Logical switch for surface Kd490 observations         ln_skd490 = ', ln_skd490
          WRITE(numout,*) '             Logical switch for surface fCO2 observations           ln_sfco2 = ', ln_sfco2
          WRITE(numout,*) '             Logical switch for surface pCO2 observations           ln_spco2 = ', ln_spco2
@@ -433,5 +440,5 @@
          &                  ln_slchlmic, ln_slchlnan, ln_slchlpic, ln_schltot,  &
          &                  ln_slphytot, ln_slphydia, ln_slphynon, ln_sspm,     &
-         &                  ln_sfco2,    ln_spco2 /) )
+         &                  ln_skd490,   ln_sfco2,    ln_spco2 /) )
 
       IF ( nproftypes == 0 .AND. nsurftypes == 0 ) THEN
@@ -613,4 +620,9 @@
             cobstypessurf(jtype) = 'sspm'
             clsurffiles(jtype,:) = cn_sspmfbfiles
+         ENDIF
+         IF (ln_skd490) THEN
+            jtype = jtype + 1
+            cobstypessurf(jtype) = 'skd490'
+            clsurffiles(jtype,:) = cn_skd490fbfiles
          ENDIF
          IF (ln_sfco2) THEN
@@ -736,4 +748,5 @@
                IF ( ln_output_clim ) ltype_clim = .TRUE.              
                ALLOCATE(llvar(nvarsprof(jtype)))
+               ALLOCATE(clvars(nvarsprof(jtype)))
                CALL wrk_alloc( jpi, jpj,      nvarsprof(jtype), zglam )
                CALL wrk_alloc( jpi, jpj,      nvarsprof(jtype), zgphi )
@@ -741,4 +754,6 @@
                llvar(1)       = ln_t3d
                llvar(2)       = ln_s3d
+               clvars(1)      = 'POTM'
+               clvars(2)      = 'PSAL'
                zglam(:,:,1)   = glamt(:,:)
                zglam(:,:,2)   = glamt(:,:)
@@ -751,4 +766,5 @@
                nextrprof(jtype) = 2
                ALLOCATE(llvar(nvarsprof(jtype)))
+               ALLOCATE(clvars(nvarsprof(jtype)))
                CALL wrk_alloc( jpi, jpj,      nvarsprof(jtype), zglam )
                CALL wrk_alloc( jpi, jpj,      nvarsprof(jtype), zgphi )
@@ -756,4 +772,6 @@
                llvar(1)       = ln_vel3d
                llvar(2)       = ln_vel3d
+               clvars(1)      = 'UVEL'
+               clvars(2)      = 'VVEL'
                zglam(:,:,1)   = glamu(:,:)
                zglam(:,:,2)   = glamv(:,:)
@@ -766,4 +784,5 @@
                nextrprof(jtype) = 0
                ALLOCATE(llvar(nvarsprof(jtype)))
+               ALLOCATE(clvars(nvarsprof(jtype)))
                CALL wrk_alloc( jpi, jpj,      nvarsprof(jtype), zglam )
                CALL wrk_alloc( jpi, jpj,      nvarsprof(jtype), zgphi )
@@ -773,4 +792,23 @@
                zgphi(:,:,1)   = gphit(:,:)
                zmask(:,:,:,1) = tmask(:,:,:)
+               IF ( TRIM(cobstypesprof(jtype)) == 'plchltot' )  THEN
+                  clvars(1) = 'PLCHLTOT'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'pchltot' )  THEN
+                  clvars(1) = 'PCHLTOT'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'pno3' )  THEN
+                  clvars(1) = 'PNO3'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'psi4' )  THEN
+                  clvars(1) = 'PSI4'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'ppo4' )  THEN
+                  clvars(1) = 'PPO4'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'pdic' )  THEN
+                  clvars(1) = 'PDIC'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'palk' )  THEN
+                  clvars(1) = 'PALK'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'pph' )  THEN
+                  clvars(1) = 'PPH'
+               ELSE IF ( TRIM(cobstypesprof(jtype)) == 'po2' )  THEN
+                  clvars(1) = 'PO2'
+               ENDIF
             ENDIF
 
@@ -780,5 +818,5 @@
                &               nvarsprof(jtype), nextrprof(jtype), nitend-nit000+2, &
                &               rn_dobsini, rn_dobsend, llvar, &
-               &               ln_ignmis, ln_s_at_t, .FALSE., ltype_clim, &
+               &               ln_ignmis, ln_s_at_t, .FALSE., ltype_clim, clvars, &
                &               kdailyavtypes = nn_profdavtypes )
 
@@ -794,5 +832,5 @@
                &               kdailyavtypes = nn_profdavtypes )
             
-            DEALLOCATE( llvar )
+            DEALLOCATE( llvar, clvars )
             CALL wrk_dealloc( jpi, jpj,      nvarsprof(jtype), zglam )
             CALL wrk_dealloc( jpi, jpj,      nvarsprof(jtype), zgphi )
@@ -814,12 +852,59 @@
          DO jtype = 1, nsurftypes
 
-            nvarssurf(jtype) = 1
-            nextrsurf(jtype) = 0
             ltype_clim = .FALSE.
-            IF ( TRIM(cobstypessurf(jtype)) == 'sla' ) nextrsurf(jtype) = 2
             IF ( ln_output_clim .AND. &
                & ( ( TRIM(cobstypessurf(jtype)) == 'sst' ) .OR. &
                &   ( TRIM(cobstypessurf(jtype)) == 'sss' ) ) ) &
                & ltype_clim = .TRUE.
+
+            IF ( TRIM(cobstypessurf(jtype)) == 'sla' ) THEN
+               nvarssurf(jtype) = 1
+               nextrsurf(jtype) = 2
+            ELSE
+               nvarssurf(jtype) = 1
+               nextrsurf(jtype) = 0
+            ENDIF
+            
+            ALLOCATE( clvars( nvarssurf(jtype) ) )
+
+            IF ( TRIM(cobstypessurf(jtype)) == 'sla' ) THEN
+               clvars(1) = 'SLA'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sst' ) THEN
+               clvars(1) = 'SST'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sic' ) THEN
+               clvars(1) = 'ICECONC'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sss' ) THEN
+               clvars(1) = 'SSS'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchltot' ) THEN
+               clvars(1) = 'SLCHLTOT'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchldia' ) THEN
+               clvars(1) = 'SLCHLDIA'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchlnon' ) THEN
+               clvars(1) = 'SLCHLNON'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchldin' ) THEN
+               clvars(1) = 'SLCHLDIN'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchlmic' ) THEN
+               clvars(1) = 'SLCHLMIC'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchlnan' ) THEN
+               clvars(1) = 'SLCHLNAN'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slchlpic' ) THEN
+               clvars(1) = 'SLCHLPIC'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'schltot' ) THEN
+               clvars(1) = 'SCHLTOT'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slphytot' ) THEN
+               clvars(1) = 'SLPHYTOT'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slphydia' ) THEN
+               clvars(1) = 'SLPHYDIA'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'slphynon' ) THEN
+               clvars(1) = 'SLPHYNON'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sspm' ) THEN
+               clvars(1) = 'SSPM'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'skd490' ) THEN
+               clvars(1) = 'SKD490'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sfco2' ) THEN
+               clvars(1) = 'SFCO2'
+            ELSE IF ( TRIM(cobstypessurf(jtype)) == 'spco2' ) THEN
+               clvars(1) = 'SPCO2'
+            ENDIF
 
             !Read in surface obs types
@@ -828,5 +913,5 @@
                &               nvarssurf(jtype), nextrsurf(jtype), nitend-nit000+2, &
                &               rn_dobsini, rn_dobsend, ln_ignmis, .FALSE., &
-               &               llnightav(jtype), ltype_clim )
+               &               llnightav(jtype), ltype_clim, clvars )
 
             CALL obs_pre_surf( surfdata(jtype), surfdataqc(jtype), ln_nea, ln_bound_reject )
@@ -852,4 +937,6 @@
 
             ENDIF
+            
+            DEALLOCATE( clvars )
 
          END DO
@@ -963,5 +1050,5 @@
 #if defined key_fabm
       REAL(wp), POINTER, DIMENSION(:,:,:) :: &
-         & pco2_3d                 ! 3D pCO2 from FABM
+         & fabm_3d                 ! 3D variable from FABM
 #endif
       
@@ -1211,5 +1298,5 @@
          CALL wrk_alloc( jpi, jpj, zsurfmask )
 #if defined key_fabm
-         CALL wrk_alloc( jpi, jpj, jpk, pco2_3d )
+         CALL wrk_alloc( jpi, jpj, jpk, fabm_3d )
 #endif
 
@@ -1444,4 +1531,20 @@
 #endif
 
+            CASE('skd490')
+#if defined key_hadocc
+               CALL ctl_stop( ' Trying to run skd490 observation operator', &
+                  &           ' but HadOCC does not explicitly simulate Kd490' )
+#elif defined key_medusa
+               CALL ctl_stop( ' Trying to run skd490 observation operator', &
+                  &           ' but MEDUSA does not explicitly simulate Kd490' )
+#elif defined key_fabm
+               ! light_xEPS diagnostic variable
+               fabm_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_xeps)
+               zsurfvar(:,:) = fabm_3d(:,:,1)
+#else
+               CALL ctl_stop( ' Trying to run skd490 observation operator', &
+                  &           ' but no biogeochemical model appears to have been defined' )
+#endif
+
             CASE('sfco2')
 #if defined key_hadocc
@@ -1458,6 +1561,6 @@
 #elif defined key_fabm
                ! First, get pCO2 from FABM
-               pco2_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc)
-               zsurfvar(:,:) = pco2_3d(:,:,1)
+               fabm_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc)
+               zsurfvar(:,:) = fabm_3d(:,:,1)
                ! Now, convert pCO2 to fCO2, based on SST in K. This follows the standard methodology of:
                ! Pierrot et al. (2009), Recommendations for autonomous underway pCO2 measuring systems
@@ -1497,6 +1600,6 @@
                zsurfvar(:,:) = f2_pco2w(:,:)
 #elif defined key_fabm
-               pco2_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc)
-               zsurfvar(:,:) = pco2_3d(:,:,1)
+               fabm_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc)
+               zsurfvar(:,:) = fabm_3d(:,:,1)
 #else
                CALL ctl_stop( ' Trying to run spco2 observation operator', &
@@ -1533,5 +1636,5 @@
          CALL wrk_dealloc( jpi, jpj, zsurfmask )
 #if defined key_fabm
-         CALL wrk_dealloc( jpi, jpj, jpk, pco2_3d )
+         CALL wrk_dealloc( jpi, jpj, jpk, fabm_3d )
 #endif
 
Index: branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90
===================================================================
--- branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90	(revision 11470)
+++ branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90	(revision 11863)
@@ -46,5 +46,5 @@
       &                     kvars, kextr, kstp, ddobsini, ddobsend, &
       &                     ldvar, ldignmis, ldsatt, &
-      &                     ldmod, ldclim, kdailyavtypes )
+      &                     ldmod, ldclim, cdvars, kdailyavtypes )
       !!---------------------------------------------------------------------
       !!
@@ -81,4 +81,5 @@
       REAL(dp), INTENT(IN) :: ddobsini  ! Obs. ini time in YYYYMMDD.HHMMSS
       REAL(dp), INTENT(IN) :: ddobsend  ! Obs. end time in YYYYMMDD.HHMMSS
+      CHARACTER(len=8), DIMENSION(kvars), INTENT(IN) :: cdvars
       INTEGER, DIMENSION(imaxavtypes), OPTIONAL :: &
          & kdailyavtypes                ! Types of daily average observations
@@ -87,5 +88,5 @@
       CHARACTER(LEN=15), PARAMETER :: cpname='obs_rea_prof'
       CHARACTER(len=8) :: clrefdate
-      CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvars
+      CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvarsin
       INTEGER :: jvar
       INTEGER :: ji
@@ -222,11 +223,15 @@
 
             IF ( jj == 1 ) THEN
-               ALLOCATE( clvars( inpfiles(jj)%nvar ) )
+               ALLOCATE( clvarsin( inpfiles(jj)%nvar ) )
                DO ji = 1, inpfiles(jj)%nvar
-                 clvars(ji) = inpfiles(jj)%cname(ji)
+                 clvarsin(ji) = inpfiles(jj)%cname(ji)
+                 IF ( clvarsin(ji) /= cdvars(ji) ) THEN
+                    CALL ctl_stop( 'Feedback file variables do not match', &
+                        &           ' expected variable names for this type' )
+                 ENDIF
                END DO
             ELSE
                DO ji = 1, inpfiles(jj)%nvar
-                  IF ( inpfiles(jj)%cname(ji) /= clvars(ji) ) THEN
+                  IF ( inpfiles(jj)%cname(ji) /= clvarsin(ji) ) THEN
                      CALL ctl_stop( 'Feedback file variables not consistent', &
                         &           ' with previous files for this type' )
@@ -507,5 +512,5 @@
       profdata%nprof     = 0
       profdata%nvprot(:) = 0
-      profdata%cvars(:)  = clvars(:)
+      profdata%cvars(:)  = clvarsin(:)
       iprof = 0
 
@@ -809,5 +814,5 @@
       ! Deallocate temporary data
       !-----------------------------------------------------------------------
-      DEALLOCATE( ifileidx, iprofidx, zdat, clvars )
+      DEALLOCATE( ifileidx, iprofidx, zdat, clvarsin )
 
       !-----------------------------------------------------------------------
Index: branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_surf.F90
===================================================================
--- branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_surf.F90	(revision 11470)
+++ branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_surf.F90	(revision 11863)
@@ -40,5 +40,5 @@
    SUBROUTINE obs_rea_surf( surfdata, knumfiles, cdfilenames, &
       &                     kvars, kextr, kstp, ddobsini, ddobsend, &
-      &                     ldignmis, ldmod, ldnightav, ldclim )
+      &                     ldignmis, ldmod, ldnightav, ldclim, cdvars )
       !!---------------------------------------------------------------------
       !!
@@ -74,9 +74,10 @@
       REAL(dp), INTENT(IN) :: ddobsini   ! Obs. ini time in YYYYMMDD.HHMMSS
       REAL(dp), INTENT(IN) :: ddobsend   ! Obs. end time in YYYYMMDD.HHMMSS
+      CHARACTER(len=8), DIMENSION(kvars), INTENT(IN) :: cdvars
 
       !! * Local declarations
       CHARACTER(LEN=11), PARAMETER :: cpname='obs_rea_surf'
       CHARACTER(len=8) :: clrefdate
-      CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvars
+      CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvarsin
       INTEGER :: ji
       INTEGER :: jj
@@ -182,4 +183,9 @@
                &                ldgrid = .TRUE. )
 
+            IF ( inpfiles(jj)%nvar /= kvars ) THEN
+               CALL ctl_stop( 'Feedback format error: ', &
+                  &           ' unexpected number of vars in feedback file' )
+            ENDIF
+
             IF ( ldmod .AND. ( inpfiles(jj)%nadd == 0 ) ) THEN
                CALL ctl_stop( 'Model not in input data' )
@@ -188,11 +194,15 @@
 
             IF ( jj == 1 ) THEN
-               ALLOCATE( clvars( inpfiles(jj)%nvar ) )
+               ALLOCATE( clvarsin( inpfiles(jj)%nvar ) )
                DO ji = 1, inpfiles(jj)%nvar
-                 clvars(ji) = inpfiles(jj)%cname(ji)
+                 clvarsin(ji) = inpfiles(jj)%cname(ji)
+                 IF ( clvarsin(ji) /= cdvars(ji) ) THEN
+                    CALL ctl_stop( 'Feedback file variables do not match', &
+                        &           ' expected variable names for this type' )
+                 ENDIF
                END DO
             ELSE
                DO ji = 1, inpfiles(jj)%nvar
-                  IF ( inpfiles(jj)%cname(ji) /= clvars(ji) ) THEN
+                  IF ( inpfiles(jj)%cname(ji) /= clvarsin(ji) ) THEN
                      CALL ctl_stop( 'Feedback file variables not consistent', &
                         &           ' with previous files for this type' )
@@ -365,5 +375,5 @@
 
       iobs = 0
-      surfdata%cvars(:)  = clvars(:)
+      surfdata%cvars(:)  = clvarsin(:)
       IF ( ldmod .AND. ( TRIM( surfdata%cvars(1) ) == 'SLA' ) ) THEN
          surfdata%cext(1) = 'SSH'
@@ -510,5 +520,5 @@
       ! Deallocate temporary data
       !-----------------------------------------------------------------------
-      DEALLOCATE( ifileidx, isurfidx, zdat, clvars )
+      DEALLOCATE( ifileidx, isurfidx, zdat, clvarsin )
 
       !-----------------------------------------------------------------------
Index: branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90
===================================================================
--- branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90	(revision 11470)
+++ branches/UKMO/dev_r5518_obs_oper_update_SlaAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90	(revision 11863)
@@ -541,5 +541,5 @@
          clgrid     = 'T'
          
-      CASE('SLCHLTOT','LOGCHL','LogChl','logchl')
+      CASE('SLCHLTOT')
 
          clfiletype = 'slchltotfb'
@@ -625,5 +625,12 @@
          clgrid     = 'T'
 
-      CASE('SFCO2','FCO2','fCO2','fco2')
+      CASE('SKD490')
+
+         clfiletype = 'skd490fb'
+         cllongname = 'Surface attenuation coefficient of downwelling radiation at 490 nm'
+         clunits    = 'm-1'
+         clgrid     = 'T'
+
+      CASE('SFCO2')
 
          clfiletype = 'sfco2fb'
