|
|

楼主 |
发表于 2003-11-12 09:44:45
|
显示全部楼层
请教高手:运行fortran出现的这个错误怎样改???急!!!
[这个贴子最后由leemelli在 2003/11/12 11:26am 第 2 次编辑]
应该是程序的问题。因为如果我将其中(加!!!号的)那几行的!!!去掉,程序
就不显示任何错误了。我把这个子程序贴上吧,请大家帮忙审查一下。本子程序中用到的模块都已经在主程序之前定义过了。
subroutine area!
use array_node,only:nd
use array_weight_func,only:nmn,innode
use cotr_1,ony:ii,jj
use array_K,only:gaussk1,btdb,k1
use array_gauss,only:inco
integer::i,j,mm,nn,m,n,im,in,imm,inn
!
mm=0
nn=0
im=0
in=0
imm=0
inn=0
do 10 i=1,2*nmn
do 20 j=1,2*nmn
gaussk1(jj,i,j)=inco(jj)*btdb(i,j)
20 continue
10 continue
!
do 30 i=1,nd
if(innode(ii,jj,i).NE.0) then
m=innode(ii,jj,i)
mm=mm+1
do 40 j=1,nd
if(innode(ii,jj,j).NE.0) then
n=innode(ii,jj,j)
nn=nn+1
im=2*m
in=2*n
imm=2*mm
inn=2*nn
!!! k1(im-1,in-1)=k1(im-1,in-1)+gaussk1(jj,imm-1,inn-1)
!!! k1(im-1,in)=k1(2*m-1,2*n)+gaussk1(jj,2*mm-1,2*nn)
!!! k1(im,in-1)=k1(2*m,2*n-1)+gaussk1(jj,2*mm,2*nn-1)
!!! k1(im,in)=k1(im,in)+gaussk1(jj,imm,inn)
end if
40continue
end if
30 continue
endsubroutine area
※※※:通过调试我发现是错误出在gaussk1(jj,imm,inn)上,好像在!!!语句中不让我引用这个数组元素。 |
|