60 USE modd_topodyn, ONLY : ccat, nncat, nnb_topd_step, xtopd_step,&
62 xnul, xx0, xy0, nnpt,&
63 nx_step_rout, xspeedr,&
64 xspeedh, nnmc, nmesht, npmax,&
66 xtopd, xdriv, xdhil, xtime_topd,&
67 xdgrd, xspeedg, xtime_topd_drain,&
68 xqtot, xtanb, xslop, xdarea,&
69 xlambda, xconn, xqb_dr, xqb_run
75 USE modi_read_topd_header_dtm
76 USE modi_read_topd_file
77 USE modi_read_topd_header_connex
78 USE modi_read_connex_file
79 USE modi_read_slope_file
81 USE yomhook
,ONLY : lhook, dr_hook
82 USE parkind1
,ONLY : jprb
88 CHARACTER(LEN=*),
INTENT(IN) :: hprogram
93 CHARACTER(LEN=50),
DIMENSION(NNCAT) :: yfiletop
94 CHARACTER(LEN=50),
DIMENSION(NNCAT) :: yfilecon
95 CHARACTER(LEN=50),
DIMENSION(NNCAT) :: yfileslo
96 CHARACTER(LEN=50),
DIMENSION(NNCAT) :: yfiledh
97 CHARACTER(LEN=50),
DIMENSION(NNCAT) :: yfiledr
101 REAL,
DIMENSION(:),
ALLOCATABLE :: ztopd_read
103 REAL(KIND=JPRB) :: zhook_handle
105 IF (lhook) CALL dr_hook(
'INIT_TOPD',0,zhook_handle)
112 WRITE(iluout,*)
'INITIALISATION INIT_TOPD'
116 yfiletop(jcat)=trim(ccat(jcat))//
'_FilledDTM.map'
117 yfilecon(jcat)=trim(ccat(jcat))//
'_connections.vec'
118 yfileslo(jcat)=trim(ccat(jcat))//
'_slope.vec'
119 yfiledr(jcat)=trim(ccat(jcat))//
'_RiverDist.map'
120 yfiledh(jcat)=trim(ccat(jcat))//
'_HillDist.map'
123 ALLOCATE(nnmc(nncat))
125 ALLOCATE(nnxc(nncat))
127 ALLOCATE(nnyc(nncat))
133 ALLOCATE(nnpt(nncat))
135 ALLOCATE(xnul(nncat))
136 ALLOCATE(xdxt(nncat))
143 xx0(jcat),xy0(jcat),nnxc(jcat),nnyc(jcat),&
144 xnul(jcat),xdxt(jcat))
147 nnpt(:) = nnxc(:) * nnyc(:)
149 npmax = maxval(nnpt(:))
152 ALLOCATE(nline(nncat,npmax))
154 ALLOCATE(xtopd(nncat,npmax))
156 ALLOCATE(ztopd_read(npmax))
159 CALL
read_topd_file(hprogram,yfiletop(jcat),
'FORMATTED',nnpt(jcat),ztopd_read)
161 xtopd(jcat,jj) = ztopd_read(jj)
176 nmesht=maxval(nnmc(:))
178 ALLOCATE(xconn(nncat,nmesht,ndim))
182 CALL
read_connex_file(hprogram,yfilecon(jcat),
'FORMATTED',nnmc(jcat),xconn(jcat,:,:),nline(jcat,:))
188 ALLOCATE(xtanb(nncat,nmesht))
189 ALLOCATE(xslop(nncat,nmesht))
190 ALLOCATE(xdarea(nncat,nmesht))
191 ALLOCATE(xlambda(nncat,nmesht))
195 xtanb(jcat,:),xslop(jcat,:),xdarea(jcat,:),xlambda(jcat,:))
198 ALLOCATE(xdriv(nncat,npmax))
200 ALLOCATE(xdhil(nncat,npmax))
202 ALLOCATE(xdgrd(nncat,npmax))
204 ALLOCATE(xqtot(nncat,nnb_topd_step))
211 CALL
read_topd_file(hprogram,yfiledr(jcat),
'FORMATTED',nnpt(jcat),ztopd_read)
213 IF ( nline(jcat,jj)/=0. .AND. nline(jcat,jj)/=xundef ) &
214 xdriv(jcat,nline(jcat,jj)) = ztopd_read(jj)
223 CALL
read_topd_file(hprogram,yfiledh(jcat),
'FORMATTED',nnpt(jcat),ztopd_read)
225 IF ( nline(jcat,jj)/=0. .AND. nline(jcat,jj)/=xundef ) &
226 xdhil(jcat,nline(jcat,jj)) = ztopd_read(jj)
231 xdgrd(:,:) = xdhil(:,:)
233 IF (lhook) CALL dr_hook(
'INIT_TOPD',1,zhook_handle)
subroutine read_topd_file(HPROGRAM, HFILE, HFORM, KNPT, PTOPD_READ)
subroutine read_slope_file(HPROGRAM, HFILE, HFORM, KNMC, PTANB, PSLOP, PDAREA, PLAMBDA)
subroutine init_topd(HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_connex_file(HPROGRAM, HFILE, HFORM, KNMC, PCONN, KLINE)