-
Notifications
You must be signed in to change notification settings - Fork 216
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
RUN_WITH_SUBMIT set to TRUE, but never set to FALSE #347
Labels
Comments
pesieber
pushed a commit
to pesieber/cime
that referenced
this issue
Mar 15, 2023
I want to write some expected-exception tests for my init_interp changes. For these to work robustly, I want to check the error message returned against the expected error message (to make sure it's not aborting for some completely different reason). In doing so, I noticed that our endrun calls don't actually pass the abort message on to shr_sys_abort. This needs to be done in order to assert against the expected message. Also: add a new optional argument to endrun, additional_msg, which is written to iulog but not passed along to shr_sys_abort. This is to support expected-exception unit testing, particularly thinking about the common practice of writing out the line number: this is too volatile to test against in unit tests. So a call could look like this: call endrun(msg='Informative message', additional_msg=errmsg(__FILE__, __LINE__)) Fixes ESMCI#347
pesieber
pushed a commit
to pesieber/cime
that referenced
this issue
Mar 15, 2023
New init_interp method The main change in this tag is to introduce a new method for init_interp. This is needed in order for subgrid areas to be the same in initialization in runs with and without init_interp. The choice of init_interp method is controlled by a new namelist variable, init_interp_method, whose documentation appears below: Method to use for init_interp. Only applies when use_init_interp = .true. 'general': The general-purpose method that can be used when changing grids, configurations, etc. This starts off with subgrid areas taken from the surface dataset. 'use_finidat_areas': This starts off with subgrid areas taken from the input finidat file. This is needed to achieve bit-for-bit results in a coupled case (where areas in initialization impact initial fields sent to the atmosphere) (but using the 'general' method will typically have only a very minor impact on results in this case). For this method to work, the input finidat file needs to be at the same resolution as the current configuration. So this is a less general form of init_interp. However, it can be used when transitioning from a spinup run to a transient run, or in other cases where the only difference is in internal memory allocation. In order to catch possible problems, this uses a different algorithm for finding the input point for each output point, which ensures that each active output point is associated with exactly one input point with the same latitude, longitude and type. This method requires (a) the same grid for input and output, within roundoff; (b) any non-zero-weight point in the input must have memory allocated for it in this grid cell in the output (this will be satisfied if the point is non-zero-weight on the surface dataset or if it's a point for which we allocate memory even for zero-weight points); (c) any active point in the output (based on the surface dataset and rules for determining active points) must have a matching point in this grid cell in the input. This tag also has some other changes: - Fixes ESMCI#347 - endrun message behavior: needed for some of the new unit tests - Fixes ESMCI#345 - Add a cmip6_evolving_icesheet usermods directory: unrelated, but folded in here for convenience of testing)
pesieber
pushed a commit
to pesieber/cime
that referenced
this issue
Mar 15, 2023
New init_interp method The main change in this tag is to introduce a new method for init_interp. This is needed in order for subgrid areas to be the same in initialization in runs with and without init_interp. The choice of init_interp method is controlled by a new namelist variable, init_interp_method, whose documentation appears below: Method to use for init_interp. Only applies when use_init_interp = .true. 'general': The general-purpose method that can be used when changing grids, configurations, etc. This starts off with subgrid areas taken from the surface dataset. 'use_finidat_areas': This starts off with subgrid areas taken from the input finidat file. This is needed to achieve bit-for-bit results in a coupled case (where areas in initialization impact initial fields sent to the atmosphere) (but using the 'general' method will typically have only a very minor impact on results in this case). For this method to work, the input finidat file needs to be at the same resolution as the current configuration. So this is a less general form of init_interp. However, it can be used when transitioning from a spinup run to a transient run, or in other cases where the only difference is in internal memory allocation. In order to catch possible problems, this uses a different algorithm for finding the input point for each output point, which ensures that each active output point is associated with exactly one input point with the same latitude, longitude and type. This method requires (a) the same grid for input and output, within roundoff; (b) any non-zero-weight point in the input must have memory allocated for it in this grid cell in the output (this will be satisfied if the point is non-zero-weight on the surface dataset or if it's a point for which we allocate memory even for zero-weight points); (c) any active point in the output (based on the surface dataset and rules for determining active points) must have a matching point in this grid cell in the input. This tag also has some other changes: - Fixes ESMCI#347 - endrun message behavior: needed for some of the new unit tests - Fixes ESMCI#345 - Add a cmip6_evolving_icesheet usermods directory: unrelated, but folded in here for convenience of testing)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is a minor issue that I just noticed. Caveat: I haven't done any testing; this just looks wrong to me. (This also appears to have been an issue in cime4.)
The RUN_WITH_SUBMIT xml variable is set to TRUE the first time you run case.submit. But it is never set to FALSE. I think this means that the scripts will let you do the following:
whereas they should yell at you for the attempt to resubmit without use of the case.submit script.
I think the fix for this would be, after this block in case_run:
insert:
so that it's reset for the next time around.
The text was updated successfully, but these errors were encountered: