@@ -246,10 +246,10 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
246246* =====================================================================
247247*
248248* .. Parameters ..
249- REAL REALONE, REALZERO
250- PARAMETER ( REALONE = 1 .0E0 , REALZERO = 0 .0E0 )
251- COMPLEX ZERO, ONE
252- PARAMETER ( ZERO = (0.0E0 ,0.0E0 ), ONE = (1.0E0 ,0.0E0 ) )
249+ REAL ZERO, ONE
250+ PARAMETER ( ZERO = 0 .0E0 , ONE = 1 .0E0 )
251+ COMPLEX CZERO, CONE
252+ PARAMETER ( CZERO = (0.0E0 ,0.0E0 ), CONE = (1.0E0 ,0.0E0 ) )
253253 REAL PIOVER2
254254 PARAMETER ( PIOVER2 = 1.57079632679489661923132169163975144210E0 )
255255* ..
@@ -271,13 +271,13 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
271271* .. Executable Statements ..
272272*
273273 ULP = SLAMCH( ' Precision' )
274- ULPINV = REALONE / ULP
274+ ULPINV = ONE / ULP
275275*
276276* The first half of the routine checks the 2-by-2 CSD
277277*
278- CALL CLASET( ' Full' , M, M, ZERO, ONE , WORK, LDX )
279- CALL CHERK( ' Upper' , ' Conjugate transpose' , M, M, - REALONE ,
280- $ X, LDX, REALONE , WORK, LDX )
278+ CALL CLASET( ' Full' , M, M, CZERO, CONE , WORK, LDX )
279+ CALL CHERK( ' Upper' , ' Conjugate transpose' , M, M, - ONE ,
280+ $ X, LDX, ONE , WORK, LDX )
281281 IF (M.GT. 0 ) THEN
282282 EPS2 = MAX ( ULP,
283283 $ CLANGE( ' 1' , M, M, WORK, LDX, RWORK ) / REAL ( M ) )
@@ -301,64 +301,64 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
301301*
302302 CALL CLACPY( ' Full' , M, M, X, LDX, XF, LDX )
303303*
304- CALL CGEMM( ' No transpose' , ' Conjugate transpose' , P, Q, Q, ONE ,
305- $ XF, LDX, V1T, LDV1T, ZERO , WORK, LDX )
304+ CALL CGEMM( ' No transpose' , ' Conjugate transpose' , P, Q, Q, CONE ,
305+ $ XF, LDX, V1T, LDV1T, CZERO , WORK, LDX )
306306*
307- CALL CGEMM( ' Conjugate transpose' , ' No transpose' , P, Q, P, ONE ,
308- $ U1, LDU1, WORK, LDX, ZERO , XF, LDX )
307+ CALL CGEMM( ' Conjugate transpose' , ' No transpose' , P, Q, P, CONE ,
308+ $ U1, LDU1, WORK, LDX, CZERO , XF, LDX )
309309*
310310 DO I = 1 , MIN (P,Q)- R
311- XF(I,I) = XF(I,I) - ONE
311+ XF(I,I) = XF(I,I) - CONE
312312 END DO
313313 DO I = 1 , R
314314 XF(MIN (P,Q)- R+ I,MIN (P,Q)- R+ I) =
315- $ XF(MIN (P,Q)- R+ I,MIN (P,Q)- R+ I) - CMPLX ( COS (THETA(I)),
316- $ 0.0E0 )
315+ $ XF(MIN (P,Q)- R+ I,MIN (P,Q)- R+ I) -
316+ $ CMPLX ( COS (THETA(I)), ZERO )
317317 END DO
318318*
319319 CALL CGEMM( ' No transpose' , ' Conjugate transpose' , P, M- Q, M- Q,
320- $ ONE , XF(1 ,Q+1 ), LDX, V2T, LDV2T, ZERO , WORK, LDX )
320+ $ CONE , XF(1 ,Q+1 ), LDX, V2T, LDV2T, CZERO , WORK, LDX )
321321*
322322 CALL CGEMM( ' Conjugate transpose' , ' No transpose' , P, M- Q, P,
323- $ ONE , U1, LDU1, WORK, LDX, ZERO , XF(1 ,Q+1 ), LDX )
323+ $ CONE , U1, LDU1, WORK, LDX, CZERO , XF(1 ,Q+1 ), LDX )
324324*
325325 DO I = 1 , MIN (P,M- Q)- R
326- XF(P- I+1 ,M- I+1 ) = XF(P- I+1 ,M- I+1 ) + ONE
326+ XF(P- I+1 ,M- I+1 ) = XF(P- I+1 ,M- I+1 ) + CONE
327327 END DO
328328 DO I = 1 , R
329329 XF(P- (MIN (P,M- Q)- R)+ 1 - I,M- (MIN (P,M- Q)- R)+ 1 - I) =
330330 $ XF(P- (MIN (P,M- Q)- R)+ 1 - I,M- (MIN (P,M- Q)- R)+ 1 - I) +
331- $ CMPLX ( SIN (THETA(R- I+1 )), 0.0E0 )
331+ $ CMPLX ( SIN (THETA(R- I+1 )), ZERO )
332332 END DO
333333*
334- CALL CGEMM( ' No transpose' , ' Conjugate transpose' , M- P, Q, Q, ONE,
335- $ XF(P+1 ,1 ), LDX, V1T, LDV1T, ZERO , WORK, LDX )
334+ CALL CGEMM( ' No transpose' , ' Conjugate transpose' , M- P, Q, Q,
335+ $ CONE, XF(P+1 ,1 ), LDX, V1T, LDV1T, CZERO , WORK, LDX )
336336*
337337 CALL CGEMM( ' Conjugate transpose' , ' No transpose' , M- P, Q, M- P,
338- $ ONE , U2, LDU2, WORK, LDX, ZERO , XF(P+1 ,1 ), LDX )
338+ $ CONE , U2, LDU2, WORK, LDX, CZERO , XF(P+1 ,1 ), LDX )
339339*
340340 DO I = 1 , MIN (M- P,Q)- R
341- XF(M- I+1 ,Q- I+1 ) = XF(M- I+1 ,Q- I+1 ) - ONE
341+ XF(M- I+1 ,Q- I+1 ) = XF(M- I+1 ,Q- I+1 ) - CONE
342342 END DO
343343 DO I = 1 , R
344344 XF(M- (MIN (M- P,Q)- R)+ 1 - I,Q- (MIN (M- P,Q)- R)+ 1 - I) =
345345 $ XF(M- (MIN (M- P,Q)- R)+ 1 - I,Q- (MIN (M- P,Q)- R)+ 1 - I) -
346- $ CMPLX ( SIN (THETA(R- I+1 )), 0.0E0 )
346+ $ CMPLX ( SIN (THETA(R- I+1 )), ZERO )
347347 END DO
348348*
349349 CALL CGEMM( ' No transpose' , ' Conjugate transpose' , M- P, M- Q, M- Q,
350- $ ONE , XF(P+1 ,Q+1 ), LDX, V2T, LDV2T, ZERO , WORK, LDX )
350+ $ CONE , XF(P+1 ,Q+1 ), LDX, V2T, LDV2T, CZERO , WORK, LDX )
351351*
352352 CALL CGEMM( ' Conjugate transpose' , ' No transpose' , M- P, M- Q, M- P,
353- $ ONE , U2, LDU2, WORK, LDX, ZERO , XF(P+1 ,Q+1 ), LDX )
353+ $ CONE , U2, LDU2, WORK, LDX, CZERO , XF(P+1 ,Q+1 ), LDX )
354354*
355355 DO I = 1 , MIN (M- P,M- Q)- R
356- XF(P+ I,Q+ I) = XF(P+ I,Q+ I) - ONE
356+ XF(P+ I,Q+ I) = XF(P+ I,Q+ I) - CONE
357357 END DO
358358 DO I = 1 , R
359359 XF(P+ (MIN (M- P,M- Q)- R)+ I,Q+ (MIN (M- P,M- Q)- R)+ I) =
360360 $ XF(P+ (MIN (M- P,M- Q)- R)+ I,Q+ (MIN (M- P,M- Q)- R)+ I) -
361- $ CMPLX ( COS (THETA(I)), 0.0E0 )
361+ $ CMPLX ( COS (THETA(I)), ZERO )
362362 END DO
363363*
364364* Compute norm( U1'*X11*V1 - D11 ) / ( MAX(1,P,Q)*EPS2 ) .
@@ -383,9 +383,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
383383*
384384* Compute I - U1'*U1
385385*
386- CALL CLASET( ' Full' , P, P, ZERO, ONE , WORK, LDU1 )
387- CALL CHERK( ' Upper' , ' Conjugate transpose' , P, P, - REALONE ,
388- $ U1, LDU1, REALONE , WORK, LDU1 )
386+ CALL CLASET( ' Full' , P, P, CZERO, CONE , WORK, LDU1 )
387+ CALL CHERK( ' Upper' , ' Conjugate transpose' , P, P, - ONE ,
388+ $ U1, LDU1, ONE , WORK, LDU1 )
389389*
390390* Compute norm( I - U'*U ) / ( MAX(1,P) * ULP ) .
391391*
@@ -394,9 +394,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
394394*
395395* Compute I - U2'*U2
396396*
397- CALL CLASET( ' Full' , M- P, M- P, ZERO, ONE , WORK, LDU2 )
398- CALL CHERK( ' Upper' , ' Conjugate transpose' , M- P, M- P, - REALONE ,
399- $ U2, LDU2, REALONE , WORK, LDU2 )
397+ CALL CLASET( ' Full' , M- P, M- P, CZERO, CONE , WORK, LDU2 )
398+ CALL CHERK( ' Upper' , ' Conjugate transpose' , M- P, M- P, - ONE ,
399+ $ U2, LDU2, ONE , WORK, LDU2 )
400400*
401401* Compute norm( I - U2'*U2 ) / ( MAX(1,M-P) * ULP ) .
402402*
@@ -405,9 +405,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
405405*
406406* Compute I - V1T*V1T'
407407*
408- CALL CLASET( ' Full' , Q, Q, ZERO, ONE , WORK, LDV1T )
409- CALL CHERK( ' Upper' , ' No transpose' , Q, Q, - REALONE ,
410- $ V1T, LDV1T, REALONE , WORK, LDV1T )
408+ CALL CLASET( ' Full' , Q, Q, CZERO, CONE , WORK, LDV1T )
409+ CALL CHERK( ' Upper' , ' No transpose' , Q, Q, - ONE ,
410+ $ V1T, LDV1T, ONE , WORK, LDV1T )
411411*
412412* Compute norm( I - V1T*V1T' ) / ( MAX(1,Q) * ULP ) .
413413*
@@ -416,9 +416,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
416416*
417417* Compute I - V2T*V2T'
418418*
419- CALL CLASET( ' Full' , M- Q, M- Q, ZERO, ONE , WORK, LDV2T )
420- CALL CHERK( ' Upper' , ' No transpose' , M- Q, M- Q, - REALONE ,
421- $ V2T, LDV2T, REALONE , WORK, LDV2T )
419+ CALL CLASET( ' Full' , M- Q, M- Q, CZERO, CONE , WORK, LDV2T )
420+ CALL CHERK( ' Upper' , ' No transpose' , M- Q, M- Q, - ONE ,
421+ $ V2T, LDV2T, ONE , WORK, LDV2T )
422422*
423423* Compute norm( I - V2T*V2T' ) / ( MAX(1,M-Q) * ULP ) .
424424*
@@ -427,9 +427,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
427427*
428428* Check sorting
429429*
430- RESULT( 9 ) = REALZERO
430+ RESULT( 9 ) = ZERO
431431 DO I = 1 , R
432- IF ( THETA(I).LT. REALZERO .OR. THETA(I).GT. PIOVER2 ) THEN
432+ IF ( THETA(I).LT. ZERO .OR. THETA(I).GT. PIOVER2 ) THEN
433433 RESULT( 9 ) = ULPINV
434434 END IF
435435 IF ( I.GT. 1 ) THEN
@@ -441,9 +441,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
441441*
442442* The second half of the routine checks the 2-by-1 CSD
443443*
444- CALL CLASET( ' Full' , Q, Q, ZERO, ONE , WORK, LDX )
445- CALL CHERK( ' Upper' , ' Conjugate transpose' , Q, M, - REALONE ,
446- $ X, LDX, REALONE , WORK, LDX )
444+ CALL CLASET( ' Full' , Q, Q, CZERO, CONE , WORK, LDX )
445+ CALL CHERK( ' Upper' , ' Conjugate transpose' , Q, M, - ONE ,
446+ $ X, LDX, ONE , WORK, LDX )
447447 IF (M.GT. 0 ) THEN
448448 EPS2 = MAX ( ULP,
449449 $ CLANGE( ' 1' , Q, Q, WORK, LDX, RWORK ) / REAL ( M ) )
@@ -464,34 +464,34 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
464464*
465465* Compute [X11;X21] := diag(U1,U2)'*[X11;X21]*V1 - [D11;D21]
466466*
467- CALL CGEMM( ' No transpose' , ' Conjugate transpose' , P, Q, Q, ONE ,
468- $ X, LDX, V1T, LDV1T, ZERO , WORK, LDX )
467+ CALL CGEMM( ' No transpose' , ' Conjugate transpose' , P, Q, Q, CONE ,
468+ $ X, LDX, V1T, LDV1T, CZERO , WORK, LDX )
469469*
470- CALL CGEMM( ' Conjugate transpose' , ' No transpose' , P, Q, P, ONE ,
471- $ U1, LDU1, WORK, LDX, ZERO , X, LDX )
470+ CALL CGEMM( ' Conjugate transpose' , ' No transpose' , P, Q, P, CONE ,
471+ $ U1, LDU1, WORK, LDX, CZERO , X, LDX )
472472*
473473 DO I = 1 , MIN (P,Q)- R
474- X(I,I) = X(I,I) - ONE
474+ X(I,I) = X(I,I) - CONE
475475 END DO
476476 DO I = 1 , R
477477 X(MIN (P,Q)- R+ I,MIN (P,Q)- R+ I) =
478- $ X(MIN (P,Q)- R+ I,MIN (P,Q)- R+ I) - CMPLX ( COS (THETA(I)),
479- $ 0.0E0 )
478+ $ X(MIN (P,Q)- R+ I,MIN (P,Q)- R+ I) -
479+ $ CMPLX ( COS (THETA(I)), ZERO )
480480 END DO
481481*
482- CALL CGEMM( ' No transpose' , ' Conjugate transpose' , M- P, Q, Q, ONE,
483- $ X(P+1 ,1 ), LDX, V1T, LDV1T, ZERO , WORK, LDX )
482+ CALL CGEMM( ' No transpose' , ' Conjugate transpose' , M- P, Q, Q,
483+ $ CONE, X(P+1 ,1 ), LDX, V1T, LDV1T, CZERO , WORK, LDX )
484484*
485485 CALL CGEMM( ' Conjugate transpose' , ' No transpose' , M- P, Q, M- P,
486- $ ONE , U2, LDU2, WORK, LDX, ZERO , X(P+1 ,1 ), LDX )
486+ $ CONE , U2, LDU2, WORK, LDX, CZERO , X(P+1 ,1 ), LDX )
487487*
488488 DO I = 1 , MIN (M- P,Q)- R
489- X(M- I+1 ,Q- I+1 ) = X(M- I+1 ,Q- I+1 ) - ONE
489+ X(M- I+1 ,Q- I+1 ) = X(M- I+1 ,Q- I+1 ) - CONE
490490 END DO
491491 DO I = 1 , R
492492 X(M- (MIN (M- P,Q)- R)+ 1 - I,Q- (MIN (M- P,Q)- R)+ 1 - I) =
493493 $ X(M- (MIN (M- P,Q)- R)+ 1 - I,Q- (MIN (M- P,Q)- R)+ 1 - I) -
494- $ CMPLX ( SIN (THETA(R- I+1 )), 0.0E0 )
494+ $ CMPLX ( SIN (THETA(R- I+1 )), ZERO )
495495 END DO
496496*
497497* Compute norm( U1'*X11*V1 - D11 ) / ( MAX(1,P,Q)*EPS2 ) .
@@ -506,9 +506,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
506506*
507507* Compute I - U1'*U1
508508*
509- CALL CLASET( ' Full' , P, P, ZERO, ONE , WORK, LDU1 )
510- CALL CHERK( ' Upper' , ' Conjugate transpose' , P, P, - REALONE ,
511- $ U1, LDU1, REALONE , WORK, LDU1 )
509+ CALL CLASET( ' Full' , P, P, CZERO, CONE , WORK, LDU1 )
510+ CALL CHERK( ' Upper' , ' Conjugate transpose' , P, P, - ONE ,
511+ $ U1, LDU1, ONE , WORK, LDU1 )
512512*
513513* Compute norm( I - U1'*U1 ) / ( MAX(1,P) * ULP ) .
514514*
@@ -517,9 +517,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
517517*
518518* Compute I - U2'*U2
519519*
520- CALL CLASET( ' Full' , M- P, M- P, ZERO, ONE , WORK, LDU2 )
521- CALL CHERK( ' Upper' , ' Conjugate transpose' , M- P, M- P, - REALONE ,
522- $ U2, LDU2, REALONE , WORK, LDU2 )
520+ CALL CLASET( ' Full' , M- P, M- P, CZERO, CONE , WORK, LDU2 )
521+ CALL CHERK( ' Upper' , ' Conjugate transpose' , M- P, M- P, - ONE ,
522+ $ U2, LDU2, ONE , WORK, LDU2 )
523523*
524524* Compute norm( I - U2'*U2 ) / ( MAX(1,M-P) * ULP ) .
525525*
@@ -528,9 +528,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
528528*
529529* Compute I - V1T*V1T'
530530*
531- CALL CLASET( ' Full' , Q, Q, ZERO, ONE , WORK, LDV1T )
532- CALL CHERK( ' Upper' , ' No transpose' , Q, Q, - REALONE ,
533- $ V1T, LDV1T, REALONE , WORK, LDV1T )
531+ CALL CLASET( ' Full' , Q, Q, CZERO, CONE , WORK, LDV1T )
532+ CALL CHERK( ' Upper' , ' No transpose' , Q, Q, - ONE ,
533+ $ V1T, LDV1T, ONE , WORK, LDV1T )
534534*
535535* Compute norm( I - V1T*V1T' ) / ( MAX(1,Q) * ULP ) .
536536*
@@ -539,9 +539,9 @@ SUBROUTINE CCSDTS( M, P, Q, X, XF, LDX, U1, LDU1, U2, LDU2, V1T,
539539*
540540* Check sorting
541541*
542- RESULT( 15 ) = REALZERO
542+ RESULT( 15 ) = ZERO
543543 DO I = 1 , R
544- IF ( THETA(I).LT. REALZERO .OR. THETA(I).GT. PIOVER2 ) THEN
544+ IF ( THETA(I).LT. ZERO .OR. THETA(I).GT. PIOVER2 ) THEN
545545 RESULT( 15 ) = ULPINV
546546 END IF
547547 IF ( I.GT. 1 ) THEN
0 commit comments