Skip to content

2021 MARBL Dev team meetings

Michael Levy edited this page Oct 19, 2021 · 42 revisions

October 19, 2021

General discussion

  1. More on MOM vs POP comparison runs
    • Keith pointed out iron fields didn't look right, FESEDFLUX was likely culprit
      • found unit issue in vertical component of FESEDFLUX file
      • also had issue mapping from gx1v7 -> tx0.66v1 because POP mask was leading to unwanted NaN values on MOM grid
      • /glade/work/mlevy/cesm_inputdata/fesedflux_total_reduce_oxic_tx0.66v1.c211019.nc and /glade/work/mlevy/cesm_inputdata/feventflux_5gmol_tx0.66v1.c211019.nc resolve those two issues, hopefully represent reasonable forcing files
    • Max has a notebook for quick-look at MOM output
      • Question (from Mike): when should we be looking at output that was remapped to static vertical coordinate (h_bgc_*), and when should we stick with output on native vertical grid (hm_bgc_*)

October 5, 2021

General discussion

  1. Started MOM vs POP comparison runs
    • 1850_DATM%JRA-RYF0304_SLND_CICE_POP2%ECO_DROF%JRA-RYF0304_SGLC_SWAV vs 1850_DATM%JRA-RYF0304_SLND_CICE_MOM6%MARBL_DROF%JRA-RYF0304_SGLC_SWAV
    • 20 year integration, default output
    • Two POP cases (pop_control is completely out-of-the-box, pop_no_mcog sets lmcog = .false. in user_nl_pop)
    • Two MOM cases (mom_oob is completely out-of-the-box, mom_hybrid_z sets up hybrid z-coordinate
    • POP runs have both finished, been converted to time-series, and are on campaign
    • mom_oob is running ~4 SYPD, and will finish tonight or tomorrow
    • mom_hybrid_z was running <3 SYPD, and I want to find a better PE layout before letting it run
    • Output will end up in /glade/campaign/cesm/development/omwg/projects/MOMMARBL_vs_POPECO

September 21, 2021

General discussion

  1. cesm2-marbl update?

MARBL Software Updates

  1. Fixed a few more bugs with bot_flux_to_tend implementation, I think that code really is behaving the way we want
  2. Github Actions for CI seems to be working, testing on latest Ubuntu (20.04) instead 14.04 [gfortran v9 instead of 4.8]

POP Software Updates

  1. Three POP updates in cesm2_3_alpha07a (cesm2_3_beta05 is about to be released, and beta06 will set default coupler to NUOPC instead of MCT; then back to regular development)
    1. Update to latest MARBL tag (slightly answer-changing due to other_remin calculation with bot_flux_to_tend)
    2. Get GreenPlanet support on main so that Keith M's group can use latest version of model instead of CESM 2.2 offshoot I set up
    3. Minor testing update for CGD systems (use izumi instead of hobart for machine name)

MOM Software Updates

  1. Talked with Keith about some useful diagnostics to look at re: how carbonate solver treats bottom layer, hoping for live demo of what I have so far

September 7, 2021

General discussion

  1. Anyone with diagnostics updates?

MOM Software Updates

  1. Slow but steady -- looks like tracers aren't going off the rails, and good discussion on reducing some noise in tracer concentration in vanishing layers

MARBL Software Updates

  1. Have a PR (#386) that fixes a bug in bot_flux_to_tend, I think it's ready to go
  2. Set up #388 to look at moving from Travis CI to Github Actions
    • Fixed a bug in how we were using openmpi in the stand-alone driver while I was at it
    • Getting a little nervous about how many PRs have been merged since CI last ran

August 24, 2021

General discussion

  1. Diag updates from Max? (NUOPC vs MCT comparison is pretty cool)
  2. Pinatubo
    • added more vars to zonal averages
    • I had set up five ensemble members for the 20th C portion with original LENS forcing; now running RCP portion (2006-2025) of those cases

MOM Software Updates

  1. Finally happy with bottom flux to tendency code
    • compute weights by hand rather than relying on tracer_vertdiff()
    • need to clean up some variable names and add some comments
  2. Next step for me is looking at NUOPC cap? Or add driver-level budget checks? (I think carbon inventory came up in a meeting last month w/ Keith and Andrew)

MARBL Software Updates

  1. I think #381 is ready to merge
    • previous hold up with incrementing max_bracket_grow_it, but new bot_flux_to_tend values in MARBL driver let us go back to old value
    • Only other change is new error message when sum(bot_flux_to_tend*dz) - 1 is not close to zero (I added some output from the column, but maybe I should include a line in the log describing what each column means)

August 10, 2021

General discussion

  1. High-res dashboard
    • Anderson's VM is back up and running (to access, you need to be on the NCAR network, either in the building or via VPN)
    • Issues Keith and I ran into on Monday with panelify were resolved by merging #53
    • A couple of small bugs to work out: #54 and #55
    • Lots of discussion on improving user interface / experience, but at least for now the dashboard is functional
  2. Zonal Averager
    • Max was trying to use COSIMA's xhist-based zonal averager but results don't match za
      • I don't think xhist weights each cell's contribution by how much of its area is actually in the lat band
      • Instead, if the cell center is in the band then it is treated as the whole cell being in the band

MOM Software Updates

  1. I met with Alper and Gustavo a couple weeks ago to talk about MOM strategy
    • NUOPC cap is pretty stable in dev/NCAR branch, so I should be okay to update sandbox to cesm2_3_alpha05b
    • Still not clear why MOM doesn't run well on izumi, but I'll let Alper figure that out since cheyenne is up again

July 27, 2021

General discussion

  1. High-res dashboard works
    • In addition to latest (hires-marbl) environment, requires jupyterlab>=3, hvplot, and ipywidgets in (base) environment (if that's where you launch jupyter lab)
    • I can demo looking at output on webext from my laptop

MOM Software Updates

  1. Keith and Andrew helped me iron out last issue with computing bot_flux_to_tend (needed to enforce minimum diffusivity at bottom of columns via MIX_BOUNDARY_TRACER_ALE parameter)
    • See this notebook for some plots on the effect of this parameter, but basically there was no mixing at the bottom with MIX_BOUNDARY_TRACER_ALE=False so there were extremely large tracer concentrations accumulating in the bottom millimeters
  2. I was hoping to use izumi to test updating my branches to the latest CESM beta tag, but two issues
    • I can't get a CMOM (no BGC) compset to run on that machine (nag doesn't build FMS, intel crashes when initializing T & S)
    • I forgot to copy the MARBL initial condition / forcing files off glade before the NWSC power-down
  3. Last hold-ups on my branch are purely engineering (aforementioned need to merge latest tags; get NUOPC cap working)
    • I'd like to get to the latest CESM beta, but then I'll need help with the scientific validation step

MARBL Software Updates

  1. I'd like to merge #381 (GCM provides bottom flux for redistributing sinking particulates that hit the sea floor)
    • Only hold-up is that I bumped max_bracket_grow_it from 3 to 5 for the iterative solver in the co2calc module before realizing MOM6 wasn't providing much diffusivity at the bottom of some columns... Keith points out that we should check if that increase is still necessary before merging, but that requires cheyenne compute nodes
    • Also, I'm not sure that Travis is still running the CI... not a huge issue because I can run the tests locally

POP Software Updates

  1. Once MARBL is updated, I'll need to make a new POP tag passing in the proper bot_flux_to_tend weights (1/dz in the bottom layer, 0 elsewhere)

July 13, 2021

General discussion

  1. High-res diagnostics
    • Max, Anderson and I talked about Max's PR with the dashboard notebook (#44) yesterday
      1. incoming commit to that PR works on local machine and casper (via ssh tunneling), but not CISL's Jupyter Hub... need Jared to update environment for the Hub to work; this will be good for browsing images on glade
      2. Anderson will get the VM up and running again (there will probably be a PR to the High-Res repo first), which will be good for browsing images on webext

MOM Software Updates

  1. Open discussion on MARBL driver in MOM
    • Keith and I talked yesterday, wanted to look at vertical profiles of specific columns where vanishing layers are still giving unexpected results

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, seeing large negative DOC values in deep ocean)

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