16.4 Computer Program for Free Vibration Analysis of Framed Structures
569
Table 16.3 (continued)
103
if(iel.eq.1)then
write(2,161) (estg(itg,itg),itg=1,12)
endif
*
Assembly of Element Stiffness Matrix
call assem(1,iel,estg)
if(iel.eq.1)then
write(2,162) (emas(itg,itg),itg=1,12)
endif
if(ans.eq.'y'.or.ans.eq.'Y') go to 101
*
Assembly of Element Mass Matrix
call assem(2,iel,emas)
101
continue
*
Crunching of Overall Stiiffness and Mass matrices
call crunch(1)
write(2,163) (gstif(kind(itv)),itv=1,ntv)
if(ans.eq.'y'.or.ans.eq.'Y') then
do iload=1,nload
ind=(nodlod(iload)-1)*6
do jnd=1,6
gload(ind+jnd)=gload(ind+jnd)+load(iload,jnd)
enddo
enddo
write(2,164) (gload(itv),itv=1,ntv)
else
call crunch(2)
write(2,165) (gmass(mind(itv)),itv=1,ntv)
endif
*
Setting Boundary Conditions
do 102 i=1,nbp
ii=nbd(i,1)
do 102 j=1,6
if(nbd(i,j+1).eq.0)go to 102
iii=(ii-1)*6+j
gstif(kind(iii))=gstif(kind(iii))*1.0e20
102
continue
if(ans.eq.'y'.or.ans.eq.'Y') then
*
Calculation of Nodal Displacements
call decom(ier)
call for
call bac
write (2,166) (ind,(gload((ind-1)*6+jnd),jnd=1,6),ind=1,nnod)
else
*
Calculation of Natural Frequencies
print *,'Specify the number of frequencies to be calculated'
(continued)
569
Table 16.3 (continued)
103
if(iel.eq.1)then
write(2,161) (estg(itg,itg),itg=1,12)
endif
*
Assembly of Element Stiffness Matrix
call assem(1,iel,estg)
if(iel.eq.1)then
write(2,162) (emas(itg,itg),itg=1,12)
endif
if(ans.eq.'y'.or.ans.eq.'Y') go to 101
*
Assembly of Element Mass Matrix
call assem(2,iel,emas)
101
continue
*
Crunching of Overall Stiiffness and Mass matrices
call crunch(1)
write(2,163) (gstif(kind(itv)),itv=1,ntv)
if(ans.eq.'y'.or.ans.eq.'Y') then
do iload=1,nload
ind=(nodlod(iload)-1)*6
do jnd=1,6
gload(ind+jnd)=gload(ind+jnd)+load(iload,jnd)
enddo
enddo
write(2,164) (gload(itv),itv=1,ntv)
else
call crunch(2)
write(2,165) (gmass(mind(itv)),itv=1,ntv)
endif
*
Setting Boundary Conditions
do 102 i=1,nbp
ii=nbd(i,1)
do 102 j=1,6
if(nbd(i,j+1).eq.0)go to 102
iii=(ii-1)*6+j
gstif(kind(iii))=gstif(kind(iii))*1.0e20
102
continue
if(ans.eq.'y'.or.ans.eq.'Y') then
*
Calculation of Nodal Displacements
call decom(ier)
call for
call bac
write (2,166) (ind,(gload((ind-1)*6+jnd),jnd=1,6),ind=1,nnod)
else
*
Calculation of Natural Frequencies
print *,'Specify the number of frequencies to be calculated'
(continued)
