Module containing processes relating to vegetation.
time_manager_mod
mpp_domains_mod
land_types_mod
soil_mod
constants_mod
fms_mod
fms_io_mod
sat_vapor_pres_mod
field_manager_mod
tracer_manager_mod
subroutine vegetation_init & ( veg, gblon, gblat, garea, gfrac, time, dt_fast, dt_slow, domain, & frac, mask, id_lon, id_lat ) type(vegetation_type),intent(inout) :: veg ! state of a particular ! realization to initialize real, intent(in) :: gblon(:) ! longitude bounds of the ! grid cells real, intent(in) :: gblat(:) ! latitude bounds of the ! grid cells real, intent(in) :: garea(:,:) ! grid cell area real, intent(in) :: gfrac(:,:) ! fraction of grid cell ! covered by land type(time_type), intent(in) :: time ! current time type(time_type), intent(in) :: dt_fast ! fast time step type(time_type), intent(in) :: dt_slow ! slow time step type(domain2d), intent(in) :: domain ! our domain real, intent(in) :: frac(:,:,:)! fractional area of tiles logical, intent(in) :: mask(:,:,:)! land mask integer, intent(in) :: id_lon ! ID of X (longitude) diag ! axis integer, intent(in) :: id_lat ! ID of Y (latitude) diag ! axis
call vegetation_init & ( veg, gblon, gblat, garea, gfrac, time, dt_fast, dt_slow, domain, & frac, mask, id_lon, id_lat )
subroutine vegetation_end ( veg ) type(vegetation_type), intent(inout) :: veg ! data to finish using
call vegetation_end ( veg )
subroutine update_vegetation_slow ( veg ) type(vegetation_type), intent(inout) :: veg ! data to update
call update_vegetation_slow ( veg )
subroutine update_vegetation_fast_down( veg, soil, evap, dedq, drag_q, psurf, evap1, dedt) type(vegetation_type), intent(inout) :: veg ! data to update type(soil_type), intent(in) :: soil ! soil data inputs real, intent(in) :: & evap (veg%is:veg%ie,veg%js:veg%je,veg%n_tiles),&! evaporation from the ! surface into the atm drag_q (:,:,:),& ! drag coefficient dedq (:,:,:),& ! derivative of evap ! over q_ca psurf (veg%is:veg%ie,veg%js:veg%je,veg%n_tiles) ! surface pressure real, intent(out) :: & dedt (:,:,:), & ! derivative of evap ! over T evap1 (veg%is:veg%ie,veg%js:veg%je,veg%n_tiles) ! evaporation from ! stomatal into sfc
call update_vegetation_fast_down ( veg, soil, evap, dedq, drag_q, psurf, evap1, dedt)
subroutine update_vegetation_fast_up( veg, soil, drag_q, evap, dedq ) type(vegetation_type), intent(inout) :: veg ! data to update type(soil_type), intent(in) :: soil ! soil data inputs real, intent(in) :: & drag_q (:,:,:), & ! drag coefficient for atmosphere (above vegetation) evap (:,:,:), & ! evaporation from surface into the atmosphere dedq (:,:,:) ! derivative of evap over q_ca
call update_vegetation_fast_up ( veg, soil, drag_q, evap, dedq )
subroutine update_vegetation_bnd_fast ( veg, bnd ) type(vegetation_type), intent(in) :: veg ! vegetation data type(land_data_type), intent(inout) :: bnd ! boundary data
call update_vegetation_bnd_fast ( veg, bnd )
subroutine update_vegetation_bnd_slow ( veg, bnd ) type(vegetation_type), intent(in) :: veg ! vegetation data type(land_data_type), intent(inout) :: bnd ! boundary data
call update_vegetation_bnd_slow ( veg, bnd )