Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions mediator/med_phases_post_atm_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ module med_phases_post_atm_mod

character(*), parameter :: u_FILE_u = &
__FILE__
character(len=9), parameter :: fields_to_spread_runoff(1) = &
['Faoa_rofi']

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

did rofi and rofl get seperated elsewhere ?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

In access-esm rofl only contains the river runoff, and rofi contains both the iceberg basal and calving melt fluxes. The spreading here simultaneously does your calving flux spreading + a coastal distribution for the basal melt. Is that what you meant?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Oh - ah, I think it's better to have seperate steps in the mediator for basal and iceberg right ?

basal fraction, gets remapped with a fixed remapping weights file to put it along coastlines

and iceberg gets spread like this change

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It would be great if what was done was as close as possible consistent with OM3.

So that would mean splitting the iceberg and basal proportions before they leave the mediator. And having separate rofi/rofl fields to correspond to the MOM fields. It's relatively clear in the MOM diagnostics that rofi should be for the iceberg fraction - e.g. https://github.com/ACCESS-NRI/access-om3-configs/blob/b14a2797812531d5b4728f04cd67dcee19bfe439/docs/available_diags.000000#L4548, although less clear about the liquid proportion (e.g. there are lrunoff_glc fields available which OM3 doesn't use). Having separate fields for rofi and rofl means the rofi spreading input file can be the same across the two models. It also supports future/ongoing work to figure out how to spread the basal melt fraction vertically

The proposal to put the basal melt component in rofi by having a single pattern with 50% of the volume at the coastline will continue to give issues with supercooled water & excess sea ice from the large latent heat flux at the coastlines.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Unfortunately this will be tricky! The coupled model needs to have energy balance, and ignoring the basal melt latent heat will give us a persistent +0.05 W/m^2 (averaged over the entire earth) bias.

The latent heat at the coastal point doesn't seem to cause issues, the maximum sea-ice thickness matches OM3. If it does cause issues in the future we can add this splitting in and put the latent heat somewhere else.

But either way I don't think this will change the spreading routine itself, just how and where we apply it in post_atm. Shall we leave this as is, and change how we apply the spreading routine to CM3 if needed in a future PR?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Isn't the atmosphere just a really basic glacier model ? 😅

Well probably need to split the rofl field from datm into rivers / basal at some point, so would be good if the same name could be used for both cases .

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Well probably need to split the rofl field from datm into rivers / basal at some point, so would be good if the same name could be used for both cases .

Yeah. My thinking is that we want specific logic in MOM for the basal flux (latent heat and potentially other things, e.g. insertion at depth). I feels like the implementation will be cleaner with a new field.

@kieranricardo kieranricardo Jun 29, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Having an additional field in MOM, and spreading the freshwater and latent heat fluxes at depth sounds like the ideal approach.

We need the latent heat flux in the coupled model, so the existing liquid field _rofl fields won't be suitable. For now, we could either keep basal melt in Foxx_rofi, or move it into Foxx_rofi_glc. I suggest that we do one of these two options for now, and coordinate between OM3 and CM3 in the future (once OM3 handles the latent heat from the basal melt).

How does this sound? I see this PR as mostly about generalising the spreading routine, and we can iron out the model specifics later on.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We need the latent heat flux in the coupled model, so the existing liquid field _rofl

We can/will update MOM to address this

Do you have a preferred name for the new field @dougiesquire ?

Maybe

Foax_rofb (b for basal?)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Foax_rofb (b for basal?)

Seems sensible to me



!-----------------------------------------------------------------------------
contains
Expand All @@ -35,6 +38,7 @@ subroutine med_phases_post_atm(gcomp, rc)
use med_utils_mod , only : chkerr => med_utils_ChkErr
use med_internalstate_mod , only : compocn, compatm, compice, complnd, compwav, coupling_mode
use perf_mod , only : t_startf, t_stopf
use med_phases_post_rof_mod, only: med_phases_post_rof_spread_rofi_field_bundle

! input/output variables
type(ESMF_GridComp) :: gcomp
Expand Down Expand Up @@ -125,6 +129,16 @@ subroutine med_phases_post_atm(gcomp, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
end if

if (trim(coupling_mode) == 'access-esm') then
Comment thread
kieranricardo marked this conversation as resolved.
! in access-esm, runoff comes from the atmosphere component, so spreading of iceberg melt here
call med_phases_post_rof_spread_rofi_field_bundle( &
gcomp, fields_to_spread_runoff, &
is_local%wrap%FBImp(compatm,compatm), &
is_local%wrap%FBImp(compatm,compocn), &
compatm, compocn, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
end if

if (dbug_flag > 20) then
call ESMF_LogWrite(subname//' done', ESMF_LOGMSG_INFO)
end if
Expand Down
Loading