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

Changes for the CalvingMIP submission #70

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

whlipscomb
Copy link
Contributor

This branch include several changes to improve accuracy for the CISM CalvingMIP submission of Nov. 2024:

  • a more accurate way to compute the calving front length for problems with radial symmetry
  • a change in how thck_effective is computed in some calving front cells
  • more accurate diagnostics for computing the runtime calving front location along the designated profiles
  • support for new CalvingMIP grids with the origin lying at a cell corner
  • other small changes in the CalvingMIP setup script and template file

Comparing to results from other groups, we found that CISM has too much retreat
during the retreat phase of Experiments 2 and 4, mainly because of the method
used to compute cf_length. I was computing cf_length by reconstructing the CF
along a path connecting cell centers. This path can become noisy (i.e., with
spurious projections and indentations), giving excessive retreat.

I tried two new approaches:
(1) Compute the CF length in a cell based on the number of cell edges bordering the ocean.
    Cells with two ocean edges have their thinning rate multiplied by sqrt(2),
    reflecting the longer CF (but not by a factor of 2, since the calving direction
    is not normal to the two edges).
(2) Compute the CF length based on the secant of the angle between the calving direction
    and the x and y axes. The thinning rate is multiplied by 1 for the compass directions,
    by sqrt(2) for the diagonals, and by intermediate values in between.

Method (1) does not fix the problem of excessive retreat.
Method (2), however, gives more accurate retreat and is now the default for CalvingMIP.

For realistic ice sheet geometries, the calving rate is not radially symmetric,
so method (2) is not appropriate. Method (1) is now the default for subgrid CF schemes
other than CalvingMIP. It is a bit cleaner than the previous method.

Other changes:
(1) Modified the method of estimating the CF location along the diagonal trajectories
    in the circular domain. This method uses the x0 and y0 coordinates and is a bit
    more accurate than the old method; it is less prone to getting stuck for several
    years at the same value.
(2) Added a subroutine to estimate the CF location along the Halbrane and Caprona
    trajectories for the Thule geometry. The Caprona method is approximate and might
    not be as accurate as offline methods using 2D interpolation schemes.
(3) The 1D fields x0 and y0 are now loadable at startup, like x1 and y1.
(4) To deal with I/O involving x0 and y0, I added some code in the distributed get_var
    and put_var functions in parallel_mpi.F90.
(5) Added a config option, which_ho_calvingmip_domain, to specify whether the user
    is running on the circular or Thule domain. This parameter is set automatically
    by the CalvingMip setup script.

Note: This commit will be followed by a commit that includes a modifed CalvingMIP setup script.
      That script creates a grid with the origin at a cell corner instead of a cell center.
This commit modifies the CalvingMIP setup script.
The main change is that the grid origin is now located at a
cell corner instead of a cell center. This means that on a 5-km grid
measuring 1600 km along each edge, there are now 320 cells in each
direction instead of 321. This change makes it easier to initialize
the calving front at a distance of 750 km from the origin,
instead of being extended or falling short by half a grid cell.

Other changes:
* Fixed a bug that gave the wrong retreat rate for Experiment 4
* Added the which_ho_calvingmip_domain variable to the config files
* Edited the README file for clarity and accuracy
This commit extends the Circular and Thule grids by one cell in each direction.
E.g., for a 5km run, where there were previously 160 cells in each direction,
there are now 162. This extension makes it easier to interpolate scalars
to the CalvingMIP results grid, which corresponds to the CISM (x0,y0) grid.

I re-ran the experiments, which should provide our final submitted results.
Compare to the old grid, answers change at the machine roundoff level,
presumably because the grid decomposition is different.
This is the version used for the CISM CalvingMIP submission in Nov. 2024.

This commit changes the way thck_effective (the effective ice thickness)
is computed in calving front cells.

For any CF cell with an interior neighbor, the calculation is unchanged;
thck_effective is set to the maximum thickness of the cell's interior edge neighbors.

For CF cells without interior edge neighbors (i.e., cells whose only edge neighbors
are other CF cells), thck_effective is now set to the maximum thickness of the
CF neighbors. Previously, we set thck_effective = thck, giving values that are too low.

I also fixed a minor bug in the way the CF location is computed along the diagonal axes
for the circular domain.

I set dthck_dx_cf = 0.0005 in the config template file for CalvingMIP.
This value gives slightly more accurate results than the default value of 0.
Setting dthck_dx_cf = 0 gives a little too much retreat.
If desired, we could modify the python setup script to control this parameter
at the command line.

We ran the final CalvingMIP runs with dthck_dx_cf = 0.0005.
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

Successfully merging this pull request may close these issues.

3 participants