C SRM: SISTEM RIJITLIK MATRISI, YUK: YUK VEKTORU, C D: DEPLASMAN VEKTORU SRT: SISTEM RIJITLIK MATRISININ EVRIGI IMPLICIT REAL*8 (A-H,O-Z) CHARACTER*72 DOSYA,BASLIK DIMENSION SRT(40,40),SR(41,41),SRM(40,40),YUK(40),D(40) CALL SAYFA1 PRINT*, 'VER˜ DOSYASININ ADINI GIRIN:' READ(*,5) DOSYA 5 FORMAT(10A) OPEN(2,FILE=DOSYA,STATUS='OLD') OPEN(1,FILE='RATE.OUT',FORM='FORMATTED') OPEN(3,FILE='RATE.MAT',FORM='FORMATTED') C CUBUK VE DEPLASMAN SAYISI OKUNUYOR READ(2,5) BASLIK WRITE(1,5) BASLIK READ(2,*) J,K WRITE(1,1) J,K 1 FORMAT(/,'CUBUK SAYISI=',I2,2X,/,'DEPLASMAN SAYISI=',I2) CALL ANA(J,K,SRT,SR,SRM,YUK,D) CLOSE(2) CLOSE(1) CLOSE(3) PRINT*, 'DENKLEMLER HESAPLANDI' PRINT*, 'DEPLASMAN VE KESIT TESIRLERINI RATE.OUT DOSYASINDAN' PRINT*, 'MATRISLERI RATE.MAT DOSYASINDAN GORUNTULEYEBILIRSINIZ' STOP END C ======================================================= C ============ ANA PROGRAMIN IKINCI PARCASI ============= C ======================================================= C BU ALT PROGRAMIN YAPILIS AMACI KULLANILACAK MATRISLERIN BOYUTLARININ C OKUNAN DEPLASMAN SAYISINA BAGLI OLARAK TANIMLANMASIDIR. C BUTUN ALT PROGRAMLARI BU ALT PROGRAM CALISTIRIR SUBROUTINE ANA(J,K,SRT,SR,SRM,YUK,D) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION SRT(K,K),SR(K+1,K+1),SRM(K,K),YUK(K),D(K),N(6),RL(6,6) DO 10 I=1,J READ(2,*) E,A,AT,X1,Y1,X2,Y2,N DO 11 L=1,6 11 N(L)=N(L)+1 CALL MATRIS(SR,K,E,A,AT,X1,Y1,X2,Y2,N) CALL DONUSUM(I,RL,E,A,AT,X1,Y1,X2,Y2,N) 10 CONTINUE READ(2,*)YUK DO 101 I=2,K+1 DO 101 L=2,K+1 101 SRM(I-1,L-1)=SR(I,L) WRITE(1,102) 102 FORMAT(/,1X,'SISTEM RIJITLIK MATRISI') WRITE(1,99)((I),I=1,K) 99 FORMAT(10(I14)) DO 103 I=1,K 103 WRITE(1,104)I,(SRM(I,L),L=1,K) 104 FORMAT(I2,'-)',10(1PE14.4)) CALL EVRIK(K,SRT,SRM) CALL VEKCARP(K,D,SRT,YUK) WRITE(1,105) 105 FORMAT(/,1X,'DEPLASMANLAR') DO 12 I=1,K 12 WRITE(1,104)I,D(I) WRITE(1,106) 106 FORMAT(//,1X,'ELEMANLARIN KESIT TESIRLERI',/ =1X,'===== =========== ============ ===========',/ =1X,'CUBUK KESME KUV. EKSENEL KUV. MOMENT'/ =1X,'===== =========== ============ ===========') REWIND(3) DO 120 L=1,J CALL GERI(L,D,K) 120 WRITE(1,*) RETURN END C ======================================================== C === SISTEM RIJITLIK MATRISINI HESAPLAYAN ALT PROGRAM === C ======================================================== C BU ALT PROGRAM ANA PROGRAMDAN GONDERILEN PARAMETRELERLE SISTEM C RIJITLIK MATRISINI OLUSTURUR. OLUSTURULAN MATRISIN BOYUTU DEPLASMAN C SAYISININ BIR FAZLASI(K) ILE TANIMLANMISTIR. DEPLASMAN SAYISININ BIR C FAZLASIYLA ISLEM YAPILMASININ SEBEBİ DATA DOSYASINDAN OKUTULAN DEPLASMAN C NUMARALARINDA 0 SAYISI OKUNDUĞUNDA MATRISIN DOGRU HESAP YAPMASIDIR. BU C ISLEM YAPILMAZSA MATRIS 0 DEGERI ICIN SATIR VE SUTUN OLUSTURMAYI DENEYECEK C VE BU DEGERLERI DE 1. SATIR VE SUTUNLARA EKLEYECEKTIR. C D1,D2,D3,D4 VE D5 DEGISKENLERI, MATRISLERDE SIK KULLANILAN DENKLEMLERI BIR C DEFA HESAPLATIP ISLEMCIYI DAHA AZ CALISTIRMAK ICIN TANIMLANMISTIR. ANCAK BU C DEGISKENLER RAM DE YER ISGAL EDECEGI ICIN PROGRAMI YAVASLATABILIR. C:COS, C S:SIN DEGERLERINI IFADE EDER. C CB:CUBUK BOYU, C:COS, S:SIN, SUBROUTINE MATRIS(SR,K,E,A,AT,X1,Y1,X2,Y2,N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION SR(K+1,K+1), N(6) CB=DSQRT((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2-Y1)) C=(X2-X1)/CB S=(Y2-Y1)/CB D1=(E*A)/CB D2=(12*E*AT)/CB**3 D3=(6*E*AT)/(CB*CB) D4=(4*E*AT)/CB D5=(2*E*AT)/CB SR(N(1),N(1))=SR(N(1),N(1))+C*C*D1+S*S*D2 SR(N(1),N(2))=SR(N(1),N(2))+C*S*D1-C*S*D2 SR(N(1),N(3))=SR(N(1),N(3))-S*D3 SR(N(1),N(4))=SR(N(1),N(4))-C*C*D1-S*S*D2 SR(N(1),N(5))=SR(N(1),N(5))-C*S*D1+C*S*D2 SR(N(1),N(6))=SR(N(1),N(6))-S*D3 SR(N(2),N(1))=SR(N(2),N(1))+C*S*D1-C*S*D2 SR(N(2),N(2))=SR(N(2),N(2))+S*S*D1+C*C*D2 SR(N(2),N(3))=SR(N(2),N(3))+C*D3 SR(N(2),N(4))=SR(N(2),N(4))-C*S*D1+C*S*D2 SR(N(2),N(5))=SR(N(2),N(5))-S*S*D1+C*C*D2 SR(N(2),N(6))=SR(N(2),N(6))+C*D3 SR(N(3),N(1))=SR(N(3),N(1))-S*D3 SR(N(3),N(2))=SR(N(3),N(2))+C*D3 SR(N(3),N(3))=SR(N(3),N(3))+D4 SR(N(3),N(4))=SR(N(3),N(4))+S*D3 SR(N(3),N(5))=SR(N(3),N(5))-C*D3 SR(N(3),N(6))=SR(N(3),N(6))+D5 SR(N(4),N(1))=SR(N(4),N(1))-C*C*D1-S*S*D2 SR(N(4),N(2))=SR(N(4),N(2))-C*S*D1+C*S*D2 SR(N(4),N(3))=SR(N(4),N(3))+S*D3 SR(N(4),N(4))=SR(N(4),N(4))+C*C*D1+S*S*D2 SR(N(4),N(5))=SR(N(4),N(5))+C*S*D1-C*S*D2 SR(N(4),N(6))=SR(N(4),N(6))+S*D3 SR(N(5),N(1))=SR(N(5),N(1))-C*S*D1+C*S*D2 SR(N(5),N(2))=SR(N(5),N(2))-S*S*D1-C*C*D2 SR(N(5),N(3))=SR(N(5),N(3))-C*D3 SR(N(5),N(4))=SR(N(5),N(4))+C*S*D1-C*S*D2 SR(N(5),N(5))=SR(N(5),N(5))+S*S*D1+C*C*D2 SR(N(5),N(6))=SR(N(5),N(6))-C*D3 SR(N(6),N(1))=SR(N(6),N(1))-S*D3 SR(N(6),N(2))=SR(N(6),N(2))+C*D3 SR(N(6),N(3))=SR(N(6),N(3))+D5 SR(N(6),N(4))=SR(N(6),N(4))+(S*D3) SR(N(6),N(5))=SR(N(6),N(5))-C*D3 SR(N(6),N(6))=SR(N(6),N(6))+D4 RETURN END C ======================================================= C ========== MATRISIN TERSINI ALAN ALT PROGRAM ========== C ======================================================= SUBROUTINE EVRIK(K,SRT,SRM) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION SRT(K,K),SRM(K,K) DO 26 II=1,K DO 26 JJ=1,K 26 SRT(II,JJ)=SRM(II,JJ) DO 104 L=1,K DO 100 I=1,K DO 100 J=1,K IF(I-L) 5,100,5 5 IF(J-L) 6,100,6 6 SRT(I,J)=SRT(I,J)-SRT(I,L)*SRT(L,J)/SRT(L,L) 100 CONTINUE SRT(L,L)=-1/SRT(L,L) DO 101 I=1,K IF(I-L) 7,101,7 7 SRT(I,L)=SRT(I,L)*SRT(L,L) SRT(L,I)=SRT(L,I)*SRT(L,L) 101 CONTINUE 104 CONTINUE DO 105 I=1,K DO 105 J=1,K 105 SRT(I,J)=-SRT(I,J) 102 FORMAT(I2,'-)',10(1PE14.4)) WRITE(1,106) 106 FORMAT(/,1X,'SISTEM RIJITLIK MATRISININ EVRIGI') WRITE(1,99)((I),I=1,K) 99 FORMAT(10(I14)) DO 103 I=1,K 103 WRITE(1,102)I,(SRT(I,J),J=1,K) RETURN END C ======================================================= C ============ KARE MATRISLE VEKTOR CARPIMI ============= C ======================================================= C BU ALT PROGRAM DEPLASMAN VEKTORU OLUSTURULMASINDA VE GERIYE C DONUK COZUMDE KULLANILIR. C K:MATRISIN BOYUTU, D:OLUSTURULACAK VEKTOR, SRT:KARE MATRIS, YUK:VEKTOR SUBROUTINE VEKCARP(K,D,SRT,YUK) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION D(K), SRT(K,K), YUK(K) DO 100 I=1,K DO 100 L=1,K 100 D(I)=D(I)+SRT(I,L)*YUK(L) RETURN END C ======================================================== C ======= DONUSUM VE LOKAL RIJITLIK MATRISI HESABI ======= C ======================================================== C BU ALT PROGRAM HER CUBUK ICIN LOKAL RIJITLIK VE DONUSUM MATRISLERINI C HESAPLAR VE GERIYE DONUK COZUMDE KULLANILMAK UZERE MAT DOSYASINA C FORMATLI YAZAR. SUBROUTINE DONUSUM(I,RL,E,A,AT,X1,Y1,X2,Y2,N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION R(6,6),RL(6,6),N(6) DO 11 L=1,6 11 N(L)=N(L)-1 DX=X2-X1 DY=Y2-Y1 CB=DSQRT(DX*DX+DY*DY) C=DX/CB S=DY/CB D1=E*A/CB D2=12*E*AT/CB**3 D3=6*E*AT/(CB*CB) D4=4*E*AT/CB R(1,1)=C R(2,1)=-S R(1,2)=S R(2,2)=C R(3,3)=1 R(4,4)=C R(5,4)=-S R(4,5)=S R(5,5)=C R(6,6)=1 WRITE(3,106)I 106 FORMAT(/,1X,I2,' NUMARALI CUBUGUN DONUSUM MATRISI') WRITE(3,99)(N(L),L=1,6) 99 FORMAT(10(I14)) DO 103 L=1,6 102 FORMAT(I2,'-)',10(1PE14.4)) 103 WRITE(3,102)N(L),(R(L,J),J=1,6) RL(1,1)=D1 RL(1,4)=-D1 RL(2,2)=D2 RL(2,3)=D3 RL(2,5)=-D2 RL(2,6)=D3 RL(3,2)=D3 RL(3,3)=D4 RL(3,5)=-D3 RL(3,6)=(D4)/2 RL(4,1)=-D1 RL(4,4)=D1 RL(5,2)=-D2 RL(5,3)=-D3 RL(5,5)=D2 RL(5,6)=-D3 RL(6,2)=D3 RL(6,3)=(D4)/2 RL(6,5)=-D3 RL(6,6)=D4 WRITE(3,104)I 104 FORMAT(/,1X,I2,' NUMARALI CUBUGUN LOKAL RIJITLIK MATRISI') WRITE(3,105)(N(L),L=1,6) 105 FORMAT(10(I14)) DO 107 L=1,6 107 WRITE(3,102)N(L),(RL(L,J),J=1,6) RETURN END C ======================================================== C ==== KESIT TESIRLERININ HESABI - GERIYE DONUK COZUM ==== C ======================================================== C BU ALT PROGRAM DONUSUM ADLI ALT PROGRAMIN MAT DOSYASINA YAZDIGI C MATRISLERI FORMATLI OLARAK OKUR. ANA PROGRAMDAN GONDERILEN DEPLASMAN C VEKTORUYLE, DONUSUM VE LOKAL RIJITLIK MATRISLERI HESAPLAMALARINDA C KULLANILIR. KESIT TESIRLERINI ICIN P MATRISINI OLUSTURUR VE BU MATRISI C OUT DOSYASINA FORMATLI OLARAK YAZAR. C DD:DEPLASMAN VEKTORU, DL:LOKAL DEPLASMAN VEKTORU D:ANAPROGRAMDAN C GONDERILEN GECICI DEPLASMAN VEKTORUDUR. DEPLASMAN NUMARALARINDAKI 0 C SAYISINI OKUDUGUNDA DOGRU HESAP YAPABILMESI ICIN KULLANILIR. C DD VEKTORU GERCEK DEPLASMAN VEKTORUDUR. C JC:CUBUK NUMARASI, D:DEPLASMAN VEKTORU, K:DEPLASMAN SAYISI SUBROUTINE GERI(JC,D,K) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION R(6,6),RL(6,6),N(6),D(K+1),DD(6),DL(6),P(6) DD=0 DL=0 P=0 1 FORMAT(/,I3) 11 FORMAT(/,I3,/) 2 FORMAT(4X,6(1PE14.4)) 20 FORMAT(1X,6(1PE12.4)) READ(3,1)I READ(3,7)(N(I),I=1,6) DO 3 L=1,6 3 READ(3,2)(R(L,J),J=1,6) READ(3,11)I DO 5 L=1,6 5 READ(3,2)(RL(L,J),J=1,6) 7 FORMAT(6(I14)) DO 8 I=1,6 8 N(I)=N(I)+1 DO 90 I=K,1,-1 90 D(I+1)=D(I) D(1)=0 DO 10 I=1,6 10 DD(I)=D(N(I)) DO 9 I=1,K+1 9 D(I)=D(I+1) D(K+1)=0 CALL VEKCARP(6,DL,R,DD) CALL VEKCARP(6,P,RL,DL) WRITE(1,103)JC,(P(J),J=1,3) WRITE(1,103)JC,(P(J),J=4,6) 102 FORMAT(6(1PE14.4)) 103 FORMAT(1X,I4,3(1PE14.4)) RETURN END C======================================================================== C======================================================================== SUBROUTINE SAYFA1 WRITE(*,111) 111 FORMAT(/////, C .' SSSSSSS AAAAAAA FFFFFFFFF EEEEEEEE',/ C .' SSS S AAA AAA FFF EEE',/ C .' SSS AAA AAA FFF EEE',/ C .' SSS AAAAAAAAAA FFFFFFF EEEEEE',/ C .' SSS AAA AAA FFF EEE',/ C .' S SSS AAA AAA FFF EEE',/ C .' SSSSSSS AAA AAA FFF EEEEEEEE',/ .' ===========================================================',/ C .' ',/ .' ',// .' 2 Boyutlu €ubuk Elemanlar Analiz Yazlm',/ .' ',// .' ',/ .' Rasim TEMUR ',// .' ˜STANBUL šN˜VERS˜TES˜',/ .' SšRšM 1-0-0 N˜SAN,2002',/ .' ˜STANBUL, TšRK˜YE ',/// .' ===========================================================',/ .////) RETURN END