Skip to content

Rofi spread#13

Open
anton-seaice wants to merge 11 commits intocmeps1.1.35-xfrom
rofi_spread
Open

Rofi spread#13
anton-seaice wants to merge 11 commits intocmeps1.1.35-xfrom
rofi_spread

Conversation

@anton-seaice
Copy link
Copy Markdown
Collaborator

@anton-seaice anton-seaice commented Mar 1, 2026

This change allows for spreading of the iceberg melt field according to a climatological pattern.

A new configuration parameter is added, rof2ocn_ice_spread - which is the filename for a netcdf file with a 12-monthly climatological spreading pattern. If this parameter is not set - there is no change to existing behaviour (see repro test)

When a file is provided, the incoming Forr_rofi field is spread according to the pattern supplied in the climatology of spreading.

e.g., for January:

image

and for June:

image

Water volume is maintained between that coming from drof and ficeberg in MOM:

image

See example OM3 100km configuration:

ACCESS-NRI/access-om3-configs@3169a38

@anton-seaice anton-seaice self-assigned this Mar 1, 2026
@anton-seaice anton-seaice marked this pull request as ready for review March 4, 2026 03:05
@anton-seaice
Copy link
Copy Markdown
Collaborator Author

mediator timestamps are a bit strange, hence the minor difference in mediator vs mom runoff plots:

image

@aekiss
Copy link
Copy Markdown

aekiss commented Mar 10, 2026

Thanks @anton-seaice - do you think this is ready for the next 25km IAF test run?

@anton-seaice
Copy link
Copy Markdown
Collaborator Author

Ready from my perspective.

  1. Do we want to seperate the impact of changing the land mask in the poles to support b-grid advection from this change ?
  2. Needs review and deployment - would take a few days at least

Comment thread mediator/med_io_mod.F90
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

There isn't much flexibility in the mediator io. I modified this so that it can read 3d variable (x,y,time) from a netcdf . For whatever reason, 3d information in restart files is saved in separate 2d variables so the functionality didn't exisit.

Comment thread mediator/med_io_mod.F90 Outdated
@anton-seaice
Copy link
Copy Markdown
Collaborator Author

I did some cleanup, but have finished that for now

Copy link
Copy Markdown

@dougiesquire dougiesquire left a comment

Choose a reason for hiding this comment

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

Nice work @anton-seaice. Sorry for taking so long to get to this.

My main worry is the lack of time interpolation and the resulting step changes in the pattern between months. But, as we've discussed, we probably can't address that here.

Comment thread mediator/med_io_mod.F90 Outdated
!-------------------------------------------------------------------------------
#endif

rc = ESMF_SUCCESS
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Why is this needed? Is this just convention (e.g. in case someone adds an early return path or something)?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It seemed like convention, maybe it's not actually needed

Comment thread mediator/med_phases_post_rof_mod.F90 Outdated
Comment thread mediator/med_phases_post_rof_mod.F90 Outdated
Comment thread mediator/med_phases_post_rof_mod.F90 Outdated
Comment thread mediator/med_phases_post_rof_mod.F90 Outdated
Comment thread mediator/med_io_mod.F90
rcode = pio_inq_dimlen(pioid, dimid(1), lnx)
if (rcode /= pio_noerr) then
ierr = pio_strerror(rcode, tmpstr)
call shr_sys_abort(trim(subname)//' ERROR: '//trim(tmpstr), rc=rc)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

How come you call shr_sys_abort here, but shr_log_error for lny and lni below?

Comment thread mediator/med_io_mod.F90 Outdated
Comment thread mediator/med_io_mod.F90 Outdated
Comment thread mediator/med_io_mod.F90 Outdated
Comment thread mediator/med_io_mod.F90
Comment on lines +1669 to +1670
call ESMF_LogWrite(trim(subname)//trim(tmpstr), ESMF_LOGMSG_INFO, rc=rc)
fldptr2 = 0.0_r8
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

How come we don't abort here?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Not 100% sure, I just followed existing behaviour I think

There might be use cases where its ok to restart with missing fields ?

Co-authored-by: Dougie Squire <dougie.squire@anu.edu.au>
Comment thread mediator/med_io_mod.F90 Outdated
!-------------------------------------------------------------------------------
#endif

rc = ESMF_SUCCESS
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It seemed like convention, maybe it's not actually needed

Comment thread mediator/med_io_mod.F90 Outdated
Comment thread mediator/med_io_mod.F90
Comment on lines +1669 to +1670
call ESMF_LogWrite(trim(subname)//trim(tmpstr), ESMF_LOGMSG_INFO, rc=rc)
fldptr2 = 0.0_r8
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Not 100% sure, I just followed existing behaviour I think

There might be use cases where its ok to restart with missing fields ?

anton-seaice and others added 2 commits April 20, 2026 12:03
Co-authored-by: Dougie Squire <dougie.squire@anu.edu.au>
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

Successfully merging this pull request may close these issues.

3 participants