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

Error linking against lapack.a library

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

Error linking against lapack.a library

Postby denismpa » Mon Nov 10, 2008 5:12 pm

Dears, I am trying to compile a code linking against the lapack.a library but I get this error:
/tmp/ifort9ePIqt.o(.text+0x492a): In function `MAIN__':
: undefined reference to `zgetri_'

several times.

I tried to compile and recompile my lapack changing some configurations on the make.inc


OPTS = -O3 -mp -tpp6
NOOPT = -O3 -mp -fltconsistency -fp_port
FORTRAN = ifort
#OPTS = -funroll-all-loops -O3
DRVOPTS = $(OPTS)
#NOOPT =
LOADER = ifort
LOADOPTS =


and


FORTRAN = /opt/intel/fc/9.1.043/bin/ifort
OPTS = -O2 -mtune=pentium4
DRVOPTS = $(OPTS)
NOOPT = -O0
LOADER = /opt/intel/fc/9.1.043/bin/ifort
LOADOPTS = -O2 -mtune=pentium4


but I still get those errors.

could somebody help me?
My machines are Xeon 64, running CentOS 4 and below is a copy of the code I'm trying to compile. ( I tried to attachm but I got a "the extention "whatever I renamed" is not allowed"

Thanks in advance

!********************* OPEN QUANTUM DOT PERTURBADO ***********************
!***************************************************************************
!***************************************************************************
! TRANSPORTE BALISTICO EM SISTEMAS MESOSCOPICOS 2D CONFINADOS
!***************************************************************************
!***************************************************************************
!Programa principal(METODO RECURSIVO 2D)
!Calcula a probabilidade de transmissao en sistemas mesoscopicos ideais (2D)
!usando un hamiltoniano tipo tight binding (que emula o espa�o continuo) e
!funcoes de Green (propagador do sistema). Aqui usamos cadeias transversais
!para simplificar os calculos (inversao de matrizes e simetrias).
!***************************************************************************
!***************************************************************************
!N:sitios transversais e M:sitios longitudinais)
!PARAMETER (NDX=11,MCX=10,MQPC1X=3,NMX=2*MCX+MQPC1X)
PARAMETER (NDX=115,NDXA=NDX*7,MCX=20,MQPC1X=20,MQPC2X=20,MOQDX=115,NMX=2*MCX+MQPC1X+MOQDX+MQPC2X,NWX=31)
!PARAMETER (NDX=11,MCX=10,MQPC1X=5,MQPC2X=5,MOQDX=11,NMX=2*MCX+MQPC1X+MOQDX+MQPC2X,NWX=3)
implicit real*8 (a-h,o-y)
IMPLICIT COMPLEX*16(z)
integer ixxm1,ixxn1,NIX
integer ibx,jyx,vvx,vv1x,vx,ux,inx,jnx,ivx,imx,ixx,yyx,IKX,IK1X,yy1x,ixxn,ixxm,xxi
integer WBX,WBXX,rny,rmx,cc
integer jxx,J
REAL*8 EAX,EBX,VAX,VBX,EX,VHX,nxx,mxx,azx,sx,pix,Evx,Eux,CC1x,CF1x,CF2x,TX,EIX,impureza1,a1,b1,fx1,fy1
REAL*8 fx1n,fx1d,fy1n,fy1d,fx2n,fx2d,fy2n,fy2d,impureza2,a2,b2,fx2,fy2

REAL*8 TTuvx,Ev1x,TTX
REAL*8 RRuvx
!REAL*8 YMINI
REAL*8 YMAX,EEXX

REAL*8 pz,aa,bb,hh,aax,hhx,bbx,xx,xy
complex*16 tuvx,CAX

!DIMENSION EMINI(52),TMINI(52)
!DIMENSION EMAX(52),TMAX(52)

REAL*8,DIMENSION (1:31)::EMAX
REAL*8,DIMENSION (1:31)::TMAX

REAL*8,DIMENSION (1:NMX,1:NDX)::DISPOX
REAL*8,DIMENSION (1:16,1:16)::MFO

!REAL*8,DIMENSION (1:9,1:9)::MFO

COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HCX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::QWC
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::QWQPC
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HQPC1X
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HQPC2X
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HOQDX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HGX

COMPLEX*16,DIMENSION (1:NDX,1:NDX)::MDUXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::CLX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::UUX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GUX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::CLXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::CRXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::VHXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GTX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GRX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GIX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::XXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::XX1x
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::XXAX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::XX1AX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HIX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::XIX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GTvx
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GRvx

COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HICX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::HIXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::XIXX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GIICX
COMPLEX*16,DIMENSION (1:NDX,1:NDX)::GIXX
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!***************subroutine lapack*******************
integer, dimension ( NDX ) :: ipiv
integer :: mm , nn , lda , info, lwork
complex*16 , dimension(NDXA) :: work
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

mm = NDX
nn = NDX
lda = NDX
lwork = NDXA

!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
open(10,file='EEXvsTTX2',status='old')
!open(140,file='DISPOXX2',status='new')
!open(120,file='TT+RRX2',status='new')
open(130,file='DISPO1X2',status='old')
open(131,file='DISPO3DX2',status='old')
open(7,file='MFO2DX2',status='old')

zrx=(1.d0,0.d0)
zix=(0.d0,1.d0)
z0x=(0.d0,0.d0)
!DEFINICAO DA HETEROESTRUTURA:
!PARAMETRO DE REDE: "azx" (Amgstrons)
azx=20.d0
!Largura L=(ni-1)*azx
!Largura medio da parte imaginaria da energia
!*********************************************
sx=0.0000001d0
!******************************************************************************
!******************************************************************************
!PARAMETROS TIGHT BINDING USADOS (fundo da banda de conducao do GaAs)
!******************************************************************************
!******************************************************************************
!Energia do sitio (GaAs): EA; Energia do sitio (AlGaAs): EB
!Energia hopping (GaAs): VA; Energia hopping (AlGaAs): VB
!Energia hopping GaAs/AlGaAs: V
VAX=DABS(-56.86608298d0/(azx*azx))
VBX=DABS(-56.86608298d0/(azx*azx))
!VBX=-41.45840653d0/(azx*azx)
!EIX=1000*VAX
EAX=2*(VAX)*(2)
EIX=EAX+0.5d0
EBX=2*(VBX)*(2)+0.1d0
VHX=DABS(-SQRT((VAX*VBX)))

!******************************************************************************
!HC: hamiltoniano tipo tight binding da cadeia transversal do contato.
!HC(i,j):elementos de matriz do hamiltoniano. i:columna, j:fila.
!******************************************************************************
do ixx=1,NDX
do jxx=1,NDX
HCX(jxx,ixx)=z0x
end do
end do
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
do imx=1,1
HCX((imx-1)*NDX+1,(imx-1)*NDX+1)=(EAX)*zrx
HCX(imx*NDX,imx*NDX)=(EAX)*zrx
HCX((imx-1)*NDX+2,(imx-1)*NDX+1)=-VAX*zrx;HCX(imx*NDX-1,imx*NDX)=-VAX*zrx

do ixx=(imx-1)*NDX+2,imx*NDX-1
HCX(ixx,ixx)=(EAX)*zrx;HCX(ixx+1,ixx)=-VAX*zrx;HCX(ixx-1,ixx)=-VAX*zrx
end do
end do
!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
do ixx=1,NDX
do jxx=1,NDX
HQPC1X(jxx,ixx)=z0x
end do
end do

do ixx=1,NDX
do jxx=1,NDX
HQPC2X(jxx,ixx)=z0x
end do
end do

do ixx=1,NDX
do jxx=1,NDX
HOQDX(jxx,ixx)=z0x
end do
end do


do ixx=1,NDX
do jxx=1,NDX
HICX(jxx,ixx)=z0x
end do
end do
!******************************************************************************
do ixx=1,NDX
do jxx=1,NDX
HGX(jxx,ixx)=z0x
end do
end do


do imx=1,1
HGX((imx-1)*NDX+1,(imx-1)*NDX+1)=(EIX)*zrx
HGX(imx*NDX,imx*NDX)=(EIX)*zrx
HGX((imx-1)*NDX+2,(imx-1)*NDX+1)=-VAX*zrx;HGX(imx*NDX-1,imx*NDX)=-VAX*zrx

do ixx=(imx-1)*NDX+2,imx*NDX-1
HGX(ixx,ixx)=(EIX)*zrx;HGX(ixx+1,ixx)=-VAX*zrx;HGX(ixx-1,ixx)=-VAX*zrx
end do
end do

