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,或者自己实现。
我在 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,或者自己实现。