52 USE modd_data_cover_par
, ONLY : nvegtype
58 USE modi_open_namelist
59 USE modi_close_namelist
78 TYPE(
sso_t),
INTENT(INOUT) :: USS
79 INTEGER,
INTENT(IN) :: KDIM
83 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
92 LOGICAL :: GNO_PAR_GARDEN
99 INTEGER,
PARAMETER :: NGROUND_MAX = 20
100 INTEGER,
PARAMETER :: NVEGTYPE_MAX = 19
101 INTEGER,
PARAMETER :: NTIME_MAX = 12
105 CHARACTER(LEN=4) :: CTYP_GARDEN_HVEG
106 CHARACTER(LEN=4) :: CTYP_GARDEN_LVEG
107 CHARACTER(LEN=4) :: CTYP_GARDEN_NVEG
111 REAL :: XUNIF_FRAC_HVEG
112 REAL :: XUNIF_FRAC_LVEG
113 REAL :: XUNIF_FRAC_NVEG
114 REAL,
DIMENSION(NTIME_MAX) :: XUNIF_LAI_HVEG
115 REAL,
DIMENSION(NTIME_MAX) :: XUNIF_LAI_LVEG
120 CHARACTER(LEN=28) :: CFNAM_FRAC_HVEG
121 CHARACTER(LEN=28) :: CFNAM_FRAC_LVEG
122 CHARACTER(LEN=28) :: CFNAM_FRAC_NVEG
123 CHARACTER(LEN=28),
DIMENSION(NTIME_MAX) :: CFNAM_LAI_HVEG
124 CHARACTER(LEN=28),
DIMENSION(NTIME_MAX) :: CFNAM_LAI_LVEG
125 CHARACTER(LEN=28) :: CFNAM_H_HVEG
129 CHARACTER(LEN=28) :: CFTYP_FRAC_HVEG
130 CHARACTER(LEN=28) :: CFTYP_FRAC_LVEG
131 CHARACTER(LEN=28) :: CFTYP_FRAC_NVEG
132 CHARACTER(LEN=28),
DIMENSION(NTIME_MAX) :: CFTYP_LAI_HVEG
133 CHARACTER(LEN=28),
DIMENSION(NTIME_MAX) :: CFTYP_LAI_LVEG
134 CHARACTER(LEN=28) :: CFTYP_H_HVEG
136 REAL(KIND=JPRB) :: ZHOOK_HANDLE
138 NAMELIST/nam_data_teb_garden/ ntime_gd,
156 IF (
lhook)
CALL dr_hook(
'PGD_TEB_GARDEN_PAR',0,zhook_handle)
195 CALL posnam(ilunam,
'NAM_DATA_TEB_GARDEN',gfound,iluout)
196 IF (gfound)
READ(unit=ilunam,nml=nam_data_teb_garden)
200 IF (ntime_gd==1)
THEN 201 xunif_lai_hveg(2:) = xunif_lai_hveg(1)
202 xunif_lai_lveg(2:) = xunif_lai_lveg(1)
203 ELSE IF (ntime_gd/=12)
THEN 204 CALL abor1_sfx(
'Namelist NAM_DATA_TEB_GARDEN: NTIME_GD must be equal to 1 or 12' 211 io%LPAR = (xunif_frac_hveg /=
xundef .OR. len_trim(cfnam_frac_hveg) >0
219 IF ( .NOT. io%LPAR .AND. .NOT. gno_par_garden )
THEN 220 WRITE(iluout,*)
' Error for fraction of high, low and no vegetation fractions in gardens ' 221 WRITE(iluout,*)
' You need to specify the three of them ... or none. ' 222 CALL abor1_sfx(
'Namelist NAM_DATA_TEB_GARDEN: you need to specify all of HVEG, LVEG, NVEG fractions or NONE of them' 225 IF (gno_par_garden)
THEN 226 IF (
lhook)
CALL dr_hook(
'PGD_TEB_GARDEN_PAR',1,zhook_handle)
234 ALLOCATE(dtv%XPAR_FRAC_HVEG (kdim ))
235 ALLOCATE(dtv%XPAR_FRAC_LVEG (kdim ))
236 ALLOCATE(dtv%XPAR_FRAC_NVEG (kdim ))
237 ALLOCATE(dtv%XPAR_LAI_HVEG (kdim,dtv%NTIME))
238 ALLOCATE(dtv%XPAR_LAI_LVEG (kdim,dtv%NTIME))
239 ALLOCATE(dtv%XPAR_H_HVEG (kdim ))
241 io%CTYPE_HVEG = ctyp_garden_hveg
242 io%CTYPE_LVEG = ctyp_garden_lveg
243 io%CTYPE_NVEG = ctyp_garden_nveg
253 hprogram,
'FRAC_HVEG: fraction of high vegetation',
'TWN',cfnam_frac_hveg
257 hprogram,
'FRAC_LVEG: fraction of low vegetation' ,
'TWN',cfnam_frac_lveg
261 hprogram,
'FRAC_NVEG: fraction of bare soil' ,
'TWN',cfnam_frac_nveg
268 hprogram,
'LAI_HVEG: LAI of high vegetation',
'TWN',cfnam_lai_hveg
272 hprogram,
'LAI_LVEG: LAI of low vegetation',
'TWN',cfnam_lai_lveg
280 hprogram,
'H_HVEG: height of trees',
'TWN',cfnam_h_hveg,
282 IF (
lhook)
CALL dr_hook(
'PGD_TEB_GARDEN_PAR',1,zhook_handle)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine pgd_teb_garden_par(DTCO, UG, U, USS, KDIM, IO, DTV, HP
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)