Honeywell PREFACE
Total Page:16
File Type:pdf, Size:1020Kb
MULTICS FORTRAN r!TTTn~ TTSER'Su '-" '-' .L~.L:..I SUBJECT Information Concerning the Creation and Execution of FORTRAN Programs in a Multics System, with Suggestions for Efficient Coding, Use of the 110 System, and an Introduction to Basic Multics Concepts SOFTWARE SUPPORTED Multics Software Release 8.0 ORDER NUMBER CC70-01 December 1979 Honeywell PREFACE The purpose of this manual is to supplement Multics FORTRAN, Order No. AT58. Anyone faced with the prospect of learning to use an unfamiliar computer system is likely to experience some frustration in trying to get information out of the manuals that are supposed to explain it all. The inexperienced or occasional user is often at a loss for where to start understanding it all, especially since the manual explaining it all seems to assume everything. You want to know where there is a manual explaining how to use the manual that is supposed to explain it all. The FORTRAN User's Guide is written in the hope that all of you who want to write FORTRAN programs on the Multics system can get answers to basic questions both about the system and about the the FORTRAN dialect embodied on it. If you are new to the system, whatever your level of sophistication as a programmer, the first section, "Introduction to Multics," provides a general overview of the system from the standpoint of FORTRAN programming. You are strongly encouraged to read through this section carefully before reading any other part of the manual. Sections are so designed as to make them independent of each other. Depending on what you want to know, you can read the rest of the manual in any order you choose. The FORTRAN language on Multics is a superset of ANSI Standard FORTRAN, 1966. As such it contains features not defined by the standard of 1966, either in the form of extensions to the standard (especially in regard to Input/Output processing), or in the form of nonstandard features that are familiar to most users of other systems. In some cases, Multics FORTRAN extends the standard of 1966 to meet that of 1977. The information and specifications in this document are subject to change without notice. This document contains information about Honeywell products or services that may not be available outside the United States. Consult your Honeywell Marketing Representative. © Honeywell Infonnation Systems Inc., 1983 File No.: lL13 CC70-00 The FORTRAN language on Multics is a superset of ANSI Standard FORTRAN, 1966. As such, it contains features not defined by the standard of 1966, either in the form of extensions to the standard (especially in regard to Input/Output processing) or in the form of nonstandard features that are familiar to most users of other systems. In many cases, Multics FORTRAN now extends the standard of 196-6---tom-eetthat of- 197Y~ Some but not all of the features of FORTRAN 77 are available only if the program is compiled with the ansi77 option in effect. Only those features that are incompatible with the ansi66 interpretation are under control of the ansi 77 option. Almost all of the FORTRAN 77 standard features have now been inplemented. For a formal description of the FORTRAN language embodied on Multics, see the Multics FORTRAN manual, Order No. AT58. The user is assumed to have a working knowledge of FORTRAN. No attempt is made to provide instruction in the writing of FORTRAN programs, although some suggestions are offered about how to make them more efficient. Throughout this manual, references are made to portions of the MPM. For convenience, these references are shortened as follows: Document Referred to in Text as lieterence Guide MPM Reference Guide (Order NOe AG91) Introduction to Programming Introductory Users' Guide on Multics TOrder No. AG90) Commands and Active Functions MPM Commands (Order No. AG92) Subroutine MPM Subroutines (Order No. AG93) Subsystem Writers' Guide MPM Subsystem Writers' Guide (Order No. AK92) Communications Input/Output MPM Communications I/O (Order No. CC92) 12/81 iii CC70-01A Significant Changes in CC10-01C Implementation of Large Arrays and Very Large Arrays Addition of managed storage Addition of -long profile control argument Several machine-dependent global optimizations now performed by compiler: Global Pointer Register Use Global Index Register Processor Instruction Fetch Padding * For purposes of clari ty and ease of use, the MPM set has been reorganized. The six former MPM manuals, the Tools manual, and the RCP Users' Guide have been consolidated into a new set of three manuals. Multics Programmer's Reference Manual (AG91) contains all the reference material from the former eight manuals. Multics Commands and Active Functions (AG92) contains all the commands and active functions from the former eight manuals. Multics Subroutines and InputlOutput Modules (AG93) contains all the subroutines and 1/0 modules from the former eight manuals. The following manuals are obsolete: Name Order No. MPM Peripheral InputlOutput AX49 MPM Subsystem Writers' Guide AK92 Programming Tools AZ03 MPM Communications 1/0 CC92 Resource Control Users'Guide CT38 References to these manuals still exist on pages not published with this addendum. When this manual is revised, the references in the text to the old manuals will be changed to reflect the new organization. 12/83 iv CC70-01C CONTENTS Page Section 1 Introduction to Multics ••••••• 1-1 Directory Hierarchy • • • 1-1 Segments •••.•••• ••• 1-1 Directories • • • • • • 1-1 Entries and Entrynames • • • • • • 1-2 Pathnames • • • • • • • • • • • • • 1-2 Example of a Pathname • • • 1-3 \~orking Di rectory • • • • .. 1-3 Absolute Pathname • • • • • • • 1-3 Relative Pathname ••••••• 1-4 Home Directory • • • • • 1-4 Directory Hierarchy = File System • • • • • • • • 1-4 Pathnames vs. Entrynames ••••• 1-5 Search Rules • • • • • • • • • • • 1-5 Commands and Command Level •••• 1-5 1 '7 The Multics Programming Environment I-I The Basic Data Structures • • • • • 1-7 The Stack •• • • • • • • • • • 1-7 Free Storage Region 1-8 Managed Storage • • • • • • 1-8 I Load Modules, Object Segments, and Linking • • • • • • • 1-8 Load Module ••• • 1-8. 1 Object Segment _ _ • • • • • 1-8.2 The Linkage Section • 0 .. • 1-9 Reference Names and Entrypoint Names •• • • • • • • • • • .. 1-10 Ttie Reference Name Table • • • 1-10 Consequences of Dynamic Linking • • 1-11 The Main Program Con0ept e 9 - 1-12 Common Block References • • • • • • 1-12 Permanent Common Blocks 1-14 Common Statement • • .. • • • • • 1-15 Storage Classes • • • •• ••• 1-15 Automatic Variables ••• • • • 1-17 Program Units Compiled Together 1-17 Quick Calls • • • • • • • 1-18 Separately Compiled Program Units • • • • • • • • • • • • • 1-19.1 12/83 v CC70-01C CONTENTS (cont) Page Failure to Initialize Automatic Variables • • • • • • • • • 1-19.2 Initialization 1-20 Undefined Variables • • • 1-20 Save Statement • • • 1-20 Automatic Statement 1-21 Data Statement • • • • . 1-21 Run Units ••••••••••••• 1-22 Use of the Run Command • 1-23 Quit, Start, Release. 1-23 Pause, Start, Release, Stop 1-23. 1 Automatic Storage in Stack Frames • 1-26 . Binding FORTRAN Programs • • • 1-31 Section 2 Entering Your FORTRAN Source Program 2-1 Login • • • • • • • •• • • • 2-1 Creating a Source Segment .••• 2-1 Input Format • • • • • • . • • • • 2-2 Uppercase and Lowercase Letters • • 2-3 Names in the FORTRAN Program 2-3 Free-Form Format •••• 2-3 Comments • • • • . • • • • • 2-3 Continuation Lines • • 2-5 Semicolon ••• • • • 2-5 Line Numbers • • • • • 2-7 Card-Image Format • 0.. 2-7 Comments • .• ••••••• 2-8 Continuation Lines • • • • • • • 2-8 Line Numbers . • • • 2-8 Section 3 Compiling and Executing the FORTRAN Program . • • • • 3-1 Invoking the Compiler • • • . 3-1 Error Diagnostics • • • • • . • 3-2 Control of Error Messages ••. 3-4. 1 Language Opt ions • • • • 3-5 Subscript Checking • . • • 3-6 Relocation • • • • •• .•• 3-7 Listing Segment ••.••• 3-7 Format of listing Segment 3-7 Optimization • • •• .••• 3-9 Improving Program Speed 3-10 Card-Image and Free-Form Source Programs • • • • . • • • • • • 3-10. 1 Debugging • • • • • . • • • • • 3-11 Executing a FORTRAN Program • 3-12 Section 4 Constraints • • • 4-1 12/83 vi CC70-01C CONTENTS (cont) Page Length and Form of Records • • • • • • 4-1 F i 1 es- -_.-. • • • • • -. • • • • • •.• • 4..,.2 10 Transfer Limits • • • • 4-2 I Programs ••••• • • • • • • 4-2 Statements and Line Numbers • • • • 4-2 Arrays and Common Blocks ••••• 4-3 I Binder • • • • • • • • • • • • • • 4-3 Stack Segment • • • • • •• • • 4-3 Normal Storage vs. Large Arrays and Very Large Arrays •••• 4-4 Large Arrays and Very Large Arrays • • • • • • • • • • • • 4-5 Accuracy of Real Numbers • • • • • • • 4-6 I Overflows in Integer Multiplications 4-6 Section 5 Input/Output in Multics FORTRAN •• 5-1 Introductory Comments • • • • • . 5-1 Fundamentals of Input/Output 5-1 Implicit Connection ••••• 5-2 The Use of Implicit Connection 5-4 Input Data Transfers • • 5-4 Output Data Transfers • • • • 5-4 Explicit Connection ••••• 5-5 Using the Open Statement 5-5 C' t:. What Is in This Subsection • • • :J-V Terminal Read/Write (Unit 0) e e 5-8.1 Terminal Read (Units 5 and 41) • 5-9 Terminal Write (Units 6 and 42) 5-9 Formatted Sequential I/O to Storage System Files • • • 5-10 Unformatted Sequential I/O to Storage System Files ••••• 5-11 Direct Access Formatted I/O to Storage System Files .• • • • ~ 5-12 Direct Access Unformatted I/O to Storage System Files ••• 5-13 Binary Stream Files •••• 5-15 Connecting Nonstandard Units to the Terminal ••••••••• 5-16 Connecting a Default Terminal Unit to a File ••• •