Skip to content Accesskey=4Skip to sub-navigation Accesskey=3View our Accessibility Options MIT Information Systems Home About IS&T Contact IS&T Site Map Search Advanced Search
Getting StartedGetting Services by Topic or Alphabetically Getting Help

On This Page

[Help]

  

Quick Links

Top Level

Related Links

Ask OLC a question

Athena Consulting Homepage

Helpdesk Stock Answers (for Mac/PC questions)


Fortran CARRIAGE control alternatives

The Unix implementation of Fortran-77 does not handle the ANSI-standard
"carriage control" codes.  These codes are:

	space	 	single space before printing
	0		double space before printing
	1		eject page before printing
	+		overprint the previous line

By default, Unix Fortran-77 automatically adds a newline after the last record
of a formatted sequential write.  In addition, all carriage control characters
are output in column 1 instead of being interpreted by your terminal.

You can direct the output of your fortran program through an output filter,
'fpr', which interprets the carriage control characters output by your
program.  Use this command:

	a.out | fpr

You can direct output to a file like this:

	a.out | fpr > filename

If you want, you can then send the 'filename' file to a printer to get a
printed copy of your output.

Try compiling the sample program below.  Then use the commands above to
demonstrate how the 'fpr' filter implements carriage control.

The Unix implementation of Fortran-77 also allows you to use the non-standard
format specifier '$' to suppress the newline at the end of the last record of
a formatted sequential write operation.  This is useful when implementing a
prompting interface.  This is an example of a prompting interface:

	       write(6,10)
	10     format(1x,"Please enter data here: ",$)
	       read(5,*) variable

For more information on this topic and the Unix implementation of
Fortran-77, you should read the documents "A Portable Fortran 77
Compiler" and "Introduction to the f77 I/O Library".  These documents
are part of the Unix Programmer's Guide, which is in the Athena
Reference Collection in Hayden or Barker libraries (by the public
Athena clusters there), or in the Consultants' Office (1st floor N42).

Sample program:

C     This is a sample program for 'f77' carriage control.
C     Output should be run through the 'fpr' filter.

      write(6,10)
10    format(1x, "[space] means single space before printing")

      write(6,20)
20    format("0","0 means double space before printing")

      write(6,30)
30    format("1","1 means eject page before printing")

      write(6,40)
40    format(1x,"+ means overprint the previous line")

      write(6,50)
50    format("+","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

      stop
      end

MIT Home | Getting Started | Getting Services | Getting Help | About IS&T | Accessibility
Ask a technology question or send a comment about this web page.