Fortran Coder

查看: 11439|回复: 1
打印 上一主题 下一主题

[求助] 新人求助 用龙库塔迭代求解水面线,程序已编完无法运行

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
12 元
贡献
5 点
跳转到指定楼层
楼主
发表于 2019-10-18 15:28:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本人最近新学Fortran语言,用龙库塔迭代法求解水面线,程序已编完但无法运行,提示我微分方程设置的语法有问题代码如下:
[Fortran] 纯文本查看 复制代码
01program main
02    dimension x(0:20),y(0:20),z(0:20),p(0:21),r(0:20),c(0:20)
03    double precision x,y,z,p,h,x0,y0,z0,p0,n,k1,k2,k3,k4,k,q,g,a,b,m,s,r,c
04    k=0.009
05    g=9.8
06    s=0.022
07    m=1.5
08    a=20
09    b=10
10    q=45
11    r=((b+m*y)*y)/(b+2*sqrt(1+m**2)*y)
12    c=(1/s)*r**(1/6)
13    f(x,y)=(k-q**2/(a*c*sqrt(r))**2)/(1-q**2*b/(g*a**3)
14    h=30
15    n=20
16    x(0)=0.0
17    y(0)=1.88
18    r(0)=1.44
19    c(0)=363.6
20    do i=0,n-1
21         r(i+1)=((b+m*y(i+1))*y(i+1))/(b+2*sqrt(1+m**2)*y(i+1))
22         c(i+1)=(1/s)*r(i+1)**(1/6)
23         x(i+1)=(i+1)*h
24k1=f(x(i),y(i))
25k2=f(x(i)+0.5*h,y(i)+0.5*h*k1)
26k3=f(x(i)+0.5*h,y(i)+0.5*h*k2)
27k4=f(x(i)+h,y(i)+h*k3)
28y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6
29    end do
30    p(0)=0
31    do i=0,n
32        z(i)=p(i)+exp(-p(i))-1
33        p(i+1)=p(i)+h
34    end do
35    open (10,file="1,txt")
36    write(10,*) (x(i),y(i),z(i),i=0,20)
37    end





QQ截图20191018152623.png (7.27 KB, 下载次数: 321)

QQ截图20191018152623.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

838

帖子

2

主题

0

精华

大宗师

F 币
3937 元
贡献
2339 点
沙发
发表于 2019-10-18 22:14:04 | 只看该作者
13 行, f 未定义。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2025-5-2 20:27

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

快速回复 返回顶部 返回列表