24小时热门版块排行榜    

查看: 1849  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 基金啊基金 +3 longfie172 2026-08-20 3/150 2026-08-21 00:04 by wuchongjun
[基金申请] 科研孤儿太难了 +14 我4大白菜 2026-08-20 15/750 2026-08-20 22:33 by 袁向阳007
[基金申请] 让我中一个面上吧! +8 大萍1987 2026-08-20 10/500 2026-08-20 21:48 by 大萍1987
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 只有每年这种时候来逛逛小木虫 +21 yaoyewhu2008 2026-08-20 22/1100 2026-08-20 17:03 by yaoyewhu2008
[基金申请] 放榜前的不淡定 40+3 snowwithsea 2026-08-19 12/600 2026-08-20 15:56 by lfy8008
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 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
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[论文投稿] 投稿咨询 +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 家与远方
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
信息提示
请填处理意见