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 7331 for branches/NERC – NEMO

Changeset 7331 for branches/NERC


Ignore:
Timestamp:
2016-11-24T18:47:51+01:00 (7 years ago)
Author:
jpalmier
Message:

JPALM -- 24-11-2016 -- MEDUSA-CMIP6 diags update/bugfix

Location:
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/CONFIG/SHARED/field_def_bgc.xml

    r7272 r7331  
    327327       <field id= "MED_XZE"    long_name="Euphotic depth"                            unit="m"           /> 
    328328       <field id= "WIND"       long_name="Surface scalar wind"                       unit="m/s"         /> 
    329        <field id= "ATM_PCO2"   long_name="Atmospheric pCO2"                          unit="ppmv"        /> 
     329       <field id= "ATM_PCO2"   long_name="Atmospheric pCO2"                          unit="uatm"        /> 
    330330       <field id= "OCN_PH"     long_name="Surface ocean pH"                          unit="-"           /> 
    331        <field id= "OCN_PCO2"   long_name="Surface ocean pCO2"                        unit="ppmv"        /> 
     331       <field id= "OCN_PCO2"   long_name="Surface ocean pCO2"                        unit="uatm"        /> 
    332332       <field id= "OCNH2CO3"   long_name="Surface ocean H2CO3 conc"                  unit="mmolC/m3"    /> 
    333333       <field id= "OCN_HCO3"   long_name="Surface ocean HCO3 conc"                   unit="mmolC/m3"    /> 
     
    340340       <field id= "TALK"       long_name="Total alkalinity"                          unit="ueq/kg"      /> 
    341341       <field id= "KW660"      long_name="Piston velocity"                           unit="m/s"         /> 
    342        <field id= "ATM_PP0"    long_name="Atmospheric pressure"                      unit="bar"         /> 
     342       <field id= "ATM_PP0"    long_name="Atmospheric pressure"                      unit="atm"         /> 
    343343       <field id= "O2FLUX"     long_name="Air-sea O2 flux"                           unit="mmolO2/m2/d" /> 
    344344       <field id= "O2SAT"      long_name="Surface ocean O2 saturation"               unit="mmolO2/m3"   /> 
     
    417417       <field id= "DMS_ARAN"   long_name="DMS Surface Concentration, AranamiT"       unit="nmol/L"      /> 
    418418       <field id= "DMS_HALL"   long_name="DMS Surface Concentration, Halloran"       unit="nmol/L"      /> 
     419       <field id= "ATM_XCO2"   long_name="Atmospheric xCO2"                          unit="ppm"         /> 
     420       <field id= "OCN_FCO2"   long_name="Surface ocean fCO2"                        unit="uatm"        /> 
     421       <field id= "ATM_FCO2"   long_name="Atmospheric fCO2"                          unit="uatm"        /> 
     422       <field id= "OCN_RHOSW"  long_name="MOCSY rhoSW"                               unit="kg/m3"       /> 
     423       <field id= "OCN_SCHCO2" long_name="MOCSY Schmidt CO2"                         unit="-"           /> 
     424       <field id= "OCN_KWCO2"  long_name="MOCSY kw CO2"                              unit="m/s"         /> 
     425       <field id= "OCN_K0"     long_name="MOCSY k0"                                  unit="(mol/kg)/atm" /> 
     426       <field id= "CO2STARAIR" long_name="MOCSY CO2star air"                         unit="mmol/m3"     /> 
     427       <field id= "OCN_DPCO2"  long_name="MOCSY delta pCO2"                          unit="uatm"        /> 
     428        
    419429 
    420430       <!-- AXY (08/11/16): add new 2D CMIP6 diagnostics --> 
     
    431441       <field id= "FBDDTALK"   long_name="Int. change of Alkalinity due to Biology"  unit="meq/m2/d"    /> 
    432442       <field id= "FBDDTDIC"   long_name="Int. change of DI Carbon due to Biology"   unit="mmolC/m2/d"  /> 
    433        <field id= "FBDDTDIFE"  long_name="Int. change of DI Iron due to Biology"     unit="mmolFe/m2/d" /> 
     443       <field id= "FBDDTIFE"   long_name="Int. change of DI Iron due to Biology"     unit="mmolFe/m2/d" /> 
    434444       <field id= "FBDDTDIN"   long_name="Int. change of DI Nitrogen due to Biology" unit="mmolN/m2/d"  /> 
    435445       <field id= "FBDDTDISI"  long_name="Int. change of DI Silicon due to Biology"  unit="mmolSi/m2/d" /> 
     446        
    436447 
    437448       <!-- MEDUSA 3D diagnostics --> 
     
    709720      <field field_ref= "INT_DET"    name="INT_DET"    /> 
    710721      <field field_ref= "INT_DTC"    name="INT_DTC"    /> 
     722      <field field_ref= "ATM_XCO2"   name="ATM_XCO2"   /> 
     723      <field field_ref= "OCN_FCO2"   name="OCN_FCO2"   /> 
     724      <field field_ref= "ATM_FCO2"   name="ATM_FCO2"   /> 
     725      <field field_ref= "OCN_RHOSW"  name="OCN_RHOSW"  /> 
     726      <field field_ref= "OCN_SCHCO2" name="OCN_SCHCO2" /> 
     727      <field field_ref= "OCN_KWCO2"  name="OCN_KWCO2"  /> 
     728      <field field_ref= "OCN_K0"     name="OCN_K0"     /> 
     729      <field field_ref= "CO2STARAIR" name="CO2STARAIR" /> 
     730      <field field_ref= "OCN_DPCO2"  name="OCN_DPCO2"  /> 
    711731    </field_group> 
    712732 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r7272 r7331  
    175175      REAL(wp)                     ::    fthetan,faln,fchn1,fchn,fjln,fprn,frn 
    176176      REAL(wp)                     ::    fthetad,fald,fchd1,fchd,fjld,fprd,frd 
     177      !! AXY (23/11/16): add in light-only limitation term (normalised 0-1 range) 
     178      REAL(wp)                     ::    fjlim_pn, fjlim_pd 
    177179      !! AXY (03/02/11): add in Liebig terms 
    178180      REAL(wp) ::    fpnlim, fpdlim 
     
    296298      !! 
    297299      !! ROAM air-sea flux and diagnostic parameters 
    298       REAL(wp) ::    f_wind, f_pco2a 
     300      REAL(wp) ::    f_wind 
     301      !! AXY (24/11/16): add xCO2 variable for atmosphere (what we actually have) 
     302      REAL(wp) ::    f_xco2a 
    299303      REAL(wp) ::    f_ph, f_pco2w, f_h2co3, f_hco3, f_co3, f_co2flux 
    300304      REAL(wp) ::    f_TDIC, f_TALK, f_dcf, f_henry 
     
    372376      REAL(wp), POINTER, DIMENSION(:,:  ) :: oben_fe2d, oben_c2d, oben_si2d, oben_ca2d, sfr_ocal2d 
    373377      REAL(wp), POINTER, DIMENSION(:,:  ) :: sfr_oarg2d, lyso_ca2d  
     378      !! AXY (23/11/16): extra MOCSY diagnostics 
     379      REAL(wp), POINTER, DIMENSION(:,:  ) :: f_xco2a_2d, f_fco2w_2d, f_fco2a_2d 
     380      REAL(wp), POINTER, DIMENSION(:,:  ) :: f_ocnrhosw_2d, f_ocnschco2_2d, f_ocnkwco2_2d 
     381      REAL(wp), POINTER, DIMENSION(:,:  ) :: f_ocnk0_2d, f_co2starair_2d, f_ocndpco2_2d 
    374382# endif 
    375383      !! 
     
    986994            ENDIF 
    987995         ENDIF    
     996         !! 
     997         !! AXY (24/11/16): extra MOCSY diagnostics, 2D 
     998         IF( med_diag%ATM_XCO2%dgsave ) THEN 
     999            CALL wrk_alloc( jpi, jpj, f_xco2a_2d      ) 
     1000            f_xco2a_2d(:,:)      = 0.0 !! 
     1001         ENDIF 
     1002         IF( med_diag%OCN_FCO2%dgsave ) THEN 
     1003            CALL wrk_alloc( jpi, jpj, f_fco2w_2d      ) 
     1004            f_fco2w_2d(:,:)      = 0.0 !! 
     1005         ENDIF 
     1006         IF( med_diag%ATM_FCO2%dgsave ) THEN 
     1007            CALL wrk_alloc( jpi, jpj, f_fco2a_2d      ) 
     1008            f_fco2a_2d(:,:)      = 0.0 !! 
     1009         ENDIF 
     1010         IF( med_diag%OCN_RHOSW%dgsave ) THEN 
     1011            CALL wrk_alloc( jpi, jpj, f_ocnrhosw_2d   ) 
     1012            f_ocnrhosw_2d(:,:)      = 0.0 !! 
     1013         ENDIF 
     1014         IF( med_diag%OCN_SCHCO2%dgsave ) THEN 
     1015            CALL wrk_alloc( jpi, jpj, f_ocnschco2_2d  ) 
     1016            f_ocnschco2_2d(:,:)      = 0.0 !! 
     1017         ENDIF 
     1018         IF( med_diag%OCN_KWCO2%dgsave ) THEN 
     1019            CALL wrk_alloc( jpi, jpj, f_ocnkwco2_2d   ) 
     1020            f_ocnkwco2_2d(:,:)      = 0.0 !! 
     1021         ENDIF 
     1022         IF( med_diag%OCN_K0%dgsave ) THEN 
     1023            CALL wrk_alloc( jpi, jpj, f_ocnk0_2d      ) 
     1024            f_ocnk0_2d(:,:)      = 0.0 !! 
     1025         ENDIF 
     1026         IF( med_diag%CO2STARAIR%dgsave ) THEN 
     1027            CALL wrk_alloc( jpi, jpj, f_co2starair_2d ) 
     1028            f_co2starair_2d(:,:)      = 0.0 !! 
     1029         ENDIF 
     1030         IF( med_diag%OCN_DPCO2%dgsave ) THEN 
     1031            CALL wrk_alloc( jpi, jpj, f_ocndpco2_2d   ) 
     1032            f_ocndpco2_2d(:,:)      = 0.0 !! 
     1033         ENDIF 
    9881034# endif   
    9891035         IF( med_diag%TPP3%dgsave ) THEN 
     
    10251071          IF( med_diag%O2min%dgsave ) THEN 
    10261072             CALL wrk_alloc( jpi, jpj,   o2min    ) 
    1027              o2min(:,:)  = 1.e6 !! set to high value as we're looking for min(o2) 
     1073             o2min(:,:)  = 1.e3 !! set to high value as we're looking for min(o2) 
    10281074          ENDIF           
    10291075          IF( med_diag%ZO2min%dgsave ) THEN 
     
    12271273      if (iyr1 .le. 1) then 
    12281274         !! before 1860 
    1229          f_pco2a = hist_pco2(1) 
     1275         f_xco2a = hist_pco2(1) 
    12301276      elseif (iyr2 .ge. 242) then 
    12311277         !! after 2099 
    1232          f_pco2a = hist_pco2(242) 
     1278         f_xco2a = hist_pco2(242) 
    12331279      else 
    12341280         !! just right 
     
    12431289#  endif 
    12441290         fq4 = (fq0 * (1.0 - fq3)) + (fq1 * fq3) 
    1245          f_pco2a = fq4 
     1291         f_xco2a = fq4 
    12461292      endif 
    12471293#  if defined key_axy_pi_co2 
    1248       !! f_pco2a = hist_pco2(1) 
    1249       f_pco2a = 284.725          !! OCMIP pre-industrial pCO2 
     1294      f_xco2a = 284.725          !! OCMIP pre-industrial pCO2 
    12501295#  endif 
    12511296      !! IF(lwp) WRITE(numout,*) ' MEDUSA nyear     =', nyear 
     
    12571302      !! IF(lwp) WRITE(numout,*) ' MEDUSA fq2       =', fq2 
    12581303      !! IF(lwp) WRITE(numout,*) ' MEDUSA fq3       =', fq3 
    1259       IF(lwp) WRITE(numout,*) ' MEDUSA atm pCO2  =', f_pco2a 
     1304      IF(lwp) WRITE(numout,*) ' MEDUSA atm pCO2  =', f_xco2a 
    12601305# endif 
    12611306 
     
    13011346                  if (tmask(ji,jj,jk).eq.1) then 
    13021347                     IF (lk_oasis) THEN 
    1303                         f_pco2a = PCO2a_in_cpl(ji,jj)        !! use 2D atm pCO2 from atm coupling 
     1348                        f_xco2a = PCO2a_in_cpl(ji,jj)        !! use 2D atm xCO2 from atm coupling 
    13041349                     ENDIF 
    13051350                     !! do carbonate chemistry 
     
    13411386                     !!                 chemistry package 
    13421387                     CALL mocsy_interface( ztmp, zsal, zalk, zdic, zsil, zpho,         &    ! inputs 
    1343                      f_pp0, fdep2, flatx, f_kw660, f_pco2a, 1,                         &    ! inputs 
     1388                     f_pp0, fdep2, flatx, f_kw660, f_xco2a, 1,                         &    ! inputs 
    13441389                     f_ph, f_pco2w, f_fco2w, f_h2co3, f_hco3, f_co3, f_omarg(ji,jj),   &    ! outputs 
    13451390                     f_omcal(ji,jj), f_BetaD, f_rhosw, f_opres, f_insitut,             &    ! outputs 
     
    13541399                     !!                 MEDUSA-2 default) 
    13551400                     CALL trc_co2_medusa( ztmp, zsal, zdic, zalk, fdep2, f_kw660,      &    ! inputs 
    1356                      f_pco2a, f_ph, f_pco2w, f_h2co3, f_hco3, f_co3, f_omcal(ji,jj),   &    ! outputs 
     1401                     f_xco2a, f_ph, f_pco2w, f_h2co3, f_hco3, f_co3, f_omcal(ji,jj),   &    ! outputs 
    13571402                     f_omarg(ji,jj), f_co2flux, f_TDIC, f_TALK, f_dcf, f_henry, iters)      ! outputs 
    13581403                     !!  
     
    16551700                  f_wind  = wndm(ji,jj) 
    16561701                  IF (lk_oasis) THEN 
    1657                      f_pco2a = PCO2a_in_cpl(ji,jj)        !! use 2D atm pCO2 from atm coupling 
     1702                     f_xco2a = PCO2a_in_cpl(ji,jj)        !! use 2D atm xCO2 from atm coupling 
    16581703                  ENDIF 
    16591704                  !! 
     
    16961741                  !!                 zero in this call 
    16971742                  CALL mocsy_interface( ztmp, zsal, zalk, zdic, zsil, zpho,        &  ! inputs 
    1698                   f_pp0, 0.0, flatx, f_kw660, f_pco2a, 1,                          &  ! inputs 
     1743                  f_pp0, 0.0, flatx, f_kw660, f_xco2a, 1,                          &  ! inputs 
    16991744                  f_ph, f_pco2w, f_fco2w, f_h2co3, f_hco3, f_co3, f_omarg(ji,jj),  &  ! outputs 
    17001745                  f_omcal(ji,jj), f_BetaD, f_rhosw, f_opres, f_insitut,            &  ! outputs 
     
    17091754                  !! 
    17101755                  !! carbon dioxide (CO2); Jerry Blackford code (ostensibly OCMIP-2, but not) 
    1711                   CALL trc_co2_medusa( ztmp, zsal, zdic, zalk, 0.0, f_kw660, f_pco2a,  &  ! inputs 
     1756                  CALL trc_co2_medusa( ztmp, zsal, zdic, zalk, 0.0, f_kw660, f_xco2a,  &  ! inputs 
    17121757                  f_ph, f_pco2w, f_h2co3, f_hco3, f_co3, f_omcal(ji,jj),               &  ! outputs 
    17131758                  f_omarg(ji,jj), f_co2flux, f_TDIC, f_TALK, f_dcf, f_henry, iters )      ! outputs 
     
    17281773                  !!                 quasi-sensible alternatives 
    17291774                  f_ph           = 8.1 
    1730                   f_pco2w        = f_pco2a 
     1775                  f_pco2w        = f_xco2a 
    17311776                  f_h2co3        = 0.005 * zdic 
    17321777                  f_hco3         = 0.865 * zdic 
     
    17401785                  f_henry        = 1. 
    17411786                  !! AXY (23/06/15): add in some extra MOCSY diagnostics 
    1742                   f_fco2w        = fpco2a 
     1787                  f_fco2w        = f_xco2a 
    17431788                  f_BetaD        = 1. 
    17441789                  f_rhosw        = 1.026 
    17451790                  f_opres        = 0. 
    17461791                  f_insitut      = ztmp 
    1747                   f_pco2atm      = fpco2a 
    1748                   f_fco2atm      = fpco2a 
     1792                  f_pco2atm      = f_xco2a 
     1793                  f_fco2atm      = f_xco2a 
    17491794                  f_schmidtco2   = 660. 
    17501795                  f_kwco2        = 0. 
    17511796                  f_K0           = 0. 
    1752                   f_co2starair   = fpco2a 
     1797                  f_co2starair   = f_xco2a 
    17531798                  f_dpco2        = 0. 
    17541799#  endif 
     
    18421887                  IF ( lk_iomput ) THEN 
    18431888                      IF( med_diag%ATM_PCO2%dgsave ) THEN 
    1844                          f_pco2a2d(ji,jj) = f_pco2a 
     1889                         f_pco2a2d(ji,jj) = f_pco2atm 
    18451890                      ENDIF 
    18461891                      IF( med_diag%OCN_PCO2%dgsave ) THEN 
     
    18681913                         f_o2sat2d(ji,jj) = f_o2sat 
    18691914                      ENDIF 
     1915                      !! AXY (24/11/16): add in extra MOCSY diagnostics 
     1916                      IF( med_diag%ATM_XCO2%dgsave ) THEN 
     1917                         f_xco2a_2d(ji,jj) = f_xco2a 
     1918                      ENDIF 
     1919                      IF( med_diag%OCN_FCO2%dgsave ) THEN 
     1920                         f_fco2w_2d(ji,jj) = f_fco2w 
     1921                      ENDIF 
     1922                      IF( med_diag%ATM_FCO2%dgsave ) THEN 
     1923                         f_fco2a_2d(ji,jj) = f_fco2atm 
     1924                      ENDIF 
     1925                      IF( med_diag%OCN_RHOSW%dgsave ) THEN 
     1926                         f_ocnrhosw_2d(ji,jj) = f_rhosw 
     1927                      ENDIF 
     1928                      IF( med_diag%OCN_SCHCO2%dgsave ) THEN 
     1929                         f_ocnschco2_2d(ji,jj) = f_schmidtco2 
     1930                      ENDIF 
     1931                      IF( med_diag%OCN_KWCO2%dgsave ) THEN 
     1932                         f_ocnkwco2_2d(ji,jj) = f_kwco2 
     1933                      ENDIF 
     1934                      IF( med_diag%OCN_K0%dgsave ) THEN 
     1935                         f_ocnk0_2d(ji,jj) = f_K0 
     1936                      ENDIF 
     1937                      IF( med_diag%CO2STARAIR%dgsave ) THEN 
     1938                         f_co2starair_2d(ji,jj) = f_co2starair 
     1939                      ENDIF 
     1940                      IF( med_diag%OCN_DPCO2%dgsave ) THEN 
     1941                         f_ocndpco2_2d(ji,jj) = f_dpco2 
     1942                      ENDIF 
    18701943                  ENDIF 
    18711944                  !!  
     
    20292102               endif 
    20302103               fjln    = fchn * faln * xpar(ji,jj,jk) !! non-diatom J term 
     2104               fjlim_pn = fjln / xvpnT 
    20312105               !! 
    20322106               !! diatoms 
     
    20382112               endif 
    20392113               fjld    = fchd * fald * xpar(ji,jj,jk) !! diatom J term 
     2114               fjlim_pd = fjld / xvpdT 
    20402115       
    20412116# if defined key_debug_medusa 
     
    40144089                  ENDIF 
    40154090                  IF( med_diag%PN_JLIM%dgsave ) THEN 
    4016                       fjln2d(ji,jj) = fjln2d(ji,jj) + (fjln  * zphn * fthk)  
     4091                      ! fjln2d(ji,jj) = fjln2d(ji,jj) + (fjln  * zphn * fthk)  
     4092                      fjln2d(ji,jj) = fjln2d(ji,jj) + (fjlim_pn * zphn * fthk)  
    40174093                  ENDIF 
    40184094                  IF( med_diag%PN_NLIM%dgsave ) THEN 
     
    40234099                  ENDIF 
    40244100                  IF( med_diag%PD_JLIM%dgsave ) THEN 
    4025                       fjld2d(ji,jj) = fjld2d(ji,jj) + (fjld  * zphd * fthk)  
     4101                      ! fjld2d(ji,jj) = fjld2d(ji,jj) + (fjld  * zphd * fthk)  
     4102                      fjld2d(ji,jj) = fjld2d(ji,jj) + (fjlim_pd * zphd * fthk)  
    40264103                  ENDIF 
    40274104                  IF( med_diag%PD_NLIM%dgsave ) THEN 
     
    42694346                  ENDIF 
    42704347        IF ( med_diag%FEDISS3%dgsave  ) THEN 
    4271                      fescav3(ji,jj,jk) = ffetop 
     4348                     fediss3(ji,jj,jk) = ffetop 
    42724349                  ENDIF 
    42734350        IF ( med_diag%FESCAV3%dgsave  ) THEN 
     
    42994376                  ENDIF 
    43004377        IF ( med_diag%PNLIMJ3%dgsave  ) THEN 
    4301                      pnlimj3(ji,jj,jk)  = fjln 
     4378                     ! pnlimj3(ji,jj,jk)  = fjln 
     4379                     pnlimj3(ji,jj,jk)  = fjlim_pn 
    43024380                  ENDIF 
    43034381        IF ( med_diag%PNLIMN3%dgsave  ) THEN 
     
    43084386                  ENDIF 
    43094387        IF ( med_diag%PDLIMJ3%dgsave  ) THEN 
    4310                      pdlimj3(ji,jj,jk)  = fjld 
     4388                     ! pdlimj3(ji,jj,jk)  = fjld 
     4389                     pdlimj3(ji,jj,jk)  = fjlim_pd 
    43114390                  ENDIF 
    43124391        IF ( med_diag%PDLIMN3%dgsave  ) THEN 
     
    43574436                  trc2d(ji,jj,23) = trc2d(ji,jj,23) + (ffebot  * fthk)         !! seafloor iron addition 
    43584437                  trc2d(ji,jj,24) = trc2d(ji,jj,24) + (ffescav * fthk)         !! "free" iron scavenging 
    4359                   trc2d(ji,jj,25) = trc2d(ji,jj,25) + (fjln  * zphn * fthk)    !! non-diatom J  limitation term  
     4438                  trc2d(ji,jj,25) = trc2d(ji,jj,25) + (fjlim_pn * zphn * fthk) !! non-diatom J  limitation term  
    43604439                  trc2d(ji,jj,26) = trc2d(ji,jj,26) + (fnln  * zphn * fthk)    !! non-diatom N  limitation term  
    43614440                  trc2d(ji,jj,27) = trc2d(ji,jj,27) + (ffln  * zphn * fthk)    !! non-diatom Fe limitation term  
    4362                   trc2d(ji,jj,28) = trc2d(ji,jj,28) + (fjld  * zphd * fthk)    !! diatom     J  limitation term  
     4441                  trc2d(ji,jj,28) = trc2d(ji,jj,28) + (fjlim_pd * zphd * fthk) !! diatom     J  limitation term  
    43634442                  trc2d(ji,jj,29) = trc2d(ji,jj,29) + (fnld  * zphd * fthk)    !! diatom     N  limitation term  
    43644443                  trc2d(ji,jj,30) = trc2d(ji,jj,30) + (ffld  * zphd * fthk)    !! diatom     Fe limitation term  
     
    44324511                  if (jk .eq. 1) then 
    44334512                     trc2d(ji,jj,91)  = trc2d(ji,jj,91)  + f_wind              !! surface wind 
    4434                      trc2d(ji,jj,92)  = trc2d(ji,jj,92)  + f_pco2a             !! atmospheric pCO2 
     4513                     trc2d(ji,jj,92)  = trc2d(ji,jj,92)  + f_pco2atm           !! atmospheric pCO2 
    44354514                     trc2d(ji,jj,93)  = trc2d(ji,jj,93)  + f_ph                !! ocean pH 
    44364515                     trc2d(ji,jj,94)  = trc2d(ji,jj,94)  + f_pco2w             !! ocean pCO2 
     
    48214900                       ENDIF 
    48224901                     ENDIF 
     4902                     !! AXY (24/11/16): extra MOCSY diagnostics 
     4903                     IF( med_diag%ATM_XCO2%dgsave ) THEN 
     4904                        CALL iom_put( "ATM_XCO2"  ,   f_xco2a_2d      ) 
     4905                        CALL wrk_dealloc( jpi, jpj,   f_xco2a_2d      ) 
     4906                     ENDIF 
     4907                     IF( med_diag%OCN_FCO2%dgsave ) THEN 
     4908                        CALL iom_put( "OCN_FCO2"  ,   f_fco2w_2d      ) 
     4909                        CALL wrk_dealloc( jpi, jpj,   f_fco2w_2d      ) 
     4910                     ENDIF 
     4911                     IF( med_diag%ATM_FCO2%dgsave ) THEN 
     4912                        CALL iom_put( "ATM_FCO2"  ,   f_fco2a_2d      ) 
     4913                        CALL wrk_dealloc( jpi, jpj,   f_fco2a_2d      ) 
     4914                     ENDIF 
     4915                     IF( med_diag%OCN_RHOSW%dgsave ) THEN 
     4916                        CALL iom_put( "OCN_RHOSW"  ,  f_ocnrhosw_2d   ) 
     4917                        CALL wrk_dealloc( jpi, jpj,   f_ocnrhosw_2d   ) 
     4918                     ENDIF 
     4919                     IF( med_diag%OCN_SCHCO2%dgsave ) THEN 
     4920                        CALL iom_put( "OCN_SCHCO2"  , f_ocnschco2_2d  ) 
     4921                        CALL wrk_dealloc( jpi, jpj,   f_ocnschco2_2d  ) 
     4922                     ENDIF 
     4923                     IF( med_diag%OCN_KWCO2%dgsave ) THEN 
     4924                        CALL iom_put( "OCN_KWCO2"  ,  f_ocnkwco2_2d   ) 
     4925                        CALL wrk_dealloc( jpi, jpj,   f_ocnkwco2_2d   ) 
     4926                     ENDIF 
     4927                     IF( med_diag%OCN_K0%dgsave ) THEN 
     4928                        CALL iom_put( "OCN_K0"  ,     f_ocnk0_2d      ) 
     4929                        CALL wrk_dealloc( jpi, jpj,   f_ocnk0_2d      ) 
     4930                     ENDIF 
     4931                     IF( med_diag%CO2STARAIR%dgsave ) THEN 
     4932                        CALL iom_put( "CO2STARAIR"  , f_co2starair_2d ) 
     4933                        CALL wrk_dealloc( jpi, jpj,   f_co2starair_2d ) 
     4934                     ENDIF 
     4935                     IF( med_diag%OCN_DPCO2%dgsave ) THEN 
     4936                        CALL iom_put( "OCN_DPCO2"  ,  f_ocndpco2_2d   ) 
     4937                        CALL wrk_dealloc( jpi, jpj,   f_ocndpco2_2d   ) 
     4938                     ENDIF 
    48234939# endif                      
    48244940                 ELSE IF (jk.eq.i0100) THEN  
     
    58515967          !! 
    58525968          !! AXY (09/11/16): 3D CMIP6 diagnostics 
     5969          IF( med_diag%TPPD3%dgsave ) THEN 
     5970             CALL iom_put( "TPPD3"     , tppd3 ) 
     5971             CALL wrk_dealloc( jpi, jpj, jpk, tppd3      ) 
     5972          ENDIF           
    58535973          IF( med_diag%BDDTALK3%dgsave ) THEN 
    58545974             CALL iom_put( "BDDTALK3"  , bddtalk3 ) 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90

    r7271 r7331  
    20982098          med_diag%DMS_HALL%dgsave = .FALSE. 
    20992099      ENDIF 
     2100      IF  (iom_use("ATM_XCO2")) THEN  
     2101          med_diag%ATM_XCO2%dgsave = .TRUE. 
     2102      ELSE  
     2103          med_diag%ATM_XCO2%dgsave = .FALSE. 
     2104      ENDIF 
     2105      IF  (iom_use("OCN_FCO2")) THEN  
     2106          med_diag%OCN_FCO2%dgsave = .TRUE. 
     2107      ELSE  
     2108          med_diag%OCN_FCO2%dgsave = .FALSE. 
     2109      ENDIF 
     2110      IF  (iom_use("ATM_FCO2")) THEN  
     2111          med_diag%ATM_FCO2%dgsave = .TRUE. 
     2112      ELSE  
     2113          med_diag%ATM_FCO2%dgsave = .FALSE. 
     2114      ENDIF 
     2115      IF  (iom_use("OCN_RHOSW")) THEN  
     2116          med_diag%OCN_RHOSW%dgsave = .TRUE. 
     2117      ELSE  
     2118          med_diag%OCN_RHOSW%dgsave = .FALSE. 
     2119      ENDIF 
     2120      IF  (iom_use("OCN_SCHCO2")) THEN  
     2121          med_diag%OCN_SCHCO2%dgsave = .TRUE. 
     2122      ELSE  
     2123          med_diag%OCN_SCHCO2%dgsave = .FALSE. 
     2124      ENDIF 
     2125      IF  (iom_use("OCN_KWCO2")) THEN  
     2126          med_diag%OCN_KWCO2%dgsave = .TRUE. 
     2127      ELSE  
     2128          med_diag%OCN_KWCO2%dgsave = .FALSE. 
     2129      ENDIF 
     2130      IF  (iom_use("OCN_K0")) THEN  
     2131          med_diag%OCN_K0%dgsave = .TRUE. 
     2132      ELSE  
     2133          med_diag%OCN_K0%dgsave = .FALSE. 
     2134      ENDIF 
     2135      IF  (iom_use("CO2STARAIR")) THEN  
     2136          med_diag%CO2STARAIR%dgsave = .TRUE. 
     2137      ELSE  
     2138          med_diag%CO2STARAIR%dgsave = .FALSE. 
     2139      ENDIF 
     2140      IF  (iom_use("OCN_DPCO2")) THEN  
     2141          med_diag%OCN_DPCO2%dgsave = .TRUE. 
     2142      ELSE  
     2143          med_diag%OCN_DPCO2%dgsave = .FALSE. 
     2144      ENDIF 
     2145      !! 
    21002146      IF  (iom_use("TPP3")) THEN  
    21012147          med_diag%TPP3%dgsave = .TRUE. 
     
    21992245          med_diag%FBDDTDIFE%dgsave = .FALSE. 
    22002246      ENDIF 
     2247      IF  (iom_use("FBDDTDIN")) THEN  
     2248          med_diag%FBDDTDIN%dgsave = .TRUE. 
     2249      ELSE  
     2250          med_diag%FBDDTDIN%dgsave = .FALSE. 
     2251      ENDIF 
    22012252      IF  (iom_use("FBDDTDISI")) THEN  
    22022253          med_diag%FBDDTDISI%dgsave = .TRUE. 
     
    22252276      ELSE  
    22262277          med_diag%BDDTDIFE3%dgsave = .FALSE. 
     2278      ENDIF 
     2279      IF  (iom_use("BDDTDIN3")) THEN  
     2280          med_diag%BDDTDIN3%dgsave = .TRUE. 
     2281      ELSE  
     2282          med_diag%BDDTDIN3%dgsave = .FALSE. 
    22272283      ENDIF 
    22282284      IF  (iom_use("BDDTDISI3")) THEN  
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r7271 r7331  
    131131                  ZE_MES_C, ZE_MESDC, ZE_EXCR, ZE_RESP, ZE_GROW, MDETC, GMIDC, GMEDC,                & 
    132132                  INT_ZMI, INT_ZME, INT_DET, INT_DTC, DMS_SURF, DMS_ANDR, DMS_SIMO, DMS_ARAN,        & 
    133                   DMS_HALL,                                                                          & ! end of regular 2D 
     133                  DMS_HALL, ATM_XCO2, OCN_FCO2, ATM_FCO2, OCN_RHOSW, OCN_SCHCO2, OCN_KWCO2,          & 
     134                  OCN_K0, CO2STARAIR, OCN_DPCO2,                                                     & ! end of regular 2D 
    134135                  TPP3, DETFLUX3, REMIN3N, PH3, OM_CAL3,                                             & ! end of regular 3D 
    135136! AXY (11/11/16): additional CMIP6 2D diagnostics 
Note: See TracChangeset for help on using the changeset viewer.