next up previous contents
Next: SnowCompaction Up: Fortran: Module Interface SNICARMod Previous: SnowAge_grain   Contents

SnowWater


INTERFACE:

   subroutine SnowWater(lbc, ubc, num_snowc, filter_snowc, &
                        num_nosnowc, filter_nosnowc)
DESCRIPTION:

Evaluate the change of snow mass and the snow water onto soil. Water flow within snow is computed by an explicit and non-physical based scheme, which permits a part of liquid water over the holding capacity (a tentative value is used, i.e. equal to 0.033*porosity) to percolate into the underlying layer. Except for cases where the porosity of one of the two neighboring layers is less than 0.05, zero flow is assumed. The water flow out of the bottom of the snow pack will participate as the input of the soil water and runoff. This subroutine uses a filter for columns containing snow which must be constructed prior to being called.


USES:

     use clmtype
     use clm_varcon  , only : denh2o, denice, wimp, ssi
     use clm_time_manager, only : get_step_size
     use clm_atmlnd        , only : clm_a2l
     use SNICARMod         , only : scvng_fct_mlt_bcphi, scvng_fct_mlt_bcpho, &
                                    scvng_fct_mlt_ocphi, scvng_fct_mlt_ocpho, &
                                    scvng_fct_mlt_dst1,  scvng_fct_mlt_dst2,  &
                                    scvng_fct_mlt_dst3,  scvng_fct_mlt_dst4
ARGUMENTS:
     implicit none
     integer, intent(in) :: lbc, ubc                    ! column bounds
     integer, intent(in) :: num_snowc                   ! number of snow points in column filter
     integer, intent(in) :: filter_snowc(ubc-lbc+1)     ! column filter for snow points
     integer, intent(in) :: num_nosnowc                 ! number of non-snow points in column filter
     integer, intent(in) :: filter_nosnowc(ubc-lbc+1)   ! column filter for non-snow points
CALLED FROM:
REVISION HISTORY:
   15 September 1999: Yongjiu Dai; Initial code
   15 December 1999:  Paul Houser and Jon Radakovich; F90 Revision
   15 November 2000: Mariana Vertenstein
   2/26/02, Peter Thornton: Migrated to new data structures.
   03/28/08, Mark Flanner: Added aerosol deposition and flushing with meltwater
LOCAL VARIABLES:
   local pointers to implicit in arguments
     integer , pointer :: snl(:)              !number of snow layers
     logical , pointer :: do_capsnow(:)       !true => do snow capping
     real(r8), pointer :: qflx_snomelt(:)     !snow melt (mm H2O /s)
     real(r8), pointer :: qflx_rain_grnd(:)   !rain on ground after interception (mm H2O/s) [+]
     real(r8), pointer :: qflx_sub_snow(:)    !sublimation rate from snow pack (mm H2O /s) [+]
     real(r8), pointer :: qflx_evap_grnd(:)   !ground surface evaporation rate (mm H2O/s) [+]
     real(r8), pointer :: qflx_dew_snow(:)    !surface dew added to snow pack (mm H2O /s) [+]
     real(r8), pointer :: qflx_dew_grnd(:)    !ground surface dew formation (mm H2O /s) [+]
     real(r8), pointer :: dz(:,:)             !layer depth (m)
   local pointers to implicit out arguments
     real(r8), pointer :: qflx_top_soil(:)     !net water input into soil from top (mm/s)
   local pointers to implicit inout arguments
     real(r8), pointer :: h2osoi_ice(:,:)     !ice lens (kg/m2)
     real(r8), pointer :: h2osoi_liq(:,:)     !liquid water (kg/m2)
     integer , pointer :: cgridcell(:)        ! columns's gridcell (col) 
     real(r8), pointer :: mss_bcphi(:,:)      ! hydrophillic BC mass in snow (col,lyr) [kg]
     real(r8), pointer :: mss_bcpho(:,:)      ! hydrophobic BC mass in snow (col,lyr) [kg]
     real(r8), pointer :: mss_ocphi(:,:)      ! hydrophillic OC mass in snow (col,lyr) [kg]
     real(r8), pointer :: mss_ocpho(:,:)      ! hydrophobic OC mass in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst1(:,:)       ! mass of dust species 1 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst2(:,:)       ! mass of dust species 2 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst3(:,:)       ! mass of dust species 3 in snow (col,lyr) [kg]
     real(r8), pointer :: mss_dst4(:,:)       ! mass of dust species 4 in snow (col,lyr) [kg]
     real(r8), pointer :: flx_bc_dep_dry(:)   ! dry BC deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_bc_dep_wet(:)   ! wet BC deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_bc_dep(:)       ! total BC deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_bc_dep_pho(:)   ! hydrophobic BC deposition (col) [kg m-1 s-1]
     real(r8), pointer :: flx_bc_dep_phi(:)   ! hydrophillic BC deposition (col) [kg m-1 s-1]
     real(r8), pointer :: flx_oc_dep_dry(:)   ! dry OC deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_oc_dep_wet(:)   ! wet OC deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_oc_dep(:)       ! total OC deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_oc_dep_pho(:)   ! hydrophobic OC deposition (col) [kg m-1 s-1]
     real(r8), pointer :: flx_oc_dep_phi(:)   ! hydrophillic OC deposition (col) [kg m-1 s-1]
     real(r8), pointer :: flx_dst_dep_dry1(:) ! dry dust (species 1) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_wet1(:) ! wet dust (species 1) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_dry2(:) ! dry dust (species 2) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_wet2(:) ! wet dust (species 2) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_dry3(:) ! dry dust (species 3) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_wet3(:) ! wet dust (species 3) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_dry4(:) ! dry dust (species 4) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep_wet4(:) ! wet dust (species 4) deposition (col) [kg m-2 s-1]
     real(r8), pointer :: flx_dst_dep(:)      ! total dust deposition (col) [kg m-2 s-1]
     real(r8), pointer :: forc_aer(:,:)       ! aerosol deposition from atmosphere model (grd,aer) [kg m-1 s-1]
   !OTHER LOCAL VARIABLES:



Erik Kluzek 2011-06-15