⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apd_2.for

📁 fortran写的多层弹性体系的弹性力学求解
💻 FOR
📖 第 1 页 / 共 2 页
字号:
******************** APD_2.FOR *******************************
*       Design and Calculation of Highway Asphalt Pavement   *
**************************************************************
        COMMON /CCC2/E(24),PR(24),HD(23),ZD(23),FR(23)
        COMMON /CCC5/CR(2),CQ(2),CZ(2),TR(2),TQ(2),TZ(2)
        COMMON /CCC6/ER(2),EQ(2),EZ(2),UV(2),VV(2),WV(2)
        COMMON /CCC9/CRQ,CQZ,CZR,TRQ,TQZ,TZR,US,VS,WS
        COMMON /CCC10/C1,C2,C3,EE1,EE2,EE3,ERQ,EQZ,EZR
        DIMENSION RRR(2),LS(10),SP(10),T(10),SM(4)
        DIMENSION E1(24),E2(24),HH(23)
	  REAL NF
            
	  OPEN(1,FILE='APD_2.IN')
        OPEN(2,FILE='APD_2.OUT',status='unknown',mode='write')

        READ(1,*)NL
        READ(1,*)(HH(I),I=1,NL-1)
        READ(1,*)(E1(I),I=1,NL)
        READ(1,*)(E2(I),I=1,NL)
        READ(1,*)AC,AS,AB,NT
        READ(1,*)(LS(I),I=1,NT)
        READ(1,*)(SP(I),I=1,NT)
        READ(1,*)(T(I),I=1,NT)
        CLOSE(1)
 
	  DO 005 I=1,NL-1
        FR(I)=1
005     PR(I)=.25
        PR(NL)=.35
	  WRITE(2,*)
        WRITE(2,*)
        CTA=1.5*3.1415926
        R1=1.5
        Z=0
        II=1
        DO 008 I=1,NL
008     E(I)=E1(I)
010     DO 011 I=1,NL-1
011     HD(I)=HH(I)/106.5
        ZD(1)=HD(1)
        DO 012 I=2,NL-1
012     ZD(I)=ZD(I-1)+HD(I)
        PO=PR(II)
        RRR(1)=R1
        S1=R1*SIN(CTA)
        RRR(2)=SQRT(R1*R1+6*S1+9)
        CALL GAUSIN(NL,1.0,0.0,RRR,Z,II)
        CALL DOUBLE(1.0,0.0,0.0,R1,CTA,3.0)
        DS=32412.974*(WS/E1(1))**1.612903*E1(NL)**0.580645
	  NF=(600*AC*AS*AB/DS)**5.0
        WRITE(2,903) DS
	  WRITE(2,904) NF
        
	  
	  DO 020 I=1,NL
020     E(I)=E2(I)
        SWITH=1
030     DO 031 I=1,NL-1
031     HD(I)=HH(I)/106.5
        ZD(1)=HD(1)
        DO 032 I=2,NL-1
032     ZD(I)=ZD(I-1)+HD(I)
        !至步骤050计算所有求应力的层次的应力,疲劳寿命
	  DO 050 IP=SWITH,NT
        Z=LS(IP)
        II=Z
        DO 040 IM=1,4
        IF(IM.EQ.1) R1=0
        IF(IM.EQ.2) R1=0.5
        IF(IM.EQ.3) R1=1
        IF(IM.EQ.4) R1=1.5
        PO=PR(II)
        RRR(1)=R1
        S1=R1*SIN(CTA)
        RRR(2)=SQRT(R1*R1+6*S1+9)
        CALL GAUSIN(NL,1.0,0.0,RRR,Z,II)
        CALL DOUBLE(1.0,0.0,0.0,R1,CTA,3.0)
        CALL PRTRES(PO)
040     SM(IM)=C1*0.7
        SMAX=MAX(SM(1),SM(2),SM(3),SM(4))
        WRITE(2,905)II,SMAX
	  IF(SMAX.GT.0)THEN
	  IF(T(IP).EQ.1) NF=(SP(IP)*AC/0.09/SMAX)**4.54545
	  IF(T(IP).EQ.2) NF=(SP(IP)*AC/0.35/SMAX)**9.09091
	  IF(T(IP).EQ.3) NF=(SP(IP)*AC/0.45/SMAX)**9.09091
	  WRITE(2,904)NF
	  ELSE
        WRITE(2,906)
	  ENDIF
050     CONTINUE
        
	  
	  !*********************************************
	  WRITE(2,910)
        WRITE(2,911)
        DO 060 I=1,NL-1
        TH=TH+HH(I)
        WRITE(2,912)I,HH(I)
