mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Another round of name/copyright fixes.
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -35,9 +35,9 @@
|
||||
! POSSIBILITY OF SUCH DAMAGE.
|
||||
!
|
||||
!
|
||||
program mld_cf_sample
|
||||
program amg_cf_sample
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
@@ -124,7 +124,7 @@ program mld_cf_sample
|
||||
type(psb_cspmat_type) :: a, aux_a
|
||||
|
||||
! preconditioner data
|
||||
type(mld_cprec_type) :: prec
|
||||
type(amg_cprec_type) :: prec
|
||||
! dense matrices
|
||||
complex(psb_spk_), allocatable, target :: aux_b(:,:), d(:), aux_g(:,:), aux_x(:,:)
|
||||
complex(psb_spk_), allocatable , save :: x_col_glob(:), r_col_glob(:)
|
||||
@@ -165,7 +165,7 @@ program mld_cf_sample
|
||||
endif
|
||||
|
||||
|
||||
name='mld_cf_sample'
|
||||
name='amg_cf_sample'
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
info=psb_success_
|
||||
call psb_set_errverbosity(itwo)
|
||||
@@ -174,7 +174,7 @@ program mld_cf_sample
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(psb_out_unit,*) ' '
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(psb_out_unit,*) 'This is the ',trim(name),' sample test program'
|
||||
write(psb_out_unit,*) ' '
|
||||
end if
|
||||
@@ -457,7 +457,7 @@ program mld_cf_sample
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -465,7 +465,7 @@ program mld_cf_sample
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -756,4 +756,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_cf_sample
|
||||
end program amg_cf_sample
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -35,9 +35,9 @@
|
||||
! POSSIBILITY OF SUCH DAMAGE.
|
||||
!
|
||||
!
|
||||
program mld_df_sample
|
||||
program amg_df_sample
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
@@ -124,7 +124,7 @@ program mld_df_sample
|
||||
type(psb_dspmat_type) :: a, aux_a
|
||||
|
||||
! preconditioner data
|
||||
type(mld_dprec_type) :: prec
|
||||
type(amg_dprec_type) :: prec
|
||||
! dense matrices
|
||||
real(psb_dpk_), allocatable, target :: aux_b(:,:), d(:), aux_g(:,:), aux_x(:,:)
|
||||
real(psb_dpk_), allocatable , save :: x_col_glob(:), r_col_glob(:)
|
||||
@@ -165,7 +165,7 @@ program mld_df_sample
|
||||
endif
|
||||
|
||||
|
||||
name='mld_df_sample'
|
||||
name='amg_df_sample'
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
info=psb_success_
|
||||
call psb_set_errverbosity(itwo)
|
||||
@@ -174,7 +174,7 @@ program mld_df_sample
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(psb_out_unit,*) ' '
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(psb_out_unit,*) 'This is the ',trim(name),' sample test program'
|
||||
write(psb_out_unit,*) ' '
|
||||
end if
|
||||
@@ -457,7 +457,7 @@ program mld_df_sample
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -465,7 +465,7 @@ program mld_df_sample
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -756,4 +756,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_df_sample
|
||||
end program amg_df_sample
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -35,9 +35,9 @@
|
||||
! POSSIBILITY OF SUCH DAMAGE.
|
||||
!
|
||||
!
|
||||
program mld_sf_sample
|
||||
program amg_sf_sample
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
@@ -124,7 +124,7 @@ program mld_sf_sample
|
||||
type(psb_sspmat_type) :: a, aux_a
|
||||
|
||||
! preconditioner data
|
||||
type(mld_sprec_type) :: prec
|
||||
type(amg_sprec_type) :: prec
|
||||
! dense matrices
|
||||
real(psb_spk_), allocatable, target :: aux_b(:,:), d(:), aux_g(:,:), aux_x(:,:)
|
||||
real(psb_spk_), allocatable , save :: x_col_glob(:), r_col_glob(:)
|
||||
@@ -165,7 +165,7 @@ program mld_sf_sample
|
||||
endif
|
||||
|
||||
|
||||
name='mld_sf_sample'
|
||||
name='amg_sf_sample'
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
info=psb_success_
|
||||
call psb_set_errverbosity(itwo)
|
||||
@@ -174,7 +174,7 @@ program mld_sf_sample
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(psb_out_unit,*) ' '
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(psb_out_unit,*) 'This is the ',trim(name),' sample test program'
|
||||
write(psb_out_unit,*) ' '
|
||||
end if
|
||||
@@ -457,7 +457,7 @@ program mld_sf_sample
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -465,7 +465,7 @@ program mld_sf_sample
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -756,4 +756,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_sf_sample
|
||||
end program amg_sf_sample
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -35,9 +35,9 @@
|
||||
! POSSIBILITY OF SUCH DAMAGE.
|
||||
!
|
||||
!
|
||||
program mld_zf_sample
|
||||
program amg_zf_sample
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
@@ -124,7 +124,7 @@ program mld_zf_sample
|
||||
type(psb_zspmat_type) :: a, aux_a
|
||||
|
||||
! preconditioner data
|
||||
type(mld_zprec_type) :: prec
|
||||
type(amg_zprec_type) :: prec
|
||||
! dense matrices
|
||||
complex(psb_dpk_), allocatable, target :: aux_b(:,:), d(:), aux_g(:,:), aux_x(:,:)
|
||||
complex(psb_dpk_), allocatable , save :: x_col_glob(:), r_col_glob(:)
|
||||
@@ -165,7 +165,7 @@ program mld_zf_sample
|
||||
endif
|
||||
|
||||
|
||||
name='mld_zf_sample'
|
||||
name='amg_zf_sample'
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
info=psb_success_
|
||||
call psb_set_errverbosity(itwo)
|
||||
@@ -174,7 +174,7 @@ program mld_zf_sample
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(psb_out_unit,*) ' '
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(psb_out_unit,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(psb_out_unit,*) 'This is the ',trim(name),' sample test program'
|
||||
write(psb_out_unit,*) ' '
|
||||
end if
|
||||
@@ -457,7 +457,7 @@ program mld_zf_sample
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -465,7 +465,7 @@ program mld_zf_sample
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -756,4 +756,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_zf_sample
|
||||
end program amg_zf_sample
|
||||
|
||||
+23
-23
@@ -1,40 +1,40 @@
|
||||
MLDDIR=../..
|
||||
MLDINCDIR=$(MLDDIR)/include
|
||||
include $(MLDINCDIR)/Make.inc.mld2p4
|
||||
MLDMODDIR=$(MLDDIR)/modules
|
||||
MLDLIBDIR=$(MLDDIR)/lib
|
||||
MLD_LIBS=-L$(MLDLIBDIR) -lpsb_krylov -lmld_prec -lpsb_prec
|
||||
FINCLUDES=$(FMFLAG). $(FMFLAG)$(MLDMODDIR) $(FMFLAG)$(MLDINCDIR) $(PSBLAS_INCLUDES) $(FIFLAG).
|
||||
AMGDIR=../..
|
||||
AMGINCDIR=$(AMGDIR)/include
|
||||
include $(AMGINCDIR)/Make.inc.mld2p4
|
||||
AMGMODDIR=$(AMGDIR)/modules
|
||||
AMGLIBDIR=$(AMGDIR)/lib
|
||||
AMG_LIBS=-L$(AMGLIBDIR) -lpsb_krylov -lamg_prec -lpsb_prec
|
||||
FINCLUDES=$(FMFLAG). $(FMFLAG)$(AMGMODDIR) $(FMFLAG)$(AMGINCDIR) $(PSBLAS_INCLUDES) $(FIFLAG).
|
||||
|
||||
LINKOPT=
|
||||
EXEDIR=./runs
|
||||
|
||||
all: mld_s_pde3d mld_d_pde3d mld_s_pde2d mld_d_pde2d
|
||||
all: amg_s_pde3d amg_d_pde3d amg_s_pde2d amg_d_pde2d
|
||||
|
||||
mld_d_pde3d: mld_d_pde3d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) mld_d_pde3d.o data_input.o -o mld_d_pde3d $(MLD_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv mld_d_pde3d $(EXEDIR)
|
||||
amg_d_pde3d: amg_d_pde3d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) amg_d_pde3d.o data_input.o -o amg_d_pde3d $(AMG_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv amg_d_pde3d $(EXEDIR)
|
||||
|
||||
mld_s_pde3d: mld_s_pde3d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) mld_s_pde3d.o data_input.o -o mld_s_pde3d $(MLD_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv mld_s_pde3d $(EXEDIR)
|
||||
amg_s_pde3d: amg_s_pde3d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) amg_s_pde3d.o data_input.o -o amg_s_pde3d $(AMG_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv amg_s_pde3d $(EXEDIR)
|
||||
|
||||
mld_d_pde2d: mld_d_pde2d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) mld_d_pde2d.o data_input.o -o mld_d_pde2d $(MLD_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv mld_d_pde2d $(EXEDIR)
|
||||
amg_d_pde2d: amg_d_pde2d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) amg_d_pde2d.o data_input.o -o amg_d_pde2d $(AMG_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv amg_d_pde2d $(EXEDIR)
|
||||
|
||||
mld_s_pde2d: mld_s_pde2d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) mld_s_pde2d.o data_input.o -o mld_s_pde2d $(MLD_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv mld_s_pde2d $(EXEDIR)
|
||||
amg_s_pde2d: amg_s_pde2d.o data_input.o
|
||||
$(FLINK) $(LINKOPT) amg_s_pde2d.o data_input.o -o amg_s_pde2d $(AMG_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
|
||||
/bin/mv amg_s_pde2d $(EXEDIR)
|
||||
|
||||
mld_d_pde3d.o mld_s_pde3d.o mld_d_pde2d.o mld_s_pde2d.o: data_input.o
|
||||
amg_d_pde3d.o amg_s_pde3d.o amg_d_pde2d.o amg_s_pde2d.o: data_input.o
|
||||
|
||||
check: all
|
||||
cd runs && ./mld_d_pde2d <mld_pde2d.inp && ./mld_s_pde2d<mld_pde2d.inp
|
||||
cd runs && ./amg_d_pde2d <amg_pde2d.inp && ./amg_s_pde2d<amg_pde2d.inp
|
||||
|
||||
|
||||
clean:
|
||||
/bin/rm -f data_input.o mld_d_pde3d.o mld_s_pde3d.o mld_d_pde2d.o mld_s_pde2d.o *$(.mod)\
|
||||
/bin/rm -f data_input.o amg_d_pde3d.o amg_s_pde3d.o amg_d_pde2d.o amg_s_pde2d.o *$(.mod)\
|
||||
$(EXEDIR)/mld_d_pde3d $(EXEDIR)/mld_s_pde3d $(EXEDIR)/mld_d_pde2d $(EXEDIR)/mld_s_pde2d
|
||||
|
||||
verycleanlib:
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -35,9 +35,9 @@
|
||||
! POSSIBILITY OF SUCH DAMAGE.
|
||||
!
|
||||
!
|
||||
! File: mld_d_pde2d.f90
|
||||
! File: amg_d_pde2d.f90
|
||||
!
|
||||
! Program: mld_d_pde2d
|
||||
! Program: amg_d_pde2d
|
||||
! This sample program solves a linear system obtained by discretizing a
|
||||
! PDE with Dirichlet BCs.
|
||||
!
|
||||
@@ -63,7 +63,7 @@
|
||||
! 3. A 2D distribution in which the unit square is partitioned
|
||||
! into rectangles, each one assigned to a process.
|
||||
!
|
||||
module mld_d_pde2d_mod
|
||||
module amg_d_pde2d_mod
|
||||
use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_desc_type,&
|
||||
& psb_dspmat_type, psb_d_vect_type, dzero,&
|
||||
& psb_d_base_sparse_mat, psb_d_base_vect_type, psb_i_base_vect_type
|
||||
@@ -76,9 +76,9 @@ module mld_d_pde2d_mod
|
||||
end function d_func_2d
|
||||
end interface
|
||||
|
||||
interface mld_gen_pde2d
|
||||
module procedure mld_d_gen_pde2d
|
||||
end interface mld_gen_pde2d
|
||||
interface amg_gen_pde2d
|
||||
module procedure amg_d_gen_pde2d
|
||||
end interface amg_gen_pde2d
|
||||
contains
|
||||
|
||||
function d_null_func_2d(x,y) result(val)
|
||||
@@ -156,7 +156,7 @@ contains
|
||||
! subroutine to allocate and fill in the coefficient matrix and
|
||||
! the rhs.
|
||||
!
|
||||
subroutine mld_d_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
subroutine amg_d_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
& f,amold,vmold,imold,partition,nrl,iv)
|
||||
use psb_base_mod
|
||||
use psb_util_mod
|
||||
@@ -530,18 +530,18 @@ contains
|
||||
9999 call psb_error_handler(ictxt,err_act)
|
||||
|
||||
return
|
||||
end subroutine mld_d_gen_pde2d
|
||||
end subroutine amg_d_gen_pde2d
|
||||
|
||||
end module mld_d_pde2d_mod
|
||||
end module amg_d_pde2d_mod
|
||||
|
||||
|
||||
program mld_d_pde2d
|
||||
program amg_d_pde2d
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
use mld_d_pde2d_mod
|
||||
use amg_d_pde2d_mod
|
||||
implicit none
|
||||
|
||||
! input parameters
|
||||
@@ -555,7 +555,7 @@ program mld_d_pde2d
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_dspmat_type) :: a
|
||||
type(mld_dprec_type) :: prec
|
||||
type(amg_dprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
! dense vectors
|
||||
@@ -655,13 +655,13 @@ program mld_d_pde2d
|
||||
stop
|
||||
endif
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
name='mld_d_pde2d'
|
||||
name='amg_d_pde2d'
|
||||
call psb_set_errverbosity(itwo)
|
||||
!
|
||||
! Hello world
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(*,*) 'This is the ',trim(name),' sample program'
|
||||
end if
|
||||
|
||||
@@ -675,12 +675,12 @@ program mld_d_pde2d
|
||||
!
|
||||
call psb_barrier(ictxt)
|
||||
t1 = psb_wtime()
|
||||
call mld_gen_pde2d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call amg_gen_pde2d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call psb_barrier(ictxt)
|
||||
t2 = psb_wtime() - t1
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='mld_gen_pde2d'
|
||||
ch_err='amg_gen_pde2d'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
@@ -788,7 +788,7 @@ program mld_d_pde2d
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -796,7 +796,7 @@ program mld_d_pde2d
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -1053,4 +1053,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_d_pde2d
|
||||
end program amg_d_pde2d
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -36,9 +36,9 @@
|
||||
!
|
||||
!
|
||||
!
|
||||
! File: mld_d_pde3d.f90
|
||||
! File: amg_d_pde3d.f90
|
||||
!
|
||||
! Program: mld_d_pde3d
|
||||
! Program: amg_d_pde3d
|
||||
! This sample program solves a linear system obtained by discretizing a
|
||||
! PDE with Dirichlet BCs.
|
||||
!
|
||||
@@ -64,7 +64,7 @@
|
||||
! 3. A 3D distribution in which the unit cube is partitioned
|
||||
! into subcubes, each one assigned to a process.
|
||||
!
|
||||
module mld_d_pde3d_mod
|
||||
module amg_d_pde3d_mod
|
||||
use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_lpk_, psb_desc_type,&
|
||||
& psb_dspmat_type, psb_d_vect_type, dzero,&
|
||||
& psb_d_base_sparse_mat, psb_d_base_vect_type, &
|
||||
@@ -78,9 +78,9 @@ module mld_d_pde3d_mod
|
||||
end function d_func_3d
|
||||
end interface
|
||||
|
||||
interface mld_gen_pde3d
|
||||
module procedure mld_d_gen_pde3d
|
||||
end interface mld_gen_pde3d
|
||||
interface amg_gen_pde3d
|
||||
module procedure amg_d_gen_pde3d
|
||||
end interface amg_gen_pde3d
|
||||
|
||||
|
||||
contains
|
||||
@@ -173,7 +173,7 @@ contains
|
||||
! subroutine to allocate and fill in the coefficient matrix and
|
||||
! the rhs.
|
||||
!
|
||||
subroutine mld_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
subroutine amg_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
& f,amold,vmold,imold,partition,nrl,iv)
|
||||
use psb_base_mod
|
||||
use psb_util_mod
|
||||
@@ -571,17 +571,17 @@ contains
|
||||
9999 call psb_error_handler(ictxt,err_act)
|
||||
|
||||
return
|
||||
end subroutine mld_d_gen_pde3d
|
||||
end subroutine amg_d_gen_pde3d
|
||||
|
||||
end module mld_d_pde3d_mod
|
||||
end module amg_d_pde3d_mod
|
||||
|
||||
program mld_d_pde3d
|
||||
program amg_d_pde3d
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
use mld_d_pde3d_mod
|
||||
use amg_d_pde3d_mod
|
||||
implicit none
|
||||
|
||||
! input parameters
|
||||
@@ -595,7 +595,7 @@ program mld_d_pde3d
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_dspmat_type) :: a
|
||||
type(mld_dprec_type) :: prec
|
||||
type(amg_dprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
! dense vectors
|
||||
@@ -695,13 +695,13 @@ program mld_d_pde3d
|
||||
stop
|
||||
endif
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
name='mld_d_pde3d'
|
||||
name='amg_d_pde3d'
|
||||
call psb_set_errverbosity(itwo)
|
||||
!
|
||||
! Hello world
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(*,*) 'This is the ',trim(name),' sample program'
|
||||
end if
|
||||
|
||||
@@ -716,12 +716,12 @@ program mld_d_pde3d
|
||||
|
||||
call psb_barrier(ictxt)
|
||||
t1 = psb_wtime()
|
||||
call mld_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call psb_barrier(ictxt)
|
||||
t2 = psb_wtime() - t1
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='mld_gen_pde3d'
|
||||
ch_err='amg_gen_pde3d'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
@@ -829,7 +829,7 @@ program mld_d_pde3d
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -837,7 +837,7 @@ program mld_d_pde3d
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -1094,4 +1094,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_d_pde3d
|
||||
end program amg_d_pde3d
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -35,9 +35,9 @@
|
||||
! POSSIBILITY OF SUCH DAMAGE.
|
||||
!
|
||||
!
|
||||
! File: mld_s_pde2d.f90
|
||||
! File: amg_s_pde2d.f90
|
||||
!
|
||||
! Program: mld_s_pde2d
|
||||
! Program: amg_s_pde2d
|
||||
! This sample program solves a linear system obtained by discretizing a
|
||||
! PDE with Dirichlet BCs.
|
||||
!
|
||||
@@ -63,7 +63,7 @@
|
||||
! 3. A 2D distribution in which the unit square is partitioned
|
||||
! into rectangles, each one assigned to a process.
|
||||
!
|
||||
module mld_s_pde2d_mod
|
||||
module amg_s_pde2d_mod
|
||||
use psb_base_mod, only : psb_spk_, psb_ipk_, psb_desc_type,&
|
||||
& psb_sspmat_type, psb_s_vect_type, szero,&
|
||||
& psb_s_base_sparse_mat, psb_s_base_vect_type, psb_i_base_vect_type
|
||||
@@ -76,9 +76,9 @@ module mld_s_pde2d_mod
|
||||
end function s_func_2d
|
||||
end interface
|
||||
|
||||
interface mld_gen_pde2d
|
||||
module procedure mld_s_gen_pde2d
|
||||
end interface mld_gen_pde2d
|
||||
interface amg_gen_pde2d
|
||||
module procedure amg_s_gen_pde2d
|
||||
end interface amg_gen_pde2d
|
||||
contains
|
||||
|
||||
function s_null_func_2d(x,y) result(val)
|
||||
@@ -156,7 +156,7 @@ contains
|
||||
! subroutine to allocate and fill in the coefficient matrix and
|
||||
! the rhs.
|
||||
!
|
||||
subroutine mld_s_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
subroutine amg_s_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
& f,amold,vmold,imold,partition,nrl,iv)
|
||||
use psb_base_mod
|
||||
use psb_util_mod
|
||||
@@ -530,18 +530,18 @@ contains
|
||||
9999 call psb_error_handler(ictxt,err_act)
|
||||
|
||||
return
|
||||
end subroutine mld_s_gen_pde2d
|
||||
end subroutine amg_s_gen_pde2d
|
||||
|
||||
end module mld_s_pde2d_mod
|
||||
end module amg_s_pde2d_mod
|
||||
|
||||
|
||||
program mld_s_pde2d
|
||||
program amg_s_pde2d
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
use mld_s_pde2d_mod
|
||||
use amg_s_pde2d_mod
|
||||
implicit none
|
||||
|
||||
! input parameters
|
||||
@@ -555,7 +555,7 @@ program mld_s_pde2d
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_sspmat_type) :: a
|
||||
type(mld_sprec_type) :: prec
|
||||
type(amg_sprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
! dense vectors
|
||||
@@ -655,13 +655,13 @@ program mld_s_pde2d
|
||||
stop
|
||||
endif
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
name='mld_s_pde2d'
|
||||
name='amg_s_pde2d'
|
||||
call psb_set_errverbosity(itwo)
|
||||
!
|
||||
! Hello world
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(*,*) 'This is the ',trim(name),' sample program'
|
||||
end if
|
||||
|
||||
@@ -675,12 +675,12 @@ program mld_s_pde2d
|
||||
!
|
||||
call psb_barrier(ictxt)
|
||||
t1 = psb_wtime()
|
||||
call mld_gen_pde2d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call amg_gen_pde2d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call psb_barrier(ictxt)
|
||||
t2 = psb_wtime() - t1
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='mld_gen_pde2d'
|
||||
ch_err='amg_gen_pde2d'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
@@ -788,7 +788,7 @@ program mld_s_pde2d
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -796,7 +796,7 @@ program mld_s_pde2d
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -1053,4 +1053,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_s_pde2d
|
||||
end program amg_s_pde2d
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
!
|
||||
!
|
||||
! MLD2P4 version 2.2
|
||||
! MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
! AMG4PSBLAS version 1.0
|
||||
! Algebraic Multigrid Package
|
||||
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
!
|
||||
! (C) Copyright 2008-2018
|
||||
! (C) Copyright 2020
|
||||
!
|
||||
! Salvatore Filippone
|
||||
! Pasqua D'Ambra
|
||||
! Daniela di Serafino
|
||||
! Fabio Durastante
|
||||
!
|
||||
! Redistribution and use in source and binary forms, with or without
|
||||
! modification, are permitted provided that the following conditions
|
||||
@@ -18,14 +18,14 @@
|
||||
! 2. Redistributions in binary form must reproduce the above copyright
|
||||
! notice, this list of conditions, and the following disclaimer in the
|
||||
! documentation and/or other materials provided with the distribution.
|
||||
! 3. The name of the MLD2P4 group or the names of its contributors may
|
||||
! 3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
! not be used to endorse or promote products derived from this
|
||||
! software without specific written permission.
|
||||
!
|
||||
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
@@ -36,9 +36,9 @@
|
||||
!
|
||||
!
|
||||
!
|
||||
! File: mld_s_pde3d.f90
|
||||
! File: amg_s_pde3d.f90
|
||||
!
|
||||
! Program: mld_s_pde3d
|
||||
! Program: amg_s_pde3d
|
||||
! This sample program solves a linear system obtained by discretizing a
|
||||
! PDE with Dirichlet BCs.
|
||||
!
|
||||
@@ -64,7 +64,7 @@
|
||||
! 3. A 3D distribution in which the unit cube is partitioned
|
||||
! into subcubes, each one assigned to a process.
|
||||
!
|
||||
module mld_s_pde3d_mod
|
||||
module amg_s_pde3d_mod
|
||||
use psb_base_mod, only : psb_spk_, psb_ipk_, psb_lpk_, psb_desc_type,&
|
||||
& psb_sspmat_type, psb_s_vect_type, szero,&
|
||||
& psb_s_base_sparse_mat, psb_s_base_vect_type, &
|
||||
@@ -78,9 +78,9 @@ module mld_s_pde3d_mod
|
||||
end function s_func_3d
|
||||
end interface
|
||||
|
||||
interface mld_gen_pde3d
|
||||
module procedure mld_s_gen_pde3d
|
||||
end interface mld_gen_pde3d
|
||||
interface amg_gen_pde3d
|
||||
module procedure amg_s_gen_pde3d
|
||||
end interface amg_gen_pde3d
|
||||
|
||||
|
||||
contains
|
||||
@@ -173,7 +173,7 @@ contains
|
||||
! subroutine to allocate and fill in the coefficient matrix and
|
||||
! the rhs.
|
||||
!
|
||||
subroutine mld_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
subroutine amg_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,&
|
||||
& f,amold,vmold,imold,partition,nrl,iv)
|
||||
use psb_base_mod
|
||||
use psb_util_mod
|
||||
@@ -571,17 +571,17 @@ contains
|
||||
9999 call psb_error_handler(ictxt,err_act)
|
||||
|
||||
return
|
||||
end subroutine mld_s_gen_pde3d
|
||||
end subroutine amg_s_gen_pde3d
|
||||
|
||||
end module mld_s_pde3d_mod
|
||||
end module amg_s_pde3d_mod
|
||||
|
||||
program mld_s_pde3d
|
||||
program amg_s_pde3d
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use amg_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psb_util_mod
|
||||
use data_input
|
||||
use mld_s_pde3d_mod
|
||||
use amg_s_pde3d_mod
|
||||
implicit none
|
||||
|
||||
! input parameters
|
||||
@@ -595,7 +595,7 @@ program mld_s_pde3d
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_sspmat_type) :: a
|
||||
type(mld_sprec_type) :: prec
|
||||
type(amg_sprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
! dense vectors
|
||||
@@ -695,13 +695,13 @@ program mld_s_pde3d
|
||||
stop
|
||||
endif
|
||||
if(psb_get_errstatus() /= 0) goto 9999
|
||||
name='mld_s_pde3d'
|
||||
name='amg_s_pde3d'
|
||||
call psb_set_errverbosity(itwo)
|
||||
!
|
||||
! Hello world
|
||||
!
|
||||
if (iam == psb_root_) then
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',mld_version_string_
|
||||
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_
|
||||
write(*,*) 'This is the ',trim(name),' sample program'
|
||||
end if
|
||||
|
||||
@@ -716,12 +716,12 @@ program mld_s_pde3d
|
||||
|
||||
call psb_barrier(ictxt)
|
||||
t1 = psb_wtime()
|
||||
call mld_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call amg_gen_pde3d(ictxt,idim,a,b,x,desc_a,afmt,info)
|
||||
call psb_barrier(ictxt)
|
||||
t2 = psb_wtime() - t1
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='mld_gen_pde3d'
|
||||
ch_err='amg_gen_pde3d'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
@@ -829,7 +829,7 @@ program mld_s_pde3d
|
||||
call prec%hierarchy_build(a,desc_a,info)
|
||||
thier = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_hierarchy_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_hierarchy_bld')
|
||||
goto 9999
|
||||
end if
|
||||
call psb_barrier(ictxt)
|
||||
@@ -837,7 +837,7 @@ program mld_s_pde3d
|
||||
call prec%smoothers_build(a,desc_a,info)
|
||||
tprec = psb_wtime()-t1
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='mld_smoothers_bld')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_smoothers_bld')
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
@@ -1094,4 +1094,4 @@ contains
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
end program mld_s_pde3d
|
||||
end program amg_s_pde3d
|
||||
|
||||
Reference in New Issue
Block a user