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

Conversation

kristenkrumhardt
Copy link
Collaborator

Version of MARBL with an explicit calcifier phytoplankton functional type, based on coccolithophores; the parameterization is described in Krumhardt et al. (JAMES) .

Carbon fixation (photosynthesis) of the coccolithophore PFT sensitive to aqueous CO2. CO2 is handled as an additional nutrient required for photosynthesis.

Calcification by the coccolithophore PFT is sensitive to temperature, aqueous CO4, and PO4 limitation.

kristenkrumhardt and others added 30 commits July 6, 2017 14:49
mnlevy1981 and others added 6 commits April 24, 2018 11:29
…bug concerning temperature in marbl_mod; changed default settings.yaml to accomodate coccos
Conflicts:
	src/marbl_diagnostics_mod.F90
	src/marbl_mod.F90
	src/marbl_pft_mod.F90
	src/marbl_settings_mod.F90
@mnlevy1981
Copy link
Collaborator

Testing update:

Ahead of helping @kristenkrumhardt make some changes following the code review earlier this month, I ran aux_pop_MARBL on hobart. Mostly positive results, and we already have plans to address the bad results:

  1. This branch runs in debug mode (and with the nag compiler) -- previous tests were intel-only and without debug

  2. Namelist comparisons fail due to adding variables to user_nl_marbl, but this was expected

  3. The addition of two new history fields is causing minor testing hiccups, but addressing modify_Tfunc branch: better trigger than ((autotroph_calcifier)) for carbon limitation diagnostics kristenkrumhardt/MARBL#2 will fix both of these failures:

    1. cprnc now triggers a failure when a variable is in one file but not the other (this will go away because we will not be adding C_lim_surf and C_lim_Cweight_avg_100m for sp)
      Variable on file1: sp_C_lim_surf not found on file2
      Variable on file1: sp_C_lim_Cweight_avg_100m not found on file2
      
    2. exact restart tests are failing because these two fields are changing, but again this will go away because these two fields shouldn't be computed in the first place
      RMS sp_C_lim_surf                    1.3772E+14            NORMALIZED  8.7393E+00
      RMS sp_C_lim_Cweight_avg_100m        2.3853E+13            NORMALIZED  8.1829E+00
      

Also, only include C_lim diagnostics for carbon limited diagnostics.
Also, introduce the temp_func_form_opt = 'power' option (which will be
used by coccolithophores). Note that this commit changes the default
Tref behavior -- rather than depending on temp_func_form_opt (Tref = 30
for q_10 and Tref = 25 for arrhenius), the default is currently based on
the PFT shortname and set to 30 for all current PFTs. I have some ideas
on how to change the way we apply dependencies to allow Tref to depend
on the per-autotroph temp_func_form_opt but haven't implemented that
yet.
Tref is still in the PFT settings_type data structures, but values are
derived based on temp_func_form_opt (30 for q_10, 25 for arrhenius, and
0 for power -- note that the power function doesn't use the Tref
parameter)
MARBL_generate_settings_file was still putting Tref in the input files
because it was in the settings file.
cesm2.1 will match the final configuration of MARBL in the CESM 2.1 release
(while future tuning changings will go into settings_latest). The cesm2.1+cocco
file will contain settings for Kristen's coccolithophore runs, but in this
commit is identical to the latest settings.
Something to look at in code review: I added a workaround to
marbl_settings_mod.F90 to set PFT_defaults = 'user-specified' if the namelist
uses 'CESM2.1+cocco'; I can't use 'CESM2' because that will get the autotroph
count wrong, and we intentionally did not hard-code the cocco settings in the
fortran code so this seemed like a necessary step.
Now that we have cesm2.1+cocco settings file, we can set QCaCO3_max to
different values when using coccolithophores instead of needing a
separate settings variable.
mnlevy1981 and others added 6 commits June 17, 2019 13:41
intent(out) variable should be last (also added comments defining
dimensions of each argument)
Some default variable settings were missing the comment to see the CESM
NOTE in marbl_settings_mod, others had an incorrect message (claiming
the CESM NOTE was in marbl_pft_mod rather than settings_mod).

Also, changed the order in which the autotroph settings are set so that
it matches the order variables appear in the settings YAML file.
Several small issues were raised in code review on May 22nd, and this
merge fixes most of them
…dency_mod.F90 and switched CaCO3_PROD output from medium to low in diagnostics_lastest.yaml
Following the refactor to move Tref and temp_func_form_iopt onto the autotroph
and zooplankton settings types, the variable Tfunc_ind was no longer an
appropriate name (it wasn't just indexing Tfunc). So Tfunc_ind is now PFT_ind
(matching the "PFT_cnt" dimension in the comments). I also cleaned up the
comments about Tref in the function header to note that the setting is not used
when Tfunc is computed with the power function.
116007e changed diagnostics_latest.yaml but did not change the JSON file
@mnlevy1981 mnlevy1981 mentioned this pull request Jul 9, 2019
Missing a space between variable name and '==' operator
This will make it easier to add additional valid values for PFT_defaults
in different settings files
Fixed poor spacing around operator in MARBL_share.py and also improved
the in determining proper values of append_to_keys and PFT_keys in
MARBL_settings_file_class.py
@mnlevy1981 mnlevy1981 merged commit 047eb26 into marbl-ecosys:development Jul 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants