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 6715 for branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90 – NEMO

Ignore:
Timestamp:
2016-06-16T18:58:14+02:00 (8 years ago)
Author:
jpalmier
Message:

JPALM -- 16-06-2016 -- MEDUSA branch update :

-- pass co2 flux and dms_surf through restart for atm coupling.
-- introduce CFC cycle for dynamic evolution comparison
-- add Tim Graham Age tracer
-- include MEDUSA Q10 modif
-- svn-key removed
-- still need debug stage

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r6509 r6715  
    175175      REAL(wp) ::    loc_T,fun_T,xvpnT,xvpdT 
    176176      INTEGER  ::    ieppley 
     177      !! AXY (16/05/11): per Katya's prompting, add in new T-dependence 
     178      !!                 for phytoplankton growth only (i.e. no change 
     179      !!                 for remineralisation) 
     180      REAL(wp) ::    fun_Q10 
    177181      !! AXY (01/03/10): add in mixed layer PP diagnostics 
    178182      REAL(wp), DIMENSION(jpi,jpj) ::  fprn_ml,fprd_ml 
     
    316320      !! AXY (13/03/15): add in other DMS calculations 
    317321      REAL(wp) ::    dms_andr, dms_simo, dms_aran, dms_hall 
     322#  if defined key_oasis3 
     323      REAL(wp), DIMENSION(jpi,jpj) :: pco2a_2d(ji,jj)        !! use 2D atm pCO2 from atm coupling 
     324#  endif 
     325 
    318326# endif 
    319327      !!  
     
    353361      REAL(wp), POINTER, DIMENSION(:,:  ) :: mdetc2d, gmidc2d, gmedc2d, f_pco2a2d, f_pco2w2d, f_co2flux2d 
    354362      REAL(wp), POINTER, DIMENSION(:,:  ) :: f_TDIC2d, f_TALK2d, f_kw6602d, f_pp02d, f_o2flux2d, f_o2sat2d 
    355       REAL(wp), POINTER, DIMENSION(:,:  ) :: dms_surf2d, dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d 
     363      REAL(wp), POINTER, DIMENSION(:,:  ) :: dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d, dms_surf2d 
    356364      REAL(wp), POINTER, DIMENSION(:,:  ) :: iben_n2d, iben_fe2d, iben_c2d, iben_si2d, iben_ca2d, oben_n2d 
    357365      REAL(wp), POINTER, DIMENSION(:,:  ) :: oben_fe2d, oben_c2d, oben_si2d, oben_ca2d, sfr_ocal2d 
    358366      REAL(wp), POINTER, DIMENSION(:,:  ) :: sfr_oarg2d, lyso_ca2d  
     367 
    359368# endif 
    360369      !! 2D var for diagnostics. 
     
    814823      ENDIF 
    815824      IF( med_diag%CO2FLUX%dgsave ) THEN 
    816          CALL wrk_alloc( jpi, jpj,    f_co2flux2d   ) 
     825         CALL wrk_alloc( jpi, jpj,   f_co2flux2d    ) 
    817826         f_co2flux2d(:,:)      = 0.0      !! 
    818827      ENDIF 
     
    897906      IF (jdms .eq. 1) THEN 
    898907         IF( med_diag%DMS_SURF%dgsave ) THEN 
    899             CALL wrk_alloc( jpi, jpj,  dms_surf2d     ) 
    900          dms_surf2d(:,:)      = 0.0      !! 
     908            CALL wrk_alloc( jpi, jpj,   dms_surf2d    ) 
     909            dms_surf2d(:,:)      = 0.0      !! 
    901910         ENDIF 
    902911         IF( med_diag%DMS_ANDR%dgsave ) THEN 
    903912            CALL wrk_alloc( jpi, jpj,   dms_andr2d    ) 
    904          dms_andr2d(:,:)      = 0.0      !! 
     913            dms_andr2d(:,:)      = 0.0      !! 
    905914         ENDIF 
    906915         IF( med_diag%DMS_SIMO%dgsave ) THEN 
    907916            CALL wrk_alloc( jpi, jpj,  dms_simo2d     ) 
    908          dms_simo2d(:,:)      = 0.0      !! 
     917            dms_simo2d(:,:)      = 0.0      !! 
    909918         ENDIF 
    910919         IF( med_diag%DMS_ARAN%dgsave ) THEN 
    911920            CALL wrk_alloc( jpi, jpj,   dms_aran2d    ) 
    912          dms_aran2d(:,:)      = 0.0      !! 
     921            dms_aran2d(:,:)      = 0.0      !! 
    913922         ENDIF 
    914923         IF( med_diag%DMS_HALL%dgsave ) THEN 
    915924            CALL wrk_alloc( jpi, jpj,   dms_hall2d    ) 
    916          dms_hall2d(:,:)      = 0.0      !! 
     925            dms_hall2d(:,:)      = 0.0      !! 
    917926         ENDIF 
    918927      ENDIF    
     
    10421051                  !! OPEN wet point IF..THEN loop 
    10431052                  if (tmask(ji,jj,jk).eq.1) then 
     1053#  if defined key_oasis3 
     1054                     f_pco2a = pco2a_2d(ji,jj)        !! use 2D atm pCO2 from atm coupling 
     1055#  endif 
    10441056                     !! do carbonate chemistry 
    10451057                     !! 
     
    13711383                  !! 
    13721384                  f_wind  = wndm(ji,jj) 
     1385#  if defined key_oasis3 
     1386                  f_pco2a = pco2a_2d(ji,jj)        !! use 2D atm pCO2 from atm coupling 
     1387#  endif 
     1388 
    13731389                  !! 
    13741390                  !! AXY (23/06/15): as part of an effort to update the carbonate chemistry 
     
    17061722               loc_T   = tsn(ji,jj,jk,jp_tem) 
    17071723               fun_T   = 1.066**(1.0 * loc_T) 
     1724               !! AXY (16/05/11): add in new Q10 (1.5, not 2.0) for 
     1725               !phytoplankton 
     1726               !!                 growth; remin. unaffected 
     1727               fun_Q10 = jq10**((loc_T - 0.0) / 10.0) 
    17081728               if (jphy.eq.1) then 
    17091729                  xvpnT = xvpn * fun_T 
    17101730                  xvpdT = xvpd * fun_T 
     1731               elseif (jphy.eq.2) then 
     1732                  xvpnT = xvpn * fun_Q10 
     1733                  xvpdT = xvpd * fun_Q10 
    17111734               else 
    17121735                  xvpnT = xvpn 
     
    21262149                  fddc = xmdc * fun_T * zdtc 
    21272150# endif 
     2151               elseif (jmd.eq.2) then 
     2152                  !! AXY (16/05/13): add in Q10-based parameterisation (def in nmlst) 
     2153                  !! temperature-dependent 
     2154                  fdd  = xmd  * fun_Q10 * zdet 
     2155#if defined key_roam 
     2156                  fddc = xmdc * fun_Q10 * zdtc 
     2157#endif 
    21282158               else 
    21292159                  !! temperature-independent 
     
    43274357                     IF( med_diag%CO2FLUX%dgsave ) THEN 
    43284358                         CALL iom_put( "CO2FLUX"  , f_co2flux2d ) 
    4329                           CALL wrk_dealloc( jpi, jpj,   f_co2flux2d   ) 
     4359                         zb_co2_flx = zn_co2_flx 
     4360                         zn_co2_flx = f_co2flux2d 
     4361                         CALL wrk_dealloc( jpi, jpj,   f_co2flux2d   ) 
    43304362                     ENDIF 
    43314363                     IF( med_diag%OM_CAL%dgsave ) THEN 
     
    43684400                       IF( med_diag%DMS_SURF%dgsave ) THEN 
    43694401                         CALL iom_put( "DMS_SURF"  , dms_surf2d ) 
    4370                           CALL wrk_dealloc( jpi, jpj,   dms_surf2d   ) 
     4402                         zb_dms_srf = zn_dms_srf 
     4403                         zn_dms_srf = dms_surf2d 
     4404                         CALL wrk_dealloc( jpi, jpj,   dms_surf2d   )  
    43714405                       ENDIF 
    43724406                       IF( med_diag%DMS_ANDR%dgsave ) THEN 
Note: See TracChangeset for help on using the changeset viewer.