106 SUBROUTINE dlasdt( N, LVL, ND, INODE, NDIML, NDIMR, MSUB )
114 INTEGER lvl, msub, n, nd
117 INTEGER inode( * ), ndiml( * ), ndimr( * )
124 parameter( two = 2.0d+0 )
127 INTEGER i, il, ir, llst, maxn, ncrnt, nlvl
128 DOUBLE PRECISION temp
131 INTRINSIC dble, int, log, max
138 temp = log( dble( maxn ) / dble( msub+1 ) ) / log( two )
139 lvl = int( temp ) + 1
144 ndimr( 1 ) = n - i - 1
148 DO 20 nlvl = 1, lvl - 1
153 DO 10 i = 0, llst - 1
157 ndiml( il ) = ndiml( ncrnt ) / 2
158 ndimr( il ) = ndiml( ncrnt ) - ndiml( il ) - 1
159 inode( il ) = inode( ncrnt ) - ndimr( il ) - 1
160 ndiml( ir ) = ndimr( ncrnt ) / 2
161 ndimr( ir ) = ndimr( ncrnt ) - ndiml( ir ) - 1
162 inode( ir ) = inode( ncrnt ) + ndiml( ir ) + 1