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

Bgc updates for cesm2 2 #35

Merged
merged 10 commits into from
Jul 9, 2020

Conversation

mnlevy1981
Copy link
Collaborator

@mnlevy1981 mnlevy1981 commented Jun 18, 2020

Description of changes:

This branch will update BGC configurations for the CESM2.2 release

  1. OCN_BGC_CONFIG=with_cocco will use latest tunings with coccolithophores

  2. OCN_BGC_CONFIG=cesm2.1 will use same MARBL parameters as CESM 2.1 (though some bugfixes in POP will prevent bit-for-bit solutions when compared to CESM 2.1)

  3. Provide a newly-created init_ecosys_init_file for OCN_BGC_CONFIG=with_cocco

  4. Update fesedflux_input%filename

  5. Update version of MARBL being used to latest available (marbl0.39.0)

  6. Update ecosys_add_cocco to use latest tunings

  7. Add POP2%CESM21 compset option similar to POP2%CESM20 (but to get OCN_BGC_CONFIG=cesm2.1)

    • Create C1850ECO_ECOCESM21 compset and test it in aux_pop_MARBL

Testing:

Test case/suite: aux_pop on cheyenne (intel only), and aux_pop_MARBL on cheyenne (intel & gnu) and hobart (nag and pgi). cheyenne tests were compared against cesm_pop_2_1_20200709, hobart tests did not include baseline comparison
Test status: compsets with ecosystem enabled were answer-changing (even ECOCESM20 changes answers due to round-off level changes in MARBL) and failed NLCOMP (again due to clean-up on the MARBL side); compsets without the ecosystem are bit-for-bit and pass NLCOMP

Fixes #32

User interface (namelist or namelist defaults) changes? None

'with_cocco' will run the latest tunings with coccolithophores, while 'cesm2.1'
will run the CESM2.1 tunings (without coccolithophores). Note that this will
not match the CESM2.1 runs exactly due to the bug fix in iron forcing (and
possibly other answer-changing updates). Also note that the order of
valid_values changed slightly.
fesedflux has a new dataset to remove some of the kludginess introduced in
working around CESM 2.0 O2 biases, and there is now an init_ecosys_init file
for OCN_BGC_CONFIG=with_cocco [copy of the file for OCN_BGC_CONFIG=latest, but
with additional cocco tracers that are identical to the sp tracers]
@mnlevy1981
Copy link
Collaborator Author

Opening this PR so I can keep track of what still needs to be done on this branch. I've done (1) - (4) already, and am going to point @kristenkrumhardt to this branch so she can finalize the MARBL tuning (necessary to address (5). I will work on (6) and (7) while waiting for the final MARBL parameters.

@mnlevy1981
Copy link
Collaborator Author

I noticed that (6) means there is no longer a test for cesm2.1+cocco; one thought is to add some logic to shell_commands in the ecosys_add_cocco test, but I'm not exactly sure what we want the logic to be:

  • If OCN_BGC_CONFIG=latest, change to with_cocco
  • If OCN_BGC_CONFIG=cesm2.1, change to cesm2.1+cocco
  • If OCN_BGC_CONFIG=with_cocco or OCN_BGC_CONFIG=cesm2.1+cocco leave unchanged
  • Otherwise ???

Some options for the last case:

  • use with_cocco
  • leave unchanged
  • throw an error

The only other options would be cesm2.0, which doesn't have an equivalent parameter set with tunings, or SPECTRA1.0, which isn't accessible via compset right now

This compset (and any with POP2%ECOCESM21) will set OCN_BGC_CONFIG to cesm2.1
by default.
Test now changes OCN_BGC_CONFIG from latest -> with_cocco or from cesm2.1 ->
cesm2.1+cocco

Also added a C1850ECO_ECOCESM21 compset test with ecosys_add_cocco to
aux_pop_MARBL test list.
@mnlevy1981
Copy link
Collaborator Author

I noticed that (6) means there is no longer a test for cesm2.1+cocco; one thought is to add some logic to shell_commands in the ecosys_add_cocco test, but I'm not exactly sure what we want the logic to be:

* If `OCN_BGC_CONFIG=latest`, change to `with_cocco`

* If `OCN_BGC_CONFIG=cesm2.1`, change to `cesm2.1+cocco`

* If `OCN_BGC_CONFIG=with_cocco` or `OCN_BGC_CONFIG=cesm2.1+cocco` leave unchanged

* Otherwise ???

Some options for the last case:

* use `with_cocco`

* leave unchanged

* throw an error

The only other options would be cesm2.0, which doesn't have an equivalent parameter set with tunings, or SPECTRA1.0, which isn't accessible via compset right now

89bd6d8 implements the "leave unchanged" option cesm2.0 and SPECTRA1.0.

All that remains:

  1. Update to latest MARBL tag (following multiple MARBL PRs)
  2. potentially set up ecosys_add_cocco test to throw an error if run with the C1850ECO_ECOCESM20 compset

If the compset doesn't set OCN_BGC_CONFIG to latest, cesm2.1, or anything
containing "cocco" then shell_commands will exit with an error status.
@mnlevy1981
Copy link
Collaborator Author

362f819 prevents ecosys_add_cocco testmods from being applied to compsets where OCN_BGC_CONFIG does not have an equivalent with coccolithophores. The error is reported as

ERROR: OCN_BGC_CONFIG=${ocn_bgc_config} does not have equivalent option with coccolithophores

create_test notes the failure:

Finished CREATE_NEWCASE for test SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco in 1.629356 seconds (FAIL). [COMPLETED 1 of 3]
    Case dir: /glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83
    Errors were:
        Leaving broken case dir /glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83
        ERROR: Command: '/glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83/shell_commands' failed with error 'ERROR: OCN_BGC_CONFIG=cesm2.0 does not have equivalent option with coccolithophores' from dir '/glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83'

And TestStatus.log contains the same error message

RUN: /glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83/shell_commands
FROM: /glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83
  stat: 1

  output: ERROR: OCN_BGC_CONFIG=cesm2.0 does not have equivalent option with coccolithophores
Leaving broken case dir /glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83
ERROR: Command: '/glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83/shell_commands' failed with error 'ERROR: OCN_BGC_CONFIG=cesm2.0 does not have equivalent option with coccolithophores' from dir '/glade/scratch/mlevy/tests/new_BGC_stuff.004/SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco.20200619_144548_dgjc83'

The TestStatus file is more concise:

$ cat TestStatus
FAIL SMS.T62_g37.C1850ECO_ECOCESM20.cheyenne_gnu.pop-ecosys_add_cocco CREATE_NEWCASE

I also verified that running this test with theC1850ECO compset still results in OCN_BGC_CONFIG=with_cocco and C1850ECO_ECOCESM21 results in OCN_BGC_CONFIG=cesm2.1+cocco.

Since the gx3v7 initial condition for ecosystem tracers is unchanged from CESM
2.1 to CESM 2.2, it follows that the with_cocco initial condition file should
match cesm2.1+cocco. The same is true for gx1v6.
@mnlevy1981
Copy link
Collaborator Author

One more change that will be on this branch: we want kappa_isop_deep = 0.1 for more configurations. Currently the default is 0.1, except when the ocean is running on a gx1 grid in which case the default value is 0.2.

This is still being discussed on zulip but one possibility would setting the variable to 0.1 for gx1 grids using JRA forcing. One way to check is to have the default value depend on ocn_transient, which is JRA or JRA_OMIP when using JRA forcing.

We use this modifier to change kappa_isop_deep from 0.2 to 0.1; currently it is
only in use in the G1850ECOIAF_JRA_PHYS_DEV compset (and we removed the
G1850ECOIAF_JRA compset to avoid confusion)
* MARBL is using "latest+cocco" instead of "with_cocco"
* Add test for C1850ECO_ECOCESM21 compset beyond the ecosys_add_cocco
@mnlevy1981 mnlevy1981 marked this pull request as ready for review July 9, 2020 20:09
@mnlevy1981
Copy link
Collaborator Author

@klindsay28 and I reviewed this earlier this week, and aea3a89 addresses the concerns that came up from that review so I'm going to bring this in and tag it (and then start final testing for #34)

@mnlevy1981 mnlevy1981 merged commit 29e3a8d into ESCOMP:master Jul 9, 2020
@mnlevy1981 mnlevy1981 deleted the BGC_updates_for_cesm2_2 branch March 30, 2021 19:00
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.

Update MARBL tunings before CESM 2.2 release
1 participant