0% found this document useful (0 votes)
5K views

FORTRAN77 Code - NECTAR

This document contains the source code for the NECTAR thermal hydraulics solver written in Fortran. It includes the main driver program and subroutines for reading input data, solving the multi-channel system, writing output files, and checking for errors. The code performs a steady-state thermal hydraulics calculation, saving results to an output file if no errors occur during the Newton-Raphson iterations or solution of the Jacobian matrix.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5K views

FORTRAN77 Code - NECTAR

This document contains the source code for the NECTAR thermal hydraulics solver written in Fortran. It includes the main driver program and subroutines for reading input data, solving the multi-channel system, writing output files, and checking for errors. The code performs a steady-state thermal hydraulics calculation, saving results to an output file if no errors occur during the Newton-Raphson iterations or solution of the Jacobian matrix.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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-

You might also like