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

time dependent forcing applied at incorrect time in timestep #7

Open
billsacks opened this issue Jul 6, 2018 · 2 comments
Open

time dependent forcing applied at incorrect time in timestep #7

billsacks opened this issue Jul 6, 2018 · 2 comments

Comments

@billsacks
Copy link
Member

From @stephenprice on March 10, 2015 18:17

In cism_driver/cism_front_end.F90, we have the option to read time dependent forcing fields from an input .nc file. Currently, we use this to read in an apply temperature, smb, and Dirichlet BC info (mask for where Dirichlet BCs are to be applied as well as the u and v vel fields to apply there). This capability is demonstrated in one supported test case (see ./tests/higher-order/dome/dome.forcing.*).

We found, however, that for implementing Dirichlet boundaries the u and v fields need to be applied at the start of the time step, whereas the smb and temperature should be applied at the end of the time step. The current implementation only allows for one choice (all fields are read in and applied at the same time).

Right now, the problems that arise from this inconsistency are worse if we leave the forcing at the end of the time step as opposed to moving it to the start of the time step (we can't make progress on simulations with time dependent vel BCs applied, a priority for validation), so we will move it to the start. Thus, the smb and sfc air temps are being applied as bcs / source terms at the wrong part of the time step. This can / should eventually be fixed by allowing for different forcing fields to be applied at different parts of the time step.

Copied from original issue: E3SM-Project/cism-piscees#19

@billsacks
Copy link
Member Author

From @stephenprice on March 10, 2015 18:17

@matthewhoffman please look over my description here and edit it as necessary.

@billsacks
Copy link
Member Author

From @matthewhoffman on March 11, 2015 2:54

@stephenprice , this looks good. I'll add that the problem with velocity when reading forcing at the end of the time step is that the velocity field that was read from file clobbers the velocity field that was calculated by the model - which clearly is bad. 👎

Another thought just crossed my mind - if the velocity values used by kinbcmask were in a different field (e.g., kinbcuvel, kinbcvvel), I think that would solve the problem and allow the values to be read at the end of the timestep - and more easily than other potential fixes. One thing to consider is that right now Glissade is only using a 2d field of values for the kinbc (it applies the basal uvel/vvel values throughout the entire column at every grid point that is masked) - so if we added new fields for the kinbc values, they would only need to be 2d fields (at least for now). We should give more careful thought to this potential solution when the time comes to address this.

billsacks added a commit that referenced this issue Jun 23, 2021
Changes from MISOMIP branch to support marine ice sheets

This commit includes many changes made on the MISOMIP branch over the past several months. The changes were made with the initial goal of supporting MISMIP+ and ISOMIP+ experiments,
and the longer-term goal of enabling simulations of marine ice in real ice sheets.

The following are the major changes:

* A new module (glissade_bmlt_float.F90) to support different options for sub-shelf melting
* A subgrid calving front parameterization based on Albrecht et al. (2011), whereby calving-front cells are treated as partly filled cells whose effective thickness is derived from cells upstream
* New masks to support the subgrid calving front scheme
* New calving options, including thickness-based calving and eigencalving, that use the subgrid calving front scheme
* An option to limit the thickness of marine ice cliffs
* An option to turn off basal melt in partly grounded cells
* Various numerical changes to make marine ice simulations more stable
* A change in order of operations, putting the addition of SMB/BMB before horizontal transport
* New diagnostics for global mass conservation and fluxes
* Improved support for outflow boundary conditions
* Support for an adaptive time step based on the maximum CFL number
* Changes in grounding-line computations, to make the GLP more robust and the logic simpler
* Modified lateral boundary condition for grounded marine-based ice
* Preliminary work toward a plume model of subshelf melting
* Some new diagnostic fields, including grounding-line fluxes
* Various code cleanup

Many of these commits are answer-changing for non-default settings, and a few are answer-changing for default settings. The changes are relatively small, generally ~1-2% or less for standard LIVV tests (dome, ISMIP_HOM, confined shelf, circular shelf) and for MISMIP+.

Some of these changes, including the unfinished plume model, will likely be redacted before the CISM2.1 release. Others may be labeled as preliminary and not fully supported.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant