标题: 写入文件 有限元差分法计算电磁场 [打印本页] 作者: afternoon 时间: 2022-2-21 12:55 标题: 写入文件 有限元差分法计算电磁场 program main
real ob(-700:700,-700:700) !存放各网格介质的编号,x轴,y轴分别从-700到700
real Media(1:4,1:15) !各介质的电磁参数。第一位1到4分别表示epsilon.r,mu.r,sigma,sigma.m;第二位表示介质编号
character*10 FileName !目标信息输出到FileName文件中
real WaveLength,WL !入射波长和每波长网格数
real Ismin,Ismax,Jsmin,Jsmax !目标区域界线
real MediaNo !目标区域内所有介质数目
integer Record,i,j !定义整数record,i,j
do i=Ismin,Ismax
do j=Jsmin,Jsmax
ob(i,j)=0.0
end do
end do !空间所有网格初始值设为背景,即从(-60,-60)到(60,60)所有网格介质编号均为零
do i=Ismin,Ismax
do j=Jsmin,Jsmax
if((i.ge.-WL).and.(i.le.WL-1).and.(j.ge.-WL).and.(j.le.WL-1))then
ob(i,j)=1.0
end if
end do
end do !将所有网格中属于金属方柱的网格的介质编号改为1
open(1,File=FileName,access='direct',recl=4)
write(1,rec=1) WaveLength !输出
write(1,rec=2) WL
write(1,rec=3) Ismin
write(1,rec=4) Ismax
write(1,rec=5) Jsmin
write(1,rec=6) Jsmax
write(1,rec=7) MediaNo
Record=7
do j=1,MediaNo
do i=1,4
Record=Record+1
write(1,rec=Record) Media(i,j)
end do
end do !写出金属介质的电磁参数
do i=Ismin,Ismax
do j=Jsmin,Jsmax
Record=Record+1
write(1,rec=Record) ob(i,j)
end do
end do !写出网格介质编号
close(1)
write(*,*) Ismin,Ismax,Jsmin,Jsmax !写出目标区域界限
end