Professional Documents
Culture Documents
PROGRAM MAIN
IMPLICIT REAL*8 (A-H,O-Z)
PARAMETER(LMAXX=1000)
DIMENSION T(LMAXX),P(LMAXX),QLIN(LMAXX),Z(LMAXX),XMU(LMAXX)
& ,RE(LMAXX),FRICF(LMAXX),ITERT(LMAXX),ITERP(LMAXX)
PHI = 3.14159265D0
ITERMAX=20
IRED=11
IPRN=12
C INPUT ************************************************************
C ZPIPE=1.0D0 !PIPE LENGTH [M]
C DH=0.05D0 !PIPE DIAM [M]
C XMFLUX=100.0D0 !MASS FLUX [KG/M2.S]
C T(1)=628.0D0 !INLET TEMPEARTURE [K]
C P(1)=1.0D+5 !INLET PRESSURE [P]
C LMAX=100
C QLINAV=2.5D+5 ! AVERAGE LINEAR HEAT RATE [W/M]
C IQSHAPE=2 !POWER PROFILE, 1=LINEAR, 2=COSINE
READ(IRED,*) ZPIPE
READ(IRED,*) DH
READ(IRED,*) XMFLUX
READ(IRED,*) T(1)
READ(IRED,*) P(1)
READ(IRED,*) LMAX
READ(IRED,*) QLINAV
READ(IRED,*) IQSHAPE
IF (RE(1)<2100.0D0) THEN
FRICF(1)=64.0D0/RE(1)
ELSE
FRICF(1)=0.316D0*RE(1)**(-0.25D0)
END IF
IF (IQSHAPE.EQ.1) THEN
C LINEAR POWER PROFILE
DO J=1,LMAX
QLIN(J)=QLINAV
END DO
-1-
E:\MAIN.F Wednesday, January 05, 2011 2:26 PM
ELSE
C COSINE POWER PROFILE
DO J=1,LMAX
QLIN(J)=0.5D0*PHI*QLINAV*DSIN(Z(J)*PHI/ZPIPE)
END DO
END IF
BOILS=0
JBOIL=LMAX
ITERT(1)=0
ITERP(1)=0
C MARCHING FROM BOTTOM TO TOP
DO J=1,LMAX-1
C VISCOSITY
XMU(J+1)=VISCOS(T(J+1))
C REYNOLDS NUMBER
RE(J+1)=XMFLUX*DH/XMU(J+1)
C FRICTION FACTOR
IF (RE(J+1)<2100.0D0) THEN
FRICF(J+1)=64.0D0/RE(J+1)
ELSE
FRICF(J+1)=0.316D0*RE(J+1)**(-0.25D0)
END IF
-2-
E:\MAIN.F Wednesday, January 05, 2011 2:26 PM
PNEW=POLD-FK(T(J),T(J+1),P(J),P(J+1),FRICF(J),FRICF(J+1),Z(J)
& ,Z(J+1),XMFLUX,DH)/DFKDP(T(J),T(J+1),P(J),P(J+1),FRICF(J)
& ,FRICF(J+1),Z(J),Z(J+1),XMFLUX,DH)
EPS=DABS((PNEW-POLD)/PNEW)
POLD=PNEW !UPDATE
P(J+1)=PNEW
ITER=ITER+1
END DO
P(J+1)=PNEW
ITERP(J+1)=ITER
C WRITE(*,*) 'MOMENTUM :',ITER
50 CONTINUE
WRITE(IPRN,100)
WRITE(IPRN,200) T(1)
WRITE(IPRN,300) P(1)
WRITE(IPRN,400) XMFLUX
WRITE(IPRN,500) DH
WRITE(IPRN,600) ZPIPE
WRITE(IPRN,700) LMAX
WRITE(IPRN,800) QLINAV
IF (IQSHAPE.EQ.1) THEN
WRITE(IPRN,900)
ELSE
WRITE(IPRN,1000)
END IF
WRITE(IPRN,1100) AFLOW
WRITE(IPRN,1200) QTOT
WRITE(IPRN,1300) XMDOT
WRITE(IPRN,1400)
WRITE(IPRN,1410) (T(JBOIL)-T(1))
WRITE(IPRN,1420) (P(JBOIL)-P(1))
WRITE(IPRN,1430) 100.0D0*(RHO(T(JBOIL),P(JBOIL))-RHO(T(1),P(1)))
& /RHO(T(1),P(1))
IF (BOILS.EQ.0) THEN
WRITE(IPRN,1440)
ELSE
-3-
E:\MAIN.F Wednesday, January 05, 2011 2:26 PM
WRITE(IPRN,1450) Z(JBOIL+1)
END IF
WRITE(IPRN,1460) XITERT
WRITE(IPRN,1470) XITERP
WRITE(IPRN,1475)
WRITE(IPRN,1500)
DO J=1,JBOIL
WRITE(IPRN,1600) J,Z(J),QLIN(J),P(J),T(J),TSAT(P(J)),RE(J),XMU(J)
& ,HEATCAP(T(J)),FRICF(J),ITERT(J),ITERP(J)
END DO
WRITE(IPRN,1550)
IF (BOILS.EQ.1) WRITE(IPRN,1700)
WRITE(IPRN,2000)
STOP
END
C ******************************************************************
REAL*8 FUNCTION FE(TI,TIP1,QI,QIP1,ZI,ZIP1,XMDOT)
C THE ENERGY FUNCTION
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
-4-
E:\MAIN.F Wednesday, January 05, 2011 2:26 PM
B0=-2.0D0*A0*TI-A1*TI*TI-A2*TI*TI*TI-(QI+QIP1)*(ZIP1-ZI)/XMDOT
B1=2.0D0*A0+A2*TI*TI
B2=A1-A2*TI
B3=A2
FE=B0+B1*TIP1+B2*TIP1*TIP1+B3*TIP1*TIP1*TIP1
RETURN
END
C ******************************************************************
REAL*8 FUNCTION DFEDT(TI,TIP1,QI,QIP1,ZI,ZIP1,XMDOT)
C DERIVATIVE OF THE ENERGY FUNCTION
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
B0=-2.0D0*A0*TI-A1*TI*TI-A2*TI*TI*TI-(QI+QIP1)*(ZIP1-ZI)/XMDOT
B1=2.0D0*A0+A2*TI*TI
B2=A1-A2*TI
B3=A2
DFEDT=B1+2.0D0*B2*TIP1+3.0D0*B3*TIP1*TIP1
RETURN
END
C ******************************************************************
REAL*8 FUNCTION FK(TI,TIP1,PI,PIP1,FRICI,FRICIP1,ZI,ZIP1,XMFLUX
& ,DH)
C THE MOMENTUM FUNCTION
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
DATA A0,A1,A2,A3,A4/ 1011.597D0,-0.22051D0,-1.92243D-5,5.63769D-9,
& 2.26D-7/
GRAV=9.8D0 !GRAVITATIONAL ACCELERATION
DZ=ZIP1-ZI
ALPHA1=A0+A1*TIP1+A2*TIP1*TIP1+A3*TIP1*TIP1*TIP1
ALPHA2=A4
B0=XMFLUX*DABS(XMFLUX)*DZ*FRICI/(4.0D0*DH*RHO(TI,PI))+0.5D0*GRAV
& *DZ*(RHO(TI,PI)+ALPHA1)-XMFLUX*XMFLUX/RHO(TI,PI)-PI
B1=0.5D0*GRAV*DZ*ALPHA2+1.0D0
B2=0.25D0*XMFLUX*DABS(XMFLUX)*DZ*FRICIP1/DH+XMFLUX*XMFLUX
FK=B0+B1*PIP1+B2*(ALPHA1+ALPHA2*PIP1)**(-1.0D0)
RETURN
END
C ******************************************************************
REAL*8 FUNCTION DFKDP(TI,TIP1,PI,PIP1,FRICI,FRICIP1,ZI,ZIP1,XMFLUX
& ,DH)
C DERIVATIVE OF THE MOMENTUM FUNCTION
C ******************************************************************
-5-
E:\MAIN.F Wednesday, January 05, 2011 2:26 PM
ALPHA1=A0+A1*TIP1+A2*TIP1*TIP1+A3*TIP1*TIP1*TIP1
ALPHA2=A4
B0=XMFLUX*DABS(XMFLUX)*DZ*FRICI/(4.0D0*DH*RHO(TI,PI))+0.5D0*GRAV
& *DZ*(RHO(TI,PI)+ALPHA1)-XMFLUX*XMFLUX/RHO(TI,PI)-PI
B1=0.5D0*GRAV*DZ*ALPHA2+1.0D0
B2=0.25D0*XMFLUX*DABS(XMFLUX)*DZ*FRICIP1/DH+XMFLUX*XMFLUX
DFKDP=B1+B2*ALPHA2*(ALPHA1+ALPHA2*PIP1)**(-2.0D0)
RETURN
END
C ******************************************************************
REAL*8 FUNCTION RHO(T,P)
C EQ OF STATE: DENSITY
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
DATA A0,A1,A2,A3,A4/ 1011.597D0,-0.22051D0,-1.92243D-5,5.63769D-9,
& 2.26D-7/
RHO=A0+A1*T+A2*T*T+A3*T*T*T+A4*P
RETURN
END
C ******************************************************************
REAL*8 FUNCTION HEATCAP(T)
C EQ OF STATE: SPECIFIC HEAT CAPACITY
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
DATA A0,A1,A2/ 1630.22D0,-0.83354D0,4.62838D-4/
HEATCAP=A0+A1*T+A2*T*T
RETURN
END
C ******************************************************************
REAL*8 FUNCTION VISCOS(T)
C EQ OF STATE: DYNAMIC VISCOSITY
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
ALPHA=-2.4892D0+220.65D0/T-0.4925D0*DLOG10(T)
VISCOS=10.0D0**ALPHA
RETURN
END
C ******************************************************************
REAL*8 FUNCTION TSAT(P)
C EQ OF STATE: SATURATION TEMPERATURE
C ******************************************************************
IMPLICIT REAL*8 (A-H,O-Z)
ALPHA=DLOG(P*9.869D-6)-10.51D0
-6-
E:\MAIN.F Wednesday, January 05, 2011 2:26 PM
TSAT=-12130.0D0/ALPHA
RETURN
END
-7-