PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
|
◆ bootstrap_ice_temperature()
Create a temperature field within the ice from provided ice thickness, surface temperature, surface mass balance, and geothermal flux. In bootstrapping we need to determine initial values for the temperature within the ice (and the bedrock). There are various data available at bootstrapping, but not the 3D temperature field needed as initial values for the temperature. Here we take a "guess" based on an assumption of steady state and a simple model of the vertical velocity in the column. The rule is certainly heuristic but it seems to work well anyway. The result is not the temperature field which is in steady state with the ice dynamics. Spinup is most-definitely needed in many applications. Such spinup usually starts from the temperature field computed by this procedure and then runs for a long time (e.g. \(10^4\) to \(10^6\) years), possibly with fixed geometry, to get closer to thermomechanically-coupled equilibrium. Consider a horizontal grid point. Suppose the surface temperature \(T_s\), surface mass balance \(m\), and geothermal flux \(g\) are given at that location. Within the column denote the temperature by \(T(z)\) at height \(z\) above the base of the ice. Suppose the column of ice has height \(H\), the ice thickness. There are two alternative bootstrap methods determined by the configuration parameter
In either case the temperature within the ice is not allowed to exceed the pressure-melting temperature. We set \(T(z)=T_s\) above the top of the ice. This method determines \(T(0)\), the ice temperature at the ice base. This temperature is used by BedThermalUnit::bootstrap() to determine a bootstrap temperature profile in the bedrock. Definition at line 327 of file utilities.cc. References pism::ParallelSection::check(), pism::ParallelSection::failed(), pism::RuntimeError::formatted(), G, pism::array::Array3D::get_column(), pism::VariableMetadata::get_number(), pism::array::Array::grid(), ice_temperature_guess(), ice_temperature_guess_smb(), pism::hydrology::K(), pism::k, pism::array::Array::metadata(), pism::array::min(), PISM_ERROR_LOCATION, pism::diagnostics::SMB, and pism::array::Array::update_ghosts(). Referenced by bootstrap_ice_enthalpy(), pism::energy::TemperatureModel::bootstrap_impl(), and pism::energy::TemperatureModel::initialize_impl(). |