-
Notifications
You must be signed in to change notification settings - Fork 25
2021 MARBL Dev team meetings
Michael Levy edited this page Apr 12, 2021
·
42 revisions
- High-res diagnostics
- Run for Amanda and Galen: changing xkw_coeff
- What value for the parameter? (
a=0.251
->a=0.33_
, converted froms^2/m^2 cm/hr
tos/cm
?) - Run details: code-base (SMYLE?), run length, compset, etc
- What value for the parameter? (
- High-res diagnostics
- Just a few tasks left for png-generation PR (#42; hopefully it will be finished before Jackie Robinson Day)
- Allow user-specified file size (TBD: by dimension? By pre-defined
small
,medium
,large
?) - Fix how
isel_dict
information is reported in the metadata; knowingisel_dict = {'z_t': 0}
isn't as useful as knowingreduced_dims = {'z_t': 500.00}
(or something similar)
- Allow user-specified file size (TBD: by dimension? By pre-defined
- A few other PRs are open, probably waiting for the png-generation work to be merged
- Next steps
- Refactor
utils
to clearly sort functionality into POP-specific (may not have any yet? Not sure if adjusting time to be midpoint of bounds is a CESM-wide issue or just a POP thing), CESM-specific (e.g. producing history / time series file names based on CESM conventions), and GCM-agnostic (plotting) - Option to use
intake-esm
withCaseClass
(will need to talk to Anderson and Max about generating catalogs for our data in campaign / updating catalog for 004 as run progresses) - Generate more plots for 004 (lat-lon plots are just from 0001, time series runs through 0017, but we have data through 0034
- Refactor
- Just a few tasks left for png-generation PR (#42; hopefully it will be finished before Jackie Robinson Day)
- Pinatubo runs
- I still need to generate zonal averages for some fields -- should I use both the Fortran tool and the Python tool so we can compare?
- Max and I talked about the python tool yesterday, and had some questions for Keith (is it important to use
lat_aux_grid
or is something like a uniform 0.25 degree spacing okay)
- Max and I talked about the python tool yesterday, and had some questions for Keith (is it important to use
- Matt: we still need to find a home for ~20 TB of the CAM output
- I need to start a new round of runs
- I still need to generate zonal averages for some fields -- should I use both the Fortran tool and the Python tool so we can compare?
- I have plumbed in river fluxes, though the time interpolation options don't currently support all the different use cases share stream can manage (have emailed Andrew and Gustavo to ask for help finding the right equivalent in MOM; have some work-arounds in mind, but none are reasonable enough to put in writing)
- Still to do before handing off code for scientific validation, roughly sorted from what I anticipate being easiest to hardest
- Add a few timers around the MARBL calls
- Update my branch to include Mariana's updates to NUOPC, then finish bringing in forcing fields in NUOPC cap
- Fix aforementioned issue reading river fluxes (or at least hardwire in the appropriate choice for whatever compset will be used for validation)
- Update MARBL to return bottom flux instead of applying it to kmt (need to get the "KMT kludge" out of the MARBL driver in MOM)
- Would like to merge PR #346: storing more data from YAML file describing MARBL parameters in python data structure, to allow us to generate tables for papers
- Previously mentioned update to how MARBL treats bottom fluxes
- Lower priority, but I'd like to address #146 (make it easier for GCM to modify MARBL domain information) once MOM validation is underway
- March 23, 2021: Matt and Mike out of town
- Hi-res stuff
- Run is still stalled
- PR #42 (generating PNGs instead of inline plots)
- I haven't done anything recently, though I do have two tasks laid out in the PR (letting user specify figure size and also Keith's suggestion about adding
*args
and**kwargs
to the argument list of routines that raiseNotImplementedError
) - Anderson and Max, can we talk about the dashboard? I'd like to see how this code plays with the prototype
- Still some open questions (things like image file names and JSON structure), but I think we should wait until a prototype is in place to see what is actually needed
- I haven't done anything recently, though I do have two tasks laid out in the PR (letting user specify figure size and also Keith's suggestion about adding
- Taking advantage of NWSC being down to work in stand-alone MARBL
- Kristen wants to add an option to allow zooplankton mortality to vary due to ice frac / shortwave (#374)
- Can work on issues raised by MARBL driver (setting domain variables in a single call, and I think there are a few others documented elsewhere)
- Mariana found a bug: the NUOPC driver was causing some "uninitialized memory" errors we didn't see from MCT. Keith, I'd like to set up a review for #372 soon (I still need to verify it's bit-for-bit in POP; I did check that the stand-alone test is unchanged with
cheyenne_intel
and alsogfortran
on my laptop
- Still making steady progress (when the machine is up); met w/ Keith and Andrew last week and now MOM's tracer module can provide vertical integrals in diagnostic output
- Still waiting for the greenlight from UCI to bring GreenPlanet support in to CESM tags
- Hi-res: Nothing on my end, anyone else?
- Pinatubo: I have some tasks to do following Feb 8th meeting but I haven't started yet
- Inching closer to being ready to review the PR to bring in MARBL driver
- Removed
_USE_MARBL_TRACERS
CPP macro to mimic what was done with_USE_GENERIC_TRACER
- Created
aux_mom_MARBL
test list (including aCMOM
test that does not build MARBL at all) - Spent a few days fixing bugs (mostly found by Keith) so driver runs with gnu and with
DEBUG=TRUE
- Removed
- Still need to get MARBL forcings out of NUOPC cap
- Other tasks that I don't think are necessary for initial PR
- Addressing some of the MARBL issues meant to improve MOM driver (e.g. make it easier to update
domain
every time step) - Add
ALT_CO2
diagnostics to output when appropriate (when testing and whenatm_alt_co2
is not the same asatm_co2
) - More flexibility in forcings, such as allowing
atm_alt_co2
to differ fromatm_co2
- Addressing some of the MARBL issues meant to improve MOM driver (e.g. make it easier to update
- Anything to do re: Nikki L's grad student (Mary M)? We could invite her to this meeting in two weeks to hear more about her project
- Mariana mentioned in CSEG meeting that she had come across an un-allocated memory issue in MARBL while testing the NUOPC cap in POP; will meet with her and Alper tomorrow to learn more (unclear if it's in MARBL or the POP driver)
- High-res diagnostics:
- PR #42 (producing png files instead of filling notebooks) is feature-complete but probably needs clean-up. It's no longer in draft, but I left a comment outlining some things to do (and another comment that came to mind a few days later)
- I can walk through the parent-child classes that I hinted at two weeks ago, they're fully implemented
- At this point I'd like some input on which direction to go rather than adding features that I think might be useful
- Getting "full" diagnostic output (hooray!) but things don't look so great (boo!)
- E.g. will show
STF_O2
from POP and MOM6 - Current PE layout is taking ~30 minutes to run January, so a little over 4 SYPD
- Still missing some fields that need to be computed by MOM (vertical integrals, and maybe surface values?)
- E.g. will show
- My branch requires a few tweaks outside
components/mom
:- Adding
-D_USE_MARBL_TRACERS
toFFLAGS
for mom (incime/config/cesm/machines/config_compilers.xml
) - Updating
max_num_axis_sets
andmax_output_fields
in FMS- These are namelist settings, so I just need to talk to Alper about how to modify them via MOM's
buildnml
- I think it makes sense to keep
max_output_fields = 300
by default, but increase it to 600 for standard runs and [something bigger] for tests that are outputting every MARBL variable
- These are namelist settings, so I just need to talk to Alper about how to modify them via MOM's
- Adding
- Movement in git and github to use
main
as the default branch name (rather thanmaster
); I'd like to switch our repos as well-
marbl-ecosys/MARBL is using
stable
anddevelopment
as the two main branches, so not an issue - I'd like to put together a list of our repos that would effected as well as a plan for making the switch (I think github's web interface can change the name and update open PRs, etc; users might need to update forks and would definitely need to update local clones)
-
marbl-ecosys/MARBL is using
- High-res analysis tools
- Anderson and I started talking about generating PNG plots
- Lots to still figure out but the framework is coming together; open questions include
- How should we organize files
- What metadata should we include
- How should we maintain dates (in filenames as well as metadata)
- Lots to still figure out but the framework is coming together; open questions include
- Anderson and I started talking about generating PNG plots
- Turns out MOM is already reading
marbl_in
and setting parameters accordingly; I don't know why I thought that was still an open issue - Alper's framework for generating
diag_table
is easy to work with- Currently have pulled streams containing MARBL diagnostics into separate JSON file and verified output is unchanged
- Next step will be generating that separate JSON file on the fly based on MARBL's scripts
- Keith, Andrew, and I talked about refactoring the changes I made in the MCT driver so they can easily be applied to the NUOPC driver; I think that's a lower priority than getting more output into the history files, but I have a plan ready for when I have time.
- Hi-res
- Matt's working with CISL on getting us more time on Cheyenne
- Nothing new from me on the run or diagnostics. Anderson? Keith?
- LENS without Pinatubo
- I have [separate] scripts to do the following:
- Build the 20thC case and run from 1990 - 2005 (2x 8 year runs)
- Build the RCP 8.5 case and run from 2006 - 2025 (4x 5 year runs)
- Convert output to time series
- Transfer the time series output, log files, restarts (2006-01-01, used for the RCP initial conditions; 2026-01-01, end of the run), and
pop.d
diagnostic files to campaign - Sanity checks -- make sure each component / frequency has the right number of time series files on campaign, etc
- Seven ensemble members have been run, but six of them are missing some (8) daily CICE history fields
- Two of the ensemble members (including the one with the complete CICE history) are on campaign already
- Planning to run the remaining 22 members before re-running the six members to get additional output
- I'd like to verify that we have everything we need on campaign before wiping my scratch space, but I need more disk space before launching another batch of runs
- Who's the best person to talk to in order to ensure nothing is missing?
- I have [separate] scripts to do the following:
- I think the ndep climatology is being interpolated correctly, but still need to test it
- Next step will be adding flexibility in what MARBL / BGC variables are output
- Currently I've hardcoded some BGC fields into the
diag_table.yaml
- Met with Gustavo, Alper, Keith, and Frank -- have a good plan for converting MARBL's
ecosys_diagnostics
file into a seconddiag_table.yaml
file and then MOM can build full diagnostic table from two files instead of just one
- Currently I've hardcoded some BGC fields into the
- After that, need to make sure parameters set in
user_nl_marbl
make it into MARBLput()
calls; it's been a while, but I might still be stuck on how to read a text file in MOM so that each task can access contents line by line (e.g. how do I read the file on master and broadcast lines to other tasks?). If this is still an issue, it'll be a good thing to take up with Andrew - At that point, it would be good to have someone other than me (Keith? Gustavo?) run some tests to make sure things look okay scientifically. There will still be code clean-up for me to do, but I think that will mostly be bit-for-bit refactoring.
- Part of the code clean-up for MOM will involve updating the MARBL API to make it easier to do things like update the vertical grid column-by-column