Моя проблема заключается в следующем ... У меня есть целое число, которое меняет значение после вызова функции случайного семени.Значение передается как параметр и должно быть 20. Это соответствующие части кода:
implicit none
extrenal masres
integer :: i, j, k, n, nc, nr, irch, ncor, ierr, nfil21
...
write(*,*) 'n = ', n
del = 0.d+0
del1 = 0.d+0
call random_seed(size=n)
write(*,*) 'n = ', n
И мой вывод:
n = 20
n = 33
Я пробовал обходной путь, который тоже не удался:
write(*,*) 'n = ', n
k = n
del = 0.d+0
del1 = 0.d+0
call random_seed(size=k)
write(*,*) 'k = ', k
allocate(seed(n))
call system_clock(COUNT=clock)
if(info.eq.1) then
seed = clock+37*[(1-i**2/1+i**2,i=1,n)]
else
seed = into+37*[(i+24)**2,i=1,n]
endif
call random_seed(put=seed)
То, что я получаю:
n = 20
k = 33
Fortran runtime error: Array size of PUT is too small.
Это очевидно, поскольку случайное начальное число, очевидно, инициализируется с помощью 33вместо 20, поэтому выделенный начальный массив будет слишком маленьким.
Я не знаю, имеет ли это значение, но я использую компилятор gfortran.Спасибо заранее за вашу помощь.Скажите, если я должен опубликовать больше кода или загрузить файл.