Fortran Coder

查看: 16237|回复: 11
打印 上一主题 下一主题

[文件读写] 关于循环输出文件,和循环改变初值的提问

[复制链接]

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
跳转到指定楼层
楼主
发表于 2015-4-14 20:13:35 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
主程序如下:
[Fortran] 纯文本查看 复制代码
program main   
 use m_rk_ods    
implicit real*8(a-z)    
integer::N    
real*8::px0,py0,pz0,x0,yy0,z0   
real*8:: y(6),y0(6)
 open (unit=11,file='dat1.txt')    
open (unit=12,file='dat2.txt')    
N=6    
px0=5.    
py0=0.    
pz0=50.    
x0=-2500.    
yy0=0.    
z0=-25000.    
t0=0.    
tt=100000.    
y0=(/px0,py0,pz0,x0,yy0,z0/)    
call solve(fun1,t0,tt,y0,N)
end

各位大神们,作为初学fortran循环这部分确实很难做,尤其是循环输出到文件。
对我来讲第一个技术难点:我希望达到的目标是这样的,就是初值条件z0从-25200到-24800以步长为0.5变化,而z0=-25200时,x0从-2520到-2500,而z0+1的时候,x0从-2519到-2499以此类推,当z0循环到-24800时,x0的循环从-2500到-2480.这个样子。然后求助这个循环需要怎么做??一共做800*20=16000次计算。
第二个比较重要的问题是,我希望每一个初值的结果对应输出到一个文件,一共输出16000个文件。。?这个循环输出的指令要怎么写?



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

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
沙发
 楼主| 发表于 2015-4-14 21:22:22 | 显示全部楼层
楚香饭 发表于 2015-4-14 21:05
文件名可以用字符串表示。
字符串可以由整数或浮点数转换。
这都不是问题。

循环规则是,z0做外层循环,z0循环范围从-25200到-24800,这个范围内每次变化增加1,即z0从-25200,-25199,-25198……这样子。
然后z0=-25200时,内层循环由x0完成,x0从-2520到-2500,然后z0+1变成-25199,内层循环x0从-2519到-2499.。。
然后z0再加1,变成-25198,这是x0循环从-2518到-2498

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
板凳
 楼主| 发表于 2015-4-14 21:31:52 | 显示全部楼层
楚香饭 发表于 2015-4-14 21:30
对啊。那当 z0 变化到 -24800 时,x0 应该循环从 -2120 到 -2100 啊。
怎么可能还从 -2500到-2480 ? ...

哦,那估计是我X0的后面范围写错了。。。应该是x0从-2120到-2100.。。。。。规则应该是我之前写的那种。

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
地板
 楼主| 发表于 2015-4-14 21:53:13 | 显示全部楼层
楚香饭 发表于 2015-4-14 21:39
[mw_shl_code=fortran,true]Program www_fcode_cn
  Implicit None
  character(len=10) :: c1 , c2

Open( 12 , File = trim(adjustl(c1))//"-"//trim(adjustl(c2))//".txt")
这句编译的时候提示trim函数没有值~~

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
5#
 楼主| 发表于 2015-4-14 21:59:59 | 显示全部楼层
楚香饭 发表于 2015-4-14 21:56
我给代码都是自己亲自验证过的,可以编译链接的。

如果你提示有错误,请给出英文的,原版的错误提示,而不 ...

我手打敲错了,不好意思啦。。。添麻烦啦。问题基本解决了,谢谢您~~

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
6#
 楼主| 发表于 2015-4-17 23:19:12 | 显示全部楼层
pasuka 发表于 2015-4-15 08:24
写入16000个文件可不是好主意,为啥不是一个文件一次性写入16000个计算结果? ...

因为16000个文件里面,每个文件还有50000个计算结果
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-12 07:56

Powered by Tencent X3.4

© 2013-2024 Tencent

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