程序运行不了问题在哪
下面这个程序有错误,怎么改呢?
program Ne
integer :: I,J, N, Ny
real:: ne(J)
real:: Hx(I)
N=1000
Ny=1000
Dx=0.1
Dt=0.1
n0=5E+2
m=2.1
p=2
Te=5
q=0.6E-19
E=2
k=0.514E-9
v=n0*k
Hx(0)=sqrt(8*Te/pm)*ne*(1-0.25)
Hx(I)=-(q/m*v)*E(ne/(1-exp(q*E*Dx/Te)+ne/(1-exp(-q*E*Dx/Te))
open (unit=10,FILE='1.txt')
DO I=2,N-1
DO J=2,Ny-1
HX(I)=(H1(I+1)-H1(I-1))/(2*DX)
ne(J)=(ne(J+1)-ne(J-1))/(2*Dt)
ne(J)=Hx(I)+R
end do
end do
write (10,"('N=?,Ny=?')" ne(I)
stop
end
返回小木虫查看更多
今日热帖
京公网安备 11010802022153号
你这个是 fortran 的程序吗?
里面有很多变量根本就没有定义,比如 H1
ne 是数组还是普通的变量?
I、J作为 HX 和 NE 的维度的时候没有赋值……
你这个程序用任何一个编译器都编译不过去,根据编译器的提示修改吧……
主要是ne的问题,ne是个函数,就是根据编译器不知道ne该如何修改,改了很多次。
我感觉就程序编写来说,似乎有两个问题:
1. 不能用变量I 直接定义数组ne的大小。
应写成(按fortran90风格)
integer,parameter:: J
real:: ne(J)
2. Hx(0),Hx(I)那两行,你似乎把ne数组的下标丢了。
这里I是变量,ne是函数
,
函数要定义,比如:
real function ne()
该函数没有输入数据,结果是返回一个实型变量。
如果是编译错误,一般有提示。
如果是运行结果错误的话,建议用单步执行的方式来调试。
这个有点陌生啊……没学过……