SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_teb_garden_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_GARDEN - declaration of packed surface parameters for ISBA scheme
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 01/2011
29 !! V. Masson 06/2013 splits module in 4
30 !!
31 !-------------------------------------------------------------------------------
32 !
33 !* 0. DECLARATIONS
34 ! ------------
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 
42 !-------------------------------------------------------------------------------
44 !!-------------------------------------------------------------------------------
45 !
46 ! - Vegetation: Ags Prognostic (YPHOTO = ('LAI', 'LST', or 'NIT') or prescribed (YPHOTO='NON', 'AGS' or 'LST')
47 !
48  REAL, POINTER, DIMENSION(:) :: XLAI ! Leaf Area Index (m2/m2)
49  REAL, POINTER, DIMENSION(:) :: XVEG ! vegetation cover fraction (-)
50  REAL, POINTER, DIMENSION(:) :: XALBNIR ! near-infra-red albedo (-)
51  REAL, POINTER, DIMENSION(:) :: XALBVIS ! visible albedo (-)
52  REAL, POINTER, DIMENSION(:) :: XALBUV ! UV albedo (-)
53  REAL, POINTER, DIMENSION(:) :: XEMIS ! surface emissivity (-)
54  REAL, POINTER, DIMENSION(:) :: XZ0 ! surface roughness length (m)
55 !
56 !-------------------------------------------------------------------------------
58 !
60  !
61  TYPE(teb_garden_pgd_evol_1p_t), POINTER :: ALP(:) => NULL()
62  TYPE(teb_garden_pgd_evol_1p_t), POINTER :: CUR => NULL()
63  !
64 END TYPE teb_garden_pgd_evol_t
65 !
66 
67 
68  CONTAINS
69 !
70 !
71 SUBROUTINE teb_garden_pgd_evol_goto_patch(YTEB_GARDEN_PGD_EVOL,KTO_PATCH)
72 TYPE(teb_garden_pgd_evol_t), INTENT(INOUT) :: yteb_garden_pgd_evol
73 INTEGER, INTENT(IN) :: kto_patch
74 REAL(KIND=JPRB) :: zhook_handle
75 !
76 ! Current patch is set to patch KTO_PATCH
77 IF (lhook) CALL dr_hook('MODD_TEB_GARDEN_PGD_EVOL_N:TEB_GARDEN_PGD_EVOL_GOTO_PATCH',0,zhook_handle)
78 
79 yteb_garden_pgd_evol%CUR => yteb_garden_pgd_evol%ALP(kto_patch)
80 
81 IF (lhook) CALL dr_hook('MODD_TEB_GARDEN_PGD_EVOL_N:TEB_GARDEN_PGD_EVOL_GOTO_PATCH',1,zhook_handle)
82 !
83 END SUBROUTINE teb_garden_pgd_evol_goto_patch
84 !
85 SUBROUTINE teb_garden_pgd_evol_init(YTEB_GARDEN_PGD_EVOL,KPATCH)
86 TYPE(teb_garden_pgd_evol_t), INTENT(INOUT) :: yteb_garden_pgd_evol
87 INTEGER, INTENT(IN) :: kpatch
88 INTEGER :: jp
89 REAL(KIND=JPRB) :: zhook_handle
90 IF (lhook) CALL dr_hook("MODD_TEB_GARDEN_PGD_EVOL_N:TEB_GARDEN_PGD_EVOL_INIT",0,zhook_handle)
91  ALLOCATE(yteb_garden_pgd_evol%ALP(kpatch))
92  yteb_garden_pgd_evol%CUR => yteb_garden_pgd_evol%ALP(1)
93 DO jp=1,kpatch
94  nullify(yteb_garden_pgd_evol%ALP(jp)%XALBNIR)
95  nullify(yteb_garden_pgd_evol%ALP(jp)%XALBVIS)
96  nullify(yteb_garden_pgd_evol%ALP(jp)%XALBUV)
97  nullify(yteb_garden_pgd_evol%ALP(jp)%XEMIS)
98  nullify(yteb_garden_pgd_evol%ALP(jp)%XZ0)
99  nullify(yteb_garden_pgd_evol%ALP(jp)%XVEG)
100  nullify(yteb_garden_pgd_evol%ALP(jp)%XLAI)
101 ENDDO
102 IF (lhook) CALL dr_hook("MODD_TEB_GARDEN_PGD_EVOL_N:TEB_GARDEN_PGD_EVOL_INIT",1,zhook_handle)
103 END SUBROUTINE teb_garden_pgd_evol_init
104 
105 
106 
107 
subroutine teb_garden_pgd_evol_goto_patch(YTEB_GARDEN_PGD_EVOL, KTO_PATCH)
subroutine teb_garden_pgd_evol_init(YTEB_GARDEN_PGD_EVOL, KPATCH)