Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
современный фортран , Бортеньев.pdf
Скачиваний:
272
Добавлен:
26.03.2015
Размер:
2.34 Mб
Скачать

О. В. Бартеньев. Современный ФОРТРАН

Пример:

integer sv, k

 

 

integer, allocatable :: ap(:), ag(:)

 

 

call random_seed(size = sv)

! Читаем размер затравочного массива

allocate(ap(sv), ag(sv))

! Размещаем массивы

call random_seed(get = ag)

! Читаем в массив ag значение затравки

print *, sv

!

1

print *, (ag(k), k = 1, sv)

!

1

ap = (/ (100*k, k = 1, sv) /)

 

 

call random_seed(put = ap)

! Переопределяем значение затравки

Помимо встроенной подпрограммы RANDOM_NUMBER в CVF и FPS есть дополнительные подпрограммы получения случайных чисел RANDOM

и RAN, а также функции библиотеки PortLib: DRAND, DRANDM, IRAND, IRANDM, RAN, RAND и RANDOM. Все они взаимозаменяемы, поскольку используют один и тот же алгоритм генерации псевдослучайных чисел.

6.20. Встроенная подпрограмма CPU_TIME

Подпрограмма CPU_TIME(time) возвращает процессорное время time, тип которого - REAL(4). Единицы измерения времени - секунды; после десятичной точки time содержит две значащих цифры. Может быть использована для оценки продолжительности вычислений, например:

real(4) :: start_time, finish_time call cpu_time(start_time) <Вычисления>

call cpu_time(finish_time)

print *, 'Время вычислений = ', finish_time - start_time

202