我一直在努力解决一个问题,所以如果有人可以提供任何建议或示例,我将不胜感激。使用 Fortran90。
计划目的:
以我选择的数量从文件中删除随机行。我能想到的最好方法是使用随机数来对应行号。
它目前的作用:
每次生成新的随机数并将它们输出到单独的文件中。
问题:
(1) 它不会生成可能对应于行号的整数。(2) 我不知道如何使用这些数字从文件中删除行。
program random1
implicit none
integer :: i, seed, removed
real :: r
open (unit=10,file='random.dat')
removed=5
call init_random_seed()
do i=1,removed
call random_number(r)
write(10,*) r
end Do
end program random1
subroutine init_random_seed()
integer :: i,n,clock
integer, dimension(:),allocatable :: seed
call random_seed(size=n)
allocate(seed(n))
call system_clock(count=clock)
seed=clock+37*(/(i-1,i=1,n)/)
call random_seed(put=seed)
deallocate(seed)
end subroutine
谢谢!