7 HPROGRAM,HSURF,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,KLUOUT,KPATCH,PFIELD)
42 USE modi_prep_grid_extern
45 USE modi_open_aux_io_surf
46 USE modi_close_aux_io_surf
47 USE modi_read_teb_patch
48 USE modi_town_presence
49 USE modi_make_choice_array
52 USE modd_prep_teb_garden
,ONLY : xgrid_soil, xwr_def
53 USE modd_data_cover_par
, ONLY : nvegtype
59 USE modi_put_on_all_vegtypes
71 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
72 CHARACTER(LEN=7),
INTENT(IN) :: HSURF
73 CHARACTER(LEN=28),
INTENT(IN) :: HFILE
74 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
75 CHARACTER(LEN=28),
INTENT(IN) :: HFILEPGD
76 CHARACTER(LEN=6),
INTENT(IN) :: HFILEPGDTYPE
77 INTEGER,
INTENT(IN) :: KLUOUT
78 INTEGER,
INTENT(IN) :: KPATCH
79 REAL,
DIMENSION(:,:,:),
POINTER :: PFIELD
83 CHARACTER(LEN=12) :: YRECFM
88 REAL,
DIMENSION(:,:,:),
POINTER :: ZFIELD
89 REAL,
DIMENSION(:,:),
POINTER :: ZFIELD1
90 REAL,
DIMENSION(:,:,:),
POINTER :: ZD
91 REAL,
DIMENSION(:,:),
POINTER :: ZD1
92 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZOUT
93 CHARACTER(LEN=12) :: YSURF
94 CHARACTER(LEN=3) :: YPATCH
103 REAL(KIND=JPRB) :: ZHOOK_HANDLE
114 IF (
lhook)
CALL dr_hook(
'PREP_TEB_GARDEN_EXTERN',0,zhook_handle)
124 CALL read_surf(hfilepgdtype,
'VERSION',iversion,iresp)
125 CALL read_surf(hfilepgdtype,
'BUG',ibugfix,iresp)
126 gold_name = (iversion<7 .OR. (iversion==7 .AND. ibugfix<3))
138 CALL read_teb_patch(hfilepgd,hfilepgdtype,iversion,ibugfix,iteb_patch,hdir=
'-')
140 IF (iteb_patch>1)
THEN 141 WRITE(ypatch,fmt=
'(A,I1,A)')
'T',min(kpatch,iteb_patch),
'_' 158 ALLOCATE(pfield(ini,1,1))
161 CALL read_surf(hfilepgdtype,yrecfm,pfield(:,1,1),iresp,hdir=
'A')
169 CASE(
'TG ',
'WG ',
'WGI ')
173 IF (gteb)
CALL read_surf(hfilepgdtype,
'GARDEN',ggarden,iresp,hdir=
'-')
176 ysurf =
'GD_'//hsurf(1:3)
177 IF (gold_name) ysurf =
'TWN_'//hsurf(1:3)
178 ysurf = ypatch//ysurf
184 CALL read_extern_isba(u, dtco, gcp, io, hfile,hfiletype,hfilepgd,hfilepgdtype,kluout,ini,&
185 hsurf,ysurf,zfield,zd)
189 ALLOCATE(zout(
SIZE(zfield,1),
SIZE(xgrid_soil)))
190 ALLOCATE(pfield(
SIZE(zfield,1),
SIZE(xgrid_soil),
SIZE(zfield,3)))
191 ALLOCATE(zfield1(
SIZE(zfield,1),
SIZE(zfield,2)))
192 ALLOCATE(zd1(
SIZE(zfield,1),
SIZE(zfield,2)))
193 DO jpatch=1,
SIZE(zfield,3)
194 zfield1(:,:)=zfield(:,:,jpatch)
195 zd1(:,:)=zd(:,:,jpatch)
197 pfield(:,:,jpatch)=zout(:,:)
214 IF (gteb)
CALL read_surf(hfilepgdtype,
'GARDEN',ggarden,iresp,hdir=
'-')
219 IF (gold_name) yrecfm =
'TWN_WR' 220 yrecfm = ypatch//yrecfm
224 yrecfm =
'PATCH_NUMBER' 226 CALL read_surf(hfilepgdtype,yrecfm,ipatch,iresp,hdir=
'-')
232 CALL read_surf(hfiletype,
'VERSION',iversion,iresp)
233 CALL read_surf(hfiletype,
'BUG',ibugfix,iresp)
234 gdim = (iversion>8 .OR. iversion==8 .AND. ibugfix>0)
235 IF (gdim)
CALL read_surf(hfiletype,
'SPLIT_PATCH',gdim,iresp)
236 yrecfm=adjustl(yrecfm)
237 ALLOCATE(zfield(ini,1,ipatch))
239 CALL read_surf(hfiletype,yrecfm,zfield(:,1,1),iresp,hdir=
'E')
245 ALLOCATE(pfield(ini,1,nvegtype))
248 ALLOCATE(pfield(ini,1,1))
249 pfield(:,:,:) = zfield(:,:,:)
254 ALLOCATE(pfield(ini,1,1))
265 IF (
lhook)
CALL dr_hook(
'PREP_TEB_GARDEN_EXTERN',1,zhook_handle)
character(len=10) cingrid_type
subroutine make_choice_array(HPROGRAM, KNPATCH, ODIM, HRECFM, PWORK, HDIR, KPATCH)
character(len=6) cinterp_type
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine town_presence(HFILETYPE, OTEB, HDIR)
subroutine prep_grid_extern(GCP, HFILETYPE, KLUOUT, HGRIDTYPE, HINTER
subroutine put_on_all_vegtypes(KNI, KLAYER, KPATCH, KVEGTYPE, PFIELD_P
subroutine prep_teb_garden_extern(DTCO, IO, U, GCP, HPROGRAM, HSURF, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, KPATCH, PFIELD)
subroutine read_extern_isba(U, DTCO, GCP, IO, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, KNI, HFIELD, HNAME, PFIELD, PDEPTH, OKEY)
subroutine read_teb_patch(HFILEPGD, HFILEPGDTYPE, KVERSION, KBUGFIX,
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)