Changeset 11253


Ignore:
Timestamp:
2019-07-11T15:45:58+02:00 (13 months ago)
Author:
dford
Message:

Add Kd490 obs operator.

Location:
branches/UKMO/dev_r5518_obs_oper_update_kd490/NEMOGCM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_kd490/NEMOGCM/CONFIG/SHARED/namelist_ref

    r9306 r11253  
    12131213   ln_slphynon = .false.            ! Logical switch for surface non-diatom log10(phytoplankton carbon) obs 
    12141214   ln_sspm     = .false.            ! Logical switch for surface suspended particulate matter obs 
     1215   ln_skd490   = .false.            ! Logical switch for surface attenuation coefficient of downwelling radiation at 490 nm 
    12151216   ln_sfco2    = .false.            ! Logical switch for surface fugacity         of carbon dioxide obs 
    12161217   ln_spco2    = .false.            ! Logical switch for surface partial pressure of carbon dioxide obs 
     
    12561257   cn_slphynonfbfiles = 'slphynon_01.nc' ! Surface non-diatom log10(phytoplankton carbon) obs file names 
    12571258   cn_sspmfbfiles     = 'sspm_01.nc'     ! Surface suspended particulate matter obs file names 
     1259   cn_skd490fbfiles   = 'skd490_01.nc'   ! Surface Kd490 obs file names 
    12581260   cn_sfco2fbfiles    = 'sfco2_01.nc'    ! Surface fugacity         of carbon dioxide obs file names 
    12591261   cn_spco2fbfiles    = 'spco2_01.nc'    ! Surface partial pressure of carbon dioxide obs file names 
  • branches/UKMO/dev_r5518_obs_oper_update_kd490/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r11235 r11253  
    165165         & cn_slphynonfbfiles, & ! Surface non-diatom log10(phytoplankton carbon) input filenames 
    166166         & cn_sspmfbfiles,     & ! Surface suspended particulate matter input filenames 
     167         & cn_skd490fbfiles,   & ! Surface Kd490 input filenames 
    167168         & cn_sfco2fbfiles,    & ! Surface fugacity         of carbon dioxide input filenames 
    168169         & cn_spco2fbfiles,    & ! Surface partial pressure of carbon dioxide input filenames 
     
    201202      LOGICAL :: ln_slphynon     ! Logical switch for surface non-diatom log10(phytoplankton carbon) obs 
    202203      LOGICAL :: ln_sspm         ! Logical switch for surface suspended particulate matter obs 
     204      LOGICAL :: ln_skd490       ! Logical switch for surface Kd490 
    203205      LOGICAL :: ln_sfco2        ! Logical switch for surface fugacity         of carbon dioxide obs 
    204206      LOGICAL :: ln_spco2        ! Logical switch for surface partial pressure of carbon dioxide obs 
     
    248250         &            ln_slphytot, ln_slphydia, ln_slphynon,          & 
    249251         &            ln_sspm,     ln_sfco2,    ln_spco2,             & 
     252         &            ln_skd490,                                      & 
    250253         &            ln_plchltot, ln_pchltot,  ln_pno3,              & 
    251254         &            ln_psi4,     ln_ppo4,     ln_pdic,              & 
     
    266269         &            cn_slphytotfbfiles, cn_slphydiafbfiles,         & 
    267270         &            cn_slphynonfbfiles, cn_sspmfbfiles,             & 
     271         &            cn_skd490fbfiles,                               & 
    268272         &            cn_sfco2fbfiles, cn_spco2fbfiles,               & 
    269273         &            cn_plchltotfbfiles, cn_pchltotfbfiles,          & 
     
    308312      cn_slphynonfbfiles(:) = '' 
    309313      cn_sspmfbfiles(:)     = '' 
     314      cn_skd490fbfiles(:)   = '' 
    310315      cn_sfco2fbfiles(:)    = '' 
    311316      cn_spco2fbfiles(:)    = '' 
     
    370375         WRITE(numout,*) '             Logical switch for surface non-diatom log(phyC) obs ln_slphynon = ', ln_slphynon 
    371376         WRITE(numout,*) '             Logical switch for surface SPM observations             ln_sspm = ', ln_sspm 
     377         WRITE(numout,*) '             Logical switch for surface Kd490 observations         ln_skd490 = ', ln_skd490 
    372378         WRITE(numout,*) '             Logical switch for surface fCO2 observations           ln_sfco2 = ', ln_sfco2 
    373379         WRITE(numout,*) '             Logical switch for surface pCO2 observations           ln_spco2 = ', ln_spco2 
     
    428434         &                  ln_slchlmic, ln_slchlnan, ln_slchlpic, ln_schltot,  & 
    429435         &                  ln_slphytot, ln_slphydia, ln_slphynon, ln_sspm,     & 
    430          &                  ln_sfco2,    ln_spco2 /) ) 
     436         &                  ln_skd490,   ln_sfco2,    ln_spco2 /) ) 
    431437 
    432438      IF ( nproftypes == 0 .AND. nsurftypes == 0 ) THEN 
     
    599605            cobstypessurf(jtype) = 'sspm' 
    600606            clsurffiles(jtype,:) = cn_sspmfbfiles 
     607         ENDIF 
     608         IF (ln_skd490) THEN 
     609            jtype = jtype + 1 
     610            cobstypessurf(jtype) = 'skd490' 
     611            clsurffiles(jtype,:) = cn_skd490fbfiles 
    601612         ENDIF 
    602613         IF (ln_sfco2) THEN 
     
    938949#if defined key_fabm 
    939950      REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
    940          & pco2_3d                 ! 3D pCO2 from FABM 
     951         & fabm_3d                 ! 3D variable from FABM 
    941952#endif 
    942953 
     
    11771188         CALL wrk_alloc( jpi, jpj, zsurfmask ) 
    11781189#if defined key_fabm 
    1179          CALL wrk_alloc( jpi, jpj, jpk, pco2_3d ) 
     1190         CALL wrk_alloc( jpi, jpj, jpk, fabm_3d ) 
    11801191#endif 
    11811192 
     
    14071418#endif 
    14081419 
     1420            CASE('skd490') 
     1421#if defined key_hadocc 
     1422               CALL ctl_stop( ' Trying to run skd490 observation operator', & 
     1423                  &           ' but HadOCC does not explicitly simulate Kd490' ) 
     1424#elif defined key_medusa 
     1425               CALL ctl_stop( ' Trying to run skd490 observation operator', & 
     1426                  &           ' but MEDUSA does not explicitly simulate Kd490' ) 
     1427#elif defined key_fabm 
     1428               ! light_xEPS diagnostic variable 
     1429               fabm_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_xeps) 
     1430               zsurfvar(:,:) = fabm_3d(:,:,1) 
     1431#else 
     1432               CALL ctl_stop( ' Trying to run skd490 observation operator', & 
     1433                  &           ' but no biogeochemical model appears to have been defined' ) 
     1434#endif 
     1435 
    14091436            CASE('sfco2') 
    14101437#if defined key_hadocc 
     
    14211448#elif defined key_fabm 
    14221449               ! First, get pCO2 from FABM 
    1423                pco2_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc) 
    1424                zsurfvar(:,:) = pco2_3d(:,:,1) 
     1450               fabm_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc) 
     1451               zsurfvar(:,:) = fabm_3d(:,:,1) 
    14251452               ! Now, convert pCO2 to fCO2, based on SST in K. This follows the standard methodology of: 
    14261453               ! Pierrot et al. (2009), Recommendations for autonomous underway pCO2 measuring systems 
     
    14601487               zsurfvar(:,:) = f2_pco2w(:,:) 
    14611488#elif defined key_fabm 
    1462                pco2_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc) 
    1463                zsurfvar(:,:) = pco2_3d(:,:,1) 
     1489               fabm_3d(:,:,:) = fabm_get_interior_diagnostic_data(model, jp_fabm_o3pc) 
     1490               zsurfvar(:,:) = fabm_3d(:,:,1) 
    14641491#else 
    14651492               CALL ctl_stop( ' Trying to run spco2 observation operator', & 
     
    14951522         CALL wrk_dealloc( jpi, jpj, zsurfmask ) 
    14961523#if defined key_fabm 
    1497          CALL wrk_dealloc( jpi, jpj, jpk, pco2_3d ) 
     1524         CALL wrk_dealloc( jpi, jpj, jpk, fabm_3d ) 
    14981525#endif 
    14991526 
  • branches/UKMO/dev_r5518_obs_oper_update_kd490/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90

    r9308 r11253  
    582582         cllongname = 'Surface suspended particulate matter' 
    583583         clunits    = 'g/m3' 
     584         clgrid     = 'T' 
     585 
     586      CASE('SKD490') 
     587 
     588         clfiletype = 'skd490fb' 
     589         cllongname = 'Surface attenuation coefficient of downwelling radiation at 490 nm' 
     590         clunits    = 'm-1' 
    584591         clgrid     = 'T' 
    585592 
Note: See TracChangeset for help on using the changeset viewer.