Digital PDFs
Documents
Guest
Register
Log In
AA-JQ94A-TK
June 1987
50 pages
Original
2.6MB
view
download
OCR Version
2.4MB
view
download
Document:
F77-DocSupplement Jun87
Order Number:
AA-JQ94A-TK
Revision:
0
Pages:
50
Original Filename:
AA-JQ94A-TK_F77-DocSupplement_Jun87.pdf
OCR Text
PDP-11 FORTRAN-77 Documentation Supplement AA-JQ94A-TK June 1987 REVISION/UPDATE INFORMATION: This is a new manual. OPERATING SYSTEM AND VERSION: See the Preface for details. SOFTWARE VERSION: FORTRAN-77 Version 5.2 digital equipment corporation - maynard, massachusetts First The and information should Corporation. for any The software and this be Equipment that appear may described be document wused or in this No responsibility that is is not subject as a this in assumed for the by change by assumes June without Digital no 1987 notice Equipment responsibility document. document only supplied to commitment Corporation in copied license. equipment is construed Digital errors may in not Printing, is furnished accordance use or DIGITAL under with the reliability or its a terms of license of such software affiliated on companies. Copyright(:> 1987 by Digital Equipment Corporation All The postage-paid READER'S document requests preparing future The following the Rights COMMENTS wuser's Reserved. form on «critical documentation. are trademarks of Digital the last evaluation Equipment DECsystem-10 PDT DECUS DECSYSTEM-20 RSTS DIGITAL DECwriter RSX PDP DIBOL VMS UNIBUS Edusystem VT VAX IAS mnannan MASSBUS of assist this us in Corporation: DEC DECnet page to ZK4341 CONTENTS Page PREFACE CHAPTER A 1 DOCUMENTATION 1.1 CORRECTIONS AND ADDITIONS TO THE USER'S 1.2 CORRECTIONS AND ADDITIONS TO THE LANGUAGE 1.3 CORRECTIONS REFERENCE CHAPTER ERRORS, MANUAL ® 2 ° 2 SYSTEM TAILORING 2.1 OPTIONS Number 2,1.2 Size of of - ® * [3 ® e L] TO L3 L3 ° . & o @ 1—2 L @ 1—3 ., . . . 2-1 . o o« o » o 2-1 &+ o o + » 2=2 + & o« Area . « o« o o ° PERFORMANCE Dynamic Memory o e Memory o 1l-1 ® . s o ® . L3 Supporting OPTIONS * . L) Storage + @ ® Systems + L] L] s . Dynamic ° L) Dynamic « @ REFERENCE the + L] OTS Operating . ° GUIDE THE COMPILE-TIME Files . ADDITIONS a o s o s e+ . 2-4 » o 2-4 Allocatlon o o o s o« o 2-4 o o o o o s o o s s s o o RSX-11M/M-PLUS and RSTS/E o o o o o s s s s o o o o« s o o o s s o a o o o » o o s o s o o s s o s s o » s o o o o o s s o o s s o o o o o o o s s o s o a o o s s s s o o o s s s o o o o s o s o s o o o o o s « o« 2=5 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 o o o o o s o o s » o » 2=5 2=5 & o o o « » o« o 2=6 2=6 2=7 2=7 2-8 2.2.9 OTS Overlay Description o s o o s 2.2.10 OTS Modules Chart » » . . . ¢« « « « - . 2-8 & o & o o s o o o o« 2-8 3 OTS 3.1 3.1.1 3.1.2 3.2 3.3 3.4 3.4.1 TYPES OF RESIDENT LIBRARIES . . Noncluster Libraries . « . « « Cluster Libraries . . . & e SUPPORT FOR RESIDENT LIBRARIES e VECTORED RESIDENT LIBRARIES . . CREATING AN OTS RESIDENT LIBRARY The Default Library . . « ¢ ¢ . & o o + . « o e ¢ o s s ¢ . o o o s « s » o« s o » ¢ o« o o s o s o o o o s o o s o a o « o o o « o » « « o o s o o o s s o o o o« The Tailored Library . . e o s s e s s s o » Editing the MACRO-11 Flle s & o s o & s « = Building a Noncluster Library with FCS Routines s o o s s s s o s s s s e o s o o .« Building a Noncluster Library Linked to FCSFSL Building a Library to Cluster with RMSRES . . Building a Library to Cluster with FCSRES . . 3-1 3=1 3=2 3=2 3=3 3=3 3=3 3.4.2 3.4.2.1 3.4.2.2 3.4.2.3 3.4.2.4 3.4.2.5 A RESIDENT CHARACTER . . Files « & &« LIBRARIES STRINGS AND ARRAYS: DECLARATION 3-4 3=5 3=6 3-7 3-7 3-9 AND > REFERENCE N APPENDIX ® RSX-11M Without OTS ° AND F7711S . & o« o o Short Error Text ONly o« o o o o o F77MAP . &« ¢ & o F77EIS o « o o o F77CVE & &« o o o F77NER &+ & & o o F77NIO o« & o o 5 F77RAN . &« ¢ o o 2.2.1 2.2.2 CHAPTER e Temporary Allocation 2,2 @ AFFECTING 2.1.1 2.1.2.2 ° ADDITIONS MANUAL 2.1.2.1 [ AND CLARIFICATIONS, CHARACTER STRING DECLARATION CHARACTER ARRAY DECLARATION iii . . &« . & . &« & o ¢ o « s s s« « o« o » o o « A=l A=2 APPENDIX Au 3 CHARACTER STRING A.4 CHARACTER ARRAY aA,.5 ERROR 21 AND VIRTUAL ARRAY B.1 VIRTUAL ARRAYS Importance Map B.1l.2 *» L4 StatU.S C C.1 APPENDIX - Conflicts B.1.3 APPENDIX PROGRAM B B.1l,1 ° I- AND SUPPORT FOR Processor C.1l.2 D-Space c.1.3 ID C.l.4 OTS D D.1 PDP-11 o D.3 PDP-11 9 L) ® . £ e ® L3 3 3 E) . A-B ®» s e s a s o s« s « A=-3 CORRECTIONS . . v & & o + o . . - 6 @ I- and L [ [] ° L Bit ° AND Page L] L] L) ° at D-SPACE Register L4 Map Response A-4 L - and ® . L4 L) [ @ , Bit L] o @* Actual ° . Usage ? B-1 L) B-l APR » - » e * B—2 . . . . . B=2 s & o o o o C-1 Support . . . . . C=2 . . . C=2 Run-Time TASKS AND D-SPACE Operating FORTRAN-77 TASKS System Requirement Library TASK-BUILD for Support COMPILER (F77RST¢CMD) PDP-11 FORTRAN-77 for e Support Support . . « . . . . . . . C-2 + « o » « o o C=2 ° v D—l TASK-~-BUILD (F77llMaCMD) RSTS/E e FILES FORTRAN-77/-SP VAX"'TO—RSX ° the Requirement Resident I- Active L System RSX—llM/M“PLUS D.2 ° o SEPARATE the Parameter Switch COMPILER IN of D-SPACE C.l.1 ) o PROCESSING Between L] Operating REFERENCE REFERENCE [ COMPILER 3 ° ° COMPILER (F77VAX.CMD) ) ° * » ® FILE 3 ) ° TASK-BUILD » s [ ® TASK-BUILD * FOR 3 ° FILE ? FILE I3 5 FOR s ° D"'4 FOR ® ° [ ° L] ® L3 13 . ° - . [ D"’7 L] @ » L] » 2 e » [ ° o » ° 2-3 FIGURES 2—1 COmpiler Performance iv L3 ® PREFACE MANUAL OBJECTIVES This manual supplements provides information out documentation known the not existing FORTRAN-77 documentation set. It in the current documentation set and points errors. OPERATING SYSTEMS AND VERSIONS FORTRAN-77 runs on the following operating systems and versions: RSX-11M V4.2 or higher RSX-11S V4.2 or higher RSX-11M-PLUS V3.0 or higher Micro/RSX V3.0 or higher RSTS/E V9.2 or higher Micro/RSTS V2.0 or higher VAX/VMS V4.4 with VAX-11 RSX V2.2 or higher P/0S V3.0 with PRO/Tool Kit V3.0 or higher AUDIENCE INTENDED This manual STRUCTURE OF is intended for PDP-11 FORTRAN-77 users, DOCUMENT THIS This manual contains three chapters and four appendixes. PDP-11 known FORTRAN-77 documentation ®# Chapter 1 describes errors omissions. e compiler certain Chapter 2 explains the effects of selecting describes the optional Object Time System also It options. (OTS) modules distributed on the release media. ® Chapter 3 and describes how to create and use OTS resident libraries. e Appendix and A contains additional strings. information on character arrays PREFACE Appendix B contains additional information on virtual Appendix C contains additional information on I- Appendix D provides compiler system (i.e., combination ASSOCIATED The (VAX to and file documents and RSX). provide related PDP-11 FORTRAN-77 User's PDP-11 FORTRAN-77 Language PDP-11 FORTRAN-77 Object PDP-11 FORTRAN-77 Installation information: Guide Reference Time vi System Guide D-space. listings RSTS/E) DOCUMENTS following ] task-build RSX-11M/M~-PLUS and arrays. Manual Reference Manual for a each system CHAPTER DOCUMENTATION This chapter lists ERRORS, 1 CLARIFICATIONS, known documentation AND ADDITIONS errors and omissions 1in the errors and following manuals: 1.1 PDP-11 FORTRAN-77 User's Guide PDP-11 FORTRAN-77 Language PDP~11 FORTRAN-77 Object Reference Manual Time System Reference Manual CORRECTIONS AND ADDITIONS TO THE USER'S GUIDE The PDP-11 FORTRAN-77 User's Guide contains the following omissions: 1. Section 1.2.4 The following sentences sentence "Some switches are appended to others to the specification for the input or be affected by the switch.": supersede the the F77 Command, output file to Append switches that affect listings (e.g., /SP, /LI:n) to the specification for the input or output file they will affect. Append all other switches to the FORTRAN-77 command line. Section 1.2.4 - switch, the alphabetized The /DS following switch, list of compiler paragraphs that should switches. describe appear a in new the Overrides the default compiler's provisions for 1Iand D-space. These provisions date from installation, when the decision for in-line or Iand D-space code generation was made. (Iand D-space code generation functioned as the default.) When the default compiler generates in-line code, the /DS switch forces 1I- and D-space code generation. When the default compiler generates I- and D-space code, the /-DS switch forces in-line code generation. 3. Section 1.2.5.1 The following paragraphs information listed under /ID switches: Specifies that the task use I- and supersede D-space. You the can build an I- and D-space task on RSX-11M-PLUS (Version 2.0 or higher), Micro/RSX (Version 3.0 or higher), RSTS/E (Version 9.0 or higher), and Micro/RSTS (Version 2.0 or higher). DOCUMENTATION The ERRORS, default This may RSX-11M-PLUS and this support. (The To turn Then re-task-build allow does 5. off parameter instructions Guide. 2.5.3 error allow Section - in There checking 3.7.1 - I- and to is a missing with the FIND to turn provide support, edit the the following FORTRAN-77 FIND should off this Change read the Installation restriction: FCS statement. (Note the Virtual arrays are limited by the available storage. D-space. O, PDP-1ll1 with you not compiler, the and 1installation. file section do D-space the in allow systems during checking This systems Micro this listed error RSTS/E file DSPACE Section ADDITIONS compiler supports Itasks to grow slightly. some The option.) AND FORTRAN-77 cause configuration 4. CLARIFICATIONS, does that not RMS statement.,) as follows: by the number of elements, not The maximum number of elements - in a VIRTUAL array is 32767; there is no 1limit to the total size of the VIRTUAL arrays a program can access, The limit on elements is 32767 because PDP-11 FORTRAN-77 requires that the number of elements in an array not exceed For x VIRTUAL 262136 bytes). 4.1.2 Section in 6.3 to Section PDP-11 1. is 4-1) as LOGICAL*1 (or 8 ~ integer*2, The VIRTUAL 32767 bytes which x 2**15-1, array is The largest bytes). 32767 Generic is elements Function 1 (or JIFIX is JIFXI. and PRECISION An - 2 additional section, character data Append (Task Section usage. Error the 4 FORTRAN-77 Language integer TO usage THE of virtual LANGUAGE Reference Manual 2.3.4 - Complex constants constants separated by parentheses (contrary been appears sentence to information failure), Error 3 (044 fault), and Error 7 (Reserved arrays. REFERENCE MANUAL contains the omissions: Section has section following (Segment incorrect ADDITIONS 6.3.1, This initialization trap): for AND arguments, A, trap), Check CORRECTIONS - C.3.2 instruction errors array (Table clarify Error address The largest elements spelled DOUBLE Appendix for 1.2 signed 4.2.4 - The intrinsic function IFIX does not (as implied 1in this section) support DOUBLE PRECISION arguments. The function INT is a more appropriate example; it does added 9. a f Section support 8. the REAL*8 Section of 32767 incorrectly 7. size example, byte 6. the | to the first cannot consist a comma and sentence in following of a pair enclosed this of in section). - DOCUMENTATION ERRORS, CLARIFICATIONS, AND ADDITIONS Section 3.1 the paragraph The following sentence should be appended to that begins, "The expression must yield a value LA if Similarly, to variable Integer*4 an assign you an Integer*2 variable, only the lower word of the Integer*4 There is no variable is moved to the Integer*2 variable. overflow Section within a check. 5.13 - You BLOCK DATA can now use subprogram. PARAMETER and SAVE statements Section 7.2.1.3 - You can use the format specifier [FMT=]*%* only for an external read or write, not for an internal read or write, as stated in this section. Section 9.1.2 - ASSOCIATEVARIABLE the routine There is keyword. in which It the OPEN Section 9.1.6 There CARRIAGECONTROL keyword 1is with a restriction cannot be statement a dummy to the argument to appears. a restriction on wusing the the OPEN statement. You should use the CARRIAGECONTROL keyword in the OPEN statement only when you create a new file., 1If you open an old file that has a carriage control attribute different from the one you specified with the CARRIAGECONTROL keyword, the old file retains the carriage control attribute with which it was created. The attribute that you specified with the CARRIAGECONTROL keyword does not override the carriage control attribute specified in the header of the old file. You will receive no warning. If in doubt as to the carriage control format in an existing file, open it using the USEROPEN keyword. (See Section 2.3.12 in the User's Guide for more information.) The USEROPEN keyword causes an external MACRO routine to open the file; this routine can access the file header including the carriage control attribute. 1.3 CORRECTIONS AND ADDITIONS TO THE OTS REFERENCE MANUAL The PDP-11 FORTRAN-77 Object Time System Reference Manual following errors and omissions: l' contains Section 3.1 - The example in this section should include following line: .GLOBL A corresponding notes closing The $FIO internal SFIO note this ; (5.) F77 FORMAT should be the the processor added to the 1list of to call an section: reference allows FORTRAN OTS the routine; MACRO this program routine handles format processing. Section spelled 6.2.1 as ~ The INITIALIZE. INITIALSIZE keyword 1is incorrectly 3. DOCUMENTATION ERRORS, Section - 7.1.1 The CLARIFICATIONS, following note AND ADDITIONS should section. be appended to this at the NOTE Since requesting ROMEMS$ to tasks, issue tasks overlays OTS) . 4. EXTKS Dbuilt fail either by See for the more memory (if a user task For RSX-11M/M-Plus more arrays virtual are OTS initializes following steps: Determine 2. use to APR usage Set up ID=0, no bit D-space set an address 4., Set the window - by the 11.1 states, - that Append instruction set floating-point EIS option 1is processor, added 12 to information is 32-word - An using material the in completely options (F77EIS.OBS) conversion machines the CVF additional appears 1I- in program's initiated, Register by the (APR) examining to the Builder. size=8KB, alignment, CRAWSS region D-space, directive. Appendix true, can be as and this without chapter, Appendix C. to a The Chapter EIS the The floating-point requires concepts this section is incompatible with option (F77CVF.OBJ). option D-space B combined. the processor. clarify a is boundaries. the not for see Language performing area (window map, window assembly option format whereas floating-point Chapter It the task by Task section. Section a Page array arrays, buffer). Create 10.2.3 virtual FORTRAN-77 outside When parameters access, on the Active map 3. Section Builder array initialization, virtual arrays with I- arrays virtual send/receive up is the information space space. the window write and virtual which map Guide assigned address the l. by Task following information FORTRAN-77 User's Reference Manual. normal or information. the Virtual extend extension task This section describes wvirtual virtual array access, and use of D-space. to memory-resident the Section 10.2.3 - Insert the beginning of this section: and requires directive with may requested, Manual additional the 12, and use of a has been tasks. This CHAPTER SYSTEM 2 TAILORING This chapter describes options you can choose when building PDP-11 FORTRAN-77 into your system. It includes factors affecting compiler performance and information about optional OTS modules that you can use to tailor PDP-11 FORTRAN-77 to your particular applications. 2.1 OPTIONS The following @ AFFECTING COMPILE-TIME two options affect PERFORMANCE compile-time You can choose one, two, or compiler to wuse to store performance: three temporary disk files for the information during the compilation process. @ You can change the size of the dynamic storage area in the compiler. The PDP-11 FORTRAN-77 information during least one temporary The work at file random compiler contains (for uses temporary disk the compilation process. The file, called the work file. information example, the that symbol the table files compiler and for compiler the storing requires at normally accesses constants table). The dynamic storage area within the compiler is wused to manipulate this information. (Only part of the work file is in memory at any given time. Software paging techniques move information back and forth between the dynamic storage area and the work file.) Information must be moved into the dynamic storage area when needed by the compiler. Therefore, increasing the size of the dynamic storage area increases compilation speed by reducing the number of disk I/0 operations (see Section 2.1.2). 2.1.1 The Number /WF:w of Temporary Files compiler switch specifies the number of temporary disk files that are available to the compiler. If you specify /WF:1, the compiler stores internal representations in just one file, the work file. However, if you specify /WF:2 (or /WF:3), the compiler stores some (or all) of these representations in the one or two other temporary files. The /WF:2 option is the default, Using additional temporary files slows the compilation process, but it significantly increases the capacity of the compilet. For instance, with three temporary files (/WF:3), the compiler can compile a program that only is approximately three one temporary file times (/WF:1). larger than any it can compile with SYSTEM No significant temporary and read 2.1.2 change files on a occurs in fixed-head TAILORING the compilation disk, because rate these if you files place are the written sequentially. 8Size Increasing of the compilation. the size Dynamic of Figure Storage Area the dynamic storage 2-1 illustrates the area increases the rate correlation between of compile time and the size of the dynamic storage area. The compile time of four different FORTRAN programs, varying in length from 90 to 450 statements, was measured on a PDP-11/60. The compiler used two temporary files (/WF:2), with the work file residing on the system moving-head disk (RP04). The dynamic storage area varied 4 to 26 pages (when the listing file was suppressed). in The denote measurements at the end points of approximate compilation rate measured 1in minute. Continuation and comment lines were each curve statements not counted. size compiled from the per As Figure 2-1 shows, compilation speed is approximately three times greater when 26 pages of dynamic storage are used than it is when only 4 pages are used. However, using 14 pages results in optimal compiler performance. Building the compiler with more than 14 pages of dynamic storage achieves minimal improvement in the rate of compilation. The default size of the dynamic storage area is 12 pages. SYSTEM TAILORING 6 Resident Pages 160 - 14 Resident Pages 150 181 135 ~ 120 + 138 \ 90 - 159 75 - 60 45 138 30 4 711 PROGRAM T 450 statements PROGRAM Q 250 PROGRAM D 210 statements PROGRAM M 4 @ 15 90 statements - COMPILE TIME (seconds) 105 25 10 RESIDENT WORK FILE PAGES (1 PAGE-256 WORDS) ZK-209-81 Figure 2-1: Compiler Performance SYSTEM 2.1.2.1 Under Operating a RSTS/E, allocation, Systems Supporting RSX-11M-PLUS, you specify storage area command file. The dynamic storage area storage area computed as of for is or the dynamic by using value in TAILORING Dynamic RSX-11M system size of the EXTTSK the specified decimal Memory with PDP-11 1in EXTTSK words. The dynamic FORTRAN-77 option by Allocation the 1is size the of memory compiler's task-build size the of the dynamic follows: 256* (n+w+l) You The number The value can task The following extension the storage the under the is dynamic /WF:w INC the the of Pages On an of EXTTSK - Value Value 23K 16 24K 4864 25K installations FCS-11 by approximately RSX-11M Without task the dynamic system compiler whose default is (LB:[1,1]ANSLIB.OLB), 500 Task 22K the the ANSI magnetic compiler task words. size Dynamic Memory Allocation without dynamic determines the memory size allocation, of the and uses all of the memory in that the compiler in a partition large enough for the the desired number of pages of dynamic storage. OTS compiler for (Words) 3840 RSX-11M at command. of Compiler 12 operating 2,2 the pages 2816 FORTRAN-77 is between 1792 of EXTTSK (INS) words. 8 version 2.1.2.2 decimal number by INSTALL 4 RSX-11M/M-PLUS increases specified the /WF:2. INS/INC tape in on correlation and area. Size Number - For area switch specified value, storage switch. storage the shows EXTTSK area of size table in the dynamic by means The size, specified override installation pages partition the in partition. compiler to PDP-11 which it Install run with OPTIONS The distribution kit includes a number of optional OTS modules. After building the OTS library, you can add one or more of these optional modules and to the refer to these modules FORTRAN-77 normal use. library, them to or only LB:[1,1] system does you as can maintain needed. (or, on not require The RSTS/E these modules installation systems, any of the to separately procedures LB:). optional The copy PDP-11 modules for SYSTEM 2.2.1 TAILORING F7711s Module that F7711S.0BS contain modules. consists alternate These I/0 of a set of versions support concatenated of modules, FORTRAN designed object sequential for use modules I/O with support RSX-11S, provide sequential I/0 to non-file-structured devices (for example, terminals, nonspooled card readers, and line printers). These modules do not use the file system but perform direct I/0 operations; they reduce task size by approximately 2500 words. You can use F7711S.0BS @ You can in include it two as ways: an object module at task-build time, as follows: TKB>MAIN/FP=MAIN,LB:[1,1]F7711S.0BS (On @ RSTS/E systems, replace LB:[1,1] with LB:.) Or you can build a separate F77 OTS library for RSX-11S use, LB:[1,1]F7711S.0LB, in addition to the host operating system's OTS library. To do this, when building the OTS, substitute module the LB:[1,1]F7711S.0BS file system procedure. with Use For (or, you example, for RSTS/E, selected replace the LB:F7711S.0BS) in the reference for installation to FCS11M.OBS F7711S.0BS. this OTS library, OTS module library, rather than the host operating system's when building tasks for RSX-11S, as follows: TKB>MAIN/FP=MAIN,LB:[1,1]F7711S/LB (On 2.2.,2 For Short error RSTS/E Error systems, Text messages, the - replace RSX-11M/M-PLUS PDP-11 of word A The memory, of task long whereas 1If use error-text module the and FORTRAN-77 module containing ASCII text. RSX-11M-PLUS, or RSTS/E, you can module., LB:[1,1] alternate with RSTS/E OTS Only references your operating a 1long or a requires version LB:.) an system short approximately (SHORT.OBJ) error-text is RSX-11M, error-text 1000 requires words only one memory. with the short error-text module built into it generates complete error reports, but omits the one-line description of the error condition. The PDP-11 FORTRAN-77 User's Guide contains a complete list of OTS error numbers and message text., The F77 OTS uses the long error-text module by default. You can build a task using the short error-text module by loading module $SHORT from the library. 2.2.3 Module that F77MAP F77MAP.OBS can be used consists to of a transform set of concatenated intrinsic names at task-~build time. (The PDP-11 intrinsic function names into internal function object names into modules internal FORTRAN-77 compiler transforms names at compile time.) Without F77MAP.OBS, if a program written in MACRO-11 attempts to reference a PDP-11 FORTRAN-77 intrinsic function with the FORTRAN name of the function instead of the internal name, an unresolved reference will occur during task build. SYSTEM For example, F77MAP.OBS maps the TAILORING FORTRAN name SIN using the following module: SIN:: .TITLE $SMSIN JMP $SIN . END F77MAP,OBS contains an for each of the PDP-11 You can build an object module similar to the preceding FORTRAN-77 intrinsic functions. F77MAP library as module follows: LBR>LB: [1,1]F77MAP.OLB/CR:40.=LB:[1,1]F77MAP,OBS (On RSTS/E systems, 2.2,4 F77EIS Module F77EIS.OBS replace consists of a LB:[1,1] set of with LB:.) concatenated object modules that contain extended instruction set (EIS) versions of certain integer functions that normally use a floating-point processor. This module allows FORTRAN programs that do not perform floating-point arithmetic to run on a machine that has the extended instruction set but not a floating-point processor. The modules provided in the F77 OTS use a INTEGER*4 floating-point processor for maximum efficiency in certain computations. Use one of the normal modules following commands at task-build time to in file INTEGER with their EIS versions: replace the TKB>INT/-FP=INT,LB:[1,1]F77EIS.OBS, LB:[1,1]F77FCS/LB <-- for FCS OTS TKB>INT/-FP=INT,LB:[1,1]F77EIS.OBS, <-- for RMS OTS LB:[1,1]F77RMS/LB, LB:[1,1]RMSLIB/LB (On You may, RSTS/E systems, replace 1instead,- substitute conversion module as F77EIS LB:.) module for the default follows: {-- for FCS OTS LBR>LB: [1,1]F77RMS/RP=LB: [1,1]F77EIS {~-- for RMS OTS RSTS/E systems, replace No changes in the Task Builder substitution is performed. 2.2.5 the with LBR>LB:[1,1]F77FCS/RP=LB: [1,1]F77EIS (On This LB:[1,1] module cannot be used LB:[1l,1] command with optional with 1line LB:.) are OTS module necessary 1if this F77CVF. F77CVF Module F77CVF.OBJ is an alternative module for performing formatted output of floating-point values under control of the D, E, F, and G field specifiers. The standard module provided as part of the F77 OTS uses multiple-precision, fixed-point integer techniques to maintain maximum accuracy during the conversion of data (FPP hardware is not used) . The FPP hardware. alternative module performs the same functions using the It is approximately twice as fast as, but in some cases slightly accurate less than, the standard module. SYSTEM Use one normal of the following modules in file commands OUTR with TAILORING at task-build their F77CVF time FPP to replace the versions: TKB>OUTR=OUTR,LB: [1,1]F77CVF,LB: [1,1]F77FCS/LB <-- for FCS OTS TKB>OUTR=OUTR,LB: [1,1]F77CVF,LB: [1,1]F77RMS/LB, <-- for RMS OTS LB: [1,1]RMSLIB/LB (On RSTS/E You may, systems, instead,; conversion module F77CVF LB:.) module for the default follows: <-- for FCS OTS <-- for RMS OTS RSTS/E changes in module systems, the is cannot F77NER Module F77NER.OBS reporting be is used PAUSE task size ways ® to Build use with line as of use However, LB:.) are necessary if this (or OTS module modules for F77EIS. concatenated object this module, error the processing error-message and calls continue to operate normally; user's terminal is suppressed. are 375 also words suppressed. less error OTS may with F7711S F77NIO) and F77NER F7711S them set you optional symbol use a messages with optional If ERRTST on the approximately If you use F77NER multiply-defined correct of suppressed. statement by LB:[1,1] command with errors. ERRSNS, and of the message and Builder consists run-time report ERRSET, logging Task replace performed. 2.2.6 text the with LBR>LB: [1,1]F77RMS/RP=LB: [1,1]F77CVF substitution This substitute as LB:[1,1] LBR>LB: [1,1]F77FCS/RP=LB: [1,1]F77CVF (On No replace than the F77NER.OBJ standard to only the The STOP reduces module. modules F77118 or F77NIO, a result during task-build. Two or F77NIO F77NER as follow: separate libraries and follows: TKB>MAIN/FP=MAIN,LB:[1,1]F77NER/LB:SNERRL, LB:[1,1]F7711S/LB,LB:[1,1]F77FCS/LB (On @ RSTS/E systems, replace LB:[1,1] with LB:.) Build an OTS by incorporating F7711S.0BS instead of FCS11M.OBS into F77FCS. Name the resulting library F7711S.0LB, and build F77NER as a separate library. Use those libraries as follows: TKB>MAIN/FP=MAIN,LB: [1,1]F77NER/LB:SNERRL, IB:[1,1]F7711S/LB (On RSTS/E 2.2.7 F77NIO Module F77NIO.OBS systems, consists of replace a set LB:[1,1] of with concatenated LB:.) object modules that contain alternative versions of certain OTS routines that are always present in the user task and that provide support for FORTRAN I1/0 operations. The alternate routines in F77NIO.OBS do not support FORTRAN programs I/0 and that do reduce not task require size by FORTRAN approximately I/O (such as 1000 process worxrds control). for SYSTEM 2.2.8 F77RAN Module F77RAN.OBS that contain with an previous consists task-build time. 2.2.9 Overlay Each two OTS (or, overlay - FCS-~11 -~ RMS file ODL is an describes OTS that is you require this purposes, include file LB:F77RAN.OBS) at FORTRAN. RSTS/E systems, files for for file modules. the If modules compatible Files support and object generator for fragment options concatenated compatibility support OTS of PDP-11 description RMS11M.ODL FORTRAN-77 set for Description FCS11M.ODL PDP-11 a random-number of generator IB:[1,1]F77RAN.OBS OTS of alternative releases random-number The TAILORING are: RSX-11M/M-PLUS RSX-11M/M-PLUS that Each you can file procedures use contains for and and using RSTS/E RSTS/E for overlaying the documentation that the file. NOTE If 2.2.10 The are using RMS11M.ODL all occurrences OTS Modules following whether can you and they replace chart require the the RSTS/E contain of system, references LB:[1,1] to to files FCS11M.ODL LB:[1,1]. Change LB:. Chart lists a the floating standard OTS optional point modules OTS modules processor in your OTS (FPP) and and library. indicates whether they SYSTEM * % REQUIRES CAN REPLACE FPP IN STANDARD F7711S.0BS NO F77MAP.OBS NO ** NO F77EIS.OBS NO **=* YES F77CVF,0BJ YES YES F77NER.OBJ NO YES F77NIO.OBS NO YES F77RAN.OBS NO FCS11M.ODL NO NO RMS11M.ODL NO NO SHORT . OBJ NO - - Use - This a * k% TAILORING - this module program This module module cannot be is used *=* instead does using YES for OTS * * * YES of FCS11M to not require an FPP, the results might. with MODULES build the OTS. though processors without an FPP and optional module F77CVF.OBJ. CHAPTER OTS RESIDENT 3 LIBRARIES This chapter describes how to create OTS resident 1libraries. First, (Note in discusses factors that influence your choice of library. it instructions provides particular the new vectored default.) Then, it for building the resident library of your choice. A resident library has the following characteristics: ® @ It resides in memory and must be installed before a task references it can be It can be shared by that run. installed or multiple tasks. However, it occupies virtual address space in each task to which it is linked. The FORTRAN-77 OTS has the following general limitations: (PIC) code contain position-independent not It does therefore, cannot be built into a PIC resident library. @ (However, It cannot be built into a supervisor-mode library. 1linked to the FCSFSL supervisor-mode library; see be can it Section 3.1.1.) For more information on resident libraries, refer to the Task manual 3.1 and, e Builder for your operating system. TYPES OF RESIDENT LIBRARIES There are two general types of resident libraries: noncluster and Within each of these two types, you can employ various cluster. schemes of organizing your libraries, and you can choose either File The Record Management Services (RMS). or (FCS) Services Control following sections describe the various combinations possible and some in choosing a resident library involved the considerations of organization. 3.1.1 Noncluster Libraries In a simple noncluster library, all virtual address space in the task. of the 1library code takes up That is, the size of the library the of consists (and hence the amount of address space it requires) of space required by OTS routines and the file system amount total (typically FCS) faster than an routines. A resident library of this type may be equivalent cluster library organization, but it also takes up much more space. You must use this organization, however, if you have an RSX system that contains no support for memory-mapping 3.4,2.2 (Section for supervisor-mode libraries. directives or contains a sample command file to build a nonclustered FCS library.) 3-1 OTS For RSX-11M-PLUS or RESIDENT Micro/RSX LIBRARIES systems that libraries, support you can link the OTS resident supervisor-mode FCS library (FCSFSL). With this the OTS library available, faster you this than cannot the link takes wup virtual address configuration is recommended equivalent the OTS library with the RMS library. (Section 3.4.2.3 describes how to build library linked to the supervisor-mode FCS library.) 3.1.2 Cluster the only space in your task. When because it is slightly organization. Note, however, that cluster resident supervisor-mode library with organization, supervisor-mode a nonclustered Libraries Cluster libraries are sets of two or more resident 1libraries that the same portion of virtual memory. Conceptually, cluster libraries are like memory-resident overlays; the two or more cluster libraries form a single memory-resident overlay tree in your task's virtual address space. share When or your more amount task is linked libraries of virtual largest of call is made mapped, with mapped address the to a the is in a if great deal address the space. clustered If of your task Using to their other than the to the OTS 3.4.2.4 in cluster you 8K shows can words how RMSRES.) to the two the a currently than This their organization all your a the When library. slower library build total. one new are include of of Therefore, libraries equals than libraries counterparts. a one time. rather remaps RMS, only one cluster scheme, FORTRAN-77 (Section with library uses this at dedicated automatically incurs some overhead; noncluster or supervisor-mode recommended. libraries, task libraries, routine process Nevertheless, your space «cluster task cluster by of RMS is and a task's virtual resident library your task uses FCS, you should use a cluster library organization these same reasons, unless your system supports supervisor-mode libraries. The supervisor-mode library (as discussed in Section 3.1.1) gains for your task the same advantages as those of a cluster library and is faster. (Section 3.4.2.5 shows how to build a resident library clustered with FCSRES.) for 3.2 The SUPPORT FOR chart below libraries RESIDENT indicates described regardless of in LIBRARIES the support Section operating 3.1. available Unless for noted, system. FCS OTS types RMS NONCLUSTER LIBRARY SUPPORTED CLUSTER LIBRARY SUPPORTED LINKED AGAINST SUPERVISOR-MODE the support NOT is of OTS extended OTS SUPPORTED SUPPORTED SUPPORTED* NOT SUPPORTED LIBRARY * - This combination is not supported on the RSTS/E operating system. OTS 3.3 No VECTORED matter your RESIDENT which of the above will references a fixed entry address an OTS routine. to means that be routine resident It also addresses library do means Section against that types vectored point built of resident library. to an OTS a vectored libraries vectored routine, library shift, but the libraries resident AN Once you identified you must choose than vectored must library the not CREATING have rather for library When OTS another OTS favor do resident of you resident if routines in the resident library change. OTS resident 1library routines occur, the may not. using A entry remain 3.4.2.1 for information about optimal a resident library of one size fails resident 3.4 a tasks need to be rebuilt modifications to the LIBRARIES LIBRARIES it This task, RESIDENT the pointers same sizes). A when run in size the (see task linked against a size. RESIDENT the between LIBRARY type a of OTS default resident or a 1library tailored you version need, of this library. ® A default well @ A as version a tailored and some offers you standard library version offers choice in ease size you library and speed in your size (a choice 4K-word of 3.4.1 provides instructions for building a 3.4.2 provides instructions for building a Section 3.4.2 type libraries also of in provides resident most Task library; Builder these as command examples 1library modules multiple). Section Section each building, (8K-words). default tailored file will 1library; library. examples build for appropriate situations. NOTE The command files do not 1link error-message SSHORT, into listed may include one building your this chapter the two SERTXT library. OTS and You of these modules when 1library if you wish to force long or short to used by programs be in either of modules, the resident error-message that link to text that library. 3.4.1 Your The Default FORTRAN-77 in the invoking Library installation following 1list. the command file kit You that contains the command files identified build a default OTS resident library by corresponds to the type of library you desire. Command File Name Type of OTS Resident F7FRES.BLD F7SRES.BLD Noncluster Noncluster F7RCLS.BLD Cluster with RMSRES F7FCLS.BLD Cluster with FCSRES Library Built with FCS Routines Linked to FCSFSL Included OTS These command 1. files perform the LIBRARIES following Compile the vector module (without OTS routine pointers) OTS routine Replace with steps 3.4.2 The an .OLB vector 8K-word the make module a FORTRAN-77 1in default in in a OTS library available kit following editing desire. the File contains 1list. You MACRO-11 Type of OTS the can file that Resident F7RCLS.MAC F7FPCLS.MAC Cluster provides more degree of with with tailoring (see Section commands create command files of Use a text editor file to to your sure correct; Make the it sure number should in your Included you then can as or files.) invoke you can Use .OBJ as appropriate Task Builder library. 3.4.2.5 (The should work EXTSCT=$S0TSI:n task's size to you Invoke the Task and pass to it Inspect the resident re-edit) map library your file is resulting too MACRO-11 large file from or and is the the not repeat command task-build. large the enough, Purge any task, map, or STB files resulting 60 steps file you If the edit (or outlined from previous the library in memory, following the instructions documentation for your particular operating system. make a tailored OTS resident 3-4 library is specify the file Install the These shown steps above., task-builds. command as statement system created. the 8K. file Builder the issue follows: the OTS object module library you system modules (FCS or RMS) that match intend to use, just the FCSFSL that contains OTS to Built these own, an your extend corresponds editing resident files in Sections 3.4.2.2 through or with slight modifications.) Make on just edited. file. create build files tailored Routines 3.4.1), your Compile the MACRO-11 file you file extension in your output command FCS desired, file and you. FCSRES information command a Library Noncluster the to MACRO-11 build Noncluster Linked to Cluster with RMSRES on library partition. resident installation the 3.4.2.1 resident library. appropriate 2' OTS F7SRES .MAC Depending l. the F7FRES.MAC (Section to create F77VEC create F77REC (with Library resident library by type of library you MACRO-11 resident library Tailored identified twice, once and once to pointers). the Install These steps: F77VEC. Build Your RESIDENT available to you. in OTS 3.4.2.1 Editing The MACRO-11 four RESIDENT LIBRARIES the MACRO-11 File files (F7FRES.MAC, F7SRES.MAC, F7FCCLS.MAC, and F7RCLS.MAC) <contain global references to OTS entry points. The modules referenced in the MACRO-11 file you choose will make up your OTS resident 1library. You can edit these files to include modules that your tasks use frequently, or to exclude modules that are wused infrequently. can also use If you edit resident and (Editing each one file of instructions as these are included in the file.) is. files, your goal should be to create an You OTS library that appropriately balances the requirements of size functionality. If your library is very large, the virtual address space available for your task may be unreasonably small. (A library size of 8K words is recommended.) On the other hand, the Task Builder places in your task the object code for any modules it references that are not in the OTS resident library; thus, it does exclude commonly used modules from the library. not make To make the best use of available virtual memory, the library should be nearly equal to, but slightly below, sense to OTS resident a multiple of 4K multiple, Each time the size of the library exceeds a 4K words. required; this has the effect of reducing the 1is APR additional an virtual address space available to the task by 4K words. The following table illustrates this relationship: Size in Number of Words Size APRs 4096 8192 12288 16384 Octal 1 2 3 4 in Bytes 20000 40000 60000 100000 In the case of an OTS resident library that will be clustered with a file system library, there is an additional consideration. Remember that with clustered libraries, the virtual address space occupied by the 1libraries 1is equal to the size of the largest of the libraries. For example, if your OTS resident library occupies 4K words and the file system library occupies 8K words, the libraries occupy a full 8K words of virtual address space. In this situation, there 1is no advantage to 1limiting the size of your OTS resident library to 4K words; you might as well use the full 8K words and have a richer library. The file system cluster libraries File system Library name FCS RMS FCSRES RMSRES When you create the command library, include a occupy Number as follows: of APRs 1 2 file that PAR option as space will build the OTS resident same as the name follows: PAR=pname:base:length The pname the in is the partition resident library. the system; for name; it must be For RSX-11M systems, RSX-11M-PLUS, the the of this partition must exist INSTALL command places the OTS library in another exist. The values of that the APRs Number When you LIBRARIES the supply for resident library specified partition base and length depend occupies, as follows: on does the not number of Length 1 160000 20000 2 140000 40000 3 120000 60000 4 100000 100000 use these virtual files include values, addresses Building command that if you Base 3.4.2.2 The partition APRs highest RESIDENT a this OTS your Noncluster in FCS the of Library with section modules. resident 1library build You can builds an FCS Systems The following (F7FRES.TSK) command that file includes FCS the 8K-word tailor Routines OTS your 8K-word modules resident library F7FRES.MAC. RSX occupies task. OTS referenced libraries by modifying resident by the is a 1library OTS: F7FRES/-HD/LI/~PI,F7FRES/~SP/MA,F7FRES=F77RES LB:[1,1]F77FCS/LB / STACK=0 UNITS=0 PAR=F7FRES:140000:40000 EXTSCT=$SOTSI:1000 @LB: [1,1]F77GBL.XCL // Note that the constant. and Note the also When that the in link 8K in the the library FORTRAN-77 this FORTRAN-77 you 1000 represents recommended referenced the number It command between OTS library This task to this Builder variable, actual not library a size 1library, in the (LB: [1,1]F77FCS.OLB) library OTS. a Task statement size. file. LB:[1,1]F77FCS/LB:[1,1]1F77VEC following EXTSCT difference make task's is sure the that root. FCS version you Then, is of include use the option: LIBR=F7FRES:RO RSTS/E The Systems following (F7FRES.TSK) command that file includes builds an FCS modules B8K-word OTS referenced by F7FRES/-~-HD/LI/-PI1,F7FRES/-SP/MA ,F7FRES=F77RES LB:F77FCS/LB / STACK=0 UNITS=0 PAR=F7FRES:140000:40000 EXTSCT=$S0TSI:1000 @LB:F77GBL. XCL 24 resident the OTS. library OTS Note that the constant., and the Note number It also that in 8K the LIBRARIES EXTSCT statement is a variable, the difference between actual library the this the FORTRAN-77 OTS file. library This to this 1in the a size (LB:F77FCS.OLB) library is the FCS OTS. you link a task LB:F77FCS/LB:F77VEC not library size. FORTRAN-77 command When Builder in represents recommended referenced 1000 RESIDENT library, task's make root. option: sure Then, that use the is version you of include following Task LIBR=F7FRES:RO 3.4.2.3 The for As Building following a Noncluster command file Library Linked builds an OTS to FCSFSL resident library (F7SRES.TSK) which FCS routines reside in a separate supervisor-mode supplied, F7SRES.MAC builds a 8K-word library to 1link to You can tailor You can use support your this library by modifying configuration supervisor-mode only library. FCSFSL. F7SRES.MAC. on RSX-11M-PLUS systems that libraries. F7SRES/-HD/LI1/-PI,F7SRES/-SP/MA,F7SRES=F77RES LB: [1,1]F77FCS/LB / STACK=0 UNITS=0 SUPLIB=FCSFSL:SV PAR=F7SRES:140000:40000 GBLDEF=.FSRCA:0 GBLXCL=.FSRCA EXTSCT=8$S0TSI:1000 @QLB:[1,1]F77GBL.XCL // Note that the constant. and Note the also that the in link 8K Builder the the library command EXTSCT statement difference is between a variable, actual not library a size size. OTS file. 1library This (LB:[1,1]F77FCS.OLB) library is the FCS version 1is of OTS. a task to LB:[1,1]F77FCS/LB:F77VEC Task in FORTRAN-77 this FORTRAN-77 When you 1000 represents recommended referenced the number It this 1in 1library, the task's make sure root. Then, that use vyou the include following option: LIBR=F7SRES:RO 3.4.2.4 The that can Building command files cluster tailor your a Library in this section build 8K-word OTS resident libraries RMSRES, the RMS file system resident library. You with library to Cluster by modifying with RMSRES F7RCLS.MAC OTS RSX Systems The following (F7RCLS.TSK) command that file RESIDENT builds clusters with LIBRARIES an B8K-word OTS resident library RMSRES: F7RCLS/~HD/LI/-PI,F7RCLS/~SP/MA ,F7RCLS=F77RES LB:[1,1]F77RMS/LB LB:[1,1]RMSLIB/LB:RORMSC / STACK=0 UNITS=0 PAR=F7RCLS:140000:40000 GBLXCL=.SAVR1 EXTSCT=$$0TSI:10000 @LB:[1,1]1F77GBL.XCL // Note that the constant. and the Note also that the 1in you link 8K in the the library EXTSCT statement difference is between a variable, actual not library a size size. FORTRAN-77 this FORTRAN-77 When 1000 represents recommended referenced the number It OTS 1library command file. This to library, (LB:[1,1]F77RMS.OLB) library is the RMS is version of OTS. a task following modules in this the task's make sure that you include the root: LB:[1,1]F77RMS/LB:F77VEC LB:[1,1]RMSLIB/LB:ROAUTL:ROIMPA:ROEXSY:RMSSYM Then, use the following Task Builder option: CLSTR=F7RCLS,RMSRES:RO RSTS/E The Systems following (F7RCLS.TSK) command that file clusters builds with an 8K-word OTS resident 1library RMSRES: F7RCLS/-HD/LI/~-PI ,F7RCLS/-SP/MA,F7RCLS=F77RES LB:F77RMS/LB LB :RMSLIB/LB : RORMSC STACK=0 UNITS=0 PAR=F7RCLS:140000:40000 GBLXCL=.SAVR1 EXTSCT=8S0TSI1:1000 @QLB:F77GBL.XCL // Note that constant. and Note the number It also that 1in FORTRAN-77 1000 in represents recommended referenced the the 8K the this OTS. the the library EXTSCT is between a variable, actual library not a size size. FORTRAN-77 command statement difference file. OTS This library library (LB:F77RMS.OLB) is the RMS version is of OTS RESIDENT LIBRARIES When you link a task to this library, make sure that you following modules in the task's include the root: LB:F77RMS/LB:F77VEC LB:RMSLIB/LB:ROAUTL:ROIMPA:ROEXSY:RMSSYM Then, use the following Task Builder option: :RO LS, RMSRES CLSTR=F7RC 3.4,2.5 Building a Library to Cluster with FCSRES library resident OTS 8K-word an The following command file builds clusters with FCSRES, the FCS file system resident that (F7JFCLS.TSK) library. As is, F7FCLS.MAC builds a 8K-word library to cluster with FCSRES. This You can tailor your command file is library by modifying F7FCLS.MAC applicable to RSX systems only. F7FCLS/~-HD/L1/-PI1,F7FCLS/-SP/MA,F7FCLS=F77RES LB:[1,1]F77FCS/LB LB:[1,1]SYSLIB/LB:FCSVEC / STACK=0 UNITS=0 PAR=F7FCLS:140000:40000 EXTSCT=$S0TSI:1000 XCL @LB: [1,1]F77GBL. GBLINC=.FCSJT GBLXCL=.ASLUN GBLXCL=.CLOSE GBLXCL=,CSI1 GBLXCL=,CSI2 GBLXCL=.CSI4 GBLXCL=,DELET GBLXCL=.DLFNB GBLXCL=.ENTER GBLXCL=, EXPLG GBLXCL=.EXTND GBLXCL=.FCTYP GBLXCL=.FIND GBLXCL=,FINIT GBLXCL=.FLUSH GBLXCL=,GET GBLXCL=,.GETSQ GBLXCL=.GTDID GBLXCL=,GTDIR GBLXCL=.MARK GBLXCL=.MRKDL GBLXCL=.OPEN GBLXCL=,.0PFID GBLXCL=.0PFNB GBLXCL=.PARSE GBLXCL=.POINT GBLXCL=.POSIT GBLXCL=.POSRC GBLXCL=,PRINT GBLXCL=.PRSDI GBLXCL=.,PRSDV GBLXCL=, PRSFN OTS RESIDENT LIBRARIES GBLXCL=,PUT GBLXCL=.PUTSQ GBLXCL=,READ GBLXCL=,REMOV GBLXCL=.RENAM GBLXCL=.SAVR1 GBLXCL=, TRNCL GBLXCL=,WAIT GBLXCL=.WRITE // Note that constant. and the Note the number It recommended also that the referenced in the FORTRAN-77 When in you the link task's 1000 in represents this OTS. a task root. 8K the EXTSCT library FORTRAN-77 OTS library file. to library, this CLSTR=F7FCLS,FCSRES:RO use is a variable, actual not library size, command Then, statement the difference between the This (LB:[1,1]F77FCS.OLB) library include following is the FCS a size version is of LB:[l,l]F77FCS/tB:F77VEC Task Builder option: APPENDIX CHARACTER This appendix arrays. This FORTRAN-77 STRINGS AND ARRAYS: presents additional material should User's be A DECLARATION information appended to on AND REFERENCE character Section 6.3 strings and character arrays are not Character strings comprise one or more characters; comprise one or more character strings. must be declared run-time errors. character strings A.1 A CHARACTER character and This and STRING string the and PDP-11 Guide. Character Both strings of referenced section arrays uniquely describes how interchangeable. character arrays to avoid to declare compiler and and reference correctly. DECLARATION declarator CHARACTER{[*1len{,]] has the form v[*len]l[,v[*lenl]l]... len The length character specification, variable. that Len is, must the be number of an unsigned, the word variable in characters nonzero, in a integer constant. A length length len immediately specification statement not specification specification specified for following for each CHARACTER the 1is character the string having its own length specification. A length immediately following a variable 1is the length for only that wvariable. If a 1length is not a variable, its length is 1. v A variable name. The following examples illustrate the length applied to character string declaration. CHARACTER*10 FNAM CHARACTER*10 FNAM,MNAM a ' specification string two FNAM strings characters CHARACTER FNAM*10 CHARACTER FNAM*10,MNAM*10 a string two strings when of ten characters FNAM and MNAM of ten characters FNAM and MNAM of ten each FNAM characters rules each of ten CHARACTER STRINGS AND ARRAYS: DECLARATION CHARACTER*2 FNAM*10 a string FNAM CHARACTER*2 FNAM*10,MNAM a string FNAM and CHARACTER A.,2 A AND FNAM CHARACTER character ARRAY array a a string string REFERENCE of ten characters characters of ten MNAM of of one FNAM two characters character DECLARATION declarator CHARACTER[*1len{,]] has the form v(elm)[*len] [,v(elm)[*1len]] len The length specification, character array integer constant. A length length array immediately specification statement length the len length not is the having its specified for the own characters unsigned, word 1length in an array 1is the Y ; A element element. its a character specification. array element, the in nonzero, CHARACTER element that array of an following only an be array immediately for number must following each specification not is, Len for specification length that element, length If is is a 1. Y An array name. elm The array declarator, that is, the number of elements in the array. The following examples illustrate the length applied to character array declaration. CHARACTER*10 FNAM(5) a five-element each CHARACTER*10 CHARACTER FNAM(5) ,MNAM(5) FNAM(5)*10 two FNAM(5)*10,MNAM(5)*10 element array ten five-element rules FNAM, arrays element a array five-element element ten two five-element and MNAM, each when characters and MNAM, each characters each CHARACTER specification FNAM ten FNAM, characters arrays element FNAM ten characters CHARACTER*2 FNAM(5)*10 a five-element each CHARACTER*2 FNAM(5)*10,MNAM(5) a element array ten five-element FNAM, characters array FNAM, each element ten characters; a five-element array MNAM, each CHARACTER FNAM(5) a element two five-element each element characters array one FNAM, character \ 4 - CHARACTER A.3 A CHARACTER character STRINGS STRING string AND ARRAYS: DECLARATION AND REFERENCE REFERENCE reference has the form v([el]l:[e2]) A character variable. A numeric expression el position of the that string. specifies Character the leftmost positions variable are numbered from left to right, el is omitted, FORTRAN-77 assumes that el within character a character beginning at equals one. one. If e2 A numeric expression that specifies the rightmost character position of the string. Character positions within a character variable are numbered from left to right, beginning at one. If e2 is omitted, FORTRAN-77 assumes that e2 equals the length specification. The following examples illustrate the applied to character-string references. FNAM (7:9) character-range characters .string character FNAM(:6) characters FNAM(2:) A CHARACTER ARRAY character array 3 of 1 string characters FNAM A.4 of through 9 when of FNAM FNAM(3:3) 6 7 rules string FNAM (default) through FNAM 2 through the specification string FNAM (default) all of characters string length of FNAM REFERENCE reference has the form a(sl,;s]...)([el]:[e2]) A character array A subscript expression. A numeric expression name. el position of the that string. element are numbered from el is omitted, FORTRAN-77 specifies Character left to assumes right, the el the 1leftmost character positions within an array beginning with equals one. one. If CHARACTER STRINGS AND ARRAYS: DECLARATION AND REFERENCE e2 A numeric expression position of the element are e2 omitted, 1s that string. numbered from specifies the Character positions left FORTRAN-77 to right, assumes rightmost an with one. beginning that e2 character within equals the array If length specification. The following applied to examples referencing 1illustrate character the character-range FNAM(1) (1:10) characters first FNAM(2) (3:3) FNAM(3) (:4) array when FNAM(4) (6:) the 3 of 1 third characters FNAM (5) through of 10 array the second 6 through array of through the fourth of string characters array string (default) (default) of the string specification all of FNAM FNAM characters of 1 string character of A.5 rules arrays. 4 FNAM length of the array FNAM of the fifth string FNAM ERROR 21 AND PROGRAM CORRECTIONS ERROR 21, Missing operator or delimiter symbol, compile time if an illegal reference is made to a The following program demonstrates this error. PROGRAM CHAR CHARACTER*5 ASTR,BSTR*2 ASTR(1:1) '1° BSTR = 1is generated at character string. = ASTR(1l) ! This line generates ERROR 21 at compile time END The error is generated at the indicated line because ASTR is illegally referenced as an array, not as a string. The compiler expected to see ASTR referenced with the form ASTR(1l:1). That is, a ":1" was expected after the "(1" thus the missing operator or delimiter symbol error. The corrected PROGRAM program follows. CHAR CHARACTER*5 ASTR,BSTR*2 ASTR(1l:1) '1° BSTR = = ASTR(1l:1) END There is an changing ASTR alternate the (making way reference it an array, to correct to ASTR, as the this you might original program. change incorrect the Instead declaration program assumed of of it was) . However, the assignment to ASTR must be modified to reference the first (and only) string of the array. The second version of the program follows. PROGRAM CHAR CHARACTER*5 ASTR(1) (1:1) BSTR END = ASTR (1) ,BSTR*2 = ASTR(1) '1' ! Accept defaults for range of elements APPENDIX VIRTUAL This appendix Append presents this Object Time B.1l VIRTUAL When programming array when I- your and D-space be associated to 64K is an with words. a you separate on in virtual the PDP-11 arrays. FORTRAN-77 D-SPACE should I- virtual task. With and task IC Appendix carefully This is consider particularly virtual important D-space. programming your (See AND elements. advanced double I- arrays, in 10.2.3 Manual, other run information Section SEPARATE with programs effectively IN virtual interaction to Reference ARRAYS PROCESSING additional information System ARRAY B technique space. that allows Normally, 32K you words and D~-space, this number for more information to can increases on I- and D-space.) I- and D-space increases relationships commons, and among other relationships, your virtual task space, virtual arrays and resident shared or you regions. might You must experience but pay it complicates libraries, attention failing resident to these tasks and unreliable arrays in an results. NOTE Be especially I- and careful D-space task if you linked use to a virtual resident contains data. This configuration any operating system. The remainder occur with B.l.1 The of tasks Importance OTS uses this in section I- of and the information virtual arrays. This (APR) usage bit map. explains is some of not library that supported the on problems that may D-space. Active Page Register provided by the information is coded Task in Usage Bit Map Builder to the Active initialize Page Register The bit map is a flag word with bits representing APR status. Half the bits represent I-space APRs and half represent D-space APRs, _When the Task Builder determines that an I-space APR is required to map instructions to a task, it marks an I-space APR bit; this indicates which I-space APR will be used. When it determines that a D-space APR this is required to provide data for a task, it marks indicates which D-space APR will be used. The 0TS, D-space at APRs run-time, are free can to then map determine virtual B-1 arrays. from a the D-space bit APR bit; map which VIRTUAL B.1.2 The Conflicts bit map may Between not ARRAY PROCESSING the Bit Map and Actual reflect actual APR status APR Status because makes certain assumptions in encoding the bit map. clustered libraries (for example, the CLUSTR, LIBR, the Task Builder Some resident and and RESLIB options of the Task Builder) contain both information and data. They require I-space APRs and D-space APRs. The Task Builder marks only the I-space APRs in the bit map. This means that the Task Builder encodes the bit map with incomplete information, and virtual arrays using incomplete information. B.1.3 Operating System Response at RSX systems and RSTS systems the FORTRAN-77 OTS maps Run-Time respond differently to this situation at run-time. RSX systems employ the APRs needed as tasks execute, despite the Task Builder assumption that resident and cluster - libraries will not require D-space APRs. If RSX determines that a library needs data, it uses a D-space APR to map that data when the task is initiated. When the OTS initializes a virtual array, by the when the the data virtual it may remap the D-space APR used 1library. This remapping will proceed successfully. library tries to access its data, the task will fail the library needs has been destroyed; However, because in its place is the array. RSTS systems assign both I- and D-space APRs to resident or cluster libraries, whether the libraries actually need them or not. When the OTS initializes a virtual array, it may attempt to use the same D-space APR used by a resident library. However, RSTS does not permit the FORTRAN-77 OTS to remap an APR used by a resident or clustered library. The virtual array initialization will fail, and you will receive a "maximum memory exceeded" error. On RSX systems, virtual arrays may interact correctly with resident and cluster libraries that contain only I-space. Check your operating system and layered product manuals to confirm that your resident libraries are I-space only. Make sure, also, that any other shared regions are being used correctly. APPENDIX C I- AND D-SPACE TASKS This appendix presents additional information that will form part of a FORTRAN-77 Object Time System Reference Manual chapter on PDP-11 new I- and D-space. represents "D" and "instruction" represents ("I" allows you to technique that advanced programming I- and D-space is an "data") effectively double your virtual task space from 32K words to 64K specifically, you can have up to 32K words of More words. instructions and 32K words of data associated with a task. Without Iand D-space, only 32K total words are available to your tasks. C.l SUPPORT FOR I- AND D-SPACE TASKS Before using the I- and D-space technique, you must establish that 1I- I- and e Make sure the D-space parameter within the configuration file e Make sure you have included the /ID switch in @ Make sure, and D-space support is available for your task. @ Make sure your processor and operating system support D-space tasks. equals 1. (See Section C.1l.1l.) (See Section C.1l.2.) command line for your programs. 1if your task wuses the task-build (See Section C.1.3.) a FORTRAN-77 OTS resident that this library's relationships to supervisor-mode library, respect arrays virtual and commons, resident libraries, restrictions. (See Section C.l.4.) [ C.1.1 I- Processor and D-space listed is supported e — — System by the - -~ Support processors and C.1l.2 Section C.1.3 1ID PDP-11/44 - PDP-11/45 - PDP-11/73 - PDP-11/50 - - PDP-11/83 PDP-11/55 for systems (version - RSX-11M-PLUS - Micro/RSX Parameter 1.1 D-space - - Operating D-Space and more V2.0 V3.0 Requirement for information about Requirement for - PDP-11/84 J-11 noted the - RSTS/E - Micro/RSTS D-space MYPROG/ID=MYPROG,LB: [1,1]F77FCS/LB (On RSTS/E command C.1.4 When of can file OTS a cases e wuse to Resident cause replace supplying an the Library OTS with command command /ID the V2.0 parameter and switch line file. on to 1In the the Task Builder LB:.) the this command library results contains or Task case, Builder, edit your line. data, run-time FORTRAN-77 OTS resident the errors environment: Using V9.0 Support resident invalid LB:[1,1] the indirect include FORTRAN-77 can D-space explicitly also in example: systems, higher): Support TKB Instead you For or Support support. Switch line. systems PDP-11/70 - All I- and D-space tasks require an /ID switch command operating Processors: ® I- Operating —_—— below: ® See and — library in following an I- and with resident any resident commons. © Using the library FORTRAN-77 that configuration OTS is not 1library data) with supported.) For more information on I- and RSX-11M/M-Plus Task Builder Handbook. resident contains a (or virtual D-space and how it Manual and the PDP-11 array. works, see (This the Architecture APPENDIX D COMPILER TASK-BUILD This appendix contains compiler RSTS/E, task-build files RSX-11M/M-PLUS, employ the pre-defined defaults. shown when users TASK-BUILD PDP-11 FORTRAN-77 COMPILER D.1 for These files are built as operating systems. VAX-to-RSX and FILES FILE FOR RSX-11M/M-PLUS (F7711M.CMD) N F77/CP/~-FP,F77/-SP=F7711M.0DL/MP R Ne Ne we Ma Ne NE N we e wa N e S PDP-11 FORTRAN-77 OF SUMMARY BUILD FILE "GEN" 24K COMPILER TASK 512 WORD 32 20 FRAMES FRAMES IN EXPRESSION ANALYZER STACK IN DO/BLOCK IF STATEMENT STACK COMMON BLOCKS, STACK RESIDENT PAGES MAXIMUM FOR WORKFILE SYSTEM INPUT =...F77 P ASK ; ; TASK SYSTEM PARAMETERS: REFERENCES PARTITION 12 OPTION COMPILER BUILD FOR PARTITION "GEN", MAPPED PARTITION MUST BE AT LEAST 22K 11M SYSTEM r =GEN PAR ~ [ Se STACK MUST THAN LESS COMPILER LOGICAL UNIT ASSIGNMENTS INPUT COMMAND OUTPUT OUTPUT M .LST OUTPUT .FTN INPUT © e S NS NS NB NA U .OBJ M W N COMMAND e WORDS 512 =1024 we F77 WORDS NEVER BE me s TACK 1024 OF ~o STACK SP 6 COMPILER WORKFILE CAN BE REASSIGNED TO (RANDOM ACCESS) SWAPPING DISK IF AVAILABLE DISK MUST AS BE MOUNTED WRITABLE FILES-11 VOLUME, BUT THE WORKFILE DOES NOT REQUIRE A UFD ON THE VOLUME. ® we wr e we W COMPILER TASK-BUILD 7 COMPILER TEMP FILES 8 DISK MUST BE MOUNTED THE TEMP FILES BUT 9 COMPILER DO MESSAGE FILES (SEQUENTIAL ACCESS) AS FILES-11 NOT TEXT WRITABLE REQUIRE A UFD ON VOLUME, THE VOLUME. FILE 1 UNITS =9 ASG =TI:1,TI:2 ASG =85Y0:6,8Y0:7,8Y0:8 [T TM% ~e w5 Ne we we Na N5 Ne W we ASG =[LB0:9 RESIDENT UNDER IF OPERATING SIZE OF OTHERWISE, THE THE WORKFILE VIRTUAL WORKFILE SUPPORTS COMPILER DYNAMIC COMPILER WILL USE IS NUMBER REDUCING PAGING I/0, SOURCE PROGRAM WHICH THE MAXIMUM F77 RESIDENT USES CONTROL NAMED DEFINED BUT IT CAN PAGES BE SECTION COMMON BELOW, "STACK1" ANALYZER DETERMINED. WILL NOT BY IN "EXTTSK". THE MAKE AFFECT PARTITION. THE THE COMPILER SIZE COMPILED. BLOCK STACKl IS FOR: STACK DURING DEFINITIONS 312(10) = 39 EXPRESSION 312/6 = 52 CONTROL SECTIONS UP CONTROL TO 7 PASS IN WORDS, 312/8 XTSCT 1 LATER PASSES PROVIDING: ANALYZER STACK SECTIONS CODE FRAMES MAY AND BE USED DATA, FOR LEAVING 45 =STACK1:1160 USES CONTROL DO AS AVAILABLE DOES COMPILER-GENERATED F77 DETERMINED MEMORY WORKFILE DYNAMICALLY ALLOCATION, =3840 EXPRESSION AS IS STORAGE ALL THE OF MEMORY MEMORY BY OF SYSTEM DYNAMIC INCREASING FASTER MEMORY RESIDENT SYSTEM RUN XTTSK [X] %% =6 %o me %o %o we “e wa w FOR RSX-11M/M-PLUS, THE THE MEMORY DEFINED SECTION STATEMENT BELOW, DOSTK1l 80/4 XTSCT "DOSTK1" NESTING = 20 IS FOR: STACK 80(10) NESTED DURING WORDS, DO/BLOCK PASS 1 PROVIDING: IF STATEMENTS s DEFINE we =DOSTKL: 240 F77 PRINTER DEFAULT WIDTH AND NUMBER OF SOURCE LINES PER we ARE: 55 SOURCE LINES NE VALUES 132 COLUMN LINE PER PAGE PRINTER (PLUS 132(10) 204(8) 3 LINES LISTING OF PAGE HEADING) we = 67(8) 80 (10) = 120(8) = ¢ 55(10) TMo NP NOTE: [4 =FORTRN:LPLINE:67 GBLPAT =FORTRN:LPWDT204 H: G) v w5 N~ GBLPAT DEFINE DEFAULT INDICATES OBJECT FILES; BLPAT DEFINE I- MODULES BLPAT THE A FILE SUPERSEDE COMPILER VALUE OF 1 SHOULD ALLOWS BEHAVIOR: NOT A VALUE SUPERSEDE OF OUTPUT 0 (DEFAULT) LISTING AND SUPERSEDING. =COMAND:SUP00:0 OBJECT AND OUTPUT THAT AND D-SPACE D-SPACE SUPPORT. OUTPUT TASKS; A BY THE VALUE =FORTRN:DSPACE:1 OF A VALUE COMPILER 0 DOES OF CAN NOT 1 BE INDICATES USED ALLOW FOR THIS. THAT BUILDING I~ COMMON BLOCKS. OF we A DESCRIPTION IS COMPILER TASK-BUILD SWITCH OPTION OF EFFECTS FILES VALUES ws e DEFINITION ME COMPILER COMPLETE IN SECTION THE 1.2 OF THE OF THE PDP-11 COMPILER FORTRAN-77 OPTION USER'S SWITCHES GUIDE. Ne SWITCH NAME SETTING VALUE TO GBLPAT e W e SWITCH ME N4 CONTAINED NE WP ws /-CK ARRAY /CO:19. NUMBER SUBSCRIPT OF BOUNDS CONTINUATION CHECKING LINES W NP /CO:N., DE /-DE /DE INCLUDE DEBUG /-14 DEFAULT INTEGER*2 /14 DEFAULT INTEGER*4 LINES /~-LA /LA = O LI /LI:0 /-TR M /TR:ALL /TR WF SOURCE MAP MAP, GENERATED | el o] SOURCE, SOURCE, R/W CODE SECTIONS R/0 CODE SECTIONS NO CODE SPOOLING SPOOLING /~WR NUMBER OF TEMPORARY FILES 12,3 NO OPTIONAL WARNINGS /WR NS N NI WR F77 /~F77 /E77 FORTRAN 66 INTERPRETATION FORTRAN 77 INTERPRETATION NS ME /ST:ALL /-DB /DB OO NO PRODUCE 72 COLUMN PER SOURCE LINE 132 COLUMN PER SOURCE LINE DEBUG INFORMATION DEBUG INFORMATION WA WE MA M WA DB W HE NE W /ST N /ST :SOURCE /ST :SYNTAX O /ST :NONE - /-ST O ST WA NE N RS NG NE /WF:2 /WF:N MO NS /TR:BLOCKS W /TR:NONE /TR:NAMES We W WS TR SWITCHES o /-SP /SP REINITIALIZE NN W OO Sp NS WE MA ME /RO NE NS WE /-RO N RO Ll ] M WA NG NS WS WE /LIz3 WS /LIl /Llz:2 w N LA O 14 NI NA WA WS WS NE NS WA /CK EX /-EX /EX W /-0P 0 NO op /OP 3 WITH CODE CODE OPTIMIZATION OPTIMIZATION THE FOLLOWING "GBLPAT" DEFINITIONS EFFECT DEFAULTS OF: /-CK/C0:19./-DB/~DE/~EX/~14/-LA/LI:2/0P/~R0O/~SP/TR:BLOCKS/WF:2/WR/F77/-ST ME Ne ME Ws e we ME W op e COMPILER TASK-BUILD FILES DEFAULT VALUES FOR SWITCH "XX'" ARE DEFINED A "GBLPAT" TO GLOBAL VARIABLE "XX000". BY ’ GBLPAT =FORTRN:LAQO0O:0 GBLPAT =COMAND:CK000:0 GBLPAT =COMAND:C0000:23 =COMAND:DE0QO0:0 GBLPAT =COMAND:14000:0 GBLPAT =COMAND:LI000:2 =COMAND :R0000:0 =COMAND:SP000:0 : TR0O00: 3 =COMAND GBLPAT GBLPAT GBLPAT 3] GBLPAT GBLPAT =COMAND :WF000: GBLPAT =COMAND:WR000:1 GBLPAT =COMAND:F7700:1 GBLPAT =COMAND:ST000:0 GBLPAT =COMAND :DB000:0 GBLPAT =COMAND:EX000:0 GBLPAT =COMAND:0P000: 3 / PDP-11 FORTRAN-77/-SP COMPILER TASK-BUILD (F77RST.CMD) e N ] e Ne NE Ne NE Ne Ns Ne NS Ne Ny Ne % SUMMARY OPTION FORTRAN-77 OF Mg Ne N we e The TASK SYSTEM PARAMETERS: REFERENCES PARTITION BUILD "GEN" 24K COMPILER TASK 512 WORD 39 20 FRAMES FRAMES IN EXPRESSION ANALYZER STACK IN DO/BLOCK IF STATEMENT STACK 45 COMMON BILOCKS, 12 RESIDENT STACK PAGES MAXIMUM FOR WORKFILE RSX~11M Emulator must BUILD FOR PARTITION "GEN", MAPPED PARTITION MUST BE AT LEAST 28K SP SYSTEM : 11M SYSTEM =GEN STACK OF STACK MUST TACK FILE =...F77 AR Ui ~e ~e = COMPILER INPUT ASK RSTS/E FOR | F77/Cp/~FP,F77/-SP=FRTRN7$:F77RST.ODL/MP PDP-11 FILE 1024 WORDS NEVER BE =1024 LESS THAN 512 WORDS COMPILER F77 ; COMPILER LOGICAL UNIT 1 COMMAND INPUT ; 2 COMMAND OUTPUT ; 3 .0BJ OUTPUT ; 4 L(LST OUTPUT ; 5 JFTN INPUT H ; 6 COMPILER CAN ; DISK ; BUT BE THE 7 COMPILER ; 8 DISK BUT BE TEMP MUST THE BE TEMP TO MOUNTED WORKFILE H ; ; WORKFILE REASSIGNED MUST FILES ASSIGNMENTS ; ; TASK-BUILD (RANDOM ACCESS) SWAPPING DISK AS DOES NOT FILES MOUNTED FILES WRITABLE IF AVAILABLE VOLUME, REQUIRE A UFD ON (SEQUENTIAL ACCESS) AS FILES-11 DO WRITABLE NOT REQUIRE A UFD THE VOLUME. VOLUME, ON THE VOLUME. ; ; 9 H UNITS =9 COMPILER MESSAGE =T1:1,TI:2 ASG =5Y0:6,5Y0:7,8Y0:8 ASG =8Y:9 [3] we me me e ~e we we w0 ASG RESIDENT FOR WORKFILE FILE VIRTUAL MEMORY SYSTEM INCREASING THE NUMBER RUN BY REDUCING PAGING I/0O, BUT IT DOES SOURCE PROGRAM THAT CAN BE COMPILED. OF FASTER THE MAXIMUM XTTSK ; MEMORY TEXT F77 OF RESIDENT WORKFILE PAGES WILL NOT MAKE AFFECT THE THE COMPILER SIZE =3840 USES CONTROL SECTION ; EXPRESSION ; NAMED "STACK1l" ANALYZER COMMON BLOCK FOR: STACK DURING DEFINITIONS PASS IN 1 LATER PASSES ; i AS DEFINED BELOW, STACKl IS 312(10) ; 312/8 = 39 EXPRESSION ; 312/6 = 52 CONTROL UP TO 7 ; ; [X] ¢ ~e Ns we e w0 ; EXTSCT F77 USES CONTROL DEFINED SECTION STATEMENT BELOW, 80/4 XTSCT SECTIONS CODE AND MAY DATA, BE USED LEAVING FOR 45 COMMON BLOCKS. DOSTKl = 20 "DOSTK1l" NESTING IS FOR: STACK 80(10) NESTED DURING WORDS, DO/BLOCK IF PASS 1 PROVIDING: STATEMENTS N DEFINE W =DOSTK1:240 F77 PRINTER e s DEFAULT WIDTH VALUES AND NUMBER OF SOURCE LINES ARE: 55 SOURCE LINES 132 COLUMN LINE PER PAGE PRINTER (PLUS 132(10) 204(8) 55(10) = 67(8) 80 (10) = 120(8) B MY NOTE: N Ne FRAMES =STACK1:11690 DO AS PROVIDING: STACK SECTIONS CONTROL COMPILER-GENERATED WORDS, ANALYZER [4 GBLPAT =FORTRN:LPLINE:67 GBLPAT =FORTRN:LPWDTH:204 = 3 LINES PER LISTING OF HEADING) PAGE COMPILER TASK-BUILD FILES DEFAULT OUTPUT FILE SUPERSEDE BEHAVIOR: A VALUE OF 0 (DEFAULT) INDICATES THAT THE COMPILER SHOULD NOT SUPERSEDE OUTPUT LISTING AND OBJECT FILES; A VALUE OF 1 ALLOWS SUPERSEDING. NOTE: ~e WE We wa Na W DEFINE ; THE RSTS/E OPERATING 7 [a LI TEE T Y GBLPAT SYSTEM ALWAYS FILES. =COMAND :SUP00:0 DEFINE I- AND D-SPACE SUPPORT. A VALUE OF 1 INDICATES THAT OBJECT MODULES OUTPUT BY THE COMPILER CAN BE USED FOR BUILDING AND D-SPACE TASKS; A VALUE OF 0 DOES NOT ALLOW THIS. I- DEFINITION OF we =FORTRN:DSPACE:1l A COMPLETE DESCRIPTION WS BLPAT IS CONTAINED IN SECTION COMPILER SWITCH OPTION VALUES OF EFFECTS W we SUPERSEDES THE OF THE COMPILER FORTRAN-77 OPTION SWITCHES USER'S GUIDE. Ne SWITCH NAME SETTING VALUE TO GBLPAT CK /~-CK 0 /CK 1 ARRAY CO /C0:19, /CO:N. 23 N NUMBER DE /~DE 0 /DE 1 INCLUDE DEBUG I4 /-14 /14 0 1 DEFAULT DEFAULT INTEGER*2 INTEGER*4 LA /=LA 0 REINITIALIZE e SWITCH NS N 1.2 OF THE PDP-11 ; ; ; H ; ; ; ; ; ; ; ; H ; H /LA 1 SUBSCRIPT OF BOUNDS CHECKING CONTINUATION LINES LINES SWITCHES ; ; /LI:0 0 ; /LIz] 1 SOURCE H /LIz2 2 SOURCE, MAP ; /LI:3 3 SOURCE, MAP, RO /~RO /RO 0 1 R/W CODE R/0 CODE SP /=-SP 0 NO SPOOLING /SP 1 SPOOLING 7 ; ; H ; LI ; ; ; /=-TR 0 ; /TR:NONE 0 ; /TR:NAMES 1 ; H /TR:BLOCKS /TR:ALL 3 7 ; /TR 7 JWE:2 2 /WF:N 1,2,3 /~WR /WR 0 1 H ; TR WFE H H ; ; ; WR NUMBER NO OF GENERATED CODE SECTIONS SECTIONS TEMPORARY OPTIONAL WARNINGS FILES COMPILER wE = O /-F77 F77 /FT7 FILES FORTRAN 66 INTERPRETATION FORTRAN 77 INTERPRETATION NI N TASK-BUILD We NI N /ST :NONE /ST : SOURCE wWhoN-OO /-ST ST WS /ST:SYNTAX /-DB DB WE = O N4 WE WE /ST /ST:ALL NO DEBUG PRODUCE INFORMATION DEBUG INFORMATION WA ME /DB /-EX 72 /EX 132 COLUMN PER COLUMN SOURCE PER LINE SOURCE LINE WS M wE EX /-OP NO /OP WITH CODE OPTIMIZATION CODE OPTIMIZATION We N M WA op FOLLOWING "GBLPAT" DEFINITIONS EFFECT DEFAULTS OF: e NE THE ME DEFAULT We NP N /-CK/C0:19./-DB/-DE/~EX/-14/-LA/L1:2/0P/~R0O/~-SP/TR:BLOCKS/WF:2/WR/F77/-ST BY A VALUES "GBLPAT" FOR TO ARE SWITCH GLOBAL GBLPAT =FORTRN:LA0C00:0 GBLPAT GBLPAT =COMAND:CKO0060:0 =COMAND:C0O000:23 GBLPAT =COMAND:DE(00O0:0 GBLPAT GBLPAT =COMAND:14000:0 =COMAND:LI00O:2 GBLPAT =COMAND:R0O000:0 GBLPAT GBLPAT GBLPAT GBLPAT GBLPAT =COMAND:SP000:0 =COMAND:TR000:3 =COMAND:WF000:2 =COMAND:WR000:1 =COMAND:F7700:1 GBLPAT =COMAND:ST000:0 GBLPAT =COMAND:DB000:0 GBLPAT =COMAND:EX000:0 GBLPAT =COMAND:0P00O:3 DEFINED "XX000". VARIABLE // PDP-11 COMPILER FORTRAN-77 TASK~-BUILD (F77VAX.CMD) 3 NS Ne NE N e NI NS M e e e Ne N e e F77/CP/~-FP=F77VAX.ODL/MP PDP-11 FORTRAN-77 SUMMARY OF SYSTEM REFERENCES OPTION ASK COMPILER FILE PARAMETERS: COMPILER 512 WORD 39 20 FRAMES FRAMES IN IN 45 COMMON BLOCKS, 6 RESIDENT =...F77 BUILD PARTITION 22K INPUT TASK TASK STACK EXPRESSION ANALYZER STACK DO/BLOCK IF STATEMENT STACK PAGES FOR WORKFILE SYSTEM FILE FOR VAX~TO-RSX I ~e e we COMPILER BUILD FOR AR MUST BE "GEN", AT MAPPED LEAST 11M FILES SYSTEM 20K =GEN ; SP ; STACK STACK OF MUST STACK 1024 WORDS NEVER BE LESS THAN 512 WORDS =1024 F77 ! PARTITION PARTITION TASK-BUILD COMPILER ; LOGICAL UNIT ASSIGNMENTS 1 COMMAND INPUT ; 2 COMMAND OUTPUT ; 3 .0BJ OUTPUT ; 4 .LST OUTPUT ; 5 .FTN INPUT 6 COMPILER I : ; CAN ; DISK ; BUT BE WORKFILE REASSIGNED MUST THE BE TO MOUNTED WORKFILE (RANDOM ACCESS) SWAPPING DISK AS DOES WRITABLE NOT IF AVAILABLE FILES-11 REQUIRE A UFD VOLUME, ON THE VOLUME. 14 ; 7 COMPILER ; 8 DISK BUT ; TEMP FILES BE MOUNTED MUST THE TEMP FILES (SEQUENTIAL ACCESS) AS FILES-11 DO WRITABLE NOT REQUIRE A UFD VOLUME, ON THE VOLUME. ; 9 ; COMPILER MESSAGE TEXT FILE ; UONITS =9 ASG =TI:¢1,TI:2 ASG =WKO:6,WK0:7,WK0:8 ASG =LB0:9 GBLPAT =COMAND:MSG6WD: 0 RESIDENT UNDER IF THE THE MEMORY RSX-11M, OF THE THE SYSTEM COMPILER COMPILER VIRTUAL SYSTEM RESIDENT MEMORY SUPPORTS DYNAMIC MEMORY STORAGE IS DYNAMIC WILL USE ALL IS DYNAMICALLY DETERMINED MEMORY AVAILABLE THE NUMBER BY REDUCING PAGING 1/0, BUT IT DOES SOURCE PROGRAM THAT CAN BE COMPILED. FASTER THE MAXIMUM F77 RESIDENT WORKFILE USES CONTROL SECTION EXPRESSION ; NAMED DEFINED 312/8 ; 312/6 BLOCK STACKl = "STACKL" ANALYZER COMMON BELOW, ; IS 312(10) 39 EXPRESSION 52 CONTROL TO 7 ; COMPILER~GENERATED MAKE AFFECT PARTITION., THE THE COMPILER SIZE 1 LATER WORDS, PASSES PROVIDING: STACK FRAMES SECTIONS CONTROL SECTIONS CODE MAY AND BE USED DATA, CONTROL DO DEFINED SECTION STATEMENT BELOW, 80/4 "DOSTK1" NESTING DOSTK1l IS = 20 =DOSTK1:240 NESTED FOR: STACK 80(10) DURING WORDS, DO/BLOCK IF PASS FOR LEAVING =STACK1:1160 USES XTSCT PASS IN ANALYZER = ; EXTSCT DURING DEFINITIONS UP AS WILL NOT "EXTTSK", THE FOR: STACK ; F77 PAGES BY IN =2048 ; AS OF DETERMINED. ALLOCATION, RUN XTTSK [T} e ~e o w5 we w MEMORY INCREASING OF 7 i WORKFILE WORKFILE OPERATING SIZE OTHERWISE, ; FOR 1 PROVIDING: STATEMENTS 45 COMMON BLOCKS. we DEFINE ws COMPILER F77 PRINTER WIDTH AND NUMBER 55 BSOURCE LINES 132 COLUMN LINE PER me We e =FORTRN:LPLINE:67 GBLPAT =FORTRN:LPWDTH:204 [ R TIR VIR T 7 GBLPAT PER LISTING PAGE (PLUS 3 OF HEADING) LINES 67(8) 120(8) 132(10) = PAGE 204(8) DEFINE DEFAULT OUTPUT FILE SUPERSEDE BEHAVIOR: A VALUE OF 0 INDICATES OBJECT THAT THE A FILES; COMPILER VALUE OF 1 SHOULD ALLOWS NOT SUPERSEDE OUTPUT (DEFAULT) LISTING AND SUPERSEDING. =COMAND:SU P00:0 BLPAT DEFINE I- I OBJECT MODULES I AND - LINES NOTE: 55(10) [4 SQURCE PRINTER 80 (10) - OF FILES ARE: we VALUES we DEFAULT TASK-BUILD AND D-SPACE D-SPACE SUPPORT: OUTPUT TASKS; A BY THE VALUE A VALUE COMPILER OF 0 DOES OF 1 CAN BE NOT INDICATES USED ALLOW THAT - FOR BUILDING I- THIS. - ’ OF A DESCRIPTION IS COMPILER SWITCH OPTION VALUES OF EFFECTS N W DEFINITION wmE =FORTRAN:DSPACE:1 Me G BLPAT COMPLETE IN SECTION THE 1.2 OF THE OF THE PDP-11 COMPILER FORTRAN-77 OPTION USER'S SWITCHES GUIDE. M SWITCH NAME SETTING VALUE TO GBLPAT we /=~CK 0 ey /CK 1 ARRAY /C0:19, 23 NUMBER OF /CO:N. N (OCTAL VALUE} /~DE 0 /DE 1 INCLUDE DEBUG /-14 0 DEFAULT INTEGER*2 /14 1 DEFAULT INTEGER*4 /~LA 0 REINITIALIZE /LA 1 /LI:0 0 ME /LIz1 1 Ne /LI:2 2 SOURCE, MAP NE /LI:3 3 SOURCE, MAP, /=RO 0 R/W CODE SECTIONS /RO 1 R/0 CODE SECTIONS /-SP 0 NO /SP 1 SPOOLING /-TR 0 NS /TR :NONE 0 WA /TR:NAMES 1 MR /TR:BLOCKS 3 MG /TR:ALL 7 ME wE NE SWITCH NS Ne CONTAINED /TR 7 BOUNDS CHECKING Cco CONTINUATION LINES DE LINES 14 La SWITCHES LI SOURCE GENERATED RO Sp NE NE ME MO M ME WE NE NI Me M WS NI WE NS M M NE ME s NS me N SUBSCRIPT TR SPOOLING CODE TASK-BUILD FILES NUMBER TEMPORARY /WE:2 WE OF FILES /JWF:N /-WR WR NO OPTIONAL WARNINGS /WR F77 O /=F77 /EF77 FORTRAN 66 INTERPRETATION FORTRAN 77 INTERPRETATION WA NE W /ST:ALL o NO = /DB PRODUCE O /-DB DB 72 DEBUG INFORMATION DEBUG INFORMATION /-EX EX /EX COLUMN 132 PER COLUMN PER SOURCE LINE SOURCE LINE op /~OP NO /OP WITH CODE OPTIMIZATION CODE OPTIMIZATION THE FOLLOWING "GBLPAT" DEFINITIONS EFFECT DEFAULTS OF: /~-CK/C0:19./-DB/-DE/~-EX/~14/~-LA/LI1:2/0P/-RO/~-SP/TR:BLOCKS/WF:2/WR/F77/~ST DEFAULT ; BY S NG ME M WA M N N NI WA MO WS WA NG NS WA WS /ST WE /ST : SOURCE /ST:SYNTAX WNNHFHOO /=87 /ST :NONE ST WA WE N4 NI we me e wa NI we W COMPILER A GBLPAT VALUES "GBLPAT" FOR TO SWITCH GLOBAL =FORTRN:LAOQQO:0 GBLPAT =COMAND:CK000:0 GBLPAT =COMAND:C0000:23 GBLPAT =COMAND:DEQ0O:0 GBLPAT =COMAND:14000:0 GBLPAT =COMAND:LI000:2 GBLPAT =COMAND:RO000:0 GBLPAT =COMAND:SP000:0 GBLPAT =COMAND : TR000:3 GBLPAT =COMAND:WFO000:2 GBLPAT =COMAND:WRO000:1 GBLPAT =COMAND:F7700:1 GBLPAT =COMAND:ST000:0 GBLPAT. =COMAND:DB000:0 GBLPAT =COMAND:EX000:0 GBLPAT =COMAND:0P000:3 / |IXX n ARE VARIABLE DEFINED "XXo000". INDEX Active See Page specifying, APR (Active Page function, B-1 APR usage Dynamic and D-space coding, B-1 and D-space conflicts, B-2 RSTS response, B-2 RSX response, B-2 Assembly option See F77CVF OTS option See F77EIS OTS option effect effect 2-1, on 1/0 operations, 2-1 without dynamic memory allocation, 2-4 1-3 DATA subprogram statements allowed, EIS instruction set option See F77EIS OTS option 1-3 Carriage control format USEROPEN to check, 1-3 ERTXT description, 2-5 resident library and, CARRIAGECONTROL restriction, 1-3 specifying attributes, 3-3 EXTKS memory-resident 1-3 overlays, 1-4 EXTTSK array value, increasing declarator 2-4 A-2 rules, A-2 F7711S definition, A-1 error message, A-4 rules, Character OTS option description, 2-6 F77EIS and, 1-4, declarator use, A-1 rules, A-1 message, A-4 use, Cluster library See also FCS also resident use, 2-6 F77NER OTS option description, 2-7 F77118 and, 2-7 library RMS F77NIO building with FCSRES, 3-9 use, with RMSRES, 3-7 FP77NIO description, 3-2 I- and D-space coding, B-2 limitations, 3-2 optimal use virtual memory, support, 2-6 2-6 F77MAP OTS option description, 2-5 A-3 See also OTS 2-7 2-7 F77EIS OTS option description, 2-6 F77CVF and, 1-4, A-1 reference form, A-3 rules, 2-5 2-7 F77CVF A-4 definition, option F77NER and, use, 2-5 string form, OTS description, reference form, A-3 See speed, 2-3 increasing with dynamic memory allocation, 2-4 BLOCK form, area on compiler 2-2, ASSOCIATEVARIABLE Character storage See also Work file computing size, 2-4 definition, 2-1 bit map restriction, 1-2 Register) II- error constant Complex Register APR F77NER 3-5 RSTS/E, RSX-11M/M-PLUS, VAX-to-RSX, D-7 D-4 to and, 2-7 F77RAN OTS option description, 2-8 FCS (File Control Services) Compile-time performance See also Dynamic storage area See also Work file Compiler Task-Build file for for 2-7 OTS option description, 2-7 3-2 for and, 2-7 FCSFSL See also Cluster library See also Noncluster library error checking, 1-2 function, D-7 D-1 to D-4 to D-11 3-1 FCS11M OTS option description, 2-8 Index-1 INDEX FCSFSL OTS File OTS resident Control See SFIO library, 3-1 Services FCS OTS format format read Global See or patch also write, and 1-3 See also Noncluster conversion See also PAR option See also and vectored, C-2 PAR OTS resident array C-1 library Global See in, patch APR also value, See Management ID switch, B-1 virtual arrays in, C-1 I- and in I- switch See also I- See also switch and definition, specifying, support, D-space RMS (Record See also Noncluster See also Supervisor-mode library checking, function, 3-1 error arguments and, RMS11M check, OTS Manual See 1-2 OTS option ERTXT description, library also FCS OTS See also RMS (sort="I ")I- resident library and and 3-3 also resident FCSFSL library, 3-1 3-2 Switch See also ID switch specifying, System See Work 1l-1 disk file file OTS statement Language errors OTS and, space D-space See support, 3-2 restriction, OTS D OTS Temporary See 2-5 library virtual arrays in, B-1l Supervisor-mode library building with FCS, 3-6 with FCSFSL, 3-7 description, 3-1 limitations, 3-1 Time 1-2 2-8 also resident also library 1-2 omissions, See library option description, SHORT Reference See Services) 1-1 variable support, Management C-1 1-2 Noncluster B-2 B-l Cluster PRECISION and coding, D-space, also 1-2 overflow D-space and library 3-1 See function Integer*4 OPEN Services library also OTS resident See description, Object library RMS C-2 errors resident C-1, C-1, Language Page Resident also DOUBLE 3-5 3-5 B-1, IFIX memory, (Active OTS support, ID 3-6 3-3 specifying, B-1 See also Record also to Register) C-2 See 3-3 option D-space See also Virtual definition, B-1, library limitations, 3-1 optimal use virtual See I- library Supervisor-mode library building options, 1-3 D-space modifying, 1-2 specifying, C-1, library Cluster value I- resident point 2-8 also See F77CVF OTS option [FMT=]* format specifier for floating See processing, Floating-point option (Cont.) processor, reference for option requiring and User's 1-3 Guide and errors Reference Manual omissions, 1-3 Virtual option See also specific options reference list, 2-8 replacing standard modules, See 2-8 Index-2 1-1 array also error omissions, I- and messages, D-space 1-2 initialization, 1-4 size limitation, 1-2 to B-2 INDEX Work See file Work also Dynamic definition, effect on storage area 2-1 compiler file effect (Cont.) on compiler speed, 2-3 space, 2-1 increasing Index-3 number of, 2-1 2-1,
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies