我想使用Equivalence。它怎么能在gfortran-5中使用?
我正在使用:
Select Case (dst)
Case ("cm")
Equivalence :: (cm2Mm_r32, r32), (cm2Mm_r64, r64)
Call qcdiv (qb, qa, r32, r64, cm2Mm_r128)
Case ("m")
Equivalence :: (m2Mm_r32, r32), (m2Mm_r64, r64)
Call qcdiv (qb, qa, r32, r64, m2Mm_r128)
Case ("Km")
Equivalence :: (Km2Mm_r32, r32), (Km2Mm_r64, r64)
Call qcdiv (qb, qa, r32, r64, Km2Mm_r128)
End Select发布于 2015-03-11 21:38:21
等效语句必须放在声明部分中。你不能用条件来控制它。
现代的Fortran更喜欢transfer()来转换位模式。如果不需要类型转换,请使用指针。
实际上,我在代码的一个地方使用了等价性,其中Intel编译器无法优化transfer(),但这是一个例外,在使用它之前,您应该三思而后行。
https://stackoverflow.com/questions/28997200
复制相似问题