|
[Fortran] 纯文本查看 复制代码 04 | type , public :: CElementNode |
05 | integer :: ChannelLabel = 0 |
06 | type ( CElementNodeArray ) , dimension ( : ) , pointer :: pAdditionalNode = > null ( ) |
08 | procedure , public :: initNodeElement |
11 | type , public :: CElementNodeArray |
12 | type ( CElementNode ) , pointer :: pElementNode |
13 | end type CElementNodeArray |
16 | subroutine initNodeElement ( this ) |
17 | class ( CElementNode ) :: this |
20 | allocate ( this % pAdditionalNode ( 6 ) , stat = istat ) |
22 | print * , "creat pAdditionalNode failed,istat =" , istat |
24 | end subroutine initNodeElement |
31 | logical :: flag = .false. |
32 | type ( CElementNode ) :: pNode |
34 | call pNode % initNodeElement ( ) |
38 | flag = associated ( pNode % pAdditionalNode ( 1 ) % pElementNode ) |
编译环境visual2010+ivf2013:
调试过程值:[Fortran] 纯文本查看 复制代码 1 | pNode % PADDITIONALNODE ( 1 ) % PELEMENTNODE % CHANNELLABEL Undefined address INTEGER ( 4 ) |
2 | pNode % PADDITIONALNODE ( 1 ) % PELEMENTNODE % PADDITIONALNODE Undefined address TYPE ( CELEMENTNODE_mp_CELEMENTNODEARRAY ) |
3 | pNode % PADDITIONALNODE ( 1 ) % PELEMENTNODE % INITNODEELEMENT #BAADF00D PROCEDURE |
问题
pAdditionalNode指针初始化为空,但associated(pNode%pAdditionalNode%pElement)为.true.,
其中pNode%PADDITIONALNODE(1)%PELEMENTNODE%INITNODEELEMENT过程未初始化,赋值为一个十六进制数
求教,如何将pNode%PADDITIONALNODE(1)%PELEMENTNODE置空
ps:gfortran中这样执行后,pNode%PADDITIONALNODE(1)%PELEMENTNODE是空的
|
|