这是这个问题的后续。
我发现Random_number()
对于并行编程来说并不可靠,它给出了不可重现的结果,而且我的程序严重依赖随机数。
如何在 Fortran 中编写并行安全的随机数生成器?
或者我在哪里可以找到它?
从 Fortran 2018 开始,可以初始化调用图像的伪随机数生成器,以便伪随机数序列与执行类似语句的其他图像不同,并且在程序的后续执行中会有所不同。
CALL RANDOM_INIT (REPEATABLE=.FALSE., IMAGE_DISTINCT=.TRUE.)
更多信息,请参阅 Fortran 2018 标准,第 16.9.155 节