|
|
@ -73,19 +73,19 @@ contains
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
real(psb_dpk_) :: b1
|
|
|
|
real(psb_dpk_) :: b1
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
b1=dzero/sqrt((3*done))
|
|
|
|
b1=dzero
|
|
|
|
end function b1
|
|
|
|
end function b1
|
|
|
|
function b2(x,y,z)
|
|
|
|
function b2(x,y,z)
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
real(psb_dpk_) :: b2
|
|
|
|
real(psb_dpk_) :: b2
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
b2=dzero/sqrt((3*done))
|
|
|
|
b2=dzero
|
|
|
|
end function b2
|
|
|
|
end function b2
|
|
|
|
function b3(x,y,z)
|
|
|
|
function b3(x,y,z)
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
real(psb_dpk_) :: b3
|
|
|
|
real(psb_dpk_) :: b3
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
b3=dzero/sqrt((3*done))
|
|
|
|
b3=dzero
|
|
|
|
end function b3
|
|
|
|
end function b3
|
|
|
|
function c(x,y,z)
|
|
|
|
function c(x,y,z)
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
@ -97,19 +97,19 @@ contains
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
real(psb_dpk_) :: a1
|
|
|
|
real(psb_dpk_) :: a1
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
a1=done!/80
|
|
|
|
a1=done
|
|
|
|
end function a1
|
|
|
|
end function a1
|
|
|
|
function a2(x,y,z)
|
|
|
|
function a2(x,y,z)
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
real(psb_dpk_) :: a2
|
|
|
|
real(psb_dpk_) :: a2
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
a2=done!/80
|
|
|
|
a2=done
|
|
|
|
end function a2
|
|
|
|
end function a2
|
|
|
|
function a3(x,y,z)
|
|
|
|
function a3(x,y,z)
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
real(psb_dpk_) :: a3
|
|
|
|
real(psb_dpk_) :: a3
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
real(psb_dpk_), intent(in) :: x,y,z
|
|
|
|
a3=done!/80
|
|
|
|
a3=done
|
|
|
|
end function a3
|
|
|
|
end function a3
|
|
|
|
function g(x,y,z)
|
|
|
|
function g(x,y,z)
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
|
use psb_base_mod, only : psb_dpk_,done,dzero
|
|
|
@ -635,25 +635,4 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine get_parms
|
|
|
|
end subroutine get_parms
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
! print an error message
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
subroutine pr_usage(iout)
|
|
|
|
|
|
|
|
integer(psb_ipk_) :: iout
|
|
|
|
|
|
|
|
write(iout,*)'incorrect parameter(s) found'
|
|
|
|
|
|
|
|
write(iout,*)' usage: mld_d_pde3d methd prec dim &
|
|
|
|
|
|
|
|
&[istop itmax itrace]'
|
|
|
|
|
|
|
|
write(iout,*)' where:'
|
|
|
|
|
|
|
|
write(iout,*)' methd: cgstab cgs rgmres bicgstabl'
|
|
|
|
|
|
|
|
write(iout,*)' prec : bjac diag none'
|
|
|
|
|
|
|
|
write(iout,*)' dim number of points along each axis'
|
|
|
|
|
|
|
|
write(iout,*)' the size of the resulting linear '
|
|
|
|
|
|
|
|
write(iout,*)' system is dim**3'
|
|
|
|
|
|
|
|
write(iout,*)' istop stopping criterion 1, 2 '
|
|
|
|
|
|
|
|
write(iout,*)' itmax maximum number of iterations [500] '
|
|
|
|
|
|
|
|
write(iout,*)' itrace <=0 (no tracing, default) or '
|
|
|
|
|
|
|
|
write(iout,*)' >= 1 do tracing every itrace'
|
|
|
|
|
|
|
|
write(iout,*)' iterations '
|
|
|
|
|
|
|
|
end subroutine pr_usage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end program mld_d_pde3d
|
|
|
|
end program mld_d_pde3d
|
|
|
|