Fortran 错误,使用“-fcoarray=”启用

Fortran error, use '-fcoarray=' to enable

我在 fortran 中遇到了一些尴尬的错误,这是我需要的代码来模拟固态材料

  PROGRAM EUCLID
    PRINT *, 'A?'
    READ *, NA
    IF (NA.LE.0) THEN
      PRINT *, 'A must be a positive integer.'
      STOP
    END IF
    PRINT *, 'B?'
    READ *, NB
    IF (NB.LE.0) THEN
      PRINT *, 'B must be a positive integer.'
      STOP
    END IF
    PRINT *, 'The GCD of', NA, ' and', NB, ' is', NGCD(NA, NB), '.'
    STOP
  END

  FUNCTION NGCD(NA, NB)
    IA = NA
    IB = NB
1   IF (IB.NE.0) THEN
      ITEMP = IA
      IA = IB
      IB = MOD(ITEMP, IB)
      GOTO 1
    END IF
    NGCD = IA
    RETURN
  END

错误提示 Coarrays 在 (1) 处被禁用,请使用“-fcoarray=”来启用|,但我没有使用任何数组,所以我该怎么办?

我使用 codeblocks 作为我的编译器,我以前写的一些程序没有问题

init_random_seed 我使用的是错误的实现方式,所以我将其完全删除并编辑了代码

如果您不打算使用 coarrays 并且不为线程和图像烦恼,只需放弃此自定义 init_random_seed 子例程并用内部 random_seed 子例程替换它。来自函数参考 here:

If RANDOM_SEED is called without arguments, it is seeded with random data retrieved from the operating system.

否则,如果您确实打算使用 coarray 功能并且不厌其烦地处理线程和图像(仅推荐用于高级用法),您可以使用新的内在函数 random_init,前提是它在您的编译器中可用。如果不是,那么建议使用库,例如​​ OpenCoarrays,或者自己实现。