Skip to content

generate netcdf input parameter files during testing "on-the-fly"? #2935

@rgknox

Description

@rgknox

In the FATES project, we maintain the text (i.e. cdl) version of our "default" input parameter file used exclusively for fates parameters. We like this because it allows us to maintain these defaults in version control and thus have some provenance.

Thus far, whenever we change this default parameter file, I build a new netcdf binary file (i.e. the .nc equivalent), give it a new time-stamp in the file-name (change the metadata, at least I'm supposed to), load it to the SVN server, and then change the name of the file in the CLM defaults list used for testing.

Additionally, our testing system would be much more robust, if I could run tests that operate on a number of different parameter files that express more aspects of the FATES model, intead of our single default file. But it would be time consuming to constantly re-build all of these defaults every time we change something.

I'm exploring the idea right now, of developing a text based "diff" file, that would contain different sets of changes to our single, default, parameter file. This text "diff" file, would be interpreted by a python script, and would generate different parameter files. Aside from being used by scientists to help personally adapt to changes in the structure of the parameter file, thus keeping and sharing their own "diff" files that only document their parameters of interest, I think this type of strategy could be useful in testing.

My question to this community: would/could/does CIME support a test infrastructure, that would allow us to call a script from the create_test execution, that modifies the text-based cdl default parameter file that we have, into different variants for different tests, and then for each of them "ncgen"s a binary that was built "on-the-fly" for each test?

Apologies if I'm in the wrong place, or if this has been brought up already. or if its already done.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions