SURFEX v8.1
General documentation of Surfex
read_nam_pgd_teb_greenroof.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_nam_pgd_teb_greenroof(HPROGRAM, KTIME_GR,KLAYER_GR,HTYP_GR, &
7  PUNIF_OM_GR, PUNIF_CLAY_GR, PUNIF_SAND_GR, PUNIF_LAI_GR,&
8  HFNAM_OM_GR, HFNAM_CLAY_GR, HFNAM_SAND_GR, HFNAM_LAI_GR,&
9  HFTYP_OM_GR, HFTYP_CLAY_GR, HFTYP_SAND_GR, HFTYP_LAI_GR )
10 ! ##############################################################
11 !
12 !!**** *READ_NAM_PGD_TEB_GREENROOF* reading of greenroof namelist
13 !!
14 !! PURPOSE
15 !! -------
16 !!
17 !! METHOD
18 !! ------
19 !!
20 !
21 !! EXTERNAL
22 !! --------
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !! AUTHOR
31 !! ------
32 !! A. Lemonsu / C. de Munck : TEB GreenRoof namelist
33 !!
34 !!
35 !! MODIFICATION
36 !! ------------
37 !!
38 !! Original 07/2011
39 !!
40 !----------------------------------------------------------------------------
41 !
42 !* 0. DECLARATION
43 ! -----------
44 !
45 USE modd_surf_par, ONLY : xundef
47 !
48 USE modi_get_luout
49 USE modi_open_namelist
50 USE modi_close_namelist
51 !
52 USE modi_abor1_sfx
53 USE mode_pos_surf
54 !
55 !
56 USE yomhook ,ONLY : lhook, dr_hook
57 USE parkind1 ,ONLY : jprb
58 !
59 IMPLICIT NONE
60 !
61 !* 0.1 Declaration of arguments
62 ! ------------------------
63 !
64  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program
65 INTEGER, INTENT(OUT) :: KTIME_GR
66 INTEGER, INTENT(OUT) :: KLAYER_GR
67  CHARACTER(LEN=5), INTENT(OUT) :: HTYP_GR
68 REAL,DIMENSION(:), INTENT(OUT) :: PUNIF_OM_GR
69 REAL,DIMENSION(:), INTENT(OUT) :: PUNIF_CLAY_GR
70 REAL,DIMENSION(:), INTENT(OUT) :: PUNIF_SAND_GR
71 REAL,DIMENSION(:), INTENT(OUT) :: PUNIF_LAI_GR
72  CHARACTER(LEN=28),DIMENSION(:), INTENT(OUT) :: HFNAM_OM_GR
73  CHARACTER(LEN=28),DIMENSION(:), INTENT(OUT) :: HFNAM_CLAY_GR
74  CHARACTER(LEN=28),DIMENSION(:), INTENT(OUT) :: HFNAM_SAND_GR
75  CHARACTER(LEN=28),DIMENSION(:), INTENT(OUT) :: HFNAM_LAI_GR
76  CHARACTER(LEN=6),DIMENSION(:), INTENT(OUT) :: HFTYP_OM_GR
77  CHARACTER(LEN=6),DIMENSION(:), INTENT(OUT) :: HFTYP_CLAY_GR
78  CHARACTER(LEN=6),DIMENSION(:), INTENT(OUT) :: HFTYP_SAND_GR
79  CHARACTER(LEN=6),DIMENSION(:), INTENT(OUT) :: HFTYP_LAI_GR
80 
81 !* 0.2 Declaration of local variables
82 ! ------------------------------
83 !
84 INTEGER :: ILUOUT ! output listing logical unit
85 INTEGER :: ILUNAM ! namelist file logical unit
86 LOGICAL :: GFOUND ! true if namelist is found
87 !
88 !* 0.3 Declaration of namelists
89 ! ------------------------
90 !
91 INTEGER :: NLAYER_GR !
92 INTEGER :: NTIME_GR !
93  CHARACTER(LEN=5) :: CTYP_GR ! type of green roof
94 !
95 ! uniform value
96 !
97 REAL,DIMENSION(NLAYER_GR_MAX) :: XUNIF_OM_GR ! fraction of organic matter (OM) in green roof layer
98 REAL,DIMENSION(NLAYER_GR_MAX) :: XUNIF_CLAY_GR ! fraction of clay for the non-OM part of the green roof layer
99 REAL,DIMENSION(NLAYER_GR_MAX) :: XUNIF_SAND_GR ! fraction of sand for the non-OM part of the green roof layer
100 REAL,DIMENSION(NTIME_GR_MAX) :: XUNIF_LAI_GR ! LAI of green roof vegetation
101 !
102 ! name of files containing data
103 !
104  CHARACTER(LEN=28),DIMENSION(NLAYER_GR_MAX) :: CFNAM_OM_GR ! fraction of organic matter (OM) in green roof layer
105  CHARACTER(LEN=28),DIMENSION(NLAYER_GR_MAX) :: CFNAM_CLAY_GR ! fraction of clay for the non-OM part of the green roof layer
106  CHARACTER(LEN=28),DIMENSION(NLAYER_GR_MAX) :: CFNAM_SAND_GR ! fraction of sand for the non-OM part of the green roof layer
107  CHARACTER(LEN=28),DIMENSION(NTIME_GR_MAX) :: CFNAM_LAI_GR ! LAI of green roof
108 !
109 ! type of files containing data
110 !
111  CHARACTER(LEN=6 ),DIMENSION(NLAYER_GR_MAX) :: CFTYP_OM_GR ! fraction of organic matter (OM) in green roof layer
112  CHARACTER(LEN=6 ),DIMENSION(NLAYER_GR_MAX) :: CFTYP_CLAY_GR ! fraction of clay for the non-OM part of the green roof layer
113  CHARACTER(LEN=6 ),DIMENSION(NLAYER_GR_MAX) :: CFTYP_SAND_GR ! fraction of sand for the non-OM part of the green roof layer
114  CHARACTER(LEN=6 ),DIMENSION(NTIME_GR_MAX) :: CFTYP_LAI_GR ! LAI of green roof
115 !
116 REAL(KIND=JPRB) :: ZHOOK_HANDLE
117 !
118 NAMELIST/nam_data_teb_greenroof/ ntime_gr,nlayer_gr, &
119  ctyp_gr, &
120  xunif_om_gr, xunif_clay_gr, xunif_sand_gr, xunif_lai_gr, &
121  cfnam_om_gr, cfnam_clay_gr, cfnam_sand_gr, cfnam_lai_gr, &
122  cftyp_om_gr, cftyp_clay_gr, cftyp_sand_gr, cftyp_lai_gr
123 !
124 !-------------------------------------------------------------------------------
125 !
126 !* 1. Initializations
127 ! ---------------
128 !
129 IF (lhook) CALL dr_hook('PGD_TEB_GREENROOF_PAR',0,zhook_handle)
130 !
131 ntime_gr = 1
132 nlayer_gr = 6
133 CTYP_GR = 'GRASS' ! Grasses - graminoïds
134 !
135 xunif_om_gr = xundef
136 xunif_clay_gr = xundef
137 xunif_sand_gr = xundef
138 xunif_lai_gr = xundef
139 !
140 CFNAM_OM_GR = ' '
141 CFNAM_CLAY_GR = ' '
142 CFNAM_SAND_GR = ' '
143 CFNAM_LAI_GR = ' '
144 !
145 CFTYP_OM_GR = ' '
146 CFTYP_CLAY_GR = ' '
147 CFTYP_SAND_GR = ' '
148 CFTYP_LAI_GR = ' '
149 !
150 !-------------------------------------------------------------------------------
151 !
152 !* 2. Reading of green roof namelist
153 ! ------------------------------
154 !
155  CALL get_luout(hprogram,iluout)
156  CALL open_namelist(hprogram,ilunam)
157  CALL posnam(ilunam,'NAM_DATA_TEB_GREENROOF',gfound,iluout)
158 IF (gfound) READ(unit=ilunam,nml=nam_data_teb_greenroof)
159 !
160  CALL close_namelist(hprogram,ilunam)
161 !
162 !--------------------------------------------------
163 IF (ntime_gr/=1 .AND. ntime_gr/=12) THEN
164  CALL abor1_sfx('NTIME_GR must be either equal to 1 (uniform LAI) or 12 (monthly LAI)')
165 END IF
166 !--------------------------------------------------
167 !
168 ktime_gr = ntime_gr
169 klayer_gr = nlayer_gr
170 htyp_gr = ctyp_gr
171 punif_om_gr = xunif_om_gr
172 punif_clay_gr = xunif_clay_gr
173 punif_sand_gr = xunif_sand_gr
174 punif_lai_gr = xunif_lai_gr
175 hfnam_om_gr = cfnam_om_gr
176 hfnam_clay_gr = cfnam_clay_gr
177 hfnam_sand_gr = cfnam_sand_gr
178 hfnam_lai_gr = cfnam_lai_gr
179 hftyp_om_gr = cftyp_om_gr
180 hftyp_clay_gr = cftyp_clay_gr
181 hftyp_sand_gr = cftyp_sand_gr
182 hftyp_lai_gr = cftyp_lai_gr
183 !
184 IF (lhook) CALL dr_hook('READ_NAM_PGD_TEB_GREENROOF',1,zhook_handle)
185 !
186 !-------------------------------------------------------------------------------
187 !
188 END SUBROUTINE read_nam_pgd_teb_greenroof
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine read_nam_pgd_teb_greenroof(HPROGRAM, KTIME_GR, KLAYER_GR
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
integer, parameter nlayer_gr_max
logical lhook
Definition: yomhook.F90:15
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
integer, parameter ntime_gr_max