SAMSIM
Functions/Subroutines
mo_heat_fluxes Module Reference

Computes all heat fluxes. More...

Functions/Subroutines

subroutine sub_heat_fluxes ()
 Computes surface temperature and heatfluxes. More...
 

Detailed Description

Computes all heat fluxes.

Everything related to heat fluxes happens in sub_heat_fluxes, which is why it is a very crucial part of SAMSIM.

Author
Philipp Griewank

COPYRIGHT

This file is part of SAMSIM.

SAMSIM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

SAMSIM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with SAMSIM. If not, see http://www.gnu.org/licenses/.

Function/Subroutine Documentation

subroutine mo_heat_fluxes::sub_heat_fluxes ( )

Computes surface temperature and heatfluxes.

Major subroutine, calculates all atmospheric energy fluxes and applies both atmospheric and oceanic fluxes. Is one of the only subroutines to directly use mo_data because so many variables are needed.

There are three different ways to calculate atmospheric heat fluxes implemented which are defined using boundflux_flag.

  • Boundflux_flag: 1 imitates top cooling plate by setting a fixed surface temperature, heat flux is derived from the T gradient from the surface to the top layer
  • Boundflux_flag: 2 balances incoming and outgoing radiation to determine the surface temperature, heat flux is then calculated as in boundflux_flag 1. Some of the ice penetrates into the ice as is absorbed according to Beer's law. Optical properties are defined by the parameters emissivity_ice, emissivity_snow, extinct, and penetr.
  • Boundflux_flag: 3 assumes the atmospheric heat flux is proportional to the difference between the top layer temperature and the air temperature.

For 1 and 2 the surface temperature in turn determines the atmospheric heat flux into the snow or ice. Atmoflux_flag is important for boundflux_flag 2, as it determines which atmospheric fluxes are used.

  • Atmoflux_flag: 1 Mean climatology fluxes of Notz are used (see sub_notz)
  • Atmoflux_flag: 2 Imported values are used, see sub_input for more info on reading in data.
  • Atmoflux_flag: 3 Prescribed values are used (e.g. testcase 5).

Melting occurs when the surface T is above the melting temperature of the top layer

  • Boundflux_flag: 1 atmospheric flux is limited by the parameter max_flux_plate which represents the maximum heating capacity of the plate
  • Boundflux_flag: 2 the atmospheric heat flux is given by the difference between incoming and outgoing radiation
  • Boundflux_flag: 3 works the same during melt and freezing, but a different proportionality parameter is used (alpha_flux_stable) because the air above the ice is assumed to be stably stratified.

Boundflux_flag 1 and 3 are not made to work with snow. If you need snow you'll have to implement snow cover yourself. For a detailed look at what is happening see the source code.

The snow layer is treated differently based on the snow thickness.

  • If the snow layer is thinner than thick_min/100 it is simply ignored.
  • If the snow layer is thinner than thick_min but thicker than thick_min/100 the snow and top ice layer are assumed to have the same temperature and are coupled using snow_coupling.
  • If the snow layer is thicker than thick_min it is treated totally separately.
Revision History
First version by Philipp Griewank (2014-04-02)
Second version by Niels Fuchs (2017-02-02)