24小时热门版块排行榜    

查看: 691  |  回复: 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的回帖

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的回帖

lijunjiexm

铁虫 (小有名气)

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

1
  1   
  1  
  1  
  1
4楼2011-09-01 22:24:05
已阅   回复此楼   关注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的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


lijunjiexm(金币+30): Thanks,看来format要好好学学了 2011-09-01 22:30:26
xzhdty(金币+1): 谢谢了 2011-09-02 09:20:49
你要是真想把第五项读成 real,那么,换种方式好了,如:

         read(21,2100) idum,xreal,yreal,itemp
         ia(i) = itemp
6楼2011-09-01 22:27:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
4楼: Originally posted by lijunjiexm at 2011-09-01 22:24:05:
对了,忘了说一下,您的inid.dat文件生成是这个(我想要的)吗 (在这个语句下 write(10,*)  ia(i)语句)

1
  1   
  1  
  1  
  1

是这样的啊……
7楼2011-09-01 22:28:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lijunjiexm 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料学硕318求调剂 +9 February_Feb 2026-03-01 11/550 2026-03-01 19:47 by 无懈可击111
[考研] 272求调剂 +6 材紫有化 2026-02-28 6/300 2026-03-01 18:58 by 18137688336
[考研] 0856材料求调剂 +11 hyf hyf hyf 2026-02-28 12/600 2026-03-01 18:57 by 18137688336
[考研] 295求调剂 +7 19171856320 2026-02-28 7/350 2026-03-01 18:54 by 18137688336
[考研] 0857调剂 +3 一ll半 2026-02-28 3/150 2026-03-01 18:32 by 热情沙漠
[考研] 0856材料求调剂 +4 麻辣鱿鱼 2026-02-28 4/200 2026-03-01 16:51 by caszguilin
[考研] 313求调剂 +3 水流年lc 2026-02-28 3/150 2026-03-01 16:01 by 新能源达人
[考研] 307求调剂 +5 wyyyqx 2026-03-01 5/250 2026-03-01 15:21 by Fff-1
[考研] 298求调剂 +9 人间唯你是清欢 2026-02-28 12/600 2026-03-01 14:23 by Ducount.Y
[考研] 302材料工程求调剂 +4 Doleres 2026-03-01 5/250 2026-03-01 11:52 by liqiongjy
[考研] 317一志愿华南理工电气工程求调剂 +6 Soliloquy_Q 2026-02-28 11/550 2026-03-01 11:14 by 歌liekkas
[考研] 寻找调剂 +4 LYidhsjabdj 2026-02-28 4/200 2026-03-01 10:56 by sunny81
[考研] 311求调剂 +9 南迦720 2026-02-28 10/500 2026-03-01 10:55 by sunny81
[硕博家园] 2025届双非化工硕士毕业,申博 +3 更多的是 2026-02-27 4/200 2026-03-01 10:04 by ztg729
[硕博家园] 博士自荐 +6 科研狗111 2026-02-26 10/500 2026-03-01 10:02 by 科研狗111
[论文投稿] Optics letters投稿被拒求助 30+3 luckyry 2026-02-26 4/200 2026-03-01 09:06 by babero
[考研] 292求调剂 +3 yhk_819 2026-02-28 3/150 2026-02-28 21:57 by gaoxiaoniuma
[考研] 264求调剂 +3 巴拉巴拉根556 2026-02-28 3/150 2026-02-28 21:31 by gaoxiaoniuma
[考研] 085600材料工程一志愿中科大总分312求调剂 +8 吃宵夜1 2026-02-28 10/500 2026-02-28 20:27 by L135790
[硕博家园] 【博士招生】太原理工大学2026化工博士 +4 N1ce_try 2026-02-24 8/400 2026-02-26 08:40 by N1ce_try
信息提示
请填处理意见