Module of filters used for processing columns and pfts of particular types, including lake, non-lake, urban, soil, snow, non-snow, and naturally-vegetated patches.
USES:
use shr_kind_mod, only: r8 => shr_kind_r8 use abortutils, only : endrun use clm_varctl, only : iulogPUBLIC TYPES:
implicit none
save
private
type clumpfilter
#if (defined CNDV)
integer, pointer :: natvegp(:) ! CNDV nat-vegetated (present) filter (pfts)
integer :: num_natvegp ! number of pfts in nat-vegetated filter
#endif
integer, pointer :: pcropp(:) ! prognostic crop filter (pfts)
integer :: num_pcropp ! number of pfts in prognostic crop filter
integer, pointer :: soilnopcropp(:) ! soil w/o prog. crops (pfts)
integer :: num_soilnopcropp ! number of pfts in soil w/o prog crops
integer, pointer :: lakep(:) ! lake filter (pfts)
integer :: num_lakep ! number of pfts in lake filter
integer, pointer :: nolakep(:) ! non-lake filter (pfts)
integer :: num_nolakep ! number of pfts in non-lake filter
integer, pointer :: lakec(:) ! lake filter (columns)
integer :: num_lakec ! number of columns in lake filter
integer, pointer :: nolakec(:) ! non-lake filter (columns)
integer :: num_nolakec ! number of columns in non-lake filter
integer, pointer :: soilc(:) ! soil filter (columns)
integer :: num_soilc ! number of columns in soil filter
integer, pointer :: soilp(:) ! soil filter (pfts)
integer :: num_soilp ! number of pfts in soil filter
integer, pointer :: snowc(:) ! snow filter (columns)
integer :: num_snowc ! number of columns in snow filter
integer, pointer :: nosnowc(:) ! non-snow filter (columns)
integer :: num_nosnowc ! number of columns in non-snow filter
integer, pointer :: hydrologyc(:) ! hydrology filter (columns)
integer :: num_hydrologyc ! number of columns in hydrology filter
integer, pointer :: urbanl(:) ! urban filter (landunits)
integer :: num_urbanl ! number of landunits in urban filter
integer, pointer :: nourbanl(:) ! non-urban filter (landunits)
integer :: num_nourbanl ! number of landunits in non-urban filter
integer, pointer :: urbanc(:) ! urban filter (columns)
integer :: num_urbanc ! number of columns in urban filter
integer, pointer :: nourbanc(:) ! non-urban filter (columns)
integer :: num_nourbanc ! number of columns in non-urban filter
integer, pointer :: urbanp(:) ! urban filter (pfts)
integer :: num_urbanp ! number of pfts in urban filter
integer, pointer :: nourbanp(:) ! non-urban filter (pfts)
integer :: num_nourbanp ! number of pfts in non-urban filter
integer, pointer :: nolakeurbanp(:) ! non-lake, non-urban filter (pfts)
integer :: num_nolakeurbanp ! number of pfts in non-lake, non-urban filter
end type clumpfilter
public clumpfilter
type(clumpfilter), allocatable, public :: filter(:)
public allocFilters ! allocate memory for filters
public setFilters ! set filters
REVISION HISTORY:
Created by Mariana Vertenstein 11/13/03, Peter Thornton: Added soilp and num_soilp Jan/08, S. Levis: Added crop-related filters