Notice! This document is currently in Archived status.
The content of this document may be incorrect or outdated.

Print this article Edit this article

Carriage control

Carriage Control The Unix implementation of Fortran-77 does not support 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.

To handle Fortran output in conformance to the ANSI standard carriage codes, 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.

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

For more information about fpr, type:

        man fpr

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

Last Modified: Dec 19, 2016 11:12 am US/Eastern
Created: May 31, 2007 1:30 pm GMT-4 by admin
JumpURL: