7 hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kluout,ounif)
43 USE modi_read_prep_surf_atm_conf
46 USE modd_prep_isba, ONLY : cfile_isba, ctype, cfilepgd_isba, ctypepgd, &
47 cfile_hug, ctype_hug, &
48 cfile_hug_surf, cfile_hug_root, cfile_hug_deep, &
49 xhug_surf, xhug_root, xhug_deep, &
50 xhugi_surf, xhugi_root, xhugi_deep, &
52 cfile_tg_surf, cfile_tg_root, cfile_tg_deep, &
53 xtg_surf, xtg_root, xtg_deep, &
54 xwsnow, xtsnow, xrsnow, xasnow
59 USE yomhook
,ONLY : lhook, dr_hook
60 USE parkind1
,ONLY : jprb
69 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
70 CHARACTER(LEN=7),
INTENT(IN) :: hvar
71 CHARACTER(LEN=28),
INTENT(OUT) :: hfile
72 CHARACTER(LEN=6),
INTENT(OUT) :: hfiletype
73 CHARACTER(LEN=28),
INTENT(OUT) :: hfilepgd
74 CHARACTER(LEN=6),
INTENT(OUT) :: hfilepgdtype
75 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
76 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
77 CHARACTER(LEN=28),
INTENT(IN) :: hpgdfile
78 CHARACTER(LEN=6),
INTENT(IN) :: hpgdfiletype
79 INTEGER,
INTENT(IN) :: kluout
80 LOGICAL,
INTENT(OUT) :: ounif
86 REAL(KIND=JPRB) :: zhook_handle
90 IF (lhook) CALL dr_hook(
'READ_PREP_ISBA_CONF',0,zhook_handle)
106 IF (len_trim(cfile_hug)>0 .AND. len_trim(ctype_hug)>0 )
THEN
108 hfiletype = ctype_hug
110 CASE (
'TG ',
'TV ',
'TC ')
111 IF (len_trim(cfile_tg)>0 .AND. len_trim(ctype_tg)>0 )
THEN
117 IF (len_trim(hfile)==0 .AND. len_trim(cfile_isba)>0 .AND. len_trim(ctype)>0)
THEN
122 IF (len_trim(hfilepgd)==0 .AND. len_trim(cfilepgd_isba)>0 .AND. len_trim(ctypepgd)>0)
THEN
123 hfilepgd = cfilepgd_isba
124 hfilepgdtype = ctypepgd
130 IF (len_trim(hfile)==0)
THEN
133 hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kluout)
142 IF ( len_trim(ctype_hug )>0 .AND. &
143 len_trim(cfile_hug_surf)>0 .AND. &
144 len_trim(cfile_hug_root)>0 .AND. &
145 len_trim(cfile_hug_deep)>0 )
THEN
146 hfiletype = ctype_hug
148 IF (hvar==
'WGI ' .AND. hfiletype==
'ASCLLV')
THEN
150 IF (xhugi_surf==xundef) xhugi_surf = 0.
151 IF (xhugi_root==xundef) xhugi_root = 0.
152 IF (xhugi_deep==xundef) xhugi_deep = 0.
153 IF (lhook) CALL dr_hook(
'READ_PREP_ISBA_CONF',1,zhook_handle)
156 CASE (
'TG ',
'TV ',
'TC ')
157 IF ( len_trim(ctype_tg )>0 .AND. &
158 len_trim(cfile_tg_surf)>0 .AND. &
159 len_trim(cfile_tg_root)>0 .AND. &
160 len_trim(cfile_tg_deep)>0 )
THEN
172 ounif = (xhug_surf/=xundef) .OR. (xhug_root/=xundef) .OR. (xhug_deep/=xundef)
173 IF (ounif .AND. (xhug_surf==xundef))
THEN
174 WRITE(kluout,*)
'ONE OF XHUG_SURF, XHUG_ROOT OR XHUG_DEEP IS GIVEN'
175 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XHUG_SURF MUST BE SET')
177 IF (ounif .AND. (xhug_root==xundef))
THEN
178 WRITE(kluout,*)
'ONE OF XHUG_SURF, XHUG_ROOT OR XHUG_DEEP IS GIVEN'
179 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XHUG_ROOT MUST BE SET')
181 IF (ounif .AND. (xhug_deep==xundef))
THEN
182 WRITE(kluout,*)
'ONE OF XHUG_SURF, XHUG_ROOT OR XHUG_DEEP IS GIVEN'
183 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XHUG_DEEP MUST BE SET')
187 ounif = (xhugi_surf/=xundef) .OR. (xhugi_root/=xundef) .OR. (xhugi_deep/=xundef)
188 IF (ounif .AND. (xhugi_surf==xundef))
THEN
189 WRITE(kluout,*)
'ONE OF XHUGI_SURF, XHUGI_ROOT OR XHUGI_DEEP IS GIVEN'
190 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XHUGI_SURF MUST BE SET')
192 IF (ounif .AND. (xhugi_root==xundef))
THEN
193 WRITE(kluout,*)
'ONE OF XHUGI_SURF, XHUGI_ROOT OR XHUGI_DEEP IS GIVEN'
194 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XHUGI_ROOT MUST BE SET')
196 IF (ounif .AND. (xhugi_deep==xundef))
THEN
197 WRITE(kluout,*)
'ONE OF XHUGI_SURF, XHUGI_ROOT OR XHUGI_DEEP IS GIVEN'
198 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XHUGI_DEEP MUST BE SET')
201 CASE (
'TG ',
'TV ',
'TC ')
202 ounif = (xtg_surf/=xundef) .OR. (xtg_root/=xundef) .OR. (xtg_deep/=xundef)
203 IF (ounif .AND. (xtg_surf==xundef))
THEN
204 WRITE(kluout,*)
'ONE OF XTG_SURF, XTG_ROOT OR XTG_DEEP IS GIVEN'
205 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XTG_SURF MUST BE SET')
207 IF (ounif .AND. (xtg_root==xundef))
THEN
208 WRITE(kluout,*)
'ONE OF XTG_SURF, XTG_ROOT OR XTG_DEEP IS GIVEN'
209 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XTG_ROOT MUST BE SET')
211 IF (ounif .AND. (xtg_deep==xundef))
THEN
212 WRITE(kluout,*)
'ONE OF XTG_SURF, XTG_ROOT OR XTG_DEEP IS GIVEN'
213 CALL
abor1_sfx(
'READ_PREP_ISBA_CONF: XTG_DEEP MUST BE SET')
222 IF (hfiletype==
' ' .AND. .NOT. ounif)
THEN
223 IF (hvar(1:2)/=
'ZS')
WRITE(kluout,*)
'NO FILE FOR FIELD ',hvar, &
224 ': UNIFORM DEFAULT FIELD IS PRESCRIBED'
225 IF (hvar(1:3)==
'WGI')
THEN
232 IF (lhook) CALL dr_hook(
'READ_PREP_ISBA_CONF',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine read_prep_isba_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)