-
Notifications
You must be signed in to change notification settings - Fork 19
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
Add MARBL to MOM6 #157
Add MARBL to MOM6 #157
Commits on May 16, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 3c56f64 - Browse repository at this point
Copy the full SHA 3c56f64View commit details
Commits on May 23, 2019
-
Create a placeholder MARBL tracer module
Copied dye_example.F90, renamed all public routines. This module does not actually tie into MARBL at this time.
Configuration menu - View commit details
-
Copy full SHA for 253a0c4 - Browse repository at this point
Copy the full SHA 253a0c4View commit details
Commits on Jun 18, 2019
-
Add flag to turn on MARBL tracers
Adding USE_MARBL_TRACERS = True to override file turns on MARBL tracers. At this point, we call marbl_instances%init and register all 32 tracers but don't do anything else (so they are initialized to 0 and there is no source term for advecting them yet)
Configuration menu - View commit details
-
Copy full SHA for fca200b - Browse repository at this point
Copy the full SHA fca200bView commit details -
CESM will use MARBL via manage_externals, but other systems may need to bring it in via submodules
Configuration menu - View commit details
-
Copy full SHA for 3752e3b - Browse repository at this point
Copy the full SHA 3752e3bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 22e2332 - Browse repository at this point
Copy the full SHA 22e2332View commit details -
Configuration menu - View commit details
-
Copy full SHA for 31c25b5 - Browse repository at this point
Copy the full SHA 31c25b5View commit details -
I think this is just needed for TravisCI, since it doesn't know to look for code in pkg/
Configuration menu - View commit details
-
Copy full SHA for 1018e9d - Browse repository at this point
Copy the full SHA 1018e9dView commit details
Commits on Sep 6, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 255b73b - Browse repository at this point
Copy the full SHA 255b73bView commit details -
This looks like it was removed from everywhere else when I merged in the latest dev/ncar branch
Configuration menu - View commit details
-
Copy full SHA for d6e37c3 - Browse repository at this point
Copy the full SHA d6e37c3View commit details
Commits on Sep 10, 2019
-
Move MARBL%init out of register_MARBL_tracers
Created new configure_MARBL_tracers() subroutine to be called from call_tracer_register() [between get_param() calls and register_* calls]
Configuration menu - View commit details
-
Copy full SHA for 5bfd467 - Browse repository at this point
Copy the full SHA 5bfd467View commit details
Commits on Sep 13, 2019
-
Read marbl_in from run directory
Also uses put_settings() to update the MARBL settings before initialization (tested by setting ciso_on = .true. via user_nl_marbl)
Configuration menu - View commit details
-
Copy full SHA for 4ace7c9 - Browse repository at this point
Copy the full SHA 4ace7c9View commit details
Commits on Sep 19, 2019
-
Add ability to write MARBL log to stdout
marbl_instance%StatusLog is written after the call to init and in marbl_tracers_end (which is now called from tracer_flow_control_end())
Configuration menu - View commit details
-
Copy full SHA for b4e5e3f - Browse repository at this point
Copy the full SHA b4e5e3fView commit details -
Add doxygen documentation for print_marbl_log()
Failed a TravisCI test due to missing documentation
Configuration menu - View commit details
-
Copy full SHA for cb72bdc - Browse repository at this point
Copy the full SHA cb72bdcView commit details -
Call MARBL's shutdown() routine
Also added a placeholder for parsing the MARBL timing information
Configuration menu - View commit details
-
Copy full SHA for 0b625ab - Browse repository at this point
Copy the full SHA 0b625abView commit details -
Erase MARBL log after printing to stdout
Every call to print_marbl_log() is followed by a call to %erase()
Configuration menu - View commit details
-
Copy full SHA for dd4408b - Browse repository at this point
Copy the full SHA dd4408bView commit details
Commits on Sep 26, 2019
-
Instead of passively advecting 0s, the MARBL_tracers module now correctly initializes each tracer (but doesn't compute any source-sink terms yet)
Configuration menu - View commit details
-
Copy full SHA for 2256335 - Browse repository at this point
Copy the full SHA 2256335View commit details
Commits on Oct 9, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 4c2b7d6 - Browse repository at this point
Copy the full SHA 4c2b7d6View commit details
Commits on Feb 13, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e629a49 - Browse repository at this point
Copy the full SHA e629a49View commit details -
Update MARBL to latest development commit
Went from 0a806cf to 479f914
Configuration menu - View commit details
-
Copy full SHA for 00006b8 - Browse repository at this point
Copy the full SHA 00006b8View commit details
Commits on Mar 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for eb0d391 - Browse repository at this point
Copy the full SHA eb0d391View commit details -
Configuration menu - View commit details
-
Copy full SHA for 79ebe63 - Browse repository at this point
Copy the full SHA 79ebe63View commit details
Commits on May 1, 2020
-
Make configure_MARBL_tracers() private
call the function from register_MARBL_tracers() rather than MOM_tracer_flow_control.
Configuration menu - View commit details
-
Copy full SHA for ba4142b - Browse repository at this point
Copy the full SHA ba4142bView commit details -
MARBL will be brought in to CESM via manage_externals, and we will use -DUSE_MARBL_TRACERS to build with access to MARBL.
Configuration menu - View commit details
-
Copy full SHA for 2448731 - Browse repository at this point
Copy the full SHA 2448731View commit details -
Now that it comes in from manage_externals, we want to ignore it
Configuration menu - View commit details
-
Copy full SHA for f5a2a63 - Browse repository at this point
Copy the full SHA f5a2a63View commit details
Commits on May 2, 2020
-
Introduce _USE_MARBL_TRACERS macro
Can build MOM without pkg/MARBL, but if USE_MARBL_TRACERS is True in the param file and the build does not include -D_USE_MARBL_TRACERS then the model aborts.
Configuration menu - View commit details
-
Copy full SHA for 0309b56 - Browse repository at this point
Copy the full SHA 0309b56View commit details
Commits on May 5, 2020
-
Will allow MARBL diagnostics to be added to history files.
Configuration menu - View commit details
-
Copy full SHA for cd0eb5a - Browse repository at this point
Copy the full SHA cd0eb5aView commit details
Commits on May 12, 2020
-
call MARBL_tracers_surface_state()
And, from that routine, call marbl_instances%surface_flux_compute(). Note that forcings, surface tracers, and surface fluxes are all zeroed out in this commit. I'd like to get diagnostics posted in the next commit, and then I can start updating tracer surface values, saving saved state, and looking into how to read forcing fields.
Configuration menu - View commit details
-
Copy full SHA for 34481ed - Browse repository at this point
Copy the full SHA 34481edView commit details
Commits on May 14, 2020
-
Move call to surface_flux_compute()
Looks like column_physics() is the better place for this call
Configuration menu - View commit details
-
Copy full SHA for e993457 - Browse repository at this point
Copy the full SHA e993457View commit details
Commits on May 15, 2020
-
add surface flux diags to history output
calls post_data (note that created a temporary data structure to hold both the diagnostic id and a buffer to fill column-by-column as MARBL runs)
Configuration menu - View commit details
-
Copy full SHA for 49618f1 - Browse repository at this point
Copy the full SHA 49618f1View commit details
Commits on May 29, 2020
-
Initialize surface flux forcings better
During configuration, set indices for each of the surface flux forcings so that each forcing can be set to a different value in column_physics(); all are set to zero except u10_sqr (2.5e5), atmpress (1), and xco2 / xco2_alt_co2 (284.7)
Configuration menu - View commit details
-
Copy full SHA for c61e7b7 - Browse repository at this point
Copy the full SHA c61e7b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 14a2a3d - Browse repository at this point
Copy the full SHA 14a2a3dView commit details
Commits on Jun 11, 2020
-
Provide T & S for surface forcing
Also, cleaned out remnants of old dye_tracer code
Configuration menu - View commit details
-
Copy full SHA for eff17a4 - Browse repository at this point
Copy the full SHA eff17a4View commit details
Commits on Jun 12, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3845500 - Browse repository at this point
Copy the full SHA 3845500View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7ed2327 - Browse repository at this point
Copy the full SHA 7ed2327View commit details
Commits on Jul 26, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 778a67f - Browse repository at this point
Copy the full SHA 778a67fView commit details
Commits on Aug 28, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b14db56 - Browse repository at this point
Copy the full SHA b14db56View commit details
Commits on Sep 3, 2020
-
Also updated how a few other forcing fields are passed
Configuration menu - View commit details
-
Copy full SHA for e84ffa9 - Browse repository at this point
Copy the full SHA e84ffa9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 16db0c8 - Browse repository at this point
Copy the full SHA 16db0c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 84065e9 - Browse repository at this point
Copy the full SHA 84065e9View commit details
Commits on Sep 4, 2020
-
Module parameters for unit conversion
MARBL still wants things in cgs, so the conversion factors are private in the MARBL_tracers module
Configuration menu - View commit details
-
Copy full SHA for fb08983 - Browse repository at this point
Copy the full SHA fb08983View commit details
Commits on Sep 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for a6d2b42 - Browse repository at this point
Copy the full SHA a6d2b42View commit details
Commits on Sep 17, 2020
-
Configuration menu - View commit details
-
Copy full SHA for d3ff402 - Browse repository at this point
Copy the full SHA d3ff402View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91367ab - Browse repository at this point
Copy the full SHA 91367abView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6986cdf - Browse repository at this point
Copy the full SHA 6986cdfView commit details
Commits on Sep 21, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b6d6392 - Browse repository at this point
Copy the full SHA b6d6392View commit details -
If tracers mandatory in restart, so is saved state
Also, playing around with some debugging diagnostic output because it appears that register_restart() isn't actually updating the field values (saved state is initialized to 0 even when available in saved state)
Configuration menu - View commit details
-
Copy full SHA for 8336b94 - Browse repository at this point
Copy the full SHA 8336b94View commit details
Commits on Sep 22, 2020
-
Move call to setup_saved_state()
It needs to be in the tracer_registry stage, not the initialize_tracers stage so that fields will be updated from the restart file.
Configuration menu - View commit details
-
Copy full SHA for b108898 - Browse repository at this point
Copy the full SHA b108898View commit details
Commits on Sep 23, 2020
-
Get dust and iron fluxes from coupler
computes iron flux from dust and black carbon fluxes, adding some new variables to parameter file
Configuration menu - View commit details
-
Copy full SHA for c5034a2 - Browse repository at this point
Copy the full SHA c5034a2View commit details
Commits on Oct 2, 2020
-
Add option to read NDEP from a file
Also, only call surface_flux_compute() from ocean cells
Configuration menu - View commit details
-
Copy full SHA for 3d4ac94 - Browse repository at this point
Copy the full SHA 3d4ac94View commit details
Commits on Oct 29, 2020
-
Update NDEP scale factor, work to interior_tend
1. Stale change that I forgot to commit earlier this month about how we apply scale factor to NDEP forcing 2. Starting to put in calls that will be necessary prior to calling interior_tendency_compute() [copying saved state, getting forcing fields, setting up domain, etc]
Configuration menu - View commit details
-
Copy full SHA for bebce72 - Browse repository at this point
Copy the full SHA bebce72View commit details -
More support for interior_tendency_compute() call
Still don't actually make the call, but I register interior tendency diagnostics and hopefully have all the data copies set up properly.
Configuration menu - View commit details
-
Copy full SHA for dc7431e - Browse repository at this point
Copy the full SHA dc7431eView commit details
Commits on Oct 30, 2020
-
Update MARBL domain per-column
In loop that will eventually call interior_tendency_compute(), update domain%zw, domain%delta_z, and domain%zt to get depths in m (and then convert to cm when copying to MARBL structure)
Configuration menu - View commit details
-
Copy full SHA for 318a777 - Browse repository at this point
Copy the full SHA 318a777View commit details
Commits on Nov 12, 2020
-
Add indices for interior tendency forcings
Note that this commit does not support tracer restoring; that is disabled in a temporary block of code after reading marbl_in.
Configuration menu - View commit details
-
Copy full SHA for 7255b9a - Browse repository at this point
Copy the full SHA 7255b9aView commit details
Commits on Nov 13, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e5db1e8 - Browse repository at this point
Copy the full SHA e5db1e8View commit details
Commits on Dec 4, 2020
-
Call marbl_interior_tendency_compute()
There's a kludgy work-around where we set KMT to be the bottom-most level that is more than 1 cm thick (to avoid sediment from accumulating in vanishing layers) and we still don't read iron sediment flux
Configuration menu - View commit details
-
Copy full SHA for 17578a0 - Browse repository at this point
Copy the full SHA 17578a0View commit details -
Add parameters to read in fe sed / vent fluxes
Read in (and do unit conversion) for fesedflux and feventflux as part of initialization. Still need to figure out the vertical remap inside the time step loop.
Configuration menu - View commit details
-
Copy full SHA for f8a6f9d - Browse repository at this point
Copy the full SHA f8a6f9dView commit details
Commits on Dec 17, 2020
-
Use reintegrate_column() to map fesedflux from WOA z-grid to whatever vertical levels MOM6 is using at the current time step. This is a very kludgy commit! 1. Loop through all levels (from bottom to top) and move any subsurface sediment flux up a level. The way the loop is ordered results in all subsurface flux ending up in the bottom-most layer. [On the source grid, so vanishing layers are not a concern.] 1. I created a 3D array to store the WOA vertical thicknesses, except I modified the thickness of the cell containing the bottom of the column (G%bathyT) to only be distance from the cell interface to bathyT, and the thickness of all cells below it are 0. This is the kludgy part of the commit. 2. apply a dilation factor of sum(thickness)/bathyT to the thicknesses of the source grid, so we are effectively always mapping between two columns of the same thickness.
Configuration menu - View commit details
-
Copy full SHA for 7b34469 - Browse repository at this point
Copy the full SHA 7b34469View commit details
Commits on Dec 18, 2020
-
Had a few issues in last commit
1. read_z_edges returns depths that are 0 at surface and positive UP; algorithm I was using assumed positive DOWN 2. the logic in determining dz was hard to follow, so I rewrote the if statements to make it clearer 3. use dz(:) rather than marbl_instance%domain%delta_z to keep MOM units
Configuration menu - View commit details
-
Copy full SHA for fc18d15 - Browse repository at this point
Copy the full SHA fc18d15View commit details
Commits on Jan 8, 2021
-
Use time_interp_external() not MOM_read_data()
This is just for reading nitrogen deposition, and it relies on FMS to handle time interpolation for climatological forcing.
Configuration menu - View commit details
-
Copy full SHA for 09f12d1 - Browse repository at this point
Copy the full SHA 09f12d1View commit details
Commits on Jan 20, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 8d1250b - Browse repository at this point
Copy the full SHA 8d1250bView commit details
Commits on Feb 6, 2021
-
Add surface_flux and tendency to diagnostic output
For now I use the POP naming convention of STF_{tracer} and J_{tracer}
Configuration menu - View commit details
-
Copy full SHA for 5b22d46 - Browse repository at this point
Copy the full SHA 5b22d46View commit details
Commits on Feb 17, 2021
-
Fix bug in units of z-coordinate vars
Was trying to convert MOM's variables in units of m to MARBL's desired units of cm by multiplying by 0.01 instead of 100
Configuration menu - View commit details
-
Copy full SHA for 59b05ca - Browse repository at this point
Copy the full SHA 59b05caView commit details
Commits on Feb 18, 2021
-
Remove _USE_MARBL_TRACERS CPP macro
Copying the changes to generic_tracers, there are now stubs for the MARBL API in config_src/external/MARBL so if pkg/MARBL is not available users can still build MOM. Note that these stubs will trigger cause MOM to abort if they are run with USE_MARBL_TRACERS=True in the parameters file.
Configuration menu - View commit details
-
Copy full SHA for 2bd7f86 - Browse repository at this point
Copy the full SHA 2bd7f86View commit details
Commits on Feb 22, 2021
-
Use a file with _FillValue=-1e34 rather than a file with NaNs
Configuration menu - View commit details
-
Copy full SHA for 8371d68 - Browse repository at this point
Copy the full SHA 8371d68View commit details
Commits on Feb 23, 2021
-
Ignore levels below kmt from marbl_instance object
Since we are ignoring vanishingly thin layers at the bottom of the column when passing data into MARBL, we also need to ignore what MARBL returns from those levels. Now all tendency and diagnostic values for k>kmt are replaced with the value from the kmt level. I also replace saved state below kmt with 0s though I suppose an argument could be made for using the kmt value there as well
Configuration menu - View commit details
-
Copy full SHA for 9b89eb4 - Browse repository at this point
Copy the full SHA 9b89eb4View commit details
Commits on Feb 26, 2021
-
Refactor where MARBL forcings are defined
Introduced marbl_forcing_type, and fluxes%MARBL_forcings of that type. Also introduced marbl_forcing_CS to handle all the parameter settings. Both of these changes are aimed at reducing the footprint of the changes in config_src/mct_driver needed to run MARBL; that will make it easier to bring the same changes to config_src/nuopc_driver. I think the last big change will be to create marbl_ice_ocean_boundary_type and a function to make it easy to copy data from the new type into marbl_forcing_type.
Configuration menu - View commit details
-
Copy full SHA for e605d20 - Browse repository at this point
Copy the full SHA e605d20View commit details -
All MARBL-related forcing code is ready to be shared with nuopc cap
Configuration menu - View commit details
-
Copy full SHA for 222026e - Browse repository at this point
Copy the full SHA 222026eView commit details
Commits on Feb 27, 2021
-
Start updating forcings in nuopc cap
Passing ice_frac, u10_sqr, and seaice_dust_flux; need another round of updates to handle the atm_dust_flux (split coarse / fine plus wet / dry) and the black carbon fluxes (split between hydrophilic and hydrophobic)
Configuration menu - View commit details
-
Copy full SHA for 5e6ecbb - Browse repository at this point
Copy the full SHA 5e6ecbbView commit details
Commits on Mar 18, 2021
-
Add several new diagnostics for tracers
Besides cleaning up some formatting, this commit adds {tracer}_zint, {tracer}_zint_100m, and {tracer}_SURF diagnostics. For MARBL tracers, it also adds Jint_{tracer} and Jint_100m_{tracer} (where J is the source / sink term returned by MARBL) Also renames marbl_forcing_type_main.F90 -> marbl_forcing_type_mod.F90 since I ended up not needing _main / _aux designations.
Configuration menu - View commit details
-
Copy full SHA for 14c3280 - Browse repository at this point
Copy the full SHA 14c3280View commit details
Commits on Apr 2, 2021
-
Register and post FLUX_CPL diagnostics
Coupler recieves five fluxes used to compute dust_flux and iron_flux for MARBL (atm fine dust, atm coarse dust, atm black carbon, sea ice dust, and sea ice black carbon). These five fields are now available in history files.
Configuration menu - View commit details
-
Copy full SHA for 3f650c5 - Browse repository at this point
Copy the full SHA 3f650c5View commit details
Commits on Apr 3, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ead44e3 - Browse repository at this point
Copy the full SHA ead44e3View commit details
Commits on Apr 19, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 9a8afd0 - Browse repository at this point
Copy the full SHA 9a8afd0View commit details -
If present(found), then return found=.false. instead of aborting if the attribute isn't defined (needed for DEPTH:edges from my initial condition file)
Configuration menu - View commit details
-
Copy full SHA for 280b13e - Browse repository at this point
Copy the full SHA 280b13eView commit details
Commits on Apr 22, 2021
-
Continued lines that previously extended beyond 132 characters
Configuration menu - View commit details
-
Copy full SHA for d617ca5 - Browse repository at this point
Copy the full SHA d617ca5View commit details
Commits on Apr 23, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 174bd40 - Browse repository at this point
Copy the full SHA 174bd40View commit details -
One more round of formatting clean-up
gfortran imposes line limit of 132 characters, but a script in .testing/ checks for lines longer than 120...
Configuration menu - View commit details
-
Copy full SHA for c2511a0 - Browse repository at this point
Copy the full SHA c2511a0View commit details -
Proper units for _zint and _zint_100m
These diagnostics need to be computed with a length scale in m, since we are integrating over the column, but I had defined the diagnostic with the H_to_m conversion. Also, I need to use H_to_m instead of H_to_z (or H_to_RZ)
Configuration menu - View commit details
-
Copy full SHA for e526b26 - Browse repository at this point
Copy the full SHA e526b26View commit details
Commits on May 5, 2021
-
Introduced Time_riv_flux to force reading the file at the first times step. Also switched to a newer version of the file, which is already in mmol / m^2 / s (so no need to convert from nmol / cm^2 / s).
Configuration menu - View commit details
-
Copy full SHA for 023e698 - Browse repository at this point
Copy the full SHA 023e698View commit details
Commits on Jun 17, 2021
-
For additive fluxes, e.g. atm_bc_flux = bcphidry + bcphodry, this commit introduces a temporary array named marbl_work and computes the flux in multiple steps: 1. atm_bc_flux = 0 2. import bcphidry -> marbl_work 3. atm_bc_flux += marbl_work 4. import bcphodry -> marbl_work 5. atm_bc_flux += marbl_work as it turns out, state_getimport() is cummulative so this could be accomplished with 1. atm_bc_flux = 0 2. import bcphidry -> atm_bc_flux 3. import bcphodry -> atm_bc_flux That's coming in the next commit
Configuration menu - View commit details
-
Copy full SHA for ac2e7a3 - Browse repository at this point
Copy the full SHA ac2e7a3View commit details -
Remove marbl_work from mom_cap_methods
Since state_getimport() is cummulative, we call it repeated for the forcing fields that are the sum of multiple coupler fields
Configuration menu - View commit details
-
Copy full SHA for 31844b6 - Browse repository at this point
Copy the full SHA 31844b6View commit details
Commits on Jun 24, 2021
-
Refactor interacting with time_interp_external
Introduce tracer_forcing_utils_mod to handle common interactions with time_interp_external (tracking offset if model / data time axes are different, setting an earliest / latest time to read from the file, etc) and then modify marbl_forcing_type_mod to use this new code for the river fluxes.
Configuration menu - View commit details
-
Copy full SHA for 94babe3 - Browse repository at this point
Copy the full SHA 94babe3View commit details
Commits on Jul 1, 2021
-
Fix formatting to make doxygen happy
A few lines exceeded the character limit imposed by the "Doxygen and Style" continuous integration test
Configuration menu - View commit details
-
Copy full SHA for 576267b - Browse repository at this point
Copy the full SHA 576267bView commit details
Commits on Jul 9, 2021
-
Pass bot_flux_to_tend to MARBL
currently still using the KMT kludge, so this passes 1/dz in the bottom-most non-vanishing layer. Next step will be to remove kmt from the driver and use tracer_vertdiff to compute unit flux.
Configuration menu - View commit details
-
Copy full SHA for ec04d3b - Browse repository at this point
Copy the full SHA ec04d3bView commit details
Commits on Jul 10, 2021
-
Use bot_flux_to_tend from tracer_vertdiff
This commit still uses the KMT kludge, but now computes bot_flux_to_tend(:) by applying a unit bottom flux to a column of 0s in tracer_vertdiff. This commit includes a check to ensure that sum(dz(:) * bot_flux_to_tend(:)) == 1, though I am not sure if we want that in the code base long-term. This commit also fixes the units of the sfc_flux argument passed to tracer_vertdiff() -- it should be Rho0 * STF instead of just STF. This requires an update to MOM_tracer_diabatic (merged to dev/NCAR in 276954f but not yet on this branch); for testing, I copied the updated version of that file but am not committing it to make the future merge easier. Last note: I believe the btm_flux argument to tracer_vertdiff is actually positive upward, although the comments in MOM_tracer_diabatic.F90 claim it is negative upward. I'll investigate a little more and open an issue ticket with GFDL if that turns out to be the case, but in this commit I'm multiplying bot_flux_to_tend(:) by -m_per_cm instead of just m_per_cm and I suspect it's due to the sign of btm_flux
Configuration menu - View commit details
-
Copy full SHA for 6b2b55a - Browse repository at this point
Copy the full SHA 6b2b55aView commit details -
Note that this required increasing max_bracket_grow_it (I used 5 instead of 3, but perhaps 4 would have been sufficient?)
Configuration menu - View commit details
-
Copy full SHA for cc56f66 - Browse repository at this point
Copy the full SHA cc56f66View commit details
Commits on Jul 13, 2021
-
Add bot_flux_to_tend to diagnostic output
Also moved the conservation check (sum(dz * bot_flux_to_tend) == 1) into MARBL
Configuration menu - View commit details
-
Copy full SHA for 3e38eef - Browse repository at this point
Copy the full SHA 3e38eefView commit details
Commits on Jul 30, 2021
-
Avoid allocating MARBL memory unless needed
Functions in marbl_forcing_type_mod.F90 return immediately unless USE_MARBL_TRACERS=True. I also cleaned up the way that module knows what directory contains netCDF files to match how it is set up in MARBL_tracers.F90 (and make it easier to switch to DIN_LOC_ROOT when the time comes).
Configuration menu - View commit details
-
Copy full SHA for df92110 - Browse repository at this point
Copy the full SHA df92110View commit details
Commits on Aug 13, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 1c0d456 - Browse repository at this point
Copy the full SHA 1c0d456View commit details -
Add bot_flux_to_tend to dummy interface
Building without pkg/MARBL was failing because the dummy interface was out of date
Configuration menu - View commit details
-
Copy full SHA for 15d9df6 - Browse repository at this point
Copy the full SHA 15d9df6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2060aeb - Browse repository at this point
Copy the full SHA 2060aebView commit details
Commits on Aug 23, 2021
-
Add BOT_FLUX_MIX_THICKNESS parameter
Rather than relying on tracer_vertdiff, compute bot_flux_to_tend such that, for a parameter BOT_FLUX_MIX_THICKNESS, bot_flux_to_tend = 1/BOT_FLUX_MIX_THICKNESS for cells entirely contained that close to the ocean floor and then a weighted value for the cell that is partially within the bottom boundary layer (0 elsewhere). Relying on tracer_vertdiff led to convergence issues in the CO2 solver which have not cropped up under this implementation
Configuration menu - View commit details
-
Copy full SHA for af91fee - Browse repository at this point
Copy the full SHA af91feeView commit details
Commits on Aug 24, 2021
-
Reformulate bot_flux_to_tend algorithm
The previous algorithm had a (bathyT - zw(k)) term in it, and if these values are close together then we can lose precision in the resulting difference. However, this term can also be represented as the cummulative sum of dz(:) from the bottom to layer k and that formulation is much more accurate
Configuration menu - View commit details
-
Copy full SHA for b097bc7 - Browse repository at this point
Copy the full SHA b097bc7View commit details
Commits on Sep 1, 2021
-
Configuration menu - View commit details
-
Copy full SHA for cdb8940 - Browse repository at this point
Copy the full SHA cdb8940View commit details
Commits on Sep 15, 2021
-
Set tracer_inds outside of (.not. restart) block
This is the first pass at a code cleanup; these indices should be set in register_MARBL_tracers(), not initialize_MARBL_tracers(). The next commit will further refactor this code.
Configuration menu - View commit details
-
Copy full SHA for 7551f21 - Browse repository at this point
Copy the full SHA 7551f21View commit details
Commits on Sep 17, 2021
-
Clean up how / where tracer_inds are set
There was a bug in the code where CS%tracer_inds would not be set during a restart. Fixing the bug included a little more clean-up: 1. tracer_inds are set in a new routine rather than inline in initialize_MARBL_tracers() 2. This new routine is called from register_MARBL_tracers() 3. It should be possible to turn on BGC tracers in a branch / restart now
Configuration menu - View commit details
-
Copy full SHA for 143a7f6 - Browse repository at this point
Copy the full SHA 143a7f6View commit details
Commits on Sep 23, 2021
-
Configuration menu - View commit details
-
Copy full SHA for d036fe7 - Browse repository at this point
Copy the full SHA d036fe7View commit details
Commits on Oct 7, 2021
-
Check ref_depth for 2D diagnostics from MARBL
If ref_depth is below the bottom of the column, MOM should use _FillValue rather than whatever value is reported from MARBL
Configuration menu - View commit details
-
Copy full SHA for 7a28f8b - Browse repository at this point
Copy the full SHA 7a28f8bView commit details -
Initialize negative tracer concentrations to 0
If the model is not initializing from a restart file, then we treat all negative tracer ICs as 0. I also swapped a couple of i- and j- loops to run through contiguous memory
Configuration menu - View commit details
-
Copy full SHA for 0ad88d5 - Browse repository at this point
Copy the full SHA 0ad88d5View commit details -
Fix bugs in iron_flux computation
Two major issues: 1. iron_flux was missing a few terms 2. I was keeping the units as kg / m^2 / s when MARBL wanted nmol / cm^2 / s I also switched the default riv_nut file to one interpolated from JRA
Configuration menu - View commit details
-
Copy full SHA for c75eb89 - Browse repository at this point
Copy the full SHA c75eb89View commit details -
Need marbl_constants_mod.F90 for non-MARBL builds
I added a reference to molw_Fe in marbl_forcing.F90, so I needed to update the dummy driver in config_src/externals/MARBL to recognize that use statement
Configuration menu - View commit details
-
Copy full SHA for 37c0d5a - Browse repository at this point
Copy the full SHA 37c0d5aView commit details -
Forgot to document molw_Fe in the dummy marbl_constants module
Configuration menu - View commit details
-
Copy full SHA for a9fa070 - Browse repository at this point
Copy the full SHA a9fa070View commit details
Commits on Oct 26, 2021
-
Clean up how we read FESEDFLUX files
1. Default files now have DEPTH_EDGES variable so dz can be length ke 2. Improve logic for moving flux from below the ocean floor to bottom column 3. use v_extensive=.true. when registering FESEDFLUX diagnostic Also cleaned up how conversion factors are applied to dust / iron flux
Configuration menu - View commit details
-
Copy full SHA for 689c59d - Browse repository at this point
Copy the full SHA 689c59dView commit details -
Don't modify values read from restart!
I had the logic to set negative tracer values to 0 in the wrong place; now it only applies to tracers read from initial conditions instead of also applying to tracers read from restart
Configuration menu - View commit details
-
Copy full SHA for 1bda6a2 - Browse repository at this point
Copy the full SHA 1bda6a2View commit details -
Fix bug in accumulating 2D fields at ref_depth
Use post_data(mask) instead of accumulating missing_val - this avoids inadvertently introducing round-off error when taking the average of an array full of missing_val (which would then not be missing_val any more)
Configuration menu - View commit details
-
Copy full SHA for 1b67e5f - Browse repository at this point
Copy the full SHA 1b67e5fView commit details
Commits on Nov 8, 2021
-
Only allocate memory we plan to use
Don't need to allocate memory in the diagnostic type for diagnostics that MOM6 is not including in any history files
Configuration menu - View commit details
-
Copy full SHA for c3ce30b - Browse repository at this point
Copy the full SHA c3ce30bView commit details -
Include (i,j) indices in MARBL errors
When a specific column in MARBL returns an error, MARBL will now print both the global lat,lon (which it printed previously) and the global (i,j) indices
Configuration menu - View commit details
-
Copy full SHA for faf9965 - Browse repository at this point
Copy the full SHA faf9965View commit details
Commits on Apr 11, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 00eb8e3 - Browse repository at this point
Copy the full SHA 00eb8e3View commit details
Commits on Apr 14, 2022
-
Fields that were posted from the cap (MARBL forcing fields) were not appearing correctly in the netCDF output because we needed to enable averaging
Configuration menu - View commit details
-
Copy full SHA for 91f9624 - Browse repository at this point
Copy the full SHA 91f9624View commit details -
I was using (i,j) indices instead of (i-i0,j-j0) when pulling data from MARBL_IOB
Configuration menu - View commit details
-
Copy full SHA for 6bad5fc - Browse repository at this point
Copy the full SHA 6bad5fcView commit details -
A couple of lines failed the line-length check in the CI
Configuration menu - View commit details
-
Copy full SHA for 9bff1e1 - Browse repository at this point
Copy the full SHA 9bff1e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for a7d0320 - Browse repository at this point
Copy the full SHA a7d0320View commit details
Commits on Apr 25, 2022
-
Add KPP Nonlocal Terms to MARBL tracers
This commit mimics the changes made to MOM_CFC_cap.F90 and pseudo_salt_tracer.F90 to apply KPP Nonlocal terms to that MARBL tracers
Configuration menu - View commit details
-
Copy full SHA for 37b07d0 - Browse repository at this point
Copy the full SHA 37b07d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 604b784 - Browse repository at this point
Copy the full SHA 604b784View commit details -
Move riv_flux to applyTracerBoundaryFluxesInOut
Rather than adding river fluxes to CS%STF, created new array CS%RIV_FLUX that is used as in_flux_optional argument to applying boundary fluxes Also added a missing doxygen comment
Configuration menu - View commit details
-
Copy full SHA for cc5bd4e - Browse repository at this point
Copy the full SHA cc5bd4eView commit details
Commits on Sep 14, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 416679c - Browse repository at this point
Copy the full SHA 416679cView commit details
Commits on Sep 22, 2022
-
Major refactor of MARBL forcing fields
Removed marbl_forcing_type and marbl_ice_ocean_boundary_type, keeping the flat structure of forcing and ice_ocean_boundary_type, respectively. This greatly reduces the amount of code in marbl_forcing_type_mod.F90 (which now needs a new name), and adds a little more overhead to the driver layer but with the benefit of reusing pointers for things like ice_fraction and u10_sqr which are needed in the CFC cap as well. I also started the process of adding multiple ice category support, but there's more to do for that feature.
Configuration menu - View commit details
-
Copy full SHA for 966286d - Browse repository at this point
Copy the full SHA 966286dView commit details -
From this point forward, MCT will not support the MARBL driver. CESM users must use NUOPC cap for runs with MARBL
Configuration menu - View commit details
-
Copy full SHA for b6029fe - Browse repository at this point
Copy the full SHA b6029feView commit details -
Rename marbl_forcing_type_mod.F90
There is no longer a forcing type, but this module does handle some forcing fields for MARBL so marbl_forcing_mod.F90 is a more appropriate name.
Configuration menu - View commit details
-
Copy full SHA for 03aa05c - Browse repository at this point
Copy the full SHA 03aa05cView commit details -
NUOPC cap set to receive all ice cat fields
If CPL_I2O_PER_CAT=TRUE, then the nuopc cap allocates memory in ice_ocean_boundary_type to store the five fields that POP uses with MCOG: * sf_afrac * sf_afracr * Foxx_swnet_afracr * Fioi_swpen_ifrac_n * Si_ifrac_n Next step will be to work from the forcing_type side, and make sure those fields get copied into the appropriate arrays if the user requests running with multiple ice categories.
Configuration menu - View commit details
-
Copy full SHA for bad9af5 - Browse repository at this point
Copy the full SHA bad9af5View commit details
Commits on Sep 23, 2022
-
More per-category forcing updates
1. ice_ncat is stored as-is, rather than storing ice_ncat+1 2. Memory is now allocated on the forcing type if USE_ICE_CATEGORIES is true (Default is false, want default to be true when running with MARBL)
Configuration menu - View commit details
-
Copy full SHA for ce78ef5 - Browse repository at this point
Copy the full SHA ce78ef5View commit details
Commits on Sep 24, 2022
-
MARBL_tracers will get ICE_NCAT from parameters file (still need to set default correctly!) instead of passing it down the calling tree.
Configuration menu - View commit details
-
Copy full SHA for 480b1a8 - Browse repository at this point
Copy the full SHA 480b1a8View commit details
Commits on Oct 5, 2022
-
1. several off-by-one errors due to using ice_ncat+1 instead of ice_ncat 2. needed i0 and j0 when copying from IOB to fluxes 3. NUOPC is case sensitive when getting field, but doesn't abort when case is wrong Also added the fields passed to MARBL as MOM6 diagnostics (FRACR_CAT_N and QSW_CAT_N, for N from 1 to ice_ncat+1) -- should probably switch range so it is 0 to ice_ncat, with category 0 representing open ocean
Configuration menu - View commit details
-
Copy full SHA for b51c5a9 - Browse repository at this point
Copy the full SHA b51c5a9View commit details -
don't post diagnostics if not requested
when the _CAT_ diags were not in the diag_table, the run was aborting. Adding a check to make sure the id > 0 avoids that.
Configuration menu - View commit details
-
Copy full SHA for 1d77f97 - Browse repository at this point
Copy the full SHA 1d77f97View commit details -
Before tracking down issue with i0 and j0, I had set an artificial threshold on fracr_cat, where I was treating values below 1e-5 as 0. This commit undoes that, and only treats negative values as 0 (leaving small positive values alone)
Configuration menu - View commit details
-
Copy full SHA for 271ac14 - Browse repository at this point
Copy the full SHA 271ac14View commit details -
Rudimentary MARBL support in solo_driver
All the MARBL-specific forcings the NUOPC cap gets from the mediator are set to 0: * ice_fraction * u10_sqr * dust_flux * iron_flux Will need to work out details on how else to populate these fields (ice_fraction is set to 0 when allocated, so that's probably okay)
Configuration menu - View commit details
-
Copy full SHA for 609adbc - Browse repository at this point
Copy the full SHA 609adbcView commit details
Commits on Oct 13, 2022
-
Change dust / iron parameter defaults
Fortran defaults are now what we want for C / G compsets, and MOM_interface will override them for B compsets
Configuration menu - View commit details
-
Copy full SHA for a0497d5 - Browse repository at this point
Copy the full SHA a0497d5View commit details
Commits on Oct 14, 2022
-
atm_press = 1 atm when p_surf_full is unavailable
A kludge to set surface pressure to 1 atm when using solo_driver (which allocates memory for p_surf but not p_surf_full and then does not set p_surf)
Configuration menu - View commit details
-
Copy full SHA for 94bf089 - Browse repository at this point
Copy the full SHA 94bf089View commit details
Commits on Nov 3, 2022
-
Update IC file and units of RIV_FLUXES
The old MARBL initial condition file had some issues at depth when the MOM topography was deeper than POP; these cells were all set to 0 because the restart file we mapped tracers from does not include a land mask. Fix was to mask out the POP data prior to mapping it, then the lateral fill was applied correctly. Additionally, Keith noticed a bug in our call to applyTracerBoundaryFluxesInOut() -- the in_flux_optional argument should be in units of conc m, but we were passing CS%RIV_FLUXES with units of conc m/s. Since the in_flux should be the time-integrated value, we set CS%RIV_FLUXES = CS%RIV_FLUXES * dt prior to passing it to applyTracerBoundaryFluxesInOut() The comments in the declaration of RIV_FLUXES was also updated to account for the unit change.
Configuration menu - View commit details
-
Copy full SHA for 2d84e5c - Browse repository at this point
Copy the full SHA 2d84e5cView commit details
Commits on Nov 8, 2022
-
Somewhere in transition from testing in cesm2_3_alpha05b to testing in cesm2_3_beta08, I forgot to commit a change to update the iron sediment flux forcing files. The previous files were generated in a buggy manner, and these new files provide better forcing.
Configuration menu - View commit details
-
Copy full SHA for f9d5206 - Browse repository at this point
Copy the full SHA f9d5206View commit details
Commits on Nov 22, 2022
-
Configuration menu - View commit details
-
Copy full SHA for c9913aa - Browse repository at this point
Copy the full SHA c9913aaView commit details
Commits on Jan 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for bcefb34 - Browse repository at this point
Copy the full SHA bcefb34View commit details
Commits on Feb 2, 2023
-
Use data_override for some MARBL forcing
ice fraction, u10_sqr, and the various dust / black carbon fluxes that MOM and POP receive from the CESM coupler in the NUOPC cap can now be read in from netCDF file using data_override in solo_driver/ also, added a flag (READ_RIV_FLUXES, default: .true.) to let us turn off looking for river flux files.
Configuration menu - View commit details
-
Copy full SHA for 2002d82 - Browse repository at this point
Copy the full SHA 2002d82View commit details
Commits on Feb 22, 2023
-
Support CHL_FROM_FILE=FALSE when using with MARBL
If CHL_FROM_FILE is FALSE, then MARBL_tracers will request total_Chl from MARBL and MOM_tracer_flow_control::get_chl_from_model() can retrieve it.
Configuration menu - View commit details
-
Copy full SHA for 5c6fddd - Browse repository at this point
Copy the full SHA 5c6fdddView commit details -
The previous commit used more of the MARBL interface, so I expanded the dummy cap to allow MOM6 to build without the full library (as before, setting USE_MARBL_TRACERS=TRUE but building the dummy cap will result in a FATAL error)
Configuration menu - View commit details
-
Copy full SHA for a40dc6e - Browse repository at this point
Copy the full SHA a40dc6eView commit details
Commits on Feb 23, 2023
-
Refactor to use MARBL's get_output_for_GCM()
Removed code that relied on interior_tendency_output since that no longer exists in MARBL
Configuration menu - View commit details
-
Copy full SHA for 5492c81 - Browse repository at this point
Copy the full SHA 5492c81View commit details -
API for MARBL's get_output_for_GCM() changed
Updated MARBL_tracers_get_output_for_GCM() to account for fact that MARBL doesn't want tracers passed in as an argument, it just wants to use self%tracers(). Also did some minor clean-up to MARBL_tracers_get_output_for_GCM(): 1. pass in G and GV so that we can index arrays properly / loop through i,j (and skip land cells) 2. the do j= and do i= loops are on the same line 3. abort if the MARBL function returns an error Lastly, cleaned up the interface to hopefully pass CI again (needed to create marbl_settings_mod and add dummy get_output_for_GCM() function to interface)
Configuration menu - View commit details
-
Copy full SHA for d192329 - Browse repository at this point
Copy the full SHA d192329View commit details
Commits on Mar 7, 2023
-
Use MOM_initialize_tracer_from_Z not tracer_Z_init
I added an optional argument ongrid to MOM_initialize_tracer_from_Z() which gets passed through to horiz_interp_and_extrap_tracer()
Configuration menu - View commit details
-
Copy full SHA for becd34f - Browse repository at this point
Copy the full SHA becd34fView commit details
Commits on Mar 23, 2023
-
More updates for reading IC file
Switched CESM default to use IC file written on 1x1 grid (with WOA depths) instead of using a file on the tx0.66v1 grid. Also changed some of the defaults set in get_param() calls in MOM_initialize_tracer_from_Z() to match the defaults elsewhere in the code.
Configuration menu - View commit details
-
Copy full SHA for f3f75e6 - Browse repository at this point
Copy the full SHA f3f75e6View commit details -
Update dummy interface for get_output_from_GCM()
In MARBL, this changed from a function to a subroutine but I forgot to make the corresponding change in the dummy MARBL cap
Configuration menu - View commit details
-
Copy full SHA for 0683622 - Browse repository at this point
Copy the full SHA 0683622View commit details
Commits on Mar 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a2d5500 - Browse repository at this point
Copy the full SHA a2d5500View commit details
Commits on Mar 29, 2023
-
Update solo_driver to handle ndep
Last commit broke solo_driver because the API to convert_marbl_IOB_to_forcings() changed. Also, cleaned up some comments in MARBL_tracers.F90 and the NUOPC cap.
Configuration menu - View commit details
-
Copy full SHA for 78d6f44 - Browse repository at this point
Copy the full SHA 78d6f44View commit details -
Remove NDEP_SCALE_FACTOR from parameters file
I think this was a parameter because I was mimicking shr_stream (which includes a scale factor as part of the namelist options), but it makes far more sense to combine it with the existing ndep_conversion variable. Given the way the parentheses were used, this should be bit-for-bit.
Configuration menu - View commit details
-
Copy full SHA for 3d8e164 - Browse repository at this point
Copy the full SHA 3d8e164View commit details
Commits on Mar 31, 2023
-
Add MARBL_TRACERS_INIT_VERTICAL_REMAP_ONLY option
If the initial condition file for the MARBL tracers is already on the MOM grid, this will skip the horizontal interpolation step. This option is not necessary for CESM-MOM6 (we want to interpolate ICs from the WOA grid), but is useful for MOM6-examples, where we are interpolating to a single column grid offline.
Configuration menu - View commit details
-
Copy full SHA for 6401386 - Browse repository at this point
Copy the full SHA 6401386View commit details
Commits on Apr 6, 2023
-
This one has been updated to set negative values -> 0 and then was run through the autotroph consistency check (if any of Chl, C, P, Fe, or Si are 0 they should all be 0)
Configuration menu - View commit details
-
Copy full SHA for 579e18a - Browse repository at this point
Copy the full SHA 579e18aView commit details
Commits on Apr 18, 2023
-
Move atm_co2 and atm_alt_co2 to MOM_forcing_type
This commit also moves ATM_CO2_CONST and ATM_ALT_CO2_CONST to marbl_forcing_mod and uses those values for the new forcing fields as preparation for possibly getting Sa_co2diag and Sa_co2prog from the mediator. Unrelated, I changed a handful of instances of "else if" to "elseif" to match what is done elsewhere in the code (these are all elseif statements I introduced on this branch earlier in development)
Configuration menu - View commit details
-
Copy full SHA for c4d46b3 - Browse repository at this point
Copy the full SHA c4d46b3View commit details -
NUOPC cap can receive CO2 if provided
MOM6 advertises for it, but if it is not available then it gets removed from importState and memory is deallocated so there is no attempt to get it (i.e. there is no error condition if the atmosphere does not provide it)
Configuration menu - View commit details
-
Copy full SHA for 2500ee4 - Browse repository at this point
Copy the full SHA 2500ee4View commit details
Commits on Apr 19, 2023
-
Support using coupler-provided atm_co2
Added ATM_CO2_OPT and ATM_ALT_CO2_OPT, which default to "const" but also support "prognostic" or "diagnostic" if the coupler is providing those fields. Also renamed marbl_forcing_mod -> MARBL_forcing_mod to be consistent with capitalization in MARBL_tracers.F90
Configuration menu - View commit details
-
Copy full SHA for 251e0f9 - Browse repository at this point
Copy the full SHA 251e0f9View commit details -
Replace logical flags with integer
For ATM_CO2_OPT and ATM_ALT_CO2_OPT, we do a string -> integer conversion instead of trying to track all possible options via logicals. This introduces some new module-level parameters in MARBL_forcing_mod.F90 (and I noticed a formatting issue in MARBL_tracers.F90 when checking how other modules handle parameters)
Configuration menu - View commit details
-
Copy full SHA for 4c77695 - Browse repository at this point
Copy the full SHA 4c77695View commit details
Commits on Apr 20, 2023
-
NUOPC cap can pass CO2_FLUX to atmosphere
Added Faoo_fco2_ocn to the exportState and modified sfc_state to be able to pass ocn_co2 to ocean_public, which then gets exported in mom_cap_methods:mom_export() In src/tracer/, I needed to set up MARBL's surface_flux_output and use it to request co2_flux. MOM_tracer_flow_control now calls MARBL_tracers_surface_state(), which copies the flux from MARBL's control structure to sfc_state. I also did a bit of code cleanup, deallocating more arrays in the MARBL control structure prior to deallocating CS itself.
Configuration menu - View commit details
-
Copy full SHA for bb7fb60 - Browse repository at this point
Copy the full SHA bb7fb60View commit details
Commits on Apr 21, 2023
-
Only copy co2 to srf_state if memory was allocated
solo_driver doesn't allocate memory in sfc_state to pass CO2 flux back to the atmosphere and was seg-faulting without the if (allocated) check
Configuration menu - View commit details
-
Copy full SHA for 60b640e - Browse repository at this point
Copy the full SHA 60b640eView commit details
Commits on Apr 22, 2023
-
Code clean-up following review
1. sfc_state%sfc_co2 -> sfc_state%fco2 2. re-order some if states and do loops (want if statements outside do loops as much as possible)
Configuration menu - View commit details
-
Copy full SHA for c6e3e37 - Browse repository at this point
Copy the full SHA c6e3e37View commit details -
Remove spaces in "end if" and "end do"
The MOM6 style guide explicitly states we should use endif and enddo with no space
Configuration menu - View commit details
-
Copy full SHA for 64fd101 - Browse repository at this point
Copy the full SHA 64fd101View commit details -
1. solo_driver has callTree_leave() call in MARBL forcing override routine 2. allocate() statements use the source= argument as much as possible 3. cleaned up spacing in if statements [a mix of "if(condition) then" and "if (condition)then" 4. removed unnecessary use statement in mom_cap_methods, and cleaned up vague comment 5. renamed ocean_public%ocn_co2 -> ocean_public%fco2_ocn
Configuration menu - View commit details
-
Copy full SHA for 9758657 - Browse repository at this point
Copy the full SHA 9758657View commit details
Commits on May 22, 2023
-
Move more calls into if (cesm_coupled) blocks because they require CESM forcings from CMEPS
Configuration menu - View commit details
-
Copy full SHA for 96fe9dc - Browse repository at this point
Copy the full SHA 96fe9dcView commit details
Commits on Aug 8, 2023
-
Updates to use support_mks branch of MARBL
This branch of MARBL requires the unit_system argument in a few places; sticking with cgs introduces a few round-off level differences due to restructing some internal MARBL computations.
Configuration menu - View commit details
-
Copy full SHA for f2eae66 - Browse repository at this point
Copy the full SHA f2eae66View commit details -
Update dummy driver to add unit_system args
Because the API to MARBL changed, I needed to update some code in config_src/externals/MARBL
Configuration menu - View commit details
-
Copy full SHA for 12f7e80 - Browse repository at this point
Copy the full SHA 12f7e80View commit details
Commits on Aug 9, 2023
-
Requires the support_mks branch of MARBL as well as generating marbl_in with --unit_system mks
Configuration menu - View commit details
-
Copy full SHA for 0ee6d3d - Browse repository at this point
Copy the full SHA 0ee6d3dView commit details
Commits on Aug 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 10eba6c - Browse repository at this point
Copy the full SHA 10eba6cView commit details
Commits on Aug 17, 2023
-
Update default for iron forcing files
MARBL_FESEDFLUX_FILE and MARBL_FEVENTFLUX_FILE were updated to remove the incorrect 1D horizontal dimensions (and rename the dimensions nx and ny so that categorize_axes could still figure out how to read the files)
Configuration menu - View commit details
-
Copy full SHA for 977bc63 - Browse repository at this point
Copy the full SHA 977bc63View commit details
Commits on Aug 24, 2023
-
Updated pkg/MARBL, which changed API
A couple arguments changed in functions called from MARBL_tracers.F90 and I caught a mistake in the comments of MARBL_forcing_mod.F90. Also updated the dummy API so the model continues to build when MARBL is not available.
Configuration menu - View commit details
-
Copy full SHA for fdaeca2 - Browse repository at this point
Copy the full SHA fdaeca2View commit details
Commits on Aug 25, 2023
-
Dummy MARBL API needs one more function
The MARBL driver calls marbl_instances%get_conc_flux_units(), which I had forgotten to add to the dummy cap
Configuration menu - View commit details
-
Copy full SHA for 10e6998 - Browse repository at this point
Copy the full SHA 10e6998View commit details -
replaced surface_flux_output%add_output with add_output_from_GCM(); this commit uses the new API from MARBL and also updates the dummy API so we can still build without MARBL
Configuration menu - View commit details
-
Copy full SHA for e2212a3 - Browse repository at this point
Copy the full SHA e2212a3View commit details
Commits on Oct 18, 2023
-
Don't need to overwrite tracer_restore_vars
A MARBL update (reflected in MOM_interface) puts empty strings in tracer_restore_vars by default for MOM6, so we don't need to remove the POP defaults in the Fortran code anymore
Configuration menu - View commit details
-
Copy full SHA for fafa0b9 - Browse repository at this point
Copy the full SHA fafa0b9View commit details
Commits on Oct 27, 2023
-
Use time_interp_external for restoring
This is still a work in progress, but I cleaned up how the MARBL tracer restoring fields are translated into something the MARBL_tracers control structure can parse and also call init_external_field. One issue I'm having is that time_interp_external needs a time_type argument, and that's not available in MARBL_tracers_column_physics. I think the solution will be to move a lot of this code to MARBL_forcing.F90, but I want to do that in a separate commit.
Configuration menu - View commit details
-
Copy full SHA for 97a801f - Browse repository at this point
Copy the full SHA 97a801fView commit details
Commits on Nov 13, 2023
-
First pass at implementing tracer restoring
Uses time_interp_external to temporally interpolate restoring fields; assumes data is on correct spatial grid, and then does vertical interpolation to go from data's vertical grid to current MOM6 grid (similar to iron sediment flux). Still to do: vertical interpolation of restoring time scale
Configuration menu - View commit details
-
Copy full SHA for 670f8f4 - Browse repository at this point
Copy the full SHA 670f8f4View commit details
Commits on Nov 14, 2023
-
Clean-up to avoid truncation errors
Was failing some CI tests due to truncation issues
Configuration menu - View commit details
-
Copy full SHA for e63b412 - Browse repository at this point
Copy the full SHA e63b412View commit details
Commits on Nov 15, 2023
-
Switch from interpolate_column to remapping_core_h
interpolate_column() is meant for interpolating from cell interfaces, not cell centers. MOM_initialize_tracer_from_Z() uses ALE_remap_scalar(), which just calls remapping_core_h() under the hood, so that's what we want to use for vertical interpolation of the restoring fields and time scales.
Configuration menu - View commit details
-
Copy full SHA for cd7cd2f - Browse repository at this point
Copy the full SHA cd7cd2fView commit details
Commits on Nov 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0e42cf4 - Browse repository at this point
Copy the full SHA 0e42cf4View commit details
Commits on Dec 1, 2023
-
enable_averaging -> enable_averages
previous merge contained a change to this function name, so my MARBL code additions were stuck calling the wrong one
Configuration menu - View commit details
-
Copy full SHA for 69202f7 - Browse repository at this point
Copy the full SHA 69202f7View commit details
Commits on Dec 15, 2023
-
Move river flux code into MARBL_tracers
1. MARBL_forcing_mod should just be for fields that pass through the MOM6 cap 2. River fluxes shouldn't be in the forcing datatype 3. MARBL_tracers_set_forcing() is already set up to handle fields read in with time_interp_external
Configuration menu - View commit details
-
Copy full SHA for 5540525 - Browse repository at this point
Copy the full SHA 5540525View commit details
Commits on Dec 19, 2023
-
move post_data calls for river nutrient fluxes
Diags are posted after files are read in set_forcing(). Also, cleaned up where I apply the dt factor to convert from flux to time-integrated flux because set_forcing is only called once during the first two time steps so we were inadvertently applying a factor of dt^2 on the second time step. This commit is bit-for-bit with 69202f7 in my CESM testing, which wasn't the case for 5540525
Configuration menu - View commit details
-
Copy full SHA for f8fe7ec - Browse repository at this point
Copy the full SHA f8fe7ecView commit details -
Several "Line length exceeded" messages in CI, addressed by adding continuation lines instead
Configuration menu - View commit details
-
Copy full SHA for 2235a02 - Browse repository at this point
Copy the full SHA 2235a02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82a2da3 - Browse repository at this point
Copy the full SHA 82a2da3View commit details -
Had a ! instead of !< when documenting a variable in a class
Configuration menu - View commit details
-
Copy full SHA for 16a7ae0 - Browse repository at this point
Copy the full SHA 16a7ae0View commit details
Commits on Dec 21, 2023
-
Still need to update d14c forcing, currently hardcoded to use -4 (we want to read from a file with dimensions time,lat_band and interpolate in time)
Configuration menu - View commit details
-
Copy full SHA for 3c2ed29 - Browse repository at this point
Copy the full SHA 3c2ed29View commit details
Commits on Dec 29, 2023
-
Add MARBL_TRACERS_MAY_REINIT to param file
The default is still false, but in some cases (branching off a run that did not have MARBL enabled) it would be useful to set as true instead
Configuration menu - View commit details
-
Copy full SHA for d4e9b2d - Browse repository at this point
Copy the full SHA d4e9b2dView commit details -
Add dummy get_setting() to marbl_interface_class
Now that I call get_setting() to determine which MARBL tracer modules are enabled, the dummy cap also needs this function
Configuration menu - View commit details
-
Copy full SHA for c2bd1d0 - Browse repository at this point
Copy the full SHA c2bd1d0View commit details
Commits on Jan 29, 2024
-
Skip some processes when not base_bio_on
If base_bio_on is false, we don't want to request any output from the GCM or deal with the iron flux forcing fields
Configuration menu - View commit details
-
Copy full SHA for bd80540 - Browse repository at this point
Copy the full SHA bd80540View commit details
Commits on Feb 2, 2024
-
Add support for reading d14c forcing from netcdf
Use time_interp_external to read in d14c in three latitude bands; in putting this together, I also found a bug in tracer_forcing_utils that resulted in being off by a year when reading constant forcing (river fluxes were interpolated to Jan 1, 1901, rather than Jan 1, 1900; fixing it also meant updating the forcing file so there was data to read on Jan 1, 1900, since the original dataset begins on July 1 of that year). Also, following the GFDL MOM6 call, I added parentheses around the square term in "a * b**2" constructs [this was a bit-for-bit change on derecho, but some machines treat "a * b**2" as "(a*b)*b" instead of "a*(b*b)"]
Configuration menu - View commit details
-
Copy full SHA for aca2c9a - Browse repository at this point
Copy the full SHA aca2c9aView commit details
Commits on Feb 29, 2024
-
That tag changed how total 3d chlorophyll is passed from MARBL to the GCM
Configuration menu - View commit details
-
Copy full SHA for 25f378d - Browse repository at this point
Copy the full SHA 25f378dView commit details -
Update interface to build without MARBL
marbl0.46.0 updated the MARBL interface, so that needs to be reflected in the config_src/ version
Configuration menu - View commit details
-
Copy full SHA for 5aa6c93 - Browse repository at this point
Copy the full SHA 5aa6c93View commit details
Commits on Mar 1, 2024
-
Shorten line that exceeded max length
doxygen test was failing because I added some whitespace between variable declaration and inline comment; I broke the comment over two lines to fix
Configuration menu - View commit details
-
Copy full SHA for 37dc940 - Browse repository at this point
Copy the full SHA 37dc940View commit details
Commits on Mar 12, 2024
-
MARBL_tracers.F90 and MARBL_forcing_mod.F90 now comply with whitespace rules from the MOM6 style guide
Configuration menu - View commit details
-
Copy full SHA for 7bb68c5 - Browse repository at this point
Copy the full SHA 7bb68c5View commit details
Commits on Mar 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ddd5d46 - Browse repository at this point
Copy the full SHA ddd5d46View commit details
Commits on Apr 3, 2024
-
Check abio_dic_on and base_bio_on before posting
There are a few diagnostics that are only defined if base_bio_on=.true. (the river flux nutrient forcing fields), and one that is only defined if abio_dic_on=.true. (the d14c forcing); some compilers won't initialize the diagnostic ids to 0 in the control structure, so we need to either explicitly initialize all the ids or only call post_data when we know the ids have been set. This commit does the latter.
Configuration menu - View commit details
-
Copy full SHA for 3c8beb7 - Browse repository at this point
Copy the full SHA 3c8beb7View commit details
Commits on Apr 4, 2024
-
Updates for dimensional scaling test
Currently fails T-scaling test with solo driver, probably fails lots of other scaling tests as well. This commit 1. Adds debug output to MARBL_tracers.F90 2. Gets dimensions correct in comments of MOM_forcing_type, MARBL_forcing_mod, and MARBL_tracers 3. Scales forcings correctly for the MARBL surface_flux_compute() step (at least in T); output highlights issues in computing source / sink term from interior_tendency_compute() One of the biggest changes from this commit is the handling of units for the nitrogen deposition fluxes. It looks like they were coming in as kg/m^2/s, being converted to mol/L^2/T in fluxes%{nhx_dep,noy_dep}, and then converted to mmol/m^2/s when copied into MARBL. Now the intermediate stage is mmol/m^3 Z/T; this is not bit-for-bit with the previous setup because I went from multiplying by (1000/14) (kg -> mol) and then another 1000 in the third step (mol -> mmol) to just multiplying by 1e6/14 (kg -> mmol) in the second step.
Configuration menu - View commit details
-
Copy full SHA for 315e1cd - Browse repository at this point
Copy the full SHA 315e1cdView commit details -
More dimensional scaling updates
With solo_driver, the following runs are all bit-for-bit with non-scaled runs: C_RESCALE_POWER = 10 H_RESCALE_POWER = 10 L_RESCALE_POWER = 10 S_RESCALE_POWER = 10 T_RESCALE_POWER = 10 Z_RESCALE_POWER = 10
Configuration menu - View commit details
-
Copy full SHA for 7679e52 - Browse repository at this point
Copy the full SHA 7679e52View commit details -
Clean up line-lengths in some comments
Should pass doxygen test again
Configuration menu - View commit details
-
Copy full SHA for 615e0b3 - Browse repository at this point
Copy the full SHA 615e0b3View commit details
Commits on Apr 5, 2024
-
pass phys units to convert_marbl_IOB_to_forcings()
The function is meant to help copy fields from the ice_ocean_boundary_type (which is in physical units in all the caps) to the forcing_type (which wants scaled units). So the solo_driver should NOT scale the dust, black carbon, or NDEP inputs from data_override, and instead that scaling should happen in MARBL_forcing_mod.F90
Configuration menu - View commit details
-
Copy full SHA for 44bbed7 - Browse repository at this point
Copy the full SHA 44bbed7View commit details
Commits on Apr 11, 2024
-
applyTracerBoundaryFluxesInOut expects in_flux_optional in units of conc H, and we were passing conc m T/s. Since riv_flux_loc is now conc H, I also added a debug-gated hchksum on it.
Configuration menu - View commit details
-
Copy full SHA for e70b913 - Browse repository at this point
Copy the full SHA e70b913View commit details -
Introduce MARBL_IC_MIN_VAL for testing
The dimensional scaling tests fail if the MARBL tracer concentrations are very very small (O(1e-300)); this can be avoided by setting the minimum tracer value to be 1e-100 instead of 0. We don't want to do this for production runs, though, so the default for this parameter is still 0.
Configuration menu - View commit details
-
Copy full SHA for 1dae9e0 - Browse repository at this point
Copy the full SHA 1dae9e0View commit details
Commits on Apr 15, 2024
-
Fixed a few area correction bugs
Sa_co2prog and Sa_co2diag should not be area corrected (they are states) but Faoo_fco2_ocn should be (it's a flux)
Configuration menu - View commit details
-
Copy full SHA for 5477f56 - Browse repository at this point
Copy the full SHA 5477f56View commit details
Commits on Apr 19, 2024
-
When calling marbl_instance%init(), we should tell MARBL that MOM6 doesn't have the global operators that MARBL expects (global sums / running means) so we get the appropriate error message when trying to run with ladjust_bury_coeff = True
Configuration menu - View commit details
-
Copy full SHA for 39bd3b3 - Browse repository at this point
Copy the full SHA 39bd3b3View commit details -
Add chksum calls for MARBL forcings
Updated ice_ocn_bnd_type_chksum() in the NUOPC cap, though I don't think this function is ever called
Configuration menu - View commit details
-
Copy full SHA for dfbc658 - Browse repository at this point
Copy the full SHA dfbc658View commit details
Commits on May 2, 2024
-
MARBL input data is now in INPUTDATA
I had created CESM_INPUTDATA as a parameter to point to my work directory, but it is no longer necessary because INPUTDATA points to the CESM input data repository and I've moved necessary files there
Configuration menu - View commit details
-
Copy full SHA for 05b7ea1 - Browse repository at this point
Copy the full SHA 05b7ea1View commit details
Commits on May 16, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5039f3e - Browse repository at this point
Copy the full SHA 5039f3eView commit details
Commits on Jul 12, 2024
-
-- cleaned up a lot of comments and whitespace -- used source argument in more allocate statements, and deallocated more arrays -- 3D diags now have zl:mean in cell_methods attribute -- marbl_instances%domain%kmt is set once (during initialization)
Configuration menu - View commit details
-
Copy full SHA for 21529b9 - Browse repository at this point
Copy the full SHA 21529b9View commit details
Commits on Jul 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bbffde0 - Browse repository at this point
Copy the full SHA bbffde0View commit details -
Only use MARBL for Chl when using base_bio tracers
If MARBL is not configured to provide the base biotic tracers, then it will not be able to provide chlorophyll. In that case, if CHL_FROM_FILE=False, MOM6 needs to get chlorophyll from the generic tracers.
Configuration menu - View commit details
-
Copy full SHA for bbf3f7f - Browse repository at this point
Copy the full SHA bbf3f7fView commit details -
tracer_forcing_utils moved into MOM_interpolate
To make these subroutines more accessible, they were moved out of src/tracer/ and made available through MOM_interpolate
Configuration menu - View commit details
-
Copy full SHA for afd71b1 - Browse repository at this point
Copy the full SHA afd71b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 97c0917 - Browse repository at this point
Copy the full SHA 97c0917View commit details
Commits on Jul 16, 2024
-
Add some variable descriptions
If variable was described in POP comment, I copied the comment over. Otherwise I came up with a description on my own.
Configuration menu - View commit details
-
Copy full SHA for 7163ff3 - Browse repository at this point
Copy the full SHA 7163ff3View commit details
Commits on Aug 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 3934d5f - Browse repository at this point
Copy the full SHA 3934d5fView commit details -
time_interp_external() does not update halo regions, so running CESM with DEBUG=TRUE was triggering some overflows from uninitialized memory. Intead of copying the entire array, we now loop through (is:ie,js:je) when accessing an array returned from time_interp_external()
Configuration menu - View commit details
-
Copy full SHA for 8ba02c2 - Browse repository at this point
Copy the full SHA 8ba02c2View commit details
Commits on Aug 2, 2024
-
Add parameter to change restoring time scale name
Most use cases don't include restoring for MARBL tracers, but when that feature is enabled and the time scale is read from a file the user can specify what variable to read from the netCDF file (default is I_TAU to match naming convention in MOM6, but some test cases are based on POP files and will need to read RTAU)
Configuration menu - View commit details
-
Copy full SHA for 232b65d - Browse repository at this point
Copy the full SHA 232b65dView commit details