Skip to content

2021 MARBL Dev team meetings

Michael Levy edited this page Jun 22, 2021 · 42 revisions

June 22, 2021

General discussion

  1. Analysis updates?
    • cesm2-paper submitted, moving plot / table generation to new repo
    • High-res: any update on viewing plots?
      • I generated new figures for years 18 - 34, but I don't think the dashboard is still available in the cloud and I can't get it to work in Jupyter Hub
      • Keith asked me to hold off on running additional years until he can look at how the run is going, but we were counting on the dashboard to allow him to navigate the new plots
    • Any general topics to cover following CESM Workshop?

MARBL / MOM Software Updates

  1. Same three hold-ups with the MARBL driver in MOM
    1. Need more flexibility in how we read river fluxes (in progress; Keith and I are meeting to talk about it more on Thursday and I hope that's more code review and less co-programming / design)
    2. Issue with MARBL bottom fluxes and vanishingly thin layers
      • Talked with Keith and Andrew about it, will proceed with plan to have GCM diffuse a unit bottom flux into an empty column and then passing resulting weights to MARBL to actually convert flux to tendency
      • Keith found a bug in parentheses when passing in sfc_flux to vertical diffusion routine, so I'll need to incorporate a fix for that (and also update units of argument I'm passing to the function)
    3. NUOPC cap isn't passing fluxes well
      • This is on hold while I address the other two issues; it sounds like there are still some NUOPC bugs being worked out, so it's been tough to figure out if the issue is in my cap or some other component.

POP Software Updates

  1. Question from Cheryl re: CISO + cocco in a 3-degree paleo run (tried to modify old CESM+CISO restarts that predate switch to Ctot for isotopes to account for addition of DOCr to pools passed to ciso module)

No Meetings

  • June 15, 2021: CESM Workshop (meeting postponed a week)
  • June 1, 2021: Mike out of town

May 18, 2021

General discussion

  1. High-res
    • I see we have more computer time, I need to start running again
    • No updates on diagnostics from me; anyone else?
  2. Pinatubo
    • Ran 5 additional ensemble members
    • Finally seem to have Gary's PyReshaper scripts working again, will convert to time series (and also compute zonal averages) this week
  3. MARBL paper
  4. MARBL jupyter book (Max)

MARBL Software Updates

  1. Bottom flux generation PR
    • I have verified that we are properly accounting for everything we remove from interior tendency by adding it to bottom flux
    • Keith L and I think there are still terms in the interior tendency that should move to bottom fluxes, but we need feedback from Keith M
      • The denitrification process is messy, and there are probably more terms to move from denitrif to bottom_fluxes(no3_ind)
      • The is also the issue of scaling denitrification to prevent losing all the NO3 at the bottom
      • Best way to get Keith M on a zoom call?

POP Software Updates

  1. Will require small update once bottom fluxes are computed correctly; have a branch where I have been doing all my testing

MOM Software Updates

  1. Not much to report - mostly working on other projects, so only a little progress towards goals mentioned last time (I met with Keith and Andrew and have a solid plan for the river flux code)

May 04, 2021

General discussion

  1. Time series generation tool
    • Question from Max: what should the tool do with F_PERP and F_PARA in the pop.hv file? I assume we should just tell uses to save the history file if they want access to those two [time-invariant / 3D] fields?
  2. Intake catalog generation update? (Max sent me this notebook from Anderson)

MARBL Software Updates

  1. Running into unexpected test failures in PR #377 (adding bottom fluxes)

POP Software Updates

MOM Software Updates

  1. Meeting tomorrow with Keith and Andrew
    • My sandbox has the first round of NUOPC updates, but there are a few more on the way (I think Chris is making a new alpha tag today)
    • MARBL is close to having bottom fluxes available
    • Goal for tomorrow: reading river fluxes correctly (e.g. infrastructure that sort of imitates the share-stream read, lets us read first slice, last slice, or align our run with a set of years)

April 20, 2021

General discussion

  1. High-res diagnostics
    • PR #42 (png generation) is ready for review -- preferences between asynchronous and walking through via zoom?
  2. Run for Amanda and Galen: changing xkw_coeff
    • What value for the parameter? (a=0.251 -> a=0.33_, converted from s^2/m^2 cm/hr to s/cm?)
    • Run details: code-base (SMYLE?), run length, compset, etc

