文件
tem3dfdtd-open/tem3dfdtd/lib/zero.f90
T

64 行
1.5 KiB
Fortran

!Copyright (c) 2013 by tdem.org under guide of Xiu Li(lixiu@chd.edu.cn)
!written by Huaifeng Sun(sunhuaifeng@gmail.com) and Xushan Lu(luxushan@gmail.com)
!Code distribution @ tdem.org or sunhuaifeng.com
SUBROUTINE ZERO
USE CONSTANTPARAMETERS
USE ELECTROMAGNETIC_VARIABLES
USE RES_MODEL_PARAMETER
USE TIME_PARAMETER
USE PML_PARAMETER
USE OMP_LIB
!>This subroutine will initialize the array in the calculation by setting all its elements to zero.
IMPLICIT NONE
CCSIG=0.0D0
CCSIGX=0.0D0
CCSIGY=0.0D0
CCSIGZ=0.0D0
EX=0.0D0
EY=0.0D0
EZ=0.0D0
HX=0.0D0
HY=0.0D0
HZ=0.0D0
!>CPML arrays: den_* is always initialized to 1.0 (neutral value), so the
!! iteration loop can always multiply the curl terms by den_*; the scheme
!! degenerates exactly to the original version when Logic_PML=0.
den_ex=1.0D0
den_ey=1.0D0
den_ez=1.0D0
den_hx=1.0D0
den_hy=1.0D0
den_hz=1.0D0
c_h_zz=0.0D0
inv_hz_den=1.0D0
IF(Logic_PML==1)THEN
psi_Eyx_1=0.0D0
psi_Eyx_2=0.0D0
psi_Ezx_1=0.0D0
psi_Ezx_2=0.0D0
psi_Ezy_1=0.0D0
psi_Ezy_2=0.0D0
psi_Exy_1=0.0D0
psi_Exy_2=0.0D0
psi_Exz_1=0.0D0
psi_Exz_2=0.0D0
psi_Eyz_1=0.0D0
psi_Eyz_2=0.0D0
psi_Hyx_1=0.0D0
psi_Hyx_2=0.0D0
psi_Hzx_1=0.0D0
psi_Hzx_2=0.0D0
psi_Hxy_1=0.0D0
psi_Hxy_2=0.0D0
psi_Hzy_1=0.0D0
psi_Hzy_2=0.0D0
psi_Hxz_1=0.0D0
psi_Hxz_2=0.0D0
psi_Hyz_1=0.0D0
psi_Hyz_2=0.0D0
psi_Hzz_1=0.0D0
psi_Hzz_2=0.0D0
ENDIF
RETURN
ENDSUBROUTINE ZERO