代码之家  ›  专栏  ›  技术社区  ›  codemonkey00016

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

  •  0
  • codemonkey00016  · 技术社区  · 7 年前

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

    错误说明coarray在(1)处被禁用,使用'-fcoarray='启用|,但是我没有使用任何数组,所以我应该怎么做?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Rodrigo Rodrigues    7 年前

    如果您不打算使用coarray,也不需要处理线程和图像,那么就放弃这个习惯吧 init_random_seed random_seed here :

    如果调用RANDOM\u SEED时没有参数,则使用RANDOM作为种子 从操作系统检索的数据。

    否则,如果您确实计划使用coarray特性,并且对线程和映像(仅推荐用于高级用途)感到烦恼,那么您可以使用新的内在特性 random_init ,如果它在编译器中可用。如果不是,那么建议使用库,比如 OpenCoarrays ,或自行实现。

        2
  •  0
  •   codemonkey00016    7 年前

    我使用的init\u random\u seed的实现方式是错误的,所以我完全删除了它并编辑了代码

    推荐文章