subroutine ledhmz2
! Variables
integer, intent(in) :: n1
integer, intent(in) :: m1
integer, intent(in) :: nf
integer, intent(in) :: nu
integer, intent(in) :: flag1
integer, intent(in) :: flag2
integer, intent(in) :: fdim1
integer, intent(in) :: fdim2
integer, intent(in) :: init
double precision, intent(in) :: rm
double precision, intent(in) :: beta
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:nf,0:m1) :: f
double precision, intent(inout), dimension (0:nu,0:m1) :: u
integer :: i
integer :: j
integer :: m
integer :: n
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 :: val
double precision :: rm1
double precision :: rm2
end subroutine ledhmz2
subroutine ledhmz2(n1,m1,rm,beta,f,nf,u,nu,e1,e2,w1,w2,init,flag1,flag2,fdim1,fdim2)
Solve the 2D Helmholtz equation: rm*u - u_xx - beta u_yy= f with homogeneous Dirichlet B.C. in IxI.
Input:
Author: Jan Ivar Moldekleiv, Jie Shen
Version: 0.8
integer, intent(in) :: n1Leading dimension of rh.side
integer, intent(in) :: m1Second dimension of rh. side
integer, intent(in) :: nfLeading dim. of array containing rh. side. nf >= n1
integer, intent(in) :: nuLeading dim. of array containing solution. nu >= n1
integer, intent(in) :: flag1Determines the dimension of e1 & e2
integer, intent(in) :: flag2Determines the dimension of e1 & e2
integer, intent(in) :: fdim1Determines the dimension of e1 & e2
integer, intent(in) :: fdim2Determines the dimension of e1 & e2
integer, intent(in) :: initinitialization flag: init=1, initialize ws
double precision, intent(in) :: rmThe constant rm in the helmholtz equation.
double precision, intent(in) :: betaThe constant beta in the helmholtz equation.
double precision, intent(in), dimension (fdim1,fdim1) :: e1First part of eigenfunctions from ledeig.
double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2Second part of eigenfunctions.
double precision, intent(in), dimension (fdim1) :: w1Eigenvalues from ledeig.
double precision, intent(in), dimension (fdim1-flag1) :: w2Second part of eigenvalues from ledeig.
double precision, intent(inout), dimension (0:nf,0:m1) :: fThe righthandside after letrfm2
double precision, intent(inout), dimension (0:nu,0:m1) :: uThe solution before letrfm2
integer :: iLocal variable
integer :: jLocal variable
integer :: mLocal variable
integer :: nLocal variable
double precision, dimension (fdim1,fdim2) :: f1Local variable
double precision, dimension (fdim1-flag1,fdim2) :: f2Local variable
double precision, dimension (fdim1,fdim2-flag2) :: f3Local variable
double precision, dimension (fdim1-flag1,fdim2-flag2) :: f4Local variable
double precision, dimension (fdim1,fdim2) :: ftmp1Local variable
double precision, dimension (fdim1-flag1,fdim2) :: ftmp2Local variable
double precision, dimension (fdim1,fdim2-flag2) :: ftmp3Local variable
double precision, dimension (fdim1-flag1,fdim2-flag2) :: ftmp4Local variable
double precision :: valLocal variable
double precision :: rm1Local variable
double precision :: rm2Local variable