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 13316 for branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/TOP_SRC – NEMO

Ignore:
Timestamp:
2020-07-16T19:08:23+02:00 (4 years ago)
Author:
dford
Message:

Allow nitrogen balancing when assimilating 3D chlorophyll data. See Met Office utils ticket 346.

Location:
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/TOP_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90

    r10302 r13316  
    3535      USE bio_medusa_mod 
    3636      USE par_oce,           ONLY: jpi, jpj, jpk 
    37       USE sms_medusa,        ONLY: jdms, pgrow_avg, ploss_avg, phyt_avg, mld_max 
     37      USE sms_medusa,        ONLY: jdms, pgrow_avg, ploss_avg, phyt_avg, mld_max, & 
     38         &                         pgrow_avg_3d, ploss_avg_3d, phyt_avg_3d 
    3839      USE trc,               ONLY: ln_diatrc, med_diag, nittrc000  
    3940      USE in_out_manager,    ONLY: lwp, numout 
     
    199200      ploss_avg(:,:) = 0.0 
    200201      phyt_avg(:,:)  = 0.0 
     202      pgrow_avg_3d(:,:,:) = 0.0 
     203      ploss_avg_3d(:,:,:) = 0.0 
     204      phyt_avg_3d(:,:,:)  = 0.0 
    201205      IF( kt == nittrc000 ) THEN 
    202206         mld_max(:,:) = 0.0 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/TOP_SRC/MEDUSA/plankton.F90

    r10302 r13316  
    4646                                   ln_foam_medusa,                         & 
    4747                                   pgrow_avg, ploss_avg, phyt_avg,         & 
     48                                   pgrow_avg_3d, ploss_avg_3d, phyt_avg_3d, & 
    4849                                   xkphd, xkphn, xkzme, xkzmi,             & 
    4950                                   xmetapd, xmetapn, xmetazme, xmetazmi,   & 
     
    229230                                     ((zphn(ji,jj) + zphd(ji,jj)) *       & 
    230231                                      fse3t(ji,jj,jk) * fq0) 
     232                  !! 
     233                  pgrow_avg_3d(ji,jj,jk) = (fprn(ji,jj) * zphn(ji,jj)) +  & 
     234                                           (fprd(ji,jj) * zphd(ji,jj)) 
     235                  ploss_avg_3d(ji,jj,jk) = fgmepd(ji,jj) + fdpd(ji,jj) +  & 
     236                                           fdpd2(ji,jj)                +  & 
     237                                           fgmepn(ji,jj) + fdpn(ji,jj) +  & 
     238                                           fdpn2(ji,jj)  + fgmipn(ji,jj) 
     239                  phyt_avg_3d(ji,jj,jk)  = zphn(ji,jj) + zphd(ji,jj) 
    231240               ENDIF 
    232241            ENDDO 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90

    r10302 r13316  
    362362   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ploss_avg  !: Mixed layer average phytoplankton loss 
    363363   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: phyt_avg   !: Mixed layer average phytoplankton 
     364   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: pgrow_avg_3d  !: Mixed layer average phytoplankton growth 
     365   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ploss_avg_3d  !: Mixed layer average phytoplankton loss 
     366   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: phyt_avg_3d   !: Mixed layer average phytoplankton 
    364367   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: mld_max    !: Maximum mixed layer depth 
    365368!! 
     
    438441      !* Fields for ocean colour data assimilation 
    439442      ALLOCATE( pgrow_avg(jpi,jpj)   , ploss_avg(jpi,jpj)   ,       & 
     443         &      pgrow_avg_3d(jpi,jpj,jpk) , ploss_avg_3d(jpi,jpj,jpk) , & 
     444         &      phyt_avg_3d(jpi,jpj,jpk)  ,                         & 
    440445         &      phyt_avg(jpi,jpj)    , mld_max(jpi,jpj)     ,    STAT=ierr(9) ) 
    441446#endif 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/TOP_SRC/trcrst.F90

    r10302 r13316  
    368368            mld_max(:,:)   = 0.0 
    369369         ENDIF 
     370         IF( iom_varid( numrtr, 'pgrow_avg_3d', ldstop = .FALSE. ) > 0 ) THEN 
     371            IF(lwp) WRITE(numout,*) ' MEDUSA pgrow_avg present - reading in ...' 
     372            CALL iom_get( numrtr, jpdom_autoglo, 'pgrow_avg_3d',  pgrow_avg_3d(:,:,:)  ) 
     373            CALL iom_get( numrtr, jpdom_autoglo, 'ploss_avg_3d',  ploss_avg_3d(:,:,:)  ) 
     374            CALL iom_get( numrtr, jpdom_autoglo, 'phyt_avg_3d',   phyt_avg_3d(:,:,:)   ) 
     375         ELSE 
     376            IF(lwp) WRITE(numout,*) ' MEDUSA pgrow_avg_3d absent - setting to zero ...' 
     377            pgrow_avg_3d(:,:,:) = 0.0 
     378            ploss_avg_3d(:,:,:) = 0.0 
     379            phyt_avg_3d(:,:,:)  = 0.0 
     380         ENDIF 
    370381      ENDIF 
    371382 
     
    553564         CALL iom_rstput( kt, nitrst, numrtw, 'phyt_avg',  phyt_avg(:,:)  ) 
    554565         CALL iom_rstput( kt, nitrst, numrtw, 'mld_max',   mld_max(:,:)   ) 
     566         CALL iom_rstput( kt, nitrst, numrtw, 'pgrow_avg_3d', pgrow_avg_3d(:,:,:) ) 
     567         CALL iom_rstput( kt, nitrst, numrtw, 'ploss_avg_3d', ploss_avg_3d(:,:,:) ) 
     568         CALL iom_rstput( kt, nitrst, numrtw, 'phyt_avg_3d',  phyt_avg_3d(:,:,:)  ) 
    555569      ENDIF 
    556570!! 
Note: See TracChangeset for help on using the changeset viewer.