subroutine lenhmz2
! Variables
integer, intent(in) :: n1
integer, intent(in) :: m1
integer, intent(in) :: mx
integer, intent(in) :: init
integer, intent(in) :: flag1
integer, intent(in) :: flag2
integer, intent(in) :: fdim1
integer, intent(in) :: fdim2
double precision, intent(in) :: rm
double precision, intent(in) :: beta
double precision, intent(in), dimension (0:mx) :: aa
double precision, intent(in), dimension (0:mx) :: ww
double precision, intent(in), dimension (fdim1,fdim1) :: e1
double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2
double precision, intent(in), dimension (fdim1) :: w1
double precision, intent(in), dimension (fdim1-flag1) :: w2
double precision, intent(inout), dimension (0:n1,0:m1) :: u
double precision, intent(inout), dimension (0:n1,0:m1) :: f
integer :: i
integer :: j
integer :: m
integer :: n
integer :: n2
double precision, dimension (fdim1,fdim2) :: f1
double precision, dimension (fdim1-flag1,fdim2) :: f2
double precision, dimension (fdim1,fdim2-flag2) :: f3
double precision, dimension (fdim1-flag1,fdim2-flag2) :: f4
double precision, dimension (fdim1,fdim2) :: ftmp1
double precision, dimension (fdim1-flag1,fdim2) :: ftmp2
double precision, dimension (fdim1,fdim2-flag2) :: ftmp3
double precision, dimension (fdim1-flag1,fdim2-flag2) :: ftmp4
double precision, dimension (0:m1,3) :: ws
double precision :: val
double precision :: rm1
double precision :: rm2
double precision :: t1
double precision :: t2
double precision :: t3
double precision :: t4
real, dimension (2) :: tt
end subroutine lenhmz2
subroutine lenhmz2(n1,m1,rm,beta,f,u,e1,e2,w1,w2,aa,ww,mx,init,flag1,flag2,fdim1,fdim2)
Solve the 2D Helmholtz equation: rm*u - u_xx - beta u_yy= f with homogeneous Neumann B.C.
Input:
Author: Jan Ivar Moldekleiv, Jie Shen
Version: 0.8
integer, intent(in) :: n1
integer, intent(in) :: m1
integer, intent(in) :: mx
integer, intent(in) :: init
integer, intent(in) :: flag1
integer, intent(in) :: flag2
integer, intent(in) :: fdim1
integer, intent(in) :: fdim2
double precision, intent(in) :: rm
double precision, intent(in) :: beta
double precision, intent(in), dimension (0:mx) :: aa
double precision, intent(in), dimension (0:mx) :: ww
double precision, intent(in), dimension (fdim1,fdim1) :: e1
double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2
double precision, intent(in), dimension (fdim1) :: w1
double precision, intent(in), dimension (fdim1-flag1) :: w2
double precision, intent(inout), dimension (0:n1,0:m1) :: u
double precision, intent(inout), dimension (0:n1,0:m1) :: f
integer :: i
integer :: j
integer :: m
integer :: n
integer :: n2
double precision, dimension (fdim1,fdim2) :: f1
double precision, dimension (fdim1-flag1,fdim2) :: f2
double precision, dimension (fdim1,fdim2-flag2) :: f3
double precision, dimension (fdim1-flag1,fdim2-flag2) :: f4
double precision, dimension (fdim1,fdim2) :: ftmp1
double precision, dimension (fdim1-flag1,fdim2) :: ftmp2
double precision, dimension (fdim1,fdim2-flag2) :: ftmp3
double precision, dimension (fdim1-flag1,fdim2-flag2) :: ftmp4
double precision, dimension (0:m1,3) :: ws
double precision :: val
double precision :: rm1
double precision :: rm2
double precision :: t1
double precision :: t2
double precision :: t3
double precision :: t4
real, dimension (2) :: tt