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

Ignore:
Timestamp:
2018-01-05T14:29:29+01:00 (6 years ago)
Author:
dford
Message:

Initial implementation of 3D biogeochemistry observation operator.

File:
1 edited

Legend:

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

    r9016 r9186  
    8484      CHARACTER(LEN=40) :: clfname 
    8585      CHARACTER(LEN=10) :: clfiletype 
     86      CHARACTER(LEN=ilenlong) :: cllongname  ! Long name of variable 
     87      CHARACTER(LEN=ilenunit) :: clunits     ! Units of variable 
     88      CHARACTER(LEN=ilengrid) :: clgrid      ! Grid of variable 
    8689      INTEGER :: ilevel 
    8790      INTEGER :: jvar 
     
    111114      ! Find maximum level 
    112115      ilevel = 0 
    113       DO jvar = 1, 2 
     116      DO jvar = 1, profdata%nvar 
    114117         ilevel = MAX( ilevel, MAXVAL( profdata%var(jvar)%nvlidx(:) ) ) 
    115118      END DO 
     
    175178         END DO 
    176179 
     180      CASE('PLCHLTOT') 
     181 
     182         clfiletype = 'plchltotfb' 
     183         cllongname = 'log10(chlorophyll concentration)' 
     184         clunits    = 'log10(mg/m3)' 
     185         clgrid     = 'T' 
     186 
     187      CASE('PCHLTOT') 
     188 
     189         clfiletype = 'pchltotfb' 
     190         cllongname = 'chlorophyll concentration' 
     191         clunits    = 'mg/m3' 
     192         clgrid     = 'T' 
     193 
     194      CASE('PNO3') 
     195 
     196         clfiletype = 'pno3fb' 
     197         cllongname = 'nitrate' 
     198         clunits    = 'mmol/m3' 
     199         clgrid     = 'T' 
     200 
     201      CASE('PSI4') 
     202 
     203         clfiletype = 'psi4fb' 
     204         cllongname = 'silicate' 
     205         clunits    = 'mmol/m3' 
     206         clgrid     = 'T' 
     207 
     208      CASE('PPO4') 
     209 
     210         clfiletype = 'ppo4fb' 
     211         cllongname = 'phosphate' 
     212         clunits    = 'mmol/m3' 
     213         clgrid     = 'T' 
     214 
     215      CASE('PDIC') 
     216 
     217         clfiletype = 'pdicfb' 
     218         cllongname = 'dissolved inorganic carbon' 
     219         clunits    = 'mmol/m3' 
     220         clgrid     = 'T' 
     221 
     222      CASE('PALK') 
     223 
     224         clfiletype = 'palkfb' 
     225         cllongname = 'alkalinity' 
     226         clunits    = 'meq/m3' 
     227         clgrid     = 'T' 
     228 
     229      CASE('PPH') 
     230 
     231         clfiletype = 'pphfb' 
     232         cllongname = 'pH' 
     233         clunits    = '-' 
     234         clgrid     = 'T' 
     235 
     236      CASE('PO2') 
     237 
     238         clfiletype = 'po2fb' 
     239         cllongname = 'dissolved oxygen' 
     240         clunits    = 'mmol/m3' 
     241         clgrid     = 'T' 
     242 
    177243      END SELECT 
     244       
     245      IF ( ( TRIM(profdata%cvars(1)) /= 'POTM' ) .AND. & 
     246         & ( TRIM(profdata%cvars(1)) /= 'UVEL' ) ) THEN 
     247         CALL alloc_obfbdata( fbdata, 1, profdata%nprof, ilevel, & 
     248            &                 1 + iadd, iext, .TRUE. ) 
     249         fbdata%cname(1)      = profdata%cvars(1) 
     250         fbdata%coblong(1)    = cllongname 
     251         fbdata%cobunit(1)    = clunits 
     252         fbdata%caddlong(1,1) = 'Model interpolated ' // TRIM(cllongname) 
     253         fbdata%caddunit(1,1) = clunits 
     254         fbdata%cgrid(:)      = clgrid 
     255         DO je = 1, iext 
     256            fbdata%cextname(je) = pext%cdname(je) 
     257            fbdata%cextlong(je) = pext%cdlong(je,1) 
     258            fbdata%cextunit(je) = pext%cdunit(je,1) 
     259         END DO 
     260         DO ja = 1, iadd 
     261            fbdata%caddname(1+ja) = padd%cdname(ja) 
     262            fbdata%caddlong(1+ja,1) = padd%cdlong(ja,1) 
     263            fbdata%caddunit(1+ja,1) = padd%cdunit(ja,1) 
     264         END DO 
     265      ENDIF 
    178266 
    179267      fbdata%caddname(1)   = 'Hx' 
     
    228316            &           krefdate = 19500101 ) 
    229317         ! Reform the profiles arrays for output 
    230          DO jvar = 1, 2 
     318         DO jvar = 1, profdata%nvar 
    231319            DO jk = profdata%npvsta(jo,jvar), profdata%npvend(jo,jvar) 
    232320               ik = profdata%var(jvar)%nvlidx(jk) 
Note: See TracChangeset for help on using the changeset viewer.