This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorials:fortran [2014/01/10 18:17] papa [Input/Output Devices] |
tutorials:fortran [2022/03/19 09:52] papa [CPU/Elapsed time report on program termination] |
||
---|---|---|---|
Line 9: | Line 9: | ||
===== Peculiarities ===== | ===== Peculiarities ===== | ||
+ | ==== CPU/Elapsed time report on program termination ==== | ||
+ | |||
+ | The FORTRAN compiler adds a report on CPU and elapsed time used by the program that prints at the end of every program run, like: | ||
+ | |||
+ | CPU time 0.08 Elapsed time 0.09 | ||
+ | |||
+ | This message can be suppressed by adding the following line to your program source: | ||
+ | |||
+ | CALL QUIETX | ||
+ | |||
+ | ==== DATE subroutine bug ==== | ||
+ | |||
+ | Although the TOPS-20 operating system as a whole survived the Y2K crisis, the FORTRAN DATE subroutine did not fare as well. | ||
+ | |||
+ | DATE is supposed to return a ten-character string representing the current system date with the format: | ||
+ | |||
+ | '' | ||
+ | |||
+ | Where: | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | However, since the year 2000, the DATE has set the '' | ||
+ | |||
+ | This renders the year portion of DATE's output useless for most purposes. A work-around is to program a date subroutine in another language that correctly processes the TOPS-20 system date (such as MACRO assembly language) and call that subroutine from your FORTRAN program instead of the FORTRAN DATE subroutine. | ||
==== Input/ | ==== Input/ | ||
Line 14: | Line 42: | ||
FORTRAN uses logical device numbers for transmitting data to and from various input and output devices. In FORTRAN-20, some of these logical unit numbers were assigned to specific equipment that was common in the computer rooms of the 1970s and '80s but are not available in TWENEX.ORG' | FORTRAN uses logical device numbers for transmitting data to and from various input and output devices. In FORTRAN-20, some of these logical unit numbers were assigned to specific equipment that was common in the computer rooms of the 1970s and '80s but are not available in TWENEX.ORG' | ||
- | When you are coding input/ | + | When you are coding input/ |
The default logical unit (specified by " | The default logical unit (specified by " | ||
Line 28: | Line 56: | ||
Below is a list of FORTRAN-20 logical unit assignments. For file input or output, you may use any of the units assigned to disk (0, 1, 20-24, 30-99). If you do not specify a file name when you open the logical unit, FORTRAN-20 will use the default file name (in your currently connected directory) corresponding to the unit you are opening as shown in the table. | Below is a list of FORTRAN-20 logical unit assignments. For file input or output, you may use any of the units assigned to disk (0, 1, 20-24, 30-99). If you do not specify a file name when you open the logical unit, FORTRAN-20 will use the default file name (in your currently connected directory) corresponding to the unit you are opening as shown in the table. | ||
- | ^ Unit ^Device^Default filename^Usage^ | + | ^ Unit ^Device^Default filename^Usage^ Available |
- | | 0 |DSK|FOR00.DAT|Disk| | + | | 0 |DSK|FOR00.DAT|Disk| YES |
- | | 1 |DSK|FOR01.DAT|Disk| | + | | 1 |DSK|FOR01.DAT|Disk| YES |
- | | 2 |CDR|FOR02.DAT|Card reader| | + | | 2 |CDR|FOR02.DAT|Card reader| NO |
- | | 3 |LPT|FOR03.DAT|Line printer| | + | | 3 |LPT|FOR03.DAT|Line printer| NO |
- | | 4 |CTY|FOR04.DAT|Console teletype| | + | | 4 |CTY|FOR04.DAT|Console teletype| NO |
- | | 5 |TTY|FOR05.DAT|User teletype| | + | | 5 |TTY|FOR05.DAT|User teletype| YES |
- | | 6 |PTR|FOR06.DAT|Paper tape reader| | + | | 6 |PTR|FOR06.DAT|Paper tape reader| NO |
- | | 7 |PTP|FOR07.DAT|Paper tape punch| | + | | 7 |PTP|FOR07.DAT|Paper tape punch| NO |
- | | 8 |DIS|FOR08.DAT|Display| | + | | 8 |DIS|FOR08.DAT|Display| NO |
- | | 9 |DTA1|FOR09.DAT|DECtape| | + | | 9 |DTA1|FOR09.DAT|DECtape| NO |
- | | 10-15 |DTA2-7|FOR10 - 15.DAT| | + | | 10-15 |DTA2-7|FOR10 - 15.DAT| |
- | | 16-18 |MTA0-2|FOR16 - 18.DAT|Magnetic tape| | + | | 16-18 |MTA0-2|FOR16 - 18.DAT|Magnetic tape| NO |
- | | 19 |FORTR|FOR19.DAT|Assignable device| | + | | 19 |FORTR|FOR19.DAT|Assignable device| NO |
- | | 20-24 |DSK|FOR20 - 24.DAT|Disk| | + | | 20-24 |DSK|FOR20 - 24.DAT|Disk| YES |
- | | 25-29 |DEV1-5|FOR25 - 29.DAT|Assignable devices| | + | | 25-29 |DEV1-5|FOR25 - 29.DAT|Assignable devices| NO |
- | | 30-99 |DSK|FOR30 - 99.DAT|Disk| | + | | 30-99 |DSK|FOR30 - 99.DAT|Disk| YES |
===== Extensions and additions ===== | ===== Extensions and additions ===== | ||
This section introduces potentially useful features that are unique to FORTRAN-20 and not included in the FORTRAN-77 standard. | This section introduces potentially useful features that are unique to FORTRAN-20 and not included in the FORTRAN-77 standard. | ||
+ | |||
+ | //(More to come: structured programming statements, in-line comments, ...)// | ||
+ | |||
===== FORTRAN overview ===== | ===== FORTRAN overview ===== | ||
This section gives an brief overview of the FORTRAN-77 programming language for programmers with at least some experience with one or more other programming languages. It is not intended to be a comprehensive description or tutorial. Readers desiring a more complete introduction to FORTRAN are recommended to read the //Fortran 77 Tutorial// linked in the References section below. | This section gives an brief overview of the FORTRAN-77 programming language for programmers with at least some experience with one or more other programming languages. It is not intended to be a comprehensive description or tutorial. Readers desiring a more complete introduction to FORTRAN are recommended to read the //Fortran 77 Tutorial// linked in the References section below. | ||
+ | |||
+ | //(More to come: FORTRAN-77 cheat sheet, idiosyncracies (line layout, ...).)// | ||
===== Hello World ===== | ===== Hello World ===== |