MOM Software Updates

  1. Updated my sandbox to use latest dev/ncar (pretty big infrastructure refactor; updated nuopc support)
    • Uncovered a bug introduced since beta01, so made my first PR back to GFDL
    • Apparently there's now continuous integration for merges into dev/ncar and my branch does not pass (some lines too long, maybe some doxygen issues as well)
    • Working on implementation to read river forcing that mimics share stream in CESM (thanks to Keith and Andrew for helping develop plan)

MARBL Software Updates

  1. Ready to tackle #360 (returning bottom fluxes), but looking through the code I don't know how to proceed
    • Created a branch that introduces marbl_instance%bottom_fluxes(:)
    • Lots of k == kmt logic in compute_particulate_terms
    • which terms for which variables should be stored in bottom_fluxes?
    • Potential need to pass bottom_fluxes to other routines as well? (e.g. if sed_denitrif gets changed, that affects output of compute_denitrif())
    • Discuss here? Or set up a separate meeting later this week?

April 6, 2021

General discussion

  1. High-res diagnostics
    • Just a few tasks left for png-generation PR (#42; hopefully it will be finished before Jackie Robinson Day)
      1. Allow user-specified file size (TBD: by dimension? By pre-defined small, medium, large?)
      2. Fix how isel_dict information is reported in the metadata; knowing isel_dict = {'z_t': 0} isn't as useful as knowing reduced_dims = {'z_t': 500.00} (or something similar)
    • A few other PRs are open, probably waiting for the png-generation work to be merged
      1. #43: Keith's OMZ plots
      2. #44: Max's interactive notebook (local dashboard for plots)
      3. #27: Anderson's static image viewer, can probably be closed in favor of #44?
    • 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 with CaseClass (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
  2. 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)
    • Matt: we still need to find a home for ~20 TB of the CAM output
    • I need to start a new round of runs

MOM Software Updates

  1. 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)
  2. 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)

MARBL Software Updates

  1. 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
  2. Previously mentioned update to how MARBL treats bottom fluxes
  3. Lower priority, but I'd like to address #146 (make it easier for GCM to modify MARBL domain information) once MOM validation is underway

POP Software Updates


No Meeting

  • March 23, 2021: Matt and Mike out of town

March 9, 2021

General discussion

  1. 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 raise NotImplementedError)
      • 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

MARBL Software Updates

  1. 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)
  2. 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 also gfortran on my laptop

MOM Software Updates

  1. 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

POP Software Updates

  1. Still waiting for the greenlight from UCI to bring GreenPlanet support in to CESM tags

February 23, 2021

General discussion

  1. Hi-res: Nothing on my end, anyone else?
  2. Pinatubo: I have some tasks to do following Feb 8th meeting but I haven't started yet

MOM Software Updates

  1. 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 a CMOM 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
  2. Still need to get MARBL forcings out of NUOPC cap
  3. 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 when atm_alt_co2 is not the same as atm_co2)
    • More flexibility in forcings, such as allowing atm_alt_co2 to differ from atm_co2

MARBL Software Updates

  1. 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
  2. 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)

POP Software Updates


February 9, 2021

General discussion

  1. 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

MOM Software Updates

  1. 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?)
  2. My branch requires a few tweaks outside components/mom:
    • Adding -D_USE_MARBL_TRACERS to FFLAGS for mom (in cime/config/cesm/machines/config_compilers.xml)
    • Updating max_num_axis_sets and max_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

January 26, 2021

General discussion

  1. Movement in git and github to use main as the default branch name (rather than master); I'd like to switch our repos as well
    • marbl-ecosys/MARBL is using stable and development 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)
  2. 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
        1. How should we organize files
        2. What metadata should we include
        3. How should we maintain dates (in filenames as well as metadata)

MOM Software Updates

  1. 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
  2. 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
  3. 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.

MARBL Software Updates

POP Software Updates


January 12, 2021

General discussion

  1. 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?
  2. LENS without Pinatubo
    • I have [separate] scripts to do the following:
      1. Build the 20thC case and run from 1990 - 2005 (2x 8 year runs)
      2. Build the RCP 8.5 case and run from 2006 - 2025 (4x 5 year runs)
      3. Convert output to time series
      4. 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
      5. 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?

MOM Software Updates

  1. I think the ndep climatology is being interpolated correctly, but still need to test it
  2. 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 second diag_table.yaml file and then MOM can build full diagnostic table from two files instead of just one
  3. After that, need to make sure parameters set in user_nl_marbl make it into MARBL put() 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
  4. 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.

MARBL Software Updates

  1. 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