compass.landice.tests.ismip7_calibration.ais.fit_delta_t.FitDeltaT

class compass.landice.tests.ismip7_calibration.ais.fit_delta_t.FitDeltaT(test_case, melt_forms, state_name='climatology')[source]

A step that fits the basin thermal-forcing correction dT_b.

Protocol Sect. 4.2.1 permits the corrections to be calculated at either stage: (1) before the parameter optimisation, which “can lead to the problem that the parameter bounds are not constrained when present-day melt rates are compared to observations (namely, terms J1 and J2)”; or (2) after it, “as in ISMIP6”. This step follows (2), which is what the published quadratic worked example does, and it is why the calibration itself runs with dT_b = 0 throughout.

dT_b depends on the melt parameter, so it is fitted separately at the 5th, 50th and 95th percentiles of the selected distribution, and a complete MALI parameter file – basins, corrections and the parameter itself – is written for each. Projections at each percentile then need only point at the matching file.

For each basin, dT is searched on a grid within the configured bounds, minimising the absolute difference between the basin-integrated melt and the IMBIE observed value. The protocol recommends bounding dT_b by about 2 K, since the warmest-to-coldest spread across Antarctic ice shelves is only 3-4 K, and recommends avoiding the correction where possible since it is “only an ad-hoc correction”.

The search is done on the MALI mesh with area-weighted integrals. The toolbox’s own optimise_deltaT cannot be used, because it sums over structured-grid x and y dimensions with a single scalar cell area. Melt is recomputed in Python from MALI’s TFdraft, so no further MALI runs are needed: dT enters the melt expression only through the thermal forcing.

Variables:

melt_forms (list of str) – The melt forms to fit dT_b for

__init__(test_case, melt_forms, state_name='climatology')[source]

Create the step

Parameters:
  • test_case (compass.landice.tests.ismip7_calibration.ais.Ais) – The test case this step belongs to

  • melt_forms (list of str) – The melt forms to fit dT_b for

  • state_name (str, optional) – The ocean state to fit against; the present-day climatology, to match the observed present-day melt

Methods

__init__(test_case, melt_forms[, state_name])

Create the step

add_input_file([filename, target, database, ...])

Add an input file to the step (but not necessarily to the MPAS model).

add_model_as_input()

make a link to the model executable and add it to the inputs

add_namelist_file(package, namelist[, ...])

Add a file with updates to namelist options to the step to be parsed when generating a complete namelist file if and when the step gets set up.

add_namelist_options(options[, out_name, mode])

Add the namelist replacements to be parsed when generating a namelist file if and when the step gets set up.

add_output_file(filename)

Add the output file that must be produced by this step and may be made available as an input to steps, perhaps in other test cases.

add_streams_file(package, streams[, ...])

Add a streams file to the step to be parsed when generating a complete streams file if and when the step gets set up.

constrain_resources(available_resources)

Constrain cpus_per_task and ntasks based on the number of cores available to this step

process_inputs_and_outputs()

Process the inputs to and outputs from a step added with compass.Step.add_input_file() and compass.Step.add_output_file().

run()

Run this step of the test case

runtime_setup()

Update attributes of the step at runtime before calling the run() method.

set_resources([cpus_per_task, ...])

Update the resources for the subtask.

setup()

Set up this step of the test case

update_namelist_at_runtime(options[, out_name])

Update an existing namelist file with additional options.

update_namelist_pio([out_name])

Modify the namelist so the number of PIO tasks and the stride between them consistent with the number of nodes and cores (one PIO task per node).

update_streams_at_runtime(package, streams, ...)

Update the streams files during the run phase of this step using the given template and replacements.