27 lines
570 B
Fortran
27 lines
570 B
Fortran
|
|
||
|
SUBROUTINE detcoef(m,coefs,n,longs,levels,num,d)
|
||
|
implicit none
|
||
|
|
||
|
integer :: m,n,levels,num
|
||
|
integer :: longs(n)
|
||
|
real*8 :: coefs(m),d(1000)
|
||
|
|
||
|
integer :: nmax,tfirst(n),first(n-2),longs2(n-2),last(n-2),i
|
||
|
|
||
|
d = 0
|
||
|
|
||
|
nmax = n-2
|
||
|
call cumsum(n,longs,tfirst)
|
||
|
tfirst = tfirst+1
|
||
|
|
||
|
do i=n-2,1,-1
|
||
|
first(n-i-1) = tfirst(i)
|
||
|
longs2(n-i-1) = longs(i+1)
|
||
|
end do
|
||
|
|
||
|
last = first+longs2-1
|
||
|
|
||
|
num = last(levels)-first(levels)+1
|
||
|
d(1:num) = coefs(first(levels):last(levels))
|
||
|
|
||
|
end subroutine
|