Changeset 10045


Ignore:
Timestamp:
2018-08-07T14:19:25+02:00 (2 years ago)
Author:
jpalmier
Message:

Andrew's changes to add the OMIP double_DIC (activated with key_omip_dic)

Location:
branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90

    r9385 r10045  
    77   !!   -   ! 2017-04 (M. Stringer)        Code taken from trcbio_medusa.F90 
    88   !!   -   ! 2017-08 (A. Yool)            Add air-sea flux kill switch 
     9   !!   -   ! 2018-08 (A. Yool)            add OMIP preindustrial DIC 
    910   !!---------------------------------------------------------------------- 
    1011#if defined key_medusa 
     
    5758                                   f_xco2a, f_xco2a_2d,                   & 
    5859                                   zalk, zdic, zoxy, zsal, ztmp,          & 
     60#  if defined key_omip_dic 
     61                                   pi_fgco2,                               & 
     62                                   f_pi_co2flux, f_pi_co2flux2d,           & 
     63                                   f_pi_co2starair_2d, f_pi_co3,           & 
     64                                   f_pi_fco2a_2d, f_pi_fco2w_2d,           & 
     65                                   f_pi_h2co3, f_pi_hco3,                  & 
     66                                   f_pi_ocndpco2_2d,                       & 
     67                                   f_pi_omarg, f_pi_omcal,                 & 
     68                                   f_pi_pco2a2d, f_pi_pco2atm, f_pi_pco2w, & 
     69                                   f_pi_pco2w2d, f_pi_ph,                  & 
     70                                   f_pi_TDIC, f_pi_TDIC2d,                 & 
     71                                   f_pi_xco2a, f_pi_xco2a_2d,              & 
     72                                   zomd,                                   & 
     73#  endif                                    
    5974# endif 
    6075# if defined key_mocsy 
     
    119134      REAL(wp) :: f_insitut_dum 
    120135      REAL(wp) :: f_kwo2_dum 
     136#  if defined key_omip_dic 
     137      !! AXY (06/08/18): output variables that are not different for OMIP DIC 
     138      REAL(wp) :: f_rhosw_dum, f_schmidtco2_dum, f_kwco2_dum,f_K0_dum 
     139#  endif 
    121140# endif 
    122  
    123141 
    124142# if defined key_roam 
     
    132150      f_rhosw(:,:)       = 0.0 
    133151      f_K0(:,:)          = 0.0 
     152#  if defined key_omip_dic 
     153      f_pi_fco2w(:,:)       = 0.0 
     154      f_pi_fco2atm(:,:)     = 0.0 
     155      f_pi_co2starair(:,:)  = 0.0 
     156      f_pi_dpco2(:,:)       = 0.0       
     157#  endif 
    134158      !! air pressure (atm); ultimately this will use air  
    135159      !! pressure at the base of the UKESM1 atmosphere  
     
    137161      f_pp0(:,:)   = 1.0 
    138162 
    139  
    140163      !!----------------------------------------------------------- 
    141164      !! Air-sea gas exchange 
    142165      !!----------------------------------------------------------- 
    143166 
    144  if defined key_debug_medusa 
     167if defined key_debug_medusa 
    145168               IF (lwp) write (numout,*)                     &  
    146169               'air-sea: gas_transfer kt = ', kt 
    147170               CALL flush(numout) 
    148  endif 
     171endif 
    149172      DO jj = 2,jpjm1 
    150173         DO ji = 2,jpim1 
     
    170193      ENDDO 
    171194 
    172 #   if defined key_debug_medusa 
    173                IF (lwp) write (numout,*)                     & 
    174                'air-sea: carb-chem kt = ', kt 
    175                CALL flush(numout) 
    176                !! JPALM add carb print: 
    177                call trc_rst_dia_stat(f_xco2a(:,:), 'f_xco2a') 
    178                call trc_rst_dia_stat(wndm(:,:), 'wndm') 
    179                call trc_rst_dia_stat(f_kw660(:,:), 'f_kw660') 
    180                call trc_rst_dia_stat(ztmp(:,:), 'ztmp') 
    181                call trc_rst_dia_stat(zsal(:,:), 'zsal') 
    182                call trc_rst_dia_stat(zalk(:,:), 'zalk') 
    183                call trc_rst_dia_stat(zdic(:,:), 'zdic') 
    184                call trc_rst_dia_stat(zsil(:,:), 'zsil') 
    185                call trc_rst_dia_stat(zpho(:,:), 'zpho') 
    186 #   endif 
     195#  if defined key_debug_medusa 
     196      IF (lwp) write (numout,*)                     & 
     197           'air-sea: carb-chem kt = ', kt 
     198      CALL flush(numout) 
     199      !! JPALM add carb print: 
     200      call trc_rst_dia_stat(f_xco2a(:,:), 'f_xco2a') 
     201      call trc_rst_dia_stat(wndm(:,:), 'wndm') 
     202      call trc_rst_dia_stat(f_kw660(:,:), 'f_kw660') 
     203      call trc_rst_dia_stat(ztmp(:,:), 'ztmp') 
     204      call trc_rst_dia_stat(zsal(:,:), 'zsal') 
     205      call trc_rst_dia_stat(zalk(:,:), 'zalk') 
     206      call trc_rst_dia_stat(zdic(:,:), 'zdic') 
     207      call trc_rst_dia_stat(zsil(:,:), 'zsil') 
     208      call trc_rst_dia_stat(zpho(:,:), 'zpho') 
     209#  endif 
     210 
     211#  if defined key_axy_carbchem 
     212#   if defined key_mocsy 
     213      !!----------------------------------------------------------- 
     214      !! MOCSY carbonate chemistry 
     215      !!----------------------------------------------------------- 
     216      !! 
    187217      DO jj = 2,jpjm1 
    188218         DO ji = 2,jpim1 
    189219            if (tmask(ji,jj,1) == 1) then 
    190                !! 
    191 #  if defined key_axy_carbchem 
    192 #   if defined key_mocsy 
    193220               !! Jpalm -- 12-09-2017 -- add extra check after reccurent 
    194221               !!          carbonate failure in the coupled run. 
     
    201228                    (f_kw660(ji,jj) > 1.0E-2 ).OR.(f_kw660(ji,jj) < 0.0 ) ) THEN 
    202229                  IF(lwp) THEN  
    203                       WRITE(numout,*) ' surface T = ',ztmp(ji,jj) 
    204                       WRITE(numout,*) ' surface S = ',zsal(ji,jj) 
    205                       WRITE(numout,*) ' surface ALK = ',zalk(ji,jj) 
    206                       WRITE(numout,*) ' surface DIC = ',zdic(ji,jj) 
    207                       WRITE(numout,*) ' KW660 = ',f_kw660(ji,jj) 
    208                       WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj)    
    209                       WRITE(numout,*) ' surface pco2w  = ',f_pco2w(ji,jj) 
    210                       WRITE(numout,*) ' surface fco2w  = ',f_fco2w(ji,jj) 
    211                       WRITE(numout,*) ' surface fco2a  = ',f_fco2atm(ji,jj) 
    212                       WRITE(numout,*) ' surface co2flx = ',f_co2flux(ji,jj) 
    213                       WRITE(numout,*) ' surface dpco2  = ',f_dpco2(ji,jj) 
    214                       WRITE(numout,*) ' MOCSY input: ji =', mig(ji),' jj = ', mjg(jj),  & 
    215                                        ' kt = ', kt  
    216                       WRITE(numout,*) 'MEDUSA - Air-Sea INPUT: unrealistic surface Carb. Chemistry' 
    217                   ENDIF      
     230                     WRITE(numout,*) ' surface T = ',ztmp(ji,jj) 
     231                     WRITE(numout,*) ' surface S = ',zsal(ji,jj) 
     232                     WRITE(numout,*) ' surface ALK = ',zalk(ji,jj) 
     233                     WRITE(numout,*) ' surface DIC = ',zdic(ji,jj) 
     234                     WRITE(numout,*) ' KW660 = ',f_kw660(ji,jj) 
     235                     WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj)    
     236                     WRITE(numout,*) ' surface pco2w  = ',f_pco2w(ji,jj) 
     237                     WRITE(numout,*) ' surface fco2w  = ',f_fco2w(ji,jj) 
     238                     WRITE(numout,*) ' surface fco2a  = ',f_fco2atm(ji,jj) 
     239                     WRITE(numout,*) ' surface co2flx = ',f_co2flux(ji,jj) 
     240                     WRITE(numout,*) ' surface dpco2  = ',f_dpco2(ji,jj) 
     241                     WRITE(numout,*) ' MOCSY input: ji =', mig(ji),' jj = ', mjg(jj),  & 
     242                          ' kt = ', kt  
     243                     WRITE(numout,*) 'MEDUSA - Air-Sea INPUT: unrealistic surface Carb. Chemistry' 
     244                  ENDIF 
    218245                  CALL ctl_stop( 'MEDUSA - Air-Sea INPUT: ',             & 
    219246                                 'unrealistic surface Carb. Chemistry -- INPUTS' ) 
    220                ENDIF      
     247               ENDIF 
    221248               !! 
    222249               !! AXY (22/06/15): use Orr & Epitalon (2015) MOCSY-2 carbonate 
     
    281308               !!                 'unrealistic surface Carb. Chemistry -- OUTPUTS' ) 
    282309               !!ENDIF      
     310#    if defined key_omip_dic 
     311               !! AXY (06/08/18): repeat carbonate chemistry calculations but 
     312               !!                 using preindustrial DIC for OMIP; note that 
     313               !!                 some outputs below are dummy since they are 
     314               !!                 the same (or should be!) as for regular DIC 
     315               CALL mocsy_interface(ztmp(ji,jj),zsal(ji,jj),zalk(ji,jj),        & 
     316                                    zomd(ji,jj),zsil(ji,jj),zpho(ji,jj),        & 
     317                                    f_pp0(ji,jj),0.0,                           & 
     318                                    gphit(ji,jj),f_kw660(ji,jj),                & 
     319                                    f_pi_xco2a(ji,jj),1,f_pi_ph(ji,jj),         & 
     320                                    f_pi_pco2w(ji,jj),f_pi_fco2w(ji,jj),        & 
     321                                    f_pi_h2co3(ji,jj),f_pi_hco3(ji,jj),         & 
     322                                    f_pi_co3(ji,jj),f_pi_omarg(ji,jj),          & 
     323                                    f_pi_omcal(ji,jj),f_BetaD_dum,              & 
     324                                    f_rhosw_dum,f_opres_dum,                    & 
     325                                    f_insitut_dum,f_pi_pco2atm(ji,jj),          & 
     326                                    f_pi_fco2atm(ji,jj),f_schmidtco2_dum,       & 
     327                                    f_kwco2_dum,f_K0_dum,                       & 
     328                                    f_pi_co2starair(ji,jj),f_pi_co2flux(ji,jj), & 
     329                                    f_pi_dpco2(ji,jj)) 
     330               !! mmol / m3 -> umol / kg 
     331               f_pi_TDIC(ji,jj) = (zomd(ji,jj) / f_rhosw(ji,jj)) * 1000. 
     332#    endif 
    283333            ENDIF 
    284334         ENDDO 
    285335      ENDDO 
    286336 
    287 #   if defined key_debug_medusa 
    288                !! JPALM add carb print: 
    289                call trc_rst_dia_stat(f_pco2w(:,:), 'f_pco2w') 
    290                call trc_rst_dia_stat(f_fco2w(:,:), 'f_fco2w') 
    291                call trc_rst_dia_stat(f_fco2atm(:,:), 'f_fco2atm') 
    292                call trc_rst_dia_stat(f_schmidtco2(:,:), 'f_schmidtco2') 
    293                call trc_rst_dia_stat(f_kwco2(:,:), 'f_kwco2') 
    294                call trc_rst_dia_stat(f_co2starair(:,:), 'f_co2starair') 
    295                call trc_rst_dia_stat(f_co2flux(:,:), 'f_co2flux') 
    296                call trc_rst_dia_stat(f_dpco2(:,:), 'f_dpco2') 
    297 #   endif 
     337#    if defined key_debug_medusa 
     338      !! JPALM add carb print: 
     339      call trc_rst_dia_stat(f_pco2w(:,:), 'f_pco2w') 
     340      call trc_rst_dia_stat(f_fco2w(:,:), 'f_fco2w') 
     341      call trc_rst_dia_stat(f_fco2atm(:,:), 'f_fco2atm') 
     342      call trc_rst_dia_stat(f_schmidtco2(:,:), 'f_schmidtco2') 
     343      call trc_rst_dia_stat(f_kwco2(:,:), 'f_kwco2') 
     344      call trc_rst_dia_stat(f_co2starair(:,:), 'f_co2starair') 
     345      call trc_rst_dia_stat(f_co2flux(:,:), 'f_co2flux') 
     346      call trc_rst_dia_stat(f_dpco2(:,:), 'f_dpco2') 
     347#     if defined key_omip_dic 
     348      call trc_rst_dia_stat(f_pi_pco2w(:,:), 'f_pi_pco2w') 
     349      call trc_rst_dia_stat(f_pi_fco2w(:,:), 'f_pi_fco2w') 
     350      call trc_rst_dia_stat(f_pi_fco2atm(:,:), 'f_pi_fco2atm') 
     351      call trc_rst_dia_stat(f_pi_co2starair(:,:), 'f_pi_co2starair') 
     352      call trc_rst_dia_stat(f_pi_co2flux(:,:), 'f_pi_co2flux') 
     353      call trc_rst_dia_stat(f_pi_dpco2(:,:), 'f_pi_dpco2')       
     354#     endif 
     355#    endif 
     356                
    298357#   else    
    299  
     358      !!----------------------------------------------------------- 
     359      !! Blackford et al. (2007) carbonate chemistry 
     360      !!----------------------------------------------------------- 
     361      !! 
    300362      DO jj = 2,jpjm1 
    301363         DO ji = 2,jpim1 
     
    304366               !! 
    305367               !! carbon dioxide (CO2); Jerry Blackford code (ostensibly  
    306                !! OCMIP-2, but not) 
     368               !! OCMIP-2, but not); this should be removed in the future 
    307369               CALL trc_co2_medusa(ztmp(ji,jj),zsal(ji,jj),zdic(ji,jj),      & 
    308370                                   zalk(ji,jj),0.0,                          & 
     
    324386               if (iters .eq. 25) then 
    325387                  IF(lwp) WRITE(numout,*) 'air-sea: ITERS WARNING, ',       & 
    326                      iters, ' AT (', ji, ', ', jj, ', 1) AT ', kt 
     388                       iters, ' AT (', ji, ', ', jj, ', 1) AT ', kt 
    327389               endif 
    328390            ENDIF 
     
    332394#   endif 
    333395#  else 
    334  
     396      !!----------------------------------------------------------- 
     397      !! No carbonate chemistry 
     398      !!----------------------------------------------------------- 
     399      !! 
    335400      DO jj = 2,jpjm1 
    336401         DO ji = 2,jpim1 
     
    374439      !! AXY (18/08/17): single kill switch on air-sea CO2 flux for budget checking 
    375440      f_co2flux(:,:) = 0. 
     441#   if defined key_omip_dic 
     442      !! AXY (06/08/18): applies to OMIP DIC too 
     443      f_pi_co2flux(:,:) = 0. 
     444#   endif       
    376445#  endif 
    377446 
     
    562631                     f_ocndpco2_2d(ji,jj) = f_dpco2(ji,jj) 
    563632                  ENDIF 
     633#   if defined key_omip_dic 
     634                  !! AXY (06/08/18): diagnostics for OMIP PI DIC 
     635                  IF( med_diag%PI_ATM_PCO2%dgsave ) THEN 
     636                     f_pi_pco2a2d(ji,jj) = f_pi_pco2atm(ji,jj) 
     637                  ENDIF 
     638                  IF( med_diag%OCN_PCO2%dgsave ) THEN 
     639                     f_pi_pco2w2d(ji,jj) = f_pi_pco2w(ji,jj) 
     640                  ENDIF 
     641                  IF( med_diag%PI_CO2FLUX%dgsave ) THEN 
     642                     !! mmol/m3/d -> mmol/m2/d 
     643                     f_pi_co2flux2d(ji,jj) = f_pi_co2flux(ji,jj) * fse3t(ji,jj,1) 
     644                  ENDIF 
     645                  IF( med_diag%PI_TCO2%dgsave ) THEN 
     646                     f_PI_TDIC2d(ji,jj) = f_PI_TDIC(ji,jj) 
     647                  ENDIF 
     648                  IF( med_diag%PI_ATM_XCO2%dgsave ) THEN 
     649                     f_pi_xco2a_2d(ji,jj) = f_pi_xco2a(ji,jj) 
     650                  ENDIF 
     651                  IF( med_diag%PI_OCN_FCO2%dgsave ) THEN 
     652                     f_pi_fco2w_2d(ji,jj) = f_pi_fco2w(ji,jj) 
     653                  ENDIF 
     654                  IF( med_diag%PI_ATM_FCO2%dgsave ) THEN 
     655                     f_pi_fco2a_2d(ji,jj) = f_pi_fco2atm(ji,jj) 
     656                  ENDIF 
     657                  IF( med_diag%PI_CO2STARAIR%dgsave ) THEN 
     658                     f_pi_co2starair_2d(ji,jj) = f_pi_co2starair(ji,jj) 
     659                  ENDIF 
     660                  IF( med_diag%PI_OCN_DPCO2%dgsave ) THEN 
     661                     f_pi_ocndpco2_2d(ji,jj) = f_pi_dpco2(ji,jj) 
     662                  ENDIF                   
     663                  IF( med_diag%PI_FGCO2%dgsave ) THEN 
     664                     !! convert from  mol/m2/day to kg/m2/s 
     665                     !! mmol-C/m3/d -> kg-CO2/m2/s 
     666                     pi_fgco2(ji,jj) = f_pi_co2flux(ji,jj) * fse3t(ji,jj,1) * & 
     667                          CO2flux_conv 
     668                  ENDIF 
     669#   endif                   
    564670               ENDIF 
    565671            ENDIF 
     
    567673      ENDDO 
    568674 
    569 # endif 
     675#  endif 
    570676 
    571677      !!----------------------------------------------------------------- 
     
    660766         ENDDO 
    661767      ENDDO 
    662  
     768# endif 
     769       
    663770   END SUBROUTINE air_sea 
    664771 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_diag_slice.F90

    r9114 r10045  
    66   !! History : 
    77   !!   -   ! 2017-04 (M. Stringer)        Code taken from trcbio_medusa.F90 
     8   !!   -   ! 2018-08 (A. Yool)            add OMIP preindustrial DIC 
    89   !!---------------------------------------------------------------------- 
    910#if defined key_medusa 
     
    236237            DEALLOCATE( f_ocndpco2_2d ) 
    237238         ENDIF 
     239#  if defined key_omip_dic 
     240      !!---------------------------------------------------------------------- 
     241      !! AXY (03/08/18): additional diagnostics for OMIP preindustrial DIC; 
     242      !!                 basically a subset of the normal diagnostics with 
     243      !!                 "PI_" stuck on the front; only includes those CO2 
     244      !!                 diagnostics that should differ under PI conditions 
     245      !!---------------------------------------------------------------------- 
     246         IF( med_diag%PI_ATM_PCO2%dgsave ) THEN 
     247            CALL iom_put( "PI_ATM_PCO2"  , f_pi_pco2a2d ) 
     248            DEALLOCATE( f_pi_pco2a2d ) 
     249         ENDIF 
     250         IF( med_diag%PI_OCN_PH%dgsave ) THEN 
     251            CALL iom_put( "PI_OCN_PH"  , f_pi_ph2d ) 
     252            DEALLOCATE( f_pi_ph2d ) 
     253         ENDIF 
     254         IF( med_diag%PI_OCN_PCO2%dgsave ) THEN 
     255            CALL iom_put( "PI_OCN_PCO2"  , f_pi_pco2w2d ) 
     256            DEALLOCATE( f_pi_pco2w2d ) 
     257         ENDIF 
     258         IF( med_diag%PI_OCNH2CO3%dgsave ) THEN 
     259            CALL iom_put( "PI_OCNH2CO3"  , f_pi_h2co32d ) 
     260            DEALLOCATE( f_pi_h2co32d ) 
     261         ENDIF 
     262         IF( med_diag%PI_OCN_HCO3%dgsave ) THEN 
     263            CALL iom_put( "PI_OCN_HCO3"  , f_pi_hco32d ) 
     264            DEALLOCATE( f_pi_hco32d ) 
     265         ENDIF 
     266         IF( med_diag%PI_OCN_CO3%dgsave ) THEN 
     267            CALL iom_put( "PI_OCN_CO3"  , f_pi_co32d ) 
     268            DEALLOCATE( f_pi_co32d ) 
     269         ENDIF 
     270         IF( med_diag%PI_CO2FLUX%dgsave ) THEN 
     271            CALL iom_put( "PI_CO2FLUX"  , f_pi_co2flux2d ) 
     272            DEALLOCATE( f_pi_co2flux2d ) 
     273         ENDIF 
     274         IF( med_diag%PI_FGCO2%dgsave ) THEN 
     275            CALL iom_put( "PI_FGCO2"  , pi_fgco2 ) 
     276            DEALLOCATE( pi_fgco2 ) 
     277         ENDIF 
     278         IF( med_diag%PI_OM_CAL%dgsave ) THEN 
     279            CALL iom_put( "PI_OM_CAL"  , f_pi_omcal ) 
     280            !! AXY: WHY IS THIS NOT DEALLOCATED? 
     281         ENDIF 
     282         IF( med_diag%PI_OM_ARG%dgsave ) THEN 
     283            CALL iom_put( "PI_OM_ARG"  , f_pi_omarg ) 
     284            !! AXY: WHY IS THIS NOT DEALLOCATED? 
     285         ENDIF 
     286         IF( med_diag%PI_TCO2%dgsave ) THEN 
     287            CALL iom_put( "PI_TCO2"  , f_pi_TDIC2d ) 
     288            DEALLOCATE( f_pi_TDIC2d ) 
     289         ENDIF 
     290         IF( med_diag%PI_ATM_XCO2%dgsave ) THEN 
     291            CALL iom_put( "PI_ATM_XCO2"  ,   f_pi_xco2a_2d      ) 
     292            DEALLOCATE( f_pi_xco2a_2d ) 
     293         ENDIF 
     294         IF( med_diag%PI_OCN_FCO2%dgsave ) THEN 
     295            CALL iom_put( "PI_OCN_FCO2"  ,   f_pi_fco2w_2d      ) 
     296            DEALLOCATE( f_pi_fco2w_2d ) 
     297         ENDIF 
     298         IF( med_diag%PI_ATM_FCO2%dgsave ) THEN 
     299            CALL iom_put( "PI_ATM_FCO2"  ,   f_pi_fco2a_2d      ) 
     300            DEALLOCATE( f_pi_fco2a_2d ) 
     301         ENDIF 
     302         IF( med_diag%PI_CO2STARAIR%dgsave ) THEN 
     303            CALL iom_put( "PI_CO2STARAIR"  , f_pi_co2starair_2d ) 
     304            DEALLOCATE( f_pi_co2starair_2d ) 
     305         ENDIF 
     306         IF( med_diag%PI_OCN_DPCO2%dgsave ) THEN 
     307            CALL iom_put( "PI_OCN_DPCO2"  ,  f_pi_ocndpco2_2d   ) 
     308            DEALLOCATE( f_pi_ocndpco2_2d ) 
     309         ENDIF 
     310#  endif 
     311          
    238312# endif                      
    239313      ELSE IF (jk.eq.i0100) THEN  
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90

    r9257 r10045  
    77   !!   -   ! 2017-04 (M. Stringer)        Code taken from trcbio_medusa.F90 
    88   !!   -   ! 2017-08 (A. Yool)            Add slow-sinking detrius variables 
     9   !!   -   ! 2018-08 (A. Yool)            add OMIP preindustrial DIC 
    910   !!---------------------------------------------------------------------- 
    1011#if defined key_medusa 
     
    186187      f_omarg(:,:)    = 0.0 
    187188      f_omcal(:,:)    = 0.0 
     189# if defined key_omip_dic 
     190      zomd(:,:)          = 0.0 
     191      f_pi_xco2a(:,:)    = 0.0 
     192      f_pi_pco2w(:,:)    = 0.0 
     193      f_pi_ph(:,:)       = 0.0 
     194      f_pi_co2flux(:,:)  = 0.0  
     195      f_pi_pco2atm(:,:)  = 0.0 
     196      f_pi_h2co3(:,:)    = 0.0 
     197      f_pi_hco3(:,:)     = 0.0 
     198      f_pi_co3(:,:)      = 0.0 
     199      f_pi_omarg(:,:)    = 0.0 
     200      f_pi_omcal(:,:)    = 0.0 
     201# endif       
    188202      !! 
    189203      !! AXY (08/08/17): zero slow detritus fluxes 
     
    382396            f_pco2a2d(:,:)      = 0.0 !! 
    383397         ENDIF 
     398#  if defined key_omip_dic          
     399         IF( med_diag%PI_ATM_PCO2%dgsave ) THEN 
     400            ALLOCATE( f_pi_pco2a2d(1:jpi, 1:jpj) ) 
     401            f_pi_pco2a2d(:,:)      = 0.0 !! 
     402         ENDIF 
     403#  endif 
    384404!! 
    385405!! skip OCN_PH diagnostic here 
     
    389409            f_pco2w2d(:,:)      = 0.0 !! 
    390410         ENDIF 
     411#  if defined key_omip_dic          
     412         IF( med_diag%PI_OCN_PCO2%dgsave ) THEN 
     413            ALLOCATE( f_pi_pco2w2d(1:jpi, 1:jpj) ) 
     414            f_pi_pco2w2d(:,:)   = 0.0 !! 
     415         ENDIF 
     416#  endif 
    391417!! 
    392418!! skip OCNH2CO3, OCN_HCO3, OCN_CO3 diagnostics here 
     
    396422            f_co2flux2d(:,:)      = 0.0 !! 
    397423         ENDIF 
     424#  if defined key_omip_dic          
     425         IF( med_diag%PI_CO2FLUX%dgsave ) THEN 
     426            ALLOCATE( f_pi_co2flux2d(1:jpi, 1:jpj) ) 
     427            f_pi_co2flux2d(:,:)   = 0.0 !! 
     428         ENDIF 
     429#  endif 
    398430!! 
    399431!! skip OM_XXX diagnostics here 
     
    403435            f_TDIC2d(:,:)      = 0.0 !! 
    404436         ENDIF 
     437#  if defined key_omip_dic          
     438         IF( med_diag%PI_TCO2%dgsave ) THEN 
     439            ALLOCATE( f_pi_TDIC2d(1:jpi, 1:jpj) ) 
     440            f_pi_TDIC2d(:,:)      = 0.0 !! 
     441         ENDIF 
     442#  endif 
    405443         IF( med_diag%TALK%dgsave ) THEN 
    406444            ALLOCATE( f_TALK2d(1:jpi, 1:jpj) ) 
     
    662700            f_ocndpco2_2d(:,:)      = 0.0 !! 
    663701         ENDIF 
     702#  if defined key_omip_dic          
     703         IF( med_diag%PI_ATM_XCO2%dgsave ) THEN 
     704            ALLOCATE( f_pi_xco2a_2d(1:jpi, 1:jpj) ) 
     705            f_pi_xco2a_2d(:,:)      = 0.0 !! 
     706         ENDIF 
     707         IF( med_diag%PI_OCN_FCO2%dgsave ) THEN 
     708            ALLOCATE( f_pi_fco2w_2d(1:jpi, 1:jpj) ) 
     709            f_pi_fco2w_2d(:,:)      = 0.0 !! 
     710         ENDIF 
     711         IF( med_diag%PI_ATM_FCO2%dgsave ) THEN 
     712            ALLOCATE( f_pi_fco2a_2d(1:jpi, 1:jpj) ) 
     713            f_pi_fco2a_2d(:,:)      = 0.0 !! 
     714         ENDIF 
     715         IF( med_diag%PI_CO2STARAIR%dgsave ) THEN 
     716            ALLOCATE( f_pi_co2starair_2d(1:jpi, 1:jpj) ) 
     717            f_pi_co2starair_2d(:,:)      = 0.0 !! 
     718         ENDIF 
     719         IF( med_diag%OCN_PI_DPCO2%dgsave ) THEN 
     720            ALLOCATE( f_pi_ocndpco2_2d(1:jpi, 1:jpj) ) 
     721            f_pi_ocndpco2_2d(:,:)      = 0.0 !! 
     722         ENDIF 
     723         IF( med_diag%PI_FGCO2%dgsave ) THEN 
     724            ALLOCATE( pi_fgco2(1:jpi, 1:jpj) ) 
     725            pi_fgco2(:,:)      = 0.0 !! 
     726         ENDIF 
     727#  endif 
    664728# endif   
    665729         IF( med_diag%TPP3%dgsave ) THEN 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_mod.F90

    r8521 r10045  
    88   !!   -   ! 2017-04 (M. Stringer)        Code taken from trcbio_medusa.F90 
    99   !!   -   ! 2017-08 (A. Yool)            Slow detritus, ML-avg chl variables 
     10   !!   -   ! 2018-08 (A. Yool)            add OMIP preindustrial DIC 
    1011   !!---------------------------------------------------------------------- 
    1112#if defined key_medusa 
     
    3738# if defined key_mocsy 
    3839   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zpho 
     40# endif 
     41# if defined key_omip_dic 
     42   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zomd 
    3943# endif 
    4044 
     
    162166   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pco2atm 
    163167 
     168#  if defined key_omip_dic 
     169   !! AXY (06/08/18): OMIP PI DIC additions 
     170   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_xco2a 
     171   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_ph,f_pi_pco2w,f_pi_h2co3 
     172   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_hco3,f_pi_co3,f_pi_co2flux 
     173   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_TDIC 
     174   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_omcal,f_pi_omarg 
     175   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_pco2atm 
     176#  endif 
     177    
    164178   !! Carbon, alkalinity production and consumption 
    165179   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: fcomm_resp 
     
    237251   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_ocnk0_2d, f_co2starair_2d 
    238252   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_ocndpco2_2d 
     253#  if defined key_omip_dic 
     254   !! AXY (06/08/18): OMIP PI DIC additions 
     255   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_xco2a_2d, f_pi_fco2w_2d, f_pi_fco2a_2d 
     256   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_co2starair_2d 
     257   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_pi_ocndpco2_2d 
     258#  endif 
    239259# endif 
    240260   !! 
     
    250270   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: fbddtalk,fbddtdic,fbddtdife 
    251271   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: fbddtdin,fbddtdisi 
     272#  if defined key_omip_dic 
     273   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: pi_fgco2 
     274#  endif 
    252275   !! 
    253276   !! 3D var for new CMIP6 diagnostics 
     
    291314# if defined key_mocsy 
    292315               zpho(jpi,jpj),                                         & 
     316# endif 
     317# if defined key_omip_dic 
     318               zomd(jpi,jpj),                                         & 
    293319# endif 
    294320               fthetan(jpi,jpj),fprn(jpi,jpj),frn(jpi,jpj),           & 
     
    370396               f_kw660(jpi,jpj),f_o2flux(jpi,jpj),f_o2sat(jpi,jpj),   & 
    371397               f_omcal(jpi,jpj),f_omarg(jpi,jpj),                     & 
    372                f_pco2atm(jpi,jpj),                 & 
     398               f_pco2atm(jpi,jpj),                                    & 
     399#  if defined key_omip_dic 
     400               f_pi_xco2a(jpi,jpj),                                        & 
     401               f_pi_ph(jpi,jpj),f_pi_pco2w(jpi,jpj),f_pi_h2co3(jpi,jpj),   & 
     402               f_pi_hco3(jpi,jpj),f_pi_co3(jpi,jpj),f_pi_co2flux(jpi,jpj), & 
     403               f_pi_TDIC(jpi,jpj),                                         & 
     404               f_pi_omcal(jpi,jpj),f_pi_omarg(jpi,jpj),                    & 
     405               f_pi_pco2atm(jpi,jpj),                                      & 
     406#  endif                
    373407               fcomm_resp(jpi,jpj),                                   & 
    374408               fcar_prod(jpi,jpj),fcar_cons(jpi,jpj),                 & 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90

    r9163 r10045  
    88   !!   -   ! 2017-08 (A. Yool)            Amend slow-detritus bug 
    99   !!   -   ! 2017-08 (A. Yool)            Reformatting for clarity 
     10   !!   -   ! 2018-08 (A. Yool)            add OMIP preindustrial DIC 
    1011   !!---------------------------------------------------------------------- 
    1112#if defined key_medusa 
     
    3839                                   f_benout_si,                              & 
    3940                                   f_co2flux, f_o2flux,                      & 
     41# if defined key_omip_dic 
     42                                   f_pi_co2flux,                             & ! AXY (06/08/18) 
     43# endif                                    
    4044                                   f_riv_loc_alk, f_riv_loc_c,               & 
    4145                                   f_riv_loc_n, f_riv_loc_si,                &  
     
    395399               fcar_prod(ji,jj) = fcar_prod(ji,jj) + ( fse3t(ji,jj,jk) *     & 
    396400                                                       fc_prod ) 
     401#  if defined key_omip_dic 
     402               !! AXY (06/08/18): OMIP PI DIC has the same BGC fluxes as 
     403               !!                 normal DIC, with the exception of its 
     404               !!                 air-sea exchange; see below 
     405               btra(ji,jj,jpomd_lc) = btra(ji,jj,jpdic_lc) 
     406#  endif                
    397407            ENDIF 
    398408         ENDDO 
     
    573583                  btra(ji,jj,jpdic_lc) = btra(ji,jj,jpdic_lc) + (b0 *              & 
    574584                                                           f_co2flux(ji,jj)) 
     585#  if defined key_omip_dic 
     586                  !! AXY (06/08/18): air-sea CO2 flux is the only difference 
     587                  !!                 between DIC and OMIP PI DIC tracers 
     588                  btra(ji,jj,jpomd_lc) = btra(ji,jj,jpomd_lc) + (b0 *              & 
     589                                                           f_pi_co2flux(ji,jj))                   
     590#  endif                    
    575591                  !! 
    576592                  !! O2 flux (mol/m3/s -> mmol/m3/d) 
     
    624640                  IF (lwp) write (numout,*) 'btra(ji,jj,jpoxy_lc)(',jk,')  = ', & 
    625641                                            btra(ji,jj,jpoxy_lc) 
     642#   if defined key_omip_dic 
     643                  IF (lwp) write (numout,*) 'btra(ji,jj,jpomd_lc)(',jk,')  = ', & 
     644                                            btra(ji,jj,jpomd_lc) 
     645#   endif 
    626646#  endif 
    627647               endif 
     
    731751                  tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) +                & 
    732752                                        (btra(ji,jj,jpoxy_lc) / 86400.) 
     753#  if defined key_omip_dic 
     754                  tra(ji,jj,jk,jpomd) = tra(ji,jj,jk,jpomd) +                & 
     755                                        (btra(ji,jj,jpomd_lc) / 86400.) 
     756#  endif 
    733757# endif 
    734758               endif 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/carb_chem.F90

    r9385 r10045  
    66   !! History : 
    77   !!   -   ! 2017-04 (M. Stringer)        Code taken from trcbio_medusa.F90 
     8   !!   -   ! 2018-08 (A. Yool)            no OMIP preindustrial DIC changed needed 
    89   !!---------------------------------------------------------------------- 
    910#if defined key_roam 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/detritus.F90

    r8521 r10045  
    22   !!====================================================================== 
    33   !!                         ***  MODULE detritus_mod  *** 
    4    !! Calculates detritus processes and fast-sinking detritus 
     4   !! Calculates slow detritus remineralisation and sinking 
    55   !!====================================================================== 
    66   !! History : 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/detritus_fast_sink.F90

    r8441 r10045  
    22   !!====================================================================== 
    33   !!                         ***  MODULE detritus_fast_sink_mod  *** 
    4    !! Calculates fast-sinking detritus 
     4   !! Calculates fast-sinking detritus processes (plus other diagnostics) 
    55   !!====================================================================== 
    66   !! History : 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/par_medusa.F90

    r8441 r10045  
    1010   !!              -   !  2011-04  (A. Yool) updated for ROAM project 
    1111   !!       -   !  2013-03  (A. Yool) updated for v3.5 NEMO 
     12   !!              -   !  2018-08  (A. Yool) add OMIP preindustrial DIC 
    1213   !!---------------------------------------------------------------------- 
    1314   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)  
     
    3334   LOGICAL, PUBLIC, PARAMETER ::   lk_medusa     = .TRUE.   !: PTS flag  
    3435# if defined key_roam 
     36#  if defined key_omip_dic 
     37   INTEGER, PUBLIC, PARAMETER ::   jp_medusa     =  16      !: number of PTS tracers 
     38#  else 
    3539   INTEGER, PUBLIC, PARAMETER ::   jp_medusa     =  15      !: number of PTS tracers 
     40#  endif 
    3641   INTEGER, PUBLIC, PARAMETER ::   jp_medusa_2d  =  225     !: additional 2d output arrays (used if ln_diatrc=T) 
    3742   INTEGER, PUBLIC, PARAMETER ::   jp_medusa_3d  =  5       !: additional 3d output arrays (used if ln_diatrc=T) 
     
    6166   INTEGER, PUBLIC, PARAMETER ::   jpalk  =  jp_lm + 14     !: alkalinity 
    6267   INTEGER, PUBLIC, PARAMETER ::   jpoxy  =  jp_lm + 15     !: dissolved oxygen concentration 
     68#  if defined key_omip_dic 
     69   INTEGER, PUBLIC, PARAMETER ::   jpomd  =  jp_lm + 16     !: OMIP preindustrial DIC 
     70#  end    
    6371# endif 
    6472 
     
    8088   INTEGER, PUBLIC, PARAMETER ::   jpalk_lc  =  14     !: alkalinity 
    8189   INTEGER, PUBLIC, PARAMETER ::   jpoxy_lc  =  15     !: dissolved oxygen concentration 
     90#  if defined key_omip_dic 
     91   INTEGER, PUBLIC, PARAMETER ::   jpomd_lc  =  16     !: OMIP preindustrial DIC 
     92#  end    
    8293# endif 
    8394 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/phytoplankton.F90

    r9114 r10045  
    22   !!====================================================================== 
    33   !!                         ***  MODULE phytoplankton_mod  *** 
    4    !! Calculates the phytoplankton growth 
     4   !! Calculates phytoplankton growth 
    55   !!====================================================================== 
    66   !! History : 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/plankton.F90

    r8441 r10045  
    22   !!====================================================================== 
    33   !!                         ***  MODULE plankton_mod  *** 
    4    !! Calculate the carbon chemistry for the whole ocean 
     4   !! Calculates phytoplankton and zooplankton terms 
    55   !!====================================================================== 
    66   !! History : 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r9385 r10045  
    2323   !!  -   !  2016-11  (A. Yool)              Updated diags for CMIP6 
    2424   !!  -   !  2017-05  (A. Yool)              Added extra DMS calculation 
     25   !!  -   !  2017-05  (M. Stringer)          Code reorganisation 
    2526   !!  -   !  2017-11  (J. Palm, A. Yool)     Diagnose tracer excursions 
     27   !!  -   !  2018-08  (A. Yool)              add OMIP preindustrial DIC 
    2628   !!---------------------------------------------------------------------- 
    2729   !! 
     
    7274                                            zalk, zdic, zoxy, zsal, ztmp,   & 
    7375# endif 
     76# if defined key_omip_dic 
     77                                            zomd,                           & 
     78# endif                                             
    7479# if defined key_mocsy 
    7580                                            zpho,                           & 
     
    96101      USE oce,                        ONLY: tsb, tsn, PCO2a_in_cpl 
    97102      USE par_kind,                   ONLY: wp 
    98       USE par_medusa,                 ONLY: jpalk, jpchd, jpchn, jpdet,     & 
    99                                             jpdic, jpdin, jpdtc, jpfer,     & 
    100                                             jpoxy, jppds, jpphd, jpphn,     & 
    101                                             jpsil, jpzme, jpzmi 
     103      !! AXY (06/08/28): fragmented to permit tracer options 
     104      USE par_medusa,                 ONLY: jpchd, jpchn, jpphn, jpphd,     & 
     105                                            jppds, jpzmi, jpzme, jpdet,     & 
     106# if defined key_roam 
     107                                            jpdtc, jpdic, jpalk, jpoxy,     & 
     108#  if defined key_omip_dic 
     109                                            jpomd,                          & 
     110#  endif 
     111# endif 
     112                                            jpdin, jpsil, jpfer 
    102113      USE par_oce,                    ONLY: jp_sal, jp_tem, jpi, jpim1,     & 
    103114                                            jpj, jpjm1, jpk 
     
    329340             WRITE(numout,*) '** MEDUSA Atm xCO2 fixed to pre-industrial value **' 
    330341         !! f_xco2a(:,:) = 284.725       !! CMIP5 pre-industrial pCO2 
    331          f_xco2a(:,:) = 284.317          !! CMIP6 pre-industrial pCO2  
     342         f_xco2a(:,:) = 284.317          !! CMIP6 pre-industrial pCO2 
    332343      ELSE       
    333344         !! xCO2 from file 
     
    371382         ENDIF 
    372383      ENDIF 
    373   
     384 
     385#  if defined key_omip_dic 
     386         f_xco2a(:,:) = 284.317          !! CMIP6 pre-industrial pCO2 
     387#  endif 
     388       
    374389      !! Writing xCO2 in output on start and on the 1st tsp of each  month 
    375390      IF ( (kt == nittrc000 .AND. .NOT.ln_rsttr) .OR.                        & 
     
    378393                                       ';  current date:', ndastp 
    379394          call trc_rst_dia_stat(f_xco2a(:,:), 'atm xCO2') 
     395#  if defined key_omip_dic 
     396          call trc_rst_dia_stat(f_pi_xco2a(:,:), 'PI atm xCO2') 
     397#  endif 
    380398      ENDIF 
    381399# endif 
     
    456474      !! OPEN vertical loop 
    457475      DO jk = 1,jpk 
     476 
    458477         !! OPEN horizontal loops 
    459478         DO jj = 2,jpjm1 
     
    503522         ENDDO 
    504523 
     524         !! OPEN horizontal loops 
    505525         DO jj = 2,jpjm1 
    506526            DO ji = 2,jpim1 
     
    524544# if defined key_roam 
    525545         !! extra MEDUSA-2 tracers 
     546         !! OPEN horizontal loops 
    526547         DO jj = 2,jpjm1 
    527548            DO ji = 2,jpim1 
     
    559580# endif 
    560581 
     582# if defined key_roam && defined key_omip_dic 
     583         DO jj = 2,jpjm1 
     584            DO ji = 2,jpim1 
     585               IF (tmask(ji,jj,jk) == 1) THEN 
     586                  !! OMIP PI DIC 
     587                  zomd(ji,jj) = trn(ji,jj,jk,jpomd) 
     588               ENDIF 
     589            ENDDO 
     590         ENDDO 
     591# endif 
     592          
    561593# if defined key_roam 
    562594         !! --------------------------------------------- 
     
    676708                           ji, jj, jk, kt 
    677709                     endif 
     710#  if defined key_omip_dic 
     711                     if (trn(ji,jj,jk,jpomd).lt.0.) then 
     712                        IF (lwp) write (numout,*)                            & 
     713                           '------------------------------' 
     714                        IF (lwp) write (numout,*) 'NEGATIVE OMD ERROR =',    & 
     715                           trn(ji,jj,jk,jpomd) 
     716                        IF (lwp) write (numout,*) 'NEGATIVE OMD ERROR @',    & 
     717                           ji, jj, jk, kt 
     718                     endif 
    678719#  endif 
    679720                  endif 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcctl_medusa.F90

    r5726 r10045  
    99   !!              -   !  2008-11  (A. Yool) continuing adaptation for MEDUSA 
    1010   !!              -   !  2010-03  (A. Yool) updated for branch inclusion 
     11   !!              -   !  2018-08  (A. Yool) add OMIP preindustrial DIC 
    1112   !!---------------------------------------------------------------------- 
    12  
    1313#if defined key_medusa 
    1414 
     
    4545! ----------------------- 
    4646# if defined key_roam 
     47#  if defined key_omip_dic      
     48      IF (jp_medusa /= 16) THEN  
     49          IF (lwp) THEN  
     50              WRITE (numout,*) ' ===>>>> : W A R N I N G ' 
     51              WRITE (numout,*) ' =======   ============= ' 
     52              WRITE (numout,*)                             & 
     53              &   ' STOP, change jp_medusa to 16 in '      & 
     54              &  ,' par_medusa.F90 '   
     55          END IF  
     56          STOP 'TRC_CTL' 
     57      END IF  
     58#  else 
    4759      IF (jp_medusa /= 15) THEN  
    4860          IF (lwp) THEN  
     
    5567          STOP 'TRC_CTL' 
    5668      END IF  
     69#  endif 
    5770# else 
    5871      IF (jp_medusa /= 11) THEN  
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90

    r9385 r10045  
    99   !!              -   !  2010-03  (A. Yool) updated for branch inclusion 
    1010   !!              -   !  2011-04  (A. Yool) updated for ROAM project 
     11   !!              -   !  2018-08  (A. Yool) add OMIP preindustrial DIC 
    1112   !!---------------------------------------------------------------------- 
    1213#if defined key_medusa 
     
    207208      !! dissolved oxygen                 (nominal average value; typically initialised from climatology) 
    208209      trn(:,:,:,jpoxy) = 175. 
     210#  if defined key_omip_dic 
     211      !! 
     212      !! OMIP preindustrial DIC           (nominal average value; typically initialised from climatology) 
     213      trn(:,:,:,jpomd) = 2330. 
     214#  endif 
    209215      !! 
    210216      IF(lwp) WRITE(numout,*) ' trc_ini_medusa: MEDUSA-2 fields initialised to defaults' 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90

    r9258 r10045  
    1212   !!              -   !  2015-11  (J. Palmieri) added iom_use for diags 
    1313   !!              -   !  2016-11  (A. Yool) updated diags for CMIP6 
     14   !!              -   !  2018-08  (A. Yool) add OMIP preindustrial DIC 
    1415   !!---------------------------------------------------------------------- 
    1516#if defined key_medusa 
     
    490491         &   ' key_debug_medusa                                                       = INACTIVE' 
    491492# endif 
     493# if defined key_omip_dic 
     494         WRITE(numout,*)     & 
     495         &   ' key_omip_dic                                                           = ACTIVE' 
     496#else 
     497         WRITE(numout,*)     & 
     498         &   ' key_omip_dic                                                           = INACTIVE' 
     499# endif 
    492500         WRITE(numout,*) ' ' 
    493501 
     
    23892397      ENDIF 
    23902398 
     2399# if defined key_omip_dic 
     2400      !!---------------------------------------------------------------------- 
     2401      !! AXY (03/08/18): additional diagnostics for OMIP preindustrial DIC;  
     2402      !!                 basically a subset of the normal diagnostics with 
     2403      !!                 "PI_" stuck on the front; only includes those CO2 
     2404      !!                 diagnostics that should differ under PI conditions 
     2405      !!---------------------------------------------------------------------- 
     2406      IF  (iom_use("PI_ATM_PCO2")) THEN  
     2407          med_diag%PI_ATM_PCO2%dgsave = .TRUE. 
     2408      ELSE  
     2409          med_diag%PI_ATM_PCO2%dgsave = .FALSE. 
     2410      ENDIF 
     2411      IF  (iom_use("PI_OCN_PH")) THEN  
     2412          med_diag%PI_OCN_PH%dgsave = .TRUE. 
     2413      ELSE  
     2414          med_diag%PI_OCN_PH%dgsave = .FALSE. 
     2415      ENDIF 
     2416      IF  (iom_use("PI_OCN_PCO2")) THEN  
     2417          med_diag%PI_OCN_PCO2%dgsave = .TRUE. 
     2418      ELSE  
     2419          med_diag%PI_OCN_PCO2%dgsave = .FALSE. 
     2420      ENDIF 
     2421      IF  (iom_use("PI_OCNH2CO3")) THEN  
     2422          med_diag%PI_OCNH2CO3%dgsave = .TRUE. 
     2423      ELSE  
     2424          med_diag%PI_OCNH2CO3%dgsave = .FALSE. 
     2425      ENDIF 
     2426      IF  (iom_use("PI_OCN_HCO3")) THEN  
     2427          med_diag%PI_OCN_HCO3%dgsave = .TRUE. 
     2428      ELSE  
     2429          med_diag%PI_OCN_HCO3%dgsave = .FALSE. 
     2430      ENDIF 
     2431      IF  (iom_use("PI_OCN_CO3")) THEN  
     2432          med_diag%PI_OCN_CO3%dgsave = .TRUE. 
     2433      ELSE  
     2434          med_diag%PI_OCN_CO3%dgsave = .FALSE. 
     2435      ENDIF 
     2436      IF  (iom_use("PI_CO2FLUX")) THEN  
     2437          med_diag%PI_CO2FLUX%dgsave = .TRUE. 
     2438      ELSE  
     2439          med_diag%PI_CO2FLUX%dgsave = .FALSE. 
     2440      ENDIF 
     2441      IF  (iom_use("PI_OM_CAL")) THEN  
     2442          med_diag%PI_OM_CAL%dgsave = .TRUE. 
     2443      ELSE  
     2444          med_diag%PI_OM_CAL%dgsave = .FALSE. 
     2445      ENDIF 
     2446      IF  (iom_use("PI_OM_ARG")) THEN  
     2447          med_diag%PI_OM_ARG%dgsave = .TRUE. 
     2448      ELSE  
     2449          med_diag%PI_OM_ARG%dgsave = .FALSE. 
     2450      ENDIF 
     2451      IF  (iom_use("PI_TCO2")) THEN  
     2452          med_diag%PI_TCO2%dgsave = .TRUE. 
     2453      ELSE  
     2454          med_diag%PI_TCO2%dgsave = .FALSE. 
     2455      ENDIF 
     2456      IF  (iom_use("PI_ATM_XCO2")) THEN  
     2457          med_diag%PI_ATM_XCO2%dgsave = .TRUE. 
     2458      ELSE  
     2459          med_diag%PI_ATM_XCO2%dgsave = .FALSE. 
     2460      ENDIF 
     2461      IF  (iom_use("PI_OCN_FCO2")) THEN  
     2462          med_diag%PI_OCN_FCO2%dgsave = .TRUE. 
     2463      ELSE  
     2464          med_diag%PI_OCN_FCO2%dgsave = .FALSE. 
     2465      ENDIF 
     2466      IF  (iom_use("PI_ATM_FCO2")) THEN  
     2467          med_diag%PI_ATM_FCO2%dgsave = .TRUE. 
     2468      ELSE  
     2469          med_diag%PI_ATM_FCO2%dgsave = .FALSE. 
     2470      ENDIF 
     2471      IF  (iom_use("PI_CO2STARAIR")) THEN  
     2472          med_diag%PI_CO2STARAIR%dgsave = .TRUE. 
     2473      ELSE  
     2474          med_diag%PI_CO2STARAIR%dgsave = .FALSE. 
     2475      ENDIF 
     2476      IF  (iom_use("PI_OCN_DPCO2")) THEN  
     2477          med_diag%PI_OCN_DPCO2%dgsave = .TRUE. 
     2478      ELSE  
     2479          med_diag%PI_OCN_DPCO2%dgsave = .FALSE. 
     2480      ENDIF 
     2481# endif       
     2482       
    23912483   END SUBROUTINE   trc_nam_iom_medusa 
    23922484    
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcopt_medusa.F90

    r8074 r10045  
    1212   !!              -   !  2008-11  (A. Yool) continuing adaptation for MEDUSA 
    1313   !!              -   !  2010-03  (A. Yool) updated for branch inclusion 
     14   !!              -   !  2014-08  (A. Yool) euphotic depth correction 
     15   !!              -   !  2015-07  (A. Yool) include rolling average irradiance 
    1416   !!---------------------------------------------------------------------- 
    1517#if defined key_medusa 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90

    r8442 r10045  
    1111   !!              -   !  2010-03  (A. Yool) updated for branch inclusion 
    1212   !!              -   !  2011-04  (A. Yool) updated for ROAM project 
     13   !!              -   !  2014-XX  (A. Yool) various minor fixes 
     14   !!              -   !  2015-11  (J. Palmieri) IOM 
     15   !!              -   !  2016-03  (J. Palmieri) namelist dust changes 
     16   !!              -   !  2016-06  (J. Palmieri) atm coupling  
     17   !!              -   !  2016-07  (J. Palmieri) dust unit conversions 
    1318   !!---------------------------------------------------------------------- 
    1419#if defined key_medusa 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsms_medusa.F90

    r9163 r10045  
    88   !!              -   !  2008-11  (A. Yool) continuing adaptation for MEDUSA 
    99   !!              -   !  2010-03  (A. Yool) updated for branch inclusion 
     10   !!              -   !  2017-02  (A. Yool, J. Palmieri) move dust call 
    1011   !!              -   !  2017-08  (A. Yool) amend for slow detritus bug 
    1112   !!---------------------------------------------------------------------- 
  • branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/TOP_SRC/MEDUSA/zooplankton.F90

    r8441 r10045  
    22   !!====================================================================== 
    33   !!                         ***  MODULE zooplankton_mod  *** 
    4    !! Calculates the zooplankton grazing 
     4   !! Calculates zooplankton grazing 
    55   !!====================================================================== 
    66   !! History : 
Note: See TracChangeset for help on using the changeset viewer.