Skip to content

Commit

Permalink
Add scavenging by POC, POSi and PIC
Browse files Browse the repository at this point in the history
  • Loading branch information
jahn committed Jan 3, 2023
1 parent c8be5f4 commit 66ade11
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 21 deletions.
38 changes: 31 additions & 7 deletions pkg/darwin/DARWIN_PARAMS.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,18 @@ C uptakeTempAe :: [1/K] temperature coefficient for uptake (
C
C- Iron parameters
C alpfe :: [] solubility of Fe dust
C scav :: [1/s] fixed iron scavenging rate
C scav :: [1/s] fixed iron scavenging rate (#undef DARWIN_PART_SCAV)
C ligand_tot :: [mol/m3] total ligand concentration
C ligand_stab :: [m3/mol] ligand stability rate ratio
C freefemax :: [mol/m3] max concentration of free iron
C scav_rat :: [1/s] rate of POM-based iron scavenging
C scav_inter :: [] intercept of scavenging power law
C scav_exp :: [] exponent of scavenging power law
C scav_R_POPPOC :: [mmol P / mmol C] POP:POC ratio for DARWIN_PART_SCAV_POP
C scav_tau :: [1] factor to go from Th scavenging rate to iron
C scav_inter :: [L^e mg^-e s^-1] intercept of scavenging power law (e=scav_exp)
C scav_exp :: [1] exponent of scavenging power law
C scav_POC_wgt :: [g / mmol C] weight POC contributes to POM for scavenging
C scav_POSi_wgt :: [g / mmol Si] weight POSi contributes to POM for scavenging
C scav_PIC_wgt :: [g / mmol C] weight PIC contributes to POM for scavenging
C scav_rat :: [1] factor Th to iron for DARWIN_PART_SCAV_POP
C scav_R_POPPOC :: [mmol P / g C] POP:POC ratio for DARWIN_PART_SCAV_POP
C depthfesed :: [m] depth above which to add sediment source (was -1000)
C fesedflux :: [mmol Fe /m2/s] fixed iron flux from sediment
C fesedflux_pcm :: [mmol Fe / mmol C] iron input per POC sinking into bottom for DARWIN_IRON_SED_SOURCE_VARIABLE
Expand Down Expand Up @@ -285,14 +289,24 @@ C depthdenit :: [m] not implemented (depth for denitrific
& mort2TempAe,
& uptakeTempAe,
& alpfe,
& scav,
& ligand_tot,
& ligand_stab,
& freefemax,
#ifdef DARWIN_PART_SCAV_POP
& scav_rat,
& scav_inter,
& scav_exp,
& scav_R_POPPOC,
#elif defined(DARWIN_PART_SCAV)
& scav_tau,
& scav_inter,
& scav_exp,
& scav_POC_wgt,
& scav_POSi_wgt,
& scav_PIC_wgt,
#else
& scav,
#endif
& depthfesed,
& fesedflux,
& fesedflux_pcm,
Expand Down Expand Up @@ -392,14 +406,24 @@ C & yono2,
_RL mort2TempAe
_RL uptakeTempAe
_RL alpfe
_RL scav
_RL ligand_tot
_RL ligand_stab
_RL freefemax
#ifdef DARWIN_PART_SCAV_POP
_RL scav_rat
_RL scav_inter
_RL scav_exp
_RL scav_R_POPPOC
#elif defined(DARWIN_PART_SCAV)
_RL scav_tau
_RL scav_inter
_RL scav_exp
_RL scav_POC_wgt
_RL scav_POSi_wgt
_RL scav_PIC_wgt
#else
_RL scav
#endif
_RL depthfesed
_RL fesedflux
_RL fesedflux_pcm
Expand Down
36 changes: 29 additions & 7 deletions pkg/darwin/darwin_check.F
Original file line number Diff line number Diff line change
Expand Up @@ -1713,9 +1713,6 @@ SUBROUTINE DARWIN_CHECK( myThid )
CALL WRITE_0D_RL(alpfe,INDEX_NONE,
&'alpfe =',
&' /* solubility of Fe dust */')
CALL WRITE_0D_RL(scav,INDEX_NONE,
&'scav =',
&' /* fixed iron scavenging rate (1/s) */')
CALL WRITE_0D_RL(ligand_tot,INDEX_NONE,
&'ligand_tot =',
&' /* total ligand concentration (mol/m3) */')
Expand All @@ -1725,18 +1722,43 @@ SUBROUTINE DARWIN_CHECK( myThid )
CALL WRITE_0D_RL(freefemax,INDEX_NONE,
&'freefemax =',
&' /* max concentration of free iron (mol/m3) */')
#ifdef DARWIN_PART_SCAV_POP
CALL WRITE_0D_RL(scav_rat,INDEX_NONE,
&'scav_rat =',
&' /* rate of POM-based iron scavenging (1/s) */')
&' /* rate conversion Th to iron (1/s) */')
CALL WRITE_0D_RL(scav_inter,INDEX_NONE,
&'scav_inter =',
&' /* intercept of scavenging power law */')
&' /* intercept of scavenging power law (L^e mg^-e) */')
CALL WRITE_0D_RL(scav_exp,INDEX_NONE,
&'scav_exp =',
&' /* exponent of scavenging power law */')
&' /* exponent e of scavenging power law */')
CALL WRITE_0D_RL(scav_R_POPPOC,INDEX_NONE,
&'scav_R_POPPOC =',
&' /* POP:POC ratio for DARWIN_PART_SCAV_POP (mmol P / mmol C) */')
&' /* POP:POC ratio for scavenging (mmol P / g) */')
#elif defined(DARWIN_PART_SCAV)
CALL WRITE_0D_RL(scav_tau,INDEX_NONE,
&'scav_tau =',
&' /* factor to go from Th scavenging rate to iron */')
CALL WRITE_0D_RL(scav_inter,INDEX_NONE,
&'scav_inter =',
&' /* intercept of scavenging power law (L^e mg^-e s^-1) */')
CALL WRITE_0D_RL(scav_exp,INDEX_NONE,
&'scav_exp =',
&' /* exponent e of scavenging power law */')
CALL WRITE_0D_RL(scav_POC_wgt,INDEX_NONE,
&'scav_POC_wgt =',
&' /* weight of POC in POM for scavenging (g / mmol C) */')
CALL WRITE_0D_RL(scav_POSi_wgt,INDEX_NONE,
&'scav_POSi_wgt =',
&' /* weight of POSi in POM for scavenging (g / mmol Si) */')
CALL WRITE_0D_RL(scav_PIC_wgt,INDEX_NONE,
&'scav_PIC_wgt =',
&' /* weight of PIC in POM for scavenging (g / mmol C) */')
#else
CALL WRITE_0D_RL(scav,INDEX_NONE,
&'scav =',
&' /* fixed iron scavenging rate (1/s) */')
#endif
CALL WRITE_0D_RL(depthfesed,INDEX_NONE,
&'depthfesed =',
&' /* depth above which to add sediment source (was -1000) (m) */')
Expand Down
13 changes: 8 additions & 5 deletions pkg/darwin/darwin_forcing.F
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ SUBROUTINE DARWIN_FORCING( Ptrdummy,
_RL freeFe(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr)
_RL sedFlxFe(1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
_RL tmp3d(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr)
_RL scv,scav_poc
_RL scv,scav_pom
_RL flx, POCl
_RL ptr(nDarwin), gtr(nDarwin), PARl(nlam)
_RL chlout(nPhoto)
Expand Down Expand Up @@ -378,12 +378,15 @@ SUBROUTINE DARWIN_FORCING( Ptrdummy,
DO k=1,Nr
DO j=jMin,jMax
DO i=iMin,iMax
C compute POM in mg/L
#ifdef DARWIN_PART_SCAV_POP
scav_poc = MAX(0 _d 0, Ptracer(i,j,k,bi,bj,iPOP))/scav_R_POPPOC
scv = scav_rat*scav_inter*(scav_poc**scav_exp)
scav_pom = MAX(0 _d 0, Ptracer(i,j,k,bi,bj,iPOP))/scav_R_POPPOC
scv = scav_rat*scav_inter*(scav_pom**scav_exp)
#elif defined(DARWIN_PART_SCAV)
scav_poc = MAX(0 _d 0, Ptracer(i,j,k,bi,bj,iPOC))
scv = scav_rat*scav_inter*(scav_poc**scav_exp)
scav_pom = scav_POC_wgt*MAX(0 _d 0, Ptracer(i,j,k,bi,bj,iPOC))
& + scav_POSi_wgt*MAX(0 _d 0, Ptracer(i,j,k,bi,bj,iPOSi))
& + scav_PIC_wgt*MAX(0 _d 0, Ptracer(i,j,k,bi,bj,iPIC))
scv = scav_tau*scav_inter*(scav_pom**scav_exp)
#else
scv = scav
#endif
Expand Down
24 changes: 22 additions & 2 deletions pkg/darwin/darwin_read_params.F
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,24 @@ SUBROUTINE DARWIN_READ_PARAMS(iUnit,oUnit,myThid)
& mort2TempAe,
& uptakeTempAe,
& alpfe,
& scav,
& ligand_tot,
& ligand_stab,
& freefemax,
#ifdef DARWIN_PART_SCAV_POP
& scav_rat,
& scav_inter,
& scav_exp,
& scav_R_POPPOC,
#elif defined(DARWIN_PART_SCAV)
& scav_tau,
& scav_inter,
& scav_exp,
& scav_POC_wgt,
& scav_POSi_wgt,
& scav_PIC_wgt,
#else
& scav,
#endif
& depthfesed,
& fesedflux,
& fesedflux_pcm,
Expand Down Expand Up @@ -310,14 +320,24 @@ SUBROUTINE DARWIN_READ_PARAMS(iUnit,oUnit,myThid)
mort2TempAe = 0.0438 _d 0
uptakeTempAe = 0.0 _d 0
alpfe = 0.04 _d 0
scav = 0.4 _d 0/pyear
ligand_tot = 1. _d -3
ligand_stab = 2. _d 5
freefemax = 0.4 _d -3
#ifdef DARWIN_PART_SCAV_POP
scav_rat = 0.005 _d 0 / pday
scav_inter = 0.079 _d 0
scav_exp = 0.58 _d 0
scav_R_POPPOC = 1.1321 _d -4
#elif defined(DARWIN_PART_SCAV)
scav_tau = 0.2
scav_inter = 0.079 _d 0 / pday
scav_exp = 0.58 _d 0
scav_POC_wgt = 0.02173 _d 0
scav_POSi_wgt = 0.069 _d 0
scav_PIC_wgt = 0.100 _d 0
#else
scav = 0.4 _d 0/pyear
#endif
depthfesed = -1.0 _d 0
fesedflux = 1 _d -3 / pday
fesedflux_pcm = 0.68 _d -3
Expand Down

0 comments on commit 66ade11

Please sign in to comment.