select - 是否可以使用 Fortran 的 Select Type 来识别和区分类型?

标签 select fortran

选择类型能否区分Integer(Int8)Integer(Int16)Integer(Int32)整数(Int64)

此外,Select Type 是否可以识别整数类型,而不管它使用多少位数?

最佳答案

是的,您可以编写如下内容。在这里,我使用内部模块 iso_fortran_env 中的真实类型常量。

SELECT TYPE(areal)
TYPE is (REAL(real32))
   WRITE(*,*) '... real32'
TYPE is (REAL(real64))
   WRITE(*,*) '... real64'
CLASS default
   WRITE(*,*) '... default'
END SELECT

但请注意,你不能写

SELECT TYPE(areal)
TYPE is (REAL(real32))
   WRITE(*,*) '... real32'
TYPE is (REAL(real64))
   WRITE(*,*) '... real64'
TYPE is (REAL)
    WRITE(*,*) '... real'
CLASS default
   WRITE(*,*) '... default'
END SELECT

在这种情况下,默认类型的实数(对于大多数当前编译器来说可能是 real32)将匹配两个类型保护语句,这是编译器应该拾取的错误。

关于select - 是否可以使用 Fortran 的 Select Type 来识别和区分类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27471944/

相关文章:

sql - 如何在SQL Server中检索意外关闭的修改过程

mysql - 使用更新表的 select 语句更新查询

linux - Fortran:如何获取集群的节点名称

file-io - 无需提前阅读免费格式

sql - 将两个 sql select 查询(在 postgres 中)与 LIMIT 语句结合起来

mysql - 选择具有不同参数的最新记录行

mysql - 如何实现反向0x​​104567910?

thread-safety - 线程安全的统一随机数生成器

debugging - 如何跟踪重复分配的生命周期堆使用情况

multidimensional-array - 分配具有相互依赖维度的动态数组