module surfdat_h ! arrays are allocated in conf_phys real,save,allocatable :: albedodat(:) ! albedo of bare ground real,save,allocatable :: phisfi(:) ! geopotential at ground level real,save :: albedice(2) ! default albedo for ice (1: North H. 2: South H.) real,save :: emisice(2) ! ice emissivity; 1:Northern hemisphere 2:Southern hemisphere real,save :: emissiv ! emissivity of bare ground logical,save :: TESicealbedo ! use TES ice cap albedoes (if set to .true.) logical,save,allocatable :: watercaptag(:) ! flag for water ice surface real, save, allocatable :: dryness(:) logical,save :: temptag !temp tag for water caps real,save :: albedo_h2o_ice ! water ice albedo real,save :: inert_h2o_ice ! water ice thermal inertia real,save :: frost_albedo_threshold ! water frost thickness on the ground (kg.m^-2, ie mm) real,save :: TESice_Ncoef ! coefficient for TES ice albedo in Northern hemisphere real,save :: TESice_Scoef ! coefficient for TES ice albedo in Southern hemisphere real,save :: iceradius(2) , dtemisice(2) real,save,allocatable :: zmea(:),zstd(:),zsig(:),zgam(:),zthe(:) real,save,allocatable :: z0(:) ! surface roughness length (m) real,save :: z0_default ! default (constant over planet) surface roughness (m) !! variables REAL,SAVE,ALLOCATABLE :: tsurf(:) ! Surface temperature (K) REAL,SAVE,ALLOCATABLE :: co2ice(:) ! co2 ice surface layer (kg.m-2) REAL,SAVE,ALLOCATABLE :: emis(:) ! Thermal IR surface emissivity REAL,SAVE,ALLOCATABLE :: capcal(:) ! surface heat capacity (J m-2 K-1) REAL,SAVE,ALLOCATABLE :: fluxgrd(:) ! surface conduction flux (W.m-2) REAL,ALLOCATABLE,SAVE :: qsurf(:,:) ! tracer on surface (e.g. kg.m-2) contains subroutine ini_surfdat_h(ngrid,nq) implicit none integer,intent(in) :: ngrid ! number of atmospheric columns integer,intent(in) :: nq ! number of tracers allocate(albedodat(ngrid)) allocate(phisfi(ngrid)) allocate(watercaptag(ngrid)) allocate(dryness(ngrid)) allocate(zmea(ngrid)) allocate(zstd(ngrid)) allocate(zsig(ngrid)) allocate(zgam(ngrid)) allocate(zthe(ngrid)) allocate(z0(ngrid)) allocate(qsurf(ngrid,nq)) allocate(tsurf(ngrid)) allocate(co2ice(ngrid)) allocate(emis(ngrid)) allocate(capcal(ngrid)) allocate(fluxgrd(ngrid)) end subroutine ini_surfdat_h end module surfdat_h