!************************************************
!************** QPC1 ****************
!************************************************
HQPC1X=HGX
WBX=NWX
bb=EAX
hh=(WBX+1)/2
aa=(EIX-EAX)/((WBX-hh)*(WBX-hh))

yyx=42
!yyx=4
do iyx=1,WBX
xx=iyx-hh
yy1x=yyx+iyx
do imx=1,1
!HQPC1X((yy1x)+(imx-1)*NDX,(yy1x)+(imx-1)*NDX)=(aa*xx*xx+EAX)*zrx
HQPC1X((yy1x)+(imx-1)*NDX,(yy1x)+(imx-1)*NDX)=(EAX)*zrx
end do
end do

!************************************************
!************** QPC2 ****************
!************************************************
HQPC2X=HQPC1X

!************************************************
!************** OQD ****************
!************************************************
HOQDX=HGX

WBX=NDX
bb=EAX
hh=(WBX+1)/2
aa=(EIX-EAX)/((WBX-hh)*(WBX-hh))

yyx=0
do iyx=1,WBX
xx=iyx-hh
yy1x=yyx+iyx
do imx=1,1
!HOQDX((yy1x)+(imx-1)*NDX,(yy1x)+(imx-1)*NDX)=(aa*xx*xx+EAX)*zrx
end do
end do

!25(rnymax=75) e 15(rnymax=83)
!rny=45
!rmx=20
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!ixxn=0
!ixxm=0
do ixxn=1,16
rny=3*ixxn+4
!rx=ixxn+6

!1-27
do ixxm=1,16
rmx=3*ixxm+4
!ry=ixxm+6

!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@ IMPUREZA CONTROLAVEL @@@@@@@@@@@@@@
HICX=HGX
WBX=NDX
bb=EAX
hh=(WBX+1)/2
aa=(EIX-EAX)/((WBX-hh)*(WBX-hh))

yyx=0
do iyx=1,WBX
xx=iyx-hh
yy1x=yyx+iyx
do imx=1,1
!HICX((yy1x)+(imx-1)*NDX,(yy1x)+(imx-1)*NDX)=(EAX)*zrx
end do
end do

!***************** IMPUREZAS ********************
!**************************************************

!****************** CADEIA 1 ********************
!****************** CENTRO ********************

!NIX=11
!do iyx=1,NIX
!HICX(75+iyx,75+iyx)=(EAX+0.00d0)*zrx
!end do

!NIX=3
do iyx=1,NIX
!HICX(rny+iyx,rny+iyx)=(EAX+0.1d0)*zrx
end do

!******************************************************************************
!******************************************************************************

do iax=1,NDX
do jx=1,NDX
MDUXX(jx,iax)=z0x
end do
end do

do ibx=1,NDX
MDUXX(ibx,ibx)=zrx
end do

!******************************************************************************
YMAX=0.d0

!!YMINI=8.d0
do ixx=1,31
vv1x=1
Ev1x=2.d0*VAX-2.d0*VAX*dcos(pix*vv1x/(NDX+1))
!EX=1e-20+ixx*((4)*VAX+Ev1x-0.00001d0)/100000

EX=0.0028d0+ixx*0.000008d0
!EX=0.0633d0
!******************************************************************************
!******************************************************************************
!*************** CONTATOS SEMI-INFINITOS: CL,CR (CL=CR) ******************
!******************************************************************************
!******************************************************************************
do inx=1,NDX
vvx=0
do jnx=1,NDX
vvx=1+vvx
CC1x=dsqrt((2.d0/(NDX+1)))
pix=3.141592654d0
UUX(jnx,inx)=CC1x*dsin(pix*vvx*inx/(NDX+1))
end do
end do

do ivx=1,NDX
Evx=2.d0*VAX-2.d0*VAX*dcos(pix*ivx/(NDX+1))
if((EX.GE.(0)).AND.(EX.LT.Evx)) then
CAX=dcos(dacos((EX-Evx)/(2.d0*VAX)+1.d0))*zrx-dsin(dacos((EX-Evx)/(2.d0*VAX)+1.d0))*zix
else
CAX=dcos(dacos((EX-Evx)/(2.d0*VAX)-1.d0))*zrx-dsin(dacos((EX-Evx)/(2.d0*VAX)-1.d0))*zix
end if
GUX(ivx,ivx)=(1.d0/VAX)*CAX
end do

