1 SUBROUTINE clatm1( MODE, COND, IRSIGN, IDIST, ISEED, D, N, INFO )
8 INTEGER IDIST, INFO, IRSIGN, MODE, N
95 parameter( one = 1.0e0 )
105 EXTERNAL slaran, clarnd
111 INTRINSIC abs, exp, log, real
126 IF( mode.LT.-6 .OR. mode.GT.6 )
THEN
128 ELSE IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
129 $ ( irsign.NE.0 .AND. irsign.NE.1 ) )
THEN
131 ELSE IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
134 ELSE IF( ( mode.EQ.6 .OR. mode.EQ.-6 ) .AND.
135 $ ( idist.LT.1 .OR. idist.GT.4 ) )
THEN
137 ELSE IF( n.LT.0 )
THEN
142 CALL xerbla(
'CLATM1', -info )
149 GO TO ( 10, 30, 50, 70, 90, 110 )abs( mode )
174 alpha = cond**( -one / real( n-1 ) )
176 d( i ) = alpha**( i-1 )
187 alpha = ( one-temp ) / real( n-1 )
189 d( i ) = real( n-i )*alpha + temp
197 alpha = log( one / cond )
199 d( i ) = exp( alpha*slaran( iseed ) )
206 CALL clarnv( idist, iseed, n, d )
213 IF( ( mode.NE.-6 .AND. mode.NE.0 .AND. mode.NE.6 ) .AND.
216 ctemp = clarnd( 3, iseed )
217 d( i ) = d( i )*( ctemp / abs( ctemp ) )