Civil Engineering Reference
In-Depth Information
CALL spabac(mc,a,kdiag); READ(10,*)nof
ALLOCATE(node(nof),sense(nof),lp(nof),dis(nstep,nof),vel(nstep,nof),
&
acc(nstep,nof)); READ(10,*)(node(i),sense(i),i=1,nof)
DO i=1,nof; lp(i)=nf(sense(i),node(i)); END DO
dis(1,:)=d(lp); vel(1,:)=v(lp); acc(1,:)=a(lp)
!-----------------------time stepping loop--------------------------------
DO j=2,nstep
a1=d/f1+v/f2+a*(pt5/beta-one)
b1=gamma*d/f2-v*(one-gamma/beta)-dtim*a*(one-pt5*gamma/beta)
CALL linmul_sky(mv,a1,vc,kdiag); CALL linmul_sky(cv,b1,kd,kdiag)
d=vc+kd; d(lf(:))=d(lf(:))+al(j,:); CALL spabac(kp,d,kdiag)
v=gamma*d/f2-b1; a=d/f1-a1
dis(j,:)=d(lp); vel(j,:)=v(lp); acc(j,:)=a(lp)
END DO
DO i=1,nof
WRITE(11,'(/,2(A,I3))')" Output at node",node(i),", sense",sense(i)
WRITE(11,'(A)')" time disp velo accel"
DO j=1,nstep; WRITE(11,'(4E12.4)')(j-1)*dtim,dis(j,i),vel(j,i),acc(j,i)
END DO
END DO
STOP
END PROGRAM p111
Scalar integers:
i
simple counter
iel
simple counter
iwp SELECTED REAL KIND(15)
j
simple counter
k
simple counter
lnode
loaded node number
lsense
sense of freedom to be loaded at node
lnode
ndof
number of degrees of freedom per element
nels
number of elements
neq
number of degrees of freedom in the mesh
nlfp
number of load function points
nln
number of loaded freedoms
nn
number of nodes in the mesh
nod
number of nodes per elements
nodof
number of degrees of freedom per node
nof
number of output freedoms
nprops
number of material properties
np_types
number of different property types
nr
number of restrained nodes
number of calculation time steps
nstep
Scalar reals:
beta
Newmark time stepping parameter
calculation time step
dtim
Rayleigh damping parameter on stiffness
fk
fm
Rayleigh damping parameter on mass
f1
temporary working variable
f2
temporary working variable