Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Select 是否可以使用Fortran的选择类型来识别和区分类型?_Select_Fortran - Fatal编程技术网

Select 是否可以使用Fortran的选择类型来识别和区分类型?

Select 是否可以使用Fortran的选择类型来识别和区分类型?,select,fortran,Select,Fortran,可以选择类型来区分IntegerInt8、IntegerInt16、IntegerInt32和IntegerInt64吗 此外,Select Type是否可以识别整数类型,而不考虑它使用的位数?不同的整数类型构成不同的内在类型。是的,select类型区分不同类型的整数 理论上,我不知道是否有可能忽略类型,即不仅仅是字节数。您必须为每种类型使用不同的类型is节。是的,您可以编写如下内容。这里我使用的是来自内部模块iso_fortran_env的实数常量 不过请注意,你不能写作 SELECT TYP

可以选择类型来区分IntegerInt8、IntegerInt16、IntegerInt32和IntegerInt64吗


此外,Select Type是否可以识别整数类型,而不考虑它使用的位数?

不同的整数类型构成不同的内在类型。是的,select类型区分不同类型的整数


理论上,我不知道是否有可能忽略类型,即不仅仅是字节数。您必须为每种类型使用不同的类型is节。

是的,您可以编写如下内容。这里我使用的是来自内部模块iso_fortran_env的实数常量

不过请注意,你不能写作

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

在这种情况下,对于大多数当前编译器,默认类型的real可能与两个类型的guard语句匹配,这是编译器应该注意的错误。

类型是否仅与real32匹配?双精度怎么样?当然它接受整数类型,这就是为什么你把整数放在那里。最后一部分的澄清很好,我想评论预编辑,但它值得更明确吗?real32可能是默认的种类号,但如果默认种类号既不是real32也不是real64,则允许使用代码段。[我读这句话是说默认类型是这两种类型中的一种,但可能是real32.]类型是real32接受Real,类型是Real64接受双精度。@宙斯这是可能的结果,但不可移植。试着像-fdefault-real-8这样做,这并不违反标准!然后报告回来。还要注意,对于一个存储大小为32位的整数,可能有一个种类数字不是int32等。@francesalus确切地说,这是括号的意思,但直接说可能更好。事实上,我同意你的观点,进一步强调,如果存在一种根据存储大小进行选择的机制,那么它不一定会归结为一种。
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