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 8687 for branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90 – NEMO

Ignore:
Timestamp:
2017-11-09T18:28:30+01:00 (6 years ago)
Author:
dford
Message:

Initial (as yet untested) implementation of additional surface BGC types.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90

    r8223 r8687  
    8383      TYPE(obfbdata) :: fbdata 
    8484      CHARACTER(LEN=40) :: clfname 
    85       CHARACTER(LEN=10) :: clfiletype 
     85      CHARACTER(LEN=27) :: clfiletype 
    8686      INTEGER :: ilevel 
    8787      INTEGER :: jvar 
     
    320320      TYPE(obfbdata) :: fbdata 
    321321      CHARACTER(LEN=40) :: clfname         ! netCDF filename 
    322       CHARACTER(LEN=10) :: clfiletype 
     322      CHARACTER(LEN=27) :: clfiletype 
    323323      CHARACTER(LEN=12), PARAMETER :: cpname = 'obs_wri_surf' 
    324324      INTEGER :: jo 
     
    441441         END DO 
    442442 
    443       CASE('LOGCHL','LogChl','logchl') 
    444  
    445          CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
    446             &                 1 + iadd, iext, .TRUE. ) 
    447  
    448          clfiletype = 'logchlfb' 
    449          fbdata%cname(1)      = surfdata%cvars(1) 
    450          fbdata%coblong(1)    = 'logchl concentration' 
     443      CASE('SURF_LOGCHL_TOTAL','LOGCHL','LogChl','logchl') 
     444 
     445         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     446            &                 1 + iadd, iext, .TRUE. ) 
     447 
     448         clfiletype = 'surf_logchl_totalfb' 
     449         fbdata%cname(1)      = surfdata%cvars(1) 
     450         fbdata%coblong(1)    = 'Surface total log10(chlorophyll)' 
     451         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     452         DO je = 1, iext 
     453            fbdata%cextname(je) = pext%cdname(je) 
     454            fbdata%cextlong(je) = pext%cdlong(je,1) 
     455            fbdata%cextunit(je) = pext%cdunit(je,1) 
     456         END DO 
     457         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     458         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     459         fbdata%cgrid(1)      = 'T' 
     460         DO ja = 1, iadd 
     461            fbdata%caddname(1+ja) = padd%cdname(ja) 
     462            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     463            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     464         END DO 
     465 
     466      CASE('SURF_LOGCHL_DIAT') 
     467 
     468         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     469            &                 1 + iadd, iext, .TRUE. ) 
     470 
     471         clfiletype = 'surf_logchl_diatfb' 
     472         fbdata%cname(1)      = surfdata%cvars(1) 
     473         fbdata%coblong(1)    = 'Surface diatom log10(chlorophyll)' 
     474         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     475         DO je = 1, iext 
     476            fbdata%cextname(je) = pext%cdname(je) 
     477            fbdata%cextlong(je) = pext%cdlong(je,1) 
     478            fbdata%cextunit(je) = pext%cdunit(je,1) 
     479         END DO 
     480         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     481         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     482         fbdata%cgrid(1)      = 'T' 
     483         DO ja = 1, iadd 
     484            fbdata%caddname(1+ja) = padd%cdname(ja) 
     485            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     486            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     487         END DO 
     488 
     489      CASE('SURF_LOGCHL_NONDIAT') 
     490 
     491         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     492            &                 1 + iadd, iext, .TRUE. ) 
     493 
     494         clfiletype = 'surf_logchl_nondiatfb' 
     495         fbdata%cname(1)      = surfdata%cvars(1) 
     496         fbdata%coblong(1)    = 'Surface non-diatom log10(chlorophyll)' 
     497         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     498         DO je = 1, iext 
     499            fbdata%cextname(je) = pext%cdname(je) 
     500            fbdata%cextlong(je) = pext%cdlong(je,1) 
     501            fbdata%cextunit(je) = pext%cdunit(je,1) 
     502         END DO 
     503         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     504         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     505         fbdata%cgrid(1)      = 'T' 
     506         DO ja = 1, iadd 
     507            fbdata%caddname(1+ja) = padd%cdname(ja) 
     508            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     509            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     510         END DO 
     511 
     512      CASE('SURF_LOGCHL_DINO') 
     513 
     514         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     515            &                 1 + iadd, iext, .TRUE. ) 
     516 
     517         clfiletype = 'surf_logchl_dinofb' 
     518         fbdata%cname(1)      = surfdata%cvars(1) 
     519         fbdata%coblong(1)    = 'Surface dinoflagellate log10(chlorophyll)' 
     520         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     521         DO je = 1, iext 
     522            fbdata%cextname(je) = pext%cdname(je) 
     523            fbdata%cextlong(je) = pext%cdlong(je,1) 
     524            fbdata%cextunit(je) = pext%cdunit(je,1) 
     525         END DO 
     526         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     527         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     528         fbdata%cgrid(1)      = 'T' 
     529         DO ja = 1, iadd 
     530            fbdata%caddname(1+ja) = padd%cdname(ja) 
     531            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     532            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     533         END DO 
     534 
     535      CASE('SURF_LOGCHL_MICRO') 
     536 
     537         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     538            &                 1 + iadd, iext, .TRUE. ) 
     539 
     540         clfiletype = 'surf_logchl_microfb' 
     541         fbdata%cname(1)      = surfdata%cvars(1) 
     542         fbdata%coblong(1)    = 'Surface microphytoplankton log10(chlorophyll)' 
     543         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     544         DO je = 1, iext 
     545            fbdata%cextname(je) = pext%cdname(je) 
     546            fbdata%cextlong(je) = pext%cdlong(je,1) 
     547            fbdata%cextunit(je) = pext%cdunit(je,1) 
     548         END DO 
     549         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     550         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     551         fbdata%cgrid(1)      = 'T' 
     552         DO ja = 1, iadd 
     553            fbdata%caddname(1+ja) = padd%cdname(ja) 
     554            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     555            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     556         END DO 
     557 
     558      CASE('SURF_LOGCHL_NANO') 
     559 
     560         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     561            &                 1 + iadd, iext, .TRUE. ) 
     562 
     563         clfiletype = 'surf_logchl_nanofb' 
     564         fbdata%cname(1)      = surfdata%cvars(1) 
     565         fbdata%coblong(1)    = 'Surface nanophytoplankton log10(chlorophyll)' 
     566         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     567         DO je = 1, iext 
     568            fbdata%cextname(je) = pext%cdname(je) 
     569            fbdata%cextlong(je) = pext%cdlong(je,1) 
     570            fbdata%cextunit(je) = pext%cdunit(je,1) 
     571         END DO 
     572         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     573         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     574         fbdata%cgrid(1)      = 'T' 
     575         DO ja = 1, iadd 
     576            fbdata%caddname(1+ja) = padd%cdname(ja) 
     577            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     578            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     579         END DO 
     580 
     581      CASE('SURF_LOGCHL_PICO') 
     582 
     583         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     584            &                 1 + iadd, iext, .TRUE. ) 
     585 
     586         clfiletype = 'surf_logchl_picofb' 
     587         fbdata%cname(1)      = surfdata%cvars(1) 
     588         fbdata%coblong(1)    = 'Surface picophytoplankton log10(chlorophyll)' 
     589         fbdata%cobunit(1)    = 'log10(mg/m3)' 
     590         DO je = 1, iext 
     591            fbdata%cextname(je) = pext%cdname(je) 
     592            fbdata%cextlong(je) = pext%cdlong(je,1) 
     593            fbdata%cextunit(je) = pext%cdunit(je,1) 
     594         END DO 
     595         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
     596         fbdata%caddunit(1,1) = 'log10(mg/m3)' 
     597         fbdata%cgrid(1)      = 'T' 
     598         DO ja = 1, iadd 
     599            fbdata%caddname(1+ja) = padd%cdname(ja) 
     600            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     601            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     602         END DO 
     603 
     604      CASE('SURF_CHL_TOTAL') 
     605 
     606         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     607            &                 1 + iadd, iext, .TRUE. ) 
     608 
     609         clfiletype = 'surf_chl_totalfb' 
     610         fbdata%cname(1)      = surfdata%cvars(1) 
     611         fbdata%coblong(1)    = 'Surface total chlorophyll' 
    451612         fbdata%cobunit(1)    = 'mg/m3' 
    452613         DO je = 1, iext 
     
    455616            fbdata%cextunit(je) = pext%cdunit(je,1) 
    456617         END DO 
    457          fbdata%caddlong(1,1) = 'Model interpolated LOGCHL' 
     618         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
    458619         fbdata%caddunit(1,1) = 'mg/m3' 
    459620         fbdata%cgrid(1)      = 'T' 
     
    464625         END DO 
    465626 
    466       CASE('SPM','Spm','spm') 
    467  
    468          CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
    469             &                 1 + iadd, iext, .TRUE. ) 
    470  
    471          clfiletype = 'spmfb' 
    472          fbdata%cname(1)      = surfdata%cvars(1) 
    473          fbdata%coblong(1)    = 'spm' 
     627      CASE('SURF_SPM') 
     628 
     629         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     630            &                 1 + iadd, iext, .TRUE. ) 
     631 
     632         clfiletype = 'surf_spmfb' 
     633         fbdata%cname(1)      = surfdata%cvars(1) 
     634         fbdata%coblong(1)    = 'Surface suspended particulate matter' 
    474635         fbdata%cobunit(1)    = 'g/m3' 
    475636         DO je = 1, iext 
     
    478639            fbdata%cextunit(je) = pext%cdunit(je,1) 
    479640         END DO 
    480          fbdata%caddlong(1,1) = 'Model interpolated spm' 
     641         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
    481642         fbdata%caddunit(1,1) = 'g/m3' 
    482643         fbdata%cgrid(1)      = 'T' 
     
    487648         END DO 
    488649 
    489       CASE('FCO2','fCO2','fco2') 
    490  
    491          CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
    492             &                 1 + iadd, iext, .TRUE. ) 
    493  
    494          clfiletype = 'fco2fb' 
    495          fbdata%cname(1)      = surfdata%cvars(1) 
    496          fbdata%coblong(1)    = 'fco2' 
     650      CASE('SURF_FCO2','FCO2','fCO2','fco2') 
     651 
     652         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     653            &                 1 + iadd, iext, .TRUE. ) 
     654 
     655         clfiletype = 'surf_fco2fb' 
     656         fbdata%cname(1)      = surfdata%cvars(1) 
     657         fbdata%coblong(1)    = 'Surface fugacity of carbon dioxide' 
    497658         fbdata%cobunit(1)    = 'uatm' 
    498659         DO je = 1, iext 
     
    501662            fbdata%cextunit(je) = pext%cdunit(je,1) 
    502663         END DO 
    503          fbdata%caddlong(1,1) = 'Model interpolated fco2' 
     664         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
    504665         fbdata%caddunit(1,1) = 'uatm' 
    505666         fbdata%cgrid(1)      = 'T' 
     
    510671         END DO 
    511672 
    512       CASE('PCO2','pCO2','pco2') 
    513  
    514          CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
    515             &                 1 + iadd, iext, .TRUE. ) 
    516  
    517          clfiletype = 'pco2fb' 
    518          fbdata%cname(1)      = surfdata%cvars(1) 
    519          fbdata%coblong(1)    = 'pco2' 
     673      CASE('SURF_PCO2') 
     674 
     675         CALL alloc_obfbdata( fbdata, 1, surfdata%nsurf, 1, & 
     676            &                 1 + iadd, iext, .TRUE. ) 
     677 
     678         clfiletype = 'surf_pco2fb' 
     679         fbdata%cname(1)      = surfdata%cvars(1) 
     680         fbdata%coblong(1)    = 'Surface partial pressure of carbon dioxide' 
    520681         fbdata%cobunit(1)    = 'uatm' 
    521682         DO je = 1, iext 
     
    524685            fbdata%cextunit(je) = pext%cdunit(je,1) 
    525686         END DO 
    526          fbdata%caddlong(1,1) = 'Model interpolated pco2' 
     687         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(surfdata%cvars(1)) 
    527688         fbdata%caddunit(1,1) = 'uatm' 
    528689         fbdata%cgrid(1)      = 'T' 
Note: See TracChangeset for help on using the changeset viewer.