-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
revamp model + unit tests runs in AMIP driver clean step works ice runs from driver with dss name switch delete redundant directory add ocean params add to CI pipeline sea ice animation format unit test fixes test for differentiate_turbulent_fluxes! add artifacts to buildkite dss q_sfc, solving tropical instability shorten t_end for ci format fix test dep fix new hdf5 paths step works revamp model + unit tests runs in AMIP driver clean step works ice runs from driver with dss name switch delete redundant directory add ocean params add to CI pipeline sea ice animation format unit test fixes test for differentiate_turbulent_fluxes! add artifacts to buildkite dss q_sfc, solving tropical instability shorten t_end for ci format fix test dep fix revs revs + HPC pipeline fix rebase clean up clean up
- Loading branch information
1 parent
9cad2b8
commit bf7d5c2
Showing
32 changed files
with
991 additions
and
3,408 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
run_name: "slabplanet_eisenman" | ||
surface_setup: "PrescribedSurface" | ||
moist: "equil" | ||
vert_diff: true | ||
rad: "gray" | ||
energy_check: true | ||
mode_name: "slabplanet_eisenman" | ||
t_end: "10days" | ||
dt_save_to_sol: "9days" | ||
dt_cpl: 200 | ||
dt: "200secs" | ||
mono_surface: true | ||
h_elem: 6 | ||
precip_model: "0M" | ||
anim: true | ||
apply_limiter: false | ||
job_id: "slabplanet_eisenman" | ||
|
59 changes: 59 additions & 0 deletions
59
experiments/AMIP/modular/components/ocean/eisenman_seaice.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Eisenman-Zhang Model | ||
Thermodynamic 0-layer, based on the Semtner 1979 model and later refined by sea ice model as specified by | ||
Eisenman & Wettlaufer 2009 and Zhang et al 2021. | ||
|
||
There are three prognostic variables, the height of ice (`h_i`), the ocean mixed layer depth (`T_ml`) and the | ||
surface air temperature (`T_s`). | ||
|
||
## Formulation | ||
$$ | ||
L_i \frac{dh_i}{dt} = F_{atm} - F_{base} | ||
$$ | ||
with the latent heat of fusion, $L_i=3 \times 10^8$ J m$^{-3}$, and where the (upward-pointing) flux into the atmosphere is | ||
$$ | ||
F_{atm} = F_{rad} + F_{SH} + F_{LH} | ||
$$ | ||
where $F\_{rad}$ is the net radiative flux, $F_{SH}$ is the sensible heat flux and $F_{LH}$ is the latent heat flux | ||
|
||
The basal flux is | ||
$$ | ||
F_{base} = F_0(T_{ml} - T_{melt}) | ||
$$ | ||
where $T_{melt} = 273.16$ K is the freezing temperature, and the basal heat coefficient $F_0 = 120$ W m$^{-2}$ K$^{-1}$. | ||
|
||
The surface temperature is solved implicitly using a balance between $F_{atm}(T_s)$ and the conductive heat flux through the ice slab, $F_{ice}$: | ||
$$ | ||
F_{atm} = F_{ice} = k_i \frac{T_{melt} - T_s}{h_i} | ||
$$ | ||
where $k_i = 2$ W m$^{-2}$ k$^{-1}$ is the thermal conductivity of ice. | ||
Currently the implicit solve is implemented as one Newton iteration (sufficient for the current spatial and temporal resolution - see Semtner 1976): | ||
$$ | ||
T_s^{t+1} = T_s + \frac{F}{dF /d T_s} = T_s^{t} + \frac{- F_{atm}^t + F_{ice}^{t+1}}{k_i/h_i^{t+1} + d F_{atm}^t / d T_s^t} | ||
$$ | ||
where $h_i^{t+1}$ is the updated $h^i$ from the previous section, and $d F_{atm}^t / d T_s^t$ needs to be supplied from the atmosphere model (or crudely calculated in the coupler, given $T_s$, turbulent diffusivities and transfer coefficients, and atmos state). | ||
|
||
### Warm surface | ||
Where $T_s^{t+1} > T_{melt}$, we set $T_s^{t+1} = T_{melt}$. | ||
The oceal temperature $T_{ml}$ uses the standard slab model representation in ice-free conditions: | ||
$$ | ||
\rho_w c_w h_{ml}\frac{dT_{ml}}{dt} = - F_{atm} | ||
$$ | ||
In this case of no ice $T_s^{t+1} = T_{ml}^{t+1}$, while ice-covered conditions require that: | ||
$$ | ||
\rho_w c_w h_{ml}\frac{dT_{ml}}{dt} = - F_{base} | ||
$$ | ||
with $T_{ml}^{t+1} = T_{melt}$ in the absence of oceanic lateral flux (Q-flux). | ||
|
||
### Transitions between ice-covered and ice-free conditions | ||
- If the updated $T_{ml}^{t+1} < T_{melt}$, set $T_{ml}^{t+1} = T_{melt}$ and grow ice ($h_i^{t+1}$) due to the corresponding energy deficit. | ||
- If the updated $h_i^{t+1} <= 0$ from a non-zero $h_i^t$, adjust $h_i^{t+1} = 0$ and use the surplus energy to warm the mixed layer, | ||
where ice is present the $T_{ml}$ = $T_{melt}$ and $F_{base}$ = 0 during the transition | ||
|
||
## Potential extensions | ||
- area `ice_area_fraction` adjustment (e.g., assuming a minimal thickness) | ||
- add a skin temperature equation | ||
|
||
# References | ||
- [Semtner 1976](https://journals.ametsoc.org/view/journals/phoc/6/3/1520-0485_1976_006_0379_amfttg_2_0_co_2.xml) | ||
- [Eisenman & Wettlaufer 2009](https://www.pnas.org/doi/full/10.1073/pnas.0806887106) | ||
- [Zhang et al 2021](https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002671), which can be found on [GitHub](https://github.com/sally-xiyue/fms-idealized/blob/sea_ice_v1.0/exp/sea_ice/srcmods/mixed_layer.f90) |
Oops, something went wrong.