060     WRITE(2,911)
	  WRITE(2,913)TH
        WRITE(2,*)
        WRITE(2,*)
903     FORMAT(1X,'**** 路面弯沉值:        ',F7.2,'(0.01mm)')
904     FORMAT(1X,'**** 疲劳寿命:          ',E12.3,'(次)')
905     FORMAT(1X,'**** 第',I1,'层底拉应力最大值:',F7.3,'(MPa)')
906     FORMAT(1X,'**** 疲劳寿命:          无穷大')
910     FORMAT(/'         路面结构示意图')
911     FORMAT('     ───────────')
912     FORMAT('          h(',I1,')=',F5.0,'mm')
913	  FORMAT('         路面总厚度=',F5.0,'mm')
999     CLOSE(2)
        END
**********************************************************************
        SUBROUTINE ABCDEF(N,V,H,X)
        COMMON /CCC2/E(24),PR(24),HD(23),ZD(23),FR(23)
        COMMON /CCC3/F1(24),F2(24),F3(24),F4(24)
        COMMON /CCC4/FA(24),FB(24),FC(24),FD(24),FE(24),FF(24)
        DOUBLE PRECISION S(144,12),Q(144)
        DOUBLE PRECISION R,R1,R2,R3,R4,R5,R6,R7,R8,P,PP,EM,P1,P2,PO,POO
        IF(V.EQ.1)THEN
        M=4*N
        DO 002 I=1,M
        DO 001 J=1,8
001     S(I,J)=0
002     Q(I)=0
        R=2*PR(1)
            S(1,5)=1
            S(1,6)=R-1
            S(1,7)=-1
            S(1,8)=R-1
            S(2,5)=1
            S(2,6)=R
            S(2,7)=1
            S(2,8)=-R
            Q(1)=1
        DO 100 I=1,N-1
        FK=FR(I)
        P=ZD(I)*X
        PP=HD(I)*X
        P1=EXP( PP)
        P2=EXP(-PP)
        PO=PR(I)
        POO=PR(I+1)
        EM=E(I+1)/E(I)*(1+PO)/(1+POO)
            R1=1-2*PO
            R2=2*PO+P
            R3=2*PO-P
            R4=1+P
            R5=1-P
            R6=1-2*POO
            R7=2*POO+P
            R8=2*POO-P
        J=4*I
            S(J-1,1)=P1
            S(J-1,2)=P1*(P-R1)
            S(J-1,3)=-P2
            S(J-1,4)=-P2*(R1+P)
            S(J-1,5)=-1
            S(J-1,6)=R6-P
            S(J-1,7)=1
            S(J-1,8)=R6+P
        S(J,1)=EM*P1
        S(J,2)=EM*P1*(P-2*R1)
        S(J,3)=EM*P2
        S(J,4)=EM*P2*(P+2*R1)
        S(J,5)=-1
        S(J,6)=2*R6-P
        S(J,7)=-1
        S(J,8)=-2*R6-P
            S(J+1,1)=P1
            S(J+1,2)=P1*R2
            S(J+1,3)=P2
            S(J+1,4)=-P2*R3
        IF(FK.EQ.1)THEN
            S(J+1,5)=-1
            S(J+1,6)=-R7
            S(J+1,7)=-1
            S(J+1,8)=R8
        S(J+2,1)=P1*EM
        S(J+2,2)=P1*EM*R4
        S(J+2,3)=-P2*EM
        S(J+2,4)= P2*EM*R5
        S(J+2,5)=-1
        S(J+2,6)=-R4
        S(J+2,7)= 1
        S(J+2,8)=-R5
        ENDIF
        IF(FK.EQ.0)THEN
            S(J+2,5)=1
            S(J+2,6)=R7
            S(J+2,7)=1
            S(J+2,8)=-R8
        ENDIF
100     CONTINUE
            S(M-1,1)=1
            S(M  ,2)=1
        CALL SOEQ(4,N,S,Q)
        ENDIF
        IF(H.EQ.1)THEN
        M=6*N
        DO 006 I=1,M
        DO 005 J=1,12
005     S(I,J)=0
006     Q(I)=0
        R=2*PR(1)
            S(1,7)=1
            S(1,8)=R-1
            S(1,10)=-1
            S(1,11)=R-1
        S(2,7)=1
        S(2,8)=R
        S(2,10)=1
        S(2,11)=-R
            S(3,9)= 1
            S(3,12)=-1
        Q(2)=-1
        Q(3)= 1
        DO 200 I=1,N-1
        FK=FR(I)
        P=ZD(I)*X
        PP=HD(I)*X
        P1=EXP(PP)
        P2=EXP(-PP)
        PO=PR(I)
        POO=PR(I+1)
        EM=E(I+1)/E(I)*(1+PO)/(1+POO)
        R1=1-2*PO
        R2=2*PO+P
        R3=2*PO-P
        R4=1+P
        R5=1-P
        R6=1-2*POO
        R7=2*POO+P
        R8=2*POO-P
          J=6*I
        S(J-2, 1)=P1
        S(J-2, 2)=P1*(P-R1)
        S(J-2, 4)=-P2
        S(J-2, 5)=-P2*(R1+P)
        S(J-2, 7)=-1
        S(J-2, 8)=R6-P
        S(J-2,10)= 1
        S(J-2,11)=R6+P
            S(J-1,1)=EM*P1
            S(J-1,2)=-EM*(2*R1-P)*P1
            S(J-1,4)= EM*P2
            S(J-1,5)= EM*(2*R1+P)*P2
            S(J-1,7)=-1
            S(J-1,8)=2*R6-P
            S(J-1,10)=-1
            S(J-1,11)=-2*R6-P
        S(J, 1)=P1
        S(J, 2)=P1*R2
        S(J, 4)=P2
        S(J, 5)=P2*(-R3)
        IF(FK.EQ.1)THEN
        S(J, 7)=-1
        S(J, 8)=-R7
        S(J,10)=-1
        S(J,11)=R8
        S(J+1, 3)= P1
        S(J+1, 6)=-P2
        S(J+1, 9)=-1
        S(J+1,12)= 1
        S(J+2, 1)=EM*P1
        S(J+2, 2)=EM*P1*R4
        S(J+2, 4)=-EM*P2
        S(J+2, 5)= EM*P2*R5
        S(J+2, 7)=-1
        S(J+2, 8)=-R4
        S(J+2,10)= 1
        S(J+2,11)=-R5
        S(J+3, 3)=EM*P1
        S(J+3, 6)=EM*P2
        S(J+3, 9)=-1
        S(J+3,12)=-1
        ENDIF
        IF(FK.EQ.0)THEN
            S(J+1, 3)=P1
            S(J+1, 6)=-P2
            S(J+2, 7)=1
            S(J+2, 8)=R7
            S(J+2,10)=1
            S(J+2,11)=-R8
            S(J+3, 9)=1
            S(J+3,12)=-1
        ENDIF
200     CONTINUE
        S(M-2,1)=1
        S(M-1,2)=1
        S(M  ,3)=1
        CALL SOEQ(6,N,S,Q)
        ENDIF
        END
**********************************************************
        SUBROUTINE GAUSIN(N,V,H,RR,Z,II)
        DIMENSION U(34),W(34)
        COMMON /CCC2/E(24),PR(24),HD(23),ZD(23),FR(23)
        COMMON /CCC3/F1(24),F2(24),F3(24),F4(24)
        COMMON /CCC4/FA(24),FB(24),FC(24),FD(24),FE(24),FF(24)
        COMMON /CCC5/CR(2),CQ(2),CZ(2),TR(2),TQ(2),TZ(2)
        COMMON /CCC6/ER(2),EQ(2),EZ(2),UV(2),VV(2),WV(2)
        COMMON /CCC7/CA(2),CB(2),CD(2),TD(2),TE(2),TF(2)
        COMMON /CCC8/EG(2),EH(2),EI(2),UH(2),VH(2),WH(2)
        DIMENSION RR(2),YV(2,7),YW(2,4),YH(2,10),YI(2,3)
        DIMENSION FV(7),FH(10),SV(4),SH(3),SSU(5),SSV(8)
        DATA U/   -.99757175,-.98722782,-.96870826,-.94216240,
     * -.90780968,-.86593464,-.81688423,-.76106488,-.69893911,
     * -.63102173,-.55787550,-.48010655,-.39835928,-.31331108,
     * -.22566669,-.13615236,-.04550982, .99757175, .98722782,
     *  .96870826, .94216240, .90780968, .86593464, .81688423,
     *  .76106488, .69893911, .63102173, .55787550, .48010655,
     *  .39835928, .31331108, .22566669, .13615236, .04550982/
        DATA W/  .00622914,.01445016,.02256372,.03049138,
     * .03816659,.04552561,.05250741,.05905414,.06511152,
     * .07062938,.07556197,.07986844,.08351310,.08646574,
     * .08870190,.09020304,.09095674,.00622914,.01445016,
     * .02256372,.03049138,.03816659,.04552561,.05250741,
     * .05905414,.06511152,.07062938,.07556197,.07986844,
     * .08351310,.08646574,.08870190,.09020304,.09095674/
        IF(Z.LE.1) THEN
        ZZ=Z*HD(1)
        ZZD=ZZ
        ENDIF
        DO 001 I=1,N-2
        IF(Z.GT.I.AND.Z.LE.I+1) THEN
        ZZ=(Z-I)*HD(I+1)
        ZZD=ZZ+ZD(I)
        ENDIF
