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_pioPUBLIC 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