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

MARBL version with explicit calcifiers #330

Merged
merged 82 commits into from
Jul 11, 2019
Merged
Show file tree
Hide file tree
Changes from 65 commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
8040287
Added cocco PFT
Jul 6, 2017
6a0fcc4
Added explicit calcifier cocco, else-if statements
Jul 18, 2017
a16a1e8
Added QCaCO3_max_exp parameter, modified cocco/sp growth parms
Jul 19, 2017
bdf7c63
Modified parameters, need sp to be more competitive.
Jul 19, 2017
d457281
Change parms back to the way they were with v2, except kNO3 for sp
Jul 20, 2017
72c5d37
Changed QCaCO3_max to 1.0
Jul 20, 2017
01374e4
Parms changed: increased cocco kNO3, decreased cocco thetaNmax, incre…
Jul 21, 2017
f2e7b0f
Increased thetaNmax for coccos
Jul 24, 2017
094ec1e
Lower alphaPI and thetaNmax for coccos, lower KFe for diat, higher PC…
Jul 24, 2017
505c8b8
diat PCref is now 5.2, diat kFe is 0.5
Jul 25, 2017
cd5b2c4
Lower cocco gQfe_0 to 15., cocco alphaPI increased to 0.30
Jul 25, 2017
fdbb366
made temp_thres for coccos 0.
Jul 25, 2017
317ba2a
Added modulation of calcification by Plim,CO2,temp and growth rate by…
Aug 2, 2017
1b7ad53
More modifications to try to get modulated calcification and Clim to …
Aug 3, 2017
793f3e6
Fixed some bugs related to calcification and C limitation of coccos
Aug 4, 2017
8472fa9
reinstated increased pic/poc with Plim, modified parms to make coccos…
Aug 7, 2017
be0c37a
further decreased KFe for coccos and increased thetaNmax to 3.2 for c…
Aug 8, 2017
77f4e3c
decreased kCO2 for cocco, decreased Kno3 for cocco, increased alphaPI…
Aug 9, 2017
f30c99e
Made a special Tfunc for coccos
Aug 9, 2017
2692ef2
test with no C lim
Aug 9, 2017
897d80d
decreased competitive ability of coccos, given new Tfunc
Aug 10, 2017
7b0d23f
made the Tfunc for coccos to version 2 (not so advantageous)
Aug 10, 2017
1ae38eb
oops
Aug 10, 2017
132139d
change to Tfunc to version 2
Aug 10, 2017
52c0fbb
lowered max growth rate for coccos
Aug 11, 2017
c2d4d59
temp function changes
Aug 15, 2017
82badc4
made light lim cocco same as for diat and really efficient Kfe for co…
Aug 15, 2017
f7a88e5
coccos have the same light parms as diatoms, but with super efficent …
Aug 15, 2017
e13413d
increase kco2
Aug 16, 2017
4f7e403
adjusting parms
Aug 29, 2017
6c89c00
adjusted parms
Aug 29, 2017
c265971
adjusting light parms
Aug 30, 2017
e893558
more parm adjustements
Aug 31, 2017
f8c5600
adjusting light parms
Sep 1, 2017
4dbd222
going back to version 20 parms
Sep 1, 2017
946eea4
adjust parms
Sep 1, 2017
8407165
parm adjustments
Sep 2, 2017
2481ee9
test
Sep 2, 2017
68a46f8
put my light parms like Cara's
Sep 3, 2017
92b8c79
lowered cocco KNO3
Sep 5, 2017
0a4977f
thetaNmax for cocco same as sp, lowered KNO3 for cocco, increased KSi…
Sep 5, 2017
104930e
adjusting a bunch of parms to make coccos more competitive
Sep 5, 2017
4557fad
adjusted light parms and some nutrient kms to make coccos more compet…
Sep 6, 2017
63d6d39
change cocco grazing function to sigmoidal
Sep 7, 2017
088574f
after adding grazing, need to make Km for nuts bigger for coccos/less…
Sep 7, 2017
a7891c9
made sp more competitive nutrient-wise
Sep 7, 2017
86c9497
try making sp with sigmoidal grazing too
Sep 8, 2017
3d94feb
changed everyone to sigmoidal grazing
Sep 8, 2017
3328949
made max growth rate for coccos 4.5 d-1, a few other adjustments in p…
Sep 9, 2017
5955a8b
lower alphaPI for coccos, higher Kms for coccos, lower KNO3 for sp
Sep 10, 2017
c52ca96
coccos were still too much, adjusted alphaPI, PCref, grazing
Sep 11, 2017
6a2bfe3
adjusting parms
Sep 11, 2017
9ff5a6c
switch back to mm grazing
Sep 12, 2017
d7685f9
grazing parms identical between sp and cocco, changing back to sigmoi…
Sep 13, 2017
a3efd24
identical sp and cocco grazing parms, michaelis-menten grazing
Sep 13, 2017
bd818e6
Merge branch 'master' into modify_Tfunc
Sep 19, 2017
7715641
making changes in the marbl master for coccos
Sep 20, 2017
f25c9e7
Fixed picpoc calculations so they cannot go negative
Mar 16, 2018
551d159
Slightly modified Tfunc_cocco, Tfunc_cocco modifies cocco mortality, …
Apr 24, 2018
5ed4a30
Merge tag 'marbl0.28.7' into modify_Tfunc
mnlevy1981 Apr 24, 2018
6e18203
Merge pull request #1 from mnlevy1981/modify_Tfunc
Apr 24, 2018
9744532
fixed a few bugs concerning C limitation in marbl_diagnostics; fixed …
Apr 24, 2018
06a95b1
add CaCO3_prod to output, add cocco_C_lim to output
Jul 23, 2018
9d6deb2
Merge branch 'development' into modify_Tfunc
Feb 20, 2019
8b326ea
add kco2 to autotroph settings
Feb 20, 2019
59d9c51
Bring latest development branch in modify_Tfunc
May 15, 2019
4727ca0
Add is_carbon_limited to autotroph_settings_type
mnlevy1981 May 30, 2019
6c1e0b6
Make temp_func_form_opt and Tref per-PFT settings
mnlevy1981 May 31, 2019
eea4b1e
Tref is no longer available from input file
mnlevy1981 Jun 11, 2019
c653a12
Remove Tref from default files
mnlevy1981 Jun 11, 2019
5937fcf
Create two new settings files
mnlevy1981 Jun 13, 2019
fd4c119
Update values in settings_cesm2.1+cocco.yaml
mnlevy1981 Jun 13, 2019
9cc23d1
Remove QCaCO3_max_exp
mnlevy1981 Jun 14, 2019
31bbb03
Re-order compute_temperature_functional_form args
mnlevy1981 Jun 17, 2019
664c6d0
Update comments in marbl_pft_mod
mnlevy1981 Jun 17, 2019
d7b5533
Merge in code clean-up following review
mnlevy1981 Jun 18, 2019
116007e
cleaned up comments in calcification subroutine of marbl_interior_ten…
Jul 2, 2019
acd6dfa
Clean up comments and variable names
mnlevy1981 Jul 5, 2019
133cb03
Run yaml_to_json.py
mnlevy1981 Jul 5, 2019
3398c30
Clean up whitespace
mnlevy1981 Jul 11, 2019
1c52917
Update PFT_keys in more generic manner
mnlevy1981 Jul 11, 2019
047eb26
Clean up python code following review
mnlevy1981 Jul 11, 2019
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
18 changes: 17 additions & 1 deletion defaults/diagnostics_latest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -958,7 +958,7 @@ CaCO3_PROD :
longname : CaCO3 Production
units : mmol/m^3/s
vertical_grid : layer_avg
frequency : low
frequency : medium
operator : average
CaCO3_REMIN :
longname : CaCO3 Remineralization
Expand Down Expand Up @@ -1348,6 +1348,22 @@ CISO_eps_dic_g :
# Per-autotroph Diagnostics #
#############################

