COSIMA / libaccessom2

ACCESS-OM2 library
3 stars 7 forks source link

support input4MIPS input files #25

Open aekiss opened 5 years ago

aekiss commented 5 years ago

See https://github.com/COSIMA/access-om2/issues/120 and https://github.com/COSIMA/access-om2/issues/155. I suspect we can cover all cases by having an additional key to represent year+1.

aekiss commented 5 years ago

We also need to combine solid and liquid runoff somehow - see discussion in https://github.com/COSIMA/access-om2/issues/155

The simplest thing would be to treat solid runoff as liquid, ignoring its latent heat, and add to liquid runoff. I guess it could be toggled by a combine_runoff boolean flag in the runoff_nml namelist in atmosphere/atm.nml. The forcing.json would have an additional entry to load the solid runoff, and if combine_runoff is true this would be added to the liquid runoff.

@nichannah what do you think?

aekiss commented 5 years ago

Another approach would be to have an additional key-value pair for the solid runoff file in the runoff dictionary in forcing.json, like what was done for scaling.

If implemented for all fields, this could also be used for additive perturbation experiments, instead of (or in addition to) the support for multiplicative perturbations we already have via scaling.

aekiss commented 5 years ago

I'm ~prettymuch~ no longer sold on the idea of implementing this via a new offset_filename key, so that we can have both additive and multiplicative perturbations (as well as JRA55-do 1.4.0 support), which would be a useful extension to our current scaling-only perturbation capability discussed in the wiki. We'd also need an offset_fieldname key to specify the field to use in the offset file (but this could default to "fieldname" if unspecified).

So to support JRA55-do 1.4.0 the runoff forcing.json entry would be

    {
      "filename": "/g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/land/day/friver/gr/v20190429/friver/friver_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_{{year}}0101-{{year}}1231.nc",
      "fieldname": "friver",
      "offset_filename": "/g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/landIce/day/licalvf/gr/v20190429/licalvf/licalvf_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_{{year}}0101-{{year}}1231.nc",
      "offset_fieldname": "licalvf",
      "cname": "runof_ai"
    },

Can anyone see a problem with that? (ping @nichannah, @russfiedler, @aidanheerdegen)

aekiss commented 5 years ago

I'm now thinking it would be better to separate the additive-perturbation functionality from JRA55-do 1.4.0 support, i.e. use a combine_runoff boolean flag in the runoff_nml namelist in atmosphere/atm.nml as originally proposed, and also have offset_filename and offset_fieldname for all fields. This way we can have additive perturbations to JRA55-do 1.4.0 runoff.

aekiss commented 5 years ago

Additive forcing perturbation is now a separate issue: https://github.com/COSIMA/libaccessom2/issues/30

aekiss commented 5 years ago

See PR for implementation of year+1 https://github.com/COSIMA/libaccessom2/pull/26

Remaining issues:

aekiss commented 5 years ago

re. first point above, Is there any reason not to do a case-insensitive checks for dimension names here? That would cover the first point above and also make it handle other other any changes to dim name capitalisation which may arise in future. https://github.com/COSIMA/libaccessom2/blob/5ec57165fb132cc28ecba5344701a1bc3cbac10d/libcouple/src/util.F90#L128-L137

aekiss commented 4 years ago

@nichannah any objections if I use case-insensitive checks? See previous post.

aekiss commented 4 years ago

also see discussion in https://github.com/COSIMA/libaccessom2/issues/20

nichannah commented 4 years ago

@aekiss no problem, I probably just didn't think of it.