3 *********************************************************************
4 *
plasma example routine(version 2.4.5)
6 * release date: november, 15th 2010
7 *
plasma is a software package provided by univ. of tennessee,
8 * univ. of california berkeley and univ. of colorado denver.
9 * @generated s tue nov 22 14:35:54 2011
10 *********************************************************************
20 * example for solving a system of linear equations using lu
22 * =====================================================================
25 INTEGER cores, n, nrhs
26 parameter( cores = 2 )
30 parameter( zone = ( 1.0d+0, 0.0d+0 ) )
33 COMPLEX*16 a1( n, n ), b1( n, nrhs )
34 COMPLEX*16 a2( n, n ), b2( n, nrhs )
35 DOUBLE PRECISION rwork( n )
36 INTEGER*4 hl( 2 ), hpiv( 2 )
39 DOUBLE PRECISION xnorm, anorm, bnorm, rnorm, eps
40 DOUBLE PRECISION dlamch, slange
42 * ..
External subroutines ..
43 EXTERNAL zlarnv, dlamch, slange
46 EXTERNAL plasma_dealloc_handle
49 * .. executable statements ..
58 WRITE(*,*)
"-- PLASMA is initialized on", cores,
"cores."
60 * initialization of the matrix a1
62 CALL zlarnv( 1, iseed, n*n, a1 )
65 * initialization of the rhs
67 CALL zlarnv( 1, iseed, n*nrhs, b1 )
80 xnorm = slange(
'I',n, nrhs, b2, n, rwork)
81 anorm = slange(
'I',n, n, a1, n, rwork)
82 bnorm = slange(
'I',n, nrhs, b1, n, rwork)
84 CALL sgemm(
'No transpose',
'No transpose', n, nrhs, n, zone,
85 $ a1, n, b2, n, -zone, b1, n)
87 rnorm = slange(
'I',n, nrhs, b1, n, rwork)
89 eps= dlamch(
'Epsilon')
91 WRITE(*,*)
'============'
92 WRITE(*,*)
'Checking the Residual of the solution '
93 WRITE(*,*)
'-- ||Ax-B||_oo/((||A||_oo||x||_oo+||B||_oo).N.eps)=',
94 $ rnorm / ((anorm * xnorm + bnorm) * n * eps)
96 IF ((rnorm > 60.0).AND.( info < 0 ))
THEN
97 WRITE(*,*)
"-- Error in SGESV example !"
99 WRITE(*,*)
"-- Run of SGESV example successful !"
103 *
Deallocate l and ipiv
105 CALL plasma_dealloc_handle( hl, info )
106 CALL plasma_dealloc_handle( hpiv, info )
112 *
End of example_sgesv.