((autotroph_sname))_C_lim_surf :
dependencies :
((autotroph_calcifier)) : true
longname : ((autotroph_lname)) C Limitation, Surface
units : 1
vertical_grid : none
frequency : medium
operator : average
((autotroph_sname))_C_lim_Cweight_avg_100m :
dependencies :
((autotroph_calcifier)) : true
longname : ((autotroph_lname)) C Limitation, carbon biomass weighted average over 0-100m
units : 1
vertical_grid : none
frequency : medium
operator : average
((autotroph_sname))_N_lim_surf :
longname : ((autotroph_lname)) N Limitation, Surface
units : 1
Expand Down
22 changes: 21 additions & 1 deletion defaults/json/diagnostics_latest.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
{
"((autotroph_sname))_C_lim_Cweight_avg_100m": {
"dependencies": {
"((autotroph_calcifier))": true
},
"frequency": "medium",
"longname": "((autotroph_lname)) C Limitation, carbon biomass weighted average over 0-100m",
"operator": "average",
"units": 1,
"vertical_grid": "none"
},
"((autotroph_sname))_C_lim_surf": {
"dependencies": {
"((autotroph_calcifier))": true
},
"frequency": "medium",
"longname": "((autotroph_lname)) C Limitation, Surface",
"operator": "average",
"units": 1,
"vertical_grid": "none"
},
"((autotroph_sname))_CaCO3_form": {
"dependencies": {
"((autotroph_calcifier))": true
Expand Down Expand Up @@ -1004,7 +1024,7 @@
"vertical_grid": "layer_avg"
},
"CaCO3_PROD": {
"frequency": "low",
"frequency": "medium",
"longname": "CaCO3 Production",
"operator": "average",
"units": "mmol/m^3/s",
Expand Down
12 changes: 12 additions & 0 deletions defaults/json/settings_cesm2.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,18 @@
"subcategory": "10. autotrophs",
"units": "non-numeric"
},
"kCO2": {
"datatype": "real",
"default_value": {
"((autotroph_sname)) == \"diat\"": 0,
"((autotroph_sname)) == \"diaz\"": 0,
"((autotroph_sname)) == \"sp\"": 0,
"default": "1e34"
},
"longname": "CO2 uptake half-sat constant",
"subcategory": "10. autotrophs",
"units": "nmol/cm^3"
},
"kDOP": {
"datatype": "real",
"default_value": {
Expand Down
12 changes: 12 additions & 0 deletions defaults/json/settings_latest.json
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,18 @@
"subcategory": "10. autotrophs",
"units": "non-numeric"
},
"kCO2": {
"datatype": "real",
"default_value": {
"((autotroph_sname)) == \"diat\"": 0,
"((autotroph_sname)) == \"diaz\"": 0,
"((autotroph_sname)) == \"sp\"": 0,
"default": "1e34"
},
"longname": "CO2 uptake half-sat constant",
"subcategory": "10. autotrophs",
"units": "nmol/cm^3"
},
"kDOP": {
"datatype": "real",
"default_value": {
Expand Down
10 changes: 10 additions & 0 deletions defaults/settings_cesm2.0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -707,6 +707,16 @@ PFT_derived_types :
((autotroph_sname)) == "sp" : 0.03e-3
((autotroph_sname)) == "diat" : 0.06e-3
((autotroph_sname)) == "diaz" : 0.045e-3
kCO2 :
longname : CO2 uptake half-sat constant
subcategory : 10. autotrophs
units : nmol/cm^3
datatype : real
default_value :
default : 1e34
((autotroph_sname)) == "sp" : 0
((autotroph_sname)) == "diat" : 0
((autotroph_sname)) == "diaz" : 0
kPO4 :
longname : PO4 uptake half-sat constant
subcategory : 10. autotrophs
Expand Down
10 changes: 10 additions & 0 deletions defaults/settings_latest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,16 @@ PFT_derived_types :
((autotroph_sname)) == "sp" : 0.03e-3
((autotroph_sname)) == "diat" : 0.07e-3
((autotroph_sname)) == "diaz" : 0.045e-3
kCO2 :
longname : CO2 uptake half-sat constant
subcategory : 10. autotrophs
units : nmol/cm^3
datatype : real
default_value :
default : 1e34
((autotroph_sname)) == "sp" : 0
((autotroph_sname)) == "diat" : 0
((autotroph_sname)) == "diaz" : 0
kPO4 :
longname : PO4 uptake half-sat constant
subcategory : 10. autotrophs
Expand Down
31 changes: 31 additions & 0 deletions src/marbl_diagnostics_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,8 @@ subroutine marbl_diagnostics_init( &
allocate(ind%Fe_lim_Cweight_avg_100m(autotroph_cnt))
allocate(ind%SiO3_lim_surf(autotroph_cnt))
allocate(ind%SiO3_lim_Cweight_avg_100m(autotroph_cnt))
allocate(ind%C_lim_surf(autotroph_cnt))
allocate(ind%C_lim_Cweight_avg_100m(autotroph_cnt))
allocate(ind%light_lim_surf(autotroph_cnt))
allocate(ind%light_lim_Cweight_avg_100m(autotroph_cnt))
allocate(ind%photoC_zint(autotroph_cnt))
Expand Down Expand Up @@ -961,6 +963,30 @@ subroutine marbl_diagnostics_init( &
ind%SiO3_lim_Cweight_avg_100m(n) = -1
end if

lname = trim(autotroph_settings(n)%lname) // ' C Limitation, Surface'
sname = trim(autotroph_settings(n)%sname) // '_C_lim_surf'
units = '1'
vgrid = 'none'
truncate = .false.
call diags%add_diagnostic(lname, sname, units, vgrid, truncate, &
ind%C_lim_surf(n), marbl_status_log)
if (marbl_status_log%labort_marbl) then
call marbl_logging_add_diagnostics_error(marbl_status_log, sname, subname)
return
end if

lname = trim(autotroph_settings(n)%lname) // ' C Limitation, carbon biomass weighted average over 0-100m'
sname = trim(autotroph_settings(n)%sname) // '_C_lim_Cweight_avg_100m'
units = '1'
vgrid = 'none'
truncate = .false.
call diags%add_diagnostic(lname, sname, units, vgrid, truncate, &
ind%C_lim_Cweight_avg_100m(n), marbl_status_log)
if (marbl_status_log%labort_marbl) then
call marbl_logging_add_diagnostics_error(marbl_status_log, sname, subname)
return
end if

lname = trim(autotroph_settings(n)%lname) // ' Light Limitation, Surface'
sname = trim(autotroph_settings(n)%sname) // '_light_lim_surf'
units = '1'
Expand Down Expand Up @@ -3477,6 +3503,11 @@ subroutine store_diagnostics_autotrophs(marbl_domain, &
near_surface_integral=diags(ind%SiO3_lim_Cweight_avg_100m(n))%field_2d(1))
endif

diags(ind%C_lim_surf(n))%field_2d(1) = autotroph_derived_terms%VCO2(n,1)
limterm = autotroph_derived_terms%VCO2(n,:) * autotrophC_weight(:)
call marbl_diagnostics_share_compute_vertical_integrals(limterm, delta_z, kmt, &
near_surface_integral=diags(ind%C_lim_Cweight_avg_100m(n))%field_2d(1))

diags(ind%light_lim_surf(n))%field_2d(1) = autotroph_derived_terms%light_lim(n,1)
limterm = autotroph_derived_terms%light_lim(n,:) * autotrophC_weight(:)
call marbl_diagnostics_share_compute_vertical_integrals(limterm, delta_z, kmt, &
Expand Down
7 changes: 7 additions & 0 deletions src/marbl_interface_private_types.F90
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ module marbl_interface_private_types
real(r8), allocatable :: gQsi(:,:) ! diatom Si/C ratio for growth (new biomass)
real(r8), allocatable :: VNO3(:,:) ! NH4 uptake rate (non-dim)
real(r8), allocatable :: VNH4(:,:) ! NO3 uptake rate (non-dim)
real(r8), allocatable :: VCO2(:,:) ! CO2 uptake rate (non-dim)
real(r8), allocatable :: VNtot(:,:) ! total N uptake rate (non-dim)
real(r8), allocatable :: NO3_V(:,:) ! nitrate uptake (mmol NO3/m^3/sec)
real(r8), allocatable :: NH4_V(:,:) ! ammonium uptake (mmol NH4/m^3/sec)
Expand Down Expand Up @@ -531,6 +532,8 @@ module marbl_interface_private_types
integer(int_kind), allocatable :: Fe_lim_Cweight_avg_100m(:)
integer(int_kind), allocatable :: SiO3_lim_surf(:)
integer(int_kind), allocatable :: SiO3_lim_Cweight_avg_100m(:)
integer(int_kind), allocatable :: C_lim_surf(:)
integer(int_kind), allocatable :: C_lim_Cweight_avg_100m(:)
integer(int_kind), allocatable :: light_lim_surf(:)
integer(int_kind), allocatable :: light_lim_Cweight_avg_100m(:)
integer(int_kind), allocatable :: photoC_zint(:)
Expand Down Expand Up @@ -1008,6 +1011,7 @@ subroutine autotroph_derived_terms_constructor(self, autotroph_cnt, km)
allocate(self%gQsi(autotroph_cnt, km))
allocate(self%VNO3(autotroph_cnt, km))
allocate(self%VNH4(autotroph_cnt, km))
allocate(self%VCO2(autotroph_cnt, km))
allocate(self%VNtot(autotroph_cnt, km))
allocate(self%NO3_V(autotroph_cnt, km))
allocate(self%NH4_V(autotroph_cnt, km))
Expand Down Expand Up @@ -1061,6 +1065,7 @@ subroutine autotroph_derived_terms_destructor(self)
deallocate(self%gQsi)
deallocate(self%VNO3)
deallocate(self%VNH4)
deallocate(self%VCO2)
deallocate(self%VNtot)
deallocate(self%NO3_V)
deallocate(self%NH4_V)
Expand Down Expand Up @@ -1858,6 +1863,8 @@ subroutine interior_diag_ind_destructor(this)
deallocate(this%Fe_lim_Cweight_avg_100m)
deallocate(this%SiO3_lim_surf)
deallocate(this%SiO3_lim_Cweight_avg_100m)
deallocate(this%C_lim_surf)
deallocate(this%C_lim_Cweight_avg_100m)
deallocate(this%light_lim_surf)
deallocate(this%light_lim_Cweight_avg_100m)
deallocate(this%photoC_zint)
Expand Down
Loading