求助思路(Fortran函数)
使用函数,给一个10000行15列的数组的每一行进行编号(该数组是从上到下按时间顺序排列的,第一行为1954年1月1日,编号应编为1,第三十二行为1953年2月1日,编号应编为32,以此类推,需要编到2007年),在调用时直接使用call就可以调用该行数据,求思路。 彭国伦书上有一个程序可以给文件的每一行添加行号,可供你参考,程序如下:program ex0909
implicit none
integer,parameter :: inputfileid=10,outputfileid=11
integer,parameter :: maxbuffer=200
character(len=80) :: inputfile,outputfile
character(len=maxbuffer) buffer
integer count
integer error
logical alive
write(*,*) "Input Filename: "
read(*,"(A80)") inputfile
write(*,*) "Output Filename: "
read(*,"(A80)") outputfile
inquire(file=inputfile,exist=alive)
if(.not. alive) then
write(*,*) trim(inputfile), " doesn't exist."
stop
end if
open(unit=inputfileid,file=inputfile,status="old")
open(unit=outputfileid,file=outputfile,status="replace")
count=1
do while(.true.)
read(inputfileid,"(A200)",iostat=error) buffer
if(error/=0) exit
write(outputfileid,"(I3,'. ',A)") count,trim(buffer)
count=count+1
end do
close(inputfileid)
close(outputfileid)
pause
stop
end program ex0909 如果是为了练习fortran,没问题。实际应用中,这个功能没意义,很多编辑器都可以显示行号,也可以连同行号一起复制,粘贴到其他位置。 Qilin 发表于 2020-3-1 10:06
彭国伦书上有一个程序可以给文件的每一行添加行号,可供你参考,程序如下:
pro ...
您好,其实我想的是用地址来考虑这个问题,将地址赋以不一样的名称,再用call进行调用 li913 发表于 2020-3-1 11:08
如果是为了练习fortran,没问题。实际应用中,这个功能没意义,很多编辑器都可以显示行号,也可以连同行号 ...
您好,我这里对数据进行编号是为了确定数据的位置,主要防止数据中断,然后就可以计算日变温 li913 发表于 2020-3-1 11:08
如果是为了练习fortran,没问题。实际应用中,这个功能没意义,很多编辑器都可以显示行号,也可以连同行号 ...
您好,我这里对数据进行编号是为了确定数据的位置,主要防止数据中断,然后就可以计算日变温 楼主的逻辑非常混乱。
什么调用数据??一般只有(可执行的)函数或者程序才能称为调用,数据只能叫使用或者取值。
楼主要编号的东西,到底是内存中的二维数组,还是存储有二维数据结构的文件?
“将地址赋以不一样的名称”,这句话更是听不明白。 如果1954年1月1日=1,那还不如找个日期函数,每增加一天就对应下一行,想找某天的数据用日期函数找到对应行。我理解楼主是这个意思。 vvt 发表于 2020-3-1 14:09
楼主的逻辑非常混乱。
什么调用数据??一般只有(可执行的)函数或者程序才能称为调用,数据只能叫使用或 ...
不好意思,前辈,是我表述的的不够清楚,实际上我是需要一个函数,这个函数,比方说1954年1月1号,那么它就是1,然后这时候你就可以把他这个数组就直接变成这个1。然后,然后1954年1月2号是2,那么这个给他变成这个2。那1954年2月1号就应该是32了,那么这个32呢,就是32这个值,那么就是call那个天数,就可以直接得到相应的数据。 necrohan 发表于 2020-3-2 23:17
如果1954年1月1日=1,那还不如找个日期函数,每增加一天就对应下一行,想找某天的数据用日期函数找到对应行 ...
您好,我就是这个意思,只不过我的数据跨度很大,要从1954年到2007年
页:
[1]
2