SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_teb_greenroofn.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 ! #########
6  SUBROUTINE read_teb_greenroof_n (DTCO, U, TVG, GRM, &
7  hprogram,hpatch)
8 ! ##################################
9 !
10 !!**** *READ_TEB_GREENROOF_n* - routine to initialise ISBA variables
11 !!
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !! based on read_teb_greenroofn
29 !!
30 !! AUTHOR
31 !! ------
32 !! C. de Munck & A. Lemonsu *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 07/2011
37 !-------------------------------------------------------------------------------
38 !
39 !* 0. DECLARATIONS
40 ! ------------
41 !
42 !
43 !
44 !
45 !
47 USE modd_surf_atm_n, ONLY : surf_atm_t
50 !
51 USE modd_co2v_par, ONLY : xanfminit, xcondctmin
52 !
53 USE modd_surf_par, ONLY : xundef
54 USE modd_snow_par, ONLY : xz0sn
55 !
57 !
58 USE modi_read_gr_snow
59 !
60 !
61 !
62 !
63 USE yomhook ,ONLY : lhook, dr_hook
64 USE parkind1 ,ONLY : jprb
65 !
66 USE modi_get_type_dim_n
67 !
68 IMPLICIT NONE
69 !
70 !* 0.1 Declarations of arguments
71 ! -------------------------
72 !
73 !
74 TYPE(data_cover_t), INTENT(INOUT) :: dtco
75 TYPE(surf_atm_t), INTENT(INOUT) :: u
76 TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
77 TYPE(teb_greenroof_model_t), INTENT(INOUT) :: grm
78 
79 !
80  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! calling program
81  CHARACTER(LEN=3), INTENT(IN) :: hpatch ! current TEB patch identificator
82 !
83 !* 0.2 Declarations of local variables
84 ! -------------------------------
85 INTEGER :: ilu ! 1D physical dimension
86 INTEGER :: iresp ! Error code after redding
87 INTEGER :: iwork ! Work integer
88 INTEGER :: jlayer, jnbiomass ! loop counter on layers
89  CHARACTER(LEN=30) :: yrecfm ! Name of the article to be read
90  CHARACTER(LEN=4) :: ylvl
91 REAL, DIMENSION(:),ALLOCATABLE :: zwork ! 2D array to write data in file
92 !
93 REAL(KIND=JPRB) :: zhook_handle
94 !
95 !-------------------------------------------------------------------------------
96 !
97 !
98 !* 1D physical dimension
99 !
100 IF (lhook) CALL dr_hook('READ_TEB_GREENROOF_N',0,zhook_handle)
101 yrecfm='SIZE_TOWN'
102  CALL get_type_dim_n(dtco, u, &
103  'TOWN ',ilu)
104 !
105 !
106 !* 2. Prognostic fields:
107 ! -----------------
108 !
109 ALLOCATE(zwork(ilu))
110 !
111 !* soil temperatures
112 !
113 iwork = grm%TGRO%NLAYER_GR
114 !
115 DO jlayer=1,iwork
116  WRITE(ylvl,'(I2)') jlayer
117  yrecfm=hpatch//'GR_TG'//adjustl(ylvl(:len_trim(ylvl)))
118  yrecfm=adjustl(yrecfm)
119  CALL read_surf(&
120  hprogram,yrecfm,zwork(:),iresp)
121  grm%TGR%CUR%XTG(:,jlayer) = zwork
122 END DO
123 !
124 !
125 !* soil liquid water content
126 !
127 DO jlayer=1,grm%TGRO%NLAYER_GR
128  WRITE(ylvl,'(I2)') jlayer
129  yrecfm=hpatch//'GR_WG'//adjustl(ylvl(:len_trim(ylvl)))
130  yrecfm=adjustl(yrecfm)
131  CALL read_surf(&
132  hprogram,yrecfm,zwork(:),iresp)
133  grm%TGR%CUR%XWG(:,jlayer) = zwork
134 END DO
135 !
136 !* soil ice water content
137 !
138 DO jlayer=1,grm%TGRO%NLAYER_GR
139  WRITE(ylvl,'(I2)') jlayer
140  yrecfm=hpatch//'GR_WGI'//adjustl(ylvl(:len_trim(ylvl)))
141  yrecfm=adjustl(yrecfm)
142  CALL read_surf(&
143  hprogram,yrecfm,zwork(:),iresp)
144  grm%TGR%CUR%XWGI(:,jlayer) = zwork
145 END DO
146 !
147 !* water intercepted on leaves
148 !
149 yrecfm=hpatch//'GR_WR'
150 yrecfm=adjustl(yrecfm)
151  CALL read_surf(&
152  hprogram,yrecfm,grm%TGR%CUR%XWR(:),iresp)
153 !
154 !* Leaf Area Index
155 !
156 IF (tvg%CPHOTO=='LAI' .OR. tvg%CPHOTO=='LST' .OR. tvg%CPHOTO=='NIT' .OR. tvg%CPHOTO=='NCB') THEN
157  yrecfm = hpatch//'GR_LAI'
158  yrecfm=adjustl(yrecfm)
159  CALL read_surf(&
160  hprogram,yrecfm,grm%TGRPE%CUR%XLAI(:),iresp)
161 END IF
162 !
163 !* snow mantel
164 !
165  CALL read_gr_snow(&
166  hprogram,'GR',hpatch,ilu,1,grm%TGR%CUR%TSNOW )! GROO:GreenROOf
167 !
168 !-------------------------------------------------------------------------------
169 !
170 !* 4. Semi-prognostic variables
171 ! -------------------------
172 !
173 !* aerodynamical resistance
174 !
175 yrecfm = hpatch//'GR_RESA'
176 yrecfm=adjustl(yrecfm)
177 grm%TGR%CUR%XRESA(:) = 100.
178  CALL read_surf(&
179  hprogram,yrecfm,grm%TGR%CUR%XRESA(:),iresp)
180 !
181 grm%TGR%CUR%XLE(:) = xundef
182 !
183 !* ISBA-AGS variables
184 !
185 IF (tvg%CPHOTO/='NON') THEN
186  grm%TGR%CUR%XAN(:) = 0.
187  grm%TGR%CUR%XANDAY(:) = 0.
188  grm%TGR%CUR%XANFM(:) = xanfminit
189  grm%TGR%CUR%XLE(:) = 0.
190 END IF
191 !
192 IF (tvg%CPHOTO=='AGS' .OR. tvg%CPHOTO=='AST') THEN
193  grm%TGR%CUR%XBIOMASS(:,:) = 0.
194  grm%TGR%CUR%XRESP_BIOMASS(:,:) = 0.
195 ELSEIF (tvg%CPHOTO=='LAI' .OR. tvg%CPHOTO=='LST') THEN
196  grm%TGR%CUR%XBIOMASS(:,1) = grm%TGRP%XBSLAI(:) * grm%TGRPE%CUR%XLAI(:)
197  grm%TGR%CUR%XRESP_BIOMASS(:,:) = 0.
198 ELSEIF (tvg%CPHOTO=='NIT') THEN
199  grm%TGR%CUR%XBIOMASS(:,:) = 0.
200  DO jnbiomass=1,tvg%NNBIOMASS
201  WRITE(ylvl,'(I1)') jnbiomass
202  yrecfm=hpatch//'GR_BIOMA'//adjustl(ylvl(:len_trim(ylvl)))
203  yrecfm=adjustl(yrecfm)
204  CALL read_surf(&
205  hprogram,yrecfm,grm%TGR%CUR%XBIOMASS(:,jnbiomass),iresp)
206  END DO
207 
208  grm%TGR%CUR%XRESP_BIOMASS(:,:) = 0.
209  DO jnbiomass=2,tvg%NNBIOMASS
210  WRITE(ylvl,'(I1)') jnbiomass
211  yrecfm=hpatch//'GR_RESPI'//adjustl(ylvl(:len_trim(ylvl)))
212  yrecfm=adjustl(yrecfm)
213  CALL read_surf(&
214  hprogram,yrecfm,grm%TGR%CUR%XRESP_BIOMASS(:,jnbiomass),iresp)
215  END DO
216 ENDIF
217 !
218 !
219 DEALLOCATE(zwork)
220 IF (lhook) CALL dr_hook('READ_TEB_GREENROOF_N',1,zhook_handle)
221 !
222 !-------------------------------------------------------------------------------
223 !
224 END SUBROUTINE read_teb_greenroof_n
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine read_gr_snow(HPROGRAM, HSURFTYPE, HPREFIX, KLU, KPATCH, TPSNOW, HDIR, KVERSION, KBUGFIX)
Definition: read_gr_snow.F90:6
subroutine read_teb_greenroof_n(DTCO, U, TVG, GRM, HPROGRAM, HPATCH)