爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5113|回复: 18

[求助] 新手,fortran 行列输出到txt文本出现了问题

[复制链接]

新浪微博达人勋

发表于 2016-10-14 16:40:15 | 显示全部楼层 |阅读模式

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

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

x
读入前是   74行9列   输出后变成了  3列了  堆在了一起了,

open(100,file='E:\fortran\text2.txt')
write(100,*)((a(i,j),j=1,9),i=1,74)
close(100)
end


是不是红的那行写得不对,谢谢!

原来的

原来的
O}C)QV]2@_1IGFD99C%W6`3.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-14 17:03:25 | 显示全部楼层
txt放大看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-14 17:03:46 | 显示全部楼层
输出时这样
open(100,file='E:\fortran\text2.txt')
do i=1,74
write(100,*)((a(i,j)),j=1,9)
enddo

close(100)
end

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

新浪微博达人勋

 楼主| 发表于 2016-10-14 17:16:46 | 显示全部楼层
四叶草 发表于 2016-10-14 17:03
输出时这样
open(100,file='E:\fortran\text2.txt')
do i=1,74

还是老样子。 并不能将 输出的txt放大就能解决问题   是不是输出到txt文本时,加一个格式,但是具体不知道怎么加,自己试了几个 ,都不能  以读入时的格式  输出

这是全部的程序  (目的是把  风向转化成文字)
program main
implicit none
integer::i,j,n
character*20::a(74,9)
real::c(73,9),b(73)
open(20,file='E:\fortran\text.txt')
read(20,*)((a(i,j),j=1,9),i=1,74)
close(20)
open(10,file='E:\fortran\text.txt')
read(10,*)
read(10,*)((c(i,j),j=1,9),i=1,73)
close(10)
b(:)=c(:,7)
do n=1,73
  if(b(n)>11.26.and.b(n)<33.75) then
     a(n+1,7)="东北偏北风"
  else if(b(n)>33.76.and.b(n)<56.25) then
     a(n+1,7)="东北风"
  else if(b(n)>56.26.and.b(n)<78.75) then
     a(n+1,7)="东北偏东风"
  else if(b(n)>78.76.and.b(n)<101.25) then
     a(n+1,7)="东风"
  else if(b(n)>101.26.and.b(n)<123.75) then
     a(n+1,7)="东南偏东风"
  else if(b(n)>123.76.and.b(n)<146.25) then
     a(n+1,7)="东南风"
  else if(b(n)>146.26.and.b(n)<168.75) then
     a(n+1,7)="东南偏南风"
  else if(b(n)>168.76.and.b(n)<191.25) then
     a(n+1,7)="南风"
  else if(b(n)>191.26.and.b(n)<213.75) then
     a(n+1,7)="西南偏南风"
  else if(b(n)>213.76.and.b(n)<236.25) then
     a(n+1,7)="西南风"
  else if(b(n)>236.26.and.b(n)<258.75) then
     a(n+1,7)="西南偏西风"
  else if(b(n)>258.76.and.b(n)<281.25) then
     a(n+1,7)="西风"
  else if(b(n)>281.76.and.b(n)<303.75) then
     a(n+1,7)="西北偏西风"
  else if(b(n)>303.76.and.b(n)<326.25) then
     a(n+1,7)="西北风"
  else if(b(n)>326.26.and.b(n)<348.75) then
     a(n+1,7)="西北偏北风"
  else
     a(n+1,7)="北风"
  end if
end do
open(100,file='E:\fortran\text2.txt')
do i=1,74
write(100,*)((a(i,j)),j=1,9)
enddo
close(100)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-10-14 17:17:49 | 显示全部楼层

并不行。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-14 17:20:39 | 显示全部楼层
lgj 发表于 2016-10-14 17:16
还是老样子。 并不能将 输出的txt放大就能解决问题   是不是输出到txt文本时,加一个格式,但是具体不知 ...

加个格式控制试试
write(100,'(9a20)')((a(i,j)),j=1,9)

评分

参与人数 1金钱 +10 收起 理由
lqouc + 10

查看全部评分

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

新浪微博达人勋

 楼主| 发表于 2016-10-14 17:33:45 | 显示全部楼层
四叶草 发表于 2016-10-14 17:20
加个格式控制试试
write(100,'(9a20)')((a(i,j)),j=1,9)

可以了,十分感谢,
我将   9a20  稍微缩了一点  9a14  差不多正好。
顺便请问一下,我们论坛里有可以求助  linux 相关问题的分区吗(因为我刚接触这个论坛)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-14 18:02:04 | 显示全部楼层
lgj 发表于 2016-10-14 17:33
可以了,十分感谢,
我将   9a20  稍微缩了一点  9a14  差不多正好。
顺便请问一下,我们论坛里有可以 ...

在相应模块提问就行
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-14 19:17:57 | 显示全部楼层
lgj 发表于 2016-10-14 17:33
可以了,十分感谢,
我将   9a20  稍微缩了一点  9a14  差不多正好。
顺便请问一下,我们论坛里有可以 ...

去浏览器搜索一下吧,挺多博主也有写的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-10-14 19:40:24 | 显示全部楼层
Penny_Kuan 发表于 2016-10-14 19:17
去浏览器搜索一下吧,挺多博主也有写的

知道了,基本现在全靠百度,谢谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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