我正在寻找一种将逻辑类型变量转换为可在 ifort 和 gfortran 中工作的真实类型的防弹方法。以下适用于 ifort,但不适用于 gfortran:
logical :: a
real :: b
a = .true.
b = dble(a)
gfortran 中抛出的错误是
b = dble(a)
1
Error: 'a' argument of 'dble' intrinsic at (1) must be a numeric type
显然,.true。应该映射到 1.d0 和 .false。为 0.d0。这样做的最佳方法是什么?