7 hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kluout,ounif)
42 USE modi_read_prep_surf_atm_conf
46 cfile_hug_gd, ctype_hug, &
47 cfile_hug_surf_gd, cfile_hug_root_gd, cfile_hug_deep_gd, &
48 xhug_surf_gd, xhug_root_gd, xhug_deep_gd, &
49 xhugi_surf_gd, xhugi_root_gd, xhugi_deep_gd, &
50 cfile_tg_gd, ctype_tg, &
51 cfile_tg_surf_gd, cfile_tg_root_gd, cfile_tg_deep_gd, &
52 xtg_surf_gd, xtg_root_gd, xtg_deep_gd
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
67 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
68 CHARACTER(LEN=7),
INTENT(IN) :: hvar
69 CHARACTER(LEN=28),
INTENT(OUT) :: hfile
70 CHARACTER(LEN=6),
INTENT(OUT) :: hfiletype
71 CHARACTER(LEN=28),
INTENT(OUT) :: hfilepgd
72 CHARACTER(LEN=6),
INTENT(OUT) :: hfilepgdtype
73 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
74 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
75 CHARACTER(LEN=28),
INTENT(IN) :: hpgdfile
76 CHARACTER(LEN=6),
INTENT(IN) :: hpgdfiletype
77 INTEGER,
INTENT(IN) :: kluout
78 LOGICAL,
INTENT(OUT) :: ounif
88 CHARACTER(LEN=28) :: ynamelist
91 REAL(KIND=JPRB) :: zhook_handle
95 IF (lhook) CALL dr_hook(
'READ_PREP_TEB_GARDEN_CONF',0,zhook_handle)
111 IF (len_trim(cfile_hug_gd)>0 .AND. len_trim(ctype_hug)>0 )
THEN
113 hfiletype = ctype_hug
116 IF (len_trim(cfile_tg_gd)>0 .AND. len_trim(ctype_tg)>0 )
THEN
122 IF (len_trim(hfile)==0 .AND. len_trim(cfile_gd)>0 .AND. len_trim(ctype)>0)
THEN
127 IF (len_trim(hfilepgd)==0 .AND. len_trim(cfilepgd_gd)>0 .AND. len_trim(ctypepgd)>0)
THEN
128 hfilepgd = cfilepgd_gd
129 hfilepgdtype = ctypepgd
135 IF (len_trim(hfile)==0)
THEN
138 hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kluout)
147 IF ( len_trim(ctype_hug )>0 .AND. &
148 len_trim(cfile_hug_surf_gd)>0 .AND. &
149 len_trim(cfile_hug_root_gd)>0 .AND. &
150 len_trim(cfile_hug_deep_gd)>0 )
THEN
151 hfiletype = ctype_hug
153 IF (hvar==
'WGI ' .AND. hfiletype==
'ASCLLV')
THEN
155 IF (lhook) CALL dr_hook(
'READ_PREP_TEB_GARDEN_CONF',1,zhook_handle)
159 IF ( len_trim(ctype_tg )>0 .AND. &
160 len_trim(cfile_tg_surf_gd)>0 .AND. &
161 len_trim(cfile_tg_root_gd)>0 .AND. &
162 len_trim(cfile_tg_deep_gd)>0 )
THEN
174 ounif = (xhug_surf_gd/=xundef) .OR. (xhug_root_gd/=xundef) .OR. (xhug_deep_gd/=xundef)
175 IF (ounif .AND. (xhug_surf_gd==xundef))
THEN
176 WRITE(kluout,*)
'ONE OF XHUG_SURF_GD, XHUG_ROOT_GD OR XHUG_DEEP_GD IS GIVEN'
177 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XHUG_SURF_GD MUST BE SET')
179 IF (ounif .AND. (xhug_root_gd==xundef))
THEN
180 WRITE(kluout,*)
'ONE OF XHUG_SURF_GD, XHUG_ROOT_GD OR XHUG_DEEP_GD IS GIVEN'
181 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XHUG_ROOT_GD MUST BE SET')
183 IF (ounif .AND. (xhug_deep_gd==xundef))
THEN
184 WRITE(kluout,*)
'ONE OF XHUG_SURF_GD, XHUG_ROOT_GD OR XHUG_DEEP_GD IS GIVEN'
185 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XHUG_DEEP_GD MUST BE SET')
189 ounif = (xhugi_surf_gd/=xundef) .OR. (xhugi_root_gd/=xundef) .OR. (xhugi_deep_gd/=xundef)
190 IF (ounif .AND. (xhugi_surf_gd==xundef))
THEN
191 WRITE(kluout,*)
'ONE OF XHUGI_SURF_GD, XHUGI_ROOT_GD OR XHUGI_DEEP_GD IS GIVEN'
192 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XHUGI_SURF_GD MUST BE SET')
194 IF (ounif .AND. (xhugi_root_gd==xundef))
THEN
195 WRITE(kluout,*)
'ONE OF XHUGI_SURF_GD, XHUGI_ROOT_GD OR XHUGI_DEEP_GD IS GIVEN'
196 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XHUGI_ROOT_GD MUST BE SET')
198 IF (ounif .AND. (xhugi_deep_gd==xundef))
THEN
199 WRITE(kluout,*)
'ONE OF XHUGI_SURF_GD, XHUGI_ROOT_GD OR XHUGI_DEEP_GD IS GIVEN'
200 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XHUGI_DEEP_GD MUST BE SET')
204 ounif = (xtg_surf_gd/=xundef) .OR. (xtg_root_gd/=xundef) .OR. (xtg_deep_gd/=xundef)
205 IF (ounif .AND. (xtg_surf_gd==xundef))
THEN
206 WRITE(kluout,*)
'ONE OF XTG_SURF_GD, XTG_ROOT_GD OR XTG_DEEP_GD IS GIVEN'
207 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XTG_SURF_GD MUST BE SET')
209 IF (ounif .AND. (xtg_root_gd==xundef))
THEN
210 WRITE(kluout,*)
'ONE OF XTG_SURF_GD, XTG_ROOT_GD OR XTG_DEEP_GD IS GIVEN'
211 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XTG_ROOT_GD MUST BE SET')
213 IF (ounif .AND. (xtg_deep_gd==xundef))
THEN
214 WRITE(kluout,*)
'ONE OF XTG_SURF_GD, XTG_ROOT_GD OR XTG_DEEP_GD IS GIVEN'
215 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: XTG_DEEP_GD MUST BE SET')
226 IF (len_trim(hfiletype)==0 .AND. .NOT. ounif)
THEN
227 IF (hvar(1:2)/=
'TG' .AND. hvar(1:2)/=
'WG' .OR. hvar(1:3)==
'WGI')
THEN
228 IF (hvar(1:2)/=
'ZS')
WRITE(kluout,*)
'NO FILE FOR FIELD ',hvar, &
229 ': UNIFORM DEFAULT FIELD IS PRESCRIBED'
230 IF (hvar(1:3)==
'WGI')
THEN
236 IF (lhook) CALL dr_hook(
'READ_PREP_TEB_GARDEN_CONF',1,zhook_handle)
239 WRITE(kluout,*)
'AN INPUT FILE OR A UNIFORM VALUE IS REQUIRED FOR FIELD: ',hvar
240 WRITE(kluout,*)
'Please complete NAM_PREP_TEB_GARDEN'
241 CALL
abor1_sfx(
'READ_PREP_TEB_GARDEN_CONF: AN INPUT FILE OR A UNIFORM VALUE IS REQUIRED FOR '//hvar)
244 IF (lhook) CALL dr_hook(
'READ_PREP_TEB_GARDEN_CONF',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine read_prep_teb_garden_conf(HPROGRAM, HVAR, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KLUOUT, OUNIF)
subroutine read_prep_surf_atm_conf(HPROGRAM, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KLUOUT)