OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cckcsd.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine cckcsd (nm, mval, pval, qval, nmats, iseed, thresh, mmax, x, xf, u1, u2, v1t, v2t, theta, iwork, work, rwork, nin, nout, info)
 CCKCSD
subroutine clacsg (m, p, q, theta, iseed, x, ldx, work)

Function/Subroutine Documentation

◆ clacsg()

subroutine clacsg ( integer m,
integer p,
integer q,
real, dimension( * ) theta,
integer, dimension( 4 ) iseed,
complex, dimension( ldx, * ) x,
integer ldx,
complex, dimension( * ) work )

Definition at line 352 of file cckcsd.f.

353 IMPLICIT NONE
354*
355 INTEGER LDX, M, P, Q
356 INTEGER ISEED( 4 )
357 REAL THETA( * )
358 COMPLEX WORK( * ), X( LDX, * )
359*
360 COMPLEX ONE, ZERO
361 parameter( one = (1.0e0,0.0e0), zero = (0.0e0,0.0e0) )
362*
363 INTEGER I, INFO, R
364*
365 r = min( p, m-p, q, m-q )
366*
367 CALL claset( 'Full', m, m, zero, zero, x, ldx )
368*
369 DO i = 1, min(p,q)-r
370 x(i,i) = one
371 END DO
372 DO i = 1, r
373 x(min(p,q)-r+i,min(p,q)-r+i) = cmplx( cos(theta(i)), 0.0e0 )
374 END DO
375 DO i = 1, min(p,m-q)-r
376 x(p-i+1,m-i+1) = -one
377 END DO
378 DO i = 1, r
379 x(p-(min(p,m-q)-r)+1-i,m-(min(p,m-q)-r)+1-i) =
380 $ cmplx( -sin(theta(r-i+1)), 0.0e0 )
381 END DO
382 DO i = 1, min(m-p,q)-r
383 x(m-i+1,q-i+1) = one
384 END DO
385 DO i = 1, r
386 x(m-(min(m-p,q)-r)+1-i,q-(min(m-p,q)-r)+1-i) =
387 $ cmplx( sin(theta(r-i+1)), 0.0e0 )
388 END DO
389 DO i = 1, min(m-p,m-q)-r
390 x(p+i,q+i) = one
391 END DO
392 DO i = 1, r
393 x(p+(min(m-p,m-q)-r)+i,q+(min(m-p,m-q)-r)+i) =
394 $ cmplx( cos(theta(i)), 0.0e0 )
395 END DO
396 CALL claror( 'Left', 'No init', p, m, x, ldx, iseed, work, info )
397 CALL claror( 'Left', 'No init', m-p, m, x(p+1,1), ldx,
398 $ iseed, work, info )
399 CALL claror( 'Right', 'No init', m, q, x, ldx, iseed,
400 $ work, info )
401 CALL claror( 'Right', 'No init', m, m-q,
402 $ x(1,q+1), ldx, iseed, work, info )
403*
float cmplx[2]
Definition pblas.h:136
subroutine claset(uplo, m, n, alpha, beta, a, lda)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
Definition claset.f:106
subroutine claror(side, init, m, n, a, lda, iseed, x, info)
CLAROR
Definition claror.f:158
#define min(a, b)
Definition macros.h:20