Files
김경종 4cc312954f
Tests / Hermetic test suite (push) Has been cancelled
Tests / Skill frontmatter validation (push) Has been cancelled
add wiki
2026-05-28 17:16:48 +09:00

3359 lines
22 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- source-page: 1021 -->
```csv
C . STA00627
C . - - INPUT VARIABLES - -
C . A(NWK) = STIFFNESS MATRIX STORED IN COMPACTED FORM STA00628
C . V(NN) = RIGHT-HAND-SIDE LOAD VECTOR STA00629
C . MAXA(NNM) = VECTOR CONTAINING ADDRESSES OF DIAGONAL STA00630
C . ELEMENTS OF STIFFNESS MATRIX IN A STA00631
C . NN = NUMBER OF EQUATIONS STA00632
C . NWK = NUMBER OF ELEMENTS BELOW SKYLINE OF MATRIX STA00633
C . NNM = NN + 1 STA00634
C . KKK = INPUT FLAG STA00635
C . EQ. 1 TRIANGULARIZATION OF STIFFNESS MATRIX STA00636
C . EQ. 2 REDUCTION AND BACK-SUBSTITUTION OF LOAD VECTOR STA00637
C . IOUT = UNIT USED FOR OUTPUT STA00638
C . STA00639
C . STA00640
C . - - OUTPUT - -
C . A(NWK) = D AND L - FACTORS OF STIFFNESS MATRIX STA00641
C . V(NN) = DISPLACEMENT VECTOR STA00642
C . STA00643
C . STA00644
C . STA00645
C . IMPLICIT DOUBLE PRECISION (A-H,O-Z) STA00646
C . COMMON /TAPES/ IELMNT,ILOAD,IIN,IOUT STA00647
C . DIMENSION A(NWK),V(1),MAXA(1) STA00648
C . STA00649
C . PERFORM L*D*L(T) FACTORIZATION OF STIFFNESS MATRIX STA00650
C . STA00651
C . IF (KKK-2) 40,150,150 STA00652
40 DO 140 N=1,NN STA00653
KN=MAXA(N) STA00654
KL=KN + 1 STA00655
KU=MAXA(N+1) - 1 STA00656
KH=KU - KL STA00657
IF (KH) 110,90,50 STA00658
50 K=N - KH STA00659
IC=0 STA00660
KLT=KU STA00661
DO 80 J=1,KH STA00662
IC=IC + 1 STA00663
KLT=KLT - 1 STA00664
KI=MAXA(K) STA00665
ND=MAXA(K+1) - KI - 1 STA00666
IF (ND) 80,80,60 STA00667
60 KK=MIN0(IC,ND) STA00668
C=0. STA00669
DO 70 L=1,KK STA00670
70 C=C + A(KI+L)*A(KLT+L) STA00671
A(KLT)=A(KLT) - C STA00672
80 K=K + 1 STA00673
90 K=N STA00674
B=0. STA00675
DO 100 KK=KL,KU STA00676
K=K - 1 STA00677
KI=MAXA(K) STA00678
C=A(KK)/A(KI) STA00679
B=B + C*A(KK) STA00680
100 A(KK)=C STA00681
A(KN)=A(KN) - B STA00682
110 IF (A(KN)) 120,120,140 STA00683
120 WRITE (IOUT,2000) N,A(KN) STA00684
GO TO 800 STA00685
140 CONTINUE STA00686
GO TO 900 STA00687
C STA00688
C REDUCE RIGHT-HAND-SIDE LOAD VECTOR STA00689
C STA00690
150 DO 180 N=1,NN STA00691
KL=MAXA(N) + 1 STA00692
KU=MAXA(N+1) - 1 STA00693
IF (KU-KL) 180,160,160 STA00694
160 K=N STA00695
C=0. STA00696
```
<!-- source-page: 1022 -->
```csv
DO 170 KK=KL,KU
K=K - 1
170 C=C + A(KK)*V(K)
V(N)=V(N) - C
180 CONTINUE
C
C BACK-SUBSTITUTE
C
DO 200 N=1,NN
K=MAXA(N)
200 V(N)=V(N)/A(K)
IF (NN.EQ.1) GO TO 900
N=NN
DO 230 L=2,NN
KL=MAXA(N) + 1
KU=MAXA(N+1) - 1
IF (KU-KL) 230,210,210
210 K=N
DO 220 KK=KL,KU
K=K - 1
220 V(K)=V(K) - A(KK)*V(N)
230 N=N - 1
GO TO 900
C
800 STOP
900 RETURN
C
2000 FORMAT (/// STOP - STIFFNESS MATRIX NOT POSITIVE DEFINITE',///,
1 ' NONPOSITIVE PIVOT FOR EQUATION ',I8,//,
2 ' PIVOT = ',E20.12 )
C
END
SUBROUTINE LOADV (R,NEQ)
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
```
<!-- source-page: 1023 -->
```csv
DO 120 I=1,3 STA00767
KK=ID(I,II) STA00768
IL=I STA00769
120 IF (KK.NE.0) D(IL)=DISP(KK) STA00770
C STA00771
100 WRITE (IOUT,2010) II,D STA00772
C STA00773
RETURN STA00774
C STA00775
2000 FORMAT (///,' D I S P L A C E M E N T S',//,' NODE ',10X, STA00776
1 'X-DISPLACEMENT Y-DISPLACEMENT Z-DISPLACEMENT') STA00777
2010 FORMAT (1X,I3,8X,3E18.6) STA00778
C STA00779
END STA00780
SUBROUTINE STRESS (AA) STA00781
C STA00782
C STA00783
C PRO GR A M STA00784
C TO CALL THE ELEMENT SUBROUTINE FOR THE CALCULATION OF STA00785
C STRESSES STA00786
C STA00787
C STA00788
COMMON /VAR/ NG,MODEX STA00789
COMMON /EL/ IND,NPAR(10),NUMEG,MTOT,NFIRST,NLAST,ITWO STA00790
COMMON /TAPES/ IELMNT,ILOAD,IIN,IOUT STA00791
DIMENSION AA(1) STA00792
C STA00793
C LOOP OVER ALL ELEMENT GROUPS STA00794
C STA00795
C REWIND IELMNT STA00796
C STA00797
DO 100 N=1,NUMEG STA00798
NG=N STA00799
C READ (IELMNT) NUMEST,NPAR,(AA(I),I=1,NUMEST) STA00800
C CALL ELEMNT STA00801
C STA00802
C STA00803
C STA00804
100 CONTINUE STA00805
C STA00806
RETURN STA00807
END STA00808
SUBROUTINE TRUSS STA00809
C STA00810
C STA00811
C P R O G R A M STA00812
C TO SET UP STORAGE AND CALL THE TRUSS ELEMENT SUBROUTINE STA00813
C STA00814
C STA00815
COMMON /SOL/ NUMNP,NEQ,NWK,NUMEST,MIDEST,MAXEST,MK STA00816
COMMON /DIM/ N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15 STA00817
COMMON /EL/ IND,NPAR(10),NUMEG,MTOT,NFIRST,NLAST,ITWO STA00818
COMMON /TAPES/ IELMNT,ILOAD,IIN,IOUT STA00819
COMMON A(1) STA00820
C STA00821
C EQUIVALENCE (NPAR(2),NUME),(NPAR(3),NUMMAT) STA00822
C STA00823
NFIRST=N6 STA00824
IF (IND.GT.1) NFIRST=N5 STA00825
N101=NFIRST STA00826
N102=N101 + NUMMAT*ITWO STA00827
N103=N102 + NUMMAT*ITWO STA00828
N104=N103 + 6*NUME STA00829
N105=N104 + 6*NUME*ITWO STA00830
N106=N105 + NUME STA00831
NLAST=N106 STA00832
C STA00833
IF (IND.GT.1) GO TO 100 STA00834
IF (NLAST.GT.MTOT) CALL ERROR (NLAST-MTOT,3) STA00835
GO TO 200 STA00836
```
<!-- source-page: 1024 -->
```csv
100 IF (NLAST.GT.MTOT) CALL ERROR (NLAST-MTOT,4) STA00837
200 MIDEST=NLAST - NFIRST STA00838
CALL RUSS (A(N1),A(N2),A(N3),A(N4),A(N4),A(N5),A(N101),A(N102),1 A(N103),A(N104),A(N105)) STA00840
RETURN STA00841
END STA00842
SUBROUTINE RUSS (ID,X,Y,Z,U,MHT,E,AREA,LM,XYZ,MATP) STA00843
TRUSS ELEMENT SUBROUTINE STA00844
IMPLICIT DOUBLE PRECISION (A-H,O-Z) STA00845
REAL A STA00854
COMMON /SOL/ NUMNP,NEQ,NWK,NUMEST,MIDEST,MAXEST,MK STA00855
COMMON /DIM/ N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15 STA00856
COMMON /EL/ IND,NPAR(10),NUMEG,MTOT,NFIRST,NLAST,ITWO STA00857
COMMON /VAR/ NG,MODEX STA00858
COMMON /TAPES/ IELMNT,ILOAD,IIN,IOUT STA00859
COMMON A(1) STA00860
DIMENSION X(1),Y(1),Z(1),ID(3,1),E(1),AREA(1),LM(6,1),XYZ(6,1),MATP(1),U(1),MHT(1) STA00862
DIMENSION S(21),ST(6),D(3) STA00863
EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),NUMMAT) STA00864
ND=6 STA00865
GO TO (300,610,800),IND STA00866
READ AND GENERATE ELEMENT STA00867
INFORMATION STA00868
READ MATERIAL INFORMATION STA00869
WRITE (IOUT,2000) NPAR1,NUME STA00870
IF (NUMMAT.EQ.0) NUMMAT=1 STA00871
WRITE (IOUT,2010) NUMMAT STA00872
WRITE (IOUT,2020) STA00873
DO 10 I=1,NUMMAT STA00874
READ (IIN,1000) N,E(N),AREA(N) STA00875
WRITE (IOUT,2030) N,E(N),AREA(N) STA00876
READ ELEMENT INFORMATION STA00877
WRITE (IOUT,2040) STA00878
N=1 STA00879
READ (IIN,1020) M,II,JJ,MTYP,KG STA00880
IF (KG.EQ.0) KG=1 STA00881
IF (M.NE.N) GO TO 200 STA00882
I=II STA00883
J=JJ STA00884
MTYPE=MTYP STA00885
KKK=KG STA00886
SAVE ELEMENT INFORMATION STA00887
200 XYZ(1,N)=X(I) STA00888
XYZ(2,N)=Y(I) STA00889
XYZ(3,N)=Z(I) STA00890
XYZ(4,N)=X(J) STA00891
XYZ(5,N)=Y(J) STA00892
XYZ(6,N)=Z(J) STA00893
STA00894
STA00895
STA00896
STA00897
STA00898
STA00899
STA00900
STA00901
STA00902
STA00903
STA00904
STA00905
STA00906
```
<!-- source-page: 1025 -->
```csv
C
MATP(N)=MTYPE
C
DO 390 L=1,6
390 LM(L,N)=0
DO 400 L=1,3
LM(L,N)=ID(L,I)
400 LM(L+3,N)=ID(L,J)
C
UPDATE COLUMN HEIGHTS AND BANDWIDTH
CALL COLHT (MHT,ND,LM(1,N))
WRITE (IOUT,2050) N,I,J,MTYPE
IF (N.EQ.NUME) GO TO 900
N=N + 1
I=I + KKK
J=J + KKK
IF (N.GT.M) GO TO 100
GO TO 120
C
ASSEMBLE STRUCTURE STIFFNESS MATRIX
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
390
LM(L,N)=0
DO 400 L=1,3
LM(L,N)=ID(L,I)
LM(L+3,N)=ID(L,J)
UPDATE COLUMN HEIGHTS AND BANDWIDTH
CALL COLHT (MHT,ND,LM(1,N))
WRITE (IOUT,2050) N,I,J,MTYPE
IF (N.EQ.NUME) GO TO 900
N=N + 1
I=I + KKK
J=J + KKK
IF (N.GT.M) GO TO 100
GO TO 120
ASSEMBLE STRUCTURE STIFFNESS MATRIX
610 DO 500 N=1,NUME
MTYPE=MATP(N)
XL2=0.
DO 505 L=1,3
D(L)=XYZ(L,N) - XYZ(L+3,N)
XL2=XL2 + D(L)*D(L)
XL=SQRT(XL2)
XX=E(MTYPE)*AREA(MTYPE)*XL
DO 510 L=1,3
ST(L)=D(L)/XL2
ST(L+3)=-ST(L)
KL=0
DO 600 L=1,6
YY=ST(L)*XX
DO 600 K=L,6
KL=KL + 1
600 S(KL)=ST(K)*YY
CALL ADDBAN (A(N3),A(N2),S,LM(1,N),ND)
500 CONTINUE
GO TO 900
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
610
DO 500 N=1,NUME
MTYPE=MATP(N)
XL2=0.
DO 505 L=1,3
D(L)=XYZ(L,N) - XYZ(L+3,N)
XL2=XL2 + D(L)*D(L)
XL2=0.
DO 600 L=1,6
YY=ST(L)*XX
DO 600 K=L,6
KL=KL + 1
600 S(KL)=ST(K)*YY
CALL ADDBAN (A(N3),A(N2),S,LM(1,N),ND)
500 CONTINUE
GO TO 900
C
C
C
C
C
C
C
C
C1
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
S
T
R
E
S
C
A
L
C
C
U
L
A
T
O
N
S
C
L
A
C
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
C
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
S
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
O
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
D
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
O
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
U
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
P
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
O
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
O
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
M
M
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
O
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
O
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
M
O
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
M
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
M
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
N
O
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
O
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
S
T
R
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
S
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
S
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
M
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
M
N
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
```
<!-- source-page: 1026 -->
```csv
806 CONTINUE STA00979
P=STR*AREA(MTYPE) STA00980
WRITE (IOUT,2070) N,P,STR STA00981
830 CONTINUE STA00982
C STA00983
900 RETURN STA00984
C STA00985
1000 FORMAT (I5,2F10.0) STA00986
1010 FORMAT (2F10.0) STA00987
1020 FORMAT (5I5) STA00988
2000 FORMAT (' ELEMENT DEFINITION',///, STA00989
1 ' ELEMENT TYPE ',13(' .'),'( NPAR(1) ) . . =',I5,// STA00990
2 ' EQ.1, TRUSS ELEMENTS',// STA00991
3 ' EQ.2, ELEMENTS CURRENTLY',// STA00992
4 ' EQ.3, NOT AVAILABLE',/// STA00993
5 ' NUMBER OF ELEMENTS.',10(' .'),'( NPAR(2) ) . . =',I5,// STA00994
2010 FORMAT (' MATERIAL DEFINITION',///, STA00995
1 ' NUMBER OF DIFFERENT SETS OF MATERIAL',// STA00996
2 ' AND CROSS-SECTIONAL CONSTANTS ', STA00997
3 4(' .'),'( NPAR(3) ) . . =',I5,// STA00998
2020 FORMAT (' SET YOUNG'S CROSS-SECTIONAL',// STA00999
1 ' NUMBER MODULUS',10X,'AREA',// STA01000
2 15X,'E',14X,'A') STA01001
2030 FORMAT (/,I5,4X,E12.5,2X,E14.6) STA01002
2040 FORMAT (///,' ELEMENT INFORMATION',///, STA01003
1 ' ELEMENT NODE NODE MATERIAL',// STA01004
2 ' NUMBER-N I J SET NUMBER',// STA01005
2050 FORMAT (I5,6X,I5,4X,I5,7X,I5) STA01006
2060 FORMAT (///,' STRESS CALCULATIONS FOR ', STA01007
1 ' ELEMENT GROUP',I4,// STA01008
2 ' ELEMENT',13X,'FORCE',12X,'STRESS',// STA01009
3 ' NUMBER',// STA01010
2070 FORMAT (1X,I5,11X,E13.6,4X,E13.6) STA01011
C STA01012
END STA01013
SUBROUTINE SECOND (TIM) STA01014
C STA01015
SUBROUTINE TO OBTAIN TIME STA01016
THIS SUBROUTINE HAS BEEN USED ON AN IBM RS/6000 WORKSTATION STA01017
C STA01018
TIM=0.01*MCLOCK() STA01019
C STA01020
RETURN STA01021
END STA01022
```
# 12.5 EXERCISES AND PROJECTS
# Exercises
12.1. Consider the truss structure shown. Use the program STAP to solve for the response of the structure. Check your answer.
![](images/page-1026_0951d98bba2db1358f05022c3f18e0a919a7555cb431dfcc238aefe0733e4bad.jpg)
<details>
<summary>text_image</summary>
2
1 (= applied load)
10
5
5
Each Young
</details>
Each bar has cross-sectional area A = 1, Young's modulus E = 200,000
<!-- source-page: 1027 -->
12.2. Consider the truss structure shown. Use the program STAP to solve for the response of the structure. Check your answer.
![](images/page-1027_baaf75fde592fa065da284980e433f23d5a9d96293413f4fb24ee0732394a915.jpg)
<details>
<summary>text_image</summary>
1
8
10
8
</details>
Each bar has cross-sectional area A = 1, Young's modulus E = 200,000
12.3. Consider the truss structure shown. Use the program STAP to solve for the response of the structure. Check your answer.
![](images/page-1027_dddfa2396d6a4caec699d22243bff797be032e6090c5beac0763549cadff5e54.jpg)
<details>
<summary>text_image</summary>
10
20
20
</details>
Each bar has cross-sectional area A = 1, Young's modulus E = 200,000
12.4. Consider the truss structure shown. Use the program STAP to solve for the response of the structure. Check your answer.
![](images/page-1027_750a1c05455028d535f3e281fc10da1ec63232a81d403bf5bfbfca0a4de9f20e.jpg)
<details>
<summary>text_image</summary>
1
10
10
10
</details>
Each bar has cross-sectional area A = 1, Young's modulus E = 200,000
<!-- source-page: 1028 -->
# Projects
Below we give descriptions of some projects using STAP. Of course, once the program implementations have been performed, various analysis problems could be solved, and we point out only some possibilities. The student is encouraged to solve additional analysis problems.
Project 12.1. Extend the program STAP to be also applicable to static two-dimensional plane stress, plane strain, and axisymmetric analyses. For this purpose incorporate the subroutine QUADS in Section 5.6 into STAP. Verify the program implementation by solving the patch test problems in Fig. 4.17 and the cantilever plate problem discussed in Example 4.6.
Project 12.2. Proceed as in project 12.1 but incorporate a modified program QUADS, modified for the u/p formulation and the 4/1 element (see Section 4.4.3).
Project 12.3. Extend the program STAP to be also applicable to dynamic analysis by direct step-by-step integration. Allow for the selection of a lumped or consistent mass matrix and allow for the use of the central difference method or the Newmark method.
Use the extended program STAP to solve the problem considered in Example 9.14.
Project 12.4. Extend the program STAP to be also applicable to dynamic analysis by mode superposition. Allow for the selection of a lumped or consistent mass matrix.
Incorporate the subroutine JACOBI in Section 11.3.2 to calculate the frequencies and mode shapes and allow for the selection of the number of modes to be included in the mode superposition from 1 to p, where $p \leq n$ and n = number of degrees of freedom.
Use the extended program STAP to solve the problem considered in Example 9.14.
Project 12.5. Extend the program STAP as in project 12.4 but allow for the selection and use of all modes with frequencies between $\omega_{l}$ and $\omega_{u}$ . Then solve the following problem. Let $R(t) = \sin \omega_{R} t$ , $\omega_{R} = 2000$ . The bar is initially at rest (i.e., at zero displacement and at zero velocity). Perform the analysis using 4, 8, 40, 60, $\ldots$ , equal two-node truss elements in the finite element discretization of the bar. Compare your response predictions.
![](images/page-1028_1915eac345ef4102ac75b4ae852894e120422d0ebf54253dfe1ab0c16b8454aa.jpg)
<details>
<summary>text_image</summary>
100 cm
R(t)
</details>
Bar of cross-sectional area $A = 4\mathrm{cm}^2$
Young's modulus E = 4.4 MPa
$\rho =$ mass density $= 1560\mathrm{kg / m^3}$
Project 12.6. Extend the program STAP to allow for large displacements (but small strains) in the analysis of truss structures. Use the information given in Example 6.16. Then solve the analysis problem in Example 6.3.
<!-- source-page: 1029 -->
Project 12.7. Extend the program STAP to allow for large displacement two-dimensional plane stress, plane strain, and axisymmetric analysis. Use the program QUADS in Section 5.6 as the basis of the element subroutine and extend this program for the total Lagrangian formulation described in Section 6.3.4. Assume an elastic material with Young's modulus E and Poisson's ratio $\nu$ . Test the program on the simple analysis problems shown and compare your results with analytical calculations.
![](images/page-1029_51adfb7636558dc7c5d34671967bc5d233de88defe1fa06517eb235050a240a7.jpg)
<details>
<summary>text_image</summary>
P
P
</details>
![](images/page-1029_c82deabecbeab7d23fadd20ca4625d214b1e4bce32f237c12c879163b60dd832.jpg)
<details>
<summary>text_image</summary>
P
P
</details>
Project 12.8. Proceed as in project 12.7 but use the u/p formulation and implement the 4/1 element.
Project 12.9. Extend the program STAP for one-dimensional transient conduction heat transfer analysis, including linear convection boundary conditions. Then solve the problem in Fig. E7.2 with h = 2, L = 20, $q^{s} = 2$ , k = 1.0, $\rho c = 1.0$ , and neglecting the radiation heat transfer. Assume various temperature initial conditions and also change the values of k and $\rho c$ .
Project 12.10. Extend the program STAP for the analysis of steady-state two-dimensional planar and axisymmetric linear heat transfer by conduction. Use the subroutine QUADS in Section 5.6 as the basis to develop the element routine. Then solve the analysis problem in Exercise 7.7.
Project 12.11. Extend the program STAP to the analysis of one of the field problems: seepage (see Section 7.3.1), incompressible inviscid fluid flow (see Section 7.3.2), solution of torsional stiffness (see Section 7.3.3), or analysis of acoustic fluids (see Section 7.3.4). In each case consider only planar conditions and solve an analysis problem of your choice.
Project 12.12. Extend the program STAP for the analysis of viscous incompressible fluid flow at a very low Reynolds number (Stokes flow). Use the u/p formulation and the 4/1 element. Solve a problem of your choice (for example, the problem in Exercise 7.28).
<!-- source-page: 1030 -->
# References
AHMAD, S., IRONS, B. M., and ZIENKIEWICZ, O.C.
[A] "Analysis of Thick and Thin Shell Structures by Curved Finite Elements," International Journal for Numerical Methods in Engineering, Vol. 2, pp. 419-451, 1970.
AINSWORTH, M., and ODEN, J. T.
[A] A Posteriori Error Estimation in Finite Element Analysis, John Wiley & Sons, Inc., New York, 2000.
ANAND, L.
[A] "On H. Hencky's Approximate Strain Energy Function for Moderate Deformations," Journal of Applied Mechanics, Vol. 46, pp. 7882, 1979.
ARGYRIS, J. H.
[A] “Continua and Discontinua,” Proceedings, Conference on Matrix Methods in Structural Mechanics, Wright-Patterson A.F.B., Ohio, pp. 11189, Oct. 1965.
[B] “An Excursion into Large Rotations,” Computer Methods in Applied Mechanics and Engineering, Vol. 32, pp. 85155, 1982.
ARGYRIS, J. H., and KELSEY, S.
[A] "Energy Theorems and Structural Analysis," Aircraft Engineering, Vols. 26 and 27, Oct. 1954 to May 1955. Part I is by J. H. Argyris, and Part II is by J. H. Argyris and S. Kelsey.
ARNOLD, D. N., and BREZZI, F.
[A] “Some New Elements for the Reissner-Mindlin Plate Model” and “Locking Free Finite Elements for Shells,” Publicazioni N. 898, Istituto di Analisi Numerica del Consiglio Nazionale delle Ricerche, Pavia, Nov. 1993.
ARNOLD, D. N., BREZZI, F., COCKBURN, B., and MARINI, L. D.
[A] “Unified Analysis of Discontinuous Galerkin Methods for Elliptic Problems,” SIAM Journal on Numerical Analysis, Vol. 39, No. 5, pp. 17491779, 2002.
ARNOLD, D. N., BREZZI, F., and FORTIN, M.
[A] “A Stable Finite Element for the Stokes Equations,” Calcolo, Vol. 21, pp. 337344, 1984.
ARNOLD, D. N., and FALK, R.S.
[A] “The Boundary Layer for the Reissner-Mindlin Plate Model,” SIAM Journal on Mathematical Analysis, Vol. 21, pp. 281312, 1990.