home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE ELAST(NUMEL,NUMEL2) 00071800
- IMPLICIT REAL*8(A-H,O-Z) 00071810
- DIMENSION C(3) 00071820
- COMMON/JUNK/KO,IX(5),IXI(5),KN,D, U(3),KN1,I,SC,X(5),UI(3),SCI00071830
- & ,RRJUNK(206) R0071831
- DATA C/2HNM,2HND,2HNR/ 0
- CALL FILES(28) 00071850
- WRITE(6,150) 00071860
- REWIND 9 00071870
- IF (NUMEL2.EQ.0) GO TO 110 00071880
- DO 100 I=1,NUMEL2 00071890
- 100 READ (9) X,SC,U 00071900
- KO=1 00071910
- 110 READ (5,120) IX,D,KN,KN1,U 00071920
- 120 FORMAT (5I5,3X,A2,2I5,3F10.0) 00071930
- IF(IX(1).EQ.0) RETURN 00071940
- SC=0 00071950
- IF(D.EQ.C(1)) SC=11. 00071960
- IF(D.EQ.C(2)) SC=10. 00071970
- IF(D.EQ.C(3)) SC=01. 00071980
- IF(SC.EQ.0) WRITE(6,130)IX(1) 00071990
- 130 FORMAT (20X,13HERROR ON NODE,I5) 00072000
- IF(SC.EQ.0) GO TO 110 00072010
- IF(KO.GT.0) GO TO 180 00072020
- IF(KN.EQ.0) GO TO 180 00072030
- N=(IX(1)-IXI( 1))/KN-1 00072040
- DO 170 I=1,N 00072050
- X(1)=IXI(1)+I*KN 00072060
- IKN1=I*KN1 00072070
- DO 140 J=2,5 00072080
- X(J)=IXI(J)+I*KN1 00072090
- IF(IXI(J).EQ.0) X(J)=0.0 00072100
- 140 CONTINUE 00072110
- NUMEL2=NUMEL2+1 00072120
- 150 FORMAT (1X ,20X,16HBOUNDARY ELEMENT,13X,18HNM- NO MOTION, ND-, 00072130
- $26H NO DISP., NR- NO ROTATION//20X, 00072140
- $60HELEMENT AT NODE NODES DEFINING DIRECT. CODE SPEC., 00072150
- $24H SPEC. SPRING/20X, 00072160
- $60H NO. NO. I J K L DISP., 00072170
- $26H ROTAT. CONSTANT) 00072180
- 160 FORMAT (20X,I5,2F10.0,3F6.0,6X,A2,2F10.4,E13.5) 00072190
- WRITE (9) X,SCI,UI 00072200
- 170 CONTINUE 00072210
- 180 KO=0 00072220
- NUMEL2=NUMEL2+1 00072230
- SCI=SC 00072240
- DO 190 I=1,3 00072250
- 190 UI(I)=U(I) 00072260
- DO 200 I=1,5 00072270
- X(I)=IX(I) 00072280
- 200 IXI(I)=IX(I) 00072290
- NUM=NUMEL2+NUMEL 00072300
- IF(U(3).EQ.0.0) GO TO 1150 00072310
- WRITE(6,160)NUM ,X,D,U 00072320
- GO TO 1160 00072330
- 1150 RU=1.0D10 00072340
- WRITE(6,160)NUM ,X,D,U(1),U(2),RU 00072350
- 1160 CONTINUE 00072360
- WRITE (9) X,SC,U 00072370
- GO TO 110 00072380
- END 00072390
- SUBROUTINE MATRD (NMRI,NTRI,PROP) 00132140
- IMPLICIT REAL*8 (A-H,O-Z) 00132150
- REAL*8 NU 00132160
- DIMENSION PROP( 200,4) 00132170
- COMMON/JUNK/DENS(50),NU(50,2),NL,NM,I,J,K,L,KTEM1,KTEM2,JJJ 00132180
- & ,NRJUNK(145) R0132181
- COMMON /PREP/ XMX,XAD,KSKIP,NDYN,I1,I99,POS,PRTCOD 00132190
- $ ,POSSAV,PRTOFF,PRTON,PRTDUM,IDIRC 00132200
- I=0 00132210
- NM=0 00132220
- NMRI=0 00132230
- 100 NL=NM 00132240
- I=I+1 00132250
- READ (5,110) NM,(PROP(I,J),J=1,4),DENSIT 00132260
- 110 FORMAT (I10,F10.0, 0PF10.0,0PF10.0,0PF10.0,0PF10.0) 00132270
- IF(NM.EQ.0) GO TO 140 00132280
- IF(NL.EQ.NM) GO TO 120 00132290
- NMRI=NMRI+1 00132300
- DENS(NMRI)=DENSIT 00132310
- NU(NMRI,1)=NM 00132320
- NU(NMRI,2)=0 00132330
- 120 NU(NMRI,2)= NU(NMRI,2)+1 00132340
- IM1=I-1 00132350
- DO 130 J=1,4 00132360
- IF(NL.EQ.NM.AND.PROP(I,J).EQ.0.0) PROP(I,J)=PROP(IM1,J) 00132370
- 130 CONTINUE 00132380
- GO TO 100 00132390
- 140 NTRI=I-1 00132400
- IF(NMRI.EQ.0) RETURN 00132410
- KTEM2=0 00132420
- DO 180 I=1,NMRI 00132430
- KTEM1=KTEM2+1 00132440
- KTEM2=KTEM2+NU(I,2) 00132450
- IF (KTEM1.EQ.KTEM2) GO TO 180 00132460
- JJJ=KTEM1 00132470
- DO 170 J=KTEM1,KTEM2 00132480
- JJJ=JJJ+1 00132490
- IF(JJJ.GT.KTEM2) GO TO 170 00132500
- DO 160 K= JJJ,KTEM2 00132510
- IF(PROP(J,1).LE.PROP(K,1)) GO TO 160 00132520
- DO 150 L=1,4 00132530
- ZZ=PROP(K,L) 00132540
- PROP(K,L)=PROP(J,L) 00132550
- 150 PROP(J,L)=ZZ 00132560
- 160 CONTINUE 00132570
- 170 CONTINUE 00132580
- 180 CONTINUE 00132590
- IF(PRTCOD.EQ.PRTOFF) GO TO 195 00132600
- IF(POS.EQ.PRTDUM.AND.PRTCOD.NE.PRTON) GO TO 195 00132610
- WRITE(6,190) 00132620
- 190 FORMAT (1X //30X,33HUSER SUPPLIED MATERIAL LIBRARY/30X, 00132630
- $31HTHIS IS IN ADDITION TO THE/30X, 00132640
- $34HSAP6 MATERIAL PROPERTY LIBRARY ///10X, 00132650
- $12HMATERIAL NO.,4X,11HTEMPERATURE,6X,14HYOUNGS MODULUS,7X, 00132660
- $36HPOISSONS RATIO COEF. THERM. EXPAN.,7X, 00132670
- $7HDENSITY//) 00132680
- 195 CONTINUE 00132690
- KTEM2=0 00132700
- DO 210 I=1,NMRI 00132710
- KTEM1=KTEM2+1 00132720
- KTEM2=KTEM2+NU(I,2) 00132730
- NO=NU(I,1) 00132740
- DO 200 J=KTEM1,KTEM2 00132750
- IF(PROP(J,3).GT.0.5) WRITE(6,240) 00132760
- IF(PRTCOD.EQ.PRTOFF) GO TO 200 00132770
- IF(POS.EQ.PRTDUM.AND.PRTCOD.NE.PRTON) GO TO 200 00132780
- WRITE(6,220) NO,(PROP(J,L),L=1,4),DENS(I) 00132790
- 200 CONTINUE 00132800
- 210 CONTINUE 00132810
- 220 FORMAT(I17,F17.2,1PE21.4,E21.4,E19.4,E21.4) 00132820
- WRITE (3) ((PROP(I,J),I=1,NTRI),J=1,4),(DENS(I),I=1,NMRI), 00132830
- $((NU(I,J),I=1,NMRI),J=1,2) 00132840
- WRITE (6,1009) ((PROP(I,J),I=1,NTRI),J=1,4),(DENS(I),I=1,NMRI), 00132830
- $((NU(I,J),I=1,NMRI),J=1,2) 00132840
- 1009 FORMAT (1X,'**MO**',12E10.4/)
- 240 FORMAT(1H0,9X,55HWARNING--POISSONS RATIO WAS SPECIFIED GREATER THA00132850
- $N 0.5.) 00132860
- RETURN 00132870
- END 00132880
- SUBROUTINE RDFEDG(NUMNP,NUMEL,IES,ID,ID2,ID4,KK,JJ,NADND,NADEL, 00196670
- $NDKOD,NDMZ) 00196680
- IMPLICIT REAL*8(A-H,O-Z) 00196690
- REAL*8 ID,ID2 00196700
- REAL*8 ID4 00196710
- REAL*8 MT2 00196720
- DIMENSION ID(NUMNP,3),ID2(NUMEL,13),IC(6) 00196730
- DIMENSION ID4(NADEL,NADND),IXX(13),IAA(12) 00196740
- DIMENSION JJ(3) 00196750
- COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1,RRPREP(7) R0196760
- COMMON/JUNK/ I,J,K,L,KM,NNN,NN1,NN2,NN3,JN,J1,J2,J3,J4,NN,LX,JK,JL00196770
- & ,RRJUNK(218) R0196771
- COMMON/TRASH/IA(20),ND(100),DCOSN(100,3),X,IX(8),RRTRAS(125) R0196780
- COMMON/SIZE/NDMX,NRSIZE(4) R0196790
- DIMENSION IPERM(4,2) 00196800
- DATA IPERM/4,1,2,3,2,3,4,1/ 00196810
- DATA D/3HEND/ 00196820
- CALL FILES(30) 00196830
- XM=XMX/2. 00196840
- REWIND 4 00196850
- REWIND 8 00196860
- IF(KK.EQ.2) GO TO 430 00196870
- IF(KK.EQ.3) GO TO 600 00196880
- REWIND 1 00196890
- REWIND 2 00196900
- IU=5 00196910
- IF(IA(1).EQ.1) IU=19 00196920
- READ(IU,100)((ID(I,J),J=1,3),I=1,NUMNP) 00196930
- 100 FORMAT(2(4X,3F10.5,6X)) 00196940
- 110 FORMAT (//20X, 17H A COORD. OF NODE,I5, 61H HAS BEEN FOUND TO BE L00196950
- $ARGER THAN THE MAX. DIMENSION ALLOWED.//) 00196960
- DO 140 I=1,NUMNP 00196970
- DO 120 J=1,3 00196980
- IF( DABS(ID(I,J)).GT.XM) WRITE(6,110)I 00196990
- IF( DABS(ID(I,J)).GT.XM) KSKIP=1 00197000
- 120 ID(I,J)=ID(I,J)/XMX+XAD 00197010
- 130 CONTINUE 00197020
- 140 CONTINUE 00197030
- XADI1=1.0+I1+XAD 00197040
- WRITE (8) ((ID(I,J),J=1,3),I=1,NUMNP) 00197050
- MT=10000 00197060
- MT2=MT*MT 00197070
- IF(NDKOD.EQ.1) GO TO 180 00197080
- READ(IU,170)(ID2(I,13),(ID2(I,J),J=1,8),(ID2(I,J),J=9,12), 00197090
- 1I=1,NUMEL) 00197100
- 170 FORMAT(2(3X,F5.0,8F8.0)) 00197110
- GO TO 230 00197120
- 180 DO 220 I=1,NUMEL 00197130
- READ(IU,190) ID2(I,13),(ID2(I,J),J=1,8),(ID2(I,J),J=9,12) 00197140
- 190 FORMAT(3X,F5.0,8F8.0) 00197150
- READ(IU,200)(ND(J),J=9,NDMX) 00197160
- 200 FORMAT(20I4) 00197170
- KOUNT=0 00197180
- DO 210 J=9,NDMX,1 00197190
- KOUNT=KOUNT+1 00197200
- 210 ID4(I,KOUNT)=ND(J) 00197210
- 220 CONTINUE 00197220
- 230 CONTINUE 00197230
- KM=10000 00197240
- DO 270 I=1,NUMEL 00197250
- NN1=ID2(I,13) 00197260
- IF(NN1.EQ.0) NN1=7 00197270
- CALL ELSZ(NN1) 00197280
- ID2(I,13)=NN1 00197290
- IF(JJ(1).EQ.1) WRITE(6,240)I,(ID2(I,J),J=1,8) 00197300
- 240 FORMAT(/20X,I5,8F10.0) 00197310
- DO 250 J=1,8 00197320
- NNN=ID2(I,J) 00197330
- IX(J)=NNN 00197340
- 250 CONTINUE 00197350
- DO 260 J=1,8 00197360
- 260 ID2(I,J)=IX(J) 00197370
- 270 CONTINUE 00197380
- IF(IES.LE.0) GO TO 400 00197390
- DO 390 I=1,IES 00197400
- JN=16 00197410
- READ(IU,280) J1,J2,J3,J4,(IA(J),J=1,16) 00197420
- 280 FORMAT (20I4) 00197430
- IF (J4.LE.16) JN=J4 00197440
- IF(J2.EQ.1.OR.J2.EQ.2) J2=12 00197450
- IF(J2.EQ.3.OR.J2.EQ.4) J2=34 00197460
- IF(J2.EQ.5.OR.J2.EQ.6) J2=56 00197470
- IF(J3.NE.5) GO TO 300 00197480
- DO 290 J=1,JN 00197490
- NN=IA(J) 00197500
- ZNN=ID2(NN,13) 00197510
- ID2(NN,13)=ZNN 00197520
- 290 CONTINUE 00197530
- 300 WRITE (2) J1,J2,J3,J4 00197540
- WRITE (2) (IA(J),J=1,JN) 00197550
- IF(J4.LE.16) GO TO 340 00197560
- 310 READ(IU,280) IA 00197570
- JN=JN+20 00197580
- DO 330 J=1,20 00197590
- NN=IA(J) 00197600
- IF(NN.LE.0) GO TO 330 00197610
- IF(J3.NE.5) GO TO 320 00197620
- ZNN=ID2(NN,13) 00197630
- ID2(NN,13)=ZNN 00197640
- 320 NNN=J 00197650
- 330 CONTINUE 00197660
- WRITE (2) (IA(J),J=1,NNN) 00197670
- IF(JN.LT.J4) GO TO 310 00197680
- 340 CONTINUE 00197690
- READ(IU,350) L1,(ND(J),(DCOSN(J,K),K=1,3),J=1,4) 00197700
- JN=4 00197710
- LX=L1/100+1 00197720
- IF(L1.LT.4) JN=L1 00197730
- 350 FORMAT (I4,4(I4,3F5.3)) 00197740
- WRITE (1) J1,L1 00197750
- IF (L1.LE.4) 00197760
- $WRITE (1) (ND(J),(DCOSN(J,K),K=1,3),J=1,JN) 00197770
- IF(L1.LE.4) GO TO 390 00197780
- 360 JK=5 00197790
- DO 370 J=1,LX 00197800
- JL=100 00197810
- IF(J.EQ.LX) JL=L1-(LX-1)*100 00197820
- READ(IU,380) (ND(K),(DCOSN(K,L),L=1,3),K=JK,JL) 00197830
- WRITE (1) (ND(K),(DCOSN(K,L),L=1,3),K= 1,JL) 00197840
- 370 JK=1 00197850
- 380 FORMAT((4X,4(I4,3F5.3))) 00197860
- 390 CONTINUE 00197870
- 400 CONTINUE 00197880
- WRITE (4) ((ID2(I,J),J=1,13),I=1,NUMEL) 00197890
- IF(NDKOD.EQ.1) WRITE(4) ((ID4(I,J),J=1,NADND),I=1,NUMEL) 00197900
- READ (IU,410) X 00197910
- 410 FORMAT (A3) 00197920
- NDMZ=NDMX 00197930
- IF(X.EQ.D) RETURN 00197940
- WRITE(6,420) 00197950
- 420 FORMAT (1X ,20X, 48H END CARD AT THE END OF FEDGE INPUT NOT DETECT00197960
- $ED, 20HEXECUTION TERMINATED) 00197970
- CALL CLOSE 00197980
- CALL EXIT 00197990
- 430 READ (5,440) ((ID2(I,J),J=1,8),I=1,NUMEL) 00198000
- 440 FORMAT(4(4X,8F4.0)) 00198010
- CALL ELSZ(4) 00198020
- DO 450 I=1,NUMEL 00198030
- 450 ID2(I,13)=4 00198040
- WRITE (4) ((ID2(I,J),J=1,13),I=1,NUMEL) 00198050
- READ (5,460) ((ID(I,J),J=2,3),I=1,NUMNP) 00198060
- 460 FORMAT(2(4X,2F18.6)) 00198070
- XADI1=1.0+I1+XAD 00198080
- DO 470 I=1,NUMNP 00198090
- 470 ID(I,1)=XADI1 00198100
- DO 490 I=1,NUMNP 00198110
- DO 480 J=2,3 00198120
- IF( DABS(ID(I,J)).GT.XM) WRITE(6,110)I 00198130
- IF( DABS(ID(I,J)).GT.XM) KSKIP=1 00198140
- 480 ID(I,J)=ID(I,J)/XMX+XAD+I1 00198150
- 490 CONTINUE 00198160
- WRITE (8) ((ID(I,J),J=1,3),I=1,NUMNP) 00198170
- REWIND 4 00198180
- READ(4)((ID2 (I,J),J=1,13),I=1,NUMEL) 00198190
- DO 520 I=1,3 00198200
- LX=JJ(I) 00198210
- IF(LX.EQ.0) GO TO 520 00198220
- J3=20 00198230
- LX=(LX-1)/20+1 00198240
- IF(I.EQ.3) GO TO 499 00198250
- IF(IES .LE.0) GO TO 499 00198260
- IF(I.EQ.1.AND.IES.EQ.2) GO TO 499 00198270
- IF(I.EQ.2.AND.IES.EQ.1) GO TO 499 00198280
- KM=I*10000 00198290
- JL=0 00198300
- DO 498 J=1,LX 00198310
- ND(1)=ND(J3) 00198320
- J2=2 00198330
- IF(J.EQ.1) J2=1 00198340
- J3=J2+19 00198350
- READ (5,200) (ND(K),K=J2,J3) 00198360
- JN=19 00198370
- IF(J.GT.1) JN=20 00198380
- DO 497 M=1,JN 00198390
- JL=JL+1 00198400
- IF(JL.EQ.JJ(I)) GO TO 520 00198410
- DO 491 N=1,NUMEL 00198420
- DO 491 J2=1,4 00198430
- NN1=N 00198440
- NN2=J2 00198450
- L1=IPERM(J2,I) 00198460
- IF(ND(M).EQ.ID2(N,J2).AND.ND(M+1).EQ.ID2(N,L1)) GO TO 492 00198470
- 491 NN1=-1 00198480
- 492 N=1 00198490
- IF(NN1.GT.0) ID2(NN1,13)=ID2(NN1,13)+KM 00198500
- IF(NN2.EQ.2.OR.NN1.LT.0) GO TO 497 00198510
- IF(NN2.EQ.4) N=2 00198520
- JK=1 00198530
- IF(NN2.EQ.3) JK=2 00198540
- DO 495 K=1,N 00198550
- DO 493 J2=1,4 00198560
- 493 IA(J2)=ID2(NN1,J2) 00198570
- DO 494 J2=1,4 00198580
- L1=IPERM(J2,JK) 00198590
- 494 ID2(NN1,J2)=IA(L1) 00198600
- IF(IA(3).EQ.IA(4).AND.JK.EQ.1) ID2(NN1,4)=ID2(NN1,3) 00198610
- IF(IA(3).EQ.IA(4).AND.JK.EQ.2) ID2(NN1,3)=ID2(NN1,4) 00198620
- 495 CONTINUE 00198630
- 497 CONTINUE 00198640
- 498 CONTINUE 00198650
- GO TO 520 00198660
- 499 CONTINUE 00198670
- DO 500 J=1,LX 00198680
- 500 READ (5,510) KM 00198690
- 510 FORMAT (I4,76X) 00198700
- 520 CONTINUE 00198710
- IES=0 00198720
- REWIND 4 00198730
- WRITE (4)((ID2(I,J),J=1,13),I=1,NUMEL) 00198740
- NDMZ=NDMX 00198750
- RETURN 00198760
- 600 IU=19 00198770
- IF(IA(1).EQ.1) IU=1 00198780
- IF(JJ(1).EQ.0) WRITE(6,830) 00198790
- DO 640 I=1,NUMNP 00198800
- READ(IU,810)K,(IC(L),L=1,6),(ID(K,J),J=1,3) 00198810
- IF(JJ(1).EQ.0) WRITE(6,820)K,(IC(L),L=1,6),(ID(K,J),J=1,3) 00198820
- DO 620 J=1,3 00198830
- IF( DABS(ID(I,J)).GT.XM) WRITE(6,110)I 00198840
- IF( DABS(ID(I,J)).GT.XM) KSKIP=1 00198850
- NN1=0 00198860
- NN2=0 00198870
- IF(IC(J).EQ.1) NN1=1 00198880
- IF(IC(J+3).EQ.1) NN2=1 00198890
- ID(I,J)=ID(I,J)/XMX+XAD 00198900
- NNN=ID(I,J) 00198910
- ID(I,J)=(ID(I,J)-NNN)+NN1+NN2*I1 00198920
- 620 CONTINUE 00198930
- 630 CONTINUE 00198940
- 640 CONTINUE 00198950
- XADI1=1.0+I1+XAD 00198960
- WRITE (8) ((ID(I,J),J=1,3),I=1,NUMNP) 00198970
- 680 CONTINUE 00198980
- IF(JJ(1).EQ.0) WRITE(6,840) 00198990
- IF(JJ(1).EQ.0) WRITE(6,850) 00199000
- DO 720 I=1,NUMEL 00199010
- READ(IU,800) K,IXX(13),(IXX(J),J=1,8),(IXX(J),J=9,12) 00199020
- IF(K.GT.NUMEL) WRITE(6,880)K,IXX(13),(IXX(J),J=1,8) 00199030
- 1,(IXX(J),J=9,12),K,NUMEL 00199040
- IF(K.GT.NUMEL) STOP 00199050
- IF(JJ(1).EQ.0) 00199060
- 1WRITE(6,860) K,IXX(13),(IXX(J),J=1,8),(IXX(J),J=9,12) 00199070
- DO 690 J=1,13 00199080
- 690 ID2(K,J)=IXX(J) 00199090
- MT=ID2(K,13) 00199100
- IF(MT.EQ.10) 00199110
- 1READ(IU,800)(ND(J),J=9,NDMX) 00199120
- IF(MT.NE.10) GO TO 720 00199130
- IF(JJ(1).EQ.0) WRITE(6,870)(ND(J),J=9,NDMX) 00199140
- KOUNT=0 00199150
- DO 710 J=9,NDMX,1 00199160
- KOUNT=KOUNT+1 00199170
- 710 ID4(I,KOUNT)=ND(J) 00199180
- 720 CONTINUE 00199190
- DO 770 I=1,NUMEL 00199200
- NN1=ID2(I,13) 00199210
- IF(NN1.EQ.0) NN1=7 00199220
- CALL ELSZ(NN1) 00199230
- ID2(I,13)=NN1 00199240
- DO 750 J=1,8 00199250
- NNN=ID2(I,J) 00199260
- IX(J)=NNN 00199270
- 750 CONTINUE 00199280
- DO 760 J=1,8 00199290
- 760 ID2(I,J)=IX(J) 00199300
- 770 CONTINUE 00199310
- DO 775 II=1,NUMEL R0199311
- WRITE (4) (ID2(II,J),J=1,13) R0199320
- IF(NDKOD.EQ.1) WRITE(4) (ID4(II,J),J=1,NADND) R0199330
- 775 CONTINUE R0199321
- RETURN 00199340
- 790 FORMAT(/20X,I5,8F10.0) 00199350
- 800 FORMAT( 14I5) 00199360
- 810 FORMAT(7I5,3F10.0) 00199370
- 820 FORMAT(5X,I8,6I10,5X,E10.3,5X,E10.3,5X,E10.3) 00199380
- 830 FORMAT(1X //,55X,10HNODE INPUT,/,55X,10(1H-),/, 00199390
- 15X,8HNODE NO.,8X,2HDX,8X,2HDY,8X,2HDZ,8X,2HRX,8X,2HRY, 00199400
- 18X,2HRZ,10X,1HX,14X,1HY,14X,1HZ) 00199410
- 840 FORMAT (1X ,//,55X,13HELEMENT INPUT,/,55X,13(1H-),/,20X, 00199420
- $50HN1-MATL. NO. OR GEOMETRIC PROPERTY (TRUSS OR BEAM)//20X, 00199430
- $ 90HN2-THICK TYPE - PLANE STRESS OR SHELL ELEMENTS OR INTEGRATIO00199440
- $N OEDER FOR THE SOLID ELEMENT /23X, 00199450
- $44HOR SECTION PROPERTY TYPE NO FOR BEAM ELEMENT //20X, 00199460
- $ 67HN3-PRESSURE SET NO.- SOLID ELEMENTS, SHELL ELEMENTS OR AXI00199470
- $SYMMETRIC//20X, 00199480
- $ 57HN4-STRESS FACES - SOLID ELEMENT OR END RELEASE SET - BEA00199490
- $M /23X, 00199500
- $50HOR SECTION PROPERTY TYPE NO FOR CURVED BEAM(ELBOW) ///) 00199510
- 850 FORMAT (20X, 13HELEMENT TYPE//20X, 00199520
- $ 63H NO. NO. I J K L M N O P N100199530
- $ , 24HN2 N3 N4 KN1 KN2// ) 00199540
- 860 FORMAT(20X,I5,I7,I8,13I5) 00199550
- 870 FORMAT(12X,16HADDITIONAL NODES,I8,13I5) 00199560
- 880 FORMAT(20X,I5,I7,I8,11I5,//,5X, 00199570
- 132H **** ERROR *** ELEMENT NUMBER =,I5,5X, 00199580
- 253H IS GREATER THAN MAXIMUM NUMBER OF ELEMENTS (NUMEL) =,I5//5X, 00199590
- 351HCHECK YOUR FINITE ELEMENT MODEL AS GENERATED BY THE, 00199600
- 429H PREPROCESSOR PROGRAM *MODEL*) 00199610
- END 00199620
- SUBROUTINE MATRDA(NMRI,NTRI,PROP) 00132890
- IMPLICIT REAL*8 (A-H,O-Z) 00132900
- REAL*8 NU 00132910
- DIMENSION PROP(200,9) 00132920
- COMMON/JUNK/DENS(50),NU(50,2),NL,NM,I,J,K,L,KTEM1,KTEM2,JJJ, R0132930
- & NRJUNK(145) R0132931
- FX=0.5 00132940
- EX=1.0E+06 00132950
- I=0 00132960
- NM=0 00132970
- NMRI=0 00132980
- 100 NL=NM 00132990
- I=I+1 00133000
- READ(5,110)NM,(PROP(I,J),J=1,7) 00133010
- 110 FORMAT(I10,7F10.0) 00133020
- IF(NM.EQ.0) GO TO 140 00133030
- READ(5,111)PROP(I,8),DENSIT,PROP(I,9) 00133040
- 111 FORMAT(8F10.0) 00133050
- IF(NL.EQ.NM) GO TO 120 00133060
- NMRI=NMRI+1 00133070
- DENS(NMRI)=DENSIT 00133080
- NU(NMRI,1)=NM 00133090
- NU(NMRI,2)=0 00133100
- 120 NU(NMRI,2)= NU(NMRI,2)+1 00133110
- IM1=I-1 00133120
- DO 130 J=1,9 00133130
- IF(NL.EQ.NM.AND.PROP(I,J).EQ.0.0) PROP(I,J)=PROP(IM1,J) 00133140
- 130 CONTINUE 00133150
- GO TO 100 00133160
- 140 NTRI=I-1 00133170
- IF(NMRI.EQ.0) RETURN 00133180
- KTEM2=0 00133190
- DO 180 I=1,NMRI 00133200
- KTEM1=KTEM2+1 00133210
- KTEM2=KTEM2+NU(I,2) 00133220
- IF (KTEM1.EQ.KTEM2) GO TO 180 00133230
- JJJ=KTEM1 00133240
- DO 170 J=KTEM1,KTEM2 00133250
- JJJ=JJJ+1 00133260
- IF(JJJ.GT.KTEM2) GO TO 170 00133270
- DO 160 K= JJJ,KTEM2 00133280
- IF(PROP(J,1).LE.PROP(K,1)) GO TO 160 00133290
- DO 150 L=1,9 00133300
- ZZ=PROP(K,L) 00133310
- PROP(K,L)=PROP(J,L) 00133320
- 150 PROP(J,L)=ZZ 00133330
- 160 CONTINUE 00133340
- 170 CONTINUE 00133350
- 180 CONTINUE 00133360
- WRITE (6,190) 00133370
- 190 FORMAT(1X //45X,33HUSER SUPPLIED MATERIAL LIBRARY/ 00133380
- 1 35X,46H ORTHOTROPIC MATERIAL PROPERTIES (81-100) //, 00133390
- 2 124H MAT. TEMPERATURE E-RR E-ZZ E-THETA V-ZR 00133400
- 3 V-TR V-TZ G-RZ ALPHA DENSITY //)00133410
- KTEM2=0 00133420
- DO 210 I=1,NMRI 00133430
- KTEM1=KTEM2+1 00133440
- KTEM2=KTEM2+NU(I,2) 00133450
- NO=NU(I,1) 00133460
- DO 200 J=KTEM1,KTEM2 00133470
- IF(PROP(J,2).LT.EX.OR.PROP(J,3).LT.EX.OR.PROP(J,4).LT.EX) 00133480
- 1WRITE(6,230) 00133490
- IF(PROP(J,5).GT.FX.OR.PROP(J,6).GT.FX.OR.PROP(J,7).GT.FX) 00133500
- 1WRITE(6,240) 00133510
- 200 WRITE(6,220) NO,(PROP(J,L),L=1,9),DENS(I) 00133520
- 210 CONTINUE 00133530
- 220 FORMAT(I5,4X,10(2X,G9.3)) 00133540
- WRITE (3) ((PROP(I,J),I=1,NTRI),J=1,9 ),(DENS(I),I=1,NMRI), 00133550
- $((NU(I,J),I=1,NMRI),J=1,2) 00133560
- 230 FORMAT(1H0,9X,56HWARNING--YOUNGS MODULUS WAS SPECIFIED LESS THAN 100133570
- $.0E+06.) 00133580
- 240 FORMAT(1H0,9X,55HWARNING--POISSONS RATIO WAS SPECIFIED GREATER THA00133590
- $N 0.5.) 00133600
- RETURN 00133610
- END 00133620
- SUBROUTINE COORD(N) 00051420
- IMPLICIT REAL*8(A-H,O-Z) 00051430
- COMMON/JUNK/ X1,Y1,Z1,X2,Y2,Z2,C,S1,S2,AX,AY,AZ,RRJUNK(215) R0051440
- COMMON/QTSARG/ X(3,50),Y(3,50),Z(3,50),TI(3,3,50),XC(3),XI(3) 00051450
- & ,RRQTSA(94) R0051451
- DO 100 I=1,N 00051460
- X1=X(2,I)-X(1,I) 00051470
- Y1=Y(2,I)-Y(1,I) 00051480
- Z1=Z(2,I)-Z(1,I) 00051490
- X2=X(3,I)-X(1,I) 00051500
- Y2=Y(3,I)-Y(1,I) 00051510
- Z2=Z(3,I)-Z(1,I) 00051520
- S1=X1*X1+Y1*Y1+Z1*Z1 00051530
- S1= DSQRT(S1) 00051540
- AX=Y1*Z2-Z1*Y2 00051550
- AY=Z1*X2-X1*Z2 00051560
- AZ=X1*Y2-Y1*X2 00051570
- S2=AX*AX+AY*AY+AZ*AZ 00051580
- S2= DSQRT(S2) 00051590
- X1=X1/S1 00051600
- Y1=Y1/S1 00051610
- Z1=Z1/S1 00051620
- AX=AX/S2 00051630
- AY=AY/S2 00051640
- AZ=AZ/S2 00051650
- X2=AY*Z1-AZ*Y1 00051660
- Y2=AZ*X1-AX*Z1 00051670
- Z2=AX*Y1-AY*X1 00051680
- TI(1,1,I)=X1 00051690
- TI(1,2,I)=Y1 00051700
- TI(1,3,I)=Z1 00051710
- TI(2,1,I)=X2 00051720
- TI(2,2,I)=Y2 00051730
- TI(2,3,I)=Z2 00051740
- TI(3,1,I)=AX 00051750
- TI(3,2,I)=AY 00051760
- 100 TI(3,3,I)=AZ 00051770
- RETURN 00051780
- END 00051790
- SUBROUTINE TIE(ID,NUMNP) 00305700
- IMPLICIT REAL*8(A-H,O-Z) 00305710
- REAL*8 ID 00305720
- COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1,RRPREP(7) R0305730
- DIMENSION ID(NUMNP,3),C1(4),N(15) 00305740
- DATA C1/1HX,1HY,1HZ,1H / 00305750
- CALL FILES(35) 00305760
- NG=1000 00305770
- KNT=0 00305780
- REWIND 8 00305790
- READ (8) ((ID(I,J),J=1,3),I=1,NUMNP) 00305800
- 100 READ (5,110)C,N 00305810
- 110 FORMAT (A1,4X,15I5) 00305820
- IF(N(1).EQ.0)GO TO 190 00305830
- WRITE(6,120)C,N 00305840
- 120 FORMAT (20X,A1,9X,15I6) 00305850
- IF(C.EQ.C1(4)) GO TO 150 00305860
- J=0 00305870
- DO 130 I=1,3 00305880
- IF(C.EQ.C1(I)) J=I 00305890
- 130 CONTINUE 00305900
- IF(J.EQ.0) GO TO 200 00305910
- 140 FORMAT (//20X,31HERROR ON THE LAST CARD PRINTED.//) 00305920
- KNT=KNT+1 00305930
- KNT1=-1 00305940
- NEQ=NG*KNT 00305950
- 150 IF(KNT.EQ.0) GO TO 100 00305960
- DO 180 I=1,15 00305970
- IF(N(I).EQ.0) GO TO 180 00305980
- IF(I.EQ.1) GO TO 170 00305990
- IF(N(I-1).LT.0) GO TO 180 00306000
- IF(N(I).GT.0) GO TO 170 00306010
- KN=N(I+1) 00306020
- KF=-N(I) 00306030
- KI=N(I-1)+KN 00306040
- DO 160 II=KI,KF,KN 00306050
- KNT1=KNT1+1 00306060
- NNN=ID(II,J) 00306070
- NNN= MOD(NNN,I1) 00306080
- ID(II,J)=NEQ+KNT1+ID(II,J)-NNN 00306090
- 160 CONTINUE 00306100
- GO TO 180 00306110
- 170 CONTINUE 00306120
- KNT1=KNT1+1 00306130
- II=N(I) 00306140
- NNN=ID(II,J) 00306150
- NNN= MOD(NNN,I1) 00306160
- ID(II,J)=NEQ+KNT1+ID(II,J)-NNN 00306170
- 180 CONTINUE 00306180
- GO TO 100 00306190
- 190 REWIND 8 00306200
- WRITE (8) ((ID(I,J),J=1,3),I=1,NUMNP) 00306210
- RETURN 00306220
- 200 WRITE(6,140) 00306230
- KSKIP=1 00306240
- GO TO 100 00306250
- END 00306260
- SUBROUTINE TEMPRD(NUMNP,NTU,MTOT ,NTYP) 00300080
- IMPLICIT REAL*8(A-H,O-Z) 00300090
- COMMON /SIZE/NDMX,NRSIZE(4) R0300100
- COMMON A(1) 00300110
- COMMON /ELTEMP/ TAVG,KET,NL,TIM(100),RRELTE R0300120
- COMMON /MISC/ NBLOCK,NEQB,LL,NF,LB R0300130
- COMMON /PREP/XD(2),KSKIP,RRPREP(8) R0300140
- CALL FILES(31) 00300150
- ERROR=1.0E-6 00300160
- IF(NTU.GE.2) NTU=11 00300170
- IF(NTU.EQ.1) NTU=5 00300180
- IF(NTU.LT.1) WRITE(6,100)NTU 00300190
- 100 FORMAT (1X ,20X, 91HTHE WRONG CODE WAS PUNCHED FOR SPECIFYING WHET00300200
- $HER PUNCHED CARDS OR MAG. TAPE IS BEING USED./20X, 00300210
- $ 43HTHE CODE MUST BE 1 OR 2, BUT WAS PUNCHED AS,I5//) 00300220
- IF(NTU.LT.1) RETURN 00300230
- IF(NTU.GT.7) REWIND NTU 00300240
- 110 FORMAT (3I5) 00300250
- READ (NTU,110) KK,NT,NDOF 00300260
- IF(KK.NE.3) WRITE(6,120) 00300270
- 120 FORMAT (1X ,20X, 44H THE TEMP. IDENTIFIER (3) COULD NOT BE FOUND//00300280
- $) 00300290
- IF(KK.NE.3) RETURN 00300300
- IF(NDOF.LT.2) NDOF=1 00300310
- IF(NDOF.GE.2) NDOF=2 00300320
- IF(NDOF.EQ.2.AND.NDMX.LT.8) NDMX=8 00300330
- NREC=NT*(NDOF*NUMNP+1) 00300340
- IF(NTU.EQ.5) GO TO 180 00300350
- NREC=0 00300360
- DO 170 I=1,NT 00300370
- READ (NTU,130)TIME 00300380
- 130 FORMAT(F10.2) 00300390
- NFL=0 00300400
- DO 140 J=1,LL 00300410
- DELTA= DABS(TIM(J)-TIME) 00300420
- IF(DELTA.LT.ERROR) NFL=1 00300430
- 140 CONTINUE 00300440
- IF(NFL.GT.0) NREC=NREC+1 00300450
- DO 150 J=1,NDOF 00300460
- 150 READ (NTU,160) (A(K),K=1,NUMNP) 00300470
- 160 FORMAT(8F10.0) 00300480
- 170 CONTINUE 00300490
- REWIND NTU 00300500
- READ (NTU,110) KK 00300510
- NREC=NREC*(NDOF*NUMNP+1) 00300520
- IF(NREC.GT.0) GO TO 180 00300530
- WRITE(6,175) 00300540
- 175 FORMAT(//10X,48HNO TEMPERATURE DISTRIBUTIONS WERE FOUND AT TIMES, 00300550
- $26H LISTED ON LOADFACT CARDS.//) 00300560
- KSKIP=1 00300570
- RETURN 00300580
- 180 CONTINUE 00300590
- NREC=NREC/(MTOT-NTYP-100)+1 00300600
- NT1=(MTOT-NTYP-400)/(NDOF*NUMNP+1) 00300610
- NTP1=NT1+1 00300620
- CALL TEMPIN (NTU,NREC,NDOF,NUMNP,NT,A(1),A(NTP1),NT1) 00300630
- RETURN 00300640
- END 00300650
- SUBROUTINE TEMPIN(NTU,NREC,NDOF,NUMNP,NT,TIME,T,NT1) 00299580
- IMPLICIT REAL*8(A-H,O-Z) 00299590
- DIMENSION T(NT1,NUMNP,NDOF),TIME(NT1) 00299600
- COMMON /ELTEMP/ TAVG,KET,NL,TIM(100),RRELTE R0299610
- COMMON /MISC/ NBLOCK,NEQB,LL,NF,LB R0299620
- CALL FILES(32) 00299630
- ERROR=1.0E-6 00299640
- REWIND 10 00299650
- WRITE (10) NREC,NDOF 00299660
- WRITE(6,100) 00299670
- 100 FORMAT (1X ,20X,28H NODAL TEMPERATURES AS INPUT//) 00299680
- K=0 00299690
- DO 230 II=1,NREC 00299700
- I=1 00299710
- 105 NFL=0 00299720
- K=K+1 00299730
- M=I 00299740
- READ (NTU,110) TIME(I) 00299750
- 110 FORMAT (F10.2) 00299760
- DO 120 J=1,NDOF 00299770
- 120 READ (NTU,140) (T(I,KK,J),KK=1,NUMNP) 00299780
- IF(NTU.EQ.5) GO TO 135 00299790
- DO 130 J=1,LL 00299800
- DELTA= DABS(TIM(J)-TIME(I)) 00299810
- IF(DELTA.LT.ERROR) NFL=1 00299820
- 130 CONTINUE 00299830
- IF(K.EQ.NT.AND.NFL.EQ.0) M=M-1 00299840
- IF(NFL.GT.0) I=I+1 00299850
- 135 IF(NTU.EQ.5) I=I+1 00299860
- IF(K.EQ.NT) GO TO 150 00299870
- IF(I.LE.NT1) GO TO 105 00299880
- 140 FORMAT (8F10.3) 00299890
- 150 WRITE (10) M 00299900
- 160 WRITE(10)(TIME(I),((T(I,J,KC),J=1,NUMNP),KC=1,NDOF),I=1,M) 00299910
- DO 180 I=1,M 00299920
- WRITE(6,170)TIME(I) 00299930
- 170 FORMAT (//20X,23H TEMPERATURES AT TIME =,F15.5//) 00299940
- IF(NDOF.EQ.1) WRITE(6,190) 00299950
- IF(NDOF.EQ.2) WRITE(6,200) 00299960
- IF(NDOF.EQ.1) WRITE(6,210)(J, T(I,J,1), J=1,NUMNP) 00299970
- IF(NDOF.EQ.2) WRITE(6,220)(J,(T(I,J,KC),KC=1,2),J=1,NUMNP) 00299980
- 180 CONTINUE 00299990
- 190 FORMAT (15X,6(15H NODE TEMP. )//) 00300000
- 200 FORMAT (10X,4(25H NODE TEMP. GRAD.)//) 00300010
- 210 FORMAT((15X,6(I5, F10.3))) 00300020
- 220 FORMAT((10X,4(I5,2F10.3))) 00300030
- 230 CONTINUE 00300040
- READ (NTU,110) TIME(1) 00300050
- RETURN 00300060
- END 00300070
- SUBROUTINE DATE(NOWDTE) 00052140
- CALL TIME(NOWDTE) 00052150
- RETURN 00052160
- END 00052170
- SUBROUTINE TIME(NN)
- RETURN
- END