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

new history dimension: size class only #145

Closed
ckoven opened this issue Nov 2, 2016 · 2 comments · Fixed by #179
Closed

new history dimension: size class only #145

ckoven opened this issue Nov 2, 2016 · 2 comments · Fixed by #179

Comments

@ckoven
Copy link
Contributor

ckoven commented Nov 2, 2016

Now that the history refactor is almost done, I wanted to put in a request for some new history functionality, which is a new dimension that is size-class only. Currently we have output that are dimensioned patch, site, patch/site x ground, or patch/site x multiplexed size class and PFT. The latter is great for intensive introspection of the model but too big for default-on runs, since the PFT part of that dimension can be quite large. As a result they are all default-off variables on that dimension. So what I'd like is to have another dimension that is just patch x size class, with a small number of default-on variables that are output on that new dimension (number density, total mortality, and NPP to start). That way we'll always have some ability to know what is going on across the size classes.

@rgknox
Copy link
Contributor

rgknox commented Nov 3, 2016

I believe this should be pretty straight forward.

@ckoven
Copy link
Contributor Author

ckoven commented Jan 12, 2017

all-
I'm starting to work on this. since it necessarily involves coordinated changes on both sides of the interface, its of relatively high priority in order to happen before the fates-clm split. while at it, I will also add back in a dimension for PFT-only, both for simplicity in looking at output and because the current size/pft dimension is awkward for comparing woody and non-woody PFT dynamics. also I'd like to add a dimension for a binned patch age, so as to facilitate, e.g., outputting light levels across different patch ages. if anyone has a requested variable on any of those dimensions, happy to add it.

bandre-ucar added a commit that referenced this issue Feb 3, 2017
Merge branch 'switch_pftvars_dims'

Added three new history variable dimensions: size, age, and PFT.

Previously you could add variables on a multiplexed size x PFT
dimension, but not just size, and just PFT was using the levsoi
dimension instead of its own dedicated dimension. Also there was no
way to output things binned by patch-age, and the multiplexed
dimension is a bit unwieldy such that none of those variables are
default-on. Since the dimension definitions straddle the FATES-HLM
interface, fixing these will be trickier to change once the interface
is in place; also we will soon want the mxpft that sets the length of
the PFT dimension to be a runtime-set parameter, so separating it from
nlevsoi removes a currently-implied dependency that mxpft must be less
than nlevsoi. In addition to adding these dimensions, I also pulled
all the old PFT-resolved variables off of the nlevsoi axis and onto
the new PFT axis, and added some new variables on the size and age
axes. These include a default-on basal area by size class diagnostic,
and some new diagnostics about the patch age distribution, npp, gpp,
and canopy and leaf areas resolved by patch age.

Fixes: #145

User interface changes?: No

Code review: went over most of the code with @rgknox

Testing:
  ckoven:
    Test suite: ed test suite on lawrencium-lr3, intel
    Test baseline: a5dc8da
    Test namelist changes: n/a
    Test answer changes: bit for bit
    Test summary: ALL PASS

  andre:
    Test suite: ed - yellowstone gnu, intel, pgi
                     hobart nag
    Test baseline: a1c3d20
    Test namelist changes: none
    Test answer changes: bit for bit - see note
    Test summary: ok, functionality tests pass, baselines ok.

    Test suite: clm_short - yellowstone gnu, intel, pgi
    Test baseline: clm4_5_12_r195
    Test namelist changes: none
    Test answer changes: bit for bit - see note
    Test summary: ok, functionality tests pass, baselines ok.

    NOTE: cprnc does not compare variables when the dimensions have
    changed. Since the dimensions of some varibles have changed with
    this work, those variables can not be confirmed to be bit for
    bit. Depending on the version of cprnc that is installed this
    skipping of variables is either silently ignored or triggers an
    error resulting in a test failure. The cprnc on hobart (and I
    assume lrc) ignore this difference. The cprnc on yellowstone
    reports these a test failures. Passing baseline comparisons on
    hobart and no RMS differences on yellowstone support that this is
    still bit for bit for the checked fields.
rgknox pushed a commit that referenced this issue Apr 21, 2017
Merge branch 'switch_pftvars_dims'

Added three new history variable dimensions: size, age, and PFT.

Previously you could add variables on a multiplexed size x PFT
dimension, but not just size, and just PFT was using the levsoi
dimension instead of its own dedicated dimension. Also there was no
way to output things binned by patch-age, and the multiplexed
dimension is a bit unwieldy such that none of those variables are
default-on. Since the dimension definitions straddle the FATES-HLM
interface, fixing these will be trickier to change once the interface
is in place; also we will soon want the mxpft that sets the length of
the PFT dimension to be a runtime-set parameter, so separating it from
nlevsoi removes a currently-implied dependency that mxpft must be less
than nlevsoi. In addition to adding these dimensions, I also pulled
all the old PFT-resolved variables off of the nlevsoi axis and onto
the new PFT axis, and added some new variables on the size and age
axes. These include a default-on basal area by size class diagnostic,
and some new diagnostics about the patch age distribution, npp, gpp,
and canopy and leaf areas resolved by patch age.

Fixes: #145

User interface changes?: No

Code review: went over most of the code with @rgknox

Testing:
  ckoven:
    Test suite: ed test suite on lawrencium-lr3, intel
    Test baseline: a5dc8da
    Test namelist changes: n/a
    Test answer changes: bit for bit
    Test summary: ALL PASS

  andre:
    Test suite: ed - yellowstone gnu, intel, pgi
                     hobart nag
    Test baseline: a1c3d20
    Test namelist changes: none
    Test answer changes: bit for bit - see note
    Test summary: ok, functionality tests pass, baselines ok.

    Test suite: clm_short - yellowstone gnu, intel, pgi
    Test baseline: clm4_5_12_r195
    Test namelist changes: none
    Test answer changes: bit for bit - see note
    Test summary: ok, functionality tests pass, baselines ok.

    NOTE: cprnc does not compare variables when the dimensions have
    changed. Since the dimensions of some varibles have changed with
    this work, those variables can not be confirmed to be bit for
    bit. Depending on the version of cprnc that is installed this
    skipping of variables is either silently ignored or triggers an
    error resulting in a test failure. The cprnc on hobart (and I
    assume lrc) ignore this difference. The cprnc on yellowstone
    reports these a test failures. Passing baseline comparisons on
    hobart and no RMS differences on yellowstone support that this is
    still bit for bit for the checked fields.
rgknox pushed a commit that referenced this issue May 23, 2017
Merge branch 'switch_pftvars_dims'

Added three new history variable dimensions: size, age, and PFT.

Previously you could add variables on a multiplexed size x PFT
dimension, but not just size, and just PFT was using the levsoi
dimension instead of its own dedicated dimension. Also there was no
way to output things binned by patch-age, and the multiplexed
dimension is a bit unwieldy such that none of those variables are
default-on. Since the dimension definitions straddle the FATES-HLM
interface, fixing these will be trickier to change once the interface
is in place; also we will soon want the mxpft that sets the length of
the PFT dimension to be a runtime-set parameter, so separating it from
nlevsoi removes a currently-implied dependency that mxpft must be less
than nlevsoi. In addition to adding these dimensions, I also pulled
all the old PFT-resolved variables off of the nlevsoi axis and onto
the new PFT axis, and added some new variables on the size and age
axes. These include a default-on basal area by size class diagnostic,
and some new diagnostics about the patch age distribution, npp, gpp,
and canopy and leaf areas resolved by patch age.

Fixes: #145

User interface changes?: No

Code review: went over most of the code with @rgknox

Testing:
  ckoven:
    Test suite: ed test suite on lawrencium-lr3, intel
    Test baseline: a5dc8da
    Test namelist changes: n/a
    Test answer changes: bit for bit
    Test summary: ALL PASS

  andre:
    Test suite: ed - yellowstone gnu, intel, pgi
                     hobart nag
    Test baseline: a1c3d20
    Test namelist changes: none
    Test answer changes: bit for bit - see note
    Test summary: ok, functionality tests pass, baselines ok.

    Test suite: clm_short - yellowstone gnu, intel, pgi
    Test baseline: clm4_5_12_r195
    Test namelist changes: none
    Test answer changes: bit for bit - see note
    Test summary: ok, functionality tests pass, baselines ok.

    NOTE: cprnc does not compare variables when the dimensions have
    changed. Since the dimensions of some varibles have changed with
    this work, those variables can not be confirmed to be bit for
    bit. Depending on the version of cprnc that is installed this
    skipping of variables is either silently ignored or triggers an
    error resulting in a test failure. The cprnc on hobart (and I
    assume lrc) ignore this difference. The cprnc on yellowstone
    reports these a test failures. Passing baseline comparisons on
    hobart and no RMS differences on yellowstone support that this is
    still bit for bit for the checked fields.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants