Program MemTest
Implicit None
Integer :: nEle, nNod
Integer, Allocatable :: emap(:,:)
Integer, Allocatable :: nEleIn(:),nodEle(:,:)
Integer :: i, j
Open( Unit = 11, File = 'in.dat' )
Read(11,*) nEle, nNod
allocate( emap(3,nEle) )
Read(11,*) emap
Close( Unit = 11 )
allocate( nEleIn( nNod ), nodEle( nNod,15) )
nEleIn = 0
nodEle = 0
!
! Loop all element
!
DO i = 1, nEle
nelein(emap(:,i)) = nelein(emap(:,i)) + 1
nodele(emap(:,i),nelein(emap(:,i))) = i
EndDo
Write(*,*) nEleIn(88)
write(*,*) nodEle( 88, : )
! Anothe Method
! initial zeros
nEleIn = 0
nodEle = 0
DO i = 1, nEle
ForAll( j = 1 : 3 )
nelein(emap(j,i)) = nelein(emap(j,i)) + 1
nodele(emap(j,i),nelein(emap(j,i))) = i
EndForAll
EndDo
Write(*,*) nEleIn(88)
write(*,*) nodEle( 88, : )
!
! deallocate Memory
!
Deallocate( emap, nEleIn, nodEle )
stop
End Program MemTest
out.jpg (23.78 KB, 下载次数: 1052)
3.27 KB, 下载次数: 2
chuxf 发表于 2014-3-1 12:12
版主的新手帖,速度围观。
嗯数组下标来自于另一个数组的值,a(b(i)) 这种,特别需要额外注意。 ...
chuxf 发表于 2014-3-1 13:58
你的意思是说 a( b(1:3) , b(1:3) ) 实际有9个元素,而非 3 个,是吧?
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |