0% found this document useful (0 votes)
22 views7 pages

Beam Software

This document contains the main program and several subroutines that perform a continuous beam analysis. The program reads in structural parameters, member properties, and boundary conditions, forms the system stiffness matrix, factors it using a banding technique, applies loads, and solves for displacements. Key steps include: 1) Reading input data and defining system properties 2) Calculating element stiffness matrices and assembling the global stiffness matrix 3) Factoring the stiffness matrix into an upper band using Gaussian elimination 4) Applying loads and solving the factored system for displacements

Uploaded by

Tawhid Shajad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views7 pages

Beam Software

This document contains the main program and several subroutines that perform a continuous beam analysis. The program reads in structural parameters, member properties, and boundary conditions, forms the system stiffness matrix, factors it using a banding technique, applies loads, and solves for displacements. Key steps include: 1) Reading input data and defining system properties 2) Calculating element stiffness matrices and assembling the global stiffness matrix 3) Factoring the stiffness matrix into an upper band using Gaussian elimination 4) Applying loads and solving the factored system for displacements

Uploaded by

Tawhid Shajad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

!

======================================================================
! MAIN PROGRAM FOR CONTINOUS BEAM
! ======================================================================
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E
OPEN (5,FILE='CBEAMF1.txt',STATUS='UNKNOWN')
OPEN (6,FILE='CBEAMF1.out',STATUS='UNKNOWN')
101 READ(5,*)ISN,ITS,NLS
102 CALL SDATA1
103 CALL STIFF1
104 CALL BANFAC
LN=0
105 LN=LN+1
106 CALL LDATA1
107 CALL LOADS1
108 CALL BANSOL
109 CALL RESULT1
IF(NLS.GT.LN) THEN
GO TO 105
ELSE
GO TO 111
ENDIF
111 STOP
END

! ==============================================================
SUBROUTINE SDATA1
! ==============================================================
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E
! -----------------------------------------------------------------
! * WRITE TITLE
! -----------------------------------------------------------------
WRITE(6,*)'PROGRAME FOR CONTINUOUS BEAM'
WRITE(6,901) 'ISN','ITS','NLS'
901 FORMAT(A5,A5,A5)
WRITE(6,902) ISN,ITS,NLS
902 FORMAT(I5,I5,I5)
WRITE(6,*)'STRUCTURAL PARAMETERS'
WRITE(6,903) 'M','N','NJ','NR','NRJ','E'
903 FORMAT(A5,A5,A5,A5,A5,A5)
READ(5,*)M,NR,NRJ,E
NJ=M+1
ND=2*NJ
N=ND-NR
WRITE(6,904) M,N,NJ,NR,NRJ,E
904 FORMAT(I5,I5,I5,I5,I5,I6)
WRITE(6,*)'MEMBER INFORMATION'
WRITE(6,905)
905 FORMAT(1X,'MEMBER',4X,'EL',8X,'ZI')
MD=4
NB=4
DO 10 J=1,M
READ (5,*)I,EL(I),ZI(I)

1
WRITE(6,906) I,EL(I),ZI(I)
906 FORMAT(I5,3X,F8.2,3X,F8.2)
10 CONTINUE
WRITE(6,*)'JOINT RESTRAINTS'
WRITE(6,907)
907 FORMAT(1X,'JOINT',3X,'JR1',5X,'JR2')
DO 20 J=1,ND
JRL(J)=0
20 CONTINUE
DO 30 J=1,NRJ
READ(5,*) K,JRL(2*K-1),JRL(2*K)
! WRITE(6,908) K,JRL(2*K-1),JRL(2*K)
! 908 FORMAT(I5,3X,I4,3X,I4)
30 CONTINUE
DO 36 J=1,NJ
WRITE(6,908) J,JRL(2*J-1),JRL(2*J)
908 FORMAT(I5,3X,I4,3X,I4)
36 CONTINUE
N1=0
DO 40 J=1,ND
N1=N1+JRL(J)
IF(JRL(J).GT.0) GO TO 103
ID(J)=J-N1
GO TO 40
103 ID(J)=N+N1
40 CONTINUE
! WRITE(6,*)(ID(I),I=1,ND)
RETURN
END

