Skip to content

2021 MARBL Dev team meetings

Michael Levy edited this page Apr 12, 2021 · 42 revisions

April 20, 2021

General discussion

  1. High-res diagnostics
  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

MARBL Software Updates

POP Software Updates

MOM Software Updates


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