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

Add ctsm_sci test list that would be used for releases and making sure important resolutions run well #1142

Closed
ekluzek opened this issue Sep 8, 2020 · 3 comments
Assignees
Labels
testing additions or changes to tests

Comments

@ekluzek
Copy link
Collaborator

ekluzek commented Sep 8, 2020

We think it would be good to have a "ctsm_sci" test list that would have the list of important resolutions/configurations used for CTSM science. I think this would be f09_g17, g19_g17, and f45. It should also have a NWP configuration. Anything that we list as "scientifically supported" should be in this test list. Probably would all be for production compiler settings, maybe just one test at debug to make sure there aren't problems with it.

This would also have the resolutions that are critical for CAM (so C96 and ARCTIC, CONUS, ARTICGRIS grids). It would just be for the standard compiler on the main production machine (cheyenne_intel right now).

This test list would be run supplementary to the regular aux_clm test that would be used for normal tags. This would be run for releases, or important tags that we want to make sure the science resolutions are running. We could move some of the tests we have in aux_clm to this test list, to save time in the normal test list. This would be thought of as a supplementary test list that's run in addition to the standard test list done for tags. As such it doesn't need to test the same things already done for aux_clm.

This relates to these issues that talk about testing...
#1139
#1141

@ekluzek ekluzek added enhancement new capability or improved behavior of existing capability testing additions or changes to tests labels Sep 8, 2020
@ekluzek ekluzek self-assigned this Sep 8, 2020
@billsacks billsacks removed the enhancement new capability or improved behavior of existing capability label Sep 8, 2020
@ekluzek
Copy link
Collaborator Author

ekluzek commented Sep 22, 2020

I've started this in #1150. I just included the list of compsets that have "science_supported" clicked. So only f09 and f19. There are some issues that I think are just due to known problems. So I'm bringing it in with the following fails...

SMS_Ld5.f09_g17.IHistClm45BgcCruGs.cheyenne_intel.clm-default
SMS_Ld5.f09_g17.IHistClm45BgcGs.cheyenne_intel.clm-default
SMS_Ld5.f09_g17.IHistClm50Sp.cheyenne_intel.clm-default
SMS_Ld5.f09_g17.IHistClm50SpCru.cheyenne_intel.clm-default
SMS_Ld3.f09_g17.I1850Clm50BgcCropCru.izumi_intel.clm-default
SMS_Ld5.f09_g17.I1850Clm50Bgc.izumi_intel.clm-default
SMS_Ld5.f09_g17.IHistClm45BgcCruGs.izumi_intel.clm-default
SMS_Ld5.f09_g17.IHistClm45BgcGs.izumi_intel.clm-default
SMS_Ld5.f09_g17.IHistClm50Sp.izumi_intel.clm-default
SMS_Ld5.f09_g17.IHistClm50SpCru.izumi_intel.clm-default

Since there are scientists that run on izumi it would be good to have f09 and f19 tests there. We wouldn't add the CAM grids to izumi though.

@billsacks
Copy link
Member

@ekluzek I know this is a work in progress, but it sounds like the immediate needs have been met. Should we close this issue?

@ekluzek
Copy link
Collaborator Author

ekluzek commented Oct 6, 2020

I suppose we could close it as the test list now exists.

@ekluzek ekluzek closed this as completed Oct 6, 2020
billsacks added a commit that referenced this issue Oct 6, 2020
CNFire: btran2 fixes and general cleanup

(1) Call routine to calculate fire's btran2 from CNFireArea; this has a
    few advantages:

    - It makes the logic of CNFireArea more clear (rather than depending on
      a btran2 variable that is calculated from some other part of the code)

    - This avoids having the biogeophysics depend on the biogeochemistry

    - This lets us avoid doing this btran calc if using no-fire – or other,
      future, fire methods that don't need it

    Note regarding testing: In the initial step, I kept this calculation
    dependent on a saved version of h2osoi_vol to avoid changing
    answers; I changed this in the answer changes in step (2), as noted
    below.

(2) Answer-changing fixes to CNFire's btran2 calculation and use:

    (a) Calculate fire btran2 using updated h2osoi_vol (this is an
        answer-changing cleanup step from (1))

    (b) TEMPORARY CHANGE (reverted in the cleanup in (3)): Reinitialize
        fire btran2 to spval for all patches in each time step, so that
        the fire code isn't trying to use btran2 from earlier time steps
        for patches that were in the exposed veg filter at one point but
        no longer are.

        One implication of this is that, if there is currently no
        exposed veg on a column, the new code leads to the block of code
        that forces fire_m = 0 (because wtlf will be 0). Previously, in
        contrast, it looks like fire_m was allowed to be non-zero even
        if there is currently no exposed veg, because btran2 and wtlf
        were accumulated if a patch ever was exposed in the past.

    (c) Limit fire btran2 to be <= 1, rather than letting it be slightly
        greater than 1. (Due to a conditional in CNFireArea, these
        slightly-greater-tan-1 values were being ignored when computing
        btran_col, rather than averaging in a 1 value.)

(3) Non-answer-changing fire code cleanup:

    (a) Cleanup of the btran2 fixes, including reverting the TEMPORARY
        CHANGE noted in (2b), instead relying on a better mechanism:
        just doing the calculations of btran_col and wtlf over the
        exposedvegp filter. Also, get rid of the checks for
        shr_infnan_isnan(btran2(p)) and btran2(p) <= 1 (allowed by the
        other changes in (2) and (3)).

    (b) Set btran2 to 0 over non-exposed-veg points: this changes
        answers for the BTRAN2 diagnostic field, but nothing else. (This
        follows what is done for the standard BTRAN.)

    (c) Move calc_fire_root_wetness for CNFireLi2021 into the base type
        to avoid future bugs (assuming that the next fire module will
        extend the base class but will also want to use this new version
        of calc_fire_root_wetness).

    (d) Change fire looping structure to be more standard

(4) Remove some very expensive tests from aux_clm, putting some in the
    new ctsm_sci test list instead

(5) A bit of other minor cleanup

Issues fixed:
- Resolves #1139 (Decrease expense of ne0ARCTICGRISne30x8
  test and C96 tests)
- Resolves #1153 (Fire btran2 is only computed for exposed
  veg patches, but is used over all veg patches)
- Resolves #1170 (CNFire code: btran2 should not be skipped
  when it's greater than 1)
- Partially addresses #1142 (Add ctsm_sci test list that
  would be used for releases and making sure important resolutions run
  well)
samsrabin pushed a commit to samsrabin/CTSM that referenced this issue Sep 17, 2024
…rv_term_reporting

Carbon starvation termination mortality reporting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing additions or changes to tests
Projects
None yet
Development

No branches or pull requests

2 participants