Skip to content

Commit 9463023

Browse files
committed
Use land-ice pressure to determine ice draft
This was previously only the case for thin-film cases. To accommodate this, we make the minimum ocean column thickness 10 m for non-thin-film cases. To make the different values for thin-film and non-thin-film cases more obvious, we use separate config options for the two.
1 parent 600fb8f commit 9463023

File tree

3 files changed

+25
-28
lines changed

3 files changed

+25
-28
lines changed

polaris/ocean/tasks/isomip_plus/init/init.py

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from polaris.ocean.ice_shelf import (
1010
compute_freezing_temperature,
1111
compute_land_ice_draft_from_pressure,
12-
compute_land_ice_pressure_from_draft,
1312
)
1413
from polaris.ocean.vertical import init_vertical_coord
1514
from polaris.ocean.viz import compute_transect, plot_transect
@@ -98,7 +97,12 @@ def _compute_init_topo(self):
9897
section = config['isomip_plus_init']
9998
min_levels = section.getint('minimum_levels')
10099
min_layer_thickness = section.getfloat('min_layer_thickness')
101-
min_column_thickness = section.getfloat('min_column_thickness')
100+
if thin_film:
101+
min_column_thickness = (
102+
section.getfloat('min_column_thickness_thin_film'))
103+
else:
104+
min_column_thickness = (
105+
section.getfloat('min_column_thickness_no_thin_film'))
102106
min_land_ice_fraction = section.getfloat('min_land_ice_fraction')
103107

104108
ds_topo = xr.open_dataset('topo.nc')
@@ -130,28 +134,17 @@ def _compute_init_topo(self):
130134

131135
ds_init['landIceGroundedFraction'] = ds_topo['landIceGroundedFraction']
132136

133-
if thin_film:
134-
# start from landIcePressure and compute landIceDraft
135-
ds_init['landIcePressure'] = ds_topo['landIcePressure']
136-
137-
land_ice_draft = compute_land_ice_draft_from_pressure(
138-
land_ice_pressure=ds_topo.landIcePressure,
139-
modify_mask=ds_topo.landIcePressure > 0.)
140-
141-
land_ice_draft = np.maximum(ds_topo.bedrockTopography,
142-
land_ice_draft)
137+
# start from landIcePressure and compute landIceDraft
138+
ds_init['landIcePressure'] = ds_topo['landIcePressure']
143139

144-
ds_init['landIceDraft'] = land_ice_draft
140+
land_ice_draft = compute_land_ice_draft_from_pressure(
141+
land_ice_pressure=ds_topo.landIcePressure,
142+
modify_mask=ds_topo.landIcePressure > 0.)
145143

146-
else:
147-
# start form landIceDraft and compute landIcePressure
148-
ds_init['landIceDraft'] = ds_topo['landIceDraft']
149-
150-
land_ice_pressure = compute_land_ice_pressure_from_draft(
151-
land_ice_draft=ds_topo.landIceDraft,
152-
modify_mask=ds_topo.landIceDraft < 0.)
144+
land_ice_draft = np.maximum(ds_topo.bedrockTopography,
145+
land_ice_draft)
153146

154-
ds_init['landIcePressure'] = land_ice_pressure
147+
ds_init['landIceDraft'] = land_ice_draft
155148

156149
ds_init['ssh'] = ds_init.landIceDraft
157150

@@ -274,7 +267,13 @@ def _plot(self):
274267
Plot several fields from the initial condition
275268
"""
276269
section = self.config['isomip_plus_init']
277-
min_column_thickness = section.getfloat('min_column_thickness')
270+
thin_film = self.thin_film
271+
if thin_film:
272+
min_column_thickness = (
273+
section.getfloat('min_column_thickness_thin_film'))
274+
else:
275+
min_column_thickness = (
276+
section.getfloat('min_column_thickness_no_thin_film'))
278277
min_layer_thickness = section.getfloat('min_layer_thickness')
279278

280279
tol = 1e-10

polaris/ocean/tasks/isomip_plus/isomip_plus_init.cfg

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ minimum_levels = 3
5252
# The minimum allowable layer thickness
5353
min_layer_thickness = 0.0
5454

55-
# Minimum thickness of the initial ocean column (to prevent 'drying')
56-
min_column_thickness = 1e-3
55+
# Minimum thickness of the initial ocean column (to prevent 'drying') without
56+
# and with a thin film region
57+
min_column_thickness_no_thin_film = 10.0
58+
min_column_thickness_thin_film = 1e-3
5759

5860
# Minimum fraction of a cell that contains land ice in order for it to be
5961
# considered a land-ice cell by MPAS-Ocean (landIceMask == 1).

polaris/ocean/tasks/isomip_plus/isomip_plus_test.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,8 @@ def configure(self):
112112
config.add_from_package('polaris.ocean.tasks.isomip_plus',
113113
'isomip_plus_init.cfg')
114114
vertical_coordinate = self.vertical_coordinate
115-
thin_film = self.thin_film
116115
experiment = self.experiment
117116

118-
if thin_film:
119-
config.set('isomip_plus', 'min_column_thickness', '1e-3')
120-
121117
# for most coordinates, use the config options, which is 36 layers
122118
levels = None
123119
if vertical_coordinate == 'single-layer':

0 commit comments

Comments
 (0)