program test
type matrix(kind,n)
integer, kind :: kind=kind(0.0d0)! gives a default value
integer, len :: n ! no default value given
real(kind) :: arr(n)
end type
type(matrix(kind=kind(0.0),n=2)) :: a
type(matrix(4,:)),allocatable :: b
a%arr = [1,2]
b=a
print*,b
a%arr = [3,4]
print*,b
pause
end program
1.png (35.09 KB, 下载次数: 340)
vvt 发表于 2018-10-18 19:14
Type :: PMat(k)
INTEGER(KIND=4),KIND :: k
REAL(KIND=8) , allocatable :: M(:,:)
li913 发表于 2018-10-18 19:16
我用ivf17.0, 这个功能好像还不健全。[mw_shl_code=fortran,true]program test
type matrix(kind,n)
in ...
liudy02 发表于 2018-10-18 20:56
谢谢大神的回复
您的意思是直接放弃派生类型的LEN型参数,而是用不定结构数组或者指针来实现同样的功能? ...
vvt 发表于 2018-10-19 08:50
我是觉得可分配数组比 Integer , len 更灵活。
type(matrix(kind=4,n=2)) :: a(100)
li913 发表于 2018-10-19 10:29
标准虽然提出来了,但是对编译器厂商而言:1、不一定能够实现;2、可选择性实现某些功能;3、暂时没有实现 ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |