|
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
FileName='rect.sct' !文件名为'rect.sct'
WaveLength=1. !入射波长为1
WL=40. !每波长网格数为40
Ismin=-60.
Ismax=60.
Jsmin=-60.
Jsmax=60. !x轴,y轴目标区域界限为(-60,60)
MediaNo=1 !本例中只有一种金属介质,因此介质数目为1
Media(1,1)=1.
Media(2,1)=1.
Media(3,1)=3.72e+7
Media(4,1)=0. !金属介质的电磁参数赋值
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
生成的文件打开是乱码是什么原因呀,求大佬指点
|
|