24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 733  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lijunjiexm

铁虫 (小有名气)

[求助] 求助简单的一个参数传递问题,谢谢

请教一个简单程序MID,
     PROGRAM MID

        implicit real*8(a-h,o-z)
      real*8 ia(5)
      
        open(10,file='inid.dat')
        open(21,file='mesh1.dat')
      read(21,*) numnp,numel

        do 300 i=1,numnp
            read(21,2100) idum,xreal,yreal,ia(i)
            write(10,*) ia(i)       
c         write(10,2100)  idum,xreal,yreal,ia(i)
300   continue
     
2100  format(i5,2x,e15.5,2x,e12.5,2x,i2)

      end
C---------------------------------------------------------------------------------------
mesh1.dat为
         5        2 numnp , numel
    1      0.00000E+00   0.00000E+00   1
    2      0.00000E+00   0.35803E-03   1   
    3      0.00000E+00   0.70174E-03   1  
    4      0.00000E+00   0.10317E-02   1  
    5      0.00000E+00   0.13485E-02   1  
但是 用 write(10,*)  ia(i)语句后,写进去的inid.dat文件为:
  4.940656458412465E-324
  4.940656458412465E-324
  4.940656458412465E-324
  4.940656458412465E-324
  4.940656458412465E-324
而选择write(10,2100)  idum,xreal,yreal,ia(i) ,则inid.dat为
   1      0.00000E+00   0.00000E+00   1
    2      0.00000E+00   0.35803E-03   1   
    3      0.00000E+00   0.70174E-03   1  
    4      0.00000E+00   0.10317E-02   1  
    5      0.00000E+00   0.13485E-02   1
但在在debug过程ia的数据居然是 4.940656458412465E-324,这个怎么解释呢?怎么使得ia数组等于 1 1 1 1 1?请多多指教,谢谢
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijunjiexm

铁虫 (小有名气)

对了,忘了说一下,您的inid.dat文件生成是这个(我想要的)吗 (在这个语句下 write(10,*)  ia(i)语句)

1
  1   
  1  
  1  
  1
4楼2011-09-01 22:24:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
xzhdty(金币+2): 欢迎常来程序语言看看 2011-09-02 09:20:12
把 real*8 ia(5) 改成 integer ia(5) 就可以了(gfortran 验证通过)。如果不修改,在 gfortran 下会报如下错误:

Fortran runtime error: Expected INTEGER for item 5 in formatted transfer, got RE
AL
(i5,2x,e15.5,2x,e12.5,2x,i2)
                         ^
2楼2011-09-01 22:07:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijunjiexm

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by snoopyzhao at 2011-09-01 22:07:11:
把 real*8 ia(5) 改成 integer ia(5) 就可以了(gfortran 验证通过)。如果不修改,在 gfortran 下会报如下错误:

Fortran runtime error: Expected INTEGER for item 5 in formatted transfer, got RE
AL
( ...

为什么real不行呢?试了下把real*8改成dimension好像也可以,这个能稍微解释下吗,谢谢
3楼2011-09-01 22:19:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by lijunjiexm at 2011-09-01 22:19:55:
为什么real不行呢?试了下把real*8改成dimension好像也可以,这个能稍微解释下吗,谢谢

real*8 ia(5) 相当于
real* ia
dimension ia(8)

不行的原因是因为 format 中明确地写了第五项是 i2 格式,即是一个 integer,但 read 语句发现第 5 项是一个 real*8 的变量……
5楼2011-09-01 22:26:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料工程281还有调剂机会吗 +32 xaw. 2026-04-11 33/1650 2026-04-13 15:21 by 张zhihao
[考研] 调剂 +26 不逢春 2026-04-07 27/1350 2026-04-13 14:24 by 张zhihao
[考研] 求调剂288 +7 ioodiiij 2026-04-10 9/450 2026-04-13 08:33 by Hayaay
[考研] 277求调剂 +23 倪建设 2026-04-06 23/1150 2026-04-13 00:40 by 王童子龙
[考研] 322求调剂 +6 123安康 2026-04-12 13/650 2026-04-12 15:51 by 123安康
[考研] 求调剂,262机械专硕 +8 嗯yyl 2026-04-08 8/400 2026-04-12 02:31 by 秋豆菜芽
[考研] 347求调剂 +4 mhyqyy 2026-04-06 4/200 2026-04-12 02:27 by 秋豆菜芽
[考研] 331求调剂 +5 王国帅 2026-04-11 5/250 2026-04-11 22:56 by 溪涧流水
[考研] 求调剂 +6 小聂爱学习 2026-04-11 9/450 2026-04-11 21:20 by 蓝云思雨
[考研] 352 求调剂 +6 yzion 2026-04-11 8/400 2026-04-11 16:24 by 明月此时有
[考研] 0854调剂 +5 音像店听花鼓戏 2026-04-10 5/250 2026-04-11 10:49 by qingpingzhu
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 314求调剂 +18 xhhdjdjsjks 2026-04-09 19/950 2026-04-10 18:53 by HPUCZ
[考研] 材料专业344求调剂 +16 hualkop 2026-04-10 21/1050 2026-04-10 17:28 by laoshidan
[考研] 一志愿京区985,085401电子信息,本科电子信息 +3 阳光开朗的男孩 2026-04-10 3/150 2026-04-10 16:29 by sophia_93
[考研] 301求调剂 +5 149. 2026-04-10 5/250 2026-04-10 15:45 by 柴小白
[考研] 278求调剂 +27 范婷娜 2026-04-07 31/1550 2026-04-09 20:49 by zhouxiaoyu
[考研] 材料工程调剂 +12 小刘同学吖吖 2026-04-06 13/650 2026-04-09 17:07 by luoyongfeng
[考研] 274求调剂 +5 山阿蔓 2026-04-07 5/250 2026-04-09 15:28 by 18828373951
[考研] 307求调剂 +3 Youth@@ 2026-04-07 3/150 2026-04-07 22:00 by hemengdong
信息提示
请填处理意见