24小时热门版块排行榜    

查看: 2696  |  回复: 17
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

宇天旅梦

铜虫 (小有名气)

[求助] 编一个fortran程序

需要一个fortran程序,比较简单的那种,例如f=((5x+6z)*e^(2i) )/(2x-z),其中z=(3y-1)*(x+2)

要求输出的结果是三列数据,分别对应x,y,f .并且每列有20个数。

这三组数据是要导入orgin中进行图像模拟的。
初学fortran,很多东西还不连贯。
请大师们对上面给的式子编个程序示范一下。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

引用回帖:
15楼: Originally posted by phy_yo at 2013-08-25 20:24:55
y(2)=0 是我打错了 应该是y(1)=0 不过在这里不影响  这里你即便不写 默认的x(1),y(1)都是0  改用其他数据的的话 要记得定义数组的首项
format的用法我就不细说了 这里用不到  你回头自己看书吧
dat文件可以用记事 ...

这一部分明白了,可是自己写了一个和这大同小异的程序,出错了。

部分程序如下:
do 2 k=1,100
        m=(KY*50+i*SQRT(KX*KX+KY*KY))
     $/(SQRT(KX*KX+KY*KY+KY*KY*50*50)-50*50/(6.582122*10**28))
      
        n=(KY*50-i*SQRT(KX*KX+KY*KY))/
     $(SQRT(KX*KX+KY*KY+KY*KY*50*50)-50*50/(6.582122*10**28))
     
      w=(KY*50+i*SQRT(1+KY*KY))/
     $(SQRT(KX*KX+KY*KY+KY*KY*50*50))

      z=(KY*50-i*SQRT(1+KY*KY))/
     $(SQRT(KX*KX+KY*KY+KY*KY*50*50))
        f=((m-n)*(w-z)*EXP(-i*SQRT(1+KY*KY))/
     $((m-w)*(n-z)*e**(2*i*SQRT(KX*KX+KY*KY)-(m-z)(n-z))
其中关系是 m(KX,KY)    n(KX,KY)     w(KX,KY)  ,  z(KX,KY)

f(m(KX,KY), n(KX,KY), w(KX,KY), z(KX,KY))

给出的错误是:
--------------------Configuration: Text1 - Win32 Debug--------------------
Compiling Fortran...
C:\Program Files\DevStudio\MyProjects\Text1.for
C:\Program Files\DevStudio\MyProjects\Text1.for(28) : Error: Syntax error, found '(' when expecting one of: * :: , <END-OF-STATEMENT> ; : ) (/ [ + - . ] /) ** / > // .LT. < ...
     $(((m-w)*(n-z)*exp(2*i*SQRT(KX*KX+KY*KY))-(m-z)(n-z))
----------------------------------------------------^
C:\Program Files\DevStudio\MyProjects\Text1.for(28) : Error: Syntax error, found END-OF-STATEMENT when expecting one of: , )
     $(((m-w)*(n-z)*exp(2*i*SQRT(KX*KX+KY*KY))-(m-z)(n-z))
----------------------------------------------------------^
C:\Program Files\DevStudio\MyProjects\Text1.for(15) : Error: The shapes of the array expressions do not conform.   [M]
m=(KY*50+i*SQRT(KX*KX+KY*KY))/
--------^
C:\Program Files\DevStudio\MyProjects\Text1.for(18) : Error: The shapes of the array expressions do not conform.   [N]
n=(KY*50-i*SQRT(KX*KX+KY*KY))/
--------^
C:\Program Files\DevStudio\MyProjects\Text1.for(21) : Error: The shapes of the array expressions do not conform.   [W]
      w=(KY*50+i*SQRT(1+KY*KY))/
------^
C:\Program Files\DevStudio\MyProjects\Text1.for(24) : Error: The shapes of the array expressions do not conform.   [Z]
      z=(KY*50-i*SQRT(1+KY*KY))/
------^
Error executing df.exe.

Text1.exe - 6 error(s), 0 warning(s)
16楼2013-08-25 21:45:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

phy_yo

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
open(10,file='data.dat',status='unknown')
real*8 x,y,z,x(20),y(20)
do 1 i=1,20
input (*,*)  x,y
x(i)=x
y(i)=y
1 continue
do 2 1,20
z=(3y(i)-1)*(x(i)+2)
f=((5x+6z)*e^(2i) )/(2x-z)
write(*,*) x(i),y(i),f
write(10,*) x(i),y(i),f
2 continue
pause
end
网络错误 无法获取数据
2楼2013-08-24 20:27:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by phy_yo at 2013-08-24 20:27:45
open(10,file='data.dat',status='unknown')
real*8 x,y,z,x(20),y(20)
do 1 i=1,20
input (*,*)  x,y
x(i)=x
y(i)=y
1 continue
do 2 1,20
z=(3y(i)-1)*(x(i)+2)
f=((5x+6z)*e^(2i) )/(2x-z)
write(*,* ...

式子中的 i 是虚数
3楼2013-08-24 22:35:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phy_yo

铁虫 (小有名气)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 宇天旅梦 at 2013-08-24 22:35:22
式子中的 i 是虚数...

哦 那就把real*8改成complex*16
然后再在前面加一行parameter(i=(0,1))

[ 发自手机版 http://muchong.com/3g ]
网络错误 无法获取数据
4楼2013-08-24 23:14:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见