CLX=MATMUL(UUX,MATMUL(GUX,transpose(UUX)))

!******************************************************************************
!******************************************************************************
! METODO RECURSIVO PARA CALCULAR GT=Gm'm(n'n) e GR=Gmm(n'n)
!******************************************************************************
!******************************************************************************
VHXX=-VAX*MDUXX
!******************
CLXX=CLX
CRXX=CLX
!******************
GTX=CRXX
GRX=CRXX
!******************************************************************************
!************* CONTATO1 ***************
!******************************************************************************
HIX=HCX
XIX=1E+30*(EX*MDUXX-HIX+sx*MDUXX*zix)
!call invxx(XIX)
call zgetrf( mm, nn, XIX, lda, ipiv, info ) ! LU factoriza

call zgetri( nn, XIX, lda, ipiv, work, lwork, info ) ! LU inver

GIX=1E+30*XIX
QWC=GIX

jxx=0
do imx=MCX,1,-1
!*****************************************************
!**************** DISPOSITIVO ******************
jyx=0
jxx=jxx+1
do nxx=1,NDX
jyx=jyx+1
DISPOX(jxx,nxx)=HIX(jyx,jyx)
end do
!*****************************************************
!*****************************************************
XXAX=1E+30*(MDUXX-MATMUL(GIX,MATMUL(VHXX,MATMUL(GRX,VHXX))))
!call invxx(XXAX)
call zgetrf( mm, nn, XXAX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XXAX, lda, ipiv, work, lwork, info ) ! LU inver

XXX=1E+30*XXAX
GTX=MATMUL(GTX,MATMUL(VHXX,MATMUL(XXX,GIX)))
GRX=MATMUL(XXX,GIX)
end do
!******************************************************************************
!************ QPC1 **********
!******************************************************************************
HIX=HQPC1X
XIX=1E+30*(EX*MDUXX-HIX+sx*MDUXX*zix)
!call invxx(XIX)
call zgetrf( mm, nn, XIX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XIX, lda, ipiv, work, lwork, info ) ! LU inver

GIX=1E+30*XIX
QWQPC=GIX

jxx=MCX
do imx=MQPC1X,1,-1
!*****************************************************
!*************** DISPOSITIVO ********************
jyx=0
jxx=jxx+1
do nxx=1,NDX
jyx=jyx+1
DISPOX(jxx,nxx)=HIX(jyx,jyx)
end do
!*****************************************************
!*****************************************************
XXAX=1E+30*(MDUXX-MATMUL(GIX,MATMUL(VHXX,MATMUL(GRX,VHXX))))
!call invxx(XXAX)

call zgetrf( mm, nn, XXAX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XXAX, lda, ipiv, work, lwork, info ) ! LU inver

XXX=1E+30*XXAX
GTX=MATMUL(GTX,MATMUL(VHXX,MATMUL(XXX,GIX)))
GRX=MATMUL(XXX,GIX)
end do
!******************************************************************************
!************ OQD **********
!******************************************************************************
!HIX=HOQDX
!XIX=1E+30*(EX*MDUXX-HIX+sx*MDUXX*zix)
!call invxx(XIX)
!GIX=1E+30*XIX

!********* CADEIA 1 **********
!HIXX=HICX
!XIXX=1E+30*(EX*MDUXX-HIXX+sx*MDUXX*zix)
!call invxx(XIXX)
!GIICX=1E+30*XIXX
!*****************************
!****************************
cc=0
jxx=MCX+MQPC1X

xxi=0
do imx=MOQDX,1,-1
!###########################################################
!###########################################################
cc=cc+1

HOQDX=HGX

!Y
WBX=NDX
bb=EAX
hh=(WBX+1)/2
aa=(EIX-EAX)/((WBX-hh)*(WBX-hh))

!X

WBXX=MOQDX
bbx=EAX
hhx=(WBXX+1)/2
aax=(EIX-EAX)/((WBXX-hhx)*(WBXX-hhx))

xy=cc-hhx

yyx=0
do iyx=1,WBX
xx=iyx-hh
yy1x=yyx+iyx

if((iyx.GE.43).AND.(iyx.LE.73)) then
!if((iyx.GE.5).AND.(iyx.LE.7)) then
do imxx=1,1
HOQDX((yy1x)+(imxx-1)*NDX,(yy1x)+(imxx-1)*NDX)=(aa/3*xx*xx+EAX)*zrx
!HOQDX((yy1x)+(imxx-1)*NDX,(yy1x)+(imxx-1)*NDX)=(aa/3*xx*xx+EAX+aax/3*xy*xy)*zrx
end do
else
do imxx=1,1
HOQDX((yy1x)+(imxx-1)*NDX,(yy1x)+(imxx-1)*NDX)=(aa/3*xx*xx+EAX+aax/3*xy*xy)*zrx
end do
end if
end do

HIX=HOQDX
XIX=1E+30*(EX*MDUXX-HIX+sx*MDUXX*zix)
!call invxx(XIX)

call zgetrf( mm, nn, XIX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XIX, lda, ipiv, work, lwork, info ) ! LU inver

GIX=1E+30*XIX

!************************************************************
!**************** IMPUREZAS CONTROLAVEIS ********************
!************************************************************


!************************************************************
HICX=HOQDX

!###########################################################
!###########################################################

!*******************************************************
!************* IMPUREZAS CONTROLAVEIS ****************

!@@@@@@@@@@@@@@@@@@@ CADEIA DO CENTRO @@@@@@@@@@@@@@@@@@@@
if((imx.GE.(rmx-1+1)).AND.(imx.LE.(rmx-1+13))) then
xxi=xxi+1

NIX=13

do iyx=1,NIX
a1=150.d0
b1=1.5d0
fx1n=(a1*b1+(xxi-7))*(a1*b1+(xxi-7))
fx1d=(xxi-7)*(xxi-7)+b1*b1
fx1=fx1n/fx1d

fy1n=(a1*b1+(iyx-7))*(a1*b1+(iyx-7))
fy1d=(iyx-7)*(iyx-7)+b1*b1
fy1=fy1n/fy1d

impureza1=1.3d0*((fy1*fx1)/2400000000.d0)/(1*15)

HICX((rny-1)+iyx,(rny-1)+iyx)=HOQDX((rny-1)+iyx,(rny-1)+iyx)*zrx+(impureza1)*zrx
!HICX((rny-1)+iyx,(rny-1)+iyx)=HOQDX((rny-1)+iyx,(rny-1)+iyx)*zrx

end do

do iyx=1,NIX
a2=150.d0
b2=0.5d0
fx2n=(a2*b2+(xxi-7))*(a2*b2+(xxi-7))
fx2d=(xxi-7)*(xxi-7)+b2*b2
fx2=fx2n/fx2d

fy2n=(a2*b2+(iyx-7))*(a2*b2+(iyx-7))
fy2d=(iyx-7)*(iyx-7)+b2*b2
fy2=fy2n/fy2d

impureza2=-0.5d0*((fy2*fx2)/2400000000.d0)/10

!HICX((rny-1+(NIX-1))+iyx,(rny-1+(NIX-1))+iyx)=HOQDX((rny-1+(NIX-1))+iyx,(rny-1+(NIX-1))+iyx)*zrx+(impureza2)*zrx
HICX((rny-1+(NIX-1))+iyx,(rny-1+(NIX-1))+iyx)=HOQDX((rny-1+(NIX-1))+iyx,(rny-1+(NIX-1))+iyx)*zrx
end do

HIXX=HICX
XIXX=1E+30*(EX*MDUXX-HIXX+sx*MDUXX*zix)
!call invxx(XIXX)

call zgetrf( mm, nn, XIXX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XIXX, lda, ipiv, work, lwork, info ) ! LU inver

GIICX=1E+30*XIXX
!**************************************
HIX=HICX
GIXX=GIICX
else
HIX=HOQDX
GIXX=GIX
end if
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!com impureza trocar GI por GIX (sem impureza GI)
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!*****************************************************
!***************** DISPOSITIVO *******************
jyx=0
jxx=jxx+1
do nxx=1,NDX
jyx=jyx+1
DISPOX(jxx,nxx)=HIX(jyx,jyx)
end do
!*****************************************************
!*****************************************************
XXAX=1E+30*(MDUXX-MATMUL(GIXX,MATMUL(VHXX,MATMUL(GRX,VHXX))))
!call invxx(XXAX)

call zgetrf( mm, nn, XXAX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XXAX, lda, ipiv, work, lwork, info ) ! LU inver


XXX=1E+30*XXAX
GTX=MATMUL(GTX,MATMUL(VHXX,MATMUL(XXX,GIXX)))
GRX=MATMUL(XXX,GIXX)

end do

!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

!******************************************************************************
!************ QPC2 **********
!******************************************************************************
HIX=HQPC2X
XIX=1E+30*(EX*MDUXX-HIX+sx*MDUXX*zix)
!call invxx(XIX)
!GIX=1E+30*XIX
GIX=QWQPC

jxx=MCX+MQPC1X+MOQDX
do imx=MQPC2X,1,-1
!*****************************************************
!***************** DISPOSITIVO ******************
jyx=0
jxx=jxx+1
do nxx=1,NDX
jyx=jyx+1
DISPOX(jxx,nxx)=HIX(jyx,jyx)
end do
!*****************************************************
!*****************************************************
XXAX=1E+30*(MDUXX-MATMUL(GIX,MATMUL(VHXX,MATMUL(GRX,VHXX))))
!call invxx(XXAX)

call zgetrf( mm, nn, XXAX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XXAX, lda, ipiv, work, lwork, info ) ! LU inver

XXX=1E+30*XXAX
GTX=MATMUL(GTX,MATMUL(VHXX,MATMUL(XXX,GIX)))
GRX=MATMUL(XXX,GIX)
end do
!******************************************************************************
!************* CONTATO2 ***************
!******************************************************************************
HIX=HCX
XIX=1E+30*(EX*MDUXX-HIX+sx*MDUXX*zix)
!call invxx(XIX)
!GIX=1E+30*XIX
GIX=QWC

!jxx=MCX+MQPC1X
jxx=MCX+MQPC1X+MOQDX+MQPC2X
do imx=MCX,1,-1
!*****************************************************
!***************** DISPOSITIVO ******************
jyx=0
jxx=jxx+1
do nxx=1,NDX
jyx=jyx+1
DISPOX(jxx,nxx)=HIX(jyx,jyx)
end do
!*****************************************************
!*****************************************************
XXAX=1E+30*(MDUXX-MATMUL(GIX,MATMUL(VHXX,MATMUL(GRX,VHXX))))
!call invxx(XXAX)

call zgetrf( mm, nn, XXAX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XXAX, lda, ipiv, work, lwork, info ) ! LU inver

XXX=1E+30*XXAX
GTX=MATMUL(GTX,MATMUL(VHXX,MATMUL(XXX,GIX)))
GRX=MATMUL(XXX,GIX)
end do
!******************************************************************************
XX1AX=1E+30*(MDUXX-MATMUL(CLXX,MATMUL(VHXX,MATMUL(GRX,VHXX))))
!call invxx(XX1AX)

call zgetrf( mm, nn, XX1AX, lda, ipiv, info ) ! LU factoriza
call zgetri( nn, XX1AX, lda, ipiv, work, lwork, info ) ! LU inver

XX1X=1E+30*XX1AX
GTX=MATMUL(GTX,MATMUL(VHXX,MATMUL(XX1X,CLXX)))
GRX=MATMUL(XX1X,CLXX)

!*****************************************************************
!*****************************************************************
!******************* ARQUIVO DO DISPOSITIVO ********************
do mxx=1,NMX
do nxx=1,NDX
if(DISPOX(mxx,nxx).EQ.EAX) then
!! WRITE(130,*)(mxx-1)*azx,(nxx-1)*azx
else
end if
end do
end do

do mxx=1,NMX
do nxx=1,NDX
pz=DISPOX(mxx,nxx)
!! WRITE(131,*)(mxx-1)*azx,(nxx-1)*azx,pz
end do
end do

do nxx=1,NDX
!!WRITE(131,40)DISPOX(2:NMX-1,nxx)
!!40 format(229(F19.8,1X))
end do


!*****************************************************************
!*****************************************************************



!*****************************************************************************
!*****************************************************************************
! PROBABILIDADE DE TRANSMISSAO(TT) E REFLEXAO(RR)
!*****************************************************************************
! C0EFICIENTES DA MATRIZ S: t(u,v), r(u,v)
!*****************************************************************************
GTvx=MATMUL(transpose(UUX),MATMUL(GTX,UUX))
GRvx=MATMUL(transpose(UUX),MATMUL(GRX,UUX))
TTuvx=0.d0
RRuvx=0.d0
TTX=0.d0
DO IKX=1,NDX
! IKX=1
vx=IKX
DO IK1x=1,NDX
! IK1x=1
ux=IK1x
Evx=2.d0*VAX-2.d0*VAX*dcos(pix*vx/(NDX+1))
Eux=2.d0*VAX-2.d0*VAX*dcos(pix*ux/(NDX+1))
if((EX.GE.(0)).AND.(EX.LT.Evx)) then
CF1x=dsin(dacos((EX-Evx)/(2.d0*VAX)+1.d0))
else
CF1X=dsin(dacos((EX-Evx)/(2.d0*VAX)-1.d0))
end if
if((EX.GE.(0)).AND.(EX.LT.Eux)) then
CF2X=dsin(dacos((EX-Eux)/(2.d0*VAX)+1.d0))
else
CF2X=dsin(dacos((EX-Eux)/(2.d0*VAX)-1.d0))
end if

tuvx=2.d0*VAX*dsqrt(DABS(CF2x*CF1x))*zix*(GTvx(ux,vx))
TX=tuvx*dconjg(tuvx)
TTuvx=TTuvx+TX

!if(ux.EQ.vx) then
!ruvx=zix*(2*VAX*CF1x*(GRvx(vx,vx))+zix)
!else
!ruvx=zix*dsqrt(dabs(CF2x/CF1x))*(2*VAX*CF1x*(GRvx(ux,vx)))
!end if
!RX=ruvx*dconjg(ruvx)
!RRuvx=RRuvx+Rx

!TTX=TTuvx+RRuvx

END DO
END DO
!@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@@@@@@@@@@@
!write(10,*)EX,TTuvx
!write(10,*)(rmx+6)*azx,TTuvx
!write(120,*)EX,TTX

!@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@@@@@@@@@@@
!TMINI=0.d0
!YMINI=1.d0
!EMINI=0.d0
!TMAX=0.d0
!YMAX=1.d0
!EMAX=0.d0

!!!!TMINI(ixx)=TTuvx
TMAX(ixx)=TTuvx

!!!!EMINI(ixx)=EX
EMAX(ixx)=EX

!!!!YMINI=MIN(YMINI,TMINI(ixx))
YMAX=MAX(YMAX,TMAX(ixx))
!@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@@@@@@@@@@@

!!!!write(10,*)EMINI(ixx),TMINI(ixx)
write(10,*)EMAX(ixx),TMAX(ixx)


!!!!IF((TMINI(ixx)).EQ.(YMINI)) THEN
IF((TMAX(ixx)).EQ.(YMAX)) THEN
!!!!EEXX=EMINI(ixx)
EEXX=EMAX(ixx)

ELSE
END IF

end do
!@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@@@@@@@@@@@
ixxm1=1.d0
ixxn1=1.d0
!ixxm1=ixxm+(NIX-1)/2+1
!ixxn1=ixxn+(NIX-1)/2+1

MFO(ixxm,ixxn)=EEXX

!do ixx=0,1
!write(7,*)EMINI(ixx),TMINI(ixx)
!IF((TMINI(AX)).EQ.(YMINI)) THEN
!MFO(ixxn,ixxm)=EMINI(AX)
!ELSE
!END IF
!end do

!@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@@@@@@@@@@@
!write(7,*)(rmx+6)*azx,EEXX
end do
end do

!@@@@@@@@@@@@@@@@@@@@@@@
!@@@@@@@@@@@@@@@@@@@@@@@

do j=1,16
WRITE(7,10)MFO(j,1:16)
10 FORMAT(16(F14.10,1X))
end do

end


!*****************************************************************************
!******************* SUBROTINA DE INVERSAO *************************
!*****************************************************************************
! subrotina de inversao de matrizes nxn
! dimension (col-inicial:col-final,fila-inicial:fila-final)::array
! dimension ik(tamanho columna),jk(tamanho fila)
subroutine invxx(array)
PARAMETER (ND1x=115)
complex*16, dimension (1:ND1x,1:ND1x)::array
complex*16 amaxx,savex
dimension ikx(ND1x),jkx(ND1x)
ndx=ND1x
11 do 100 kx=1,ndx
amaxx=(0.d0,0.d0)
21 do 30 ix=1,ndx
do 30 jx=1,ndx
23 if(cdabs(amaxx)-cdabs(array(ix,jx))) 24,24,30
24 amaxx=array(ix,jx)
ikx(kx)=ix
jkx(kx)=jx
30 continue
41 ix=ikx(kx)
if(ix-kx) 21,51,43
43 do 50 jx=1,ndx
savex=array(kx,jx)
array(kx,jx)=array(ix,jx)
50 array(ix,jx)=-savex
51 jx=jkx(kx)
if(jx-kx) 21,61,53
53 do 60 ix=1,ndx
savex=array(ix,kx)
array(ix,kx)=array(ix,jx)
60 array(ix,jx)=-savex
61 do 70 ix=1,ndx
if(ix-kx) 63,70,63
63 array(ix,kx)=-array(ix,kx)/amaxx
70 continue
71 do 80 ix=1,ndx
do 80 jx=1,ndx
if(ix-kx) 74,80,74
74 if(jx-kx) 75,80,75
75 array(ix,jx)=array(ix,jx)+array(ix,kx)*array(kx,jx)
80 continue
81 do 90 jx=1,ndx
if(jx-kx) 83,90,83
83 array(kx,jx)=array(kx,jx)/amaxx
90 continue
array(kx,kx)=1.d0/amaxx
100 continue
101 do 130 lx=1,ndx
kx=ndx-lx+1
jx=ikx(kx)
if(jx-kx) 111,111,105
105 do 110 ix=1,ndx
savex=array(ix,kx)
array(ix,kx)=-array(ix,jx)
110 array(ix,jx)=savex
111 ix=jkx(kx)
if(ix-kx) 130,130,113
113 do 120 jx=1,ndx
savex=array(kx,jx)
array(kx,jx)=-array(ix,jx)
120 array(ix,jx)=savex
130 continue
140 return
end
denismpa
 
Posts: 4
Joined: Mon Nov 10, 2008 4:55 pm

Re: Error linking against lapack.a library

Postby Julie » Mon Nov 10, 2008 5:18 pm

Could you copy/paste the compilation and linking line?
Thanks
Julie
Julie
 
Posts: 299
Joined: Wed Feb 23, 2005 12:32 am
Location: ICL, Denver. Colorado

Re: Error linking against lapack.a library

Postby denismpa » Mon Nov 10, 2008 5:29 pm

Sure!

there we go:

I have tried in several ways:
ifort -autodouble -o a.out mappingx.f90 -L /opt/intel/mkl/9.0/lib/em64t/ /opt/intel/mkl/9.0/lib/em64t/libmkl_lapack.a -lguide -lpthread

ifort -o a1.out mappingx1.f90 -L ~denismpa/lapack-3.1.1-novo/lapack_LINUX.a
ifort mappingx1.f90 -L ~denismpa/lapack-3.1.1/lapack.a
ifort mappingx1.f90 -L ~denismpa/lapack-3.1.1/lapackem64t.a
denismpa
 
Posts: 4
Joined: Mon Nov 10, 2008 4:55 pm

Re: Error linking against lapack.a library

Postby denismpa » Wed Nov 12, 2008 11:14 am

Does anybody have any clue about this topic?
denismpa
 
Posts: 4
Joined: Mon Nov 10, 2008 4:55 pm

Re: Error linking against lapack.a library

Postby flygaoonly » Wed Nov 12, 2008 11:49 am

try this command:

ifort yourprogram.f90 -L /opt/intel/mkl/9.0/lib/em64t/ -lmkl_lapack -lguide -lmkl -lpthread
flygaoonly
 
Posts: 8
Joined: Thu Oct 23, 2008 1:23 pm

Re: Error linking against lapack.a library

Postby denismpa » Thu Nov 27, 2008 7:32 am

flygaoonly wrote:try this command:

ifort yourprogram.f90 -L /opt/intel/mkl/9.0/lib/em64t/ -lmkl_lapack -lguide -lmkl -lpthread


Hello, buddy!

That has solved my compilation problem and now I see what was wrong!
Thank you very much!
Denis.
denismpa
 
Posts: 4
Joined: Mon Nov 10, 2008 4:55 pm


Return to User Discussion

Who is online

Users browsing this forum: No registered users and 7 guests