نمایش نتایج 1 تا 9 از 9

نام تاپیک: مشکل در زبان برنامه نویسی فرترن

  1. #1

    مشکل در زبان برنامه نویسی فرترن

    سلام دوستان عزیز 3 تا برنامه هست که به چند تا ارور جزئی ختم میشند اما نمیتونم درستشون کنم
    لطفا بهم کمک کنید وقتتون رو زیاد نمیگیره
    ممنونم
    پروژه اول


    PROGRAM
    !TOW DIMENSIONAL TRUSS FINITE ELEMENT PROGRAM
    !BY DR.J.RAAMACHANDRAN
    DIMENSION CO(10,2),NO(10,2),ES(4,4)
    DIMENSION S(20,20),Q(20)
    PRINT *,'GIVE NUMBER OF NODES'
    READ *,NP
    PRINT *,'GIVE NUMBER OF ELEMENTS'
    READ *,NE
    PRINT *,'GIVE NUMBER OF BOUNDRY CONDITIONS'
    READ *,NB
    PRINT *,'GIVE NUMBER OF LOADED NODES'
    READ *,NL
    PRINT *,'GIVE YOUNGS MODULUS'
    READ *,E

    !THIS PROGRAM ASSUMES THAT ALL MEMBERS HAVE SAME AREA OF CROSS SECTION
    PRINT *,'GIVE AREA OF CROSS SECTION'
    READ *,A
    NN=2*NP
    DO 1 I=1,NN
    Q(I)=0.0
    DO 1 J=1,NN
    S(I,J)=0.0
    DO 2 I=1,NP
    PRINT *,'GIVE X AND Y NODAL COORDINATES'
    READ *,CO(I,1),CO(I,2)
    CONTINUE
    PRINT *,'GIVE END NODES OF EACH ELEMENT:NODAL CONNECTIVITY'
    DO 3 I=1,NE
    READ *,NO(I,1),NO(I,2)
    CONTINUE
    DO 4 N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    F=E*A/EL
    ES(1,1)=F*CA*CA
    ES(1,2)=F*SA*CA
    ES(2,1)=F*SA*CA
    ES(2,2)=F*SA*CA
    DO 5 I=1,2
    DO 5 J=1,2
    ES(I,J+2)=-ES(I,J)
    ES(I+2,J)=-ES(I,J)
    CONTINUE
    DO 6 I=1,2
    DO 6 J=1,2
    DO 6 IL=1,2
    IE=2*(I-1)+IL
    NR=2*NO(N,I)-2+IL
    DO 6 JL=1,2
    JE=2*(J-1)+JL
    NC=2*NO(N,J)-2+JL
    S(NR,NC)=S(NR,NC)+ES(IE,JE)
    CONTINUE
    CONTINUE
    !GIVE LOADS
    PRINT *,'GIVE NODE,X-LOAD,Y-LOAD'
    DO 7 I=1,NL
    READ *,N,Q(2*N-1),Q(2*N)
    CONTINUE
    PRINT *,"GIVE BOUNDARY CONDITIONS. 1 IF U=0 AND 2 IF V=0"
    DO 8 I=1,NB
    READ *,N,NF
    NF=2*N-2+NF
    DO 9 J=1,NN
    S(NF,J)=0.0
    S(J,NF)=0.0
    S(NF,NF)=1.0
    Q(NF)=0.0
    CONTINUE
    DO 10 I=1,NN
    X=S(I,I)
    Q(I)=Q(I)/X
    DO 11 J=I+1,NN
    S(I,J)=S(I,J)/X
    CONTINUE
    DO 12 K=1,NN
    IF (K.EQ.I)GO TO 12
    X=S(K,I)
    Q(K)=Q(K)-X*Q(I)
    DO 13 J=1,NN
    S(K,J)=S(K,J)-X*S(I,J)
    CONTINUE
    CONTINUE
    CONTINUE
    PRINT *,'NODAL DISPLACEMENTS'
    DO 14 I=1,NP
    PRINT 15,I,Q(2*I-1),Q(2*I)
    FORMAT(2X,'NODE=',14,5X,'V=',F7.4)
    CONTINUE
    PRINT *,'ELEMENT TENSIONS'
    DO 16 N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    F=E*A/EL
    U2=CA*Q (2*NJ-1)+SA*Q(2*NJ)
    U1=CA*Q (2*NI-1)+SA*Q(2*NI)
    T=F*(U2-U1)
    PRINT17,N,T
    FORMAT (2X,'NE=',12,5X,'T=',F8.4)
    CONTINUE
    STOP
    END PROGRAM



    پروژه دوم :


    program prog

    !PLANE STRESS AND STRAIN ANALYSES USING ISOPARAMETRC RECTANGULAR ELEMENT. PROGRAM BY DR.J.RAAMACHANDRAN.
    DIMENSION S(100,20),Q(100),CO(50,2)
    DIMENSION EM(8,8),XY(4,2),T(3,8),ED(8)
    DIMENSION TJ(2,2),DL(2,4),C(3,8),ES(3)
    WRITE(*,*) "GIVE NO. OF NODES"
    READ(*,*) NP
    WRITE(*,*) "GIVE NO. OF ELEMENTS"
    READ(*,*)NE
    WRITE(*,*) "GIVE NO. SETS OF PROPERTIES"
    READ(*,*) NS
    WRITE(*,*) "GIVE NO. OF BOUNDARY NODES"
    READ(*,*) NB
    WRITE(*,*) "GIVE NO. OF LOADED NODES"
    READ(*,*) NL
    NT=2*NP
    WRITE(*,*) "GIVE YOUNGS MODULUS"
    READ(*,*) E
    WRITE(*,*) "GIVE POISSON RATIO"
    READ(*,*) PR
    WRITE(*,*) "GIVE THICKNESS"
    READ(*,*) TH
    WRITE(*,*)"GIVE NODAL COORDINATES: NODE, X,Y"
    DO 1 I=1,NP
    READ(*,*) I, CO(I,1),CO(I,2)
    CONTINUE
    NW=0
    WRITE(*,*)"GIVE ELEMENT NODE NO. IN A/C WISE DIRECTION"
    DO 4 I=1,NE
    READ(*,*) NN(I,1),NN(I,2),NN(I,3),NN(I,4)
    WRITE(*,*) I,NN(I,1),NN(I,2),NN(I,3),NN(I,4)
    DO 3 J1=1,4
    DO 2 J2=J1,4
    NW1=ABS(NN(I,J1)-NN(I,J2))
    IF(NW1.GT.NW) NW=NW1
    CONTINUE
    CONTINUE
    CONTINUE
    NW=NW*2+2
    DO(1,1)=E*TH/(1-PR*PR)
    D(2,2)=D(1,1)
    D(1,2)=PR*D(1,1)
    D(2,1)=D(1,2)
    D(3,2)=0.5*(1-PR)*D(1,1)
    D(3,2)=0.0
    D(1,3)=0.0
    D(2,3)=0.0
    D(3,1)=D(1,3)
    DO 6 I=1,NT
    Q(I)=0.0
    DO 5 J=1,20
    S(I,J)=0.0
    CONTINUE
    CONTINUE
    DO 17 N=1,NE
    DO 8 I=1,8
    DO 7 J=1,8
    EM(I,J)=0.0
    CONTINUE
    CONTINUE
    S3=SQRT(1/3)
    DO 12 II=1,4
    A=S3
    B=A
    IF(II.EQ.1) A=-A,B=-B

    IF(II.EQ.2) B=-B
    IF(II.EQ.4) A=-A
    CALL CALC
    DJ=ABS(DJ)
    DO 11 I=1,8
    DO 10 J=1,8
    DO 9 K=1,3
    EM(I,J)=EM(I,J)+C(K,I)*t(K,J)*DJ
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    DO 16 I=1,4
    IN=NN(N,I)
    DO 15 J=1,4
    JN=NN(N,J)
    DO 14 IL=1,2
    IE=(I-1)*2+IL
    NR=(IN-1)*2+IL
    DO 13 JL=1,2
    JE=(J-1)*2+JL
    NC=(JN-1)*2+JL
    NCB=NC-NR+1
    S(NR,NCB)=S(NR,NCB)+EM(IE,JE)
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    WRITE(*,*) "ELEMENT",N
    CONTINUE
    WRITE(*,*) "NODAL LOADS"
    WRITE(*,*)"NODE QX QY"
    DO 18 I=1,NL
    READ(*,*) N,Q(2*N-1),Q(2*N)
    WRITE(*,*) N,Q(2*N-1),Q(2*N)
    CONTINUE
    WRITE(*,*)"GIVE BOUNDARY CONDITIONS"
    WRITE(*,*)"NODE U V"
    DO 19 I=1,NB
    READ(*,*)N,NU,NV
    WRITE(*,*)N,NU,NV
    K=2*N-1
    IF(NU.EQ.1) S(K,1)=S(K,1)*PF
    IF(NV.EQ.1) S(K+1,1)=S(K+1,1)*PF
    CONTINUE
    DO 25 L=1,NP
    ND=(NP-L+1)*2
    IF(ND.GT.(NW-2)) LM=NW
    DO 24 I=1,2
    LM=LM-1
    IP=2*(L-1)+I
    X=S(IP,1)
    Q(IP)=Q(IP)/X
    DO 20 J=1,LM
    RM(J)=S(IP,J+1)
    CONTINUE
    DO 21 JJ=1,LM+1
    S(IP,JJ)=S(IP,JJ)/X
    CONTINUE
    DO 23 K=1,LM
    NR=IP+K
    NC=LM-K+1
    X=RM(K)
    Q(NR)=Q(NR)-X*Q(IP)
    DO 22 J=1,NC
    JP=J+K
    S(NR,J)=S(NR,J)-X*S(IP,JP)
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    I=NT
    Q(NT)=Q(NT)/S(NT,1)
    I=I-1
    IF(LM.LT.(NW-1)) LM=LM+1
    DO 27 J=1,LM
    Q(I)=Q(I)-S(I,J+1)*Q(I+J)
    CONTINUE
    IF(I.GT.1) GOTO 26
    WRITE(*,*)"NODAL DISPLACEMENTS"
    WRITE(*,*)"ELEMENT U V"
    DO 29 I=1,NP
    WRITE(*,28) I,Q(2*I-1),Q(2*I)
    FORMAT(3X,I4,10X,F10.4,10X,F10.4)
    CONTINUE
    WRITE(*,*)"ELEMENT STRESSES"
    WRITE(*,*)"ELE. NO. SIGMA-X SIGMA-Y SIGMA-XY"
    DO 34 N=1,NE
    A=0.0
    B=0.0
    CALL CALC
    DO 30 I=1,4
    K=NN(N,1)
    ED(2*I-1)=Q(2*K-1)
    ED(2*I)=Q(2*K)
    CONTINUE
    DO 32 I=1,3
    ES(I)=0.0
    DO 31 J=1,8
    ES(I)=ES(I)+T(I,J)*ED(J)
    CONTINUE
    CONTINUE
    WRITE(*,33) N,ES(1),ES(2),ES(3)
    FORMAT(2X,I4,10X,3F10.4)
    CONTINUE
    STOP
    END

    SUBROUTINE CALC
    DO 1 I=1,4
    K=NN(N,I)
    XY(I,1)=CO(K,1)
    XY(I,2)=CO(K,2)
    CONTINUE
    DL(1,1)=(B-1)/4.0
    DL(1,2)=(1-B)/4.0
    DL(1,3)=(1+B)/4.0
    DL(1,4)=-(1+B)/4.0
    DL(2,1)=(A-1)/4.0
    DL(2,2)=-(1+A)/4.0
    DL(2,3)=(1+A)/4.0
    DL(2,4)=(1-A)/4.0
    DO 4 I=1,2
    DO 3 J=1,2
    TJ(I,J)=0.0
    DO 2 K=1,4
    TJ(I,J)=TJ(I,J)+DL(I,K)*XY(K,J)
    CONTINUE
    CONTINUE
    CONTINUE
    DJ=TJ(1,1)*TJ(2,2)-TJ(1,2)*TJ(2,1)
    DD=TJ(1,1)
    TJ(1,1)=TJ(2,2)/DJ
    TJ(2,2)=DD/DJ
    TJ(1,2)=-TJ(1,2)/DJ
    TJ(2,1)=-TJ(2,1)/DJ
    DO 7 I=1,2
    DO 6 J=1,4
    T(I,J)=0.0
    DO 5 K=1,2
    T(I,J)=T(I,J)+TJ(I,K)*DL(K,J)
    CONTINUE
    CONTINUE
    CONTINUE
    DO 9 I=1,3
    DO 8 J=1,8
    C(I,J)=0.0
    CONTINUE
    CONTINUE
    DO 10 J=1,4
    C(1,2*J-1)=T(1,J)
    C(3,2*J)=T(1,J)
    C(2,2*J)=T(2,J)
    C(3,2*J-1)=T(2,J)
    CONTINUE
    DO 13 I=1,3
    DO 12 J=1,8
    T(I.J)=0.0
    DO 11 K=1,3
    T(I,J)=T(I,J)+D(I,K)*C(K,J)
    CONTINUE
    CONTINUE
    RETURN
    end program prog




    پروژه سوم



    program
    !PROGRAM TO ANALYSE BEAMS AND FRAMES
    !BY DR.J.RAAMACHANDRAN
    DIMENSION ES(20,20),SS(100,100),Q(100),P(60)
    DIMENSION NO(60,2),CO(40,2),PRS(32,5)
    WRITE (*,*)"GIVE NO. OF NODES=NP,NO OF ELEMETS=NE,NO,OF BC=NB"
    WRITE (*,*)"NO OF LOADED NODES=NI,NO OF PROPERTIES=NPR"
    READ(*,*)NP,NE,NB,NL,NPR
    NN=3*NP
    DO 2 I=1,NN
    Q (I)=0
    DO 1 J=1,NN
    SS (I,G)=0
    CONTINUE
    CONTINUE
    WRITE (*,*)"GIVE YOUNG MODULUS=,AREA OF C/S=A,MOMENT OF INERTIA=I"
    WRITE (*,*)"SELF WEIGHT=PY,APPLIED LOAD PER UNIT LENGTH=PN"
    DO 3 I=1,NPR
    READ (*,*)PRS(I,1),PRS(I,2),PRS(I,3),PRS(I,4),PRS(I,5)
    CONTINUE
    WRITE (*,*)"GIVE X AND Y NODAL COORDINATES"
    DO 4 I=1,NP
    READ(*,*) CO(I,1),CO(I,2)
    CONTINUE
    WRITE(*,*)"GIVE PROPERTY NUMBER AND CONNECTING NODES"
    DO 5 I=1,NE
    READ (*,*)P(I),NO(I,1),NO(I,2)
    CONTINUE
    DO 12N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    K=P(N)
    E=PRS(K,1)
    A=E*PRS(K,2)/EL
    M=4*E*PRS(K,3)/EL
    S=1.5*M/EL
    ES(1,1)=A*CA*CA+2*S*SA*SA/EL
    ES(1,2)=A*CA*SA-2*SA*S*CA/EL
    ES(2,1)=ES(1,2)
    ES(2,2)=A*SA*SA+2*S*CA*CA/EL
    DO 6 I=1,2
    DO 6 J=1,2
    ES(I,J+3)=ES(I,J)
    ES(I+3,J)=ES(I,J)
    ES(I+3,J+3)=ES(I,J)
    CONTINUE
    ES(3,1)=S*SA
    ES(3,2)=S*CA
    ES(3,3)=M
    ES(3,4)=S*SA
    ES(3,5)=S*CA
    ES(3,6)=M/2
    DO 7 I=1,6
    ES(I,3)=ES(3,I)
    ES(I,6)=ES(3,I)
    ES(6,I)=ES(3,I)
    CONTINUE
    ES(6,6)=M
    ES(3,6)=M/2
    ES(6,3)=ES(3,6)
    FM=PRS(K,4)+CA*PRS(K,5)
    Q(3*NI-1)=Q(3*NI-1)+FM*EL/2
    Q(3*NJ-1)=Q(3*NJ-1)+FM*EL/2
    FM=CA*PRS(K,4)+PRS(K,5)
    Q(3*NI)=Q(3*NI)+FM*EL*EL/2
    Q(3*NJ)=Q(3*NJ)-FM*EL*EL/2
    FM=SA*PRS(K,5)*EL/2
    Q(3*NI-2)=Q(3*NI-2)-FM
    Q(3*NJ-2)=Q(3*NJ-2)-FM
    DO 11 I=1,2
    DO 10 J=1,2
    DO 9 IL=1,3
    IE=3*(I-1)+IL
    NR=3*NO(N,I)-3+IL
    DO 8 JL=1,3
    JE=3*(J-1)+JL
    NC=3*NO(N,J)-3+JL
    SS(NR,NC)=SS(NR,NC)+ES(IE,JE)
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    IF(NL.EQ.0)GOTO 14
    WRITE(*,*)"GIVE NODE AND LOADS THEREIN:U,V,M"
    DO 13 I=1,NL
    READ (*,*) N,QU,QV,QM
    Q(3*N-2)=Q(3*N-2)+QU
    Q(3*N-1)=Q(3*N-1)+QV
    Q(3*N)=Q(3*N)+QM
    CONTINUE
    WRITE(*,*)"CONDITIONS AT BOUNDARY NODES"
    DO 16 I=1,NB
    READ(*,*)N,NF
    NF=3*N-3+NF
    DO 15 J=1,NN
    SS(NF,J)=0.0
    CONTINUE
    SS(NF,NF)=1.0
    Q(NF)=0.0
    CONTINUE
    DO 20 I=1,NN
    X=SS(I,I)
    Q(I)=Q(I)/X
    DO 17 J=I+1,NN
    SS(I,J)=SS(I,J)/X
    CONTINUE
    DO 19 K=1,NN
    IF(K.EQ.I)GOTO 19
    X=SS(K,I)
    Q(K)=Q(K)-X*Q(I)
    DO 18 J=I+1,NN
    SS(K,J)=SS(K,J)-X*SS(I,J)
    CONTINUE
    CONTINUE
    CONTINUE
    WRITE(*,*)"***********RESULTS************"
    WRITE(*,*)"NODAL DISPLACEMENTS"
    WRITE(*,*)"NODE U V ROTATION"
    DO 21 I=1,NP
    WRITE(*,*)I,Q(3*I-2),Q(3*I-1),Q(3*I)
    CONTINUE
    DO 22 N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    K=P(N)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    UI=Q(3*NI-2)*CA+Q(3*NI-1)*SA
    VI=Q(3*NI-2)*CA+Q(3*NI-1)*CA
    UJ=Q(3*NI-2)*CA+Q(3*NJ-1)*CA
    VJ=Q(3*NJ-2)*SA+Q(3*NJ-1)*CA
    RI=Q(3*NI)
    RJ=Q(3*NJ)
    FM=PRS(K,4)*CA+PRS(K,5)
    T=PRS(K,1)*PRS(K,2)*(UJ-UI)/EL
    M=4*PRS(K,1)*PRS(K,3)/EL
    S=1.5*M/EL
    V=2*S/EL
    FL=V*(VI-VJ)+S*(RI+RJ)-FM*EL/2
    FR=V*(VI-VJ)-S*(RI+RJ)-FM*EL/2
    FM=FM*EL*EL/12
    ML=S*(VI-VJ)+M*(RI+RJ/2)-FM
    MR=S*(VI-VJ)+M*(RI/2+RJ)+FM
    WRITE(*,*) "ELEMENT",N
    WRITE(*,*)"NODE :AXIAL :SHEAR :MOMENT"
    WRITE(*,*)I
    WRITE(*,*)NI
    WRITE(*,*)T,FL,ML
    WRITE(*,*)J
    WRITE(*,*)NJ
    WRITE(*,*) T,FR,MR
    CONTINUE
    STOP
    end program




    باز هم ممنونم

  2. #2

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    .......................

  3. #3

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    سلام دوستان

    من کدی رو نوشتم و اجرا شد و وقتی میخوام رایت بگیرم به درستی خروجی میدهد.ولی خروجی برای نمایش آرایه(ماتریس) برهم خوردگی داره به تصویر زیر توجه کنین .ممنون میشم با توضیح منو راهنمایی کنین.



    فایل فرترن هم گذاشتم.فقط باید ترانهاده ماتریس اصلی رو وارد فایل داده ها کنیم که داخل فایل مشخص شده.major مربوط به فایل اصلی هست ولی initial مربوط به فایل داده ها هست اینطور به درستی خروجی میده.
    http://kanakh.com/upload/uploads/13958236301.rar

  4. #4

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    من هم با همین مشکل مواجه شدم اگر کسی فهمید به ماهم بگه ممنون

  5. #5

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    نقل قول نوشته شده توسط amir2225 مشاهده تاپیک
    من هم با همین مشکل مواجه شدم اگر کسی فهمید به ماهم بگه ممنون
    کدوم مشکل؟
    اولی یا دومی؟

  6. #6

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    سلام دوستان ،،استادم گفته از طریق کدهای نوشته شده در درس سی اف دی،،،،یه مقاله بدم!!!!
    حالا من پروژه های زیر ر انجام دادم:
    1.انتقال حرارت هدایت یک بعدی بر روی اسلب و کره و استوانه
    2.انتقال حرارت هدایت دو بعدی بر روی استوانه
    3.انتقال حرارت در داخل رگ(استوانه)
    4.انتقال حرارت جریان خزشی بر روی یک کره
    حالا از بین کد های نوشته شده،باید مقاله مرتبط پیدا کنم و مقاله رو توسعه بدم و بشه یه مقاله جدید.
    واقعا دیگه نمیدونم چی بگم...پروژه درس دیگه هم دارم و واقعا وقتم کم هست.من سرچ هم کردم و نتونستم مقاله عددی(فارسی یا خارجی) مناسب پیدا کنم....نمیدونم باید چکار کنم...
    من این ترم در آستانه مشروطی هستمجبران میکنم.کمکم کنین.
    یاعلی

  7. #7

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    سلام دوستان

    من به یه مشکلی در کدنویسی با فرترن برخورردم،،یه اروری در حین کامپایل کردن بهم میده و ارورش شماره داره،مثلا اینطوری: error FOR3598

    خواستم بدونم راهی وجود داره که من بتونم بفهمم این ارور منظورش چیه و بیشتر راجع بهش بدونم؟

    واقعا ممنون میشم که کمکم کنین باتشکر

  8. #8

    نقل قول: مشکل در زبان برنامه نویسی فرترن


  9. #9
    کاربر جدید
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    تهران
    پست
    6

    نقل قول: مشکل در زبان برنامه نویسی فرترن

    نقل قول نوشته شده توسط anf-b مشاهده تاپیک
    سلام دوستان عزیز 3 تا برنامه هست که به چند تا ارور جزئی ختم میشند اما نمیتونم درستشون کنم
    لطفا بهم کمک کنید وقتتون رو زیاد نمیگیره
    ممنونم
    پروژه اول


    PROGRAM
    !TOW DIMENSIONAL TRUSS FINITE ELEMENT PROGRAM
    !BY DR.J.RAAMACHANDRAN
    DIMENSION CO(10,2),NO(10,2),ES(4,4)
    DIMENSION S(20,20),Q(20)
    PRINT *,'GIVE NUMBER OF NODES'
    READ *,NP
    PRINT *,'GIVE NUMBER OF ELEMENTS'
    READ *,NE
    PRINT *,'GIVE NUMBER OF BOUNDRY CONDITIONS'
    READ *,NB
    PRINT *,'GIVE NUMBER OF LOADED NODES'
    READ *,NL
    PRINT *,'GIVE YOUNGS MODULUS'
    READ *,E

    !THIS PROGRAM ASSUMES THAT ALL MEMBERS HAVE SAME AREA OF CROSS SECTION
    PRINT *,'GIVE AREA OF CROSS SECTION'
    READ *,A
    NN=2*NP
    DO 1 I=1,NN
    Q(I)=0.0
    DO 1 J=1,NN
    S(I,J)=0.0
    DO 2 I=1,NP
    PRINT *,'GIVE X AND Y NODAL COORDINATES'
    READ *,CO(I,1),CO(I,2)
    CONTINUE
    PRINT *,'GIVE END NODES OF EACH ELEMENT:NODAL CONNECTIVITY'
    DO 3 I=1,NE
    READ *,NO(I,1),NO(I,2)
    CONTINUE
    DO 4 N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    F=E*A/EL
    ES(1,1)=F*CA*CA
    ES(1,2)=F*SA*CA
    ES(2,1)=F*SA*CA
    ES(2,2)=F*SA*CA
    DO 5 I=1,2
    DO 5 J=1,2
    ES(I,J+2)=-ES(I,J)
    ES(I+2,J)=-ES(I,J)
    CONTINUE
    DO 6 I=1,2
    DO 6 J=1,2
    DO 6 IL=1,2
    IE=2*(I-1)+IL
    NR=2*NO(N,I)-2+IL
    DO 6 JL=1,2
    JE=2*(J-1)+JL
    NC=2*NO(N,J)-2+JL
    S(NR,NC)=S(NR,NC)+ES(IE,JE)
    CONTINUE
    CONTINUE
    !GIVE LOADS
    PRINT *,'GIVE NODE,X-LOAD,Y-LOAD'
    DO 7 I=1,NL
    READ *,N,Q(2*N-1),Q(2*N)
    CONTINUE
    PRINT *,"GIVE BOUNDARY CONDITIONS. 1 IF U=0 AND 2 IF V=0"
    DO 8 I=1,NB
    READ *,N,NF
    NF=2*N-2+NF
    DO 9 J=1,NN
    S(NF,J)=0.0
    S(J,NF)=0.0
    S(NF,NF)=1.0
    Q(NF)=0.0
    CONTINUE
    DO 10 I=1,NN
    X=S(I,I)
    Q(I)=Q(I)/X
    DO 11 J=I+1,NN
    S(I,J)=S(I,J)/X
    CONTINUE
    DO 12 K=1,NN
    IF (K.EQ.I)GO TO 12
    X=S(K,I)
    Q(K)=Q(K)-X*Q(I)
    DO 13 J=1,NN
    S(K,J)=S(K,J)-X*S(I,J)
    CONTINUE
    CONTINUE
    CONTINUE
    PRINT *,'NODAL DISPLACEMENTS'
    DO 14 I=1,NP
    PRINT 15,I,Q(2*I-1),Q(2*I)
    FORMAT(2X,'NODE=',14,5X,'V=',F7.4)
    CONTINUE
    PRINT *,'ELEMENT TENSIONS'
    DO 16 N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    F=E*A/EL
    U2=CA*Q (2*NJ-1)+SA*Q(2*NJ)
    U1=CA*Q (2*NI-1)+SA*Q(2*NI)
    T=F*(U2-U1)
    PRINT17,N,T
    FORMAT (2X,'NE=',12,5X,'T=',F8.4)
    CONTINUE
    STOP
    END PROGRAM



    پروژه دوم :


    program prog

    !PLANE STRESS AND STRAIN ANALYSES USING ISOPARAMETRC RECTANGULAR ELEMENT. PROGRAM BY DR.J.RAAMACHANDRAN.
    DIMENSION S(100,20),Q(100),CO(50,2)
    DIMENSION EM(8,8),XY(4,2),T(3,8),ED(8)
    DIMENSION TJ(2,2),DL(2,4),C(3,8),ES(3)
    WRITE(*,*) "GIVE NO. OF NODES"
    READ(*,*) NP
    WRITE(*,*) "GIVE NO. OF ELEMENTS"
    READ(*,*)NE
    WRITE(*,*) "GIVE NO. SETS OF PROPERTIES"
    READ(*,*) NS
    WRITE(*,*) "GIVE NO. OF BOUNDARY NODES"
    READ(*,*) NB
    WRITE(*,*) "GIVE NO. OF LOADED NODES"
    READ(*,*) NL
    NT=2*NP
    WRITE(*,*) "GIVE YOUNGS MODULUS"
    READ(*,*) E
    WRITE(*,*) "GIVE POISSON RATIO"
    READ(*,*) PR
    WRITE(*,*) "GIVE THICKNESS"
    READ(*,*) TH
    WRITE(*,*)"GIVE NODAL COORDINATES: NODE, X,Y"
    DO 1 I=1,NP
    READ(*,*) I, CO(I,1),CO(I,2)
    CONTINUE
    NW=0
    WRITE(*,*)"GIVE ELEMENT NODE NO. IN A/C WISE DIRECTION"
    DO 4 I=1,NE
    READ(*,*) NN(I,1),NN(I,2),NN(I,3),NN(I,4)
    WRITE(*,*) I,NN(I,1),NN(I,2),NN(I,3),NN(I,4)
    DO 3 J1=1,4
    DO 2 J2=J1,4
    NW1=ABS(NN(I,J1)-NN(I,J2))
    IF(NW1.GT.NW) NW=NW1
    CONTINUE
    CONTINUE
    CONTINUE
    NW=NW*2+2
    DO(1,1)=E*TH/(1-PR*PR)
    D(2,2)=D(1,1)
    D(1,2)=PR*D(1,1)
    D(2,1)=D(1,2)
    D(3,2)=0.5*(1-PR)*D(1,1)
    D(3,2)=0.0
    D(1,3)=0.0
    D(2,3)=0.0
    D(3,1)=D(1,3)
    DO 6 I=1,NT
    Q(I)=0.0
    DO 5 J=1,20
    S(I,J)=0.0
    CONTINUE
    CONTINUE
    DO 17 N=1,NE
    DO 8 I=1,8
    DO 7 J=1,8
    EM(I,J)=0.0
    CONTINUE
    CONTINUE
    S3=SQRT(1/3)
    DO 12 II=1,4
    A=S3
    B=A
    IF(II.EQ.1) A=-A,B=-B

    IF(II.EQ.2) B=-B
    IF(II.EQ.4) A=-A
    CALL CALC
    DJ=ABS(DJ)
    DO 11 I=1,8
    DO 10 J=1,8
    DO 9 K=1,3
    EM(I,J)=EM(I,J)+C(K,I)*t(K,J)*DJ
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    DO 16 I=1,4
    IN=NN(N,I)
    DO 15 J=1,4
    JN=NN(N,J)
    DO 14 IL=1,2
    IE=(I-1)*2+IL
    NR=(IN-1)*2+IL
    DO 13 JL=1,2
    JE=(J-1)*2+JL
    NC=(JN-1)*2+JL
    NCB=NC-NR+1
    S(NR,NCB)=S(NR,NCB)+EM(IE,JE)
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    WRITE(*,*) "ELEMENT",N
    CONTINUE
    WRITE(*,*) "NODAL LOADS"
    WRITE(*,*)"NODE QX QY"
    DO 18 I=1,NL
    READ(*,*) N,Q(2*N-1),Q(2*N)
    WRITE(*,*) N,Q(2*N-1),Q(2*N)
    CONTINUE
    WRITE(*,*)"GIVE BOUNDARY CONDITIONS"
    WRITE(*,*)"NODE U V"
    DO 19 I=1,NB
    READ(*,*)N,NU,NV
    WRITE(*,*)N,NU,NV
    K=2*N-1
    IF(NU.EQ.1) S(K,1)=S(K,1)*PF
    IF(NV.EQ.1) S(K+1,1)=S(K+1,1)*PF
    CONTINUE
    DO 25 L=1,NP
    ND=(NP-L+1)*2
    IF(ND.GT.(NW-2)) LM=NW
    DO 24 I=1,2
    LM=LM-1
    IP=2*(L-1)+I
    X=S(IP,1)
    Q(IP)=Q(IP)/X
    DO 20 J=1,LM
    RM(J)=S(IP,J+1)
    CONTINUE
    DO 21 JJ=1,LM+1
    S(IP,JJ)=S(IP,JJ)/X
    CONTINUE
    DO 23 K=1,LM
    NR=IP+K
    NC=LM-K+1
    X=RM(K)
    Q(NR)=Q(NR)-X*Q(IP)
    DO 22 J=1,NC
    JP=J+K
    S(NR,J)=S(NR,J)-X*S(IP,JP)
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    I=NT
    Q(NT)=Q(NT)/S(NT,1)
    I=I-1
    IF(LM.LT.(NW-1)) LM=LM+1
    DO 27 J=1,LM
    Q(I)=Q(I)-S(I,J+1)*Q(I+J)
    CONTINUE
    IF(I.GT.1) GOTO 26
    WRITE(*,*)"NODAL DISPLACEMENTS"
    WRITE(*,*)"ELEMENT U V"
    DO 29 I=1,NP
    WRITE(*,28) I,Q(2*I-1),Q(2*I)
    FORMAT(3X,I4,10X,F10.4,10X,F10.4)
    CONTINUE
    WRITE(*,*)"ELEMENT STRESSES"
    WRITE(*,*)"ELE. NO. SIGMA-X SIGMA-Y SIGMA-XY"
    DO 34 N=1,NE
    A=0.0
    B=0.0
    CALL CALC
    DO 30 I=1,4
    K=NN(N,1)
    ED(2*I-1)=Q(2*K-1)
    ED(2*I)=Q(2*K)
    CONTINUE
    DO 32 I=1,3
    ES(I)=0.0
    DO 31 J=1,8
    ES(I)=ES(I)+T(I,J)*ED(J)
    CONTINUE
    CONTINUE
    WRITE(*,33) N,ES(1),ES(2),ES(3)
    FORMAT(2X,I4,10X,3F10.4)
    CONTINUE
    STOP
    END

    SUBROUTINE CALC
    DO 1 I=1,4
    K=NN(N,I)
    XY(I,1)=CO(K,1)
    XY(I,2)=CO(K,2)
    CONTINUE
    DL(1,1)=(B-1)/4.0
    DL(1,2)=(1-B)/4.0
    DL(1,3)=(1+B)/4.0
    DL(1,4)=-(1+B)/4.0
    DL(2,1)=(A-1)/4.0
    DL(2,2)=-(1+A)/4.0
    DL(2,3)=(1+A)/4.0
    DL(2,4)=(1-A)/4.0
    DO 4 I=1,2
    DO 3 J=1,2
    TJ(I,J)=0.0
    DO 2 K=1,4
    TJ(I,J)=TJ(I,J)+DL(I,K)*XY(K,J)
    CONTINUE
    CONTINUE
    CONTINUE
    DJ=TJ(1,1)*TJ(2,2)-TJ(1,2)*TJ(2,1)
    DD=TJ(1,1)
    TJ(1,1)=TJ(2,2)/DJ
    TJ(2,2)=DD/DJ
    TJ(1,2)=-TJ(1,2)/DJ
    TJ(2,1)=-TJ(2,1)/DJ
    DO 7 I=1,2
    DO 6 J=1,4
    T(I,J)=0.0
    DO 5 K=1,2
    T(I,J)=T(I,J)+TJ(I,K)*DL(K,J)
    CONTINUE
    CONTINUE
    CONTINUE
    DO 9 I=1,3
    DO 8 J=1,8
    C(I,J)=0.0
    CONTINUE
    CONTINUE
    DO 10 J=1,4
    C(1,2*J-1)=T(1,J)
    C(3,2*J)=T(1,J)
    C(2,2*J)=T(2,J)
    C(3,2*J-1)=T(2,J)
    CONTINUE
    DO 13 I=1,3
    DO 12 J=1,8
    T(I.J)=0.0
    DO 11 K=1,3
    T(I,J)=T(I,J)+D(I,K)*C(K,J)
    CONTINUE
    CONTINUE
    RETURN
    end program prog




    پروژه سوم



    program
    !PROGRAM TO ANALYSE BEAMS AND FRAMES
    !BY DR.J.RAAMACHANDRAN
    DIMENSION ES(20,20),SS(100,100),Q(100),P(60)
    DIMENSION NO(60,2),CO(40,2),PRS(32,5)
    WRITE (*,*)"GIVE NO. OF NODES=NP,NO OF ELEMETS=NE,NO,OF BC=NB"
    WRITE (*,*)"NO OF LOADED NODES=NI,NO OF PROPERTIES=NPR"
    READ(*,*)NP,NE,NB,NL,NPR
    NN=3*NP
    DO 2 I=1,NN
    Q (I)=0
    DO 1 J=1,NN
    SS (I,G)=0
    CONTINUE
    CONTINUE
    WRITE (*,*)"GIVE YOUNG MODULUS=,AREA OF C/S=A,MOMENT OF INERTIA=I"
    WRITE (*,*)"SELF WEIGHT=PY,APPLIED LOAD PER UNIT LENGTH=PN"
    DO 3 I=1,NPR
    READ (*,*)PRS(I,1),PRS(I,2),PRS(I,3),PRS(I,4),PRS(I,5)
    CONTINUE
    WRITE (*,*)"GIVE X AND Y NODAL COORDINATES"
    DO 4 I=1,NP
    READ(*,*) CO(I,1),CO(I,2)
    CONTINUE
    WRITE(*,*)"GIVE PROPERTY NUMBER AND CONNECTING NODES"
    DO 5 I=1,NE
    READ (*,*)P(I),NO(I,1),NO(I,2)
    CONTINUE
    DO 12N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    K=P(N)
    E=PRS(K,1)
    A=E*PRS(K,2)/EL
    M=4*E*PRS(K,3)/EL
    S=1.5*M/EL
    ES(1,1)=A*CA*CA+2*S*SA*SA/EL
    ES(1,2)=A*CA*SA-2*SA*S*CA/EL
    ES(2,1)=ES(1,2)
    ES(2,2)=A*SA*SA+2*S*CA*CA/EL
    DO 6 I=1,2
    DO 6 J=1,2
    ES(I,J+3)=ES(I,J)
    ES(I+3,J)=ES(I,J)
    ES(I+3,J+3)=ES(I,J)
    CONTINUE
    ES(3,1)=S*SA
    ES(3,2)=S*CA
    ES(3,3)=M
    ES(3,4)=S*SA
    ES(3,5)=S*CA
    ES(3,6)=M/2
    DO 7 I=1,6
    ES(I,3)=ES(3,I)
    ES(I,6)=ES(3,I)
    ES(6,I)=ES(3,I)
    CONTINUE
    ES(6,6)=M
    ES(3,6)=M/2
    ES(6,3)=ES(3,6)
    FM=PRS(K,4)+CA*PRS(K,5)
    Q(3*NI-1)=Q(3*NI-1)+FM*EL/2
    Q(3*NJ-1)=Q(3*NJ-1)+FM*EL/2
    FM=CA*PRS(K,4)+PRS(K,5)
    Q(3*NI)=Q(3*NI)+FM*EL*EL/2
    Q(3*NJ)=Q(3*NJ)-FM*EL*EL/2
    FM=SA*PRS(K,5)*EL/2
    Q(3*NI-2)=Q(3*NI-2)-FM
    Q(3*NJ-2)=Q(3*NJ-2)-FM
    DO 11 I=1,2
    DO 10 J=1,2
    DO 9 IL=1,3
    IE=3*(I-1)+IL
    NR=3*NO(N,I)-3+IL
    DO 8 JL=1,3
    JE=3*(J-1)+JL
    NC=3*NO(N,J)-3+JL
    SS(NR,NC)=SS(NR,NC)+ES(IE,JE)
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    CONTINUE
    IF(NL.EQ.0)GOTO 14
    WRITE(*,*)"GIVE NODE AND LOADS THEREIN:U,V,M"
    DO 13 I=1,NL
    READ (*,*) N,QU,QV,QM
    Q(3*N-2)=Q(3*N-2)+QU
    Q(3*N-1)=Q(3*N-1)+QV
    Q(3*N)=Q(3*N)+QM
    CONTINUE
    WRITE(*,*)"CONDITIONS AT BOUNDARY NODES"
    DO 16 I=1,NB
    READ(*,*)N,NF
    NF=3*N-3+NF
    DO 15 J=1,NN
    SS(NF,J)=0.0
    CONTINUE
    SS(NF,NF)=1.0
    Q(NF)=0.0
    CONTINUE
    DO 20 I=1,NN
    X=SS(I,I)
    Q(I)=Q(I)/X
    DO 17 J=I+1,NN
    SS(I,J)=SS(I,J)/X
    CONTINUE
    DO 19 K=1,NN
    IF(K.EQ.I)GOTO 19
    X=SS(K,I)
    Q(K)=Q(K)-X*Q(I)
    DO 18 J=I+1,NN
    SS(K,J)=SS(K,J)-X*SS(I,J)
    CONTINUE
    CONTINUE
    CONTINUE
    WRITE(*,*)"***********RESULTS************"
    WRITE(*,*)"NODAL DISPLACEMENTS"
    WRITE(*,*)"NODE U V ROTATION"
    DO 21 I=1,NP
    WRITE(*,*)I,Q(3*I-2),Q(3*I-1),Q(3*I)
    CONTINUE
    DO 22 N=1,NE
    NI=NO(N,1)
    NJ=NO(N,2)
    K=P(N)
    DX=CO(NJ,1)-CO(NI,1)
    DY=CO(NJ,2)-CO(NI,2)
    EL=SQRT(DX*DX+DY*DY)
    CA=DX/EL
    SA=DY/EL
    UI=Q(3*NI-2)*CA+Q(3*NI-1)*SA
    VI=Q(3*NI-2)*CA+Q(3*NI-1)*CA
    UJ=Q(3*NI-2)*CA+Q(3*NJ-1)*CA
    VJ=Q(3*NJ-2)*SA+Q(3*NJ-1)*CA
    RI=Q(3*NI)
    RJ=Q(3*NJ)
    FM=PRS(K,4)*CA+PRS(K,5)
    T=PRS(K,1)*PRS(K,2)*(UJ-UI)/EL
    M=4*PRS(K,1)*PRS(K,3)/EL
    S=1.5*M/EL
    V=2*S/EL
    FL=V*(VI-VJ)+S*(RI+RJ)-FM*EL/2
    FR=V*(VI-VJ)-S*(RI+RJ)-FM*EL/2
    FM=FM*EL*EL/12
    ML=S*(VI-VJ)+M*(RI+RJ/2)-FM
    MR=S*(VI-VJ)+M*(RI/2+RJ)+FM
    WRITE(*,*) "ELEMENT",N
    WRITE(*,*)"NODE :AXIAL :SHEAR :MOMENT"
    WRITE(*,*)I
    WRITE(*,*)NI
    WRITE(*,*)T,FL,ML
    WRITE(*,*)J
    WRITE(*,*)NJ
    WRITE(*,*) T,FR,MR
    CONTINUE
    STOP
    end program




    باز هم ممنونم



    من هر سه تا کد رو تو PLATO (FORTRAN 95 ) ران کردم
    ارور مشترک تو همشون این بوده که یک شمارنده دو بار در یک حلقه استفاده شد

تاپیک های مشابه

  1. زبان برنامه نویسی فرترن
    نوشته شده توسط Desaghi در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: شنبه 28 اسفند 1389, 01:52 صبح
  2. مشکل جست جو نام در اس کیو ال سرور با زبان برنامه نویسی ویبی دات نت
    نوشته شده توسط sempay_ninjutsu در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: چهارشنبه 16 اردیبهشت 1388, 09:08 صبح
  3. زبان برنامه نویسی جدید AFP یا Active Foxpro Pages
    نوشته شده توسط Afshinpour در بخش Foxpro
    پاسخ: 2
    آخرین پست: یک شنبه 30 آذر 1382, 15:54 عصر
  4. کدام زبان برنامه نویسی …؟
    نوشته شده توسط mr_esmaily در بخش VB.NET
    پاسخ: 9
    آخرین پست: دوشنبه 31 شهریور 1382, 07:49 صبح
  5. انتخاب زبان برنامه نویسی(فوق العاده فوری)
    نوشته شده توسط saeed-niknami در بخش VB.NET
    پاسخ: 1
    آخرین پست: جمعه 07 شهریور 1382, 22:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •