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
Search WWH ::




Custom Search