24小时热门版块排行榜    

查看: 1595  |  回复: 6

行云流水cs

金虫 (小有名气)

[求助] FORTRAN 读取文件数据出错

PROGRAM MAIN
        REAL L(1340,4)
        M=1340
        N=4
        OPEN(UNIT=1,FILE='F1.DAT',STATUS='OLD',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        READ(1,*) ((L(M,N),I=1,N),J=1,M)
        OPEN(UNIT=2,FILE='F2.DAT',STATUS='NEW',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        WRITE(2,200) L
        CLOSE(1)
        CLOSE(2)
200        FORMAT(1X,4F10.2)
        END


F1.DAT 部分文件
2570        2649        2540        2530

2532        2558        2544        2459

2479        2494        2515        2450

2448        2511        2458        2448

2407        2515        2510        2407

2436        2444        2384        2396

2320        2362        2330        2316

2280        2382        2320        2315

2324        2369        2252        2260

2282        2284        2303        2241

2239        2347        2232        2215

但是F2.DAT 怎么全是0
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
       0.00      0.00      0.00      0.00
回复此楼

» 收录本帖的淘帖专辑推荐

Linux系统学习

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

为无为,事无事,味无味。大小,多少,抱怨以德。图难乎其易也,为大乎其细也。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mingkeng

至尊木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-06-25 00:07:55
行云流水cs: 金币+5, ★★★很有帮助 2012-06-25 10:36:02
PROGRAM MAIN
        REAL L(1340,4)
        M=1340
        N=4
        OPEN(UNIT=1,FILE='F1.DAT',STATUS='OLD',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        READ(1,*) ((L(j,i),I=1,N),J=1,M)
        OPEN(UNIT=2,FILE='F2.DAT',STATUS='NEW',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        WRITE(2,200) L
        CLOSE(1)
        CLOSE(2)
200        FORMAT(1X,4F10.2)
        END


将READ(1,*) ((L(M,N),I=1,N),J=1,M)修改为READ(1,*) ((L(j,i),I=1,N),J=1,M)即可
2楼2012-06-24 22:47:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

行云流水cs

金虫 (小有名气)

引用回帖:
2楼: Originally posted by mingkeng at 2012-06-24 22:47:25
PROGRAM MAIN
        REAL L(1340,4)
        M=1340
        N=4
        OPEN(UNIT=1,FILE='F1.DAT',STATUS='OLD',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        READ(1,*) ((L(j,i),I=1,N),J=1,M)
     ...

PROGRAM MAIN
        INTEGER L(1340,4)
        M=1340
        N=4
        OPEN(UNIT=1,FILE='F1.DAT',STATUS='OLD',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        READ(1,100) ((L(j,i),I=1,N),J=1,M)
        OPEN(UNIT=2,FILE='F2.DAT',STATUS='NEW',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        WRITE(2,200) L
        CLOSE(1)
        CLOSE(2)
100        FORMAT(4I6)
200        FORMAT(4(2X,4I6))
        END
对程序稍微改了一下,但是出现了input conversion error。我知道  READ(1,100) ((L(j,i),I=1,N),J=1,M)
100        FORMAT(4I6)有错误。但不知道怎么改。麻烦你帮我看看。
为无为,事无事,味无味。大小,多少,抱怨以德。图难乎其易也,为大乎其细也。
3楼2012-06-25 10:40:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mingkeng

至尊木虫 (正式写手)

引用回帖:
3楼: Originally posted by 行云流水cs at 2012-06-25 10:40:58
PROGRAM MAIN
        INTEGER L(1340,4)
        M=1340
        N=4
        OPEN(UNIT=1,FILE='F1.DAT',STATUS='OLD',ACCESS='SEQUENTIAL',FORM='FORMATTED')
        READ(1,100) ((L(j,i),I=1,N),J=1,M) ...

必须知道你原始数据的排放格式?作为附件,发上来看看,有一两行就行
4楼2012-06-26 17:41:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

purplewds

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
二楼 说的对
你需要格式 100(4I6)
只要把
F1.DAT 部分文件
2570        2649        2540        2530

2532        2558        2544        2459

改成
F1.DAT 部分文件
  2570  2649  2540  2530
  2532  2558  2544  2459
每个数据前有两个空格, 行与行之间没有回车就OK了
5楼2012-06-26 18:53:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

haizhfly

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
把读文件时候指定的数据格式去掉  read(1,*)就能读出来
6楼2012-06-27 06:59:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

行云流水cs

金虫 (小有名气)

送鲜花一朵
PROGRAM MAIN

        INTEGER,ALLOCATABLE::A(:,

        INTEGER M,N

        WRITE(*,*)'ENTER M AND N :'

        READ(*,*) M,N

        ALLOCATE(A(M,N))

        OPEN(UNIT=1,FILE='F1.DAT',STATUS='OLD',ACCESS='SEQUENTIAL',FORM='FORMATTED')

        DO 10,I=1,M

          DO 20,J=1,N

        READ(1,*) A(I,J)

20        CONTINUE       

        CALL SORT(A,N)

10        CONTINUE

        OPEN(UNIT=2,FILE='F2.DAT',STATUS='NEW',ACCESS='SEQUENTIAL',FORM='FORMATTED')

        WRITE(2,100) ((A(I,J),J=1,N),I=1,M)

        CLOSE(1)

        CLOSE(2)

100        FORMAT(1X,4(3X,I6))

        END

C       

        SUBROUTINE SORT(A,N)

        INTEGER N,P,A(N),K

        DO 10,J=1,N-1

          P=J

          DO 20,I=J+1,N

            IF(A(I).LT.A(P)) THEN

              P=I

                END IF

20      CONTINUE

          K=A(J)

          A(J)=A(P)

          A(P)=K

10        CONTINUE

        END


F1.DAT如下,希望高手帮我调试一下,我的目地是将F1.dat中的数据,读一行然后排序,再读一行再排序。但是我发现程序读取文件完全是一列读取的。几个例子:我本来想读4*4
矩阵,但是程序却读了第一列的16个数据。
2570        2649        2540        2530

2532        2558        2544        2459

2479        2494        2515        2450

2448        2511        2458        2448

2407        2515        2510        2407

2436        2444        2384        2396

2320        2362        2330        2316

2280        2382        2320        2315

2324        2369        2252        2260

2282        2284        2303        2241

2239        2347        2232        2215

2207        2220        2216        2200

2204        2212        2174        2133

2135        2137        2140        2079

2115        2176        2203        2036

2107        2139        2742        2067

2053        2036        5555        2020

2009        1998        3807        1960

1947        2003        4393        1978

1986        1997        4894        1929

1955        1995        2131        1959

1909        1951        1927        1903

1910        1949        1873        1849

1852        1928        1842        1848

1882        1871        1830        1829

1869        1901        1772        1768
为无为,事无事,味无味。大小,多少,抱怨以德。图难乎其易也,为大乎其细也。
7楼2012-06-27 11:17:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 行云流水cs 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自科面上基金字体 +6 iwuli 2026-03-12 7/350 2026-03-16 21:18 by sculhf
[考研] 085601求调剂 +3 Du.11 2026-03-16 3/150 2026-03-16 20:42 by 无际的草原
[考研] 考研化学学硕调剂,一志愿985 +3 张vvvv 2026-03-15 5/250 2026-03-16 20:25 by 张vvvv
[考研] 环境工程调剂 +6 大可digkids 2026-03-16 6/300 2026-03-16 17:16 by barlinike
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +5 Liwangman 2026-03-15 5/250 2026-03-16 17:10 by 我的船我的海
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +3 大火山小火山 2026-03-16 5/250 2026-03-16 16:54 by barlinike
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
[考博] 东华理工大学化材专业26届硕士博士申请 +6 zlingli 2026-03-13 6/300 2026-03-15 20:00 by ryzcf
[考研] 265求调剂 +4 威化饼07 2026-03-12 4/200 2026-03-14 17:23 by userper
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[考研] 307求调剂 +7 超级伊昂大王 2026-03-10 7/350 2026-03-14 00:49 by JourneyLucky
[考研] 材料与化工(0856)304求B区调剂 +6 邱gl 2026-03-12 7/350 2026-03-13 23:24 by 邱gl
[考研] 材料371求调剂 +9 鳄鱼? 2026-03-11 11/550 2026-03-13 22:53 by JourneyLucky
[考研] 337一志愿华南理工0805材料求调剂 +7 mysdl 2026-03-11 9/450 2026-03-13 22:43 by JourneyLucky
[考研] 一志愿西南交大,材料专硕317求调剂 +5 lx8568 2026-03-11 5/250 2026-03-13 21:43 by peike
[考研] 工科278分求调剂 +5 周慢热啊 2026-03-12 7/350 2026-03-13 15:49 by JourneyLucky
[考研] 土木第一志愿276求调剂,科研和技能十分丰富,求新兴方向的导师收留 +3 土木小天才 2026-03-12 3/150 2026-03-13 15:01 by JourneyLucky
[考研] 270求调剂 085600材料与化工专硕 +3 YXCT 2026-03-11 3/150 2026-03-13 10:13 by houyaoxu
[基金申请] 提交后的基金本子,已让学校撤回了,可否换口子提交 +3 dut_pfx 2026-03-10 3/150 2026-03-11 08:38 by kudofaye
[考研] 调剂 +5 呵唔哦豁 2026-03-10 5/250 2026-03-10 22:00 by 28375m
信息提示
请填处理意见