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 8436 for branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90 – NEMO

Ignore:
Timestamp:
2017-08-14T15:22:09+02:00 (7 years ago)
Author:
dford
Message:

Implement initial version of surface chlorophyll assimilation for MEDUSA.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r8224 r8436  
    8080#  else 
    8181      USE trcco2_medusa 
     82#  if defined key_foam_medusa 
     83      USE mocsy_mainmod 
     84#  endif 
    8285#  endif 
    8386      USE trcoxy_medusa 
     
    581584      fslownflux(:,:) = 0.0 
    582585      fslowcflux(:,:) = 0.0 
     586 
     587# if defined key_foam_medusa 
     588      pgrow_avg(:,:) = 0.0 
     589      ploss_avg(:,:) = 0.0 
     590      phyt_avg(:,:)  = 0.0 
     591      IF( kt == nittrc000 ) THEN 
     592         mld_max(:,:) = 0.0 
     593      ENDIF 
     594# endif 
    583595 
    584596      !! 
     
    13471359      !! We want this to be start of month or if starting afresh from  
    13481360      !! climatology - marc 20/6/17 
     1361#if defined key_foam_medusa 
     1362      !! DAF (Aug 2017): For FOAM we want to run daily 
     1363      If ( (kt == nittrc000 .AND. .NOT.ln_rsttr) .OR.                        & 
     1364           (mod(kt*rdt,86400.) == rdt) ) THEN 
     1365#else 
    13491366      If ( (kt == nittrc000 .AND. .NOT.ln_rsttr) .OR.                        & 
    13501367           ((86400*mod(nn_date0,100) + mod(kt*rdt,2592000.)) == rdt) ) THEN 
     1368#endif 
    13511369         !!---------------------------------------------------------------------- 
    13521370         !! Calculate the carbonate chemistry for the whole ocean on the first 
     
    17951813                     iters, ' AT (', ji, ', ', jj, ', ', jk, ') AT ', kt 
    17961814                  endif 
     1815#     if defined key_foam_medusa 
     1816                  !! DAF (Aug 2017): calculate fCO2 for observation operator 
     1817                  CALL p2fCO2( f_pco2w, ztmp, f_pp0, 0.0, 1, f_fco2w ) 
     1818#     endif 
    17971819#   endif 
    17981820#  else 
     
    19321954                     fgco2(ji,jj) = f_co2flux * fthk * CO2flux_conv  !! mmol-C/m3/d -> kg-CO2/m2/s 
    19331955                  !! ENDIF 
     1956#   if defined key_foam_medusa 
     1957                  !! DAF (Aug 2017): Save pCO2 and fCO2 for observation operator 
     1958                  f2_pco2w(ji,jj) = f_pco2w 
     1959                  f2_fco2w(ji,jj) = f_pco2w 
     1960#   endif 
    19341961                  IF ( lk_iomput ) THEN 
    19351962                      IF( med_diag%ATM_PCO2%dgsave ) THEN 
     
    36033630               CALL flush(numout) 
    36043631 
     3632# if defined key_foam_medusa 
     3633               !!---------------------------------------------------------------------- 
     3634               !! Mixed layer averages for ocean colour assimilation 
     3635               !!---------------------------------------------------------------------- 
     3636               !! 
     3637               if (fdep1.le.hmld(ji,jj)) then 
     3638                  !! this level is entirely in the mixed layer 
     3639                  fq0 = 1.0 
     3640               elseif (fdep.ge.hmld(ji,jj)) then 
     3641                  !! this level is entirely below the mixed layer 
     3642                  fq0 = 0.0 
     3643               else 
     3644                  !! this level straddles the mixed layer 
     3645                  fq0 = (hmld(ji,jj) - fdep) / fthk 
     3646               endif 
     3647               !! 
     3648               pgrow_avg(ji,jj) = pgrow_avg(ji,jj) + ( & 
     3649                  ( (fprn * zphn) + (fprd * zphd) ) * fthk * fq0) 
     3650               ploss_avg(ji,jj) = ploss_avg(ji,jj) + ( & 
     3651                  ( fgmipn + fgmepn + fdpn + fdpn2 + fgmepd + fdpd + fdpd2 ) * fthk * fq0 ) 
     3652               phyt_avg(ji,jj)  = phyt_avg(ji,jj)  + ( & 
     3653                  (zphn +zphd) * fthk * fq0 ) 
     3654               !! 
     3655# endif 
    36053656               !!====================================================================== 
    36063657               !! LOCAL GRID CELL TRENDS 
     
    53315382      endif 
    53325383       
     5384# if defined key_foam_medusa 
     5385      !!---------------------------------------------------------------------- 
     5386      !! Dianostics required for ocean colour assimilation: 
     5387      !! Mixed layer average phytoplankton growth, loss and concentration 
     5388      !! Maximum mixed layer depth 
     5389      !!---------------------------------------------------------------------- 
     5390      !! 
     5391      DO jj = 2,jpjm1 
     5392         DO ji = 2,jpim1 
     5393            pgrow_avg(ji,jj) = pgrow_avg(ji,jj) / hmld(ji,jj) 
     5394            ploss_avg(ji,jj) = ploss_avg(ji,jj) / hmld(ji,jj) 
     5395            phyt_avg(ji,jj)  = phyt_avg(ji,jj)  / hmld(ji,jj) 
     5396            IF ( hmld(ji,jj) .GT. mld_max(ji,jj) ) THEN 
     5397               mld_max(ji,jj) = hmld(ji,jj) 
     5398            ENDIF 
     5399         END DO 
     5400      END DO 
     5401# endif 
     5402 
    53335403      IF( ln_diatrc ) THEN 
    53345404         !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.