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
1111.jpg (107.96 KB, 下载次数: 679)
HHKR_0
fcode 发表于 2014-5-22 21:21
你需要使用格式读取 ,* 读取是肯定不行的。
我就不知道为啥你数据少的时候可以,我觉得1个数据你也读不出 ...
开颜儿 发表于 2014-5-22 21:25
我用 READ(30,"(F18.17,F18.17)") HANKEL 也不行啊
real :: ra , rb
character(len=1) :: sign
read( 30 , "(f17.15,1x,a1,1x,f17.15)" ) ra , sign , rb
if(sign=='-') rb = 0 - rb
hankel = cmplx(ra,rb)
vvt 发表于 2014-5-23 01:38
当然不行,你根本没考虑加减号问题。
即便是使用格式,也应该是
aliouying 发表于 2014-5-23 14:16
你这hankel系数有点多吧,而且居然是复数?
vvt 发表于 2014-5-23 01:38
当然不行,你根本没考虑加减号问题。
即便是使用格式,也应该是
vvt 发表于 2014-5-23 01:38
当然不行,你根本没考虑加减号问题。
即便是使用格式,也应该是
开颜儿 发表于 2014-5-23 15:39
你好,我试了一下您帮助我的代码,但是只读进去第一行额,请问我是哪里还不对吗
+,-号问题可以这样吗read ...
vvt 发表于 2014-5-23 15:50
第一,5000个数据绝对不会太大。实际上这方面 Fortran 没有任何限定。
第二,如何读,这个问题,与数据是 ...
0.0980002709338183 + 0.315259216708515i
-0.000664691868587921 + 0.338995006613358i
Program www_fcode_cn
Implicit None
Integer , parameter :: N = 168
complex :: cmp(N) , ReadComplex
integer i
Open( 12 , File = "t.dat" )
Do i = 1 , N
cmp(i) = ReadComplex( 12 )
write( * , * ) cmp(i)
End Do
Close( 12 )
End Program www_fcode_cn
complex Function ReadComplex( u )
Integer , Intent( IN ) :: u
character( len = 64 ) :: cImag , cTemp
character( len = 1 ) :: cSign
real :: rReal , tImag , tSign
integer :: k
read( u , * ) rReal , cSign , cImag
tSign = 1.0
if ( cSign == '-' ) tSign = -1.0
cTemp = cImag
k = Len_Trim(cTemp)
cTemp(k:k) = ''
read( cTemp , * ) tImag
ReadComplex = cmplx(rReal , tSign * tImag )
End Function ReadComplex
vvt 发表于 2014-5-23 16:10
[mw_shl_code=fortran,true]Program www_fcode_cn
Implicit None
Integer , parameter :: N = 168
开颜儿 发表于 2014-5-23 16:18
非常感谢,用您的代码,终于读出来了~~ 纠结了两天了,终于有了答案,的确我还是新手还得好好看看~~ 太谢 ...
vvt 发表于 2014-5-23 16:20
实际上,我的代码与之前给你的地址是一样的。只不过 N=1 而已。
你一定要学会如何根据别人的代码来修改 ...
山大克鲁士 发表于 2014-5-23 18:02
我的提问被反复拿出来,难道这就是所谓的标答?
PS:LZ,你何不尝试下用2进制读写文件呢?我的接口中,txt ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |