568
16 Computer Programs in Vibration Analysis
Table 16.3 (continued)
*
Specift the no. of bounary nodes
read(1,*)nbp
write(2,156)nbp
*
Specify the boundary codes
if(nbp.ne.0)then
print *,'Specify boundary codes'
read(1,*)((nbd(ibp,ind),ind=1,7),ibp=1,nbp)
write(2,157)((nbd(ibp,ind),ind=1,7),ibp=1,nbp)
endif
if(ans.eq.'y'.or.ans.eq.'Y')then
*
Specify the loads acting on the members
read(1,*)nload
read(1,*)(nodlod(ild),(load(ild,ind),ind=1,6),ild=1,nload)
write(2,158)nload
write(2,159)(nodlod(ild),(load(ild,ind),ind=1,6),ild=1,nload)
endif
ntv=nnod*6
*
Half bandwidth
nbh=0
do iel=1,nelm
do in =1,2
do jn =1,2
nbl = abs(nod(iel,in)-nod(iel,jn))
if(nbl.gt.nbh)nbh=nbl
enddo
enddo
enddo
nbh=(nbh+1)*6
write(2,160)ntv,nbh
*
Calculation of stiffness and mass matrices of the elements
do 101 iel=1,nelm
x1=xg(nod(iel,1))
x2=xg(nod(iel,2))
y1=yg(nod(iel,1))
y2=yg(nod(iel,2))
z1=zg(nod(iel,1))
z2=zg(nod(iel,2))
len = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))
call elst(iel,emod,len,estif)
call tran(iel,x1,x2,y1,y2,z1,z2,len,tra)
call ttkt(iel,estif,tra,estg)
if(ans.eq.'y'.or.ans.eq.'Y') go to 103
call elmas(iel,dens,len,emas)
do irow=1,12
estg(irow,irow) = estg(irow,irow)+alpha*emas(irow,irow)
enddo
(continued)
16 Computer Programs in Vibration Analysis
Table 16.3 (continued)
*
Specift the no. of bounary nodes
read(1,*)nbp
write(2,156)nbp
*
Specify the boundary codes
if(nbp.ne.0)then
print *,'Specify boundary codes'
read(1,*)((nbd(ibp,ind),ind=1,7),ibp=1,nbp)
write(2,157)((nbd(ibp,ind),ind=1,7),ibp=1,nbp)
endif
if(ans.eq.'y'.or.ans.eq.'Y')then
*
Specify the loads acting on the members
read(1,*)nload
read(1,*)(nodlod(ild),(load(ild,ind),ind=1,6),ild=1,nload)
write(2,158)nload
write(2,159)(nodlod(ild),(load(ild,ind),ind=1,6),ild=1,nload)
endif
ntv=nnod*6
*
Half bandwidth
nbh=0
do iel=1,nelm
do in =1,2
do jn =1,2
nbl = abs(nod(iel,in)-nod(iel,jn))
if(nbl.gt.nbh)nbh=nbl
enddo
enddo
enddo
nbh=(nbh+1)*6
write(2,160)ntv,nbh
*
Calculation of stiffness and mass matrices of the elements
do 101 iel=1,nelm
x1=xg(nod(iel,1))
x2=xg(nod(iel,2))
y1=yg(nod(iel,1))
y2=yg(nod(iel,2))
z1=zg(nod(iel,1))
z2=zg(nod(iel,2))
len = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))
call elst(iel,emod,len,estif)
call tran(iel,x1,x2,y1,y2,z1,z2,len,tra)
call ttkt(iel,estif,tra,estg)
if(ans.eq.'y'.or.ans.eq.'Y') go to 103
call elmas(iel,dens,len,emas)
do irow=1,12
estg(irow,irow) = estg(irow,irow)+alpha*emas(irow,irow)
enddo
(continued)
