ACCESS-NRI / model-config-tests

Tests for checking model configurations
Apache License 2.0
0 stars 1 forks source link

ACCESS-ESM1.5 testing #21

Closed aidanheerdegen closed 3 months ago

aidanheerdegen commented 6 months ago

As part of the ACCESS-ESM1.5 Release there needs to be reproducibility and QA tests for the ACCESS-ESM1.5 model configurations.

As ACCESS-ESM1.5 uses MOM5 the same reproducibility tests should suffice in the first instance. This code could be moved to a MOM5 class and then used by ACCESS-OM2 and ACCESS-ESM1.5.

access-hive-bot commented 4 months ago

This issue has been mentioned on ACCESS Hive Community Forum. There might be relevant details there:

https://forum.access-hive.org.au/t/access-esm1-5-access-nri-flagship-release-plans/1772/1

jo-basevi commented 4 months ago

The initial reproducibility tests that use MOM5 checksums have now been added by https://github.com/ACCESS-NRI/model-config-tests/pull/28.

The above PR did not add any specific QA testing for ACCESS-ESM1.5

CodeGat commented 3 months ago

@aidanheerdegen in order to complete this issue, we'll need a list of QA checks that we will enforce. Happy to have a chat about them when you're free.

aidanheerdegen commented 3 months ago

Note, what follows is pseudo-code, actual values of variables will need to be copied/adapted from existing tests.

Potential checks:

metdata.yaml

set(realm) == set('atmosphere', 'land', 'ocean', 'ocnBgchm', 'seaIce')
nominal_resolution == '100 km'
set(keywords) == set('global', 'access-esm1.5')
reference == 'https://doi.org/10.1071/ES19035'

config.yaml

if configname == 'preindustrial' then
  config['calendar']['start'] == {'year': 101, 'month': 1, 'day': 1}
else if configname == 'historical' then
    config['calendar']['start'] == {'year': 1850, 'month': 1, 'day': 1}
fi
config['calendar']['runtime'] == {'year': 1, 'month': 0, 'day': 0}

The docs say any value that is in the correct format is ok, but actually we probably just want to stick with a specific value to be consistent

restart_freq == '20YS`

Need tests for correct paths to user scripts, but until we know what they are we won't know what they are.

We also want to use the test_mppncombine_fast_collate_exe test from OM2. Not sure the best way to organise that. Could have an FMS or MOM5 class they both inherit from, or reuse the function from.