Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature hamocc beyond cmip6 #237

Merged
Changes from 1 commit
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
3e4eb0f
Dynamic mapping of pore water tracers to ocean tracers (#192)
jmaerz Sep 8, 2022
53d31b1
Added initial support for NUOPC driver.
matsbn Sep 14, 2022
88d6208
Lon-lat variable sediment porosity (#189)
jmaerz Sep 15, 2022
1178bb3
Added wave forcing fields.
matsbn Sep 15, 2022
1c581b5
Renamed folder for MCT driver.
matsbn Sep 15, 2022
a198394
Moved MCT specific file from drivers/cpl_share/ to drivers/mct/.
matsbn Sep 15, 2022
49821fd
Rename drivers/mct/mod_swtfrz.F to drivers/mct/mod_swtfrz.F90.
matsbn Sep 15, 2022
8b6c43c
Rewrite to drivers/mct/mod_swtfrz.F90 to free format Fortran.
matsbn Sep 15, 2022
997104a
Merge remote-tracking branch 'upstream/master' into feature-nuopc
matsbn Sep 27, 2022
e37d846
Remove redundant definition of kOBL.
TomasTorsvik Aug 5, 2022
83d9237
Redefine kOBL, cast as integer
TomasTorsvik Sep 27, 2022
c863a47
Fixing variable sediment porosity - field initialization in case of `…
jmaerz Sep 27, 2022
ac7aac4
This is the first commit of MKS units. All variables in the subroutin…
milicak Oct 3, 2022
2a80c23
Hamocc hybrid coord2 (#179)
TomasTorsvik Oct 3, 2022
a0c5421
Merge pull request #199 from matsbn/feature-nuopc
matsbn Oct 3, 2022
e2093c3
BLOM CIME cpp updates to run in NorESM
milicak Oct 10, 2022
2ce0f84
bug fixes for the CGS MKS conversion
milicak Oct 10, 2022
2396a0f
cesm thermal forcing bug fixes for reproducibility
milicak Oct 10, 2022
30457c3
BLOM MKS update to export winds into the CESM using proper units.
milicak Oct 17, 2022
6753060
input values in ocn_in case is updated for mks setup
milicak Oct 17, 2022
d10893c
default cgsmks value changed
milicak Oct 21, 2022
cc7e9d7
Initialize some variables in the k-epsilon model.
matsbn Nov 4, 2022
613b8bc
Fix porosity read (#201)
jmaerz Nov 9, 2022
a6d1c88
Correct unit of diagnostic variable dp_trc.
matsbn Nov 20, 2022
e291c3b
Made conservation and checksum diagnostics selectable by namelist opt…
matsbn Nov 21, 2022
8385d62
Merge pull request #205 from matsbn/feature-r13fixes
matsbn Nov 21, 2022
98ade59
pCO2, Piston velocity and solubility output (#202)
jmaerz Nov 22, 2022
81f6c58
Bugfix pnetcdf (#208)
TomasTorsvik Nov 25, 2022
8f5acc1
fixed units and renamed calcium burial to CaCO3 burial (#212)
jmaerz Dec 2, 2022
fa7aecd
- Made the "fuk95" configuration work with MKS units.
matsbn Dec 8, 2022
d6466f6
Correct unit conversion of mixed layer depth to pressure.
matsbn Dec 8, 2022
b2d2df5
Updated NorESM coupling scripts for the use of MKS units.
matsbn Dec 9, 2022
7d90240
Merge pull request #217 from matsbn/SI_units
milicak Dec 9, 2022
9c489bd
Merge remote-tracking branch 'upstream/master' into SI_units
matsbn Dec 9, 2022
c66c58b
Fixed check of unit system when building as NorESM component.
matsbn Dec 10, 2022
ae20b35
Merge pull request #218 from matsbn/SI_units
matsbn Dec 12, 2022
0802d11
Add option for surface pH output (#221)
JorgSchwinger Jan 6, 2023
440de2d
Remove unused parameters in wrt* subroutine calls in ncout_hamocc.F90
JorgSchwinger Jan 9, 2023
97676b6
Add linear ramping-up scenario for ocean alkalinisation
TimotheeBrgs Jan 23, 2023
56d7d9b
Import get_bgc_namelist only in subroutine where it is needed. (#225)
TomasTorsvik Jan 25, 2023
d99b608
Merge pull request #219 from NorESMhub/SI_units
milicak Jan 27, 2023
bec98f0
fix missing ' (#228)
jmaerz Jan 27, 2023
52af0b9
Read parameters for alkalinization scenarios from namelist file
TimotheeBrgs Jan 30, 2023
847dda5
Cleaning
TimotheeBrgs Jan 30, 2023
1cd7120
Rename shell namelist variables
TimotheeBrgs Jan 30, 2023
bc66671
Rename shell namelist variables 2
TimotheeBrgs Jan 30, 2023
ee96288
Proper integer definition for current_day
TimotheeBrgs Jan 30, 2023
ef8f025
Merge pull request #224 from TimotheeBrgs/OA_rampscen
TomasTorsvik Jan 31, 2023
3e4494c
Fix buildnml
TimotheeBrgs Jan 31, 2023
311b859
Merge pull request #234 from TimotheeBrgs/fix_buildnml
TomasTorsvik Jan 31, 2023
cbc8a33
merge master into feature-hamocc_beyond-CMIP6 locally to align commit…
jmaerz Feb 9, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Lon-lat variable sediment porosity (#189)
Introducing a static 3D sediment porosity field that can be optionally read in with effects on molecular pore water diffusion and shifting.
jmaerz authored Sep 15, 2022
commit 88d6208d053733a87dec9546be6a2287f8626941
16 changes: 16 additions & 0 deletions cime_config/buildnml
Original file line number Diff line number Diff line change
@@ -237,6 +237,9 @@ set OALKSCEN = "''"
set OALKFILE = "''"
set WITH_DMSPH = .false.
set PI_PH_FILE = "''"
set L_3DVARSEDPOR = .false.
set SEDPORFILE = "''"


# set DIAPHY defaults
set GLB_FNAMETAG = "'hd','hm','hy'"
@@ -706,6 +709,7 @@ if ($OCN_GRID == tnx2v1) then
set SCFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/sss_clim_core_tnx2v1_20130927.nc'"
set FEDEPFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/dustdep_mhw2006_tnx2v1_20130506.nc'"
set SWACLIMFILE = "''"
set SEDPORFILE = "''"
if ($BLOM_RIVER_NUTRIENTS == TRUE) then
set RIVINFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/river_nutrients_GNEWS2000_tnx2v1_20170915.nc'"
else
@@ -726,6 +730,7 @@ else if ($OCN_GRID == tnx1v4) then
set CCFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/chlorophyll_concentration_tnx1v4_20170608.nc'"
set SCFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/sss_clim_core_tnx1v4_20170604.nc'"
set FEDEPFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/dustdep_mhw2006_tnx1v4_20171107.nc'"
set SEDPORFILE = "''"
if ($HAMOCC_VSLS == TRUE) then
set SWACLIMFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/Annual_clim_swa_tnx1v4_20210415.nc'"
else
@@ -752,6 +757,7 @@ else if ($OCN_GRID == tnx0.25v4) then
set SCFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/sss_clim_core_tnx0.25v4_20170623.nc'"
set FEDEPFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/dustdep_mhw2006_tnx0.25v4_20181004.nc'"
set SWACLIMFILE = "''"
set SEDPORFILE = "''"
if ($BLOM_RIVER_NUTRIENTS == TRUE) then
set RIVINFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/river_nutrients_GNEWS2000_tnx0.25v4_20170821.nc'"
else
@@ -773,6 +779,7 @@ else if ($OCN_GRID == tnx0.125v4) then
set SCFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/sss_clim_core_tnx0.125v4_20200722.nc'"
set FEDEPFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/dustdep_mhw2006_tnx0.125v4_20200722.nc'"
set SWACLIMFILE = "''"
set SEDPORFILE = "''"
if ($BLOM_RIVER_NUTRIENTS == TRUE) then
set RIVINFILE = "'$DIN_LOC_ROOT/ocn/blom/bndcon/river_nutrients_GNEWS2000_tnx0.125v4_20170821.nc'"
else
@@ -1445,6 +1452,8 @@ cat >>! $RUNDIR/ocn_in$inststr << EOF
! OXY, NO3, SIL, D13C, and D14C
! WITH_DMSPH : Logical switch to activate DMS calculation as function of pH
! PI_PH_FILE : File name (incl. full path) for surface PI pH input data.
! L_3DVARSEDPOR : Logical switch to enable lon-lat-depth variable sediment porosity (as opposed to default: only depth)
! SEDPORFILE : File name (incl. full path) for sediment porosity
&BGCNML
ATM_CO2 = $CCSM_CO2_PPMV
FEDEPFILE = $FEDEPFILE
@@ -1470,6 +1479,8 @@ cat >>! $RUNDIR/ocn_in$inststr << EOF
INID14C = $INID14C
WITH_DMSPH = $WITH_DMSPH
PI_PH_FILE = $PI_PH_FILE
L_3DVARSEDPOR = $L_3DVARSEDPOR
SEDPORFILE = $SEDPORFILE
/

! IO-NAMELIST FOR DIAGNOSTIC iHAMOCC OUTPUT
@@ -1871,6 +1882,11 @@ EOF
if ($HAMOCC_VSLS == TRUE) then
cat >> $CASEBUILD/blom.input_data_list << EOF
swa_clim_file = `echo $SWACLIMFILE | tr -d '"' | tr -d "'"`
EOF
endif
if ($L_3DVARSEDPOR == TRUE) then
cat >> $CASEBUILD/blom.input_data_list << EOF
sed_porosity_file = `echo $SEDPORFILE | tr -d '"' | tr -d "'"`
EOF
endif
endif
96 changes: 75 additions & 21 deletions hamocc/bodensed.F90
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@
! along with BLOM. If not, see https://www.gnu.org/licenses/.


subroutine bodensed(kpie,kpje,kpke,pddpo)
subroutine bodensed(kpie,kpje,kpke,pddpo,omask,sed_por)
!**********************************************************************
!
!**** *BODENSED* - .
@@ -44,15 +44,17 @@ subroutine bodensed(kpie,kpje,kpke,pddpo)
!**********************************************************************

use mo_sedmnt, only: calcwei,calfa,clafa,claydens,calcdens,opaldens,opalwei,oplfa,orgdens,orgfa,seddzi,porwat,porwah, &
& porsol,dzs,seddw,sedict,solfu,orgwei
use mo_control_bgc, only: dtbgc,io_stdo_bgc
& porsol,dzs,seddw,sedict,solfu,orgwei,zcoefsu,zcoeflo,disso_sil,silsat,disso_poc,sed_denit,disso_caco3
use mo_control_bgc, only: dtbgc,io_stdo_bgc,l_3Dvarsedpor
use mo_param1_bgc, only: ks
use mod_xc, only: mnproc

implicit none

integer, intent(in) :: kpie,kpje,kpke
real, intent(in) :: pddpo(kpie,kpje,kpke)
real, intent(in) :: omask(kpie,kpje)
real, intent(in) :: sed_por(kpie,kpje,ks)

! Local variables
integer :: i,j,k
@@ -79,33 +81,68 @@ subroutine bodensed(kpie,kpje,kpke,pddpo)
write(io_stdo_bgc,*) ' '
endif

porwat(1) = 0.85
porwat(2) = 0.83
porwat(3) = 0.8
porwat(4) = 0.79
porwat(5) = 0.77
porwat(6) = 0.75
porwat(7) = 0.73
porwat(8) = 0.7
porwat(9) = 0.68
porwat(10) = 0.66
porwat(11) = 0.64
porwat(12) = 0.62
! this initialization can be done later via reading a porosity map
if (l_3Dvarsedpor)then
! lon-lat variable sediment porosity from input file
do k=1,ks
do j=1,kpje
do i=1,kpie
if(omask(i,j).gt. 0.5)then
porwat(i,j,k) = sed_por(i,j,k)
endif
enddo
enddo
enddo
else
porwat(:,:,1) = 0.85
porwat(:,:,2) = 0.83
porwat(:,:,3) = 0.8
porwat(:,:,4) = 0.79
porwat(:,:,5) = 0.77
porwat(:,:,6) = 0.75
porwat(:,:,7) = 0.73
porwat(:,:,8) = 0.7
porwat(:,:,9) = 0.68
porwat(:,:,10) = 0.66
porwat(:,:,11) = 0.64
porwat(:,:,12) = 0.62
endif

if (mnproc == 1) then
write(io_stdo_bgc,*) 'Pore water in sediment: ',porwat
write(io_stdo_bgc,*) 'Pore water in sediment initialized'
endif

seddzi(1) = 500.
do k = 1, ks
porsol(k) = 1. - porwat(k)
if(k >= 2) porwah(k) = 0.5 * (porwat(k) + porwat(k-1))
if(k == 1) porwah(k) = 0.5 * (1. + porwat(1))
seddzi(k+1) = 1. / dzs(k+1)
seddw(k) = 0.5 * (dzs(k) + dzs(k+1))
do j = 1, kpje
do i = 1, kpie
porsol(i,j,k) = 1. - porwat(i,j,k)
if(k >= 2) porwah(i,j,k) = 0.5 * (porwat(i,j,k) + porwat(i,j,k-1))
if(k == 1) porwah(i,j,k) = 0.5 * (1. + porwat(i,j,1))
enddo
enddo
enddo

sedict = 1.e-9 * dtbgc ! Molecular diffusion coefficient
! Dissolution rate constant of opal (disso) [1/(kmol Si(OH)4/m3)*1/sec]
! THIS NEEDS TO BE CHANGED TO disso=3.e-8! THIS IS ONLY KEPT FOR THE MOMENT
! FOR BACKWARDS COMPATIBILITY
!disso_sil = 3.e-8*dtbgc ! (2011-01-04) EMR
!disso_sil = 1.e-6*dtbgc ! test vom 03.03.04 half live sil ca. 20.000 yr
disso_sil = 1.e-6*dtbgc
! Silicate saturation concentration is 1 mol/m3
silsat = 0.001

! Degradation rate constant of POP (disso) [1/(kmol O2/m3)*1/sec]
disso_poc = 0.01 / 86400. * dtbgc ! disso=3.e-5 was quite high

sedict = 1.e-9 * dtbgc
! Denitrification rate constant of POP (disso) [1/sec]
sed_denit = 0.01/86400. * dtbgc

! Dissolution rate constant of CaCO3 (disso) [1/(kmol CO3--/m3)*1/sec]
disso_caco3 = 1.e-7 * dtbgc

! ******************************************************************
! densities etc. for SEDIMENT SHIFTING
@@ -131,9 +168,26 @@ subroutine bodensed(kpie,kpje,kpke,pddpo)

! determine total solid sediment volume
solfu = 0.
do i = 1, kpie
do j = 1, kpje
do k = 1, ks
solfu = solfu + seddw(k) * porsol(k)
solfu(i,j) = solfu(i,j) + seddw(k) * porsol(i,j,k)
enddo
enddo
enddo

! Initialize porosity-dependent diffusion coefficients of sediment
zcoefsu(:,:,0) = 0.0
do k = 1,ks
do j = 1, kpje
do i = 1, kpie
! sediment diffusion coefficient * 1/dz * fraction of pore water at half depths
zcoefsu(i,j,k ) = -sedict * seddzi(k) * porwah(i,j,k)
zcoeflo(i,j,k-1) = -sedict * seddzi(k) * porwah(i,j,k) ! why the same ?
enddo
enddo
enddo
zcoeflo(:,:,ks) = 0.0 ! diffusion coefficient for bottom sediment layer


end subroutine bodensed
23 changes: 7 additions & 16 deletions hamocc/dipowa.F90
Original file line number Diff line number Diff line change
@@ -56,7 +56,7 @@ subroutine dipowa(kpie,kpje,kpke,omask,lspin)
!**********************************************************************

use mo_carbch, only: ocetra, sedfluxo
use mo_sedmnt, only: powtra,porwat,porwah,sedict,seddw,seddzi
use mo_sedmnt, only: powtra,porwat,porwah,sedict,seddw,seddzi,zcoefsu,zcoeflo
use mo_param1_bgc, only: ks,npowtra,map_por2octra
use mo_vgrid, only: kbo,bolay
#ifdef cisonew
@@ -77,22 +77,13 @@ subroutine dipowa(kpie,kpje,kpke,omask,lspin)
integer :: iv_oc ! index of ocetra in powtra loop

real :: sedb1(kpie,0:ks,npowtra) ! ????
real :: zcoefsu(0:ks),zcoeflo(0:ks) ! diffusion coefficients (upper/lower)
real :: tredsy(kpie,0:kpke,3) ! redsy for 'reduced system'?
real :: aprior ! start value of oceanic tracer in bottom layer

!ik accelerated sediment
!ik needed for boundary layer ventilation in fast sediment routine
real :: bolven(kpie) ! bottom layer ventilation rate

zcoefsu(0) = 0.0
do k = 1,ks
! sediment diffusion coefficient * 1/dz * fraction of pore water at half depths
zcoefsu(k ) = -sedict * seddzi(k) * porwah(k)
zcoeflo(k-1) = -sedict * seddzi(k) * porwah(k) ! why the same ?
enddo
zcoeflo(ks) = 0.0 ! diffusion coefficient for bottom sediment layer

!$OMP PARALLEL DO &
!$OMP&PRIVATE(i,k,iv,l,bolven,tredsy,sedb1,aprior,iv_oc)
j_loop: do j=1,kpje
@@ -104,8 +95,8 @@ subroutine dipowa(kpie,kpje,kpke,omask,lspin)

k = 0
do i = 1,kpie
tredsy(i,k,1) = zcoefsu(k)
tredsy(i,k,3) = zcoeflo(k)
tredsy(i,k,1) = zcoefsu(i,j,k)
tredsy(i,k,3) = zcoeflo(i,j,k)
tredsy(i,k,2) = bolven(i)*bolay(i,j) - tredsy(i,k,1) - tredsy(i,k,3)
! dz(kbo) - diff upper - diff lower
enddo
@@ -124,17 +115,17 @@ subroutine dipowa(kpie,kpje,kpke,omask,lspin)

do k = 1,ks
do i = 1,kpie
tredsy(i,k,1) = zcoefsu(k)
tredsy(i,k,3) = zcoeflo(k)
tredsy(i,k,2) = seddw(k)*porwat(k) -tredsy(i,k,1) -tredsy(i,k,3)
tredsy(i,k,1) = zcoefsu(i,j,k)
tredsy(i,k,3) = zcoeflo(i,j,k)
tredsy(i,k,2) = seddw(k)*porwat(i,j,k) -tredsy(i,k,1) -tredsy(i,k,3)
enddo
enddo

do iv = 1,npowtra
do k = 1,ks
do i = 1,kpie
! tracer_concentration(k[1:ks]) * porewater fraction(k) * dz(k)
sedb1(i,k,iv) = powtra(i,j,k,iv) * porwat(k) * seddw(k)
sedb1(i,k,iv) = powtra(i,j,k,iv) * porwat(i,j,k) * seddw(k)
enddo
enddo
enddo
11 changes: 7 additions & 4 deletions hamocc/hamocc_init.F90
Original file line number Diff line number Diff line change
@@ -46,7 +46,7 @@ subroutine hamocc_init(read_rest,rstfnm_hamocc)
& do_ndep,do_rivinpt,do_oalk,do_sedspinup, &
& sedspin_yr_s,sedspin_yr_e,sedspin_ncyc, &
& dtb,dtbgc,io_stdo_bgc,ldtbgc, &
& ldtrunbgc,ndtdaybgc,with_dmsph
& ldtrunbgc,ndtdaybgc,with_dmsph,l_3Dvarsedpor
use mo_param1_bgc, only: ks,nsedtra,npowtra,init_por2octra_mapping
use mo_carbch, only: alloc_mem_carbch,ocetra,atm,atm_co2
use mo_biomod, only: alloc_mem_biomod
@@ -58,6 +58,7 @@ subroutine hamocc_init(read_rest,rstfnm_hamocc)
use mo_read_ndep, only: ini_read_ndep,ndepfile
use mo_read_oafx, only: ini_read_oafx,oalkfile,oalkscen
use mo_read_pi_ph, only: ini_pi_ph,pi_ph_file
use mo_read_sedpor, only: read_sedpor,sedporfile
use mo_clim_swa, only: ini_swa_clim,swaclimfile
use mo_Gdata_read, only: inidic,inialk,inipo4,inioxy,inino3, &
& inisil,inid13c,inid14c
@@ -76,13 +77,14 @@ subroutine hamocc_init(read_rest,rstfnm_hamocc)

integer :: i,j,k,l,nt
integer :: iounit
real :: sed_por(idm,jdm,ks) = 0.

namelist /bgcnml/ atm_co2,fedepfile,do_rivinpt,rivinfile,do_ndep,ndepfile, &
& do_oalk,oalkscen,oalkfile,do_sedspinup,sedspin_yr_s, &
& sedspin_yr_e,sedspin_ncyc, &
& inidic,inialk,inipo4,inioxy,inino3,inisil, &
& inid13c,inid14c,swaclimfile, &
& with_dmsph,pi_ph_file
& with_dmsph,pi_ph_file,l_3Dvarsedpor,sedporfile
!
! --- Set io units and some control parameters
!
@@ -174,8 +176,9 @@ subroutine hamocc_init(read_rest,rstfnm_hamocc)
call set_vgrid(idm,jdm,kdm,bgc_dp)
!
! --- Initialize sediment layering
!
CALL BODENSED(idm,jdm,kdm,bgc_dp)
! First raed the porosity, then apply it in bodensed
CALL read_sedpor(idm,jdm,ks,omask,sed_por)
CALL BODENSED(idm,jdm,kdm,bgc_dp,omask,sed_por)
!
! --- Initialize parameters, sediment and ocean tracer.
!
8 changes: 4 additions & 4 deletions hamocc/inventory_bgc.F90
Original file line number Diff line number Diff line change
@@ -143,7 +143,7 @@ SUBROUTINE INVENTORY_BGC(kpie,kpje,kpke,dlxp,dlyp,ddpo,omask,iogrp)
DO j=1,kpje
DO i=1,kpie
ztmp1(i,j) = ztmp1(i,j) + omask(i,j)*seddw(k) &
& *dlxp(i,j)*dlyp(i,j)*porwat(k)
& *dlxp(i,j)*dlyp(i,j)*porwat(i,j,k)
ENDDO
ENDDO
ENDDO
@@ -155,7 +155,7 @@ SUBROUTINE INVENTORY_BGC(kpie,kpje,kpke,dlxp,dlyp,ddpo,omask,iogrp)
DO k=1,ks
DO j=1,kpje
DO i=1,kpie
vol = seddw(k)*dlxp(i,j)*dlyp(i,j)*porwat(k)
vol = seddw(k)*dlxp(i,j)*dlyp(i,j)*porwat(i,j,k)
ztmp1(i,j)= ztmp1(i,j) + omask(i,j)*powtra(i,j,k,l)*vol
ENDDO
ENDDO
@@ -174,7 +174,7 @@ SUBROUTINE INVENTORY_BGC(kpie,kpje,kpke,dlxp,dlyp,ddpo,omask,iogrp)
DO k=1,ks
DO j=1,kpje
DO i=1,kpie
vol = porsol(k)*seddw(k)*dlxp(i,j)*dlyp(i,j)
vol = porsol(i,j,k)*seddw(k)*dlxp(i,j)*dlyp(i,j)
ztmp1(i,j) = ztmp1(i,j) + omask(i,j)*sedlay(i,j,k,l)*vol
ENDDO
ENDDO
@@ -187,7 +187,7 @@ SUBROUTINE INVENTORY_BGC(kpie,kpje,kpke,dlxp,dlyp,ddpo,omask,iogrp)
DO k=1,ks
DO j=1,kpje
DO i=1,kpie
vol = porsol(k)*seddw(k)*dlxp(i,j)*dlyp(i,j)
vol = porsol(i,j,k)*seddw(k)*dlxp(i,j)*dlyp(i,j)
ztmp1(i,j) = ztmp1(i,j) + omask(i,j)*sedhpl(i,j,k)*vol
ENDDO
ENDDO
1 change: 1 addition & 0 deletions hamocc/meson.build
Original file line number Diff line number Diff line change
@@ -34,6 +34,7 @@ sources += files(
'mo_read_pi_ph.F90',
'mo_read_rivin.F90',
'mo_read_oafx.F90',
'mo_read_sedpor.F90',
'mo_sedmnt.F90',
'mo_vgrid.F90',
'ncout_hamocc.F90',
3 changes: 2 additions & 1 deletion hamocc/mo_control_bgc.F90
Original file line number Diff line number Diff line change
@@ -57,8 +57,9 @@ MODULE mo_control_bgc

REAL, save :: rmasks = 0.0 ! value at wet cells in sediment.
REAL, save :: rmasko = 99999.00 ! value at wet cells in ocean.

! Logical switches set via namelist
LOGICAL, save :: l_3Dvarsedpor = .false. ! apply lon-lat-depth variable sediment porosity via input file
LOGICAL, save :: do_ndep =.true. ! apply n-deposition
LOGICAL, save :: do_rivinpt =.true. ! apply riverine input
LOGICAL, save :: do_sedspinup=.false. ! apply sediment spin-up
Loading