Contains methods for reading in surface data file and determining two-dimensional subgrid weights as well as writing out new surface dataset. When reading in the surface dataset, determines array which sets the PFT for each of the [maxpatch] patches and array which sets the relative abundance of the PFT. Also fills in the PFTs for vegetated portion of each grid cell. Fractional areas for these points pertain to "vegetated" area not to total grid area. Need to adjust them for fraction of grid that is vegetated. Also fills in urban, lake, wetland, and glacier patches.
USES:
use shr_kind_mod, only : r8 => shr_kind_r8
use abortutils , only : endrun
use clm_varpar , only : lsmlon, lsmlat, nlevsoi, numpft, &
maxpatch_pft, numcft, maxpatch, &
npatch_urban, npatch_lake, npatch_wet, npatch_glacier, &
maxpatch_urb, npatch_glacier_mec
use clm_varctl , only : create_glacier_mec_landunit, &
iulog, scmlat, scmlon, single_column
use clm_varsur , only : wtxy, vegxy, topoxy, pctspec
use decompMod , only : get_proc_bounds,gsMap_lnd_gdc2glo,ldecomp
use clmtype
use spmdMod
use ncdio_pio
PUBLIC TYPES:
implicit none savePUBLIC MEMBER FUNCTIONS:
public :: surfrd_get_latlon ! Read surface dataset into domain (before domain decomp) public :: surfrd_get_grid ! Read surface dataset into domain (after domain decomp) public :: surfrd_get_frac ! Read land fraction into domain public :: surfrd_get_topo ! Read topography into domain public :: surfrd ! Read surface dataset and determine subgrid weightsPUBLIC DATA MEMBERS:
logical, public :: crop_prog = .false. ! If prognostic crops is turned onREVISION HISTORY:
Created by Mariana Vertenstein Updated by T CraigPRIVATE MEMBER FUNCTIONS:
private :: surfrd_wtxy_special private :: surfrd_wtxy_veg_rank private :: surfrd_wtxy_veg_all private :: surfrd_wtxy_veg_dgvm private :: surfrd_mkrank