SNOWPACK  SNOWPACK-3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WaterTransport Class Reference

Detailed Description

This module contains water transport routines for the 1d snowpack model.

Version
10.02

#include <WaterTransport.h>

Public Member Functions

 WaterTransport (const SnowpackConfig &cfg)
 
void compTransportMass (const CurrentMeteo &Mdata, const double &ql, SnowStation &Xdata, SurfaceFluxes &Sdata)
 The mass transport procedure is called from sn_Snowpack – AFTER calling the NEWSNOW (sn_SnowFall) or SNOWDRIFT (sn_SnowDrift) modules but BEFORE calling the TEMPERATURE (sn_SnowTemperature), PHASECHANGE (pc_PhaseChange) or CREEP (sn_SnowCreep) routines.
The mass transport routines were inserted at this location since they can set the NEWMESH variable which means the FEM data structures must be reallocated before solving the instationary heat equations(?)
These routines are responsible for MOVING MASS (water) in, out and through the snowpack. They are subsequently responsible for WATER TRANSPORT and SURFACE SUBLIMATION. Since surface sublimation does not change the FE data structure it is treated FIRST.
The phase change routines will increment the volumetric water content of the elements, then the WATER TRANSPORT routines will move the excess water from element "e" to element "e-1".
NOTES:

  1. The water will only be moved if it is above the residual water content
  2. The water will only be moved if there is enough VOID SPACE in the element receiving the water
  3. Water in the last element will be DISCHARGED from the snowpack. This amount of water is termed the MELTWATER RUNOFF
  4. It would be very possible to make the RESIDUAL_WATER_CONTENT a function of the MICRO-properties of the snow. This is simply a few lines of code.
    This was done on 3 Dec 2006 -> ElementData::snowResidualWaterContent().
  5. IMPORTANT: the top surface element can be removed if the VOLUMETRIC ICE content is 0; that is, when the element contains only water and voids.
    The routines were changed dramatically by Perry on June 3rd 1998 after Perry and Michael worked the entirity of June 2nd together. We were running the model operationally in Davos and discovered that the code was bombing during heavy melt periods. Michael identified the problem that the elements were being REMOVED after the water was TRANSPORTED. Meaning that water contents greater than the 0.03 were being picked up and if the melting was strong enough, then negative volumetric AIR contents were predicted. The solution to the problem is simple enough: FIRST remove the elements, then caculate the WATER TRANSPORT.
More...
 

Constructor & Destructor Documentation

WaterTransport::WaterTransport ( const SnowpackConfig cfg)

No surface hoar will form for rH above threshold (1)

  • Original calibration with the 98/99 data set: 0.9
  • r141: HOAR_THRESH_RH set to 0.9
  • r719: HOAR_THRESH_RH set to 0.97

No surface hoar will form at wind speeds above threshold (m s-1)

  • Original calibration with the 98/99 data set: 3.5
  • r141: HOAR_THRESH_VW set to 3.0
  • r242: HOAR_THRESH_VW set to 3.5

No surface hoar will form at air temperatures above threshold (m s-1)

  • Originaly, using THRESH_RAIN
  • r787: HOAR_THRESH_TA set to 1.2

Member Function Documentation

void WaterTransport::compTransportMass ( const CurrentMeteo Mdata,
const double &  ql,
SnowStation Xdata,
SurfaceFluxes Sdata 
)

The mass transport procedure is called from sn_Snowpack – AFTER calling the NEWSNOW (sn_SnowFall) or SNOWDRIFT (sn_SnowDrift) modules but BEFORE calling the TEMPERATURE (sn_SnowTemperature), PHASECHANGE (pc_PhaseChange) or CREEP (sn_SnowCreep) routines.
The mass transport routines were inserted at this location since they can set the NEWMESH variable which means the FEM data structures must be reallocated before solving the instationary heat equations(?)
These routines are responsible for MOVING MASS (water) in, out and through the snowpack. They are subsequently responsible for WATER TRANSPORT and SURFACE SUBLIMATION. Since surface sublimation does not change the FE data structure it is treated FIRST.
The phase change routines will increment the volumetric water content of the elements, then the WATER TRANSPORT routines will move the excess water from element "e" to element "e-1".
NOTES:

  1. The water will only be moved if it is above the residual water content
  2. The water will only be moved if there is enough VOID SPACE in the element receiving the water
  3. Water in the last element will be DISCHARGED from the snowpack. This amount of water is termed the MELTWATER RUNOFF
  4. It would be very possible to make the RESIDUAL_WATER_CONTENT a function of the MICRO-properties of the snow. This is simply a few lines of code.
    This was done on 3 Dec 2006 -> ElementData::snowResidualWaterContent().
  5. IMPORTANT: the top surface element can be removed if the VOLUMETRIC ICE content is 0; that is, when the element contains only water and voids.
    The routines were changed dramatically by Perry on June 3rd 1998 after Perry and Michael worked the entirity of June 2nd together. We were running the model operationally in Davos and discovered that the code was bombing during heavy melt periods. Michael identified the problem that the elements were being REMOVED after the water was TRANSPORTED. Meaning that water contents greater than the 0.03 were being picked up and if the melting was strong enough, then negative volumetric AIR contents were predicted. The solution to the problem is simple enough: FIRST remove the elements, then caculate the WATER TRANSPORT.

Parameters
Xdata
qlLatent heat flux (W m-2)
Sdata
Mdata

The documentation for this class was generated from the following files: