COSIMA / access-om3

ACCESS-OM3 global ocean-sea ice-wave coupled model
13 stars 7 forks source link

Runoff not conserved #231

Open aekiss opened 2 weeks ago

aekiss commented 2 weeks ago

Runoff isn't conserved. Plots below show the RYF JRA55do input data and what is reported by MOM6 for a 1deg run (ignore "m-2" in the units).

The global integral of liquid runoff shows a significant shortfall in MOM6, especially in SH summer, but also (weirdly) excess water in late August. The step at 1 May is the RYF join. download-2

MOM6 total_frunoff is drastically smaller than JRA55do licalvf download-3

Plot script: https://github.com/aekiss/access-eval-recipes/blob/ef120fa/ocean/runoff_budget.ipynb

Related: https://github.com/COSIMA/access-om3/issues/208#issuecomment-2295463215, https://github.com/COSIMA/access-om3/issues/217, https://github.com/COSIMA/access-om3/issues/37, https://github.com/ACCESS-NRI/dev_coupling/issues/33#issuecomment-2381837455

aekiss commented 2 weeks ago

I'm not sure what happens when JRA55do runoff is located at land points in the model. Need to find out what routing is done (if any).

aekiss commented 2 weeks ago

Also need to check whether conservative regridding is used - see https://github.com/COSIMA/access-om3/issues/37

aekiss commented 2 weeks ago

Here's log(friver) from JRA55do download-5 and log(friver) from MOM - notice MOM is missing the Black Sea - where does this water go? download-4

aekiss commented 2 weeks ago

Here's log(licalvf) from JRA55do download-7

and log(ficeberg) from MOM download-6

aekiss commented 2 weeks ago

Maybe we'll need to set these in nuopc.runconfig to map the runoff into the ocean?

     rof2ocn_ice_rmapname = unset
     rof2ocn_liq_rmapname = unset
anton-seaice commented 2 weeks ago

In https://escomp.github.io/CMEPS/versions/master/html/addendum/req_attributes_cesm.html?highlight=rof2ocn_ice_rmapname#mediator-mapping-file-attributes it says CMEPS will create an "online route handle" if those values are unset.

Whats the format of a "mapping file"?

It looks like the default is to do a first-order conservative remapping:

https://github.com/ESCOMP/CMEPS/blob/f4f64c324469c33a78e0118ce1dd7944e85521d6/mediator/esmFldsExchange_cesm_mod.F90#L2399

There are options for maptype when creating the remap online:

maptype determines the mapping type and can have values of:

mapbilnr: bilinear mapping
mapconsf: first order conservative mapping with normalization type of conservative fraction.
mapconsd: first order conservative mapping with normalization type of conservative fraction.
mappatch: patch mapping
mapfcopy: redist mapping
mapnstod: nearest source to destination mapping
mapnstod_consd: nearest source to destination followed by conservative destination
mapnstod_consf: nearest source to destination followed by conservative fraction

I don't know if one of those makes more sense ?

anton-seaice commented 2 weeks ago

ESMF seems to support remapping with masks, so maybe we need to include a mask in our mesh files ?

https://earthsystemmodeling.org/regrid/#options-for-masking-areas-unmapped-points-etc

aekiss commented 2 weeks ago

Thanks @anton-seaice, these (from https://earthsystemmodeling.org/regrid/#options-for-masking-areas-unmapped-points-etc) look like they may be suitable

  • Nearest source to destination: The value of each destination point is set to the value of the closest source point.
  • Inverse distance weighted average: The value of each destination point is set to the weighted average of the values of the N closest source points. The weight is the reciprocal of the distance of the source from the destination raised to the power P. The user can choose N and P, but defaults are also provided.

or from CMEPS

mapnstod_consd: nearest source to destination followed by conservative destination
anton-seaice commented 2 weeks ago

@gustavo-marques - We (ACCESS) are looking at options for how to make sure runoff is distributed into the ocean (and not land). Does CESM use an 'online' computation for remapping weights? Or are you using pre-computed mapping weights?

We are using this option for computing mapping weights online for liquid run-off: mapconsd: first order conservative mapping with normalization type of conservative fraction. but think maybe mapnstod_consd: nearest source to destination followed by conservative destination should ensure it gets mapped into the ocean ?

gustavo-marques commented 4 days ago

Hi @anton-seaice, The runoff mapping files are still done offline in CESM. We use a combination of nearest-neighbor and smoothing mappings to distribute the runoff over a pre-defined radius and using an e-folding distance. Input parameters:

eFold = smoothing eFold distance in meters (default: 1000000) rMax = maximum radius of effect in meters (default: 300000)

You can find out more about this procedure here.

aekiss commented 3 days ago

Thanks @gustavo-marques, it's great to have these details