自定义类型
[PROGRAM AAIMPLICIT NONE
TYPE::ND !自定义类型:节点
INTEGER ::ID !节点编号
REAL ::X,Y !节点坐标
ENDTYPE
TYPE::EL !自定义类型:单元
INTEGER::ID !单元编号
! TYPE(ND%X)::N1
! TYPE(ND)::N1,N2
TYPE(ND)::N !组成单元的节点,为ND类型,将包含三个数据,读取时,只用到X,Y这两个
! TYPE(ND)%ID::N !不能这样定义
ENDTYPE
TYPE(ND)::ALLND(1,1)
TYPE(EL)::ALLEL(1,1)
OPEN(11,FILE="T.DAT")
READ(11,*) ALLND%ID, ALLND%X, ALLND%Y
!READ(11,*) ALLEL
!READ(11,*) ALLEL%NUM,ALLEL%ND%X,ALLEL%ND%Y
READ(11,*)ALLEL%ID, ALLEL%N%X, ALLEL%N%Y
!READ(11,*)ALLEL
PRINT*,ALLND
PRINT*,ALLEL
END
数据:
第一行:6 0.33 0.12
第二行:3 5 7
运行的结果是第二行出来四个数,我期望的是3个,在第一个后面多出一个0
[被我注释掉的都是验证过不能用的]
60.3300000 0.1200000
3 0 5.000000 7.000000
请按任意键继续. . .
你希望的是什么样子? 上面注释有错啊.
TYPE(ND)::N !组成单元的节点,为ND类型,将包含三个数据,读取时,只用到X,Y这两个
应该是用到两个ND的ID,EL的定义有问题
不过这个应该不是最后输出错误的原因 fcode 发表于 2014-5-22 17:21
60.3300000 0.1200000
3 0 5.000000 7.000000
请按任意键 ...
第二行 3 5 7 PRINT*,ALLEL
改为
PRINT*,ALLEL%ID, ALLEL%N%X, ALLEL%N%Y fcode 发表于 2014-5-22 17:28
PRINT*,ALLEL
改为
PRINT*,ALLEL%ID, ALLEL%N%X, ALLEL%N%Y
ALLE是包含四个元素的,因此直接输出会有四个
got it !
页:
[1]