回 帖 发 新 帖 刷新版面

主题:求助大神们FORTRAN翻译成C语言

哪位厉害的大神可以帮我把下面这段FORTRAN的程序逐句翻译成C语言啊.......拜托大家啦~\(≧▽≦)/~啦啦啦

PROGRAM NET
DIMENSION X0(20),XL(20),XL0(20),XU0(20),XU(20),XT(20),
^ X(20),R(20),H(20),G(30),GT(30)
INTEGER RR,R
REAL IX,IY
COMMON /C1/N,M
COMMON /C2/SUS,SUY,TY2
COMMON /C3/AA,IX,IY,SX,SIGMA,TOA,YL
WRITE(*,'(' EE1,RR= ')')
READ(*,*)EE1,RR
WRITE(*,'(' K1,K2,K3= ')')
READ(*,*)K1,K2,K3
N=2
M=9
XL0(1)=1050
XL0(2)=300
XU0(1)=1350
XU0(2)=600
SUY=22500./K1
SUS=K2*1.8
TY2=K3
FT=1.E20
CC=1.
IF(RR.LE.2)CC=.5
NK=0
DO 2 I=1,N
XT(I)=0.
XL(I)=XL0(I)
2 XU(I)=XU0(I)
1 DO 5 I=1,N
H(I)=ANINT((XU(I)-XL(I))/RR/10.)*10
5 X0(I)=XL(I)
DO 10 I1=0,RR
X(1)=X0(1)+I1*H(1)
X(1)=AMIN1(X(1),XU(1))
DO 10 I2=0,RR
X(2)=X0(2)+I2*H(2)
X(2)=AMIN1(X(2),XU(2))
CALL FUNCT(X,F0,G,GM)
IF(GM.LE.0.AND.F0.LT.FT)THEN
NK=NK+1
DO 100 I=1,N
100 XT(I)=X(I)
FT=F0
ENDIF
10 CONTINUE
IF(NK.EQ.0)PAUSE '*** *** ***'
HM=AMAX1(H(1),H(2))
DO 200 I=1,N
XL(I)=XT(I)-CC*H(I)
IF(XL(I).LT.XL0(I))XL(I)=XL0(I)
XU(I)=XT(I)+CC*H(I)
IF(XU(I).GT.XU0(I))XU(I)=XU0(I)
200 CONTINUE
IF(HM.GT.EE1)GOTO 1
CALL FUNCT(XT,FT,GT,GM)
WRITE(*,'(/,1X,3I6)')K1,K2,K3
WRITE(*,'(1X,4E13.6)')FT,SIGMA,TOA,YL
WRITE(*,'(1X,5E13.6)')XT(1),XT(2),6.,8.,TY2
WRITE(*,'(1X,4E13.6)')AA,IX,IY,SX
WRITE(*,'(2(1X,5E13.6/))')(GT(I),I=1,10)

END
C
SUBROUTINE FUNCT(X,F0,G,GM)
DIMENSION X(20),G(30)
COMMON /C1/N,M
COMMON /C2/SUS,SUY,TY2
COMMON /C3/AA,IX,IY,SX,SIGMA,TOA,YL
REAL IX,IY
CALL BOXBEAM(X(1),6.,X(2),8.,TY2,PG1,CL,H)
F0=PG1
G(1)=SIGMA-SUS
G(2)=TOA-SUS/SQRT(3.)
G(3)=YL-SUY
G(4)=(X(2)-60)/55-8
G(5)=CL/60-X(2)+60
G(6)=X(1)/3-X(2)+60
G(7)=360-X(2)
G(8)=H*14-CL
G(9)=CL-H*20
GM=AMAX1(G(1),G(2),G(3),G(4),G(5),G(6),G(7),G(8),G(9))
RETURN
END
SUBROUTINE BOXBEAM(H0,TF,B,TY1,TY2,PG1,CL,H)
COMMON /C3/AA,IX,IY,SX,SIGMA,TOA,YL
REAL IX,IY
CL=22500
CLMIN=1525
GQ=12500
GDG=150
GXC=6062
PG2=35000.
BATA=1.35
FI2=1.11
FI4=1.189
B1=2400
H=H0+TY1+TY2
AA=B*(TY1+TY2)+2*H0*TF
DT=TY1-TY2
DY=.5*DT*H*B/AA
IX=TF*H0**3/6+B*TY2**3/6+B*TY2*(H0+TY2)**2/2
IX=IX+AA*DY*(H/2-DY)
IY=B**3*(TY1+TY2)/12+H0*TF**3/6+H0*TF*(B-60+TF)**2/2
SX=(H0/2+DY)**2*TF+TY2*B*(H0/2+DY+TY2/2)
PG1=(B*(TY1+TY2)+2*BATA*H0*TF)*0.000078*CL
QJ=(PG1+PG2)/CL
Q=FI4*QJ
PJ=(GQ+GDG+GXC)*10/4
P=(FI2*(GQ+GDG)+FI4*GXC)*10/4
SIGMA=(Q*CL*CL/4+P*(CL-B1))/IX*(H0/2+DY+TY2)/2
SIGMA=SIGMA+0.75*(0.1*QJ*CL*CL/8+0.1*PJ*CL/2)/IY*B/2
QQ=Q*(0.5*CL-CLMIN+0.5*B1)+2*P*(CL-CLMIN)/CL
TOA=QQ*SX/(2*IX*TF)
YL=.98354*2*PJ*CL**3/(48*2.1E5*IX)
END

 

回复列表 (共1个回复)

沙发

看帖是学习,回帖是礼貌。。。

我来回复

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