主题:程序调试不能通过,求指点
PROGRAM MAIN
DIMENSION DZ(50),GAMA(50),CH(50), P1(50),P2(50),C(50)
real CG
WRITE(*,*) "====请输入I, DZ(I),GAMA(I),N的值====="
READ (5,*) I, N,H,B
DO 10 I=1,N
READ (5,*) DZ(I), GAMA(I)
10 CONTINUE
S=0.0
Z=0.0
ZZ=0.0
CH(I)=0.0
CALL FJ(ZZ,CG)
DO 2 I=2,N
Z=DZ(I)
ZZ=ZZ+Z
CH(I)=CH(I-1)+DZ(I)*GAMA(I)
P1(I)=CH(I)+CH(I-1)/2.0
CALL FJ(ZZ,CG)
C(I)=(CG(I)+CG(I-1))/2.0
P2(I)=P1(I)+C(I)
PP=P1(I)
CALL ES(II,PP,E)
E1=E
PP=P2(I)
CALL ES(II,PP,E)
E2=E
SI=(E1-E2)*DZ(I)/(1.0+E1)
S=S+SI
HZ=ZZ
IF (CG(I).LT.CH(I)/10) GOTO 30
2 CONTINUE
30 WRITE(*,*)S
STOP
END
Subroutine FJ (Z,CG)
DIMENSION GAMA(50)
P1=GAMA(I)*DZ(1)
P2=GAMA(I)*(DZ(1)+H)
C
IF (ZZ.EQ.0.0) THEN
CG=P2-P1
ELSE
FK=(H+DZ(1))*ATAN((0.5*B+0.5*RM*H)/Z)-DZ(1)*ATAN(0.5*B/Z)
CG=2.0*GAMA(I)*FK/3.14159265
ENDIF
END
Subroutine ES(I,PP,E)
DIMENSION PE(50)
DO 7 I=1,N
IF (PP.GE.PE(I)) GOTO 7
NN=I
M=NN-1
GOTO 77
7 CONTINUE
77 E=EE(NJ,NN)+EE(NJ,M)-EE(NJ,NN))*(PE(NN)-PP)/PE(NN)-PE(M)
END
DIMENSION DZ(50),GAMA(50),CH(50), P1(50),P2(50),C(50)
real CG
WRITE(*,*) "====请输入I, DZ(I),GAMA(I),N的值====="
READ (5,*) I, N,H,B
DO 10 I=1,N
READ (5,*) DZ(I), GAMA(I)
10 CONTINUE
S=0.0
Z=0.0
ZZ=0.0
CH(I)=0.0
CALL FJ(ZZ,CG)
DO 2 I=2,N
Z=DZ(I)
ZZ=ZZ+Z
CH(I)=CH(I-1)+DZ(I)*GAMA(I)
P1(I)=CH(I)+CH(I-1)/2.0
CALL FJ(ZZ,CG)
C(I)=(CG(I)+CG(I-1))/2.0
P2(I)=P1(I)+C(I)
PP=P1(I)
CALL ES(II,PP,E)
E1=E
PP=P2(I)
CALL ES(II,PP,E)
E2=E
SI=(E1-E2)*DZ(I)/(1.0+E1)
S=S+SI
HZ=ZZ
IF (CG(I).LT.CH(I)/10) GOTO 30
2 CONTINUE
30 WRITE(*,*)S
STOP
END
Subroutine FJ (Z,CG)
DIMENSION GAMA(50)
P1=GAMA(I)*DZ(1)
P2=GAMA(I)*(DZ(1)+H)
C
IF (ZZ.EQ.0.0) THEN
CG=P2-P1
ELSE
FK=(H+DZ(1))*ATAN((0.5*B+0.5*RM*H)/Z)-DZ(1)*ATAN(0.5*B/Z)
CG=2.0*GAMA(I)*FK/3.14159265
ENDIF
END
Subroutine ES(I,PP,E)
DIMENSION PE(50)
DO 7 I=1,N
IF (PP.GE.PE(I)) GOTO 7
NN=I
M=NN-1
GOTO 77
7 CONTINUE
77 E=EE(NJ,NN)+EE(NJ,M)-EE(NJ,NN))*(PE(NN)-PP)/PE(NN)-PE(M)
END