你的do 写成 d0 了 !
PROGRAM CREEPLIFETOOL
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
DIMENSION DV(1000),D(1000),SG(100),TF(100),NS(100),ES(100)
WRITE(*,*)'ULTIMATE AND MINIMUM STRESS /MPA'
READ(*,*) SB,SMIN
WRITE(*,*)'TIME INCREMENT /S'
READ(*,*) DT
WRITE(*,*) 'NECKLING STRAIN EV'
READ(*,*) EV
c! LINEAR CREEP LIMIT
SV=100.0
c! 幂蠕变线性蠕变特性
B=3.0E-20
B0=3.0E-12
CM=5.0
c! 幂蠕变损伤累积特性
CC=1.8E-19
BT=5.0
c! 线性蠕变损伤累积特性
CL=3.3E-13
BT2=2.0
GAM=5.0
SF=65.0
c! 应力计算点设定
Do 100 I=1,100
SG(I)=SMIN+I*(SB-SMIN)/100.0
ES(I)=0.0
100 CONTINUE
Do 200 I=1,100
DV(1)=0.0
D(1)=0.0
DVC=0.0
DC=0.0
CR0=SG(I)/SB
EV0=0.0
EVC=EV/B/SG(I)**CM
Do 300 J=2,10000000
ST=SG(I)/(1-DV(J-1))/(1-D(J-1))
DDV=DT*B*(1.0-DV(J-1))*ST**CM
IF(ST.LE.SV) DDV=DT*B0*ST
IF(ST.LE.SV) THEN
DV(J)=DV(J-1)+DT*B0*ST*(1.0-DV(J-1))
ENDIF
IF(ST.GT.SV) THEN
DV(J)=DV(J-1)+DT*B*(1.0-DV(J-1))*ST**CM
ENDIF
H=0.0
IF(ST.GT.SF) H=1.0-(SF/ST)**GAM
IF(ST.GT.SV) THEN
D(J)=D(J-1)+DT*CC*ST**BT*H
ES(I)=ES(I)+B*ST**CM*DT*(1.0-DV(J-1))
ELSE
D(J)=D(J-1)+DT*CL*ST**BT2*H
ES(I)=ES(I)+B0*ST*DT*(1.0-DV(J-1))
ENDIF
CR1=(1.0-DV(J))*(1.0-D(J))
IF(CR1.LT.CR0.OR.D(J).GT.0.5) THEN
NS(I)=0
TF(I)=(J-2)*DT
WRITE(*,210) I,J,NS(I),DV(J),D(J),ES(I)
GOTO 200
ENDIF
IF(ES(I).GT.EV) THEN
NS(I)=1
TF(I)=(J-2)*DT
WRITE(*,210) I,J,NS(I),DV(J),D(J),ES(I)
GOTO 200
ENDIF
300 CONTINUE
200 CONTINUE
210 FORMAT(1X,2(I7,1X),I3,1X,3(F6.3,1X))
OPEN(3,FILE='CREEPLIFE')
WRITE(3,*) ' SG CRLIFE CRSTYE'
c! CRSTYLE=0 NO OBVIOUS NECKLING
c! CRSTYLE=1 NECKING BEFORE FAIURE
DO 500 I=1,100
WRITE(3,400) SG(I), TF(I), NS(I), ES(I)
500 CONTINUE
400 FORMAT(2X,2(E12.5,2X),I2,1X,E12.5)
CLOSE(3,STATUS='KEEP')
END