53 USE modd_topodyn, ONLY : ccat, nncat, nnb_topd_step, xtopd_step,&
55 xnul, xx0, xy0, nnpt,&
56 nx_step_rout, xspeedr,&
57 xspeedh, nnmc, nmesht, npmax,&
59 xtopd, xdriv, xdhil, xtime_topd, &
60 xdgrd, xspeedg, xtime_topd_drain,&
61 xqtot, xtanb, xslop, xdarea,&
62 xlambda, xconn, xqb_dr, xqb_run
69 USE modi_read_topd_header_dtm
70 USE modi_read_topd_file
71 USE modi_read_topd_header_connex
72 USE modi_read_connex_file
76 USE yomhook
,ONLY : lhook, dr_hook
77 USE parkind1
,ONLY : jprb
83 CHARACTER(LEN=*),
INTENT(IN) :: hprogram
88 INTEGER :: ji,jj,jcat,jo
93 CHARACTER(LEN=28) :: yfile
100 REAL(KIND=JPRB) :: zhook_handle
102 IF (lhook) CALL dr_hook(
'INIT_TOPD_OL',0,zhook_handle)
111 WRITE(iluout,*)
'INITIALISATION INIT_TOPD_OL'
118 ALLOCATE(nx_step_rout(nncat))
119 ALLOCATE(xtime_topd(nncat,nmesht))
120 ALLOCATE(xtime_topd_drain(nncat,nmesht))
122 xtime_topd(:,:) = 0.0
123 xtime_topd_drain(:,:) = 0.0
128 IF ( xspeedr(jcat)/=0. .AND. xspeedg(jcat)/=0. )
THEN
129 WHERE ( xdhil(jcat,1:nnmc(jcat))/=xundef .AND. xdriv(jcat,1:nnmc(jcat))/=xundef ) &
130 xtime_topd(jcat,1:nnmc(jcat)) = xdhil(jcat,1:nnmc(jcat)) / xspeedh(jcat) + &
131 xdriv(jcat,1:nnmc(jcat)) / xspeedr(jcat)
132 WHERE ( xdgrd(jcat,1:nnmc(jcat))/=xundef .AND. xdriv(jcat,1:nnmc(jcat))/=xundef ) &
133 xtime_topd_drain(jcat,1:nnmc(jcat)) = xdgrd(jcat,1:nnmc(jcat)) / xspeedg(jcat) + &
134 xdriv(jcat,1:nnmc(jcat)) / xspeedr(jcat)
136 WRITE(iluout,*)
'You have to choose some values for routing velocities'
139 IF (xtopd_step/=0.) &
140 nx_step_rout(jcat) = int(maxval(xtime_topd(jcat,1:nnmc(jcat))) / xtopd_step) + 1
144 IF ( nnb_stp_restart==0 ) nnb_stp_restart = max(nnb_topd_step,maxval(nx_step_rout(:)))
147 ALLOCATE(xqb_dr(nncat,nnb_topd_step))
149 ALLOCATE(xqb_run(nncat,nnb_topd_step))
154 IF (lhook) CALL dr_hook(
'INIT_TOPD_OL',1,zhook_handle)
subroutine init_topd(HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine init_topd_ol(HPROGRAM)