Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixes for NAG natfor #1

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 0 additions & 50 deletions complex16/second.F

This file was deleted.

36 changes: 18 additions & 18 deletions complex16/zblasext.F
Original file line number Diff line number Diff line change
Expand Up @@ -450,14 +450,14 @@ subroutine pzdaxpby(n,alpha,x,incx,beta,y,incy)
c$OMP PARALLEL DO schedule(static)
#endif
do i=1,n
y(i) = dcmplx(zero,zero)
y(i) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
else
#ifdef _OPENMP
c$OMP PARALLEL DO firstprivate(incy) schedule(static)
#endif
do i=1,n
y(1+(i-1)*incy) = dcmplx(zero,zero)
y(1+(i-1)*incy) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
endif

Expand Down Expand Up @@ -530,31 +530,31 @@ subroutine pzaxpby(n,alpha,x,incx,beta,y,incy)
complex*16 alpha,beta,x(n),y(n)

if (n.le.0 .or. incy.eq.0 .or. incx.eq.0) return
if (alpha.eq.dcmplx(zero,zero) .and.
c beta.eq.dcmplx(zero,zero)) then
if (alpha.eq.cmplx(zero,zero,Kind=Kind(0d0)) .and.
c beta.eq.cmplx(zero,zero,Kind=Kind(0d0))) then
if (incy.eq.1) then
#ifdef _OPENMP
c$OMP PARALLEL DO schedule(static)
#endif
do i=1,n
y(i) = dcmplx(zero,zero)
y(i) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
else
#ifdef _OPENMP
c$OMP PARALLEL DO firstprivate(incy) schedule(static)
#endif
do i=1,n
y(1+(i-1)*incy) = dcmplx(zero,zero)
y(1+(i-1)*incy) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
endif

else if (alpha.eq.dcmplx(zero,zero) .and.
c beta.ne.dcmplx(zero,zero)) then
else if (alpha.eq.cmplx(zero,zero,Kind=Kind(0d0)).and.
c beta.ne.cmplx(zero,zero,Kind=Kind(0d0))) then

call pzscal(n,beta,y,incy)

else if (alpha.ne.dcmplx(zero,zero) .and.
c beta.eq.dcmplx(zero,zero)) then
else if (alpha.ne.cmplx(zero,zero,Kind=Kind(0d0)) .and.
c beta.eq.cmplx(zero,zero,Kind=Kind(0d0))) then

if (alpha.eq.one) then
call pzcopy(n,x,incx,y,incy)
Expand Down Expand Up @@ -623,24 +623,24 @@ subroutine pzaxty(n,alpha,x,incx,y,incy)
complex*16 alpha,x(n),y(n)

if (n.le.0 .or. incy.eq.0 .or. incx.eq.0) return
if (alpha.eq.dcmplx(zero,zero)) then
if (alpha.eq.cmplx(zero,zero,Kind=Kind(0d0))) then
if (incy.eq.1) then
#ifdef _OPENMP
c$OMP PARALLEL DO schedule(static)
#endif
do i=1,n
y(i) = dcmplx(zero,zero)
y(i) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
else
#ifdef _OPENMP
c$OMP PARALLEL DO firstprivate(incy) schedule(static)
#endif
do i=1,n
y(1+(i-1)*incy) = dcmplx(zero,zero)
y(1+(i-1)*incy) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
endif

else if (alpha.ne.dcmplx(zero,zero)) then
else if (alpha.ne.cmplx(zero,zero,Kind=Kind(0d0))) then

if (alpha.eq.one) then
if (incx.eq.1 .and. incy.eq.1) then
Expand Down Expand Up @@ -701,14 +701,14 @@ subroutine pzdaxty(n,alpha,x,incx,y,incy)
c$OMP PARALLEL DO schedule(static)
#endif
do i=1,n
y(i) = dcmplx(zero,zero)
y(i) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
else
#ifdef _OPENMP
c$OMP PARALLEL DO firstprivate(incy) schedule(static)
#endif
do i=1,n
y(1+(i-1)*incy) = dcmplx(zero,zero)
y(1+(i-1)*incy) = cmplx(zero,zero,Kind=Kind(0d0))
enddo
endif

Expand Down Expand Up @@ -768,11 +768,11 @@ subroutine zzero(n, x , incx)
if ((n.gt.0).and.(incx.ne.0)) then
if (incx.eq.1) then
do i=1,n
x(i) = dcmplx(0d0,0d0)
x(i) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
else
do i=1,n
x(1+(i-1)*incx) = dcmplx(0d0,0d0)
x(1+(i-1)*incx) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
endif
endif
Expand Down
55 changes: 30 additions & 25 deletions complex16/zgemm_ovwr.F
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ subroutine zdgemm(transb,m,n,k,A,lda,B,ldb,C,ldc)

