Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
subroutine rivers (icon,nelem,x,y,z,nnode,node,links)
integer icon(3,nelem),node(nnode),links(nnode)
double precision x(nnode),y(nnode),z(nnode)
double precision,dimension(:),pointer::slopemax
allocate (slopemax(nnode))
slopemax=0.d0
node=0
do ie=1,nelem
do k=1,3
kp=mod(k,3)+1
ic=icon(k,ie)
icp=icon(kp,ie)
slope=(z(ic)-z(icp))/sqrt((x(ic)-x(icp))**2+(y(ic)-y(icp))**2)
if (slope.gt.slopemax(ic)) then
slopemax(ic)=slope
node(ic)=icp
endif
enddo
enddo
links=0
do i=1,nnode
n=i
l=O
1 n=node(n)
if (n.eq.0) goto 2
l=l+1
links(n)=max(links(n),l)
goto 1
2 continue
enddo
deallocate (slopemax)
return
end