Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
7291 Обсуждение

How to make random generator stream state global?

krieger
Начинающий
1 441Просмотр.
Dear all,
this might be trivial for the f90 wizards soI apologise in advance for my
ignorance.
I want to use the MKL routine VDRNGUNIFORM to obtain vectors
of random numbers. The problem is, how to make the state variable STREAM, which is initialised by calling VSLNEWSTREAM in a separate subroutine global, so that it can be accessed by VDRNGUNIFORM in its own
routine. I cannot extend the argument listsof
the wrapper subroutines in which the MKL routines are called because their
format specification is prescribed by a project specification.
I tried to do this by common blocks in the wrapper routines:
TYPE (VSL_STREAM_STATE),POINTER :: stream
COMMON / randstate / stream
however, that results inthe followingcompiler error message
" If a common-block-object is of a derived type, it must be of a sequence type"
Any idea how to resolve this?
Karl
0 баллов
2 Ответы
krieger
Начинающий
1 441Просмотр.
Oops, a google search for a f90 beginners guide was all needed to resolve
my question. Packing the declaration of stream in a module helped.
Sorry for the trivial post... Time to outgrow from f77 ;-)
Intel_C_Intel
Сотрудник
1 441Просмотр.
So glad we could help :-) Bruce
Ответить