Compaq Fortran
User Manual for
OpenVMS Alpha Systems


Previous Contents Index

Chapter 12
12 Using Indexed Files
     12.1     Creating an Indexed File
     12.2     Writing Indexed Files
         12.2.1         Duplicate Values in Key Fields
         12.2.2         Preventing the Indexing of Alternate Key Fields
     12.3     Reading Indexed Files
     12.4     Updating Records
     12.5     Deleting Records
     12.6     Current Record and Next Record Pointers
     12.7     Exception Conditions
Chapter 13
13 Interprocess Communication
     13.1     Compaq Fortran Program Section Usage
     13.2     Local Processes---Sharing and Exchanging Data
         13.2.1         Sharing Images in Shareable Image Libraries
         13.2.2         Sharing Data in Installed Common Areas
             13.2.2.1             Creating and Installing the Shareable Image Common Area
             13.2.2.2             Creating Programs to Access the Shareable Image Common Area
             13.2.2.3             Synchronizing Access
         13.2.3         Creating and Using Mailboxes to Pass Information
             13.2.3.1             Creating a Mailbox
             13.2.3.2             Sending and Receiving Data Using Mailboxes
     13.3     Remote Processes---Sharing and Exchanging Data
         13.3.1         Remote File Access
         13.3.2         Network Task-to-Task Communication
Chapter 14
14 Condition-Handling Facilities
     14.1     Overview of the Condition-Handling Facility
     14.2     Default Condition Handler
     14.3     User-Program Interactions with the CHF
         14.3.1         Establishing and Removing Condition Handlers
         14.3.2         Signaling a Condition
         14.3.3         Condition Values and Symbols Passed to CHF
     14.4     Operations Performed in Condition Handlers
     14.5     Coding Requirements of Condition Handlers
     14.6     Returning from a Condition Handler
     14.7     Matching Condition Values to Determine Program Behavior
     14.8     Changing a Signal to a Return Status
     14.9     Changing a Signal to a Stop
     14.10     Checking for Arithmetic Exceptions
     14.11     Checking for Data Alignment Traps
     14.12     Condition Handler Example
Appendix A
Appendix A Compatibility: Compaq Fortran 77 and Compaq Fortran
     A.1     Compaq Fortran and Compaq Fortran 77 Compatibility on Various Platforms
     A.2     Major Language Features for Compatibility with Compaq Fortran 77 for OpenVMS Systems
     A.3     Language Features and Interpretation Differences Between Compaq Fortran 77 and Compaq Fortran on OpenVMS Systems
         A.3.1         Compaq Fortran 77 for OpenVMS Language Features Not Implemented
         A.3.2         Compaq Fortran 77 for OpenVMS VAX Systems Language Features Not Implemented
         A.3.3         Compaq Fortran 77 for OpenVMS Language Interpretation Differences
         A.3.4         Compaq Fortran 77 for OpenVMS VAX Systems Interpretation Differences
     A.4     Improved Compaq Fortran Compiler Diagnostic Detection
     A.5     Compiler Command-Line Differences
         A.5.1         Qualifiers Not Available on OpenVMS VAX Systems
         A.5.2         Qualifiers Specific to Compaq Fortran 77 for OpenVMS VAX Systems
     A.6     Interoperability with Translated Shared Images
     A.7     Porting Compaq Fortran 77 for OpenVMS VAX Systems Data
     A.8     VAX H_float Representation
Appendix B
Appendix B Diagnostic Messages
     B.1     Diagnostic Messages from the Compaq Fortran Compiler
         B.1.1         Source Program Diagnostic Messages
         B.1.2         Compiler-Fatal Diagnostic Messages
     B.2     Messages from the Compaq Fortran Run-Time System
Appendix C
Appendix C Compaq Fortran Logical Names
     C.1     Commands for Assigning and Deassigning Logical Names
     C.2     Compile-Time Logical Names
     C.3     Run-Time Logical Names
Appendix D
Appendix D Contents of the Compaq Fortran System Library FORSYSDEF
Appendix E
Appendix E Using System Services---Examples
     E.1     Calling RMS Procedures
     E.2     Using an AST Routine
     E.3     Accessing Devices Using Synchronous I/O
     E.4     Communicating with Other Processes
     E.5     Sharing Data
     E.6     Displaying Data at Terminals
     E.7     Creating, Accessing, and Ordering Files
     E.8     Measuring and Improving Performance
     E.9     Accessing Help Libraries
     E.10     Creating and Managing Other Processes
