ACCESS-NRI / dev_coupling

0 stars 0 forks source link

UM -> CICE flux energy conservation #24

Open kieranricardo opened 1 month ago

kieranricardo commented 1 month ago

Currently the atm->ice mapping (almost) follows CM2:

  1. UM: exports ice averaged fluxes to CMEPS
  2. CMEPS: conservatively remaps fluxes to CICE grid3
  3. CICE: import UM fluxes

The fluxes only apply to the ice covered area of total sea (and not the total sea area), conservative re-mapping does not take this into account breaking energy conservation.

CM2 is slightly different:

  1. CICE: import UM fluxes and scale by ice fractions (at the start of the coupling period)
  2. CICE: at each time step: divide fluxes by current ice fractions

This ensures that the energy transferred to CICE over the time step is flux * area * initial_ice_fraction * dt, but does not fix the energy conservation issue.

Possible fixes

Map total sea average fluxes to CICE and divide by CICE ice fractions

  1. UM: export total sea averaged fluxes to CMEPS
  2. CMEPS: conservatively map fluxes to CICE grid
  3. CICE: import UM fluxes and divide by ice fraction

This approach conserves energy, but when fluxes are mapped to areas with little sea-ice this creates unphysically large fluxes causing the CICE to crash.

Map ice fractions from the UM to CICE and send extra energy to the ocean

  1. UM: export total sea averaged fluxes from UM to CMEPS
  2. UM: export UM ice fractionsto CMEPS
  3. CMEPS: conservatively remap UM ice fractions and fluxes to CICE grid
  4. CICE: import UM fluxes and (mapped) UM ice fractions, and divide fluxes by (mapped) UM ice fractions
  5. CICE: send extra energy (um_ice_fraction - cice_ice_fraction) * area * flux * dt to ocean

This approach sends physically reasonable flux values to CICE while still conserving energy. Sending extra energy to the ocean is already done in CICE when UM fluxes are mapped to ice free points, this approach generalises this to account for differences in the UM and CICE ice fractions.