SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_teb_greenroof_pgd_evoln.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 !##################
7 !##################
8 !
9 !!**** *MODD_TEB_GREENROOF - declaration of ISBA scheme packed surface parameters for urban green roofs
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 !!
15 !!** IMPLICIT ARGUMENTS
16 !! ------------------
17 !! None
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !! AUTHOR
23 !! ------
24 !! A. Lemonsu *Meteo France*
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 09/2009
29 !! C. de Munck 06/2011
30 !! V. Masson 06/2013 splits module in 4
31 !!
32 !-------------------------------------------------------------------------------
33 !
34 !* 0. DECLARATIONS
35 ! ------------
36 !
37 !
38 USE yomhook ,ONLY : lhook, dr_hook
39 USE parkind1 ,ONLY : jprb
40 !
41 IMPLICIT NONE
42 
44 ! - Vegetation: Ags Prognostic (YPHOTO = ('LAI', 'LST', or 'NIT') or prescribed (YPHOTO='NON', 'AGS' or 'LST')
45 !
46  REAL, POINTER, DIMENSION(:) :: XLAI ! Leaf Area Index (m2/m2)
47  REAL, POINTER, DIMENSION(:) :: XVEG ! vegetation cover fraction (-)
48  REAL, POINTER, DIMENSION(:) :: XALBNIR ! near-infra-red albedo (-)
49  REAL, POINTER, DIMENSION(:) :: XALBVIS ! visible albedo (-)
50  REAL, POINTER, DIMENSION(:) :: XALBUV ! UV albedo (-)
51  REAL, POINTER, DIMENSION(:) :: XEMIS ! surface emissivity (-)
52  REAL, POINTER, DIMENSION(:) :: XZ0 ! surface roughness length (m)
53 !
55 
57  !
58  TYPE(teb_greenroof_pgd_evol_1p_t), POINTER :: ALP(:) => NULL()
59  TYPE(teb_greenroof_pgd_evol_1p_t), POINTER :: CUR => NULL()
60  !
62 
63 
64 
65  CONTAINS
66 
67 !
68 
69 
70 !
71 
72 SUBROUTINE teb_greenroof_pgd_evol_goto_patch(YTEB_GREENROOF_PGD_EVOL,KTO_PATCH)
73 TYPE(teb_greenroof_pgd_evol_t), INTENT(INOUT) :: yteb_greenroof_pgd_evol
74 INTEGER, INTENT(IN) :: kto_patch
75 REAL(KIND=JPRB) :: zhook_handle
76 !
77 ! Current patch is set to patch KTO_PATCH
78 IF (lhook) CALL dr_hook('MODD_TEB_GREENROOF_PGD_EVOL_N:TEB_GREENROOF_PGD_EVOL_GOTO_PATCH',0,zhook_handle)
79 
80 yteb_greenroof_pgd_evol%CUR => yteb_greenroof_pgd_evol%ALP(kto_patch)
81 
82 IF (lhook) CALL dr_hook('MODD_TEB_GREENROOF_PGD_EVOL_N:TEB_GREENROOF_PGD_EVOL_GOTO_PATCH',1,zhook_handle)
83 !
85 
86 SUBROUTINE teb_greenroof_pgd_evol_init(YTEB_GREENROOF_PGD_EVOL,KPATCH)
87 TYPE(teb_greenroof_pgd_evol_t), INTENT(INOUT) :: yteb_greenroof_pgd_evol
88 INTEGER, INTENT(IN) :: kpatch
89 INTEGER :: jp
90 REAL(KIND=JPRB) :: zhook_handle
91 IF (lhook) CALL dr_hook("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_INIT",0,zhook_handle)
92  ALLOCATE(yteb_greenroof_pgd_evol%ALP(kpatch))
93 yteb_greenroof_pgd_evol%CUR => yteb_greenroof_pgd_evol%ALP(1)
94 DO jp=1,kpatch
95 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XALBNIR)
96 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XALBVIS)
97 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XALBUV)
98 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XEMIS)
99 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XZ0)
100 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XVEG)
101 nullify(yteb_greenroof_pgd_evol%ALP(jp)%XLAI)
102 ENDDO
103 IF (lhook) CALL dr_hook("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_INIT",1,zhook_handle)
104 END SUBROUTINE teb_greenroof_pgd_evol_init
105 
106 
subroutine teb_greenroof_pgd_evol_init(YTEB_GREENROOF_PGD_EVOL, KPATCH)
subroutine teb_greenroof_pgd_evol_goto_patch(YTEB_GREENROOF_PGD_EVOL, KTO_PATCH)