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 11726 for branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM – NEMO

Ignore:
Timestamp:
2019-10-18T16:49:33+02:00 (4 years ago)
Author:
jpalmier
Message:

add Changes to enable Alkalinity geo-ingeneering tests within MEDUSA

Location:
branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM
Files:
8 edited

Legend:

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

    r9385 r11726  
    376376       <field id= "SEAFLRC"    long_name="Seafloor flux of C"                        unit="mmol-C/m2/d"  /> 
    377377       <field id= "SEAFLRCA"   long_name="Seafloor flux of CaCO3"                    unit="mmol-C/m2/d"  /> 
    378        <field id= "MED_QSR"    long_name="Sea surface radiation"                     unit="W/m2"        /> 
    379        <field id= "MED_XPAR"   long_name="Top level radiation"                       unit="W/m2"        /> 
     378       <field id= "GEOENG_ALK" long_name="Surface Geo-ingeneering flux of CaCO3"     unit="mmol-eq/m2/d" /> 
     379       <field id= "MAED_QSR"    long_name="Sea surface radiation"                    unit="W/m2"         /> 
     380       <field id= "MED_XPAR"   long_name="Top level radiation"                       unit="W/m2"         /> 
    380381       <field id= "INTFLX_N"   long_name="Integrated N  cycle fluxes"                unit="mmol-N/m2/d"  /> 
    381382       <field id= "INTFLX_SI"  long_name="Integrated Si cycle fluxes"                unit="mmol-Si/m2/d" /> 
     
    22682269      <field field_ref= "SEAFLRC"    name="SEAFLRC"    /> 
    22692270      <field field_ref= "SEAFLRCA"   name="SEAFLRCA"   /> 
     2271      <field field_ref= "GEOENG_ALK" name="GEOENG_ALK" /> 
    22702272      <field field_ref= "MED_QSR"    name="MED_QSR"    /> 
    22712273      <field field_ref= "MED_XPAR"   name="MED_XPAR"   /> 
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_med_diag_iomput.F90

    r10020 r11726  
    445445                                     fse3t(ji,jj,jk)) 
    446446               ENDIF 
     447               !! AXY (16/10/19) 
     448               IF( med_diag%GEOENG_ALK%dgsave ) THEN 
     449                  geoengalk2d(ji,jj) = geoengalk2d(ji,jj) +                  & 
     450                                       (f_geoeng_alk(ji,jj) *                & 
     451                                       fse3t(ji,jj,jk)) 
     452               ENDIF                  
    447453               IF( med_diag%DETC%dgsave ) THEN 
    448454                  fslowc2d(ji,jj) = fslowc2d(ji,jj) +                        & 
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_fin.F90

    r10149 r11726  
    173173                  fq2 = fq0 + fq1 
    174174                  fq3 = f_benout_n(ji,jj) 
    175                   if (lwp) write (numout,'a,2i3,a,4f15,5)')                   & 
     175                  if (lwp) write (numout,'(a,2i3,a,4f15.5)')                   & 
    176176                     'AXY N   cons: (i,j)=',ji,jj,', (flx,ben,err,out)=',      & 
    177177                     fq0,fq1,fq2,fq3 
     
    187187                  fq2 = fq0 + fq1 
    188188                  fq3 = f_benout_si(ji,jj) 
    189                   if (lwp) write (numout,'a,2i3,a,4f15,5)')                   & 
     189                  if (lwp) write (numout,'(a,2i3,a,4f15.5)')                   & 
    190190                     'AXY Si  cons: (i,j)=',ji,jj,', (flx,ben,err,out)=',     & 
    191191                     fq0,fq1,fq2,fq3 
     
    202202                  fq3 = fq0 + fq1 
    203203                  fq4 = f_benout_c(ji,jj) + f_benout_ca(ji,jj) 
    204                   if (lwp) write (numout,'a,2i3,a,5f15,5)')                   & 
     204                  if (lwp) write (numout,'(a,2i3,a,5f15.5)')                   & 
    205205                     'AXY C   cons: (i,j)=',ji,jj,', (flx,ben,asf,err,out)=', & 
    206206                     fq0,fq1,fq2,fq3,fq4 
     
    216216                   fq2 = fq0 + fq1 
    217217                   fq3 = 2.0 * f_benout_ca(ji,jj) 
    218                    if (lwp) write (numout,'a,2i3,a,4f15,5)')                   & 
     218                   if (lwp) write (numout,'(a,2i3,a,4f15.5)')                   & 
    219219                      'AXY alk cons: (i,j)=',ji,jj,', (flx,ben,err,out)=',     & 
    220220                      fq0,fq1,fq2,fq3 
     
    593593            DEALLOCATE( rivalk2d ) 
    594594         ENDIF 
     595         !! AXY (16/10/19) 
     596         IF( med_diag%GEOENG_ALK%dgsave ) THEN 
     597            CALL iom_put( "GEOENG_ALK"  , geoengalk2d ) 
     598            DEALLOCATE( geoengalk2d ) 
     599         ENDIF 
    595600         IF( med_diag%DETC%dgsave ) THEN 
    596601            CALL iom_put( "DETC"  , fslowc2d ) 
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90

    r10149 r11726  
    506506            ALLOCATE( rivalk2d(1:jpi, 1:jpj) ) 
    507507            rivalk2d(:,:)      = 0.0 !! 
     508         ENDIF 
     509         !! AXY (16/10/19) 
     510         IF( med_diag%GEOENG_ALK%dgsave ) THEN 
     511            ALLOCATE( geoengalk2d(1:jpi, 1:jpj) ) 
     512            geoengalk2d(:,:)   = 0.0 !! 
    508513         ENDIF 
    509514         IF( med_diag%DETC%dgsave ) THEN 
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_mod.F90

    r8521 r11726  
    194194   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_riv_loc_n,f_riv_loc_si 
    195195   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_riv_loc_c, f_riv_loc_alk 
     196 
     197   !! AXY (16/10/2019) 
     198   !! geoengineering flux 
     199   REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: f_geoeng_alk 
    196200 
    197201   !! Jpalm -- 11-10-2015 -- adapt diag to iom_use 
     
    390394               f_riv_loc_n(jpi,jpj),f_riv_loc_si(jpi,jpj),            & 
    391395               f_riv_loc_c(jpi,jpj),f_riv_loc_alk(jpi,jpj),           & 
     396               f_geoeng_alk(jpi,jpj),                                 & 
    392397               STAT = bio_medusa_alloc) 
    393398 
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90

    r10020 r11726  
    7171# endif 
    7272                                   zpds, zphd, zphn 
    73       USE dom_oce,           ONLY: e3t_0, gphit, mbathy, tmask 
     73      USE dom_oce,           ONLY: e3t_0, gphit, mbathy, tmask, nyear          ! AXY (16/10/19) 
     74 
    7475# if defined key_vvl 
    7576      USE dom_oce,           ONLY: e3t_n 
     
    232233               !!  
    233234               !! riverine flux 
     235               !! (NOTE: this is "protected" for near-surface addition of riverine 
     236               !! by array friver_dep which is zero below a defined model level) 
    234237               if ( jriver_n .gt. 0 ) then 
    235238                  f_riv_loc_n(ji,jj) = f_riv_n(ji,jj) *                      & 
     
    276279               !!  
    277280               !! riverine flux 
     281               !! (NOTE: this is "protected" for near-surface addition of riverine 
     282               !! by array friver_dep which is zero below a defined model level) 
    278283               if ( jriver_si .gt. 0 ) then 
    279284                  f_riv_loc_si(ji,jj) = f_riv_si(ji,jj) *                    & 
     
    362367               !!  
    363368               !! riverine flux 
     369               !! (NOTE: this is "protected" for near-surface addition of riverine 
     370               !! by array friver_dep which is zero below a defined model level) 
    364371               if ( jriver_c .gt. 0 ) then 
    365372                  f_riv_loc_c(ji,jj) = f_riv_c(ji,jj) *                      & 
     
    387394               !!  
    388395               !! riverine flux 
    389                if ( jk .eq. 1 .and. jriver_c .gt. 0 ) then 
    390                   fc_prod = fc_prod + f_riv_c(ji,jj) 
    391                endif 
     396               !! (NOTE: the lines immediately below are incorrect and riverine 
     397               !! flux is already handled above) 
     398               !! if ( jk .eq. 1 .and. jriver_c .gt. 0 ) then 
     399               !!    fc_prod = fc_prod + f_riv_c(ji,jj) 
     400               !! endif 
    392401               !! 
    393402               btra(ji,jj,jpdic_lc) = b0 * ( fc_prod + fc_cons ) 
     
    414423               !!  
    415424               !! riverine flux 
     425               !! (NOTE: this is "protected" for near-surface addition of riverine 
     426               !! by array friver_dep which is zero below a defined model level) 
    416427               if ( jriver_alk .gt. 0 ) then 
    417428                  f_riv_loc_alk(ji,jj) = f_riv_alk(ji,jj) *                  & 
     
    419430                                         fse3t(ji,jj,jk) 
    420431                  fa_prod = fa_prod + f_riv_loc_alk(ji,jj) 
     432               endif 
     433          !! 
     434               !! AXY (16/10/19) 
     435               !! geoengineering flux 
     436               !! (NOTE: this is only added to the surface ocean grid cell, only 
     437               !! within a particular time window, and only within a particular 
     438               !! sub-polar geographical range; these parameters could be passed up 
     439               !! to ROSE if they need different values for different experiments) 
     440          if ( jk .eq. 1 .and. nyear .gt. 2014 .and. nyear .lt. 2050 .and. & 
     441                   gphit(ji,jj) .ge .-60.0 .and. gphit(ji,jj) .le. 70.0 ) then 
     442                  f_geoeng_alk(ji,jj) = 1.17 / fse3t(ji,jj,jk) 
     443                  fa_prod = fa_prod + f_geoeng_alk(ji,jj) 
    421444               endif 
    422445               !!   
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90

    r10149 r11726  
    18581858          med_diag%RIV_ALK%dgsave = .FALSE. 
    18591859      ENDIF 
     1860      !! AXY (16/10/19) 
     1861      IF  (iom_use("GEOENG_ALK")) THEN  
     1862          med_diag%GEOENG_ALK%dgsave = .TRUE. 
     1863      ELSE  
     1864          med_diag%GEOENG_ALK%dgsave = .FALSE. 
     1865      ENDIF 
    18601866      IF  (iom_use("DETC")) THEN  
    18611867          med_diag%DETC%dgsave = .TRUE. 
  • branches/NERC/dev_r5518_GO6_GeoAlk_MEDUSA/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r10020 r11726  
    131131                  RR_1000, IBEN_N, IBEN_FE, IBEN_C, IBEN_SI, IBEN_CA, OBEN_N, OBEN_FE, OBEN_C,       & 
    132132                  OBEN_SI, OBEN_CA, BEN_N, BEN_FE, BEN_C, BEN_SI, BEN_CA, RUNOFF, RIV_N, RIV_SI,     & 
    133                   RIV_C, RIV_ALK, DETC, SDC__100, SDC__200, SDC__500, SDC_1000, INVTC, INVTALK,      & 
     133                  RIV_C, RIV_ALK,                                                                    & 
     134        GEOENG_ALK,                                                                        & ! AXY (16/10/19) 
     135        DETC, SDC__100, SDC __200, SDC__500, SDC_1000, INVTC, INVTALK,                     & 
    134136                  INVTO2, LYSO_CA, COM_RESP, PN_LLOSS, PD_LLOSS, ZI_LLOSS, ZE_LLOSS, ZI_MES_N,       & 
    135137                  ZI_MES_D, ZI_MES_C, ZI_MESDC, ZI_EXCR, ZI_RESP, ZI_GROW, ZE_MES_N, ZE_MES_D,       & 
Note: See TracChangeset for help on using the changeset viewer.