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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
subroutine driver(n,m,nLevels,len,inData,d,iopt,ia,ib,crit)
implicit none
c locals
integer n,m,nLevels
real*8 inData(n,m)
integer iopt
integer ia(n),ib(n)
real*8 crit(n)
integer len
real*8 d(len)
c extern functions
integer ioffset
c locals
c real*8 membr(n)
c integer nn(n)
c real*8 disnn(n)
c logical flag(n)
real*8 membr(10)
integer nn(10)
real*8 disnn(10)
logical flag(10)
integer i,j,k,idx
real*8 dist
do i=1,n
do j = i+1,n
idx = ioffset(n,i,j)
dist = 0.0
do k=1,m
dist = dist + (inData(i,k)-inData(j,k))**2
enddo
d(idx) = dist
enddo
enddo
CALL HC(N,LEN,IOPT,IA,IB,CRIT,MEMBR,NN,DISNN,FLAG,D)
end
subroutine distdriver(n,len,d,iopt,ia,ib,crit)
implicit none
c args
integer n
integer len
real*8 d(len)
integer iopt
integer ia(n),ib(n)
real*8 crit(n)
c locals
c real*8 membr(n)
c integer nn(n)
c real*8 disnn(n)
c logical flag(n)
real*8 membr(10)
integer nn(10)
real*8 disnn(10)
logical flag(10)
integer i
CALL HC(N,LEN,IOPT,IA,IB,CRIT,MEMBR,NN,DISNN,FLAG,D)
c write(6,*) "ia: ",(ia(i),i=1,N)
c write(6,*) "ib: ",(ib(i),i=1,N)
c write(6,*) "crit: ",(crit(i),i=1,N)
end
|