Fortran 硬编码参数的类型
当我尝试使用gfortran 4.4.7编译代码时,我收到以下错误消息: 错误:位于(1)的参数“intkind8”中的类型不匹配;传递整数(4) 到整数(8) 使用ifort它可以编译,除非我需要F2003标准,在这种情况下会给出类似的错误 我的代码:Fortran 硬编码参数的类型,fortran,Fortran,当我尝试使用gfortran 4.4.7编译代码时,我收到以下错误消息: 错误:位于(1)的参数“intkind8”中的类型不匹配;传递整数(4) 到整数(8) 使用ifort它可以编译,除非我需要F2003标准,在这种情况下会给出类似的错误 我的代码: program kindDummy implicit none call takeIntKind4And8(0,0) contains subroutine takeIntKind4And8(intK
program kindDummy
implicit none
call takeIntKind4And8(0,0)
contains
subroutine takeIntKind4And8(intKind4, intKind8)
implicit none
integer(kind=4), intent(in) :: intKind4
integer(kind=8), intent(in) :: intKind8
print *, 'Integer(kind4): ', intKind4
print *, 'Integer(kind8): ', intKind8
end subroutine takeIntKind4And8
end program kindDummy
我想知道是否有一种优雅的方法可以让编译器将第一个0“变成”一个kind=4
整数,第二个变成kind=8
?
call takeIntKind4And8(0,0)
两个零都具有默认类型。种类编号不可移植,但您的默认编号可能是4
要生成第8类的0,请使用0\u 8
:
call takeIntKind4And8(0_4,0_8)
我建议不要直接使用4和8,而是使用整数常量,如0\u ip
,其中ip
是一个具有正确值的整数常量。有关详细信息,请参见中的
两个零都具有默认类型。种类编号不可移植,但您的默认编号可能是4
要生成第8类的0,请使用0\u 8
:
call takeIntKind4And8(0_4,0_8)
我建议不要直接使用4和8,而是使用整数常量,如0\u ip
,其中ip
是一个具有正确值的整数常量。有关详细信息,请参见中的
两个零都具有默认类型。种类编号不可移植,但您的默认编号可能是4
要生成第8类的0,请使用0\u 8
:
call takeIntKind4And8(0_4,0_8)
我建议不要直接使用4和8,而是使用整数常量,如0\u ip
,其中ip
是一个具有正确值的整数常量。有关详细信息,请参见中的
两个零都具有默认类型。种类编号不可移植,但您的默认编号可能是4
要生成第8类的0,请使用0\u 8
:
call takeIntKind4And8(0_4,0_8)
我建议不要直接使用4和8,而是使用整数常量,如0\u ip
,其中ip
是一个具有正确值的整数常量。更多信息,请参阅