! source file: /Users/nmengis/Documents/UVic_ESCM/2.10/updates/02_CE_permafrost_merge_CMIP6forcing/source/mtlm/pft_sparm.F subroutine PFT_SPARM (LAND_PTS, LAND_INDEX, N, ALBSOIL, HT, LAI &, ROOTDEP_T, INFILFAC, Z0_SOIL &, SNOW_HEIGHT &, ALBSNC_T, ALBSNF_T, CATCH_T, Z0_T) !----------------------------------------------------------------------- ! Routine to calculate the land surface parameters of a given PFT from ! its areal fraction and structural properties. !********************************************************************** ! this file is based on code that may have had the following copyright: ! (c) CROWN COPYRIGHT 1997, U.K. METEOROLOGICAL OFFICE. ! Permission has been granted by the authors to the public to copy ! and use this software without charge, provided that this Notice and ! any statement of authorship are reproduced on all copies. Neither the ! Crown nor the U.K. Meteorological Office makes any warranty, express ! or implied, or assumes any liability or responsibility for the use of ! this software. !********************************************************************** !----------------------------------------------------------------------- implicit none include "size.h" ! LAND_PTS = IN Number of vegetated points. ! LAND_INDEX = IN Index of vegetated points. ! N = IN Plant functional type. integer LAND_PTS, LAND_INDEX(POINTS), N, J, L ! ALBSOIL = IN Soil albedo. ! HT = IN Vegetation height (m). ! LAI = IN Leaf area index. ! ALBSNC_T = OUT Snow-covered albedo. ! ALBSNF_T = OUT Snow-free albedo. ! CATCH_T = OUT Canopy capacity (kg/m2). ! Z0_T = OUT Roughness length (m). ! FLIT = WORK Weighting factor for albedo. real ALBSOIL(POINTS), HT(POINTS), LAI(POINTS), ALBSNC_T(POINTS) real ALBSNF_T(POINTS), CATCH_T(POINTS), Z0_T(POINTS), FLIT ! LYING_SNOW = IN Lying snow (kg/m3) ! Z0_SOIL = IN Roughness length of bare soil / snow (m) ! INFILFAC = OUT Infiltration enhancement factor ! ROOTDEP_T = OUT Vegetation rooting depth (m) ! SNOW_HEIGHT = WORK Height of lying snow(m) real ROOTDEP_T(POINTS), INFILFAC(POINTS) real LYING_SNOW(POINTS), SNOW_HEIGHT(POINTS), Z0_SOIL !----------------------------------------------------------------------- ! Surface parameters for each Plant Functional Type !----------------------------------------------------------------------- ! ALBSNC_MAX = Snow-covered albedo for large LAI. ! ALBSNC_MIN = Snow-covered albedo for zero LAI. ! ALBSNF_MAX = Snow-free albedo for large LAI. ! DZ0V_DH = Rate of change of vegetation roughness length with ! height. ! CATCH0 = Minimum canopy capacity (kg/m2). ! DCATCH_DLAI = Rate of change of canopy capacity with LAI. ! INFIL_F = Infiltration enhancement factor. ! KEXT = Light extinction coefficient. ! ROOTD_FT = Rootdepth (m). real ALBSNC_MAX(NPFT), ALBSNC_MIN(NPFT), ALBSNF_MAX(NPFT) real DZ0V_DH(NPFT), CATCH0(NPFT), DCATCH_DLAI(NPFT) real INFIL_F(NPFT), KEXT(NPFT), ROOTD_FT(NPFT) !---------------------------------------------------------------------- ! BT NT C3G C4G S !---------------------------------------------------------------------- DATA ALBSNC_MAX / 0.35, 0.35, 0.60, 0.60, 0.40 / DATA ALBSNC_MIN / 0.65, 0.65, 0.80, 0.80, 0.80 / DATA ALBSNF_MAX / 0.16, 0.16, 0.20, 0.20, 0.20 / DATA DZ0V_DH / 0.05, 0.05, 0.10, 0.10, 0.10 / DATA CATCH0 / 0.50, 0.50, 0.50, 0.50, 0.50 / DATA DCATCH_DLAI / 0.05, 0.05, 0.05, 0.05, 0.05 / DATA INFIL_F / 4.00, 4.00, 2.00, 2.00, 2.00 / DATA KEXT / 0.50, 0.50, 0.50, 0.50, 0.50 / DATA ROOTD_FT / 3.00, 1.00, 0.50, 0.50, 0.50 / do J=1,LAND_PTS L = LAND_INDEX(J) FLIT = 1.0 - EXP(-KEXT(N) * LAI(L)) ALBSNC_T(L) = ALBSNC_MIN(N) * (1 - FLIT) & + ALBSNC_MAX(N) * FLIT ALBSNF_T(L) = ALBSOIL(L) * (1 - FLIT) + ALBSNF_MAX(N) * FLIT Z0_T(L) = max(DZ0V_DH(N) * (HT(L) - SNOW_HEIGHT(L)), Z0_SOIL) ROOTDEP_T(L) = ROOTD_FT(N) INFILFAC(L) = INFIL_F(N) CATCH_T(L) = CATCH0(N) + DCATCH_DLAI(N) * LAI(L) enddo return end