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

Separate sea ice melt and direct precipitation to ocean when handling ice-ocean boundary mass fluxes #213

Open
hdrake opened this issue Aug 12, 2024 · 6 comments

Comments

@hdrake
Copy link

hdrake commented Aug 12, 2024

As commented by @StephenGriffies, there is a placeholder for a seaice_melt diagnostic in MOM6 but it currently does not get overwritten by SIS2, which bundles liquid precipitation together with sea ice melt here:

SIS2/src/SIS_slow_thermo.F90

Lines 1372 to 1376 in 2c49005

! Combine the liquid precipitation with the net melt of ice and snow for
! passing to the ocean. These may later be kept separate.
do j=jsc,jec ; do i=isc,iec
IOF%lprec_ocn_top(i,j) = IOF%lprec_ocn_top(i,j) + net_melt(i,j)
enddo ; enddo

Because the ocean surface flux diagnostics get set by SIS2, this means that both liquid precipitation and sea ice melt/formation are included in MOM6's prlq ocean diagnostic, which really complicated process-based understanding of ocean mass budgets and salinity budgets.

It would be nice if SIS2 created a new seaice_melt variable that could be used to overwrite IOB%seaice_melt variable along with the others surface mass fluxes here:

call data_override('OCN', 'lprec', IOB%lprec , Time)
call data_override('OCN', 'fprec', IOB%fprec , Time)
call data_override('OCN', 'runoff', IOB%runoff , Time)
call data_override('OCN', 'calving', IOB%calving , Time)

@hdrake
Copy link
Author

hdrake commented Aug 12, 2024

The following shows that the piping is all there for these fluxes to propagate through to a new seaice_melt diagnostic in MOM6.

In MOM6, the seaice_melt array gets allocated here in the ice_ocean_boundary:

https://github.com/mom-ocean/MOM6/blob/aacb90989668f855bacc870637a1bb7abd8417c1/config_src/drivers/nuopc_cap/mom_cap.F90#L687

and filled with zeros here:

https://github.com/mom-ocean/MOM6/blob/aacb90989668f855bacc870637a1bb7abd8417c1/config_src/drivers/nuopc_cap/mom_cap.F90#L707

It does not seem to get updated anywhere else, and then is passed on to the surface fluxes type here:

https://github.com/mom-ocean/MOM6/blob/aacb90989668f855bacc870637a1bb7abd8417c1/config_src/drivers/nuopc_cap/mom_surface_forcing_nuopc.F90#L494-L496

and finally the diagnostic is registered here:

https://github.com/MOM6/MOM6/blob/ced41b5183920e0993f135feda0496a07a65981a/src/core/MOM_forcing_type.F90#L1313-L1320

and the data posted here:

https://github.com/MOM6/MOM6/blob/ced41b5183920e0993f135feda0496a07a65981a/src/core/MOM_forcing_type.F90#L2484-L2485

@hdrake
Copy link
Author

hdrake commented Aug 12, 2024

As a visual example, this is what the surface mass flux into the ocean due to liquid precipitation looks like in OM5:

image

The large signals in polar regions are the sea ice melt / formation signals. While one can apply an ice concentration mask to approximately separate out these two fields, doing so on time-averaging diagnostics is imperfect and especially problematic when studying water mass transformations at high latitudes.

@StephenGriffies
Copy link

pinging @Hallberg-NOAA and @adcroft and @jkrasting

@hdrake do you see how to implement the needed diagnostic? If so, then it would be great to provide a code update. We have spoken for many years about this diagnostic, and it just keeps slipping from the list.

Indeed, see the mom-ocean/mom6 issue #114 dated from 2015 related to this issue

" Add mass flux from melting or freezing to the ice-ocean boundary type (IOB) #114 "

@hdrake
Copy link
Author

hdrake commented Aug 12, 2024

@hdrake do you see how to implement the needed diagnostic? If so, then it would be great to provide a code update. We have spoken for many years about this diagnostic, and it just keeps slipping from the list.

Yes, I think that by following each of the instances of lprec in the SIS2 code it should be easier to keep them separate. If no one else more familiar with SIS2 takes it on, I can try to make a PR after I knock out a couple pressing deadlines.

@hdrake
Copy link
Author

hdrake commented Aug 14, 2024

hdrake pushed a commit to hdrake/SIS2 that referenced this issue Aug 15, 2024
For unjustified legacy reasons, these have been bundled together in the past.
They are not only bundled together in SIS2 variables, but also in the ice-ocean
fluxes passed to the coupler and hence to MOM6.

This commit attempts to address this Issue: NOAA-GFDL#213

However, I currently am getting a SEGFAULT error stating that `iobt%seaice_melt`
has not been allocated memory when I try to do a checksum on it.
@hdrake
Copy link
Author

hdrake commented Aug 17, 2024

The basic issue of the seaice_melt mass flux diagnostics has been addressed by #214 (comment), but I'm not 100% sure about the treatment of ice-ocean heat fluxes and how this interacts with the salinity restoring / flux correction routines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants