回 帖 发 新 帖 刷新版面

主题:急急急,求大虾指点

    老师最近给了个程序让调试,我才刚接触,自学了很长时间,纠结啊,请各位大侠们指点下,哪里有问题,我一直调试有问题啊,膜拜啊
    
    
    
    DIMENSION HS(0:20),HC(0:20),HW(20),MS(20)
    DIMENSION HM(20),HI(0:20),ZC(0:20),ZM(20,50),FC(0:20),
        * F(20,20), AC(0:20),BC(0:20)
    DIMENSION IC(0:20)
    REAL K1,N0,M0,N1,M1,N2
    CHARACTER*12 NAME1,NAME2
    COMMON ZC,ZM,K1,R,E0,EU,SM,RM,AC,HC,HM,FM,IC,BC,BM,FCT,MS
    WRITE(*,'(A)')'Input data file name, please!'
    READ(*,'(A)')NAME1
    WRITE(*,'(A)')'Output data file name, please!'
c    input calculation parameters
    OPEN(5,FILE=NAME1,STATUS='OLD')
    OPEN(6,FILE=NAME2,STATUS='UNKNOWN')
    READ(5,*)NS
    READ(5,*)H,HJ
    HS(0)=HJ
    READ(5,*)(HS(I),I=1,NS)
    HC(0)=HS(0)
    READ(5,*)(HC(I),I=1,NS)
    READ(5,*)(AC(I),I=0,NS)
    READ(5,*)(HW(I),I=1,NS)
    READ(5,*)BJ,BM
    BC(0)=BJ
    DO 1 I=1,NS
    BC(I)=BM
1    CONTINUE
    READ(5,*)K1,R,E0,EU,SM
    READ(5,*)RM,ETM,ECM
    READ(5,*)N0,M0
    READ(5,*)(MS(I),I=1,NS)
    READ(5,*)DF,DE,DN,DM,IT,JT
c    strip cuting
    write(6,2)H
2    FORMAT(1X,'Hight of building=',f5.3)
    write(6,3)(HS(I),I=1,NS)
3    FORMAT(1X,'Hight of storeys:',/1x,10f5.3)                
    write(6,4)(HC(I),I=0,NS)
4    FORMAT(1X,'Hight of girds:',/1x,10f5.3)
    write(6,6)(AC(I),I=0,NS)
6    FORMAT(1X,'Area of reforcement:',/1x,5e10.3)
    WRITE(6,7)(HW(I),I=1,NS)
7    FORMAT(1X,'Hight of windows:',/1x,10f6.3)        
    WRITE(6,8)BJ,BM
8    FORMAT(1X,'Width of walls:',/1x,10f6.3)    
      WRITE(6,9)K1,R,E0,EU,SM,RM,ETM,ECM
9    FORMAT(1X,'Material parameter:'/1x,
   *  'Concrete:',5e10.3/1x,'Masonry:',5e10.3)
    WRITE(6,12)N0,M0
12    FORMAT(1X,'Mining load:N0=',f12.3,14x,'M0=',f12.3)
    WRITE(6,13)(MS(I),I=1,NS)
13    FORMAT(1X,'Strips of storey masonry:'/1x,10I4)
    WRITE(6,14)DF,DE,DN,DM,IT,JT
14    FORMAT(1X,'Calculation control parameter:'
     */1x,'DF=',e10.3,2x,'DE=',e10.3,2x,'DN='E10.3,2X,
     *'DM=',E10.3,/1X,'IT=',I10,2X,'JT=',I10)
    HI(0)=HJ
    DO 10 I=1,NS
     HM(I)=HS(I)-HC(I)-HW(I)
     HM(I)=HM(I)/MS(I)
     HI(I)=0
     DO    5 J=0,I
     HI(I)=HI(I)+HS(J)
5    CONTINUE
10    CONTINUE
C    calculating external force in hight of H/2
    M0=M0-N0*H/2
    IF(M0.LT.1.0E-5)    DF=-DF
    IF(N0.LT.1.0E-5)    DE=-DE
    WRITE(6,16)N0,M0,DF,DE
16    FORMAT(1X,'Calculation: N0=',f12.3,2x,'M0=',f12.3,2x,
     * 'DF=',e10.3,2x,'DE=',e10.3)
c     calculating Zci,Zmi
    DO 20 I=0,NS
       ZC(I)=0
20    CONTINUE
    DO 40 I=0,NS
    ZC(I)=HI(I)-HC(I)/2-H/2
40    CONTINUE
    DO 50 I=1,NS
    DO 50 J=1,50
      ZM(I,J)=0
50    CONTINUE
    DO 70 I=1,NS
      K=MS(I)
      DO 60 J=1,K
        ZM(I,J)=HI(I-1)+J*HM(I)-HM(I)/2-H/2    
60    CONTINUE
70    CONTINUE
    FA=0                                       
    E3=0                                 
      II=0
    FCT=0.5*K1*R**0.67
C    IC(0:NS) Concrete cracking symbol 
    DO 75 i=0,ns
    IC(I)=0
75    CONTINUE
80    II=II+1
    IF(II.EQ.IT)STOP 9999
    FA=FA+DF
    JJ=0
90    JJ=JJ+1
    IF(JJ.EQ.JT) STOP 1111
    CALL BBC(E3,FA,N1,M1.NS,II,JJ,FC)
    IF(ABS(N1-N0).GT.DN) THEN 
        IF(N1.GT.N0) THEN
        E3=E3-DE                    
        ELSE
        E3=E3+DE
        END IF
    CALL BBC(E3,FA,N2,M1,NS,II,JJ,FC)
        IF(ABS(N2-N0).GT.DN) THEN
            IF(ABS(N2-N1).LT.DN)  THEN
            GOTO 90
            ELSE 
                IF(N2.GT.N1) THEN
                E3=E3+DE
                ELSE
                E3=E3-DE
                END IF
            E3=E3-DE*(N1-N0)/(N2-N1)
            GOTO 90
            END IF 
        END IF
    END IF
    IF(ABS(1-M1/M0).GT.DM) GOTO 80
    WRITE(6,'(A)')'CONCRETE GRID CRACKING SYMBOLS:'
    WRITE(6,210)(IC(I),I=0,NS)
210    FORMAT(1X,5I10)
    CALL BBC(E3,FA,N1,M1,NS,II,JJ,FC)
    WRITE(6,'(A)') 'CONCRETE GRID FORCES:'
    WRITE(6,200)(FC(I),I=0,NS)
200    FORMAT(1X,5F10.3)
    ETU=E3+FA*H/2
    ECU=E3-FA*H/2
    PK=FA/H
    X=-ECU*H/(ETU-ECU)
    WRITE(6,190)X,PK,E3,ETU,ECU
190    FORMAT(1X,'X=',E9.3,3X,'K=',E9.3,3X,'E3=',E9.3,
     * 1X,'Et=',E9.3,3X,'Ec=',E9.3)    
    WRITE(*,212)II,JJ
212    FORMAT(1X,'II=',I10,5X,'JJ=',I10)
    STOP
    END
    SUBROUTINE BBC(E3,FA,N1,M1,NS,II,JJ,FC)
    DIMENSION ZC(0:20),ZM(20,50),AC(0:20),BC(0:20),HC(0:20),
      * HM(0:20),FC(0:20),FM(20,50),IC(0:20),MS(20)
    REAL N1,M1
    COMMON ZC,ZM,K1,R,E0,EU,SM,RM,AC,HC,HM,FM,IC,BC,BM,FCT,MS
C    Calculating gird force
    DO 110 I=0,NS
    EC=E3+ZC(I)*FA
    IF(EC.GT.0) THEN
    SC=EC*SM
    FC(I)=SC*AC(I)
    ELSE IF(EC.GT.-E0) THEN 
    SC=-K1*R*2*EC/(EC-E0)
    FC(I)=SC*BC(I)*HC(I)
    ELSE IF(EC.GT.-EU) THEN
    SC=-K1*R*(1-(200*(EC+E0))**2)
    FC(I)=SC*BC(I)*HC(I)
    ELSE
    SC=-0.3*R
    FC(I)=SC*BC(I)*HC(I)
    WRITE(6,105) II,JJ,I
105    FORMAT(/1X,'II=',I7,3X,'JJ=',I7,3X,
     * 'Increasing Storey',2x,I2,2X,'GIRD SECTION!')
    END IF 
110    CONTINUE
C    Calculating brick wall strip force
    DO 130 I=1,NS
    DO 120 J=1,MS(I)
    EM=E3+ZM(I,J)*FA
    IF(EM.LT.0) THEN
    EM=-EM
    C=-460*RM**0.5*EM
    SM=-RM*(1-EXP(C))
    FM(I,J)=SM*BM*HM(I)
    ELSE
    FM(I,J)=0
    END IF 
120    CONTINUE
130    CONTINUE
C    Calculating N1
    N1=0
    DO 150 I=0,NS
    N1=N1+FC(I)
150    CONTINUE
    DO 160 I=1,NS
    DO 160 J=1,MS(I)
    N1=N1+FM(I,J)
160    CONTINUE
C    Calculating M1
    M1=0
    DO 170 I=0,NS
    M1=M1+FC(I)*ZC(I)
170    CONTINUE
    DO 180 I=1,NS
    DO 180 J=1,MS(I)
    M1=M1+FM(I,J)*ZM(I,J)
180    CONTINUE
    RETURN
    END    

回复列表 (共1个回复)

沙发

NAME2(输出文件的文件名)没有读入?

我来回复

您尚未登录,请登录后再回复。点此登录或注册