Fortran错误,请使用'-fcoarray ='启用

时间:2018-09-04 19:08:30

标签: arrays fortran fortran-coarrays

我在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

错误提示在(1)处禁用了Coarrays,使用'-fcoarray ='启用|,但是我没有使用任何数组,那我该怎么办?

我正在使用代码块作为编译器,并且与之前编写的某些程序没有问题

2 个答案:

答案 0 :(得分:1)

如果您不打算使用协数组并且不打扰线程和图像,只需放弃此自定义init_random_seed子例程,并用固有的random_seed子例程替换它即可。从函数参考here

  

如果在不带参数的情况下调用RANDOM_SEED,则将其随机植入   从操作系统检索的数据。

否则,如果您打算使用共数组功能并打扰线程和图像(仅建议高级使用),则可以使用新的内在random_init(如果在编译器中可用)。如果不是,那么建议使用OpenCoarrays之类的库,或者由您自己实现。

答案 1 :(得分:0)

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