SUBROUTINE GARDEN (DTCO, G, T, TOP, TIR, DTV, GB, DK, DEK, DMK, GDO, S, K, P, PEK, &
HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, &
PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, &
PTSTEP, PZREF, PALB_GD, PTA, PQA, PEXNS, PRHOA, PCO2, PPS, PRR, &
PSR, PZENITH, PSW, PLW, PVMOD, PALBNIR_TVEG, &
PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, &
PRN, PH, PLE, PGFLUX, PSFCO2, PEVAP, PUW, PRUNOFF, &
PAC, PQSAT, PTSRAD, PAC_AGG, PHU_AGG, PIRRIG )
! ##########################################################################
!
!!**** *GARDEN*
!!
!! PURPOSE
!! -------
!
!!call the vegetation scheme (ISBA) inside TEB
!
!!** METHOD
! ------
!
!
!! EXTERNAL
!! --------
!!
!!
!! IMPLICIT ARGUMENTS
!! ------------------
!!
!!
!! REFERENCE
!! ---------
!!
!!
!! AUTHOR
!! ------
!!
!! A. Lemonsu * Meteo-France *
!!
!! MODIFICATIONS
!! -------------
!! Original 05/2009
! B. decharme 04/2013 : variables for surf/atm coupling
! dummy for water table / surface coupling
!! P. Samuelsson 10/2014 Introduced dummy variables in call to ISBA for MEB
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t
USE MODD_DATA_ISBA_n, ONLY : DATA_ISBA_t
USE MODD_SFX_GRID_n, ONLY : GRID_t
USE MODD_SSO_n, ONLY : SSO_t, SSO_INIT
USE MODD_TEB_n, ONLY : TEB_t
USE MODD_TEB_OPTION_n, ONLY : TEB_OPTIONS_t
!
USE MODD_DATA_ISBA_n, ONLY : DATA_ISBA_t
USE MODD_GR_BIOG_n, ONLY : GR_BIOG_t
!
USE MODD_DIAG_n, ONLY : DIAG_t
USE MODD_DIAG_EVAP_ISBA_n, ONLY : DIAG_EVAP_ISBA_t
USE MODD_DIAG_MISC_ISBA_n, ONLY : DIAG_MISC_ISBA_t
!
USE MODD_TEB_IRRIG_n, ONLY : TEB_IRRIG_t
!
USE MODD_ISBA_OPTIONS_n, ONLY : ISBA_OPTIONS_t
USE MODD_ISBA_n, ONLY : ISBA_S_t, ISBA_K_t, ISBA_P_t, ISBA_PE_t
!
USE MODD_AGRI_n, ONLY : AGRI_t,AGRI_INIT
!
USE MODD_TYPE_DATE_SURF, ONLY: DATE_TIME
USE MODD_SURF_PAR, ONLY: XUNDEF
USE MODD_CSTS, ONLY: XCPD, XLVTT, XKARMAN
!
!
USE MODI_ISBA
USE MODI_VEGETATION_UPDATE
USE MODE_THERMOS
!
USE MODI_FLAG_TEB_VEG_n
USE MODI_CARBON_EVOL
USE MODI_VEGETATION_EVOL
USE MODI_TEB_IRRIG
USE PROXI_SVAT_CONSTS, ONLY: GARDEN_BR
!
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
IMPLICIT NONE
!
!* 0.1 Declarations of arguments
!
!
!
TYPE(DATA_COVER_t), INTENT(INOUT) :: DTCO
TYPE(GRID_t), INTENT(INOUT) :: G
TYPE(TEB_t), INTENT(INOUT) :: T
TYPE(TEB_OPTIONS_t), INTENT(INOUT) :: TOP
!
TYPE(DATA_ISBA_t), INTENT(INOUT) :: DTV
TYPE(GR_BIOG_t), INTENT(INOUT) :: GB
!
TYPE(DIAG_t), INTENT(INOUT) :: DK
TYPE(DIAG_EVAP_ISBA_t), INTENT(INOUT) :: DEK
TYPE(DIAG_MISC_ISBA_t), INTENT(INOUT) :: DMK
!
TYPE(ISBA_OPTIONS_t), INTENT(INOUT) :: GDO
TYPE(ISBA_S_t), INTENT(INOUT) :: S
TYPE(ISBA_K_t), INTENT(INOUT) :: K
TYPE(ISBA_P_t), INTENT(INOUT) :: P
TYPE(ISBA_PE_t), INTENT(INOUT) :: PEK
!
TYPE(TEB_IRRIG_t), INTENT(INOUT) :: TIR
!
CHARACTER(LEN=*), INTENT(IN) :: HIMPLICIT_WIND ! wind implicitation option
! ! 'OLD' = direct
! ! 'NEW' = Taylor serie, order 1
TYPE(DATE_TIME) , INTENT(IN) :: TPTIME ! current date and time from teb
REAL, DIMENSION(:) , INTENT(IN) :: PTSUN ! solar time (s from midnight)
REAL, DIMENSION(:) , INTENT(IN) :: PPEW_A_COEF ! implicit coefficients
REAL, DIMENSION(:) , INTENT(IN) :: PPEW_B_COEF ! for wind coupling
REAL, DIMENSION(:) , INTENT(IN) :: PPEQ_A_COEF ! implicit coefficients
REAL, DIMENSION(:) , INTENT(IN) :: PPEQ_B_COEF ! for humidity
REAL, DIMENSION(:) , INTENT(IN) :: PPET_A_COEF ! implicit coefficients
REAL, DIMENSION(:) , INTENT(IN) :: PPET_B_COEF ! for temperature
REAL , INTENT(IN) :: PTSTEP ! time step
REAL, DIMENSION(:) , INTENT(IN) :: PZREF ! height of atm. var. near the road
REAL, DIMENSION(:) , INTENT(IN) :: PALB_GD ! green areas albedo
REAL, DIMENSION(:) , INTENT(IN) :: PTA ! temp. near the road
REAL, DIMENSION(:) , INTENT(IN) :: PQA ! hum. near the road
REAL, DIMENSION(:) , INTENT(IN) :: PPS ! pressure at the surface
REAL, DIMENSION(:) , INTENT(IN) :: PEXNS ! surface exner function
REAL, DIMENSION(:) , INTENT(IN) :: PRHOA ! air density at the lowest level
REAL, DIMENSION(:) , INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3)
REAL, DIMENSION(:) , INTENT(IN) :: PRR ! rain rate
REAL, DIMENSION(:) , INTENT(IN) :: PSR ! snow rate
REAL, DIMENSION(:) , INTENT(IN) :: PZENITH ! solar zenithal angle
REAL, DIMENSION(:) , INTENT(IN) :: PSW ! incoming total solar rad on an horizontal surface
REAL, DIMENSION(:) , INTENT(IN) :: PLW ! atmospheric infrared radiation
REAL, DIMENSION(:) , INTENT(IN) :: PVMOD ! wind near the road
REAL, DIMENSION(:) , INTENT(IN) :: PALBNIR_TVEG ! nearIR veg tot albedo
REAL, DIMENSION(:) , INTENT(IN) :: PALBVIS_TVEG ! visible veg tot albedo
REAL, DIMENSION(:) , INTENT(IN) :: PALBNIR_TSOIL ! nearIR soil tot albedo
REAL, DIMENSION(:) , INTENT(IN) :: PALBVIS_TSOIL ! visible soil tot albedo
!
REAL, DIMENSION(:) , INTENT(OUT) :: PRN ! net radiation over green areas
REAL, DIMENSION(:) , INTENT(OUT) :: PH ! sensible heat flux over green areas
REAL, DIMENSION(:) , INTENT(OUT) :: PLE ! latent heat flux over green areas
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX ! flux through the green areas
REAL, DIMENSION(:) , INTENT(OUT) :: PSFCO2 ! flux of CO2 positive toward the atmosphere (m/s*kg_CO2/kg_air)
REAL, DIMENSION(:) , INTENT(OUT) :: PEVAP ! total evaporation over gardens (kg/m2/s)
REAL, DIMENSION(:) , INTENT(OUT) :: PUW ! friction flux (m2/s2)
REAL, DIMENSION(:) , INTENT(OUT) :: PRUNOFF ! runoff over garden (kg/m2/s)
REAL, DIMENSION(:) , INTENT(OUT) :: PAC ! aerodynamical conductance
REAL, DIMENSION(:) , INTENT(OUT) :: PQSAT ! saturation humidity
REAL, DIMENSION(:) , INTENT(OUT) :: PTSRAD ! garden radiative surface temp. (snow free)
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_AGG ! aggreg. aeodynamic resistance for green areas for latent heat flux
REAL, DIMENSION(:) , INTENT(OUT) :: PHU_AGG ! aggreg. relative humidity for green areas for latent heat flux
REAL, DIMENSION(:) , INTENT(OUT) :: PIRRIG ! garden summer irrigation rate
!
!
!* 0.2 Declarations of local variables
!
!
!-------------------------------------------------------------------------------
!
!* 1. Proxi model based on a fixed Bowen ratio
! ----------------------------------------
!
PRN(:) = (1.-PALB_GD) * PSW(:)
!
PH (:) = GARDEN_BR * PRN(:)
PLE(:) = (1 - GARDEN_BR) * PRN(:)
!
!* Conduction heat flux is neglected
PGFLUX(:) = 0.
!
!* CO2 flux is neglected
PSFCO2(:) = 0.
!
!* evaporation
PEVAP(:) = PLE(:) / XLVTT
!
!* Friction flux: assumes neutral formulation with roughness length of 0.1m
PUW(:) = - (XKARMAN/LOG(PZREF(:)/0.1))**2 * PVMOD(:)**2
!
!* Aerodynamical conductance: neglected because used further only for
! implicitation of canyon air temperature when the heat flux depends on the
! surface temperature
!
PAC(:) = 0.
!
!* surface saturation humidity
PQSAT(:) = QSAT(PTA(:),PPS(:))
!
!* Surface temperature : set equal to air temperature
PTSRAD(:) = PTA(:)
!
!* aerocynamical conductance for latent heat and surface humidity
PAC_AGG(:) = 0. ! neglected (latent flux does not depend on surface humidity)
PHU_AGG(:) = 0.8 ! surface humidity set to 80%
!
!* garden hydrological diagnostics
PRUNOFF(:) = 0. ! garden surface runoff
PIRRIG (:) = 0. ! garden irrigation during time step
!-------------------------------------------------------------------------------
!
!
END SUBROUTINE GARDEN