! =====================================================================
SUBROUTINE STIFF1
! =====================================================================
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E
NB=4
MD=4
ND=2*NJ
! WRITE(6,*),N,NB,MD,M,ND
! WRITE(6,*)(ID(I),I=1,ND)
DO 1 J=1,N
DO 1 K=1,NB
SFF(J,K)=0.0
1 CONTINUE
DO 5 I=1,M
SCM1=4.0*E*ZI(I)/EL(I)
SCM2=1.5*SCM1/EL(I)
SCM3=2.0*SCM2/EL(I)
SM(I,1,1)=12*E*ZI(I)/EL(I)**3
SM(I,1,2)=6*E*ZI(I)/EL(I)**2
SM(I,1,3)=-12*E*ZI(I)/EL(I)**3
SM(I,1,4)=6*E*ZI(I)/EL(I)**2
SM(I,2,2)=4*E*ZI(I)/EL(I)
SM(I,2,3)=-6*E*ZI(I)/EL(I)**2
SM(I,2,4)=2*E*ZI(I)/EL(I)
SM(I,3,3)=12*E*ZI(I)/EL(I)**3
SM(I,3,4)=-6*E*ZI(I)/EL(I)**2
SM(I,4,4)=4*E*ZI(I)/EL(I)
DO 55 Y=1,4
DO 56 W=Y,4
SM(I,W,Y)=SM(I,Y,W)
56 CONTINUE

2
55 CONTINUE
! WRITE(6,*)'SM'
! WRITE(6,52)((SM(I,O,P),P=1,4),O=1,4)
52 FORMAT(4E12.3/)
IM(4*I-3)=2*I-1
IM(4*I-2)=2*I
IM(4*I-1)=2*I+1
IM(4*I)=2*I+2
DO 4 J=1,MD
I1=IM(J+4*I-4)
IF(JRL(I1).GT.0) GO TO 4
DO 3 K=J,MD
I2=IM(K+4*I-4)
IF(JRL(I2).GT.0) GO TO 3
IR=ID(I1)
IC=ID(I2)
IF(IR.LT.IC) GO TO 2
ITEM=IR
IR=IC
IC=ITEM
2 IC=IC-IR+1
! WRITE(6,*)IR,IC
SFF(IR,IC)=SFF(IR,IC)+SM(I,J,K)
3 CONTINUE
4 CONTINUE
5 CONTINUE
! WRITE(6,*)'SFF'
! WRITE(6,50)((SFF(I,J),J=1,NB),I=1,N)
50 FORMAT(4E12.3/)
RETURN
END

! ==============================================================
SUBROUTINE BANFAC
! ==============================================================

COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E
! NB=4
IF(SFF(1,1).LE.0) RETURN
DO 750 J=2,N
J1=J-1
J2=J-NB+1
IF(J2.LT.1) J2=1
IF(J1.EQ.1) GO TO 730
DO 720 I=2,J1
I1=I-1
IF(I1.LT.J2) GO TO 720
SUM=SFF(I,J-I+1)
DO 711 K=J2,I1
1 SUM=SUM-SFF(K,I-K+1)*SFF(K,J-K+1)
711 CONTINUE
SFF(I,J-I+1)=SUM

3
720 CONTINUE
730 SUM=SFF(J,1)
DO 740 K=J2,J1
TEMP=SFF(K,J-K+1)/SFF(K,1)
SUM=SUM-TEMP*SFF(K,J-K+1)
740 SFF(K,J-K+1)=TEMP
IF(SUM.LE.0) RETURN
SFF(J,1)=SUM
750 CONTINUE
! WRITE(6,*)'SFF2'
! WRITE(6,50)((SFF(I,J),J=1,NB),I=1,N)
!50 FORMAT(4E12.3/)
RETURN
END

! ========================================================================
SUBROUTINE LDATA1
! ========================================================================
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E
! OPEN (UNIT=6,FILE='CBEAMF1.OUT',STATUS='UNKNOWN')
! OPEN (UNIT=5,FILE='CBEAMF1.txt',STATUS='UNKNOWN')
WRITE(6,*)'LOADING NO.',LN
WRITE(6,52)'NLJ','NLM'
52 FORMAT(A10,A10)
READ(5,*) NLJ,NLM
WRITE(6,*)NLJ,NLM
IF (NLJ.EQ.0) GOTO 90

WRITE(6,*)'ACTION AT JOINTS'
WRITE(6,50)'JOINT','AJ1','AJ2'
50 FORMAT(A10,A20,A20)
DO 30 J=1,NLJ
READ (5,*) K,AJ(2*K-1),AJ(2*K)

30 WRITE(6,*) K,' ',AJ(2*K-1),AJ(2*K)


90 CONTINUE
IF (NLM .EQ.0) GOTO 80
WRITE(6,*)'ACTIONS AT ENDS OF RESTRAINED MEMBERS DUE TO LOADS'
WRITE(6,51)'ELEMENT','AML1','AML2','AML3','AML4'
51 FORMAT(A10,A15,A15,A15,A15)
DO 60 J=1,NLM
READ(5,*) I,AML(1,I),AML(2,I),AML(3,I),AML(4,I)
WRITE(6,*) I,' ',AML(1,I),AML(2,I),AML(3,I),AML(4,I)
60 LML(I)=1
80 CONTINUE
RETURN
END

! =======================================================================
SUBROUTINE LOADS1
! =======================================================================
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E

