10 楼
whero_2000 [专家分:0] 发布于 2010-12-19 13:40:00
刚才我另外编了一个小的程序,里面定义1200维的数组就可以 而在出现问题的程序里只要是维数多过1000的 到1001都不行。是不是我的定义方法错了?再麻烦老师帮我看下吧
PROGRAM FSII
IMPLICIT REAL*8(A-H,O-Z),INTEGER(I-N)
ALLOCATABLE::IELEM(:,:),VMATI(:),VCOOD(:,:),
$IFIXD(:,:),VFIXD(:,:),ILOAD(:,:),VLOAD(:,:)
ALLOCATABLE::GMD(:,:),GLD(:,:),GKD(:,:),
$GMF(:,:),GLF(:,:),GKF(:,:),GG(:,:)
ALLOCATABLE::VMD(:,:),VLD(:,:),VKD(:,:),
$VMF(:,:),VLF(:,:),VKF(:,:),VGG(:,:)
ALLOCATABLE::V(:),P(:),VGRID(:)
ALLOCATABLE::DS(:),VS(:),AS(:)
COMMON/COM1/MND,NUMEL,NUMPT,NF
COMMON/COM2/MND2,NUMPT2,N
COMMON/COM3/GRAV,NPC
COMMON/STUC/H,RAD,APM
COMMON/ELEM/NODE,INTX,INTY,NFIX
COMMON/DYN/OMEGA,TT,DT,ALPHA,DELTA,GAMA
OPEN(5, FILE ='IN_DAT', STATUS= 'UNKNOWN' )
C IN_DAT.DAT-输入文件;
OPEN(6, FILE= 'OUT_DAT', STATUS= 'UNKNOWN')
C OUT_DAT-输出所有输入文件;
READ(5,*)MND
PRINT*,"输入固体模型的单元节点数MND为:",MND
READ(5,*)NUMEL
PRINT*,"输入的固体模型单元总数NUMEL为:",NUMEL
READ(5,*)NUMPT
PRINT*,"输入的固体模型节点总数NUMPT为:",NUMPT
READ(5,*)NF
PRINT*,"输入的节点速度自由度数NF为:",NF
READ(5,*)NFIX
PRINT*,"输入的有速度约束的节点值NFIX为:",NFIX
READ(5,*)NPC
PRINT*,"输入流体向固体传递压力节点NPC为:",NPC
READ(5,*)OMEGA
PRINT*,"载荷角频率OMEGA为:",OMEGA
READ(5,*)TT
PRINT*,"响应总时间TT为:",TT
READ(5,*)DT
PRINT*,"子部时间DT为:",DT
READ(5,*)ALPHA
PRINT*,"参数ALPHA为:",ALPHA
READ(5,*)DELTA
PRINT*,"参数DELTA为:",DELTA
READ(5,*)GAMA
PRINT*,"参数GAMA为:",GAMA
READ(5,*)H
PRINT*,"悬浮物的高度H为:",H
READ(5,*)RAD
PRINT*,"悬浮物的半径RAD为:",RAD
READ(5,*)APM
PRINT*,"振动板的位移幅值为APM为:",APM
MND2=NF*MND
NUMPT2=NF*NUMPT
N=TT/DT
ALLOCATE(IELEM(NUMEL,3+MND),VMATI(3),VCOOD(NUMPT,2),
$IFIXD(NFIX,NF+1),VFIXD(NFIX,NF),ILOAD(NPC,NF+1),VLOAD(NPC,NF))
ALLOCATE(GMD(NUMPT,NUMPT),GLD(NUMPT,NUMPT),GKD(NUMPT,NUMPT2),
$GMF(NUMPT2,NUMPT2),GLF(NUMPT2,NUMPT2),GKF(NUMPT2,NUMPT2),
$GG(NUMPT2,NUMPT))
ALLOCATE(VMD(MND,MND),VLD(MND,MND),VKD(MND,MND2),
$VMF(MND2,MND2),VLF(MND2,MND2),VKF(MND2,MND2),VGG(MND2,MND))
ALLOCATE(V(NUMPT2),P(NUMPT),VGRID(NUMPT2))
ALLOCATE(DS(N+1),VS(N+1),AS(N+1))
CALL INPUT(IELEM,VMATI,VCOOD,VGRID,DS,VS,AS,V,P)