-
Notifications
You must be signed in to change notification settings - Fork 185
Description
At #1371, I've suggested to use linker trick to wrap BLAS/LAPACK calls into NEWLAPACK library for framework Accelerate.
There is a list of lines (single per routine) where changes in BLAS/LAPACK interfaces with bind(C will not work in xtb project. It is only a part of problem, since other dependencies also needs to be adjusted in this way.
Line 170 in 65ca106
| external dgemm ! I hope you know what you are doing... |
Line 482 in 65ca106
| call dsysv('u', m, 1, Atmp, m, ipiv, Xtmp, m, test, -1, info) |
Line 858 in 65ca106
| call dsysv('u', m, 1, Atmp, m, ipiv, Xtmp, m, test, -1, info) |
Line 1172 in 65ca106
| call dsysv('u', m, 1, Atmp, m, ipiv, Xtmp, m, test, -1, info) |
Line 1289 in 65ca106
| call dgemm('n','n',3*mol%n,mol%n,m,-1.0_wp,dAmatdr,3*mol%n,Ainv,m, & |
Line 440 in 65ca106
| call dsysv('l', ndim, 1, mat, ndim, ipiv, ptr, ndim, test, -1, info) |
Line 83 in 65ca106
| call dpotrf('U',ndim,U,ndim,ierr) !LAPACK routine A = U**T*U |
Line 549 in 65ca106
| call dgemv('n',9,mol%n,1.0_wp,dcndL,9,dhdcn,1,1.0_wp,sigma,1) |
Line 47 in 65ca106
| external :: dsymm, dgemm ! can't use wrappers due to change of leading dim |
Line 47 in 65ca106
| external :: dsymm, dgemm ! can't use wrappers due to change of leading dim |
Line 270 in 65ca106
| CALL dgemm('N','N',nao,n,n,1.D0,cca,nao,d,n,0.D0,tmp_cmo,nao) ! non-std BLAS |
Line 346 in 65ca106
| call dgemv('n', 3*nat, nat, 1.0_wp, dcndr, 3*nat, dEdcn, 1, 1.0_wp, gradient, 1) |
Line 376 in 65ca106
| call ssyev ('V','U',nat3_cur,mini_hess,nat3_cur,eig,aux,lwork,info) |
Line 395 in 65ca106
| call dsyev ('V','U',n3,res%hess,n3,res%freq,aux,lwork,info) |
Line 48 in 65ca106
| real(wp) :: ddot, thrs, scal, damp, dampO,dampD,thr |
Line 131 in 65ca106
| real(wp) :: ddot, thrs, scal, damp, dampO,dampD |
Line 139 in 65ca106
| call dspmv('u',nat3,1.0d0,hess,dx,1,0.0d0,tvec,1) |
Line 1899 in 65ca106
| call dsysv('u', m, 1, Atmp, m, ipiv, Xtmp, m, test, -1, info) |
Line 1958 in 65ca106
| call dsytrf('L',m,Ainv,m,ipiv,test,-1,info) |
Line 1973 in 65ca106
| call dsytri('L',m,Ainv,m,ipiv,work,info) |
Line 1989 in 65ca106
| call dgemm('n','n',3*n,m,m,-1.0_wp,dAmat,3*n,Ainv,m,1.0_wp,dqdr,3*n) |
Line 472 in 65ca106
| call dgemv('n',self%n3,self%nvar,1.0_wp,self%B,self%n3,self%coord,1,0.0_wp,displ_cartesian,1) ! B * coord |
Line 500 in 65ca106
| call dgemv('t',self%n3,self%nvar,1.0_wp,self%B,self%n3,array_form,1,0.0_wp,g_normal,1) |
Line 710 in 65ca106
| real(wp) :: lambda,gnorm,dnorm,ddot,eold,xdum,estart,acc,e_in |
Line 724 in 65ca106
| real(sp) :: r4dum,sdot |
Line 809 in 65ca106
| call dgemv('t',anc%n3,anc%nvar,1.0_wp,anc%B,anc%n3,g,1,0.0_wp,gint,1) |
Line 1140 in 65ca106
| real(wp), external :: ddot |
Line 833 in 65ca106
| real(wp), external :: ddot |
Line 965 in 65ca106
| real(sp), external :: sdot |
Line 971 in 65ca106
| real(wp), external :: ddot |
Line 995 in 65ca106
| call dgemv('t',3*mol%n,nvar,1.0_wp,trafo,3*mol%n,g_xyz,1,0.0_wp,g_anc,1) |
Line 1240 in 65ca106
| real(wp), external :: ddot |
Line 1309 in 65ca106
| call dspmv('u',3*mol%n,1.0_wp,hessp,velocities,1,0.0_wp,scratch,1) |
Line 1502 in 65ca106
| real(wp), external :: ddot |
Line 1505 in 65ca106
| call dspmv('u',nat3,0.5_wp,hess,displ,1,0.0_wp,hdx,1) |
Line 1554 in 65ca106
| call dsysv('u',nvar,1,htmp,nvar,ipiv,pinvg,nvar,test,-1,info) |
Line 88 in 65ca106
| real(wp) de_min,grad_min,e_ed,e_pr,de,ddot,gthr |
Line 862 in 65ca106
| real(wp) :: dum, ddot |
Line 53 in 65ca106
| call dsyev ('V','U',ndim,A,ndim,e,aux,lwork,info) |
Line 59 in 65ca106
| call DSYGVD(1,'V','U',ndim,A,ndim,S,ndim,e,aux, & !workspace query |