主题:选择部分数据输出!期望有人能帮下忙,该文章要数据
我做了个求能带图的程序,每个k对应N个E,N=40,横坐标是k,纵坐标是E,我写的程序,但是换行不合理啊
program nengdai
use imsl
implicit none
parameter N=40
parameter pi=3.1415926,t=2.8
integer i,j
real H(2*N,2*N),U(2,2),U2(2,2),E(2*N)
real B0,k
E=0.0
B0=0.0
H=0.0
U=0.0
U2=0.0
U(1,1)=-t
u(2,2)=-t
do i=1,N
j=2*i-1
H(j,j)=B0
H(j,j+1)=0.0
H(j+1,j)=0.0
H(j+1,j+1)=-B0
end do
open(2,file='Eig.dat')
do k=0,2*pi,0.01
U2(1,1)=-2*t*cos(k/2)
U2(2,2)=U2(1,1)
do j=1,N
i=2*j-1
if (mod(J,2)==1) then
if (J==1) then
H(i:i+1,i+2:i+3)=u2
else
H(i:i+1,i+2:i+3)=u2
H(i:i+1,i-2:i-1)=u
end if
else
if (J==N) then
H(i:i+1,i-2:i-1)=u2
else
H(i:i+1,i+2:i+3)=u
H(i:i+1,i-2:i-1)=u2
end if
end if
end do
E=eig(H)
write(2,'(f8.2,40f10.2/)') k,E !需要换行操作的语句在这里,怎么办呢
end do
end
最后换行操作我干脆 让k和40个E写完之后换行,但是结果输出不理想,大家能否帮忙看下怎么解决啊、
program nengdai
use imsl
implicit none
parameter N=40
parameter pi=3.1415926,t=2.8
integer i,j
real H(2*N,2*N),U(2,2),U2(2,2),E(2*N)
real B0,k
E=0.0
B0=0.0
H=0.0
U=0.0
U2=0.0
U(1,1)=-t
u(2,2)=-t
do i=1,N
j=2*i-1
H(j,j)=B0
H(j,j+1)=0.0
H(j+1,j)=0.0
H(j+1,j+1)=-B0
end do
open(2,file='Eig.dat')
do k=0,2*pi,0.01
U2(1,1)=-2*t*cos(k/2)
U2(2,2)=U2(1,1)
do j=1,N
i=2*j-1
if (mod(J,2)==1) then
if (J==1) then
H(i:i+1,i+2:i+3)=u2
else
H(i:i+1,i+2:i+3)=u2
H(i:i+1,i-2:i-1)=u
end if
else
if (J==N) then
H(i:i+1,i-2:i-1)=u2
else
H(i:i+1,i+2:i+3)=u
H(i:i+1,i-2:i-1)=u2
end if
end if
end do
E=eig(H)
write(2,'(f8.2,40f10.2/)') k,E !需要换行操作的语句在这里,怎么办呢
end do
end
最后换行操作我干脆 让k和40个E写完之后换行,但是结果输出不理想,大家能否帮忙看下怎么解决啊、