爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2710|回复: 8

[求助] fortran输出

[复制链接]

新浪微博达人勋

发表于 2014-5-8 17:06:28 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
write(20,*) year(k),imon(k),dat(k),(y(j),x(j),j=1,t)
输出的内容总是自动跳行,请问怎样才能确保输出在同一行呢?如果设置输出格式的话,因为最后一个数组不是固定的,不知道格式改怎样设置~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-8 17:35:43 | 显示全部楼层
本帖最后由 Mid_Farmer 于 2014-5-8 17:45 编辑

到底是什么意思呀 你前面是年月日 后面是坐标数据吧 想在日期后面用循环把坐标在一行里写出来? 如果是这个意思 那你的程序是对的吧 你在文件里看到虽然换行了 但实际上是没换行的 你再用fortran读读文件的行数就知道了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-8 18:04:50 | 显示全部楼层
楼主自行百度下format的设置,应该可以的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-10 16:13:19 | 显示全部楼层
Mid_Farmer 发表于 2014-5-8 17:35
到底是什么意思呀 你前面是年月日 后面是坐标数据吧 想在日期后面用循环把坐标在一行里写出来? 如果是这个 ...

恩,我是这个意思,但是想输出的文件直接看着就是不换行的,该怎么设置格式呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-10 23:48:01 | 显示全部楼层
大果子 发表于 2014-5-10 16:13
恩,我是这个意思,但是想输出的文件直接看着就是不换行的,该怎么设置格式呢?

你可以用<t>f8.3这种类型的格式输出试试
例如,你坐标是j=1,t的循环表示你有t个坐标值,前面的日期我假设都是整型:
              wirte(20,"(3I4,<t>f8.3)") year(k),imon(k),dat(k),(y(j),x(j),j=1,t)
你试试看可以不?

评分

参与人数 1金钱 +6 贡献 +2 收起 理由
lqouc + 6 + 2 正解

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-12 17:00:38 | 显示全部楼层
本帖最后由 大果子 于 2014-5-12 17:08 编辑

谢谢!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-12 17:04:25 | 显示全部楼层
非常感谢!!!稍微改动一下,写成 wirte(20,"(3I4,<t>(f8.3,f8.3))") year(k),imon(k),dat(k),(y(j),x(j),j=1,t)就可以了!

还有个问题,再复杂一点的数组输出用这个方法就不行了,能再帮忙看看吗?
        write(20,100) year(m),n,dy,t-1,(y(i),(z(j,i),x(j,i),j=1,num(i)),i=1,t-1)
         
100  format(a4,3I3,a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x))

我发现当num(t-1)=1时是可以输出的,但当=2,3,4。。时,就有错误了,说是格式和变量类型不匹配。。明明是一样的方法,怎么就不行了呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-12 17:11:12 | 显示全部楼层
Mid_Farmer 发表于 2014-5-10 23:48
你可以用f8.3这种类型的格式输出试试
例如,你坐标是j=1,t的循环表示你有t个坐标值,前面的日期我假设 ...

非常感谢!!!稍微改动一下,写成 wirte(20,"(3I4,<t>(f8.3,f8.3))") year(k),imon(k),dat(k),(y(j),x(j),j=1,t)就可以了!

还有个问题,再复杂一点的数组输出用这个方法就不行了,能再帮忙看看吗?
        write(20,100) year(m),n,dy,t-1,(y(i),(z(j,i),x(j,i),j=1,num(i)),i=1,t-1)
         
100  format(a4,3I3,a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x),a6,<num(t-1)>
     &(I3,f6.1,2x),a6,<num(t-1)>(I3,f6.1,2x))

我发现当num(t-1)=1时是可以输出的,但当=2,3,4。。时,就有错误了,说是格式和变量类型不匹配。。明明是一样的方法,怎么就不行了呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-12 23:33:48 | 显示全部楼层
大果子 发表于 2014-5-12 17:11
非常感谢!!!稍微改动一下,写成 wirte(20,"(3I4,(f8.3,f8.3))") year(k),imon(k),dat(k),(y(j),x(j) ...

你这句format我没看懂 朋友 a4,a6指的是什么 后面跟的几组一样的是什么 我主要没有资料 不知道你什么代表什么 你再自己多看看吧 或者用调试一下debug试试?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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