24小时热门版块排行榜    

查看: 2117  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

bjwang

铁杆木虫 (正式写手)

[求助] 三维数组换行输入到文件(intel fortran 编译器)

我有一个三维数组r2i(imax,jmx.kmax),想把它写入到一个文件,要求如下:
第一行排r2i(1-imax,1,1)对应的数组元素,然后换行排r2i(1-imax,2,1)等等。
我是按下面来执行的,但达不到目的,输入到文件的列数好像大于imax的值,不知错在何处?哪位高手帮忙解决一下,谢谢!
open(10,file='/home/omega-i.dat',status='new')
do k=1,kmax
do j=1,jmax
write(17,"(1X,E15.6,\)" (r2i(i,j,k),i=1,imax)
enddo
enddo
close(10)

[ Last edited by jjdg on 2011-7-13 at 21:59 ]
回复此楼
It is a shame for the soul to be first to give way in this life,when thy body does not give way.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bjwang

铁杆木虫 (正式写手)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:13:35
我是利用
  write(17,300) (r2is(i,j,k),i=1,imax)
300 FORMAT (107E15.6)    !107为imax值
来达到目的的!!!!!
  但最后发现,对imax值较小时(目前验证为107)是可行的,但为165时就不行了,照样可以运行和输出,但另一个读取这个输出的软件(软件应该没问题)出错。这和Fortran 90/95标准中规定,当程序代码中的一行超过132个字符时,需要用&续行有关吗?
我修改如下(但编译说无法终止):
if(imax.le.132)then

do k=1,kmax
  do j=1,jmax
   write(17,300) (r2is(i,j,k),i=1,imax)
   300 FORMAT (165E15.6)   !HERE, 107=imax for alter row per imax
   enddo
enddo
close(17)

else

do k=1,kmax
  do j=1,jmax

  write(17,400) (r2is(i,j,k),i=1,130)
  400 FORMAT (130E15.6)

  write(17,500)'&'
   500 FORMAT (A1)

  write(17,600) (r2is(i,j,k),i=131,imax)
  600 FORMAT (39E15.6)  ! imax-130
   enddo
enddo
close(17)

这里两个问题:
1)是Fortran 90/95标准中规定132列造成的问题吗?
2)如果是,下面的程序哪点有问题?
谢谢各位兄弟了!!!
It is a shame for the soul to be first to give way in this life,when thy body does not give way.
3楼2011-07-31 12:44:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
jjdg(金币+2): 感谢参与 2011-07-22 01:40:29
bjwang(金币+10): 谢谢您的热情回复,其实我已解决问题 2011-07-22 08:25:26
主要是你在 write 那行的格式不正确,你那个一行只能写一个数据,呵呵……
试一下下面这个看看没有什么问题
CODE:
character (len=20) :: fm

open(10,file='/home/omega-i.dat',status='new')

write(fm,'(a,i0,a)') '(1X,',imax,'(E15.6))'

do k=1,kmax
   do j=1,jmax
      write(17,fm) (r2i(i,j,k),i=1,imax)
   enddo
enddo
close(10)

2楼2011-07-21 15:40:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


jjdg(金币+1): 感谢参与 2011-07-31 14:51:57
问题是你能不能开一个 r2is(165,165,165) 的矩阵?

你的代码中没有哪一行超过 132 字符啊……
4楼2011-07-31 13:56:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bjwang

铁杆木虫 (正式写手)

ben_ladeng: 楼下有提示哦 2011-07-31 16:29:48
谢谢snoopyzhao,我的代码没有超过132字符的。但我写入的imax列数为165时,这个程序也可正常编译和执行,但输出的文件被另一个程序(要求imax列排在一行的格式)读取时出错,我怀疑是那个输出文件在列数大时格式不对。难道fortran矩阵的大小有限制?
It is a shame for the soul to be first to give way in this life,when thy body does not give way.
5楼2011-07-31 14:58:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 aOn84t7OD1JN 2026-08-19 3/150 2026-08-19 22:40 by BqkHsOAGISWU
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 aOn84t7OD1JN 2026-08-19 4/200 2026-08-19 22:31 by BqkHsOAGISWU
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 PnssoZglMj3v 2026-08-19 4/200 2026-08-19 22:28 by BqkHsOAGISWU
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +54 医学老男孩 2026-08-13 121/6050 2026-08-19 20:28 by 医学老男孩
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 cHIDTWCTtLlG 2026-08-19 6/300 2026-08-19 18:52 by oCMhZAsgNFoO
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 PnssoZglMj3v 2026-08-19 5/250 2026-08-19 17:42 by oCMhZAsgNFoO
[基金申请] filecode=后面第一个是大写字母 +10 wangze12014 2026-08-14 12/600 2026-08-19 16:56 by 苦难博士
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 重要消息,中午系统在维护 +10 yuleib84 2026-08-18 11/550 2026-08-19 07:30 by 羽毛枫f
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
信息提示
请填处理意见