7 HPROGRAM,HSURF,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,KLUOUT,PFIELD,OKEY)
39 USE modd_prep_isba
, ONLY : xgrid_soil, xwr_def
44 USE modi_make_choice_array
45 USE modi_prep_grid_extern
48 USE modi_open_aux_io_surf
49 USE modi_close_aux_io_surf
66 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
67 CHARACTER(LEN=7),
INTENT(IN) :: HSURF
68 CHARACTER(LEN=28),
INTENT(IN) :: HFILE
69 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
70 CHARACTER(LEN=28),
INTENT(IN) :: HFILEPGD
71 CHARACTER(LEN=6),
INTENT(IN) :: HFILEPGDTYPE
72 INTEGER,
INTENT(IN) :: KLUOUT
73 REAL,
DIMENSION(:,:,:),
POINTER :: PFIELD
74 LOGICAL,
OPTIONAL,
INTENT(INOUT):: OKEY
78 CHARACTER(LEN=12) :: YRECFM
83 CHARACTER(LEN=3) :: YPHOTO
85 REAL,
DIMENSION(:,:,:),
POINTER :: ZFIELD=>null()
86 REAL,
DIMENSION(:,:,:),
POINTER :: ZD=>null()
87 REAL,
DIMENSION(:),
ALLOCATABLE :: ZMASK
89 INTEGER :: IVERSION, IBUGFIX
91 REAL(KIND=JPRB) :: ZHOOK_HANDLE
102 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_EXTERN',0,zhook_handle)
115 CALL read_surf(hfilepgdtype,yrecfm,iversion,iresp)
120 IF (iversion>=7)
THEN 122 CALL read_surf(hfilepgdtype,yrecfm,zmask,iresp,hdir=
'A')
131 CALL read_surf(hfiletype,yrecfm,iversion,iresp)
133 CALL read_surf(hfiletype,yrecfm,ibugfix,iresp)
134 gdim = (iversion>8 .OR. iversion==8 .AND. ibugfix>0)
135 IF (gdim)
CALL read_surf(hfiletype,
'SPLIT_PATCH',gdim,iresp)
151 ALLOCATE(pfield(ini,1,1))
155 CALL read_surf(hfilepgdtype,yrecfm,pfield(:,1,1),iresp,hdir=
'E')
163 CASE(
'TG ',
'WG ',
'WGI ')
165 CALL read_extern_isba(u, dtco, gcp, io, hfile,hfiletype,hfilepgd,hfilepgdtype,&
166 kluout,ini,hsurf,hsurf,zfield,zd,okey)
169 ALLOCATE(pfield(
SIZE(zfield,1),
SIZE(xgrid_soil),
SIZE(zfield,3)))
170 DO jp=1,
SIZE(zfield,3)
171 CALL interp_grid_nat(zd(:,:,jp),zfield(:,:,jp),xgrid_soil,pfield(:,:,jp))
174 DO jp=1,
SIZE(pfield,3)
175 DO jl=1,
SIZE(pfield,2)
176 WHERE (zmask(:)==0.) pfield(:,jl,jp) =
xundef 192 yrecfm=
'PATCH_NUMBER' 193 CALL read_surf(hfilepgdtype,yrecfm,ipatch,iresp,hdir=
'-')
195 ALLOCATE(pfield(ini,1,ipatch))
201 DO jp=1,
SIZE(pfield,3)
202 WHERE (zmask(:)==0.) pfield(:,1,jp) =
xundef 208 yrecfm=
'PATCH_NUMBER' 209 CALL read_surf(hfilepgdtype,yrecfm,ipatch,iresp,hdir=
'-')
211 CALL read_surf(hfilepgdtype,yrecfm,yphoto,iresp,hdir=
'-')
213 ALLOCATE(pfield(ini,1,ipatch))
215 IF (yphoto==
'NIT' .OR. yphoto==
'NCB')
THEN 220 DO jp=1,
SIZE(pfield,3)
221 WHERE (zmask(:)==0.) pfield(:,1,jp) =
xundef 228 yrecfm=
'PATCH_NUMBER' 229 CALL read_surf(hfilepgdtype,yrecfm,ipatch,iresp,hdir=
'-')
233 CALL read_surf(hfiletype,yrecfm,gglacier,iresp,hdir=
'-')
234 ALLOCATE(pfield(ini,1,ipatch))
241 DO jp=1,
SIZE(pfield,3)
242 WHERE (zmask(:)==0.) pfield(:,1,jp) =
xundef 246 CALL abor1_sfx(
'PREP_ISBA_EXTERN: '//
trim(hsurf)//
" initialization not implemented !")
257 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_EXTERN',1,zhook_handle)
static const char * trim(const char *name, int *n)
character(len=10) cingrid_type
subroutine make_choice_array(HPROGRAM, KNPATCH, ODIM, HRECFM, PWORK, HDIR, KPATCH)
subroutine prep_isba_extern(DTCO, IO, U, GCP, HPROGRAM, HSURF, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, PFIELD, OKEY)
character(len=6) cinterp_type
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine prep_grid_extern(GCP, HFILETYPE, KLUOUT, HGRIDTYPE, HINTER
subroutine abor1_sfx(YTEXT)
subroutine read_extern_isba(U, DTCO, GCP, IO, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, KNI, HFIELD, HNAME, PFIELD, PDEPTH, OKEY)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)