Skip to content

CMEPS atm2ocn and atm2ice weights are unconfigurable #746

@angus-g

Description

@angus-g

I'm not sure if this belongs here or at access3-share. I'm trying to set up a global 8km version of ACCESS-OM3 using the grid I generated for Claire and otherwise generally based on the existing 25km RYF configuration. I was using the 2025.05.001 release of the executable.

During initialisation, the MED component calculates regridding weights from the atmosphere to the ocean and ice components:

 (module_med_map: med_map_routehandles_initfrom_field) creating RH patch_uv3d for atm to ocn srcMask =    -987987 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH bilnr for atm to ocn srcMask =    -987987 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH consf for atm to ocn srcMask =    -987987 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH patch_uv3d for atm to ice srcMask =    -987987 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH bilnr for atm to ice srcMask =    -987987 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH consf for atm to ice srcMask =    -987987 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH redist for ocn to ice srcMask =          0 dstMask =          0
 (module_med_map: med_map_routehandles_initfrom_field) creating RH redist for ice to ocn srcMask =          0 dstMask =          0

When I ran on about 1200 ocean cores (1664 total), this process was slow-ish, but manageable. But of course, the model itself runs extremely slowly (~3x gridpoints in each direction, plus I haven't even really looked into how to tune things). Scaling up to about 4000 ocean cores, this regridding stage (for the "patch" type) takes hours at initialisation, which seems like a completely unacceptable cost.

I was looking into ways of computing this offline, and noticed that using the cesm coupling mode means the maps between the components are hardcoded.

Now the weird thing is that I thought we configured the datm remapping algorithm in datm.streams.xml, where we're only ever using bilinear remapping. Indeed, unless I'm misunderstanding, at the mediator level, the atmosphere is on the same grid as the ocean, so it shouldn't require any remapping? But perhaps the patch_uv3d transformation is indeed affecting things?

I copied the OM3 executable and patched the string unset to idmap for both the atm2ocn and atm2ice route handles. This should just pass the value straight from datm through to the relevant component, and disables the regridding initialisation yet the model still runs, or at least appears to!

So I guess I have two questions/issues:

  1. do we need to be using the patch_uv3d mapping for atmospheric velocities (after already remapping to the model grid), or is the bilinear remapping alone sufficient?;
  2. if it is important, should these maps be configurable (e.g. atm2ocn_vmapname which used to exist prior to ESCOMP/CMEPS@e643dfe)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions