Fortran Coder

查看: 8549|回复: 2
打印 上一主题 下一主题

[输入输出] 关于输出格式控制方面的问题

[复制链接]

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
跳转到指定楼层
楼主
发表于 2014-10-21 20:30:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助:大神们,我想把t和y(1)到y(6)这样7组数据输出到txt文件当中,其中我想达到的目的是,在txt文件当中,7个数据输出到同一行,另外就是t这个数据保留5位小数,而后面y(1)到y(6)这六组数据保留8位小数。。。
但是我写的程序,最后面7个数据分为三行输出,而且保留了好多位小数,并不是我想要的结果。哪位大神能帮忙解决一下呀。。万分感谢。

源程序如下:
[Fortran] 纯文本查看 复制代码
01module m_rk4_ods
02    implicit  none
03    integer::M=100
04 contains
05 
06 subroutine solve(func,t0,tt,y0,N)
07     implicit none
08     external func
09     integer::N
10     real*8::y0(N),y(N)
11     real*8::k1(N),k2(N),k3(N),k4(N)
12     real*8::h,tt,t0,t
13     integer::i
14 
15     h=(tt-t0)/M
16t=t0
17     y=y0
18     do i=1,M
19         call func(k1,t,y,N)
20         call func(k2,t+h/2,y+h/2*k1,N)
21         call func(k3,t+h/2,y+h/2*k2,N)
22         call func(k4,t+h,y+h*k3,N)
23         y=y+(k1+2*k2+2*k3+k4)*h/6
24         t=t0+i*h
25         write(11,*)t,y(1),y(2),y(3),y(4),y(5),y(6)
26        100 FORMAT(1X,T3,F10.5,F12.8)
27     end do
28 
29     end subroutine solve
30 
31 subroutine fun1(f,t,y,N)
32     implicit none
33     integer::N
34     real*8::f(N),y(N)
35     real*8::t,t0,tt
36 
37 
38     f(1)=cos(t-y(6))-y(3)**2/sqrt(1+y(3)**2)*cos(t-y(6))/(3*10**8)
39     f(2)=0
40     f(3)=y(1)/sqrt(1+y(1)**2)*cos(t-y(6))
41     f(4)=y(1)/sqrt(1+y(1)**2)
42     f(5)=y(2)/sqrt(1+y(2)**2)
43     f(6)=y(3)/sqrt(1+y(3)**2)
44 end subroutine fun1
45 
46     end module m_rk4_ods
47 
48 
49 program main 
50     use m_rk4_ods
51 implicit none
52     integer::N
53     real*8::y(6),y0(6)
54     real*8::t0,tt
55 
56     open(unit=11,file='result10.txt')
57 
58     N=6
59     t0=0.0
60     tt=12.0
61     y0=(/0,0,0,0,0,0/)
62     call solve(fun1,t0,tt,y0,N)
63     end program main

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

742

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
726 元
贡献
371 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-10-21 21:22:26 | 只看该作者
第 25,26 行
[Fortran] 纯文本查看 复制代码
1write(11,*)t,y(1),y(2),y(3),y(4),y(5),y(6)
2100 FORMAT(1X,T3,F10.5,F12.8)


改为

[Fortran] 纯文本查看 复制代码
1write(11,100)t,y(1:6)
2100 FORMAT(1X,F10.5,6F12.8)

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
板凳
 楼主| 发表于 2014-10-22 00:26:09 | 只看该作者
谢谢大神哦!!!已经可以啦。。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2025-4-29 11:59

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

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