Fortran Coder

楼主: 开颜儿
打印 上一主题 下一主题

[输入输出] 复数数据读取

[复制链接]

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
跳转到指定楼层
楼主
发表于 2014-5-22 21:08:36 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
PROGRAM FMMM
 IMPLICIT NONE
 INTEGER I,J,K,ERROR,BBB,B,AA,BB
 REAL P0(360000),P1(360000),P2(360000),P3(360000),P4(360000),P5(360000),P6(360000),LEG0(5000,72),LEG1(5000,72),LEG2(5000,72),LEG3(5000,72),LEG4(5000,72),LEG5(5000,72),LEG6(5000,72)
 COMPLEX HANKEL0(5000),HANKEL1(5000),H(7,5000),HH(7,5000)
     OPEN(UNIT=30,FILE="HHKR_0.TXT")
     READ(30,*) HANKEL0
     OPEN(UNIT=66,FILE="P0.TXT")
     READ(66,*) P0
     OPEN(UNIT=68,FILE="P1.TXT")
     READ(68,*) P1
     OPEN(UNIT=70,FILE="P2.TXT")
     READ(70,*) P2
     OPEN(UNIT=72,FILE="P3.TXT")
     READ(72,*) P3
     OPEN(UNIT=76,FILE="P4.TXT")
     READ(76,*) P4
     OPEN(UNIT=78,FILE="P5.TXT")
     READ(78,*) P5
     OPEN(UNIT=82,FILE="P6.TXT")
     READ(82,*) P6
     DO AA=1,5000
       DO BB=1,72
           LEG0(AA,BB)=P0(BB+(AA-1)*72)
           LEG1(AA,BB)=P1(BB+(AA-1)*72)
           LEG2(AA,BB)=P2(BB+(AA-1)*72)
           LEG3(AA,BB)=P3(BB+(AA-1)*72)
           LEG4(AA,BB)=P4(BB+(AA-1)*72)
           LEG5(AA,BB)=P5(BB+(AA-1)*72)
           LEG6(AA,BB)=P6(BB+(AA-1)*72)
       ENDDO
     ENDDO  
     OPEN(UNIT=90,FILE="L6.TXT")
     WRITE(90,*) LEG6
 PAUSE  
 STOP   
 END



求助,之前同样做的文件数据较少时可以顺利执行。现在TXT文件有5000个复数数据就读不出来了~~
图片是文件的数据格式


1111.jpg (107.96 KB, 下载次数: 525)

HHKR_0

HHKR_0
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
沙发
 楼主| 发表于 2014-5-22 21:10:45 | 显示全部楼层
程序可以执行。就是在READ那里出现,断点,黑框闪退

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
板凳
 楼主| 发表于 2014-5-22 21:25:11 | 显示全部楼层
fcode 发表于 2014-5-22 21:21
你需要使用格式读取 ,* 读取是肯定不行的。

我就不知道为啥你数据少的时候可以,我觉得1个数据你也读不出 ...

我用   READ(30,"(F18.17,F18.17)") HANKEL   也不行啊

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
地板
 楼主| 发表于 2014-5-23 14:30:42 | 显示全部楼层
vvt 发表于 2014-5-23 01:38
当然不行,你根本没考虑加减号问题。

即便是使用格式,也应该是

谢谢啦~我试试 不好意思,第一次发帖不懂,见谅

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
5#
 楼主| 发表于 2014-5-23 14:31:18 | 显示全部楼层
aliouying 发表于 2014-5-23 14:16
你这hankel系数有点多吧,而且居然是复数?

恩,5000个复数,我也在考虑是不是数据量太大

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
6#
 楼主| 发表于 2014-5-23 14:35:22 | 显示全部楼层
vvt 发表于 2014-5-23 01:38
当然不行,你根本没考虑加减号问题。

即便是使用格式,也应该是

还想请教一下。实部有复数也得IF考虑一下符号吗

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
7#
 楼主| 发表于 2014-5-23 15:39:40 | 显示全部楼层
vvt 发表于 2014-5-23 01:38
当然不行,你根本没考虑加减号问题。

即便是使用格式,也应该是

你好,我试了一下您帮助我的代码,但是只读进去第一行额,请问我是哪里还不对吗
+,-号问题可以这样吗read(30,"(a1,f17.15,1x,a1,1x,f17.15)" )sign1, ra , sign , rb
if(sign=='-') rb = 0 - rb
if(sign1=='-') ra = 0 - ra

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
8#
 楼主| 发表于 2014-5-23 15:55:09 | 显示全部楼层
vvt 发表于 2014-5-23 15:50
第一,5000个数据绝对不会太大。实际上这方面 Fortran 没有任何限定。
第二,如何读,这个问题,与数据是 ...

您好,谢谢您细心解答,我本来想发附件但是没找到发附件的选项
一下是一部分实部为负数的数据,刚刚用您给的那段代码,用了只能读出一行,我把ra,rb改为数组就读不了了,您发的链接看到过,可是不是很理解,那是矩阵,还是有点绕~~


0.168498555149043 + 0.276067038449761i
0.154812932582301 + 0.285514569720378i
0.140858380364344 + 0.294150595276887i
0.126697766288374 + 0.301979685851922i
0.112392118453205 + 0.309011250829115i
0.0980002709338183 + 0.315259216708515i
0.0835798130652834 + 0.320741236076685i
0.0691850205442571 + 0.325479186653940i
0.0548688371782823 + 0.329498069947556i
0.0406801581962225 + 0.332826529070168i
0.0266666059557724 + 0.335495739649627i
0.0128711409958803 + 0.337539848538019i
-0.000664691868587921 + 0.338995006613358i
-0.0139041623260204 + 0.339899535449638i
-0.0268119757007104 + 0.340293233682862i
-0.0393576622179331 + 0.340217289896186i
-0.0515120945860373 + 0.339713863520097i
-0.0632508529751592 + 0.338825763144346i
-0.0745513590357782 + 0.337596211031652i
-0.0853937827702436 + 0.336068576873081i
-0.0957626197768898 + 0.334285790527840i
-0.105643062724805 + 0.332290588675422i
-0.115023579561776 + 0.330124869066612i
-0.123894674873668 + 0.327829616029596i
-0.132249359143705 + 0.325444508889037i
-0.140081901144522 + 0.323007996776731i
-0.147388622005834 + 0.320556836153429i
-0.154166984169863 + 0.318126128031745i
-0.160416032641633 + 0.315748939080135i
-0.166135494086085 + 0.313456407223829i
-0.171326220609747 + 0.311277370890999i
-0.175989310241861 + 0.309238533043761i
-0.180126563646411 + 0.307364096559746i
-0.183740611282076 + 0.305675513297978i
-0.186833105174277 + 0.304192177135428i
-0.189405871519539 + 0.302930781416402i
-0.191462055062188 + 0.301904608775793i
-0.193002121024443 + 0.301125417814652i
-0.194028280621890 + 0.300601164792191i
-0.194540868541457 + 0.300337763871319i
-0.194540868541457 + 0.300337763871319i
-0.194028280621890 + 0.300601164792191i
-0.193002121024443 + 0.301125417814652i
-0.191462055062188 + 0.301904608775793i
-0.189405871519539 + 0.302930781416402i
-0.186833105174277 + 0.304192177135428i
-0.183740611282076 + 0.305675513297978i
-0.180126563646411 + 0.307364096559746i
-0.175989310241861 + 0.309238533043761i
-0.171326220609747 + 0.311277370890999i
-0.166135494086085 + 0.313456407223829i
-0.160416032641633 + 0.315748939080135i
-0.154166984169863 + 0.318126128031745i
-0.147388622005834 + 0.320556836153429i
-0.140081901144522 + 0.323007996776731i
-0.132249359143705 + 0.325444508889037i
-0.123894674873668 + 0.327829616029596i
-0.115023579561776 + 0.330124869066612i
-0.105643062724805 + 0.332290588675422i
-0.0957626197768898 + 0.334285790527840i
-0.0853937827702436 + 0.336068576873081i
-0.0745513590357782 + 0.337596211031652i
-0.0632508529751592 + 0.338825763144346i
-0.0515120945860373 + 0.339713863520097i
-0.0393576622179331 + 0.340217289896186i
-0.0268119757007104 + 0.340293233682862i
-0.0139041623260204 + 0.339899535449638i
-0.000664691868587921 + 0.338995006613358i
0.0128711409958803 + 0.337539848538019i
0.0266666059557724 + 0.335495739649627i
0.0406801581962225 + 0.332826529070168i
0.0548688371782823 + 0.329498069947556i
0.0691850205442571 + 0.325479186653940i
0.0835798130652834 + 0.320741236076685i
0.0980002709338183 + 0.315259216708515i
0.112392118453205 + 0.309011250829115i
0.126697766288374 + 0.301979685851922i
0.140858380364344 + 0.294150595276887i
0.154812932582301 + 0.285514569720378i
0.168498555149043 + 0.276067038449761i
0.181852197834198 + 0.265807541397222i
0.194808847444343 + 0.254741415819196i
0.207304203781942 + 0.242878163066414i
0.219272851557902 + 0.230233451811956i
0.230650158786638 + 0.216827954384258i
0.241372778112667 + 0.202687052508943i
0.251377867677251 + 0.187842335763859i
0.260604558671605 + 0.172330358641034i
0.268993732272969 + 0.156193638856896i
0.276489506640922 + 0.139478618538929i
0.272952349990854 + 0.147691807216961i
0.264929097870248 + 0.164295548782030i
0.256018477407206 + 0.180291192117993i
0.246278333434105 + 0.195632833499393i
0.235769178216912 + 0.210279438547104i
0.224553860076528 + 0.224195003014183i
0.212695891902696 + 0.237350084411801i
0.200261041585475 + 0.249719366813879i
0.187314792971321 + 0.261284041141774i
0.173923966861790 + 0.272029714603663i
0.160153607824835 + 0.281948621757222i
0.146069880920866 + 0.291036863450138i
0.131736567122595 + 0.299296564131591i
0.117217438775614 + 0.306733883938509i
0.102573691889678 + 0.313360153939774i
0.0878650805938788 + 0.319190823875815i
0.0731487569887380 + 0.324245618745600i
0.0584799718177155 + 0.328547901887883i
0.0439106030477706 + 0.332124790709352i
0.0294906031973153 + 0.335006391085132i
0.0152665740548571 + 0.337225852281043i
0.00128129984010199 + 0.338818987720168i
-0.0124246338879546 + 0.339823706760283i
-0.0258138704358838 + 0.340279892643348i
-0.0388533249896880 + 0.340229041235461i
-0.0515120945860373 + 0.339713863520097i
-0.0637631155815280 + 0.338777994266568i
-0.0755816945105867 + 0.337465740742329i
-0.0869467774060008 + 0.335821683866169i
-0.0978404627812447 + 0.333890351620619i
-0.108246803929154 + 0.331716138169474i
-0.118153693265739 + 0.329342642222341i
-0.127549573382263 + 0.326813114589017i
-0.136426994307252 + 0.324169325374717i
-0.144779647076737 + 0.321452017428650i
-0.152603493230458 + 0.318700338883112i
-0.159895846769260 + 0.315951873681833i
-0.166655139404871 + 0.313242511676439i
-0.172881674305924 + 0.310605902148380i
-0.178576057669999 + 0.308073854628317i
-0.183740611282076 + 0.305675513297978i
-0.188377179256134 + 0.303438136073902i
-0.192488874149888 + 0.301386105907768i
-0.196078251723432 + 0.299541632880672i
-0.199148101735228 + 0.297924224931854i
-0.201701595006790 + 0.296550449008420i
-0.203740860035573 + 0.295434569423265i
-0.205268769809604 + 0.294587480237269i
-0.206285983544484 + 0.294018252347660i
-0.206794357521733 + 0.293732180969508i
-0.206794357521733 + 0.293732180969508i
-0.206285983544484 + 0.294018252347660i
-0.205268769809604 + 0.294587480237269i
-0.203740860035573 + 0.295434569423265i
-0.201701595006790 + 0.296550449008420i
-0.199148101735228 + 0.297924224931854i
-0.196078251723432 + 0.299541632880672i
-0.192488874149888 + 0.301386105907768i
-0.188377179256134 + 0.303438136073902i
-0.183740611282076 + 0.305675513297978i
-0.178576057669999 + 0.308073854628317i
-0.172881674305924 + 0.310605902148380i
-0.166655139404871 + 0.313242511676439i
-0.159895846769260 + 0.315951873681833i
-0.152603493230458 + 0.318700338883112i
-0.144779647076737 + 0.321452017428650i
-0.136426994307252 + 0.324169325374717i
-0.127549573382263 + 0.326813114589017i
-0.118153693265739 + 0.329342642222341i
-0.108246803929154 + 0.331716138169474i
-0.0978404627812447 + 0.333890351620619i
-0.0869467774060008 + 0.335821683866169i
-0.0755816945105867 + 0.337465740742329i
-0.0637631155815280 + 0.338777994266568i
-0.0515120945860373 + 0.339713863520097i
-0.0388533249896880 + 0.340229041235461i
-0.0258138704358838 + 0.340279892643348i
-0.0124246338879546 + 0.339823706760283i

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
9#
 楼主| 发表于 2014-5-23 16:19:19 | 显示全部楼层
vvt 发表于 2014-5-23 16:10
[mw_shl_code=fortran,true]Program www_fcode_cn
  Implicit None  
  Integer , parameter :: N = 168

非常感谢,用您的代码,终于读出来了~~ 纠结了两天了,终于有了答案,的确我还是新手还得好好看看~~ 太谢谢您了。

10

帖子

1

主题

0

精华

入门

F 币
66 元
贡献
38 点
10#
 楼主| 发表于 2014-5-23 16:56:01 | 显示全部楼层
vvt 发表于 2014-5-23 16:20
实际上,我的代码与之前给你的地址是一样的。只不过 N=1 而已。

你一定要学会如何根据别人的代码来修改 ...

是阿~ 首先得看懂才能会用会变,嘻嘻~我会努力的,您太厉害了~~
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-6-1 22:18

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表