The LAPACK forum has moved to https://github.com/Reference-LAPACK/lapack/discussions.

Incredibly confused | incredibly new to LAPACK

Open discussion regarding features, bugs, issues, vendors, etc.

Incredibly confused | incredibly new to LAPACK

Postby ohanyan » Mon Sep 24, 2007 4:38 pm

Hey all,

I am running on a remote cluster which has LAPACK installed and I compile my code with -lblas -llapack (fortran 90) and it seems to work fine. I'm running the following code:

PROGRAM test_routines

IMPLICIT NONE

COMPLEX, DIMENSION(2,4) :: F
COMPLEX, DIMENSION(2,4) :: Q

F(1,:)=(/1.0, 0.0, 0.0 ,0.0/)
F(2,:)=(/1.0, 1.0, 0.0, 0.0/)

write(*,*) F(1,1), F(1,2), F(1,3), F(1,4)
write(*,*) F(2,1), F(2,2), F(2,3), F(2,4)

CALL CUNGQR(F,14.0)

write(*,*) F(1,1), F(1,2), F(1,3), F(1,4)
write(*,*) F(2,1), F(2,2), F(2,3), F(2,4)

END PROGRAM


It compiles and when it executes:

[ohanyan@accumulation shooting]$ make sample
/share/apps/mpich/pgi/bin/mpif90 -r8 -pc 64 -Kieee -Mnobuiltin test.f90 -o test.out -llapack -lblas
./test.out
(1.000000000000000,0.000000000000000) (0.000000000000000,0.000000000000000)
(0.000000000000000,0.000000000000000) (0.000000000000000,0.000000000000000)
(1.000000000000000,0.000000000000000) (1.000000000000000,0.000000000000000)
(0.000000000000000,0.000000000000000) (0.000000000000000,0.000000000000000)
make: *** [run_sample] Segmentation fault


What am I doing wrong?

And, how can I figure out what the appropriate IN, OUT of the functions are for LAPACK and what type, etc.., etc... the more help the better.
ohanyan
 
Posts: 1
Joined: Mon Sep 24, 2007 4:33 pm

Postby sven » Tue Sep 25, 2007 2:32 am

Dear Ohanyan,

I am mot sure what you were expecting since the arguments in your call to CUNGQR bear little resemblance to the required arguments. It is always a good idea to look at the documentation, which can be found either in the hard copy of the LAPACK Users' Guide, or in the leading comments to the routine itself. I append the leading comments for CUNGQR. Note that CUNGQR would normally be preceded by a call to CGEQRF. Best wishes,

Sven Hammarling.

SUBROUTINE CUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
*
* -- LAPACK routine (version 3.1) --
* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
* November 2006
*
* .. Scalar Arguments ..
INTEGER INFO, K, LDA, LWORK, M, N
* ..
* .. Array Arguments ..
COMPLEX A( LDA, * ), TAU( * ), WORK( * )
* ..
*
* Purpose
* =======
*
* CUNGQR generates an M-by-N complex matrix Q with orthonormal columns,
* which is defined as the first N columns of a product of K elementary
* reflectors of order M
*
* Q = H(1) H(2) . . . H(k)
*
* as returned by CGEQRF.
*
* Arguments
* =========
*
* M (input) INTEGER
* The number of rows of the matrix Q. M >= 0.
*
* N (input) INTEGER
* The number of columns of the matrix Q. M >= N >= 0.
*
* K (input) INTEGER
* The number of elementary reflectors whose product defines the
* matrix Q. N >= K >= 0.
*
* A (input/output) COMPLEX array, dimension (LDA,N)
* On entry, the i-th column must contain the vector which
* defines the elementary reflector H(i), for i = 1,2,...,k, as
* returned by CGEQRF in the first k columns of its array
* argument A.
* On exit, the M-by-N matrix Q.
*
* LDA (input) INTEGER
* The first dimension of the array A. LDA >= max(1,M).
*
* TAU (input) COMPLEX array, dimension (K)
* TAU(i) must contain the scalar factor of the elementary
* reflector H(i), as returned by CGEQRF.
*
* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
*
* LWORK (input) INTEGER
* The dimension of the array WORK. LWORK >= max(1,N).
* For optimum performance LWORK >= N*NB, where NB is the
* optimal blocksize.
*
* If LWORK = -1, then a workspace query is assumed; the routine
* only calculates the optimal size of the WORK array, returns
* this value as the first entry of the WORK array, and no error
* message related to LWORK is issued by XERBLA.
*
* INFO (output) INTEGER
* = 0: successful exit
* < 0: if INFO = -i, the i-th argument has an illegal value
*
sven
 
Posts: 146
Joined: Wed Dec 22, 2004 4:28 am


Return to User Discussion

Who is online

Users browsing this forum: No registered users and 4 guests