      PROGRAM PGM06
************************************************************************
*    PROGRAMMER: B. Alex Bridges
*    CLASS:      9:00AM
*    PROGRAM:    PGM06.F
*    DUE DATE:   02/18/99
*
* Program Description:
*    This program reads loan information from a data file. It uses the
*    values to determine the amortization table for the life of the
*    loan.
* Variables:
*    NAMEF   : student's first name
*    NAMEL   : student's last name
*    NUMBER  : number of data items
*    TEMPO   : old temperature
*    TEMPU   : unit of temperature ('C' or 'F')
*    TEMPN   : new temperature
* Input  : NAMEF,NAMEL,NUMBER,TEMPO,TEMPU
* Output : TEMPO,TEMPN
************************************************************************

        CHARACTER*5 NAMEF,NAMEL*7,TEMPU*1
        REAL TEMPO,TEMPN
        INTEGER NUMBER,I

* open the data file
        OPEN (UNIT=12, FILE="pgm06.dat")

* read in values for name and number of data items
        READ (12, *), NAMEF, NAMEL
        READ (12, *), NUMBER

* display the header
        PRINT '(T30,"TEMPERATURE CONVERSION PROGRAM",/)'
        PRINT '("PROGRAMMED BY: ",A,A,/)', NAMEF,NAMEL

* repeat until no more data values
        DO 10 I=1,NUMBER,+1
*  => read in values for name and number of data items
        READ (12, *), TEMPO,TEMPU

*  => calculate temperature conversion and display the output
        IF (TEMPU .EQ. 'C') THEN
          TEMPN = CTOF(TEMPO)
          PRINT '(T5,I,T20,F5.1," DEGREES CELSIUS    = ",F5.1,
     1     " FAHRENHEIT")', I,TEMPO,TEMPN
        ELSE IF (TEMPU .EQ. 'F') THEN
          TEMPN = FTOC(TEMPO)
          PRINT '(T5,I,T20,F5.1," DEGREES FAHRENHEIT = ",F5.1,
     1     " CELSIUS")', I,TEMPO,TEMPN
        ELSE
          PRINT '(" ERROR: ''",A,"'' as unit of temperature is invalid.",/
     1            "        Must be either ''C'' or ''F''.")',TEMPU
        ENDIF
 10     CONTINUE

* close the data file and print end of program message
        CLOSE (12)
        PRINT '(/,T28, "End of program - PGM06.F",/)'
        END

************************************************************************

************************************************************************
* Method: CTOF                                                         *
* Purpose: Converts temperature from Celsius to Fahrenheit.            *
* Input: --PARAMETERS--                                                *
*        => 'TEMP' = The temperature in Fahrenheit.                    *
* Output: --RETURNS--                                                  *
*         => The temperature in Celsius.                               *
************************************************************************
        REAL FUNCTION CTOF(TEMP)
        REAL TEMP

        CTOF = ((9./5.) * TEMP) + 32

        END

************************************************************************
* Method: FTOC                                                         *
* Purpose: Converts temperature from Fahrenheit to Celsius.            *
* Input: --PARAMETERS--                                                *
*        => 'TEMP' = The temperature in Celsius.                       *
* Output: --RETURNS--                                                  *
*         => The temperature in Fahrenheit.                            *
************************************************************************
        REAL FUNCTION FTOC(TEMP)
        REAL TEMP

        FTOC = (5./9.) * (TEMP - 32)

        END