4
IF(NLM.EQ.0)GO TO 20
DO 10 I=1,M
IF (LML(I).EQ.0) GO TO 10
AE(2*I-1)=AE(2*I-1)-AML(1,I)
AE(2*I)=AE(2*I)-AML(2,I)
AE(2*I+1)=AE(2*I+1)-AML(3,I)
AE(2*I+2)=AE(2*I+2)-AML(4,I)
10 CONTINUE
20 CONTINUE
DO 30 J=1,ND
JR=ID(J)
AC(JR)=AJ(J)+AE(J)
30 CONTINUE
RETURN
END

! =======================================================================================
SUBROUTINE BANSOL
! =======================================================================================
! This subroutine accepts the upper band of the factored (banded)
! stiffness matrix U(stored in a rectangular form)from subroutine BANFAC,
! and solves for the unknowns(which are the free displacements)
! It's basically the solution that concludes the Modified CHOLESKY method
! of solving systems of linear equations
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E

DO 2 I=1,N
J=I-NB+1
IF(I.LE.NB) J=1
SUM=AC(I)
K1=I-1
IF(J.GT.K1) GO TO 2
DO 1 K=J,K1
1 SUM=SUM-SFF(K,I-K+1)*DF(K)
2 DF(I)=SUM

DO 3 I=1,N
3 DF(I)=DF(I)/SFF(I,1)
DO 5 I1=1,N
I=N-I1+1
J=I+NB-1
IF(J.GT.N) J=N
SUM=DF(I)
K2=I+1
IF(K2.GT.J) GO TO 5
DO 4 K=K2,J
4 SUM=SUM-SFF(I,K-I+1)*DF(K)
5 DF(I)=SUM

5
RETURN
END

! ====================================================================
SUBROUTINE RESULT1
! ====================================================================
COMMON/BEAM1/ISN,ITS,NLS,NLJ,NLM,LDS,K,N,M,NJ,NR,NRJ,E,NB,ND,LN,MD
COMMON/BEAM2/EL(20),ZI(20),JRL(42),ID(42),SFF(20,20),SM(12,12,12),
. IM(40),AJ(100),AML(100,100),LML(20),AE(30),AC(30),
. AMD(30),DM(30),DJ(30),AM(30),AR(30),DF(50),
. A(100,100),B(50),U(50,50),X(50),SUM,I1,TEMP
INTEGER M,N,NJ,NR,NRJ,E
! NB=4
! MD=4
! ND=2*NJ
J=N+1
DO 2 K=1,ND
JE=ND-K+1
IF (JRL(JE).EQ.0) GO TO 1
DJ(JE)=0.0
GO TO 2
1 J=J-1
DJ(JE)=DF(J)
2 CONTINUE
WRITE(6,*)'JOINT DISPLACEMENTS'
WRITE(6,91) 'JOINT','DJ1','DJ2'
91 FORMAT(A10,A20,A20)
DO 3 J=1,NJ
WRITE(6,*) J,' ',DJ(2*J-1),' ',DJ(2*J)
3 CONTINUE

WRITE(6,*)'MEMBER END-ACTIONS'
WRITE(6,22) 'MEMBER','AM1','AM2','AM3','AM4'
22 FORMAT(A10,A15,A15,A15,A15)
! WRITE(6,*)'AJ'
! WRITE(6,*)(AJ(I),I=1,ND)
! WRITE(6,*)'DJ'
! WRITE(6,*)(DJ(I),I=1,16)
! WRITE(6,*)'IM'
! WRITE(6,*)(IM(I),I=1,16)

DO 6 I=1,M
DO 5 J=1,MD
AMD(J)=0.0
DO 4 K=1,MD
I1=IM(K+4*I-4)
DM(K)=DJ(I1)
4 AMD(J)=AMD(J)+SM(I,J,K)*DM(K)
! WRITE(6,*)'CHECK'
! WRITE(6,*)'DM'
! WRITE(6,*)(DM(K),K=1,4)
AM(J)=AML(J,I)+AMD(J)
I2=IM(J+4*I-4)
IF (JRL(I2).EQ.0) GO TO 5
AR(I2)=AR(I2)+AMD(J)
5 CONTINUE
6 WRITE(6,*) I,' ',AM(1),AM(2),AM(3),AM(4)
DO 7 J=1,ND
IF (JRL(J).EQ.0) GO TO 7
AR(J)=AR(J)-AJ(J)-AE(J)
7 CONTINUE

6
WRITE(6,*)'SUPPORT REACTIONS'
WRITE(6,233)'JOINT','AR1','AR2'
233 FORMAT(A10,A10,A20)

DO 8 J=1,NJ
J1=2*J-1;J2=2*J
N1=JRL(J1)+JRL(J2)
IF (N1.EQ.0) GO TO 8
WRITE(6,*)J,' ',AR(J1),AR(J2)
8 CONTINUE
RETURN
END

You might also like