Sunteți pe pagina 1din 2

E:\NECTAR.

F Saturday, January 22, 2011 3:06 PM

C MAIN PROGRAM OF NECTAR CODE


C WRITTEN BY SYEILENDRA PRAMUDITYA
C A COMPLETE EXPLANATION AND SOURCE CODE ARE AVAILABLE ON http://wp.me/p61TQ-zt
C FIRST VERSION, JANUARY 2011

PROGRAM NECTAR
IMPLICIT REAL*8(A-H,O-Z)
CHARACTER*8 INFILE

IPRN1=6
WRITE(IPRN1,*) '***************************************************
&**'
WRITE(IPRN1,*) '* NECTAR CODE
& *'
WRITE(IPRN1,*) '* - A STEADY STATE THERMAL HYDRAULICS SOLVER -
& *'
WRITE(IPRN1,*) '***************************************************
&**'
WRITE(IPRN1,*) ''

WRITE(IPRN1,*) 'ENTER THE NAME OF THE INPUT FILE (8 CHARACTERS): '


READ(*,1000) INFILE
OPEN(1,FILE=INFILE,STATUS='OLD')
READ(1,1500) XCARD,IMAX,LMAX
CLOSE(1)

CALL DRIVER(INFILE,IMAX,LMAX)

1000 FORMAT(A8)
1500 FORMAT(A10,5I5)
STOP
END

SUBROUTINE DRIVER(INFILE,IMAX,LMAX)
IMPLICIT REAL*8 (A-H,O-Z)
CHARACTER*8 INFILE
CHARACTER*12 OTFILE
REAL*4 XE,XTIME(2)
CHARACTER*24 XDATE(2)

DIMENSION DH(IMAX),QLINAV(IMAX),IQTYPE(IMAX),AFLOW(IMAX)
DIMENSION T(IMAX,LMAX),P(IMAX,LMAX),RHO(IMAX,LMAX),
&RE(IMAX,LMAX),FRICF(IMAX,LMAX),XMU(IMAX,LMAX),
&TSAT(IMAX,LMAX),XMFLUX(IMAX),QLIN(IMAX,LMAX),
&VELOC(IMAX,LMAX),QCHAN(IMAX)
DIMENSION IERROR(2)

IPRN1=6

OTFILE=INFILE//'_OUT'

XDATE(1)=FDATE()
XE=DTIME(XTIME)

!READ INPUT DATA


CALL RINPUT(INFILE,IMAX,LMAX,DZ,DH,XMDOT,T1,P1,PLMAX,QLINAV,
&IQTYPE,AFLOW)

-1-
E:\NECTAR.F Saturday, January 22, 2011 3:06 PM

!SOLVE THE MULTI-CHANNEL SYSTEM


CALL MULTI(IMAX,LMAX,DZ,DH,XMDOT,T1,P1,PLMAX,QLINAV,IQTYPE
&,T,P,RHO,RE,FRICF,XMU,TSAT,XMFLUX,VELOC,QLIN,ITER,IERROR,AFLOW,
&QCHAN)

XDATE(2)=FDATE()
XE=DTIME(XTIME)

IF((IERROR(1).EQ.0).AND.(IERROR(2).EQ.0))THEN !NO ERROR


!WRITE OUTPUT FILE
OPEN(1,FILE=OTFILE)
WRITE(1,*) 'NECTAR CODE - OUTPUT DATA'
WRITE(1,*) ''
WRITE(1,*) 'TOTAL NEWTON-RAPHSON ITERATION: ',ITER
WRITE(1,*) ''
WRITE(1,*) ' TIME RECORD'
WRITE(1,*) ' START : ',XDATE(1)
WRITE(1,*) ' FINISH: ',XDATE(2)
WRITE(1,*) ''
WRITE(1,*) ' ELAPSED TIME:'
WRITE(1,*) ' USER ',XTIME(1),' s'
WRITE(1,*) ' SYSTEM ',XTIME(2),' s'
WRITE(1,*) ' TOTAL ',XE,' s'
WRITE(1,*) ''
CLOSE(1)

WRITE(IPRN1,*) ''
WRITE(IPRN1,*) ' * * * CALCULATION FINISHED NORMALLY * * *'
WRITE(IPRN1,*) 'ALL OUTPUT DATA HAVE BEEN SAVED TO "',OTFILE,'"'

CALL WOTPUT(OTFILE,IMAX,LMAX,DZ,T,P,RHO,RE,FRICF,XMU,TSAT,
&XMFLUX,VELOC,QLIN,QCHAN,AFLOW)

ELSE !NO ERROR

IF(IERROR(1).EQ.1)THEN
WRITE(IPRN1,*) ''
WRITE(IPRN1,*) '* * * CALCULATION IS TERMINATED! * * *'
WRITE(IPRN1,*) 'ERROR: BOILING OCCURED'
END IF

IF(IERROR(2).EQ.1)THEN
WRITE(IPRN1,*) ''
WRITE(IPRN1,*) '* * * CALCULATION IS TERMINATED! * * *'
WRITE(IPRN1,*) 'ERROR: JACOBIAN MATRIX IS SINGULAR'
END IF

END IF !NO ERROR

WRITE(IPRN1,*) ''

1000 FORMAT(A8)
2000 CONTINUE
STOP
END

-2-

S-ar putea să vă placă și