!**************************************************************************** ! 吸収境界条件 !**************************************************************************** subroutine absorbing_boundary_condition use consts use fdtd implicit none integer :: i,j ! Mur の1次吸収境界条件 (p.65) do j=1,ny ! 左の壁 ez(1,j)=ezx1(2,j)+mur1_cx*(ez(2,j)-ezx1(1,j)) ! 右の壁 ez(nx+1,j)=ezx1(3,j)+mur1_cx*(ez(nx,j)-ezx1(4,j)) end do do i=1,nx ! 下の壁 !ez(i,1)=ezy1(2,i)+mur1_cy*(ez(i,2)-ezy1(1,i)) ! 上の壁 !ez(i,ny+1)=ezy1(3,i)+mur1_cy*(ez(i,ny)-ezy1(4,i)) end do ! 過去の値の更新 do j=1,ny ezx1(1,j)=ez(1,j) ezx1(2,j)=ez(2,j) ezx1(3,j)=ez(nx,j) ezx1(4,j)=ez(nx+1,j) end do do i=1,nx !ezy1(1,i)=ez(i,1) !ezy1(2,i)=ez(i,2) !ezy1(3,i)=ez(i,ny) !ezy1(4,i)=ez(i,ny+1) end do return end subroutine ! ! End of file !