!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL version 2.1 !SFX_LIC version 1. See LICENSE, Licence_CeCILL_V2.1-en.txt and Licence_CeCILL_V2.1-fr.txt !SFX_LIC for details. version 1. ! ######### 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