From eddf493ae9be5e24bdb13b9cc426037f035b2163 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 25 Aug 2009 14:53:00 +0000 Subject: [PATCH] psblas3: base/Makefile base/comm/psb_chalo.f90 base/comm/psb_dhalo.f90 base/comm/psb_shalo.f90 base/comm/psb_zhalo.f90 base/modules/Makefile base/newserial/psbn_coo_mat.f03 base/newserial/psbn_d_base_mat_mod.f03 base/psblas/psb_casum.f90 base/psblas/psb_caxpby.f90 base/psblas/psb_cdot.f90 base/psblas/psb_cnrm2.f90 base/psblas/psb_dasum.f90 base/psblas/psb_daxpby.f90 base/psblas/psb_ddot.f90 base/psblas/psb_dnrm2.f90 base/psblas/psb_sasum.f90 base/psblas/psb_saxpby.f90 base/psblas/psb_sdot.f90 base/psblas/psb_snrm2.f90 base/psblas/psb_zasum.f90 base/psblas/psb_zaxpby.f90 base/psblas/psb_zdot.f90 base/psblas/psb_znrm2.f90 base/serial/dp/Makefile base/serial/f77/ccsmm.f base/serial/f77/scsmm.f configure.ac configure Fixes for the handling of interface mismatch in the NAG compiler: use -wmismatch=mpi_gather.... and save mismatch_all just for psb_penv and psb_blacs. This enabled discovery of a number of minor (and not so minor) errors.. Still waiting to hear about the bugs in F2003 mode. --- base/Makefile | 2 +- base/comm/psb_chalo.f90 | 2 +- base/comm/psb_dhalo.f90 | 2 +- base/comm/psb_shalo.f90 | 2 +- base/comm/psb_zhalo.f90 | 2 +- base/modules/Makefile | 12 +++++++----- base/newserial/psbn_coo_mat.f03 | 2 -- base/newserial/psbn_d_base_mat_mod.f03 | 8 ++++---- base/psblas/psb_casum.f90 | 2 +- base/psblas/psb_caxpby.f90 | 4 ++-- base/psblas/psb_cdot.f90 | 4 ++-- base/psblas/psb_cnrm2.f90 | 2 +- base/psblas/psb_dasum.f90 | 2 +- base/psblas/psb_daxpby.f90 | 4 ++-- base/psblas/psb_ddot.f90 | 4 ++-- base/psblas/psb_dnrm2.f90 | 2 +- base/psblas/psb_sasum.f90 | 2 +- base/psblas/psb_saxpby.f90 | 4 ++-- base/psblas/psb_sdot.f90 | 4 ++-- base/psblas/psb_snrm2.f90 | 2 +- base/psblas/psb_zasum.f90 | 2 +- base/psblas/psb_zaxpby.f90 | 4 ++-- base/psblas/psb_zdot.f90 | 4 ++-- base/psblas/psb_znrm2.f90 | 2 +- base/serial/dp/Makefile | 15 ++++++++++----- base/serial/f77/ccsmm.f | 8 ++++---- base/serial/f77/scsmm.f | 8 ++++---- configure | 4 ++-- configure.ac | 4 ++-- 29 files changed, 62 insertions(+), 57 deletions(-) diff --git a/base/Makefile b/base/Makefile index a2cb604f..ac3edb53 100644 --- a/base/Makefile +++ b/base/Makefile @@ -7,11 +7,11 @@ LIBMOD=psb_base_mod$(.mod) lib: (cd modules; make lib LIBNAME=$(BASELIBNAME) F90=$(MPF90) F90COPT="$(F90COPT) $(MPI_OPT)") (cd serial; make lib LIBNAME=$(BASELIBNAME)) - (cd newserial; make lib LIBNAME=$(BASELIBNAME) ) (cd comm; make lib LIBNAME=$(BASELIBNAME)) (cd internals; make lib LIBNAME=$(BASELIBNAME)) (cd tools; make lib LIBNAME=$(BASELIBNAME)) (cd psblas; make lib LIBNAME=$(BASELIBNAME)) + (cd newserial; make lib LIBNAME=$(BASELIBNAME) ) /bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR) /bin/cp -p $(LIBMOD) *$(.mod) $(LIBDIR) diff --git a/base/comm/psb_chalo.f90 b/base/comm/psb_chalo.f90 index 60a3a2a4..626b09b8 100644 --- a/base/comm/psb_chalo.f90 +++ b/base/comm/psb_chalo.f90 @@ -156,7 +156,7 @@ subroutine psb_chalom(x,desc_a,info,alpha,jx,ik,work,tran,mode,data) if(present(alpha)) then if(alpha /= 1.d0) then do i=0, k-1 - call zscal(nrow,alpha,x(1,jjx+i),1) + call zscal(nrow,alpha,x(:,jjx+i),1) end do end if end if diff --git a/base/comm/psb_dhalo.f90 b/base/comm/psb_dhalo.f90 index 300c6bc6..732e9493 100644 --- a/base/comm/psb_dhalo.f90 +++ b/base/comm/psb_dhalo.f90 @@ -158,7 +158,7 @@ subroutine psb_dhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode,data) if(present(alpha)) then if(alpha /= 1.d0) then do i=0, k-1 - call dscal(nrow,alpha,x(1,jjx+i),1) + call dscal(nrow,alpha,x(:,jjx+i),1) end do end if end if diff --git a/base/comm/psb_shalo.f90 b/base/comm/psb_shalo.f90 index 47dcee89..80733352 100644 --- a/base/comm/psb_shalo.f90 +++ b/base/comm/psb_shalo.f90 @@ -158,7 +158,7 @@ subroutine psb_shalom(x,desc_a,info,alpha,jx,ik,work,tran,mode,data) if(present(alpha)) then if(alpha /= 1.d0) then do i=0, k-1 - call dscal(nrow,alpha,x(1,jjx+i),1) + call dscal(nrow,alpha,x(:,jjx+i),1) end do end if end if diff --git a/base/comm/psb_zhalo.f90 b/base/comm/psb_zhalo.f90 index 4d4c94c1..36635beb 100644 --- a/base/comm/psb_zhalo.f90 +++ b/base/comm/psb_zhalo.f90 @@ -156,7 +156,7 @@ subroutine psb_zhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode,data) if(present(alpha)) then if(alpha /= 1.d0) then do i=0, k-1 - call zscal(nrow,alpha,x(1,jjx+i),1) + call zscal(nrow,alpha,x(:,jjx+i),1) end do end if end if diff --git a/base/modules/Makefile b/base/modules/Makefile index 33d3c576..494d594c 100644 --- a/base/modules/Makefile +++ b/base/modules/Makefile @@ -1,12 +1,14 @@ include ../../Make.inc -MODULES = psb_realloc_mod.o psb_string_mod.o psb_spmat_type.o \ +BASIC_MODS= psb_const_mod.o psb_error_mod.o psb_realloc_mod.o +UTIL_MODS = psb_string_mod.o psb_spmat_type.o \ psb_desc_type.o psb_sort_mod.o psb_penv_mod.o \ psb_serial_mod.o psb_tools_mod.o psb_blacs_mod.o \ - psb_error_mod.o psb_const_mod.o psb_linmap_type_mod.o \ - psb_comm_mod.o psb_psblas_mod.o psi_serial_mod.o psi_mod.o \ + psb_linmap_type_mod.o psb_comm_mod.o psb_psblas_mod.o \ + psi_serial_mod.o psi_mod.o \ psb_check_mod.o psb_gps_mod.o psb_linmap_mod.o psb_hash_mod.o +MODULES=$(BASIC_MODS) $(UTIL_MODS) LIBMOD=psb_base_mod$(.mod) OBJS = error.o psb_base_mod.o $(EXTRA_COBJS) cutil.o @@ -15,7 +17,7 @@ CINCLUDES=-I. FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG). $(FIFLAG). -lib: blacsmod $(MODULES) $(OBJS) $(LIBMOD) +lib: $(BASIC_MODS) blacsmod $(UTIL_MODS) $(OBJS) $(LIBMOD) $(AR) $(LIBDIR)/$(LIBNAME) $(MODULES) $(OBJS) $(MPFOBJS) $(RANLIB) $(LIBDIR)/$(LIBNAME) /bin/cp -p $(LIBMOD) $(LIBDIR) @@ -43,7 +45,7 @@ psb_base_mod.o: $(MODULES) blacsmod: - (make psb_blacs_mod.o F90COPT="$(F90COPT) $(EXTRA_OPT)") + (make psb_blacs_mod.o psb_penv_mod.o F90COPT="$(F90COPT) $(EXTRA_OPT)") clean: diff --git a/base/newserial/psbn_coo_mat.f03 b/base/newserial/psbn_coo_mat.f03 index 4f300f94..c3da01b5 100644 --- a/base/newserial/psbn_coo_mat.f03 +++ b/base/newserial/psbn_coo_mat.f03 @@ -5,8 +5,6 @@ module psbn_d_coo_sparse_mat_mod type, extends(psbn_d_base_sparse_mat) :: psbn_d_coo_sparse_mat integer :: nnz - logical :: sorted - integer, allocatable :: ia(:), ja(:) real(psb_dpk_), allocatable :: val(:) diff --git a/base/newserial/psbn_d_base_mat_mod.f03 b/base/newserial/psbn_d_base_mat_mod.f03 index 3aa762b5..6e1fab84 100644 --- a/base/newserial/psbn_d_base_mat_mod.f03 +++ b/base/newserial/psbn_d_base_mat_mod.f03 @@ -100,8 +100,8 @@ contains subroutine d_base_cssm(alpha,a,x,beta,y,info,trans) use psb_error_mod class(psbn_d_base_sparse_mat), intent(in) :: a - real(kind(1.d0)), intent(in) :: alpha, beta, x(:,:) - real(kind(1.d0)), intent(inout) :: y(:,:) + real(psb_dpk_), intent(in) :: alpha, beta, x(:,:) + real(psb_dpk_), intent(inout) :: y(:,:) integer, intent(out) :: info character, optional, intent(in) :: trans @@ -126,8 +126,8 @@ contains subroutine d_base_cssv(alpha,a,x,beta,y,info,trans) use psb_error_mod class(psbn_d_base_sparse_mat), intent(in) :: a - real(kind(1.d0)), intent(in) :: alpha, beta, x(:) - real(kind(1.d0)), intent(inout) :: y(:) + real(psb_dpk_), intent(in) :: alpha, beta, x(:) + real(psb_dpk_), intent(inout) :: y(:) integer, intent(out) :: info character, optional, intent(in) :: trans diff --git a/base/psblas/psb_casum.f90 b/base/psblas/psb_casum.f90 index feedd873..76409cf3 100644 --- a/base/psblas/psb_casum.f90 +++ b/base/psblas/psb_casum.f90 @@ -112,7 +112,7 @@ function psb_casum (x,desc_a, info, jx) ! compute local max if ((m /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then - asum=scasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix,jjx),ione) + asum=scasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix:,jjx),ione) ! adjust asum because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_caxpby.f90 b/base/psblas/psb_caxpby.f90 index 9ec74bf1..ae44b60a 100644 --- a/base/psblas/psb_caxpby.f90 +++ b/base/psblas/psb_caxpby.f90 @@ -136,8 +136,8 @@ subroutine psb_caxpby(alpha, x, beta,y,desc_a,info, n, jx, jy) if ((in /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then call caxpby(psb_cd_get_local_cols(desc_a),in,& - & alpha,x(iix,jjx),size(x,1),beta,& - & y(iiy,jjy),size(y,1),info) + & alpha,x(iix:,jjx),size(x,1),beta,& + & y(iiy:,jjy),size(y,1),info) end if end if diff --git a/base/psblas/psb_cdot.f90 b/base/psblas/psb_cdot.f90 index 1de1d383..e4db4f97 100644 --- a/base/psblas/psb_cdot.f90 +++ b/base/psblas/psb_cdot.f90 @@ -123,7 +123,7 @@ function psb_cdot(x, y,desc_a, info, jx, jy) if(m /= 0) then if(psb_cd_get_local_rows(desc_a) > 0) then dot_local = cdotc(psb_cd_get_local_rows(desc_a),& - & x(iix,jjx),ione,y(iiy,jjy),ione) + & x(iix:,jjx),ione,y(iiy:,jjy),ione) ! adjust dot_local because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) idx = desc_a%ovrlap_elem(i,1) @@ -540,7 +540,7 @@ subroutine psb_cmdots(res, x, y, desc_a, info) if(psb_cd_get_local_rows(desc_a) > 0) then do j=1,k dot_local(j) = cdotc(psb_cd_get_local_rows(desc_a),& - & x(1,j),ione,y(1,j),ione) + & x(1:,j),ione,y(1:,j),ione) ! adjust dot_local because overlapped elements are computed more than once end do do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_cnrm2.f90 b/base/psblas/psb_cnrm2.f90 index fa99510e..cd75a2dc 100644 --- a/base/psblas/psb_cnrm2.f90 +++ b/base/psblas/psb_cnrm2.f90 @@ -103,7 +103,7 @@ function psb_cnrm2(x, desc_a, info, jx) if(m /= 0) then if (psb_cd_get_local_rows(desc_a) > 0) then ndim = psb_cd_get_local_rows(desc_a) - nrm2 = scnrm2( ndim, x(iix,jjx), ione ) + nrm2 = scnrm2( ndim, x(iix:,jjx), ione ) ! adjust because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_dasum.f90 b/base/psblas/psb_dasum.f90 index ab1df8d9..01c5072f 100644 --- a/base/psblas/psb_dasum.f90 +++ b/base/psblas/psb_dasum.f90 @@ -108,7 +108,7 @@ function psb_dasum (x,desc_a, info, jx) ! compute local max if ((m /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then - asum=dasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix,jjx),ione) + asum=dasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix:,jjx),ione) ! adjust asum because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_daxpby.f90 b/base/psblas/psb_daxpby.f90 index c4890913..7c817a74 100644 --- a/base/psblas/psb_daxpby.f90 +++ b/base/psblas/psb_daxpby.f90 @@ -137,8 +137,8 @@ subroutine psb_daxpby(alpha, x, beta,y,desc_a,info, n, jx, jy) if ((in /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then call daxpby(psb_cd_get_local_rows(desc_a),in,& - & alpha,x(iix,jjx),size(x,1),beta,& - & y(iiy,jjy),size(y,1),info) + & alpha,x(iix:,jjx),size(x,1),beta,& + & y(iiy:,jjy),size(y,1),info) end if end if diff --git a/base/psblas/psb_ddot.f90 b/base/psblas/psb_ddot.f90 index cc2735bf..2516e221 100644 --- a/base/psblas/psb_ddot.f90 +++ b/base/psblas/psb_ddot.f90 @@ -123,7 +123,7 @@ function psb_ddot(x, y,desc_a, info, jx, jy) if(m /= 0) then if(psb_cd_get_local_rows(desc_a) > 0) then dot_local = ddot(psb_cd_get_local_rows(desc_a),& - & x(iix,jjx),ione,y(iiy,jjy),ione) + & x(iix:,jjx),ione,y(iiy:,jjy),ione) ! adjust dot_local because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) idx = desc_a%ovrlap_elem(i,1) @@ -540,7 +540,7 @@ subroutine psb_dmdots(res, x, y, desc_a, info) if(psb_cd_get_local_rows(desc_a) > 0) then do j=1,k dot_local(j) = ddot(psb_cd_get_local_rows(desc_a),& - & x(1,j),ione,y(1,j),ione) + & x(1:,j),ione,y(1:,j),ione) ! adjust dot_local because overlapped elements are computed more than once end do do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_dnrm2.f90 b/base/psblas/psb_dnrm2.f90 index 90705f04..34a77b76 100644 --- a/base/psblas/psb_dnrm2.f90 +++ b/base/psblas/psb_dnrm2.f90 @@ -102,7 +102,7 @@ function psb_dnrm2(x, desc_a, info, jx) if(m /= 0) then if (psb_cd_get_local_rows(desc_a) > 0) then ndim = psb_cd_get_local_rows(desc_a) - nrm2 = dnrm2( ndim, x(iix,jjx), ione ) + nrm2 = dnrm2( ndim, x(iix:,jjx), ione ) ! adjust because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_sasum.f90 b/base/psblas/psb_sasum.f90 index 0d1620f0..d7deb8cc 100644 --- a/base/psblas/psb_sasum.f90 +++ b/base/psblas/psb_sasum.f90 @@ -108,7 +108,7 @@ function psb_sasum (x,desc_a, info, jx) ! compute local max if ((m /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then - asum=sasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix,jjx),ione) + asum=sasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix:,jjx),ione) ! adjust asum because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_saxpby.f90 b/base/psblas/psb_saxpby.f90 index 79966c13..b2abd8b1 100644 --- a/base/psblas/psb_saxpby.f90 +++ b/base/psblas/psb_saxpby.f90 @@ -137,8 +137,8 @@ subroutine psb_saxpby(alpha, x, beta,y,desc_a,info, n, jx, jy) if ((in /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then call saxpby(psb_cd_get_local_rows(desc_a),in,& - & alpha,x(iix,jjx),size(x,1),beta,& - & y(iiy,jjy),size(y,1),info) + & alpha,x(iix:,jjx),size(x,1),beta,& + & y(iiy:,jjy),size(y,1),info) end if end if diff --git a/base/psblas/psb_sdot.f90 b/base/psblas/psb_sdot.f90 index 40a1e06c..61e32caa 100644 --- a/base/psblas/psb_sdot.f90 +++ b/base/psblas/psb_sdot.f90 @@ -123,7 +123,7 @@ function psb_sdot(x, y,desc_a, info, jx, jy) if(m /= 0) then if(psb_cd_get_local_rows(desc_a) > 0) then dot_local = sdot(psb_cd_get_local_rows(desc_a),& - & x(iix,jjx),ione,y(iiy,jjy),ione) + & x(iix:,jjx),ione,y(iiy:,jjy),ione) ! adjust dot_local because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) idx = desc_a%ovrlap_elem(i,1) @@ -540,7 +540,7 @@ subroutine psb_smdots(res, x, y, desc_a, info) if(psb_cd_get_local_rows(desc_a) > 0) then do j=1,k dot_local(j) = sdot(psb_cd_get_local_rows(desc_a),& - & x(1,j),ione,y(1,j),ione) + & x(1:,j),ione,y(1:,j),ione) ! adjust dot_local because overlapped elements are computed more than once end do do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_snrm2.f90 b/base/psblas/psb_snrm2.f90 index b4311859..ddf636c0 100644 --- a/base/psblas/psb_snrm2.f90 +++ b/base/psblas/psb_snrm2.f90 @@ -102,7 +102,7 @@ function psb_snrm2(x, desc_a, info, jx) if(m /= 0) then if (psb_cd_get_local_rows(desc_a) > 0) then ndim = psb_cd_get_local_rows(desc_a) - nrm2 = snrm2( ndim, x(iix,jjx), ione ) + nrm2 = snrm2( ndim, x(iix:,jjx), ione ) ! adjust because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_zasum.f90 b/base/psblas/psb_zasum.f90 index 62f27ab1..b99b822f 100644 --- a/base/psblas/psb_zasum.f90 +++ b/base/psblas/psb_zasum.f90 @@ -112,7 +112,7 @@ function psb_zasum (x,desc_a, info, jx) ! compute local max if ((m /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then - asum=dzasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix,jjx),ione) + asum=dzasum(psb_cd_get_local_rows(desc_a)-iix+1,x(iix:,jjx),ione) ! adjust asum because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_zaxpby.f90 b/base/psblas/psb_zaxpby.f90 index f575df60..a55b82a9 100644 --- a/base/psblas/psb_zaxpby.f90 +++ b/base/psblas/psb_zaxpby.f90 @@ -136,8 +136,8 @@ subroutine psb_zaxpby(alpha, x, beta,y,desc_a,info, n, jx, jy) if ((in /= 0)) then if(psb_cd_get_local_rows(desc_a) > 0) then call zaxpby(psb_cd_get_local_cols(desc_a),in,& - & alpha,x(iix,jjx),size(x,1),beta,& - & y(iiy,jjy),size(y,1),info) + & alpha,x(iix:,jjx),size(x,1),beta,& + & y(iiy:,jjy),size(y,1),info) end if end if diff --git a/base/psblas/psb_zdot.f90 b/base/psblas/psb_zdot.f90 index 94e110a8..bbe0adad 100644 --- a/base/psblas/psb_zdot.f90 +++ b/base/psblas/psb_zdot.f90 @@ -123,7 +123,7 @@ function psb_zdot(x, y,desc_a, info, jx, jy) if(m /= 0) then if(psb_cd_get_local_rows(desc_a) > 0) then dot_local = zdotc(psb_cd_get_local_rows(desc_a),& - & x(iix,jjx),ione,y(iiy,jjy),ione) + & x(iix:,jjx),ione,y(iiy:,jjy),ione) ! adjust dot_local because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) idx = desc_a%ovrlap_elem(i,1) @@ -540,7 +540,7 @@ subroutine psb_zmdots(res, x, y, desc_a, info) if(psb_cd_get_local_rows(desc_a) > 0) then do j=1,k dot_local(j) = zdotc(psb_cd_get_local_rows(desc_a),& - & x(1,j),ione,y(1,j),ione) + & x(1:,j),ione,y(1:,j),ione) ! adjust dot_local because overlapped elements are computed more than once end do do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/psblas/psb_znrm2.f90 b/base/psblas/psb_znrm2.f90 index 4bc0d6aa..2e6ab524 100644 --- a/base/psblas/psb_znrm2.f90 +++ b/base/psblas/psb_znrm2.f90 @@ -103,7 +103,7 @@ function psb_znrm2(x, desc_a, info, jx) if(m /= 0) then if (psb_cd_get_local_rows(desc_a) > 0) then ndim = psb_cd_get_local_rows(desc_a) - nrm2 = dznrm2( ndim, x(iix,jjx), ione ) + nrm2 = dznrm2( ndim, x(iix:,jjx), ione ) ! adjust because overlapped elements are computed more than once do i=1,size(desc_a%ovrlap_elem,1) diff --git a/base/serial/dp/Makefile b/base/serial/dp/Makefile index a1cdd750..7594c686 100644 --- a/base/serial/dp/Makefile +++ b/base/serial/dp/Makefile @@ -3,13 +3,15 @@ include ../../../Make.inc # The object files # -FOBJS = dcrcr.o dcrjd.o dgblock.o partition.o \ +XOBJS = scrjd.o dcrjd.o ccrjd.o zcrjd.o +FOBJS = dcrcr.o dgblock.o partition.o \ dgindex.o djadrp.o djadrp1.o dcsrrp.o dcsrp1.o check_dim.o \ Max_nnzero.o dcoco.o dcocr.o dcrco.o djdcox.o djdco.o dvtfg.o dgind_tri.o \ gen_block.o\ - scrjd.o scrco.o scrcr.o scocr.o scoco.o sgindex.o sgind_tri.o\ - ccoco.o ccocr.o ccrco.o ccrcr.o ccrjd.o cgindex.o cgind_tri.o\ - zcoco.o zcocr.o zcrco.o zcrcr.o zcrjd.o zgindex.o zgind_tri.o + scrco.o scrcr.o scocr.o scoco.o sgindex.o sgind_tri.o\ + ccoco.o ccocr.o ccrco.o ccrcr.o cgindex.o cgind_tri.o\ + zcoco.o zcocr.o zcrco.o zcrcr.o zgindex.o zgind_tri.o\ + $(XOBJS) # # dgind_tri.o @@ -34,10 +36,13 @@ LIBFILE=$(LIBDIR)/$(LIBNAME) # -lib: $(FOBJS) +lib: xobjs $(FOBJS) $(AR) $(LIBDIR)/$(LIBNAME) $(OBJS) $(RANLIB) $(LIBDIR)/$(LIBNAME) +xobjs: + (make $(XOBJS) FCOPT="$(FCOPT) $(EXTRA_OPT)") + clean: cleanobjs veryclean: cleanobjs diff --git a/base/serial/f77/ccsmm.f b/base/serial/f77/ccsmm.f index e867a852..686eb85f 100644 --- a/base/serial/f77/ccsmm.f +++ b/base/serial/f77/ccsmm.f @@ -296,9 +296,9 @@ C C Both right and left permutation required C P=LWORKB+1 - CALL CLPUPD(K,N,PR,B,LDB,ZZERO,WORK,K) + CALL CLPUPD(K,N,PR,B,LDB,CZERO,WORK,K) CALL CSWMM(TRANS,M,N,K,ALPHA,FIDA,DESCRA,A,IA1,IA2,INFOA, - & WORK,K,ZZERO,WORK(P),M,WORK(P+LWORKC),LWORKS,IERROR) + & WORK,K,CZERO,WORK(P),M,WORK(P+LWORKC),LWORKS,IERROR) LWORKS = INT(REAL(WORK(P+LWORKC))) IF(IERROR .NE. 0) THEN IF (IERROR.EQ.3010) THEN @@ -313,7 +313,7 @@ C C Only right permutation required C P=LWORKB+1 - CALL CLPUPD(K,N,PR,B,LDB,ZZERO,WORK,K) + CALL CLPUPD(K,N,PR,B,LDB,CZERO,WORK,K) CALL CSWMM(TRANS,M,N,K,ALPHA,FIDA,DESCRA,A,IA1,IA2,INFOA, & WORK,K,BETA,C,LDC,WORK(P),LWORKS,IERROR) LWORKS = INT(REAL(WORK(P))) @@ -330,7 +330,7 @@ C Only left permutation required C P=LWORKC+1 CALL CSWMM(TRANS,M,N,K,ALPHA,FIDA,DESCRA,A,IA1,IA2,INFOA, - & B,LDB,ZZERO,WORK,M,WORK(P),LWORKS,IERROR) + & B,LDB,CZERO,WORK,M,WORK(P),LWORKS,IERROR) LWORKS = INT(REAL(WORK(P))) IF(IERROR .NE. 0) THEN IF (IERROR.EQ.3010) THEN diff --git a/base/serial/f77/scsmm.f b/base/serial/f77/scsmm.f index f3880c16..4489a904 100644 --- a/base/serial/f77/scsmm.f +++ b/base/serial/f77/scsmm.f @@ -297,9 +297,9 @@ C C Both right and left permutation required C P=LWORKB+1 - CALL SLPUPD(K,N,PR,B,LDB,DZERO,WORK,K) + CALL SLPUPD(K,N,PR,B,LDB,SZERO,WORK,K) CALL SSWMM(TRANS,M,N,K,ALPHA,FIDA,DESCRA,A,IA1,IA2,INFOA, - & WORK,K,DZERO,WORK(P),M,WORK(P+LWORKC),LWORKS,IERROR) + & WORK,K,SZERO,WORK(P),M,WORK(P+LWORKC),LWORKS,IERROR) LWORKS = INT(WORK(P+LWORKC)) IF(IERROR .NE. 0) THEN IERROR=4011 @@ -312,7 +312,7 @@ C C Only right permutation required C P=LWORKB+1 - CALL SLPUPD(K,N,PR,B,LDB,DZERO,WORK,K) + CALL SLPUPD(K,N,PR,B,LDB,SZERO,WORK,K) CALL SSWMM(TRANS,M,N,K,ALPHA,FIDA,DESCRA,A,IA1,IA2,INFOA, & WORK,K,BETA,C,LDC,WORK(P),LWORKS,IERROR) LWORKS = INT(WORK(P)) @@ -327,7 +327,7 @@ C Only left permutation required C P=LWORKC+1 CALL SSWMM(TRANS,M,N,K,ALPHA,FIDA,DESCRA,A,IA1,IA2,INFOA, - & B,LDB,DZERO,WORK,M,WORK(P),LWORKS,IERROR) + & B,LDB,SZERO,WORK,M,WORK(P),LWORKS,IERROR) LWORKS = INT(WORK(P)) IF(IERROR .NE. 0) THEN IERROR=4011 diff --git a/configure b/configure index 2f33e10d..38140f9f 100755 --- a/configure +++ b/configure @@ -7119,7 +7119,7 @@ if test "X$FCOPT" == "X" ; then fi if test "X$psblas_cv_fc" == X"nag" ; then # Add needed options - FCOPT="$FCOPT -mismatch -dcfuns -f2003" + FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv" fi FFLAGS="${FCOPT}" @@ -7152,7 +7152,7 @@ else fi if test "X$psblas_cv_fc" == X"nag" ; then # Add needed options - F90COPT="$F90COPT -mismatch -dcfuns -f2003" + F90COPT="$F90COPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv" EXTRA_OPT="-mismatch_all" F03COPT="${F90COPT}" else diff --git a/configure.ac b/configure.ac index 3ae65447..a97731b4 100755 --- a/configure.ac +++ b/configure.ac @@ -399,7 +399,7 @@ if test "X$FCOPT" == "X" ; then fi if test "X$psblas_cv_fc" == X"nag" ; then # Add needed options - FCOPT="$FCOPT -mismatch -dcfuns -f2003" + FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv" fi FFLAGS="${FCOPT}" @@ -432,7 +432,7 @@ else fi if test "X$psblas_cv_fc" == X"nag" ; then # Add needed options - F90COPT="$F90COPT -mismatch -dcfuns -f2003" + F90COPT="$F90COPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv" EXTRA_OPT="-mismatch_all" F03COPT="${F90COPT}" else