Index
Index
Examples
1-1 Sample Main Program
1-2 Sample Main Program That Uses a Module and Separate Function
1-3 Sample Module
1-4 Sample Separate Function Declaration
2-1 Sample Listing of Source Code
2-2 Sample Listing of Machine Code (Partial Listing)
2-3 Sample Storage Map Section
2-4 Sample Compilation Summary
3-1 Sample Compaq Fortran Program
4-1 Sample Program SQUARES
4-2 Sample Debugging Session Using Program SQUARES
5-1 Measuring Program Performance Using LIB$SHOW_TIMER and LIB$INIT_TIMER
5-2 Command Procedure that Measures Program Performance
5-3 Using the /ASSUME =DUMMY_ALIASES Qualifier
7-1 Handling OPEN Statement File Name Errors
8-1 Testing for a NaN Value
10-1 Calling C Functions and Passing Integer Arguments
10-2 Calling C Functions and Passing Integer Arguments
10-3 Use of LIB$GET_VM and POINTER
10-4 Subroutine Using a Data Structure Argument
10-5 Ctrl/C Trapping Example
10-6 Compaq Fortran Program Calling a Compaq Fortran 77 Subroutine
10-7 Compaq Fortran 77 Subroutine Called by a Compaq Fortran Program
10-8 C Functions Called by a Compaq Fortran Program
10-9 Calling C Functions and Passing Integer Arguments
10-10 Calling C Functions and Passing Complex Arguments
10-11 Calling C Functions and Passing Pointer Arguments
10-12 C Functions Receiving Pointer Arguments
10-13 C Function That Receives an Explicit-Shape Array
10-14 Compaq Fortran Program That Passes an Explicit-Shape Array
A-1 Using the CVT$CONVERT_FLOAT Routine
B-1 Sample Diagnostic Messages (Listing Format)
Figures
2-1 Specifying the Format of Numeric Data for Unformatted Files
2-2 Creating and Using a Text Library
5-1 Common Block with Unaligned Data
5-2 Common Block with Naturally Aligned Data
5-3 Common Block with Naturally Aligned Reordered Data
5-4 Derived-Type Naturally Aligned Data (in CATALOG_SPRING : ( ,))
5-5 Memory Diagram of REC for Naturally Aligned Records
6-1 Segmented Records
6-2 Stream_CR and Stream_LF Records
8-1 INTEGER (KIND =1) or INTEGER*1 Representation
8-2 INTEGER (KIND =2) or INTEGER*2 Representation
8-3 INTEGER (KIND =4) or INTEGER*4 Representation
8-4 INTEGER (KIND =8) or INTEGER*8 Representation
8-5 LOGICAL Representations
8-6 IEEE S_float REAL (KIND =4) or REAL*4 Representation
8-7 VAX F_float REAL (KIND =4) or REAL*4 Representation
8-8 IEEE T_float REAL (KIND =8) or REAL*8 Representation
8-9 VAX G_float REAL (KIND =8) or REAL*8 Representation
8-10 VAX D_float REAL (KIND =8) or REAL*8 Representation
8-11 X_float REAL (KIND =16) Floating-Point Data Representation
8-12 IEEE S_float COMPLEX (KIND =4) or COMPLEX*8 Representation
8-13 VAX F_float COMPLEX (KIND =4) or COMPLEX*8 Representation
8-14 IEEE T_float COMPLEX (KIND =8) or COMPLEX*16 Representation
8-15 VAX G_float COMPLEX (KIND =8) or COMPLEX*16 Representation
8-16 VAX D_float COMPLEX (KIND =8) or COMPLEX*16 Representation
8-17 CHARACTER Data Representation
9-1 Little and Big Endian Storage of an INTEGER Value
9-2 Sample Unformatted File Conversion
14-1 Effects of Calls to LIB$SIGNAL or LIB$STOP
A-1 VAX H_float REAL*16 Representation (VAX Systems)
Tables
1 Conventions Used in This Document
1-1 Main Tools for Program Development and Testing
2-1 FORTRAN Command Qualifiers
2-2 FORTRAN Command Flags and Categories
2-3 Commands to Control Library Files
2-4 Compiler Limits
3-1 LINK Command Qualifiers
3-2 /DEBUG and /TRACEBACK Qualifiers
5-1 FORTRAN Qualifiers Related to Run-Time Performance
5-2 Qualifiers that Slow Run-Time Performance
5-3 Output Argument Array Types
5-4 Types of Optimization Performed at Different /OPTIMIZE =LEVEL = n Levels
6-1 Summary of I/O Statements
6-2 Available I/O Statements and Record I/O Forms
6-3 Predefined System Logical Names
6-4 Implicit Fortran Logical Units
6-5 OPEN Statement Functions and Specifiers
6-6 Valid Combinations of Record Access Mode and File Organization
7-1 Summary of Run-Time Errors
8-1 Compaq Fortran Intrinsic Data Types, Storage, and Numeric Ranges
8-2 IEEE Exceptional Floating-Point Numbers
9-1 Unformatted Numeric Formats, Keywords, and Supported Data Types
10-1 C Property and Argument Passing
10-2 OpenVMS Alpha Register Usage
10-3 Function Return Values
10-4 Run-Time Library Facilities
10-5 System Services
10-6 Compaq Fortran Implementation of OpenVMS Data Types
10-7 Variable Data Type Requirements
10-8 Compaq Fortran and C Data Types
11-1 RMS Fields Available with USEROPEN
13-1 PSECT Names and Attributes
13-2 Compaq Fortran PSECT Attributes
14-1 Severity Codes for Exception Condition Values
14-2 Condition-Handler Function Return Values
A-1 Summary of Language Compatibility
A-2 Compaq Fortran Qualifiers Without Equivalents in Compaq Fortran 77 for OpenVMS VAX Systems
A-3 Compaq Fortran 77 for OpenVMS VAX Systems Options Not in Compaq Fortran
A-4 Floating-Point Data Formats on OpenVMS VAX and OpenVMS Alpha Systems
B-1 Run-Time Error Messages and Explanations
C-1 Compaq Fortran Compile-Time Logical Names
C-2 Run-Time Logical Names
D-1 Contents of System Library FORSYSDEF


Previous Next Contents Index