主题:一小段程序,有个别地方不太懂,求教
C SOLUTION OF TERMINAL IMPEDANCE IN SIMPLE SYSTEM INCLUDING FRICTION
C LL=PIPE LENGTH,C=CAPACITANCE,L=INERTANCE
IMPLICIT REAL(L),COMPLEX(Z)
NAMELIST/DIN/LL,D,A,F,Q,G,AR,R,L,C,OM1,OM2,DOM
10 READ(5,DIN,END=99)
AR=0.7854*D*D
R=F*Q/(G*D*AR*AR)
L=1.0/(G*AR)
C=G*AR/(A*A)
WRITE(6,1) LL,D,A,F,Q,G,AR,R,L,C,OM1,OM2,DOM
1 FORMAT(1H0,'LL,D,A,F,Q =',3F8.2,2F8.4/' G,AR,R,L,C =',4F8.4,
2E10.3/' OM1,OM2,DOM=',3F8.3)
WRITE(6.2)
2 FORMAT(1H0,6X,'OM',9X,'T',6X,'ABSZD',6X,'ZDF',7X,'ZDI',7X,'PHIZ')
N=(OM2-OM1)/DOM+1
DO 20 I=1,N
OM=OM1+(I-1)*DOM
C CHARACTERISTIC IMPEDANCE, GAMMA, AND HYPERBOLIC FJNCTIONS
ZGAM=CSQRT(CMPLX(-L*C*OM*OM,R*C*OM))
ZC=ZGAM/CMPLX(0.0,OM*C)
ZEXP=CEXP(ZGAM*LL)
ZTH=(ZEXP-1.0/ZEXP)/(ZEXP+1.0/ZEXP)
C HYDRAULIC IMPEDANCE
ZD=-ZC*ZTH
ABSZD=CABS(ZD)
PHIZ=ATAN2(AIMAG(ZD),REAL(ZD))
T=6.2832/OM
20 WRITE(6,3) OM,T,ABSZD,ZD,PHIZ
3 FORMAT(1H,2F10.3,3F10.1,F10.3)
GO TO 10
99 STOP
END
εDIN G=32.2,Q=0.5,F=0.02,LL=3690.0,A=3880.0,D=0.25,OM1=0.4,
OM2=4.0,DOM=0.3, εEND
----------------------------------------------------------------------
以上是书上的一段程序,我有两个地方看不明白,希望大侠们不吝赐教。
大家姑且不用管它计算什么,只要帮我解释下它在程序中的作用即可。
1. NAMELIST/DIN/LL,D,A,F,Q,G,AR,R,L,C,OM1,OM2,DOM
10 READ(5,DIN,END=99)
READ后括号中的各项含义是什么?
2. GO TO 10
GO TO 10起什么作用呢?循环完毕,为什么要返回行号为10的代码?
3.εDIN G=32.2,Q=0.5,F=0.02,LL=3690.0,A=3880.0,D=0.25,OM1=0.4,
OM2=4.0,DOM=0.3, εEND
DIN和END前的那个符号怎么输入?我输的希腊字符,编译后是错误的。
-----------------------------------------------------------------------
我是FORTRAN的初学者,刚开始学有好多不懂的,希望大家能帮帮我。感激不尽。
C LL=PIPE LENGTH,C=CAPACITANCE,L=INERTANCE
IMPLICIT REAL(L),COMPLEX(Z)
NAMELIST/DIN/LL,D,A,F,Q,G,AR,R,L,C,OM1,OM2,DOM
10 READ(5,DIN,END=99)
AR=0.7854*D*D
R=F*Q/(G*D*AR*AR)
L=1.0/(G*AR)
C=G*AR/(A*A)
WRITE(6,1) LL,D,A,F,Q,G,AR,R,L,C,OM1,OM2,DOM
1 FORMAT(1H0,'LL,D,A,F,Q =',3F8.2,2F8.4/' G,AR,R,L,C =',4F8.4,
2E10.3/' OM1,OM2,DOM=',3F8.3)
WRITE(6.2)
2 FORMAT(1H0,6X,'OM',9X,'T',6X,'ABSZD',6X,'ZDF',7X,'ZDI',7X,'PHIZ')
N=(OM2-OM1)/DOM+1
DO 20 I=1,N
OM=OM1+(I-1)*DOM
C CHARACTERISTIC IMPEDANCE, GAMMA, AND HYPERBOLIC FJNCTIONS
ZGAM=CSQRT(CMPLX(-L*C*OM*OM,R*C*OM))
ZC=ZGAM/CMPLX(0.0,OM*C)
ZEXP=CEXP(ZGAM*LL)
ZTH=(ZEXP-1.0/ZEXP)/(ZEXP+1.0/ZEXP)
C HYDRAULIC IMPEDANCE
ZD=-ZC*ZTH
ABSZD=CABS(ZD)
PHIZ=ATAN2(AIMAG(ZD),REAL(ZD))
T=6.2832/OM
20 WRITE(6,3) OM,T,ABSZD,ZD,PHIZ
3 FORMAT(1H,2F10.3,3F10.1,F10.3)
GO TO 10
99 STOP
END
εDIN G=32.2,Q=0.5,F=0.02,LL=3690.0,A=3880.0,D=0.25,OM1=0.4,
OM2=4.0,DOM=0.3, εEND
----------------------------------------------------------------------
以上是书上的一段程序,我有两个地方看不明白,希望大侠们不吝赐教。
大家姑且不用管它计算什么,只要帮我解释下它在程序中的作用即可。
1. NAMELIST/DIN/LL,D,A,F,Q,G,AR,R,L,C,OM1,OM2,DOM
10 READ(5,DIN,END=99)
READ后括号中的各项含义是什么?
2. GO TO 10
GO TO 10起什么作用呢?循环完毕,为什么要返回行号为10的代码?
3.εDIN G=32.2,Q=0.5,F=0.02,LL=3690.0,A=3880.0,D=0.25,OM1=0.4,
OM2=4.0,DOM=0.3, εEND
DIN和END前的那个符号怎么输入?我输的希腊字符,编译后是错误的。
-----------------------------------------------------------------------
我是FORTRAN的初学者,刚开始学有好多不懂的,希望大家能帮帮我。感激不尽。