Skip to content
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 tracers for freshwater sources to MPAS-Ocean #7087

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

cbegeman
Copy link
Contributor

@cbegeman cbegeman commented Mar 5, 2025

This PR creates a new group of freshwater tracers, each associated with a source of fresh water mass to the ocean (including sea ice meltwater, which has a salinity > 0 PSU). All freshwater sources to the ocean are included. The value assigned to each tracers is its volumetric concentration.

All tracer tendency terms are included except the nonlocal flux term because it would require a new nonLocalSurfaceTracerFlux struct array to separate the salinity flux into its constituent mass source terms. That term is also not included for other passive tracers.

These freshwater tracers do not have any sinks and thus their concentrations do not equilibrate. A possible extension of this work would be adding sinks proportional to freshwater tracer concentrations times negative mass fluxes at the ocean surface. This feature is not generally included in the literature so we have chosen not to include it here.

This feature is off by default. To activate freshwater tracers, set config_use_freshwaterTracers=.true.. All freshwater tracers are activated together, but the user may choose to output only a subset of these tracers.

[BFB][stealth]

@cbegeman cbegeman added mpas-ocean BFB PR leaves answers BFB Stealth PR has feature which, if turned on, could change climate. fka FCC labels Mar 5, 2025
@cbegeman
Copy link
Contributor Author

cbegeman commented Mar 5, 2025

Testing

This branch has been tested again master 2481382 on chrys. The e3sm_cryo_developer and e3sm_ocnice_extra_coverage have been run and pass.

@cbegeman
Copy link
Contributor Author

cbegeman commented Mar 5, 2025

Further discussion is located at E3SM-Ocean-Discussion#108

@xylar
Copy link
Contributor

xylar commented Mar 11, 2025

@cbegeman, as we discussed, this will need a stealth test. Here are the existing ones:
https://github.com/E3SM-Project/E3SM/blob/master/cime_config/tests.py#L280-L290
You can probably find one to copy and modify.

Copy link
Contributor

@xylar xylar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cbegeman, this looks great! Just a few things I'd suggest to clean thing us a bit.

@@ -282,6 +282,7 @@
"SMS_D_Ld1.T62_oQU240wLI.GMPAS-IAF-PISMF.mpaso-impl_top_drag",
"SMS_D_Ld1.T62_oQU240.GMPAS-IAF.mpaso-harmonic_mean_drag",
"SMS_D_Ld1.T62_oQU240.GMPAS-IAF.mpaso-upwind_advection",
"SMS_D_Ld1.T62_oQU240.GMPAS-IAF.mpaso-freshwater_tracers",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth considering:

Suggested change
"SMS_D_Ld1.T62_oQU240.GMPAS-IAF.mpaso-freshwater_tracers",
"SMS_D_Ld1.T62_oQU240wLI.GMPAS-IAF-PISMF.mpaso-freshwater_tracers",

to also test the ice-shelf-melt freshwater tracer. What do you think?

Comment on lines +981 to +982
else
call mpas_log_write('indexSnow is not associated')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this output (here and elsewhere in this file) would happen at every time step or at least every coupling time step and would be confusing to users. I think we probably want to remove it.

else
call mpas_log_write('indexLandIceFreshwater or landIceFreshwaterFlux is not associated')
endif
call mpas_log_write('end fw assign sflux')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should probably also be removed.

Comment on lines +855 to +856
!call mpas_pool_print_summary(tracersSurfaceFluxPool, MPAS_POOL_FIELD, .true.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be removed.


if ( groupName == 'freshwaterTracers' ) then
if (config_use_tracerGroup_surface_restoring) &
call mpas_log_write('surface restoring not supported for freshwaterTracers group')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these (here and below) should be critical errors, not just messages in the log file:

Suggested change
call mpas_log_write('surface restoring not supported for freshwaterTracers group')
call mpas_log_write('surface restoring not supported for freshwaterTracers group', messageType=MPAS_LOG_CRIT)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BFB PR leaves answers BFB mpas-ocean Stealth PR has feature which, if turned on, could change climate. fka FCC
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants