原程序.png (57.15 KB, 下载次数: 505)
2.png (104.42 KB, 下载次数: 477)
2.07 KB, 下载次数: 5
632 Bytes, 下载次数: 7
读取的名为FASTLIB文件
自己写的程序执行后.png (130.42 KB, 下载次数: 423)
1.png (104.24 KB, 下载次数: 440)
necrohan 发表于 2020-5-16 12:12
没有声明默认是IN规则,LNOW是整数。
读入那里应该是先读入整数LNOW,然后读入数组WORK,WORK有LNOW个数据 ...
li913 发表于 2020-5-16 12:53
1、LNOW是什么类型,因为前面也没有显示声明.
如果代码中没有implicit none, 默认用I-N规则解析变量类型, ...
小程序中PDS读写函数.png (82.96 KB, 下载次数: 420)
li913 发表于 2020-5-16 12:53
1、LNOW是什么类型,因为前面也没有显示声明.
如果代码中没有implicit none, 默认用I-N规则解析变量类型, ...
89.49 KB, 下载次数: 61
二进制转十进制小工具,UBUNTU下编译可直接运行
li913 发表于 2020-5-17 09:19
你静态编译一个小工具的可执行,附带二进制文件,以及使用方法, 一起上传。
之前的二进制文件肯定是有问题 ...
21.37 KB, 下载次数: 4
473.24 KB, 下载次数: 3
874.45 KB, 下载次数: 132
li913 发表于 2020-5-17 09:19
你静态编译一个小工具的可执行,附带二进制文件,以及使用方法, 一起上传。
之前的二进制文件肯定是有问题 ...
123.jpg (288.75 KB, 下载次数: 270)
自己的
345.jpg (143.95 KB, 下载次数: 236)
老程序结果
evanustc 发表于 2020-5-17 11:34
我把 DIMENSION WORK(300)改为INTEGER WORK(300) 能够读入74 10 22 45但是后面小数就不行了,读的全是整数 ...
necrohan 发表于 2020-5-17 12:49
整数和浮点数在二进制文件里表示方法不一样,不能通用,否则读出来数据是错的。
你附件那个二进制文件按6 ...
!判断数据是整数还是实数
subroutine numchk (ia,icode)
character aho*7
write(aho,'(i7)') ia
if(aho.eq.'*******') then
icode = 0
else
icode = 1
endif
end
program test
implicit none
integer(4) m, n, i, j, k
real,allocatable:: a(:)
real b
equivalence(b,n)
character cl*3
!读取
open(10,file='FASTLIB', ACCESS='SEQUENTIAL',FORM='UNFORMATTED')
read(10) m
allocate(a(m)) !分配空间
rewind(10)
read(10) m, a(1:m)
close(10)
!输出
open(10,file='out.txt')
k=0
do i = 1, m
b = a(i)
k=k+1
if(mod(k,6)==0) then !每6个数据输出一行
cl = 'yes'
else
cl = 'no'
end if
call numchk(n,j) !判断数据是整数还是实数
if(j==0) then
write(10,'(1pe12.5)', advance=cl) b
else
write(10,'(4x,i7,1x)',advance=cl) n
end if
end do
end
QQ截图20200517160850.png (106.58 KB, 下载次数: 360)
1.png (81.34 KB, 下载次数: 335)
li913 发表于 2020-5-17 16:13
研究了两天,发现这个代码是比较奇葩的,典型的国外开源代码风格,故意让人看不懂(也可能是代码太老了)。 ...
li913 发表于 2020-5-17 20:15
1、equivalence(b,n), 二者的二进制表示形式一样(同一块内存),但值不一样;
2、n=b, 值一样(或近似,存在 ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |