!**************************************************************************** ! ƒ‚ƒWƒ…[ƒ‹ !**************************************************************************** !============================================================================ ! •¨—’è” !============================================================================ module consts real(8),parameter :: pi=3.141592653589793d0 ! ‰~Žü—¦ ƒÎ real(8),parameter :: c=2.998d8 ! Œõ‘¬ c (m/sec) real(8),parameter :: epsilon0=8.854d-12 ! ^‹ó‚Ì—U“d—¦ (F/m) real(8),parameter :: mu0=4.0d-7*pi ! ^‹ó‚Ì“§Ž¥—¦ (H/m) real(8),parameter :: z0=120.0d0*pi ! ”g“®ƒCƒ“ƒs[ƒ_ƒ“ƒX (ƒ¶) end module !============================================================================ ! FDTD module !============================================================================ module fdtd ! ******** ”gŒ¹î•ñ ******** real(8) :: freq ! ******** ŽžŠÔƒXƒeƒbƒv ******** integer :: ntime_start,ntime_end,ntime_step integer :: nperiod ! ŽžŠÔXV‚ÌŠÔŠu‚Í(T/nperiod) ‚½‚¾‚µAT‚ÍŽüŠú real(8) :: time,dt ! ******** ƒtƒB[ƒ‹ƒh ******** integer,parameter :: mx=100,my=100,mz=100 integer :: nx,ny,nz real(8) :: dx,dy,dz integer :: nlambda0 ! ‚PƒZƒ‹‚̈ê•Ó‚Ì’·‚³‚Í(1/nlambda) real(8) :: ex(mx,my,mz),ey(mx,my,mz),ez(mx,my,mz) real(8) :: hx(mx,my,mz),hy(mx,my,mz),hz(mx,my,mz) ! ******** ”}Ž¿’è” ******** integer,parameter :: mmedia=10 integer :: nmedia ! ”}Ž¿‚Ì” real(8) :: eps(mmedia) ! —U“d—¦ƒÃ [F/m] real(8) :: mu(mmedia) ! “§Ž¥—¦ƒÊ [H/m] real(8) :: sig(mmedia) ! “±“d—¦ƒÐ [S/m] integer :: media_id(mx+1,my+1,mz+1) ! ******** ƒtƒB[ƒ‹ƒhXVŒW” ******** real(8) :: cex0,cey0,cez0 real(8) :: cexry0,cexrz0, & ceyrz0,ceyrx0, & cezrx0,cezry0 real(8) :: chxry0,chxrz0, & chyrz0,chyrx0, & chzrx0,chzry0 real(8) :: cex(mmedia),cey(mmedia),cez(mmedia) real(8) :: cexry(mmedia),cexrz(mmedia), & ceyrz(mmedia),ceyrx(mmedia), & cezrx(mmedia),cezry(mmedia) real(8) :: chxry(mmedia),chxrz(mmedia), & chyrz(mmedia),chyrx(mmedia), & chzrx(mmedia),chzry(mmedia) ! ******** ‹zŽû‹«ŠEðŒ‚ÌXVE‰ß‹Ž‚Ì’l‚Ì•Û‘¶•Ï” ******** real(8) :: cxd,cyd,czd, & cxu,cyu,czu real(8) :: cxx,cyy,czz real(8) :: cxfyd,cxfzd, & cyfxd,cyfzd, & czfxd,czfyd real(8) :: eyx1(4,my,mz),eyx2(4,my,mz),ezx1(4,my,mz),ezx2(4,my,mz), & exy1(mx,4,mz),exy2(mx,4,mz),ezy1(mx,4,mz),ezy2(mx,4,mz), & exz1(mx,my,4),exz2(mx,my,4),eyz1(mx,my,4),eyz2(mx,my,4) real(8) :: hyx1(4,my,mz),hyx2(4,my,mz),hzx1(4,my,mz),hzx2(4,my,mz), & hxy1(mx,4,mz),hxy2(mx,4,mz),hzy1(mx,4,mz),hzy2(mx,4,mz), & hxz1(mx,my,4),hxz2(mx,my,4),hyz1(mx,my,4),hyz2(mx,my,4) end module ! ! End of file !