Hello to all of my new firends.
I am writing a code for "Turbulent Negarively Bouyant Jet" in these days for my thesis in BSc.
I would like to use MKL_DDIASM for part of my code but when I RUN the code this message appeares and all of my RHS result (argument C) will be zero. The message is : INTEL MKL ERROR : PARAMETER 5 WAS INCORRECT ON ENTRY TO MKL_DDIASM
Then I tried to make a simple code to understand exactly what DDIASM do. I wrote 2 simple codes which I bring here. The first code works well but the secnod code doesn't. I notice that the second code have a general sparse matrix "A".
When I define MATDESCRA (1) = "G" then this message will apear : INTEL MKL ERROR : PARAMETER 5 WAS INCORRECT ON ENTRY TO MKL_DDIASM
my 1st answer : What's the problem with "G" for MATDESCRA (1) ????!!!
my 2nd answer : what should I do to solve the system of equations in my 2nd simple code to obtain correct answers for that with DDIASM? (How must I define MATDESCRA exactly?)
PROGRAM 2nd_simple_code IMPLICIT NONE CHARACTER(1) , DIMENSION ( 4 ) :: MATDESCRA REAL (8) , DIMENSION ( 3 , 3 ) :: A REAL (8) , DIMENSION ( 3 , 2 ) :: B , C REAL (8) , DIMENSION ( 3 , 3 ) :: VAL INTEGER I , J CHARACTER(1) TRANSA INTEGER :: M , N , LVAL , NDIAG , LDB , LDC REAL (8) :: ALPHA INTEGER , DIMENSION ( 3 ) :: IDIAG A = 0 B = 0 C = 0 VAL = 0 IDIAG = 0 A ( 1 , 1 ) = 1.0D0 A ( 2 , 2 ) = 1.0D0 A ( 3 , 3 ) = 1.0D0 A ( 2 , 1 ) = 2.0D0 A ( 1 , 3 ) = 5.0D0 B ( 1 , 1 ) = 16.0D0 B ( 1 , 2 ) = 34.0D0 B ( 2 , 1 ) = 4.0D0 B ( 2 , 2 ) = 13.0D0 B ( 3 , 1 ) = 3.0D0 B ( 3 , 2 ) = 6.0D0 VAL ( 2 , 1 ) = 2.0D0 VAL ( 1 , 2 ) = 1.0D0 VAL ( 2 , 2 ) = 1.0D0 VAL ( 3 , 2 ) = 1.0D0 VAL ( 1 , 3 ) = 5.0D0 M = 3 N = 2 LVAL = 3 NDIAG = 3 LDB = 3 LDC = 3 ALPHA = 1.0D0 TRANSA = "N" MATDESCRA (1) = 'G' MATDESCRA (2) = 'U' MATDESCRA (3) = 'U' MATDESCRA (4) = 'F' IDIAG (1) = -1 IDIAG (2) = 0 IDIAG (3) = 2 CALL MKL_DDIASM ( TRANSA , M , N , ALPHA , MATDESCRA , VAL , LVAL , IDIAG , NDIAG , B , LDB , C , LDC ) DO I = 1 , 3 WRITE ( * , * ) (C (I ,J), J = 1 , 2) END DO READ(*,*) END PROGRAM 2nd_simple_code
*****************************************************************************************************
PROGRAM 1st_simple_code IMPLICIT NONE CHARACTER(1) , DIMENSION ( 4 ) :: MATDESCRA REAL (8) , DIMENSION ( 3 , 3 ) :: A REAL (8) , DIMENSION ( 3 , 2 ) :: B , C REAL (8) , DIMENSION ( 3 , 1 ) :: VAL INTEGER I , J CHARACTER(1) TRANSA INTEGER :: M , N , LVAL , NDIAG , LDB , LDC REAL (8) :: ALPHA INTEGER , DIMENSION ( 1 ) :: IDIAG A = 0 B = 0 C = 0 A ( 1 , 1 ) = 1.0D0 A ( 2 , 2 ) = 1.0D0 A ( 3 , 3 ) = 1.0D0 B ( 1 , 1 ) = 1.0D0 B ( 1 , 2 ) = 4.0D0 B ( 2 , 1 ) = 2.0D0 B ( 2 , 2 ) = 5.0D0 B ( 3 , 1 ) = 3.0D0 B ( 3 , 2 ) = 6.0D0 VAL ( 1 , 1 ) = 1.0D0 VAL ( 2 , 1 ) = 1.0D0 VAL ( 3 , 1 ) = 1.0D0 M = 3 N = 2 LVAL = 3 NDIAG = 1 LDB = 3 LDC = 3 ALPHA = 1.0D0 TRANSA = "N" MATDESCRA (1) = 'D' MATDESCRA (2) = 'U' MATDESCRA (3) = 'U' MATDESCRA (4) = 'F' IDIAG (1) = 0 CALL MKL_DDIASM ( TRANSA , M , N , ALPHA , MATDESCRA , VAL , LVAL , IDIAG , NDIAG , B , LDB , C , LDC ) DO I = 1 , 3 WRITE ( * , * ) (C (I ,J), J = 1 , 2) END DO READ(*,*) END PROGRAM 1st_simple_code
**************************************************************
Thanks a lot dear friends.