我的代码的目的是获取任何类型的数组,并将类型特定的东西做成不同的类型。我正在使用pgfortran(Fortran 03标准)来编译它,它编译得很好。
然而,我的子程序中的select类型构造" test_class"不会工作。每当我的数组实际上是整数时,它就转到class default
(这意味着它既不是整数也不是实数)。
我的代码有什么问题?我需要使用指针吗?
subroutine test_class(array)
implicit none
class(*)::array(:)
select type (array)
type is (integer)
print*, 'type is integer'
type is (real)
print*, 'type is real'
class default
print*, 'no type found'
end select
end subroutine
program testpoly
implicit None
integer::test(3,3),i,j
do i = 1, 3
do j = 1, 3
test(i,j) = i+j
enddo
enddo
call test_class(test)
end program