do i=1,m
do j=1,n
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
do l=1,k
Expand All @@ -73,8 +73,8 @@ subroutine zdgemmblk(A,lda,B,ldb,C,ldc)
do l=1,blksz
do j=1,blksz
do i=1,blksz
C(i,j) = dcmplx(dreal(A(i,l))*B(j,l)+dreal(C(i,j)),
c dimag(A(i,l))*B(j,l)+dimag(C(i,j)))
C(i,j) = cmplx(real(A(i,l))*B(j,l)+real(C(i,j)),
c aimag(A(i,l))*B(j,l)+aimag(C(i,j)), Kind=Kind(0d0))
enddo
enddo
enddo
Expand Down Expand Up @@ -119,7 +119,7 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
if (lblk.eq.1) then
do j=jblk,jblk+blksz-1
do i=iblk,iblk+blksz-1
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
endif
Expand All @@ -132,17 +132,18 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
if (lblk.eq.1) then
do j=jblk,jblk+blksz-1
do i=iblk,m
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
endif
do l=lblk,lblk+blksz-1
do j=jblk,jblk+blksz-1
btmp = B(j,l)
do i=iblk,m
C(i,j) = dcmplx(
c dreal(A(i,l))*btmp+dreal(C(i,j)),
c dimag(A(i,l))*btmp+dimag(C(i,j)))
C(i,j) = cmplx(
c real(A(i,l))*btmp+real(C(i,j)),
c aimag(A(i,l))*btmp+aimag(C(i,j)),
c Kind=Kind(0d0))
enddo
enddo
enddo
Expand All @@ -153,17 +154,18 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
if (lblk.eq.1) then
do j=jblk,n
do i=1,m
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
endif
do l=lblk,lblk+blksz-1
do j=jblk,n
btmp = B(j,l)
do i=1,m
C(i,j) = dcmplx(
c dreal(A(i,l))*btmp+dreal(C(i,j)),
c dimag(A(i,l))*btmp+dimag(C(i,j)))
C(i,j) = cmplx(
c real(A(i,l))*btmp+real(C(i,j)),
c aimag(A(i,l))*btmp+aimag(C(i,j)),
c Kind=Kind(0d0))
enddo
enddo
enddo
Expand All @@ -175,7 +177,7 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
if (l.eq.1) then
do j=1,n
do i=1,m
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
endif
Expand All @@ -184,27 +186,30 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
do j=jblk,jblk+blksz-1
btmp = B(j,l)
do i=iblk,iblk+blksz-1
C(i,j) = dcmplx(
c dreal(A(i,l))*btmp+dreal(C(i,j)),
c dimag(A(i,l))*btmp+dimag(C(i,j)))
C(i,j) = cmplx(
c real(A(i,l))*btmp+real(C(i,j)),
c aimag(A(i,l))*btmp+aimag(C(i,j)),
c Kind=Kind(0d0))
enddo
enddo
enddo
do j=jblk,jblk+blksz-1
btmp = B(j,l)
do i=iblk,m
C(i,j) = dcmplx(
c dreal(A(i,l))*btmp+dreal(C(i,j)),
c dimag(A(i,l))*btmp+dimag(C(i,j)))
C(i,j) = cmplx(
c real(A(i,l))*btmp+real(C(i,j)),
c aimag(A(i,l))*btmp+aimag(C(i,j)),
c Kind=Kind(0d0))
enddo
enddo
enddo
do j=jblk,n
btmp = B(j,l)
do i=1,m
C(i,j) = dcmplx(
c dreal(A(i,l))*btmp+dreal(C(i,j)),
c dimag(A(i,l))*btmp+dimag(C(i,j)))
C(i,j) = cmplx(
c real(A(i,l))*btmp+real(C(i,j)),
c aimag(A(i,l))*btmp+aimag(C(i,j)),
c Kind=Kind(0d0))
enddo
enddo
enddo
Expand All @@ -217,7 +222,7 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
do jblk=1,n-blksz+1,blksz
do j=1,blksz
do i=1,blksz
CC(i,j) = dcmplx(0d0,0d0)
CC(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
do j=1,blksz
Expand All @@ -235,7 +240,7 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
enddo
do j=jblk,n
do i=iblk,iblk+blksz-1
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
c
Expand All @@ -251,7 +256,7 @@ subroutine zdgemm1(transb,m,n,k,A,lda,B,ldb,C,ldc)
enddo
do j=1,n
do i=iblk,m
C(i,j) = dcmplx(0d0,0d0)
C(i,j) = cmplx(0d0,0d0,Kind=Kind(0d0))
enddo
enddo
c
Expand Down
4 changes: 2 additions & 2 deletions complex16/zmgs.pentium.F
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ subroutine zmgs(n,k,V,ldv,vnew,index)
do while(p.le.k .and.p .gt.0 .and. p.le.q)
ndot = ndot + (q-p+1)
do i=p,q
s = dcmplx(0d0,0d0)
s = cmplx(0d0,0d0,Kind=Kind(0d0))
CDIR$ LOOP COUNT(10000)
#ifdef _OPENMP
c$OMP PARALLEL DO reduction(+:s)
#endif
do j=1,n
s = s + dconjg(V(j,i))*vnew(j)
s = s + conjg(V(j,i))*vnew(j)
enddo
CDIR$ LOOP COUNT(10000)
#ifdef _OPENMP
Expand Down
8 changes: 4 additions & 4 deletions complex16/zreorth.F
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ subroutine zcgs(n,k,V,ldv,vnew,index,work)
if (tid.eq.nt-1) then
cnk = n-st+1
endif
call zgemv('C',cnk,l,dcmplx(1d0,0d0),V(st,p),ld,vnew(st),1,
c dcmplx(0d0,0d0),ylocal,1)
call zgemv('C',cnk,l,cmplx(1d0,0d0,Kind=Kind(0d0)),V(st,p),
c ld,vnew(st),1,cmplx(0d0,0d0,Kind=Kind(0d0)),ylocal,1)

if (tid.eq.0) then
do j=1,l
Expand All @@ -196,8 +196,8 @@ subroutine zcgs(n,k,V,ldv,vnew,index,work)
#ifdef _OPENMP
c$OMP BARRIER
#endif
call zgemv('N',cnk,l,dcmplx(-1d0,0d0),V(st,p),ld,work,1,
c dcmplx(0d0,0d0),ylocal,1)
call zgemv('N',cnk,l,cmplx(-1d0,0d0,Kind=Kind(0d0)),V(st,p),
c ld,work,1,cmplx(0d0,0d0,Kind=Kind(0d0)),ylocal,1)
do j=1,cnk
vnew(st+j-1) = vnew(st+j-1) + ylocal(j)
enddo
Expand Down
Loading