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

RUN_WITH_SUBMIT set to TRUE, but never set to FALSE #347

Closed
billsacks opened this issue Aug 5, 2016 · 0 comments
Closed

RUN_WITH_SUBMIT set to TRUE, but never set to FALSE #347

billsacks opened this issue Aug 5, 2016 · 0 comments
Assignees
Labels

Comments

@billsacks
Copy link
Member

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:

case.submit
(wait for run to finish)
bsub < case.run

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:

    run_with_submit = case.get_value("RUN_WITH_SUBMIT")
    expect (run_with_submit,
            "You are not calling the run script via the submit script. "
            "As a result, short-term archiving will not be called automatically."
            "Please submit your run using the submit script like so:"
            " ./case.submit")

insert:

case.set_value("RUN_WITH_SUBMIT", False)

so that it's reset for the next time around.

@rljacob rljacob added the ready label Apr 7, 2017
@ghost ghost added in progress and removed ready labels Apr 16, 2017
@ghost ghost removed the in progress label Apr 17, 2017
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
Labels
Projects
None yet
Development

No branches or pull requests

3 participants