New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 9229 – NEMO

Changeset 9229


Ignore:
Timestamp:
2018-01-15T13:00:27+01:00 (6 years ago)
Author:
dford
Message:

Add options for phytoplankton carbon observations.

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

Legend:

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

    r9186 r9229  
    12091209   ln_slchlpic = .false.            ! Logical switch for surface picophytoplankton  log10(chlorophyll) obs 
    12101210   ln_schltot  = .false.            ! Logical switch for surface total              chlorophyll        obs 
     1211   ln_slphytot = .false.            ! Logical switch for surface total      log10(phytoplankton carbon) obs 
     1212   ln_slphydia = .false.            ! Logical switch for surface diatom     log10(phytoplankton carbon) obs 
     1213   ln_slphynon = .false.            ! Logical switch for surface non-diatom log10(phytoplankton carbon) obs 
    12111214   ln_sspm     = .false.            ! Logical switch for surface suspended particulate matter obs 
    12121215   ln_sfco2    = .false.            ! Logical switch for surface fugacity         of carbon dioxide obs 
     
    12491252   cn_slchlpicfbfiles = 'slchlpic_01.nc' ! Surface picophytoplankton  log10(chlorophyll) obs file names 
    12501253   cn_schltotfbfiles  = 'schltot_01.nc'  ! Surface total              chlorophyll        obs file names 
     1254   cn_slphytotfbfiles = 'slphytot_01.nc' ! Surface total      log10(phytoplankton carbon) obs file names 
     1255   cn_slphydiafbfiles = 'slphydia_01.nc' ! Surface diatom     log10(phytoplankton carbon) obs file names 
     1256   cn_slphynonfbfiles = 'slphynon_01.nc' ! Surface non-diatom log10(phytoplankton carbon) obs file names 
    12511257   cn_sspmfbfiles     = 'sspm_01.nc'     ! Surface suspended particulate matter obs file names 
    12521258   cn_sfco2fbfiles    = 'sfco2_01.nc'    ! Surface fugacity         of carbon dioxide obs file names 
  • branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r9211 r9229  
    161161         & cn_slchlpicfbfiles, & ! Surface picophytoplankton  log10(chlorophyll) input filenames 
    162162         & cn_schltotfbfiles,  & ! Surface total              chlorophyll        input filenames 
     163         & cn_slphytotfbfiles, & ! Surface total      log10(phytoplankton carbon) input filenames 
     164         & cn_slphydiafbfiles, & ! Surface diatom     log10(phytoplankton carbon) input filenames 
     165         & cn_slphynonfbfiles, & ! Surface non-diatom log10(phytoplankton carbon) input filenames 
    163166         & cn_sspmfbfiles,     & ! Surface suspended particulate matter input filenames 
    164167         & cn_sfco2fbfiles,    & ! Surface fugacity         of carbon dioxide input filenames 
     
    194197      LOGICAL :: ln_slchlpic     ! Logical switch for surface picophytoplankton  log10(chlorophyll) obs 
    195198      LOGICAL :: ln_schltot      ! Logical switch for surface total              chlorophyll        obs 
     199      LOGICAL :: ln_slphytot     ! Logical switch for surface total      log10(phytoplankton carbon) obs 
     200      LOGICAL :: ln_slphydia     ! Logical switch for surface diatom     log10(phytoplankton carbon) obs 
     201      LOGICAL :: ln_slphynon     ! Logical switch for surface non-diatom log10(phytoplankton carbon) obs 
    196202      LOGICAL :: ln_sspm         ! Logical switch for surface suspended particulate matter obs 
    197203      LOGICAL :: ln_sfco2        ! Logical switch for surface fugacity         of carbon dioxide obs 
     
    240246         &            ln_slchldin, ln_slchlmic, ln_slchlnan,          & 
    241247         &            ln_slchlpic, ln_schltot,                        & 
     248         &            ln_slphytot, ln_slphydia, ln_slphynon,          & 
    242249         &            ln_sspm,     ln_sfco2,    ln_spco2,             & 
    243250         &            ln_plchltot, ln_pchltot,  ln_pno3,              & 
     
    256263         &            cn_slchlnonfbfiles, cn_slchldinfbfiles,         & 
    257264         &            cn_slchlmicfbfiles, cn_slchlnanfbfiles,         & 
    258          &            cn_slchlpicfbfiles,                             & 
    259          &            cn_schltotfbfiles, cn_sspmfbfiles,              & 
     265         &            cn_slchlpicfbfiles, cn_schltotfbfiles,          & 
     266         &            cn_slphytotfbfiles, cn_slphydiafbfiles,         & 
     267         &            cn_slphynonfbfiles, cn_sspmfbfiles,             & 
    260268         &            cn_sfco2fbfiles, cn_spco2fbfiles,               & 
    261269         &            cn_plchltotfbfiles, cn_pchltotfbfiles,          & 
     
    296304      cn_slchlpicfbfiles(:) = '' 
    297305      cn_schltotfbfiles(:)  = '' 
     306      cn_slphytotfbfiles(:) = '' 
     307      cn_slphydiafbfiles(:) = '' 
     308      cn_slphynonfbfiles(:) = '' 
    298309      cn_sspmfbfiles(:)     = '' 
    299310      cn_sfco2fbfiles(:)    = '' 
     
    355366         WRITE(numout,*) '             Logical switch for surface pico logchl obs          ln_slchlpic = ', ln_slchlpic 
    356367         WRITE(numout,*) '             Logical switch for surface total chl obs             ln_schltot = ', ln_schltot 
     368         WRITE(numout,*) '             Logical switch for surface total log(phyC) obs      ln_slphytot = ', ln_slphytot 
     369         WRITE(numout,*) '             Logical switch for surface diatom log(phyC) obs     ln_slphydia = ', ln_slphydia 
     370         WRITE(numout,*) '             Logical switch for surface non-diatom log(phyC) obs ln_slphynon = ', ln_slphynon 
    357371         WRITE(numout,*) '             Logical switch for surface SPM observations             ln_sspm = ', ln_sspm 
    358372         WRITE(numout,*) '             Logical switch for surface fCO2 observations           ln_sfco2 = ', ln_sfco2 
     
    413427         &                  ln_slchltot, ln_slchldia, ln_slchlnon, ln_slchldin, & 
    414428         &                  ln_slchlmic, ln_slchlnan, ln_slchlpic, ln_schltot,  & 
    415          &                  ln_sspm,     ln_sfco2,    ln_spco2 /) ) 
     429         &                  ln_slphytot, ln_slphydia, ln_slphynon, ln_sspm,     & 
     430         &                  ln_sfco2,    ln_spco2 /) ) 
    416431 
    417432      IF ( nproftypes == 0 .AND. nsurftypes == 0 ) THEN 
     
    564579            cobstypessurf(jtype) = 'schltot' 
    565580            clsurffiles(jtype,:) = cn_schltotfbfiles 
     581         ENDIF 
     582         IF (ln_slphytot) THEN 
     583            jtype = jtype + 1 
     584            cobstypessurf(jtype) = 'slphytot' 
     585            clsurffiles(jtype,:) = cn_slphytotfbfiles 
     586         ENDIF 
     587         IF (ln_slphydia) THEN 
     588            jtype = jtype + 1 
     589            cobstypessurf(jtype) = 'slphydia' 
     590            clsurffiles(jtype,:) = cn_slphydiafbfiles 
     591         ENDIF 
     592         IF (ln_slphynon) THEN 
     593            jtype = jtype + 1 
     594            cobstypessurf(jtype) = 'slphynon' 
     595            clsurffiles(jtype,:) = cn_slphynonfbfiles 
    566596         ENDIF 
    567597         IF (ln_sspm) THEN 
     
    857887         & HADOCC_FILL_FLT 
    858888      USE par_hadocc 
     889      USE had_bgc_const, ONLY: c2n_p 
    859890#elif defined key_medusa && defined key_foam_medusa 
    860891      USE trc, ONLY :  &           ! MEDUSA variables 
    861892         & trn 
    862893      USE par_medusa 
     894      USE sms_medusa, ONLY: & 
     895         & xthetapn, & 
     896         & xthetapd 
    863897#if defined key_roam 
    864898      USE sms_medusa, ONLY: & 
     
    12881322#endif 
    12891323 
     1324            CASE('slphytot') 
     1325#if defined key_hadocc 
     1326               ! Surface phytoplankton nitrogen from HadOCC multiplied by C:N ratio 
     1327               zsurfvar(:,:) = trn(:,:,1,jp_had_phy) * c2n_p 
     1328#elif defined key_medusa && defined key_foam_medusa 
     1329               ! Add non-diatom and diatom surface phytoplankton nitrogen from MEDUSA 
     1330               ! multiplied by C:N ratio for each 
     1331               zsurfvar(:,:) = (trn(:,:,1,jpphn) * xthetapn) + (trn(:,:,1,jpphd) * xthetapd) 
     1332#elif defined key_fabm 
     1333               ! Add all surface phytoplankton carbon groups from ERSEM 
     1334               zsurfvar(:,:) = trn(:,:,1,jp_fabm_p1c) + trn(:,:,1,jp_fabm_p2c) + & 
     1335                  &            trn(:,:,1,jp_fabm_p3c) + trn(:,:,1,jp_fabm_p4c) 
     1336#else 
     1337               CALL ctl_stop( ' Trying to run slphytot observation operator', & 
     1338                  &           ' but no biogeochemical model appears to have been defined' ) 
     1339#endif 
     1340               llog10 = .TRUE. 
     1341 
     1342            CASE('slphydia') 
     1343#if defined key_hadocc 
     1344               CALL ctl_stop( ' Trying to run slphydia observation operator', & 
     1345                  &           ' but HadOCC does not explicitly simulate diatoms' ) 
     1346#elif defined key_medusa && defined key_foam_medusa 
     1347               ! Diatom surface phytoplankton nitrogen from MEDUSA multiplied by C:N ratio 
     1348               zsurfvar(:,:) = trn(:,:,1,jpphd) * xthetapd 
     1349#elif defined key_fabm 
     1350               ! Diatom surface phytoplankton carbon from ERSEM 
     1351               zsurfvar(:,:) = trn(:,:,1,jp_fabm_p1c) 
     1352#else 
     1353               CALL ctl_stop( ' Trying to run slphydia observation operator', & 
     1354                  &           ' but no biogeochemical model appears to have been defined' ) 
     1355#endif 
     1356               llog10 = .TRUE. 
     1357 
     1358            CASE('slphynon') 
     1359#if defined key_hadocc 
     1360               CALL ctl_stop( ' Trying to run slphynon observation operator', & 
     1361                  &           ' but HadOCC does not explicitly simulate non-diatoms' ) 
     1362#elif defined key_medusa && defined key_foam_medusa 
     1363               ! Non-diatom surface phytoplankton nitrogen from MEDUSA multiplied by C:N ratio 
     1364               zsurfvar(:,:) = trn(:,:,1,jpphn) * xthetapn 
     1365#elif defined key_fabm 
     1366               ! Add all non-diatom surface phytoplankton carbon groups from ERSEM 
     1367               zsurfvar(:,:) = trn(:,:,1,jp_fabm_p2c) + & 
     1368                  &            trn(:,:,1,jp_fabm_p3c) + trn(:,:,1,jp_fabm_p4c) 
     1369#else 
     1370               CALL ctl_stop( ' Trying to run slphynon observation operator', & 
     1371                  &           ' but no biogeochemical model appears to have been defined' ) 
     1372#endif 
     1373               llog10 = .TRUE. 
     1374 
    12901375            CASE('sspm') 
    12911376#if defined key_spm 
  • branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90

    r9186 r9229  
    541541         cllongname = 'Surface total chlorophyll' 
    542542         clunits    = 'mg/m3' 
     543         clgrid     = 'T' 
     544 
     545      CASE('SLPHYTOT') 
     546 
     547         clfiletype = 'slphytotfb' 
     548         cllongname = 'Surface total log10(phytoplankton carbon)' 
     549         clunits    = 'log10(mmolC/m3)' 
     550         clgrid     = 'T' 
     551 
     552      CASE('SLPHYDIA') 
     553 
     554         clfiletype = 'slphydiafb' 
     555         cllongname = 'Surface diatom log10(phytoplankton carbon)' 
     556         clunits    = 'log10(mmolC/m3)' 
     557         clgrid     = 'T' 
     558 
     559      CASE('SLPHYNON') 
     560 
     561         clfiletype = 'slphynonfb' 
     562         cllongname = 'Surface non-diatom log10(phytoplankton carbon)' 
     563         clunits    = 'log10(mmolC/m3)' 
    543564         clgrid     = 'T' 
    544565 
Note: See TracChangeset for help on using the changeset viewer.