SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_teb_gardenn.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 !
37 !
38 !
39 USE yomhook ,ONLY : lhook, dr_hook
40 USE parkind1 ,ONLY : jprb
41 !
42 IMPLICIT NONE
43 
44 !-------------------------------------------------------------------------------
46 !-------------------------------------------------------------------------------
47 !
48 ! Prognostic variables:
49 !
50 ! - Snow Cover:
51 !
52  TYPE(surf_snow) :: TSNOW ! snow state:
53 ! ! scheme type/option (-)
54 ! ! number of layers (-)
55 ! ! snow (& liq. water) content (kg/m2)
56 ! ! heat content (J/m2)
57 ! ! temperature (K)
58 ! ! density (kg m-3)
59 !
60 !-------------------------------------------------------------------------------
61 !
62 ! - Soil and vegetation heat and water:
63 !
64  REAL, POINTER, DIMENSION(:) :: XWR ! liquid water retained on the
65 ! ! foliage of the vegetation
66 ! ! canopy (kg/m2)
67  REAL, POINTER, DIMENSION(:,:) :: XTG ! surface and sub-surface soil
68 ! ! temperature profile (K)
69  REAL, POINTER, DIMENSION(:,:) :: XWG ! soil volumetric water content profile (m3/m3)
70  REAL, POINTER, DIMENSION(:,:) :: XWGI ! soil liquid water equivalent volumetric
71 ! ! ice content profile (m3/m3)
72  REAL, POINTER, DIMENSION(:) :: XRESA ! aerodynamic resistance (s/m)
73 !
74 !-------------------------------------------------------------------------------
75 !
76 ! - Vegetation: Ags Prognostic (YPHOTO = 'AGS', 'LAI', 'AST', 'LST', 'NIT', 'NCB')
77 !
78  REAL, POINTER, DIMENSION(:) :: XAN ! net CO2 assimilation (mg/m2/s)
79  REAL, POINTER, DIMENSION(:) :: XANDAY ! daily net CO2 assimilation (mg/m2)
80  REAL, POINTER, DIMENSION(:) :: XANFM ! maximum leaf assimilation (mg/m2/s)
81  REAL, POINTER, DIMENSION(:) :: XLE ! evapotranspiration (W/m2)
82  REAL, POINTER, DIMENSION(:) :: XFAPARC ! Fapar of vegetation (cumul)
83  REAL, POINTER, DIMENSION(:) :: XFAPIRC ! Fapir of vegetation (cumul)
84  REAL, POINTER, DIMENSION(:) :: XLAI_EFFC ! Effective LAI (cumul)
85  REAL, POINTER, DIMENSION(:) :: XMUS ! cos zenithal angle (cumul)
86 !
87 !-------------------------------------------------------------------------------
88 !
89 ! - Vegetation: Ags Prognostic (YPHOTO = 'NIT', 'NCB')
90 !
91  REAL, POINTER, DIMENSION(:,:) :: XRESP_BIOMASS ! daily cumulated respiration of
92 ! ! biomass (kg/m2/s)
93  REAL, POINTER, DIMENSION(:,:) :: XBIOMASS ! biomass of previous day (kg/m2)
94 !
95 !
96 !-------------------------------------------------------------------------------
97 !
98 ! - Snow and flood fractions and total albedo at time t:
99 !
100  REAL, POINTER, DIMENSION(:) :: XPSNG ! Snow fraction over ground
101  REAL, POINTER, DIMENSION(:) :: XPSNV ! Snow fraction over vegetation
102  REAL, POINTER, DIMENSION(:) :: XPSNV_A ! Snow fraction over vegetation
103  REAL, POINTER, DIMENSION(:) :: XPSN ! Total Snow fraction
104 !
105  REAL, POINTER, DIMENSION(:) :: XSNOWFREE_ALB ! snow free albedo (-)
106  REAL, POINTER, DIMENSION(:) :: XSNOWFREE_ALB_VEG ! snow free albedo for vegetation (-)
107  REAL, POINTER, DIMENSION(:) :: XSNOWFREE_ALB_SOIL! snow free albedo for soil
108 !-------------------------------------------------------------------------------
109 !
110 END TYPE teb_garden_1p_t
111 !
113  !
114  TYPE(teb_garden_1p_t), POINTER :: ALP(:) => NULL()
115  TYPE(teb_garden_1p_t), POINTER :: CUR => NULL()
116  !
117 END TYPE teb_garden_t
118 !
119 
120 
121  CONTAINS
122 
123 
124 !
125 
126 
127 !
128 
129 SUBROUTINE teb_garden_goto_patch(YTEB_GARDEN,KTO_PATCH)
130 TYPE(teb_garden_t), INTENT(INOUT) :: yteb_garden
131 INTEGER, INTENT(IN) :: kto_patch
132 REAL(KIND=JPRB) :: zhook_handle
133 !
134 ! Current patch is set to patch KTO_PATCH
135 IF (lhook) CALL dr_hook('MODD_TEB_GARDEN_N:TEB_GARDEN_GOTO_PATCH',0,zhook_handle)
136 
137 yteb_garden%CUR => yteb_garden%ALP(kto_patch)
138 
139 IF (lhook) CALL dr_hook('MODD_TEB_GARDEN_N:TEB_GARDEN_GOTO_PATCH',1,zhook_handle)
140 !
141 END SUBROUTINE teb_garden_goto_patch
142 
143 SUBROUTINE teb_garden_init(YTEB_GARDEN,KPATCH)
144 TYPE(teb_garden_t), INTENT(INOUT) :: yteb_garden
145 INTEGER, INTENT(IN) :: kpatch
146 INTEGER :: jp
147 REAL(KIND=JPRB) :: zhook_handle
148 IF (lhook) CALL dr_hook("MODD_TEB_GARDEN_N:TEB_GARDEN_INIT",0,zhook_handle)
149  ALLOCATE(yteb_garden%ALP(kpatch))
150  yteb_garden%CUR => yteb_garden%ALP(1)
151 DO jp=1,kpatch
152  nullify(yteb_garden%ALP(jp)%XWR)
153  nullify(yteb_garden%ALP(jp)%XTG)
154  nullify(yteb_garden%ALP(jp)%XWG)
155  nullify(yteb_garden%ALP(jp)%XWGI)
156  nullify(yteb_garden%ALP(jp)%XRESA)
157  nullify(yteb_garden%ALP(jp)%XAN)
158  nullify(yteb_garden%ALP(jp)%XANDAY)
159  nullify(yteb_garden%ALP(jp)%XANFM)
160  nullify(yteb_garden%ALP(jp)%XLE)
161  nullify(yteb_garden%ALP(jp)%XFAPARC)
162  nullify(yteb_garden%ALP(jp)%XFAPIRC)
163  nullify(yteb_garden%ALP(jp)%XLAI_EFFC)
164  nullify(yteb_garden%ALP(jp)%XMUS)
165  nullify(yteb_garden%ALP(jp)%XRESP_BIOMASS)
166  nullify(yteb_garden%ALP(jp)%XBIOMASS)
167  nullify(yteb_garden%ALP(jp)%XPSNG)
168  nullify(yteb_garden%ALP(jp)%XPSNV)
169  nullify(yteb_garden%ALP(jp)%XPSNV_A)
170  nullify(yteb_garden%ALP(jp)%XPSN)
171  nullify(yteb_garden%ALP(jp)%XSNOWFREE_ALB)
172  nullify(yteb_garden%ALP(jp)%XSNOWFREE_ALB_VEG)
173  nullify(yteb_garden%ALP(jp)%XSNOWFREE_ALB_SOIL)
174 ENDDO
175 IF (lhook) CALL dr_hook("MODD_TEB_GARDEN_N:TEB_GARDEN_INIT",1,zhook_handle)
176 END SUBROUTINE teb_garden_init
177 
178 
179 
180 END MODULE modd_teb_garden_n
subroutine teb_garden_init(YTEB_GARDEN, KPATCH)
subroutine teb_garden_goto_patch(YTEB_GARDEN, KTO_PATCH)