Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support input4MIPS input files #25

Open
aekiss opened this issue Aug 19, 2019 · 10 comments
Open

support input4MIPS input files #25

aekiss opened this issue Aug 19, 2019 · 10 comments

Comments

@aekiss
Copy link
Contributor

aekiss commented Aug 19, 2019

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

@aekiss
Copy link
Contributor Author

aekiss commented Aug 27, 2019

We also need to combine solid and liquid runoff somehow - see discussion in COSIMA/access-om2#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
Copy link
Contributor Author

aekiss commented Aug 27, 2019

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
Copy link
Contributor Author

aekiss commented Aug 29, 2019

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
Copy link
Contributor Author

aekiss commented Sep 9, 2019

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
Copy link
Contributor Author

aekiss commented Sep 15, 2019

Additive forcing perturbation is now a separate issue: #30

@aekiss
Copy link
Contributor Author

aekiss commented Oct 15, 2019

See PR for implementation of year+1 #26

Remaining issues:

@aekiss
Copy link
Contributor Author

aekiss commented Oct 15, 2019

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.

if (trim(dimname) == 'time' .or. trim(dimname) == 'AT' .or. &
trim(dimname) == 'TIME' .or. trim(dimname) == 'Time') then
time = len
elseif (trim(dimname) == 'latitude' .or. trim(dimname) == 'AY' .or. &
trim(dimname) == 'ny' .or. trim(dimname) == 'LAT' .or. &
trim(dimname) == 'nj') then
ny = len
elseif (trim(dimname) == 'longitude' .or. trim(dimname) == 'AX' .or. &
trim(dimname) == 'nx' .or. trim(dimname) == 'LON' .or. &
trim(dimname) == 'ni') then

@aekiss
Copy link
Contributor Author

aekiss commented Dec 4, 2019

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

aekiss added a commit that referenced this issue Dec 10, 2019
additional key year+1 to support input4MIPS -- #25
@aekiss
Copy link
Contributor Author

aekiss commented Dec 10, 2019

also see discussion in #20

@nichannah
Copy link
Contributor

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

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

No branches or pull requests

2 participants