001     CONTINUE
        IF(Z.GT.N-1) THEN
        ZZ=(Z-N+1)*HD(N-1)
        ZZD=ZZ+ZD(N-1)
        ENDIF
        IF(Z.EQ.0) XS=10/HD(1)
        IF(Z.GE.1) XS=15/ZZD
        IF(Z.GT.0.AND.Z.LT.1) XS=(20-5*Z)/(2*HD(1)-ZZD)
        IF(HD(1)*XS.GT.45) XS=45/HD(1)
        DS=XS/3
        PO=PR(II)
        R1=2*PO
        R2=1-R1
        R3=1+R1
        R4=2*R2
        R5=1+PO
        C=.5*DS
        DO 60 I=1,2
        DO 60 J=1,10
        YH(I,J)=0
        IF(J.LE.4) YW(I,J)=0
        IF(J.LE.3) YI(I,J)=0
60      IF(J.LE.7) YV(I,J)=0
        DO 30 I=1,3
        DO 30 J=1,34
        X=DS*(I-.5)+C*U(J)
        WR=W(J)
        CALL ABCDEF(N,V,H,X)
        ZZX=ZZ*X
        IF((II-Z).EQ.1) ZZX=0
        VM=EXP(ZZX)
        VN=EXP(-ZZX)
        ZX=ZZD*X
        IF(V.EQ.1) THEN
        P1=(F3(II)+(R3+ZX)*F1(II))*VM-(F4(II)-(R3-ZX)*F2(II))*VN
        P2=F1(II)*VM+F2(II)*VN
        P3=(F3(II)-(R2-ZX)*F1(II))*VM-(F4(II)+(R2+ZX)*F2(II))*VN
        P4=(F3(II)+(R1+ZX)*F1(II))*VM+(F4(II)-(R1-ZX)*F2(II))*VN
        UU=(F3(II)+( 1+ZX)*F1(II))*VM-(F4(II)-( 1-ZX)*F2(II))*VN
        WW=(F3(II)-(R4-ZX)*F1(II))*VM+(F4(II)+(R4+ZX)*F2(II))*VN
        ENDIF
        IF(H.EQ.1) THEN
        PPR=(FC(II)+(R3+ZX)*FA(II))*VM-(FD(II)-(R3-ZX)*FB(II))*VN
        PQ=FA(II)*VM+FB(II)*VN
        PZ= (FC(II)-(R2-ZX)*FA(II))*VM-(FD(II)+(R2+ZX)*FB(II))*VN
        PT=FF(II)*VM+FE(II)*VN
        PW= (FC(II)-(R4-ZX)*FA(II))*VM+(FD(II)+(R4+ZX)*FB(II))*VN
        U2=(FC(II)+(1+ZX)*FA(II)+2*FF(II))*VM-(FD(II)-(1-ZX)*FB(II)-2*F
     1  E(II))*VN
        U0=(FC(II)+(1+ZX)*FA(II)-2*FF(II))*VM-(FD(II)-(1-ZX)*FB(II)+2*F
     1  E(II))*VN
        H2=(FC(II)+(R1+ZX)*FA(II)+FF(II))*VM+(FD(II)-(R1-ZX)*FB(II)-FE(
     1  II))*VN
        H0=(FC(II)+(R1+ZX)*FA(II)-FF(II))*VM+(FD(II)-(R1-ZX)*FB(II)+FE(
     1  II))*VN
        ENDIF
        CALL BESSEL(1,X,FJB)
        DO 30 ISW=1,2
        RD=RR(ISW)
        Q=RD*X
        CALL BESSEL(0,Q,V0)
        CALL BESSEL(1,Q,V1)
        V4=V1*FJB
        V6=V0*FJB
        V8=V6/X
        V9=V4/X
        IF(RD.EQ.0) THEN
        V2=0
        V7=.5*FJB
        ELSE
        V2=2*V1/Q-V0
        V7=V4/Q
        ENDIF
        V5=V2*FJB
        V3=V5/X
        IF(Z.EQ.0) THEN
        SV(1)=V6
        SV(3)=V8
        SV(4)=V9
        DO 70 K=3,4
70      YW(ISW,K)=YW(ISW,K)+SV(K)*WR
        YW(ISW,1)=YW(ISW,1)+SV(1)*WR
        ENDIF
        IF(V.EQ.1) THEN

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -