Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

IDENTIFICATION_DIVISION

ENVIRONMENT_DIVISION

DATA_DIVISION

PROCEDURE_DIVISION

release notes

miscellaneous topics

COPY statement

REPLACE statement

Errors

Parameters

Qualifiers

literals

meta-language

program components

source reference format

special registers

figurative constants

hexadecimal literals

nonnumeric literals

numeric literals

floating point literals

braces

brackets

choice indicators

ellipsis

lowercase words

special-character words

uppercase words

clause

contained program

division

end of program

paragraph

phrase

program organization

section

sentence

separators

source-program

statement

word

ANSI format

terminal format

1_DB-CONDITION

2_DB-CURRENT-RECORD-ID

3_DB-CURRENT-RECORD-NAME

4_DB-KEY

5_DB-UWA

6_LINAGE-COUNTER

7_LINE-COUNTER

8_PAGE-COUNTER

9_RMS-CURRENT-FILENAME

10_RMS-CURRENT-STS

11_RMS-CURRENT-STV

12_RMS-FILENAME

13_RMS-STS

14_RMS-STV

PROGRAM-ID

AUTHOR

program-name

id-str

comment-entry

SOURCE-COMPUTER

OBJECT-COMPUTER

SPECIAL-NAMES

FILE-CONTROL

I-O-CONTROL

computer-type

computer-type

alphabet-name

segment-number

device-name

switch-num

switch-name

cond-name

alphabet-name

first-literal

last-literal

lit

symbolic-char

char-val

class-name

char

1format sequential

2format relative

3format indexed

4format sort-merge

5format report

clauses

ASSIGN

BLOCK_CONTAINS

CODE-SET

ORGANIZATION

PADDING_CHARACTER

RECORD_DELIMITER

RESERVE

file-spec

smallest-block

blocksize

alphabet-name

pad-char

reserve-num

extend-amt

preall-amt

window-ptrs

file-name

same-area-file

rf report-file-description-entry

FD file-description-entry

SD sort-merge-file-description-entry

DB subschema-entry

RD report-description-entry

LD keeplist-entry

dd record-description-entry

clauses

rg report-group-description-entry

miscellaneous topics

sequential FD

relative FD

indexed FD

report FD

subschema-name

schema-name

database-name

stream-name

keeplist-name

integer

1format

2format 66

3format 88

ACCESS_MODE

ALTERNATE_RECORD_KEY

BLANK_WHEN_ZERO

CODE

COLUMN_NUMBER

CONTROL

DATA_RECORDS

EXTERNAL

FILE_STATUS

GLOBAL

GROUP_INDICATE

JUSTIFIED

LABEL_RECORDS

LINAGE

LINE_NUMBER

NEXT_GROUP

OCCURS

PAGE

PICTURE

RECORD

RECORD_KEY

REDEFINES

RENAMES

REPORT

SIGN

SOURCE

SUM

SYNCHRONIZED

TYPE

USAGE

VALUE_IS

VALUE_OF_ID

Data-Name

Level-Number

1format sequential

2format relative

3format indexed

rel-key

alt-key

report-code

column-num

control-name

rec-name

file-stat

page-lines

footing-line

top-lines

bottom-lines

line-num

line-num-plus

next-group-line-num

next-group-line-num-plus

1format table-size

2format DEPENDING

table-size

key-name

ind-name

min-times

max-times

key-name

ind-name

depending-item

page-size

heading-line

first-detail-line

last-detail-line

footing-line

PICTURE symbols

1format CONTAINS

2format VARYING

shortest-rec

longest-rec

shortest-rec

longest-rec

depending-item

rec-key

other-data-item

new-name

rename-start

rename-end

1format Data Description

2format Report Group Description

source-id

sum-name

detail-report-group-name

control-foot-name

control-head-name

control-foot-name

1format lit

2format THROUGH

3format REFERENCE

4format EXTERNAL

lit

low-val

high-val

data-name

external-name

data-name

numeric-integer-lit

external-name

file-spec

1format 01

2format

3format PIC

data division entries

record alignment boundaries

ACCEPT

ADD

ALTER

CALL

CANCEL

CLOSE

COMMIT

COMPUTE

CONNECT

CONTINUE

DELETE

DISCONNECT

DISPLAY

DIVIDE

ERASE

EVALUATE

EXIT

FETCH

FIND

FREE

GENERATE

GET

GO_TO

IF

INITIALIZE

INITIATE

INSPECT

KEEP

MERGE

MODIFY

MOVE

MULTIPLY

OPEN

PERFORM

READ

READY

RECONNECT

RECORD

RELEASE

RETURN

REWRITE

ROLLBACK

SEARCH

SET

SORT

START

STOP

STORE

STRING

SUBTRACT

SUPPRESS

TERMINATE

UNLOCK

UNSTRING

USE

WRITE

1format declaratives

2format

miscellaneous topics

arithmetic-expressions

conditional expressions

database key identifiers

declaratives

I-O status

identifiers

functions

indexing

phrases

qualification

record selection expressions

reference modification

segmentation

subscripting

abbreviated

class

combined and negated combined

condition-name

database key condition

member database condition

negated simple

relation

sign

success-failure

switch-status

tenancy database condition

class-name

AT_END

AT_END-OF-PAGE

CORRESPONDING

FROM

INTO

INVALID_KEY

NOT_AT_END

NOT_AT_END-OF-PAGE

NOT_INVALID_KEY

NOT_ON_EXCEPTION

NOT_ON_OVERFLOW

NOT_ON_SIZE_ERROR

ON_EXCEPTION

ON_OVERFLOW

ON_SIZE_ERROR

RETAINING

ROUNDED

NOT ON ERROR database

ON ERROR database

1format file

2format paragraph

3format text

4format LINAGE

5format PAGE LINE

6format report

7format RMS

1format database key identifier access

2format set owner access

3format record search access

4format database key access

database-key-identifier

set-name

int-exp

realm-name

record-name

set-name

rec-key

bool-expres

bool-alt

simp-bool-rel

bool-condit

section-name

segment-number

fixed segments

independent segments

1format FROM input

2format FROM

3format screen extensions

4format screen extensions CONTROL KEY

dest-item

input-source

stment

dest-item

dest-item

line-num

line-id

column-num

column-id

plus-num

prot-size-lit

prot-size-item

prot-fill-lit

def-src-lit

def-src-item

key-dest-item

stment

line-num

line-id

column-num

column-id

plus-num

key-dest-item

stment

1format TO

2format GIVING

3format CORRESPONDING

num

rsult

stment

num

rsult

stment

grp

stment

proc

new-proc

prog-name

arg

function-res

stment

prog-name

file-name

stment

rsult

stment

record-name

set-name

stment

file-name

stment

record-name

set-name

stment

1format statement

2format screen extensions

src-item

output-dest

src-item

output-dest

line-num

line-id

column-num

column-id

plus-num

1format INTO

2format INTO GIVING

3format BY GIVING

4format INTO with REMAINDER

5format BY with REMAINDER

srcnum

rsult

stment

srcnum

rsult

stment

srcnum

rsult

stment

srcnum

rsult

remaind

stment

srcnum

rsult

remaind

stment

record-name

stment

subj-item

cond

obj-item

stment

1statement

2statement PROGRAM

database-record

set-name

stment

1format

2format ALL

database-record

set-name

stment

keeplist-name

record-name

realm-name

set-name

rec-key

bool-exp

stment

record-name

set-name

realm-name

integer-exp

keeplist-name

stment

report-item

record-name

record-item

stment

1format

2format DEPENDING

proc-name

proc-name

num

stment

fld-name

val

report-name

1format TALLYING

2format REPLACING

3format TALLYING REPLACING

4format CONVERTING

src-string

tally-ctr

compare-val

delim-val

src-string

compare-val

delim-val

replace-char

replace-val

src-string

tally-ctr

compare-val

delim-val

replace-char

replace-val

src-string

delim-val

compare-chars

convert-chars

record-name

set-name

realm-name

integer-exp

keeplist-name

destination-keeplist

stment

mergefile

mergekey

alpha

infile

first-proc

end-proc

outfile

record-name

record-item

set-name

stment

1format

2format CORRESPONDING

src-item

lit

dest-item

src-item

dest-item

1format

2format GIVING

srcnum

rsult

stment

srcnum

rsult

stment

1format sequential relative indexed

2format report writer

file-name

file-name

1format

2format repeat-count

3format UNTIL

4format VARYING

first-proc

end-proc

stment

first-proc

end-proc

stment

repeat-count

first-proc

end-proc

stment

cond

first-proc

end-proc

stment

cond

var

init

increm

1format sequential

2format random dynamic

file-name

dest-item

stment

file-name

dest-item

key-name

stment

realm-name

stment

record-name

set-name

stment

pathname

rel-type

rec

src-area

smrg-file

dest-area

stment

rec-name

src-item

stment

stment

1format serial

2format binary

src-table

pointr

cond

stment

src-table

stment

elemnt

arg

cond-name

1format TO

2format UP DOWN

3format cond-name

4format switch-name

5format REFERENCE

6format SUCCESS FAILURE

rsult

val

indx

increm

cond-name

switch-name

pointer-id

identifier

status-code-id

sortfile

sortkey

alpha

first-proc

infile

end-proc

outfile

file-name

key-data

stment

disp

record-name

realm-name

set-name

stment

src-string

delim

dest-string

pointr

stment

1format FROM

2format GIVING

3format CORRESPONDING

num

rsult

stment

num

rsult

stment

grp

stment

report-name

file-name

src-string

delim

dest-string

delim-dest

countr

pointr

tally-ctr

stment

1format AFTER EXCEPTION

2format BEFORE REPORTING

3format DB-EXCEPTION

file-name

group-data-name

DBM$ exception-condition

1format sequential

2format relative indexed

rec-name

src-item

advance-num

top-name

chan-num

stment

rec-name

src-item

stment

1format text-name

2format record-name

text-name

library-name

1  pseudo-text-1  identifier-1  literal-1  word-1

2  pseudo-text-2  identifier-2  literal-2  word-2

record-name

1  pseudo-text-1  identifier-1  literal-1  word-1

2  pseudo-text-2  identifier-2  literal-2  word-2

1format pseudo-text-name

2format OFF

pseudo-text-1

pseudo-text-2

ANNUITYBOUNDS

CALFAI

CANFAIL

CHARBOUNDS

DATEINTBOUNDS

DAYINTBOUNDS

DELINCOPE

DELNO_R_S

DELUNOFIL

DEVNOTAPL

DIVBY_ZER

EOFON_ACC

ERRDURACC

ERRDURDIS

ERRDURPOS

ERRDURSOR

ERRON_FIL

EXPDBOVER

FACTBOUNDS

FAIGET_EF

FAIGET_VM

FATINTERR

FILALRCLO

FILALRLOC

FILALROPE

FILCLOLOC

FILNOTFOU

GOTO_ALT

INTDATEBOUNDS

INTDAYBOUNDS

INDEFVAL

INTDIVZER

INTEXPOVE

INTEXPUND

INTRESOPE

INVARG

INVBLKFAC

INVDECDAT

INVDECDIG

INVLINVAL

INVRECSIZ

KEYNOTMAT

LOWERLENZERO

LSTHNDLDB

LSTHNDUSE

MODBOUNDS

NESERRPER

NO_SPACE

NUMVALARGINV

OCCDEPOVE

ORGNOTMAT

PRESVALBOUNDS

RANDOMBOUNDS

REAINCOPE

REAMP_D_R

REARECTOB

REASMAMIN

REAUNOFIL

RECACTPER

RECACTUSE

RECLOCDEL

RECLOCREA

RECLOCREW

RECLOCSTA

RECLOCWRI

REMBOUNDS

REVERSELENZERO

REWINCOPE

REWNO_R_S

REWSMAMIN

REWUNOFIL

STAINCOP

STAUNOFIL

SUBOVELON

TIMOVELON

UNDEF_EXP

UNEINSCON

UNLNO_CUR

UNLUNOFIL

UPPERLENZERO

WRIBEYBOU

WRIINCOPE

WRINOTASC

WRIRECTOB

WRISMAMIN

WRIUNOFIL

/ANALYSIS_DATA

/ANSI_FORMAT

/AUDIT

/CHECK

/CONDITIONALS

/COPY_LIST

/CROSS_REFERENCE

/DEBUG

/DEPENDENCY_DATA

/DESIGN

/DIAGNOSTICS

/FIPS

/FLAGGER

/INSTRUCTION_SET

/LIST

/MACHINE_CODE

/MAP

/OBJECT

/SEQUENCE_CHECK

/STANDARD

/TRUNCATE

/WARNINGS

COBOL COBOL — VMS COBOL_5.0

 Invokes the VAX COBOL compiler to compile a COBOL source program.  See the
 VAX COBOL User's Manual and VAX COBOL Reference Manual for
 additional information.

 Format -

  COBOL [/command-qualifier]... {file-spec [/file-qualifier]... }...

Additional information available:

IDENTIFICATION_DIVISIONENVIRONMENT_DIVISIONDATA_DIVISION
PROCEDURE_DIVISION

release notesmiscellaneous topicsCOPY statementREPLACE statement
ErrorsParametersQualifiers

release notes

 The release notes for the latest installed version of VAX COBOL are
 located in SYS$HELP:COBOLvvv.RELEASE_NOTES.

 (Where vvv = the installed version number)

 These release notes contain information regarding restrictions,
 restrictions removed, version-to-version incompatibilities, known problems,
 problems corrected, and functional enhancements for VAX COBOL.

miscellaneous topics

Additional information available:

literalsmeta-languageprogram componentssource reference format
special registers

literals

 A literal is a character-string whose value is specified by:

   1)  the ordered set of characters it contains, or
   2)  a reserved word that is a figurative constant.

 Every literal belongs to one of two types: numeric or nonnumeric.

Additional information available:

figurative constantshexadecimal literalsnonnumeric literalsnumeric literals
floating point literals

figurative constants

 Figurative constants name and refer to specific constant values
 generated by the compiler.  The singular and plural forms of figurative
 constants are equivalent and interchangeable.  The figurative constants
 supported by VAX COBOL are ZERO, ZEROS, ZEROES, SPACE, SPACES,
 HIGH-VALUE, HIGH-VALUES, LOW-VALUE, LOW-VALUES, QUOTE, QUOTES, ALL
 literal, and symbolic-character.

hexadecimal literals

 A hexadecimal literal (a DIGITAL extension to nonnumeric literals) is
 a character string of 2 to 256 hexadecimal digits.  It is delimited on
 the left by the separator 'X' (or 'x') immediately followed by a
 quotation mark (") or apostrophe ('); on the right it is delimited by a
 matching quotation mark or apostrophe.  The character string consists
 only of pairs of hexadecimal digits representing a value ranging from
 00 to FF; hence, only the characters '0' through '9', 'A' through 'F',
 and 'a' through 'f' are valid.

 The value of a hexadecimal literal is the composite value of the paired
 hexadecimal representations.  The compiler truncates hexadecimal
 literals to a maximum of 128 hexadecimal representations (pairs of
 hexadecimal digits).

 A hexadecimal literal can be used interchangeably wherever a nonnumeric
 literal can appear in VAX COBOL syntax.  (Note that hexadecimal
 literals cannot be used as operands in arithmetic statements.)

nonnumeric literals

 A nonnumeric literal is a character-string of 0 to 256 characters.  It
 is delimited on both ends by quotation marks (") or apostrophes (').  A
 nonnumeric literal delimited by apostrophes is treated in the same
 manner as a nonnumeric literal delimited by quotation marks.

 The value of a nonnumeric literal is the value of the characters in the
 character-string.  It does not include the quotation marks (or
 apostrophes) that delimit the character-string.  All other punctuation
 characters in the nonnumeric literal are part of its value.

 The compiler truncates nonnumeric literals to a maximum of 256
 characters.

numeric literals

 A numeric literal is a character-string of 1 to 20 characters selected
 from the digits 0 through 9, the plus sign, the minus sign, and the
 decimal point.

 The value of a numeric literal is the algebraic quantity represented by
 the characters in the literal.  Its size equals the number of digits in
 the character-string.

floating point literals

 A floating point literal is a character-string whose value is specified
 by 4 to 24 characters selected from the digits 0 to 9, the plus sign,
 the minus sign, the decimal point and the letter E (upper or lower
 case).

 The value of a floating point literal is the algebraic quantity
 represented by the characters in the literal that precede the "E"
 multiplied by ten raised to the power of the algebraic quantity
 represented by the characters in the literal following the "E".

meta-language

 The COBOL meta-language describes COBOL syntax.  Meta-language elements
 appear in formats, but they are not part of a source program.

Additional information available:

bracesbracketschoice indicatorsellipsislowercase words
special-character wordsuppercase words

braces

 Braces ({}) indicate that you must select one (but no more than one) of
 the enclosed entries.  If one of the entries contains only reserved
 words that are not key words, that entry is the default option when no
 other entry is selected.

brackets

 Brackets ([]) enclose an optional part of a general format.  When they
 enclose vertically stacked entries, brackets indicate that you can
 select one (but no more than one) of the enclosed entries.

choice indicators

 If choice indicators, {| |}, enclose part of a general format, you must
 select one or more of the enclosed entries (in any order).  However, no
 entry can be used more than once.

ellipsis

 In general formats, the ellipsis (...) allows repetition of a part of
 the format.

 To determine which part of the format can be repeated:

   1)  Find the ellipsis.
   2)  Scanning to the left, find the first right delimiter, either ]
       or }.
   3)  Continuing to the left, find its logically matching left
       delimiter, either [ or {.

 The ellipsis applies to the part of the format between the matched pair
 of delimiters.

lowercase words

 Lowercase words are generic terms.  They indicate entries the
 programmer must provide.  Lowercase words can represent COBOL words,
 literals, PICTURE character-strings, comment-entries, function
 arguments,  or complete
 syntactical entries.

special-character words

 The following special-character words are not underlined in general
 formats but are required where they appear:

     colon      (:)            single (=) and double (==) equal signs

     period     (.)            left (() or right ()) parenthesis

     plus sign  (+)            left (<) or right (>) angle bracket

     minus sign (-)            single (*) and double (**) asterisk

     slash      (/)

uppercase words

 Underlined uppercase words are key words.  A key word is required and
 must be spelled correctly when it is included in the source program.

 Uppercase words not underlined are optional.  They serve only to
 improve the source program's readability.

program components

 A COBOL program is made up of a number of different components.  These
 are listed alphabetically.

Additional information available:

clausecontained programdivisionend of programparagraph
phraseprogram organizationsectionsentenceseparatorssource-program
statementword

clause

 A subdivision of a COBOL sentence; an ordered set of consecutive COBOL
 character-strings that specifies an attribute of an entry.

contained program

 A COBOL source program that is directly or indirectly contained in
 another COBOL source program.

division

 A division is a collection of one or more sections or paragraphs.  Each
 of the four divisions consists of a division header and division body.

 A division header identifies and marks the beginning of a division.  It
 is a specific combination of reserved words followed by a separator
 period.

end of program

 The end of a COBOL source program is indicated either by the end of
 that program's Procedure Division or by the END PROGRAM header.

 Format -

  END PROGRAM program-name


 program-name
   must contain 1 to 31 characters and follow the rules for user-defined
   words.  It must be identical to a program-name declared in a
   preceding PROGRAM-ID paragraph.

paragraph

 A paragraph consists of a paragraph header or paragraph-name (depending
 on the division) followed by zero, one, or more entries (or sentences).

 A paragraph header is a reserved word followed by a separator period.
 Paragraph headers identify paragraphs in the Identification and
 Environment Divisions.

 A paragraph-name is a user-defined word followed by a separator period.
 Paragraph-names identify Procedure Division paragraphs.

phrase

 An ordered set of one or more consecutive COBOL character-strings that
 forms part of a clause or procedural statement.

program organization

     identification-division
   [ environment-division ]
   [ data-division ]
   [ procedure-division ]
   [ source-program ] ...
   [ end-program-header ]

section

 A section is a set of zero, one, or more paragraphs or entries (called
 a section body) that follows a section header and related section body.

 A section header identifies and marks the beginning of a section in the
 Environment, Data, and Procedure Divisions.  In the Environment and
 Data Divisions, a section header is a specific combination of reserved
 words followed by a separator period.  In the Procedure Division, a
 section header is a user-defined word followed by the word SECTION (and
 an optional segment-number).  A separator period always follows a
 section header.

sentence

 A sequence of one or more statements, the last of which ends with a
 separator period.

separators

 A separator delimits character-strings.  It can be one character or two
 contiguous characters.  The following characters are recognized as
 separators:

     space      ( )            quotation mark         (")
     comma      (,)            apostrophe             (')
     semicolon  (;)            pseudo-text delimiter  (==)
     period     (.)            horizontal tab
     colon      (:)            left (() or right ()) parenthesis

source-program

 represents a contained (nested) COBOL source program.  It begins with
 the Identification Division, a COPY statement or a REPLACE statement.
 It ends with the END PROGRAM header or the end of the Procedure
 Division.

statement

 In the Procedure Division, a syntactically valid combination of words
 and symbols that begins with a verb.

word

 A character-string of not more than 31 characters that forms one of the
 following:

 function-name
   A COBOL word that names a mechanism provided to determine
   the value of a function.
 reserved word
   A COBOL word specified in the list of words that can appear in a
   COBOL program.  A reserved word cannot appear in a program as a
   user-defined word or system-name.
 system-name
   A COBOL word that has already been defined by the implementor to
   refer to the program's operating environment.
 text-word
   A character (or a sequence of characters) in a COBOL library, source
   program, pseudo-text, or dictionary that is subject to certain
   restrictions.
 user-defined word
   A COBOL word that must appear in the source program to satisfy the
   format of a clause or statement.
 verb
   A word that causes the compiler or object program to take action.

source reference format

 The VAX COBOL compiler recognizes two source program formats: ANSI and
 terminal.

Additional information available:

ANSI formatterminal format

ANSI format

 ANSI format conforms to the American National Standard COBOL reference
 format.  It describes COBOL programs in terms of character positions on
 an input line.  A source program line has 80 character positions:

   Margin  L         C     A          B           R
           |         |     |          |           |
           +--------------------------------------------------+
   column  |  1 - 6  |  7  |  8 - 11  |  12 - 72  |  73 - 80  |
           +--------------------------------------------------+
                |       |       |           |           |
                |       |    Area A      Area B     Identification Area
                |       |
                |  Indicator Area
                |
            Sequence Number Area

 The compiler expects ANSI format only when the command line includes
 the /ANSI_FORMAT qualifier.

terminal format

 The VAX COBOL terminal format shortens program preparation time and
 reduces storage space for source programs.  There is no sequence number
 or identification area, and the indicator area is combined with Area A.

special registers

 Compiler-generated storage areas primarily used to store information
 relating to specific COBOL features.  These are of three types: (1)
 Database, (2) Report Writer, and (3) Record Management.

Additional information available:

1_DB-CONDITION2_DB-CURRENT-RECORD-ID3_DB-CURRENT-RECORD-NAME
4_DB-KEY5_DB-UWA6_LINAGE-COUNTER7_LINE-COUNTER8_PAGE-COUNTER
9_RMS-CURRENT-FILENAME10_RMS-CURRENT-STS11_RMS-CURRENT-STV
12_RMS-FILENAME13_RMS-STS14_RMS-STV

1_DB-CONDITION

 A database special register whose value indicates either a successful
 condition or an exception condition.

2_DB-CURRENT-RECORD-ID

 A database special register containing the subschema user ID number
 (UID) of the record type of the current record of the run unit.  It
 contains zero if there is no current record of the run unit.

3_DB-CURRENT-RECORD-NAME

 A database special register containing the name of the record type of
 the current record of the run unit.  It contains spaces if there is no
 current record of the run unit.

4_DB-KEY

 A database special register that holds the dbkey of the record accessed
 by the last FETCH, STORE or FIND statement. This special register can
 be used to fine tune storage strategies in the database.

5_DB-UWA

 A database special register containing the user work area (UWA). The
 UWA is the record delivery area that is used by the DBCS to make data
 items available to your program.

6_LINAGE-COUNTER

 A special register whose value points to the current position in the
 page body.

7_LINE-COUNTER

 A Report Writer special register whose value points to the current line
 in the current page.

8_PAGE-COUNTER

 A Report Writer special register whose value points to the current page
 in a report.

9_RMS-CURRENT-FILENAME

 A Record Management Services (RMS) exception condition register
 containing the name of the file causing the exception condition.
 This register is implicitly associated with the file most recently
 operated on by an I/O statement.

10_RMS-CURRENT-STS

 A Record Management Services (RMS) exception condition register. It
 contains the primary RMS status value of an I-O operation. This
 register is implicitly associated with the file most recently
 operated on by an I/O statement. RMS-CURRENT-STV is the secondary
 value.

11_RMS-CURRENT-STV

 A Record Management Services (RMS) exception condition register. It
 contains the secondary RMS status value of an I-O operation. This
 register  is implicitly associated with the file most recently
 operated on by an I/O statement. RMS-CURRENT-STS is the primary value.

12_RMS-FILENAME

 A Record Management Services (RMS) exception condition register
 containing the name of the file causing the exception condition.
 At any point in time, this register must be explicitly associated
 with a particular file.

13_RMS-STS

 A Record Management Services (RMS) exception condition register. It
 contains the primary RMS status value of an I-O operation. At any
 point in time, this register must be explicitly associated with a
 particular file. RMS-STV is the secondary value.

14_RMS-STV

 A Record Management Services (RMS) exception condition register. It
 contains the secondary RMS status value of an I-O operation. At any
 point in time, this register must be explicitly associated with a
 particular file. RMS-STS is the primary value.

IDENTIFICATION_DIVISION

 The IDENTIFICATION DIVISION marks the beginning of a COBOL program.  It
 also identifies a program and its source listing.

 Format -

  IDENTIFICATION DIVISION.

  PROGRAM-ID. program-name [IS {| INITIAL |} PROGRAM ][WITH IDENT id-str] .
                           [   {| COMMON  |}         ]

 [ AUTHOR. [comment-entry] ... ]
 [ INSTALLATION.  [comment-entry] ... ]
 [ DATE-WRITTEN. [comment-entry] ... ]
 [ DATE-COMPILED. [comment-entry] ... ]
 [ SECURITY. [comment-entry] ... ]

Additional information available:

PROGRAM-IDAUTHOR

PROGRAM-ID

 The PROGRAM-ID paragraph identifies a program.

 Format -

  PROGRAM-ID. program-name [IS {| INITIAL |} PROGRAM ][WITH IDENT id-str].
                           [   {| COMMON  |}         ]

Additional information available:

program-nameid-str

program-name

 identifies a COBOL source program.

id-str

 identifies a literal string to be included in the object module
 generated by the compilation, for identification.

AUTHOR

 The AUTHOR paragraph is for documentation only.

 Format -

  AUTHOR. [comment-entry] ...

Additional information available:

comment-entry

comment-entry

 Comment-entry can consist of any combination of characters from the
 computer character set.  Comment-entries can span several lines in Area
 B.  However, they cannot be continued by using a hyphen in the
 indicator area.  The end of comment-entry is the line before the next
 entry in Area A.

ENVIRONMENT_DIVISION

 The Environment Division describes the program's physical environment.  It
 also specifies input-output control and describes special control
 techniques and hardware characteristics.

 Format -

 [ ENVIRONMENT DIVISION.

 [ CONFIGURATION SECTION.
 [ SOURCE-COMPUTER. [source-computer-entry] ]
 [ OBJECT-COMPUTER.  [object-computer-entry] ]
 [ SPECIAL-NAMES.  [special-names-entry] ] ]

 [ INPUT-OUTPUT SECTION.
   FILE-CONTROL. {file-control-entry} ...
 [ I-O-CONTROL. [input-output-control-entry] ] ] ]

Additional information available:

SOURCE-COMPUTEROBJECT-COMPUTERSPECIAL-NAMESFILE-CONTROL
I-O-CONTROL

SOURCE-COMPUTER

 The SOURCE-COMPUTER paragraph specifies the computer on which the source
 program is to be compiled.

 Format -

  SOURCE-COMPUTER. [ { VAX           } [WITH DEBUGGING MODE] . ]
                   [ { computer-type }                         ]

Additional information available:

computer-type

computer-type

 is a user-defined word that names the computer.

OBJECT-COMPUTER

 The OBJECT-COMPUTER paragraph describes the computer on which the program
 is to execute.

 Format -

  OBJECT-COMPUTER. [ { VAX           }
                   [ { computer-type }

    [                     { WORDS      } ]
    [ MEMORY SIZE integer { CHARACTERS } ]
    [                     { MODULES    } ]

    [ PROGRAM COLLATING SEQUENCE IS alphabet-name ]

    [ SEGMENT-LIMIT IS segment-number] . ]

Additional information available:

computer-typealphabet-namesegment-number

computer-type

 is a user-defined word that names the computer.

alphabet-name

 is the name of a collating sequence defined in the ALPHABET clause of
 the SPECIAL-NAMES paragraph.

segment-number

 is an integer from 1 through 49.

SPECIAL-NAMES

 The SPECIAL-NAMES paragraph: (1) associates compiler features and VAX/VMS
 logical names with user-defined mnemonic-names, (2) defines
 symbolic-characters, (3) specifies the currency sign, (4) selects the
 decimal point, and (5) relates alphabet-names to character sets or
 collating sequences.

 Format -

  SPECIAL-NAMES. [

  [ { CARD-READER       }                                            ]
  [ { PAPER-TAPE-READER }                                            ]
  [ { CONSOLE           } IS device-name                             ]
  [ { LINE-PRINTER      }                                            ]
  [ { PAPER-TAPE-PUNCH  }                                            ]
  [ { C01               }                                            ]
  [                                                                  ] ...
  [                  { IS switch-name
                [ON STATUS IS cond-name] [OFF STATUS IS cond-name] } ]
  [                  { IS switch-name
                [OFF STATUS IS cond-name] [ON STATUS IS cond-name] } ]
  [SWITCH switch-num { ON STATUS IS cond-name
                                         [OFF STATUS IS cond-name] } ]
  [                  { OFF STATUS IS cond-name
                                          [ON STATUS IS cond-name] } ]

  [                          { ASCII                               } ]
  [                          { STANDARD-1                          } ]
  [                          { STANDARD-2                          } ]
  [ALPHABET alphabet-name IS { NATIVE                              } ] ...
  [                          { EBCDIC                              } ]
  [                          { {first-literal
                                [ { THRU    } last-literal ] } ... } ]
                                [ { THROUGH }              ] }     } ]
                                [ { ALSO lit } ...         ] }     } ]

  [SYMBOLIC CHARACTERS {{{symbolic-char} ... { IS  } {char-val} ... } ...
                        {                    { ARE }                }
                                         [IN alphabet-name] } ... ] ...

  [CLASS class-name IS {first-literal [{THROUGH} last-literal]}     ]
  [                    {              [{THRU   }             ]} ... ] ...

  [CURRENCY SIGN IS char]

  [DECIMAL-POINT IS COMMA] . ]

Additional information available:

device-nameswitch-numswitch-namecond-namealphabet-namefirst-literal
last-literallitsymbolic-charchar-valclass-namechar

device-name

 is a mnemonic-name for a device or the first line of a logical page
 (top-of-page).  It always possesses the global attribute.  Only the
 ACCEPT, DISPLAY, and WRITE statements can refer to it.

switch-num

 is the number of a program switch. Its value can range from 1 through
 16.

switch-name

 is a mnemonic-name for the program switch.

cond-name

 is a condition-name for the "on" or "off" status of the switch.  It
 always possesses the global attribute.  Its truth value is "true" when
 the STATUS phrase matches the status of the switch, "false" when it
 does not.

alphabet-name

 is the user-defined word for a character set and/or collating sequence.
 It always possesses the global attribute.

first-literal

 is a literal.  It specifies: (1) the value of one or more alphabetic
 characters, or (2) the first in a range of values.

last-literal

 is a literal. It specifies the last in a range of values.

lit

 is a literal. It specifies an alphabetic character value.

symbolic-char

 is a user-defined word that names the symbolic-character.  It always
 possesses the global attribute.  The same symbolic-char cannot appear
 more than once in the SYMBOLIC CHARACTERS clause.

char-val

 is an integer that indicates the ordinal position of a character in the
 native character set.

class-name

 is the user-defined word for a class. It always possesses the global
 attribute

char

 is a one-character nonnumeric literal that specifies the currency
 symbol.  It cannot be a symbolic character.

FILE-CONTROL

 The FILE-CONTROL paragraph contains the file-related specifications.

Additional information available:

1format sequential2format relative3format indexed4format sort-merge
5format reportclauses

1format sequential

 FILE-CONTROL.

 Format 1 - Sequential File

  SELECT [OPTIONAL] file-name

      ASSIGN TO file-spec

     [ RESERVE reserve-num [ AREA  ] ]
     [                     [ AREAS ] ]

     [ [ ORGANIZATION IS ] SEQUENTIAL ]

     [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    } ]
     [                                              { CHARACTERS } ]

     [CODE-SET IS alphabet-name]
     [PADDING CHARACTER IS pad-char]
     [RECORD DELIMITER IS STANDARD-1]
     [ACCESS MODE IS SEQUENTIAL]
     [FILE STATUS IS file-stat] .

2format relative

 FILE-CONTROL.

 Format 2 - Relative File

  SELECT [OPTIONAL] file-name

      ASSIGN TO file-spec

     [ RESERVE reserve-num [ AREA  ] ]
     [                     [ AREAS ] ]

     [ ORGANIZATION IS ] RELATIVE

     [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    } ]
     [                                              { CHARACTERS } ]

     [RECORD DELIMITER IS STANDARD-1]

     [                { SEQUENTIAL [RELATIVE KEY IS rel-key] } ]
     [ ACCESS MODE IS { { RANDOM  } RELATIVE KEY IS rel-key  } ]
     [                { { DYNAMIC }                          } ]

     [FILE STATUS IS file-stat] .

3format indexed

 FILE-CONTROL.

 Format 3 - Indexed File

  SELECT [OPTIONAL] file-name

      ASSIGN TO file-spec

     [ RESERVE reserve-num [ AREA  ] ]
     [                     [ AREAS ] ]

     [ ORGANIZATION IS ] INDEXED

     [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    } ]
     [                                              { CHARACTERS } ]

     [RECORD DELIMITER IS STANDARD-1]

     [                { SEQUENTIAL } ]
     [ ACCESS MODE IS { RANDOM     } ]
     [                { DYNAMIC    } ]

     [RECORD KEY IS rec-key [WITH DUPLICATES] [ASCENDING ] ]
     [                                        [DESCENDING] ]

     [ALTERNATE RECORD KEY IS alt-key [ WITH DUPLICATES ]

                                              [ ASCENDING  ] ]
                                              [ DESCENDING ] ] ...

     [FILE STATUS IS file-stat] .

4format sort-merge

 FILE-CONTROL.

 Format 4 - Sort or Merge File

  SELECT file-name ASSIGN TO file-spec .

5format report

 FILE-CONTROL.

 Format 5 - Report File

  SELECT file-name

      ASSIGN TO file-spec

     [ RESERVE reserve-num [ AREA  ] ]
     [                     [ AREAS ] ]

     [ [ ORGANIZATION IS ] SEQUENTIAL ]

     [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    }]
     [                                              { CHARACTERS }]

     [CODE-SET IS alphabet-name]
     [PADDING CHARACTER IS pad-char]
     [RECORD DELIMITER IS STANDARD-1]
     [ACCESS MODE IS SEQUENTIAL]
     [FILE STATUS IS file-stat] .

clauses

Additional information available:

ASSIGNBLOCK_CONTAINSCODE-SETORGANIZATIONPADDING_CHARACTER
RECORD_DELIMITERRESERVE

ASSIGN
 The ASSIGN clause associates a file with a partial or a complete file
 specification.

 Format -

  ASSIGN TO file-spec

Additional information available:

file-spec

file-spec
 is a nonnumeric literal or a COBOL word formed according to the
 rules for user-defined names.  It represents a partial or complete
 file specification.
BLOCK_CONTAINS
 The BLOCK CONTAINS clause specifies the size of a physical record.

 Format -

  BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    }
                                               { CHARACTERS }

Additional information available:

smallest-blockblocksize

smallest-block
 is an integer literal.  It specifies the minimum physical record
 size.
blocksize
 is an integer literal.  It specifies the exact or maximum physical
 record size.
CODE-SET
 The CODE-SET clause specifies the representation of data on external
 media.

 Format -

  CODE-SET IS alphabet-name

Additional information available:

alphabet-name

alphabet-name
 is the name of a character set defined in the SPECIAL-NAMES
 paragraph.  It cannot be described with literals in the ALPHABET
 clause.
ORGANIZATION
 The ORGANIZATION clause specifies a file's logical structure.

 Format -

                      { SEQUENTIAL }
  [ ORGANIZATION IS ] { RELATIVE   }
                      { INDEXED    }
PADDING_CHARACTER
 The PADDING CHARACTER clause specifies the character to be used to
 pad blocks in sequential files.

 Format -

  PADDING CHARACTER IS pad-char

Additional information available:

pad-char

pad-char
 is a one-character nonnumeric literal or the data-name of a
 one-character data item.  The data-name can be qualified.
RECORD_DELIMITER
 The RECORD DELIMITER clause indicates the method of determining the
 length of a variable record on the external medium.  It is for
 documentation only.

 Format -

  RECORD DELIMITER IS STANDARD-1
RESERVE
 The RESERVE clause specifies the number of input-output buffers for a
 file.

 Format -

  RESERVE reserve-num [ AREA  ]
                      [ AREAS ]

Additional information available:

reserve-num

reserve-num
 is an integer literal from 1 through 127.  It specifies the number
 of input-output areas for the file.

I-O-CONTROL

 The I-O-CONTROL paragraph specifies the input-output techniques to be
 used for a file.

 Format -

 I-O-CONTROL.

[[      {| DEFERRED-WRITE                     |}                    ]
[[      {| EXTENSION extend-amt               |}                    ]
[[      {| FILL-SIZE                          |}                    ]
[[      {| LOCK-HOLDING                       |}                    ]
[[APPLY {| MASS-INSERT                        |} ON {file-name} ... ] ...
[[      {|[CONTIGUOUS         ]
[[      {|[CONTIGUOUS-BEST-TRY]
                     PREALLOCATION preall-amt |}                    ]
[[      {| PRINT-CONTROL                      |}                    ]
[[      {| WINDOW window-ptrs                 |}                    ]

 [     [ RECORD     ]                                               ]
 [SAME [ SORT       ]AREA FOR {same-area-file} {same-area-file} ... ] ...
 [     [ SORT-MERGE ]                                               ]

 [                           { { [END OF] { REEL } }             } ]
 [                           { {          { UNIT } } OF file-name} ]
 [RERUN [ON file-name] EVERY { { integer RECORDS   }             } ] ...
 [                           { integer CLOCK-UNITS               } ]
 [                           { condition-name                    } ]

 [MULTIPLE FILE TAPE CONTAINS {file-name [POSITION integer] } ... ] ...].]

Additional information available:

extend-amtpreall-amtwindow-ptrsfile-namesame-area-file

extend-amt

 is an integer from 0 through 65535.  It specifies the number of blocks
 in each extension of a disk file.

preall-amt

 is an integer from 0 through 4,294,967,295.  It specifies the number of
 blocks to initially allocate when the program creates a disk file.

window-ptrs

 is an integer from 0 through 127.  Its value can also be 255.  It
 specifies the number of retrieval pointers in the window that maps the
 disk file.

file-name

 names a file described in a Data Division file description entry.

same-area-file

 names a file described in a Data Division File Description entry to
 share storage areas with every other same-area-file.

DATA_DIVISION

 The DATA DIVISION describes data the program creates, receives as input,
 manipulates, and produces as output.

 Format -

 [ DATA DIVISION.
 [SUB-SCHEMA SECTION.
  [subschema-entry [keeplist-entry] ... ] ]
 [FILE SECTION.
  [file-description-entry {record-description-entry} ... ] ...
  [report-file-description-entry] ...
  [sort-merge-file-description-entry {record-description-entry} ... ] ... ]
 [WORKING-STORAGE SECTION.
  [record-description-entry] ... ]
 [LINKAGE SECTION.
  [record-description-entry] ... ]
 [REPORT SECTION.
  [report-description-entry {report-group-description-entry} ... ] ... ] ]

Additional information available:

rf report-file-description-entryFD file-description-entrySD sort-merge-file-description-entry
DB subschema-entryRD report-description-entryLD keeplist-entry
dd record-description-entryclausesrg report-group-description-entrymiscellaneous topics

rf report-file-description-entry

 The report file description entry is Format 4 of the file description
 entry.  See FD_file-description-entry subtopic report_FD (Format 4) for
 details of the syntax.

FD file-description-entry

 A file description entry describes the physical structure,
 identification, record names, and names for sequential, relative,
 indexed, and report files.  It also specifies: (1) the internal or
 external attributes of a file connector, and (2) the local or global
 attributes of a file-name.

Additional information available:

sequential FDrelative FDindexed FDreport FD

sequential FD

 A file description entry describes the physical structure,
 identification, record names, and names for sequential, relative,
 indexed, and report files.  It also specifies: (1) the internal or
 external attributes of a file connector, and (2) the local or global
 attributes of a file-name.

 Format 1 - Sequential File

 FD file-name
   [IS EXTERNAL]
   [IS GLOBAL]

 [BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    }]
 [                                             { CHARACTERS }]

 [RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS          }]
 [       { IS VARYING IN SIZE [FROM shortest-rec]
                                      [ TO longest-rec ]  CHARACTERS
                                      [ DEPENDING ON depending-item ] }]

 [LABEL { RECORDS ARE } { STANDARD } ]
 [      { RECORD IS   } { OMITTED  } ]

 [VALUE OF ID IS file-spec]

 [DATA { RECORDS ARE } {rec-name} ... ]
 [     { RECORD IS   }                ]

 [ LINAGE IS page-size LINES [ WITH FOOTING AT footing-line ]
         [ LINES AT TOP top-lines ] [ LINES AT BOTTOM bottom-lines ] ]

 [CODE-SET IS alphabet-name]

 [ [ ACCESS MODE IS ] SEQUENTIAL ]

 [FILE STATUS IS file-stat] .

relative FD

 A file description entry describes the physical structure,
 identification, record names, and names for sequential, relative,
 indexed, and report files.  It also specifies: (1) the internal or
 external attributes of a file connector, and (2) the local or global
 attributes of a file-name.

 Format 2 - Relative File

 FD file-name
   [IS EXTERNAL]
   [IS GLOBAL]

 [BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    }]
 [                                             { CHARACTERS }]

 [RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS          }]
 [       { IS VARYING IN SIZE [FROM shortest-rec]
                                      [ TO longest-rec ]  CHARACTERS
                                      [ DEPENDING ON depending-item ] }]

 [LABEL { RECORDS ARE } { STANDARD } ]
 [      { RECORD IS   } { OMITTED  } ]

 [VALUE OF ID IS file-spec]

 [DATA { RECORDS ARE } {rec-name} ... ]
 [     { RECORD IS   }                ]

 [               { SEQUENTIAL [ RELATIVE KEY IS rel-key ] }]
 [ACCESS MODE IS { { RANDOM  }  RELATIVE KEY IS rel-key   }]
 [               { { DYNAMIC }                            }]

 [FILE STATUS IS file-stat] .

indexed FD

 A file description entry describes the physical structure,
 identification, record names, and names for sequential, relative,
 indexed, and report files.  It also specifies: (1) the internal or
 external attributes of a file connector, and (2) the local or global
 attributes of a file-name.

 Format 3 - Indexed File

 FD file-name
   [IS EXTERNAL]
   [IS GLOBAL]

 [BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    }]
 [                                             { CHARACTERS }]

 [RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS          }]
 [       { IS VARYING IN SIZE [FROM shortest-rec]
                                      [ TO longest-rec ]  CHARACTERS
                                      [ DEPENDING ON depending-item ] }]

 [LABEL { RECORDS ARE } { STANDARD } ]
 [      { RECORD IS   } { OMITTED  } ]

 [VALUE OF ID IS file-spec]

 [DATA { RECORDS ARE } {rec-name} ... ]
 [     { RECORD IS   }                ]

 [               { SEQUENTIAL }]
 [ACCESS MODE IS { RANDOM     }]
 [               { DYNAMIC    }]

 [RECORD KEY IS rec-key [ WITH DUPLICATES] [ ASCENDING  ] ]
 [                                         [ DESCENDING ] ]

 [ALTERNATE RECORD KEY IS alt-key [ WITH DUPLICATES ]

                                           [ ASCENDING  ] ]
                                           [ DESCENDING ] ]...

 [FILE STATUS IS file-stat] .

report FD

 A file description entry describes the physical structure,
 identification, record names, and names for sequential, relative,
 indexed, and report files.  It also specifies: (1) the internal or
 external attributes of a file connector, and (2) the local or global
 attributes of a file-name.

 Format 4 - Report File

  FD file-name
    [IS EXTERNAL]
    [IS GLOBAL]

 [BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS    }]
 [                                             { CHARACTERS }]

 [RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS          }]
 [       { IS VARYING IN SIZE [FROM shortest-rec]
                                      [ TO longest-rec ]  CHARACTERS
                                      [ DEPENDING ON depending-item ] }]

 [LABEL { RECORDS ARE } { STANDARD } ]
 [      { RECORD IS   } { OMITTED  } ]

 [VALUE OF ID IS file-spec]

 [ [ACCESS MODE IS] SEQUENTIAL]

 { REPORT IS   } {report-name} ...
 { REPORTS ARE }

 [CODE-SET IS alphabet-name]

 [FILE STATUS IS file-stat] .

SD sort-merge-file-description-entry

 A sort-merge file description entry describes a sort or merge file's
 physical structure, identification, and record names.

 Format -

 SD file-name

   [RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS        }]
   [       { IS VARYING IN SIZE [FROM shortest-rec] [TO longest-rec]
                             CHARACTERS [DEPENDING ON depending-item] }]

   [DATA { RECORDS ARE } {rec-name} ... ]
   [     { RECORD IS   }                ] .

DB subschema-entry

 The Subschema entry allows a program to access a subschema in the Common
 Data Dictionary/Plus under the schema name.

 Format -

  DB subschema-name WITHIN schema-name

     [ FOR database-name ] [ { THRU    } stream-name ]
                           [ { THROUGH }             ] .

Additional information available:

subschema-nameschema-namedatabase-namestream-name

subschema-name

 references a subschema name in the Common Data Dictionary/Plus (CDD/Plus)
 under the schema name.

schema-name

 references a schema name in the Common Data Dictionary/Plus.

database-name

 represents a complete or partial file specification defining the
 database occurrence.  A database occurrence is a root file.  At run
 time, database-name points the Database Control System (DBCS) to the
 root file.

stream-name

 represents the name of a stream. Signals the Data Base Control System
 (DBCS) that your run unit uses a stream, which allows access to
 multiple databases or subschemas.

RD report-description-entry

 The Report Description names a report, specifies any identifying
 characters to be prefixed to each print line in the report, and describes
 the physical structure and organization of that report.  It also
 determines whether a report-name is a local name or global name.

 Format -

  RD report-name

     [IS GLOBAL]

     [CODE report-code]

     [{ CONTROL IS   } { {control-name} ...       }]
     [{ CONTROLS ARE } { FINAL [control-name] ... }]

     [ PAGE [ LIMIT IS   ] page-size [ LINE  ]
            [ LIMITS ARE ]           [ LINES ]

         [ HEADING heading-line ]

         [ FIRST DETAIL first-detail-line ]

         [ LAST DETAIL last-detail-line ]

         [ FOOTING footing-line ] ] .

LD keeplist-entry

 The Keeplist Description entry names a keeplist.

 Format -

  LD keeplist-name [LIMIT IS integer] .

Additional information available:

keeplist-nameinteger

keeplist-name

 is a user-defined name.

integer

 is a positive integer.

dd record-description-entry

 A data description entry specifies the characteristics of a data item.

Additional information available:

1format2format 663format 88

1format

 A data description entry specifies the characteristics of a data item.

 Format 1 -

 level-number  [ data-name ]
               [ FILLER    ]

   [REDEFINES other-data-item]

   [IS EXTERNAL]

   [IS GLOBAL]

   [ { PICTURE } IS character-string ]
   [ { PIC     }                     ]

   [             { BINARY          } ]
   [             { COMPUTATIONAL   } ]
   [             { COMP            } ]
   [             { COMPUTATIONAL-1 } ]
   [             { COMP-1          } ]
   [             { COMPUTATIONAL-2 } ]
   [ [USAGE IS ] { COMP-2          } ]
   [             { COMPUTATIONAL-3 } ]
   [             { COMP-3          } ]
   [             { DISPLAY         } ]
   [             { INDEX           } ]
   [             { PACKED-DECIMAL  } ]
   [             { POINTER         } ]

   [ [SIGN IS ] { LEADING  } [ SEPARATE CHARACTER ] ]
   [            { TRAILING }                        ]

   [ OCCURS  table-size TIMES                                        ]
   [   [ { ASCENDING  } KEY IS {key-name} ... ] ...                  ]
   [   [ { DESCENDING }                       ]                      ]
   [                                                                 ]
   [     [INDEXED BY {ind-name} ... ]                                ]
   [                                                                 ]
   [ OCCURS min-times TO max-times TIMES DEPENDING ON depending-item ]
   [   [ { ASCENDING  } KEY IS {key-name} ... ] ...                  ]
   [   [ { DESCENDING }                       ]                      ]
   [                                                                 ]
   [     [INDEXED BY {ind-name} ... ]                                ]

   [ { SYNCHRONIZED } [ LEFT  ] ]
   [ { SYNC         } [ RIGHT ] ]

   [ { JUSTIFIED } RIGHT ]
   [ { JUST      }       ]

   [BLANK WHEN ZERO]

   [         { lit                    }]
   [VALUE IS { EXTERNAL external-name }] .
   [         { REFERENCE data-name    }]

2format 66

 A data description entry specifies the characteristics of a data item.

 Format 2 -

  66 new-name RENAMES rename-start [ { THRU    } rename-end ] .
                                   [ { THROUGH }            ]

3format 88

 A data description entry specifies the characteristics of a data item.

 Format 3 -

  88 condition-name { VALUE IS   } { { EXTERNAL external-name }
                    { VALUES ARE } { { REFERENCE data-name    }
                                   { { low-val                }

                      [ { THRU    } { EXTERNAL external-name } ] }
                      [ { THROUGH } { REFERENCE data-name    } ] } ... .
                      [             { high-val               } ] }

clauses

Additional information available:

ACCESS_MODEALTERNATE_RECORD_KEYBLANK_WHEN_ZERO
CODECOLUMN_NUMBERCONTROLDATA_RECORDSEXTERNAL
FILE_STATUSGLOBALGROUP_INDICATEJUSTIFIEDLABEL_RECORDS
LINAGELINE_NUMBERNEXT_GROUPOCCURSPAGE
PICTURERECORDRECORD_KEYREDEFINESRENAMESREPORT
SIGNSOURCESUMSYNCHRONIZEDTYPEUSAGE
VALUE_ISVALUE_OF_ID

Data-NameLevel-Number

ACCESS_MODE

 The ACCESS MODE clause specifies the order of access for a file's
 records.

Additional information available:

1format sequential2format relative3format indexed

1format sequential
 The ACCESS MODE clause specifies the order of access for a file's
 records.

 Format 1 - Sequential File

  [ ACCESS MODE IS ] SEQUENTIAL
2format relative
 The ACCESS MODE clause specifies the order of access for a file's
 records.

 Format 2 - Relative File

                     {  SEQUENTIAL [ RELATIVE KEY IS rel-key ] }
  [ ACCESS MODE IS ] { { RANDOM  }   RELATIVE KEY IS rel-key   }
                     { { DYNAMIC }                             }

Additional information available:

rel-key

rel-key
 is the file's RELATIVE KEY data item.
3format indexed
 The ACCESS MODE clause specifies the order of access for a file's
 records.

 Format 3 - Indexed File

                     { SEQUENTIAL }
  [ ACCESS MODE IS ] { RANDOM     }
                     { DYNAMIC    }

ALTERNATE_RECORD_KEY

 THE ALTERNATE RECORD KEY clause specifies an alternate access path to
 indexed file records.

 Format -

  ALTERNATE RECORD KEY IS alt-key [ WITH DUPLICATES ] [ ASCENDING  ]
                                                      [ DESCENDING ]

Additional information available:

alt-key

alt-key
 is the Alternate Record Key for the file.  It is the data-name of a
 data item in a Record Description entry for the file.  The data item
 must be described as: (1) alphanumeric or alphabetic category, (2)
 a group item, (3) unsigned numeric display, (4) a COMP-3 integer, or
 (5) a COMP integer with no more than nine digits.

BLANK_WHEN_ZERO

 THE BLANK WHEN ZERO clause replaces zeroes with spaces when a data
 item's value is zero.

 Format -

  BLANK WHEN ZERO

CODE

 The CODE clause specifies a two-character literal that identifies each
 print line as belonging to a specific report.

 Format -

  CODE report-code

Additional information available:

report-code

report-code
  must be a two-character nonnumeric literal.

COLUMN_NUMBER

 The COLUMN NUMBER clause identifies a printable item and specifies the
 position of the item on a print line.

 Format -

  COLUMN NUMBER IS column-num

Additional information available:

column-num

column-num
  is a positive integer greater than zero.

CONTROL

 The CONTROL clause establishes the levels of the control hierarchy for
 the report.

 Format -

  { CONTROL IS   } { {control-name} ...       }
  { CONTROLS ARE } { FINAL [control-name] ... }

Additional information available:

control-name

control-name
 is any data-name in the Subschema, File, Working-Storage, or Linkage
 Section.

Data-Name

 Data-name specifies a data item that your program can explicitly
 reference.  FILLER specifies an item that cannot be explicitly
 referenced.

 Format -

  [ data-name ]
  [ FILLER    ]

DATA_RECORDS

 The DATA RECORDS clause documents the names of a file's record
 description entries.

 Format -

  DATA  { RECORD IS   } {rec-name} ...
        { RECORDS ARE }

Additional information available:

rec-name

rec-name
 is the name of a data record.  It must be defined by a level 01 data
 description entry subordinate to the file description entry.

EXTERNAL

 The EXTERNAL clause specifies that a data item or a file connector in a
 defining program is common to other programs in the run unit if the
 program defines it identically.  The group and elementary data items of
 an external data record and files associated with an external file
 connector are available to very program in the image that describes
 them.

 Format -

  IS EXTERNAL

FILE_STATUS

 The FILE STATUS clause names a data item that contains the status of an
 input/output operation.

 Format -

  FILE STATUS IS file-stat

Additional information available:

file-stat

file-stat
 is the data-name of a two-character alphanumeric Sub-Schema Section,
 Working-Storage Section, or Linkage Section data item.  File-stat is
 the file's FILE STATUS data item.

GLOBAL

 The GLOBAL clause specifies that data-name or file-name is available to
 every program contained within the program that declares it.

 Format -

  IS GLOBAL

GROUP_INDICATE

 The GROUP INDICATE clause specifies that the associated printable item
 is presented only on the first occurrence of its DETAIL report group
 after a control break or page advance.

 Format -

  GROUP INDICATE

JUSTIFIED

 The JUSTIFIED clause specifies nonstandard data positioning in an
 alphanumeric receiving item.

 Format -

  { JUSTIFIED } RIGHT
  { JUST      }

LABEL_RECORDS

 The LABEL RECORDS clause specifies the presence or absence of labels.

 Format -

  LABEL { RECORDS ARE } { STANDARD }
        { RECORD IS   } { OMITTED  }

Level-Number

 The level-number shows the position of a data item within the
 hierarchial structure of a logical record or a report group.  It also
 identifies entries for condition-names and the RENAMES clause.

 Format -

  level-number

LINAGE

 The LINAGE clause specifies the number of lines on a logical page.  It
 can also specify the size of the logical page's top and bottom margins
 and the line where the footing area begins in the page body.

 Format -

  LINAGE IS {page-lines} LINES [ WITH FOOTING AT footing-line ]
     [ LINES AT TOP top-lines ] [ LINES AT BOTTOM bottom-lines ]

Additional information available:

page-linesfooting-linetop-linesbottom-lines

page-lines
 is a positive integer or the data-name of an elementary unsigned
 integer numeric data item.  Its value must be greater than zero.  It
 specifies the number of lines that can be written or spaced on the
 logical page.  If page-lines is a data-name, it can be qualified.
footing-line
 is a positive integer or the data-name of an elementary unsigned
 integer numeric data item.  Its value must be greater than zero, but
 cannot be greater than page-lines.  Footing-lines specifies the line
 number where the footing area begins in the page body.  If
 footing-line is a data-name, it can be qualified.
top-lines
 is an integer or the data-name of an elementary unsigned integer
 numeric data item.  Its value can be zero.  Top-lines specifies the
 number of lines in the top margin of the logical page.  If top-lines
 is a data-name, it can be qualified.
bottom-lines
 is an integer or the data-name of an elementary unsigned integer
 numeric data item.  Its value can be zero.  Bottom-lines specifies
 the number of lines in the bottom margin of the logical page.  If
 bottom-lines is a data-name, it can be qualified.

LINE_NUMBER

 The LINE NUMBER clause specifies vertical positioning information for a
 report group.

 Format -

  LINE NUMBER IS { line-num [ON NEXT PAGE] }
                 { PLUS line-num-plus      }

Additional information available:

line-numline-num-plus

line-num
 is a nonnegative integer.  Line-num represents an absolute line
 number on a logical page and establishes a print line for a Report
 Writer report group.
line-num-plus
 is a positive integer.  Line-num-plus represents a relative line
 number on a logical page and establishes a print line for a Report
 Writer report group.

NEXT_GROUP

 The NEXT GROUP clause specifies information for the vertical
 positioning of the next report group on a logical page following the
 presentation of the last line of a report group.

 Format -

                { next-group-line-num           }
  NEXT GROUP IS { PLUS next-group-line-num-plus }
                { NEXT PAGE                     }

Additional information available:

next-group-line-numnext-group-line-num-plus

next-group-line-num
 is a positive, one- to three-digit integer value greater than zero.
 It represents an absolute line number on a logical page and
 establishes a print line for the next Report Writer report group.
next-group-line-num-plus
 is a positive, one- to three-digit integer value.  It represents a
 relative line number on a logical page and establishes a print line
 for the next Report Writer report group.

OCCURS

 The OCCURS clause defines tables and provides the basis for
 subscripting and indexing.  It eliminates the need for separate
 entries for repeated data items.

Additional information available:

1format table-size2format DEPENDING

1format table-size
 The OCCURS clause defines tables and provides the basis for
 subscripting and indexing.  It eliminates the need for separate
 entries for repeated data items.

 Format 1 -

  OCCURS table-size TIMES

     [ { ASCENDING  } KEY IS {key-name} ... ] ...
     [ { DESCENDING }                       ]

     [ INDEXED BY {ind-name} ... ]

Additional information available:

table-sizekey-nameind-name

table-size
 is an integer that specifies the exact number of occurrences of a
 table element.
key-name
 is the data-name of an entry that contains the OCCURS clause or an
 entry subordinate to it.  Key-name can be qualified.  Each key-name
 after the first must name an entry subordinate to the entry that
 contains the OCCURS clause.  The values in each key-name are the
 basis of the ascending or descending arrangement of the table's
 repeated data.
ind-name
 is an index-name. It associates an index with the table and allows
 indexing in table element references.
2format DEPENDING
 The OCCURS clause defines tables and provides the basis for
 subscripting and indexing.  It eliminates the need for separate
 entries for repeated data items.

 Format 2 -

  OCCURS min-times TO max-times TIMES DEPENDING ON depending-item

     [ { ASCENDING  } KEY IS {key-name} ... ] ...
     [ { DESCENDING }                       ]

     [ INDEXED BY {ind-name} ... ]

Additional information available:

min-timesmax-timeskey-nameind-namedepending-item

min-times
 is an integer that specifies the minimum number of occurrences of a
 table element.  Its value must be greater than or equal to zero.
max-times
 is an integer that specifies the maximum number of occurrences of a
 table element.  Its value must be greater than min-times.
key-name
 is the data-name of an entry that contains the OCCURS clause or an
 entry subordinate to it.  Key-name can be qualified.  Each key-name
 after the first must name an entry subordinate to the entry that
 contains the OCCURS clause.  The values in each key-name are the
 basis of the ascending or descending arrangement of the table's
 repeated data.
ind-name
 is an index-name.  It associates an index with the table and allows
 indexing in table element references.
depending-item
 is the data-name of an elementary unsigned integer data item.  Its
 value specifies the current number of occurrences.  Depending-item
 can be qualified.

PAGE

 The PAGE clause defines the length of a logical page and the vertical
 subdivisions within which report groups are presented.

 Format -

  PAGE [ LIMIT IS   ] page-size [ LINE  ]
       [ LIMITS ARE ]           [ LINES ]

     [ HEADING heading-line ]

     [ FIRST DETAIL first-detail-line ]

     [ LAST DETAIL last-detail-line ]

     [ FOOTING footing-line ]

Additional information available:

page-sizeheading-linefirst-detail-linelast-detail-linefooting-line

page-size
 is a one- to three-digit integer.  It defines the number of lines
 available on a logical page.
heading-line
 is a one- to three-digit integer.  It defines the first line number
 for a REPORT HEADING or PAGE HEADING report group on the logical
 page.
first-detail-line
 is a one- to three-digit integer.  It defines the first line number
 for a CONTROL HEADING, DETAIL, and CONTROL FOOTING report group on
 the logical page.
last-detail-line
 is a one- to three-digit integer.  It defines the last line number
 for a CONTROL HEADING or DETAIL report group on the logical page.
footing-line
 is a one- to three-digit integer.  It defines the last line number
 for a CONTROL FOOTING report group and the first line number for the
 PAGE FOOTING report group on the logical page.

PICTURE

 The PICTURE clause specifies the general characteristics and editing
 requirements of an elementary item.

 Format -

   { PICTURE } IS character-string
   { PIC     }

Additional information available:

PICTURE symbols

PICTURE symbols
 The following symbols may be used in a PICTURE clause:

   A  B  P  S  V  X  Z  9  0  /  ,  .  +  -  CR  DB  *  cs

RECORD

 The RECORD clause specifies: (1) the number of character positions in
 a fixed length record, (2) variable length record format, or (3) the
 minimum and maximum number of character positions in a variable
 length record.

Additional information available:

1format CONTAINS2format VARYING

1format CONTAINS
 The RECORD clause specifies: (1) the number of character positions in
 a fixed length record, (2) variable length record format, or (3) the
 minimum and maximum number of character positions in a variable
 length record.

 Format 1 -

  RECORD CONTAINS [shortest-rec TO] longest-rec CHARACTERS

Additional information available:

shortest-reclongest-rec

shortest-rec
 is an integer that specifies the minimum number of character
 positions in a variable-length record.
longest-rec
 is an integer greater than shortest-rec.  It specifies the maximum
 number of character positions in a variable-length record or the
 size of a fixed-length record.
2format VARYING
 The RECORD clause specifies: (1) the number of character positions in
 a fixed length record, (2) variable length record format, or (3) the
 minimum and maximum number of character positions in a variable
 length record.

 Format 2 -

  RECORD IS VARYING IN SIZE [FROM shortest-rec] [TO longest-rec]
                            CHARACTERS [DEPENDING ON depending-item]

Additional information available:

shortest-reclongest-recdepending-item

shortest-rec
 is an integer that specifies the minimum number of character
 positions in a variable-length record.
longest-rec
 is an integer greater than shortest-rec.  It specifies the maximum
 number of character positions in a variable-length record or the
 size of a fixed-length record.
depending-item
 is the identifier of an elementary unsigned integer data item in the
 Working-Storage or Linkage Section.  It specifies the number of
 character positions for an output operation, and it contains the
 number of character positions after a successful input operation.

RECORD_KEY

 The RECORD KEY clause specifies the Prime Record Key access path to
 indexed file records.

 Format -

  RECORD KEY IS rec-key [ WITH DUPLICATES ] [ ASCENDING  ]
                                            [ DESCENDING ]

Additional information available:

rec-key

rec-key
 is the identifier of a data item in a Record Description entry for the
 file.  It can be qualified, but it cannot be a group item that
 contains a variable-occurrence data item.  The data item must be
 described as: (1) alphanumeric or alphabetic category, (2) a group
 item, (3) unsigned numeric display, (4) a COMP-3 integer, or (5) a
 COMP integer with no more than nine digits.

REDEFINES

 The REDEFINES clause allows different data description entries to
 describe the same storage area.

 Format -

  level-number [ identifier ] REDEFINES other-data-item
               [ FILLER    ]

Additional information available:

other-data-item

other-data-item
 is an identifier.  It identifies the data description entry that first
 defines the storage area.

RENAMES

 The RENAMES clause groups elementary items in alternative or
 overlapping ways.

 Format -

   66  new-name RENAMES rename-start [ { THRU    } rename-end ]
                                     [ { THROUGH }            ]

Additional information available:

new-namerename-startrename-end

new-name
 is the identifier of the item being described.  It identifies an
 alternate grouping of one or more items in a record.
rename-start
 is the identifier of the leftmost data item in the area.  It can be
 qualified.
rename-end
 is the identifier of the rightmost data item in the area.  It can be
 qualified.

REPORT

 The REPORT clause in a File Description entry (FD) specifies the Report
 Description (RD) report names that comprise a report file.

 Format -

  { REPORT IS   } { report-name } ...
  { REPORTS ARE }

SIGN

 The SIGN clause specifies the operational sign's position and type of
 representation.

Additional information available:

1format Data Description2format Report Group Description

1format Data Description
 The SIGN clause specifies the operational sign's position and type of
 representation.

 Format 1 - Data Description Entries

  [ SIGN IS ] { LEADING  } [ SEPARATE CHARACTER ]
              { TRAILING }
2format Report Group Description
 The SIGN clause specifies the operational sign's position and type of
 representation.

 Format 2 - Report Group Description Entries

  [ SIGN IS ] { LEADING  } SEPARATE CHARACTER
              { TRAILING }

SOURCE

 The SOURCE clause identifies a data item to be sent to an associated
 printable item defined within a Report Group Description entry.

 Format -

  SOURCE IS source-id

Additional information available:

source-id

source-id
 names an elementary item in the Data Division.

SUM

 The SUM clause establishes a Report Writer sum counter and names the
 data items to be summed.

 Format -

  {SUM {sum-name}...
      [UPON {detail-report-group-name} ... ]} ...

      [RESET ON { control-foot-name } ]
      [         { FINAL             } ]

Additional information available:

sum-namedetail-report-group-namecontrol-foot-name

sum-name
 names a numeric data item with an optional sign in the Sub-Schema,
 File, Working-Storage, and Linkage Sections, or another sum counter
 in the Report Section.
detail-report-group-name
 names a DETAIL report group.
control-foot-name
 must reference a control-name in the report's CONTROL clause.

SYNCHRONIZED

 The SYNCHRONIZED clause specifies elementary item alignment on word
 boundary offsets relative to a record's beginning.  These offsets are
 related to the size and usage of the item being stored.

 Format -

  [ { SYNCHRONIZED } [ LEFT  ] ]
  [ { SYNC         } [ RIGHT ] ]

TYPE

 The TYPE clause identifies the report group type and indicates when the
 Report Writer Control System (RWCS) is to process it.

 Format -

          { REPORT HEADING }                        }
          { RH             }                        }
          { PAGE HEADING }                          }
          { PH           }                          }
          { CONTROL HEADING } { control-head-name } }
          { CH              } { FINAL             } }
  TYPE IS { DETAIL }                                }
          { DE     }                                }
          { CONTROL FOOTING } { control-foot-name } }
          { CF              } { FINAL             } }
          { PAGE FOOTING }                          }
          { PF           }                          }
          { REPORT FOOTING }                        }
          { RF             }                        }

Additional information available:

control-head-namecontrol-foot-name

control-head-name
 names a control-name in the CONTROL clause.
control-foot-name
 names a control-name in the CONTROL clause.

USAGE

 The USAGE clause specifies the internal format of a data item or
 represents the address of data in a COBOL program.

 Format -

               { BINARY          }
               { COMPUTATIONAL   }
               { COMP            }
               { COMPUTATIONAL-1 }
               { COMP-1          }
               { COMPUTATIONAL-2 }
  [ USAGE IS ] { COMP-2          }
               { COMPUTATIONAL-3 }
               { COMP-3          }
               { DISPLAY         }
               { INDEX           }
               { PACKED-DECIMAL  }
               { POINTER         }

VALUE_IS

 The VALUE IS clause defines the values associated with
 condition-names, the initial value of Working-Storage Section data
 items, the value of Report Section printable items, the compile-time
 initialization of variables to the address of data, and to external
 constants.

Additional information available:

1format lit2format THROUGH3format REFERENCE4format EXTERNAL

1format lit
 The VALUE IS clause defines the values associated with
 condition-names, the initial value of Working-Storage Section data
 items, the value of Report Section printable items, the compile-time
 initialization of variables to the address of data, and to external
 constants.

 Format 1 -

  VALUE IS lit

Additional information available:

lit

lit
 is a numeric or nonumeric literal.
2format THROUGH
 The VALUE IS clause defines the values associated with
 condition-names, the initial value of Working-Storage Section data
 items, the value of Report Section printable items, the compile-time
 initialization of variables to the address of data, and to external
 constants.

 Format 2 -

  { VALUE IS   } { { EXTERNAL external-name }
  { VALUES ARE } { { REFERENCE data-name    }
                 { { low-val                }

                      [ { THRU    } { EXTERNAL external-name } ] }
                      [ { THROUGH } { REFERENCE data-name    } ] } ...
                                    { high-val               } ] }

Additional information available:

low-valhigh-valdata-nameexternal-name

low-val
 is a numeric or nonnumeric literal.  It is the lowest value in a
 range of values associated with a condition-name in a level 88 data
 description entry.
high-val
 is a numeric or nonnumeric literal.  It is the highest value in a
 range of values associated with a condition-name in a level 88 data
 description entry.
data-name
 names a data item in the File, Working-Storage, or Subschema
 Section.  Data-name may be qualified.
external-name
 names a COBOL link-time bound constant.  It must define a word or
 longword integer value.
3format REFERENCE
 The VALUE IS clause defines the values associated with
 condition-names, the initial value of Working-Storage Section data
 items, the value of Report Section printable items, the compile-time
 initialization of variables to the address of data, and to external
 constants.

 Format 3 -

  VALUE IS { REFERENCE data-name }
           { numeric-integer-lit }

Additional information available:

data-namenumeric-integer-lit

data-name
 names a data item in the File, Working-Storage, or Subschema
 Section.  Data-name may be qualified.
numeric-integer-lit
 is a positive numeric integer literal.
4format EXTERNAL
 The VALUE IS clause defines the values associated with
 condition-names, the initial value of Working-Storage Section data
 items, the value of Report Section printable items, the compile-time
 initialization of variables to the address of data, and to external
 constants.

 Format 4 -

  VALUE IS EXTERNAL external-name

Additional information available:

external-name

external-name
 names a COBOL link-time bound constant.  It must define a word or
 longword integer value.

VALUE_OF_ID

 The VALUE OF ID clause specifies, replaces, or completes a file
 specification.

 Format -

  VALUE OF ID IS file-spec

Additional information available:

file-spec

file-spec
 is a nonnumeric literal or the data-name of an alphanumeric
 Working-Storage Section data item.  It contains the full or partial
 file specification.  File-spec can be qualified.

rg report-group-description-entry

 The Report Group Description entry specifies the characteristics of a
 report group and of the individual items within a report group.

Additional information available:

1format 012format3format PIC

1format 01

 The Report Group Description entry specifies the characteristics of a
 report group and of the individual items within a report group.

 Format 1 -

  01 [group-data-name]

     [LINE NUMBER IS { line-num [ON NEXT PAGE] } ]
     [               { PLUS line-num-plus      } ]

     [              { next-group-line-num           } ]
     [NEXT GROUP IS { PLUS next-group-line-num-plus } ]
     [              { NEXT PAGE                     } ]

     [        { REPORT HEADING }                        } ]
     [        { RH             }                        } ]
     [        { PAGE HEADING }                          } ]
     [        { PH           }                          } ]
     [        { CONTROL HEADING } { control-head-name } } ]
     [        { CH              } { FINAL             } } ]
     [TYPE IS { DETAIL }                                } ]
     [        { DE     }                                } ]
     [        { CONTROL FOOTING } { control-foot-name } } ]
     [        { CF              } { FINAL             } } ]
     [        { PAGE FOOTING }                          } ]
     [        { PF           }                          } ]
     [        { REPORT FOOTING }                        } ]
     [        { RF             }                        } ]

     [ [ USAGE IS ] DISPLAY ] .

2format

 The Report Group Description entry specifies the characteristics of a
 report group and of the individual items within a report group.

 Format 2 -

  level-number [ group-data-name ]

     [LINE NUMBER IS { line-num [ON NEXT PAGE] } ]
     [               { PLUS line-num-plus      } ]

     [ [ USAGE IS ] DISPLAY ] .

3format PIC

 The Report Group Description entry specifies the characteristics of a
 report group and of the individual items within a report group.

 Format 3 -

  level-number [ group-data-name ]

     [BLANK WHEN ZERO]

     [COLUMN NUMBER IS column-num]

     [GROUP INDICATE]

     [ { JUSTIFIED } RIGHT ]
     [ { JUST      }       ]

     [LINE NUMBER IS { line-num [ON NEXT PAGE] } ]
     [               { PLUS line-num-plus      } ]

      { PICTURE } IS character-string
      { PIC     }

     [ [ SIGN IS ] { LEADING  } SEPARATE CHARACTER ]
     [             { TRAILING }                    ]

     { SOURCE IS source-name                                           }
     { VALUE IS lit                                                    }
     { {SUM {sum-name} ... [UPON {detail-report-group-name} ... ]} ... }
     {     [RESET ON { control-foot-name } ]                           }
     {     [         { FINAL             } ]                           }

     [ [ USAGE IS ] DISPLAY ] .

miscellaneous topics

Additional information available:

data division entriesrecord alignment boundaries

data division entries

 A Data Division entry begins with a level indicator or level-number and
 is followed, in order, by:

   1)  A space
   2)  The name of a data item or file connector
   3)  A sequence of independent descriptive clauses
   4)  A separator period

 The level indicators are:

   FD  (for file description entries)
   SD  (for sort-merge file description entries)
   RD  (for report file description entries)
   DB  (for sub-schema entries)
   LD  (for keeplist entries)

 Level indicators start in Area A.

 Entries that begin with level-numbers are called data description
 entries.  The level-number values are 01 through 49, 66, 77, and 88.

record alignment boundaries

 The alignment boundaries for a record are shown in the following table.
 The boundary is the leftmost location of the one-, two-, four-, or
 eight-byte area.  All boundaries are relative to the beginning of the
 record.

 +-----------------------------------------------+
 |0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2|  SYNCHRONIZED clause
 |0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3|    affects these
 |-----------------------------------------------|      Data Types
 |B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|  v--------v--------v
 |---+---+---+---+---+---+---+---+---+---+---+---|
 |2by|2by|2by|2by|2by|2by|2by|2by|2by|2by|2by|2by|COMP PIC 9 to 9(4)
 |-------+-------+-------+-------+-------+-------|
 |4-byte |4-byte |4-byte |4-byte |4-byte |4-byte |COMP PIC 9(5) to 9(9)
 |               |               |               |COMP-1  POINTER  INDEX
 |---------------+---------------+---------------|
 |8-byte         |8-byte         |8-byte         |<-----+
 +-----------------------------------------------+      |
                                                      COMP-2
                                                COMP PIC 9(10) to 9(18)

PROCEDURE_DIVISION

 The Procedure Division contains the routines that process the files and
 data described in the Environment and Data Divisions.

Additional information available:

ACCEPTADDALTERCALLCANCELCLOSECOMMIT
COMPUTECONNECTCONTINUEDELETEDISCONNECTDISPLAY
DIVIDEERASEEVALUATEEXITFETCHFINDFREE
GENERATEGETGO_TOIFINITIALIZEINITIATEINSPECT
KEEPMERGEMODIFYMOVEMULTIPLYOPENPERFORM
READREADYRECONNECTRECORDRELEASERETURN
REWRITEROLLBACKSEARCHSETSORTSTARTSTOP
STORESTRINGSUBTRACTSUPPRESSTERMINATEUNLOCK
UNSTRINGUSEWRITE

1format declaratives2formatmiscellaneous topics

1format declaratives

 The Procedure Division contains the routines that process the files and
 data described in the Environment and Data Divisions.

 Format 1 -

 [ PROCEDURE DIVISION  [ USING {data-name} ... ]  [ GIVING identifier ] .

 [ DECLARATIVES.
 { section-name SECTION [ segment-number ] . declarative-sentence
 [ paragraph-name. [sentence] ... ] ... } ...
  END DECLARATIVES. ]

 { section-name SECTION [ segment-number ] .
 [ paragraph-name. [sentence] ... ] ... } ... ]

2format

 The Procedure Division contains the routines that process the files and
 data described in the Environment and Data Divisions.

 Format 2 -

 [ PROCEDURE DIVISION  [ USING {data-name} ... ]  [ GIVING identifier ] .

 [ paragraph-name. [sentence] ... ] ... ]

miscellaneous topics

Additional information available:

arithmetic-expressionsconditional expressionsdatabase key identifiersdeclaratives
I-O statusidentifiersfunctionsindexingphrasesqualificationrecord selection expressions
reference modificationsegmentationsubscripting

arithmetic-expressions

 An arithmetic expression can be one of the following:

   1)  An identifier (including function-identifier)
       of a numeric elementary item
   2)  A numeric literal
   3)  Two or more of the above choices separated by arithmetic
       operators (+, -, *, /, **)
   4)  Two or more arithmetic expressions separated by an arithmetic
       operator (+, -, *, /, **)
   5)  An arithmetic expression enclosed in parentheses

 A unary operator (a sign) can precede any arithmetic expression.

 The identifiers and literals in an arithmetic expression must represent
 either: (1) numeric elementary items (including functions),
 or (2) numeric literals on which arithmetic can be performed.

conditional expressions

 A conditional expression specifies a condition the program must
 evaluate to determine the path of program flow.

Additional information available:

abbreviatedclasscombined and negated combinedcondition-name
database key conditionmember database conditionnegated simple
relationsignsuccess-failureswitch-statustenancy database condition

abbreviated
 When you combine simple or negated simple conditions in a consecutive
 sequence, you can abbreviate any of the relation conditions except
 the first.  You can do this by either:

   1)  Omitting the subject of the relation condition
   2)  Omitting both the subject and the relational operator of the
       condition

 A relation condition in the consecutive sequence must contain a
 subject (or subject and relational operator) that is common with the
 preceding relation condition.  There must be no parentheses in the
 consecutive sequence.

 Format -

 relation-condition { { AND } [NOT] [relational-operator] object } ...
                    { { OR  }                                    }
class
 The class condition tests whether the contents of an operand are
 numeric or alphabetic.  It also determines if an alphabetic operand
 contains only uppercase or only lowercase characters or if the
 operand is a class-name.

 Format -

                        { NUMERIC          }
  identifier IS [ NOT ] { ALPHABETIC       }
                        { ALPHABETIC-LOWER }
                        { ALPHABETIC-UPPER }
                        { class-name       }

Additional information available:

class-name

class-name
 is the user-defined word for a class. It always possesses the
 global attribute
combined and negated combined
 A combined condition results from connecting conditions with one of
 the logical operators AND or OR.

 Format -

  condition { { AND } condition } ...
            { { OR  }           }


 condition
   can be
     1)  A simple condition
     2)  A negated simple condition
     3)  A combined condition
     4)  A negated combined condition
     5)  Valid combinations of the preceding conditions
condition-name
 The condition-name condition determines if a data item contains a
 value assigned to one of that item's condition-names.  The term
 conditional variable refers to the data item.  Condition-name refers
 to a level 88 entry associated with that item.

 Format -

  condition-name
database key condition
 Database conditions allow alternate paths of control depending on the
 truth value of a test involving conditions peculiar to the database
 environment.  The database conditions are the tenancy, member, and
 database key conditions.

 The database key condition determines whether: (1) two database key
 values identify the same database record, (2) a database key value
 is null, or (3) a database key value is identical to any database
 key value in a keeplist.

 Format -

                          { ALSO database-key    }
  database-key IS [ NOT ] { NULL                 }
                          { WITHIN keeplist-name }


 database-key
  references a currency indicator or a keeplist entry in the
  Sub-Schema Section.
member database condition
 Database conditions allow alternate paths of control depending on the
 truth value of a test involving conditions peculiar to the database
 environment.  The database conditions are the tenancy, member, and
 database key conditions.

 The member condition determines whether member records are present
 in one or more sets.  Only member record types defined in the
 Sub-Schema Section are considered in determining the truth value of
 the condition.

 Format -

  [ set-name IS ]   [ NOT ]   EMPTY


 set-name
  is a subschema set name.
negated simple
 The logical operator NOT negates a simple condition.  The truth value
 of a negated simple condition is the opposite of the simple
 condition's truth value.  Thus, the truth value of a negated simple
 condition is true only if the simple condition's truth value is
 false.  It is false only if the simple condition's truth value is
 true.

 Format -

  NOT simple-condition
relation
 A relation condition states a relation between two operands.  The
 program compares the operands to determine whether the stated
 relation is true or false.  The first operand is called the
 condition's subject.  The second operand is called its object.
 Either operand can be: (1) an identifier, (2) a literal, or (3) the
 value of an arithmetic expression.  The set of words that specifies
 the type of comparison is called the relational operator.

 Format -

                   {IS [NOT] GREATER THAN      }
                   {IS [NOT] >                 }
                   {IS [NOT] LESS THAN         }
 {identifier-1   } {IS [NOT] <                 } {identifier-2   }
 {literal-1      } {IS [NOT] EQUAL TO          } {literal-2      }
 {arith-express-1} {IS [NOT] =                 } {arith-express-2}
                   {IS GREATER THAN OR EQUAL TO}
                   {IS >=                      }
                   {IS LESS THAN OR EQUAL TO   }
                   {IS <=                      }

sign
 The sign condition determines if the algebraic value of an arithmetic
 expression is less than, greater than, or equal to zero.

 Format -

                                   { POSITIVE }
  arithmetic-expression IS [ NOT ] { NEGATIVE }
                                   { ZERO     }
success-failure
 This condition tests the return status codes of COBOL and non-COBOL
 procedures for success or failure conditions.

 Format -

  status-code-id IS { SUCCESS }
                    { FAILURE }


 status-code-id
  must be a word or longword COMP integer as represented by
  PIC S9(1 to 9) COMP.
switch-status
 The switch-status condition tests the "on" or "off" setting of an
 external logical program switch.

 Format -

  condition-name
tenancy database condition
 Database conditions allow alternate paths of control depending on the
 truth value of a test involving conditions peculiar to the database
 environment.  The database conditions are the tenancy, member, and
 database key conditions.

 The tenancy conditions determine whether a record in the database is
 an owner, or member, or a tenant in one or more sets.

 Format -

                       { OWNER  }
  [ NOT ] [ set-name ] { MEMBER }
                       { TENANT }


 set-name
  is a subschema set name.

database key identifiers

 Database key identifiers are in Record Selection Expressions.

 If a database exception condition occurs during the execution of a
 FETCH or FIND statement, the Database Control System (DBCS) places a
 database exception condition code in the special register
 DB-CONDITION.  This code identifies the condition.  The DBCS also
 places the record name of database-record in the special register
 DB-CURRENT-RECORD-NAME and its UID in DB-CURRENT-RECORD-ID.

 Format 1 - Currency Indicator Access

           [        { record-name } ]
   CURRENT [ WITHIN { set-name    } ]
           [        { realm-name  } ]

 Format 2 - Keeplist Access

   { OFFSET integer-exp }
   { FIRST              } WITHIN keeplist-name
   { LAST               }

declaratives

 Declaratives specify procedures to be executed only when certain
 conditions occur.  You must write declarative procedures at the
 beginning of the Procedure Division in consecutive sections.  The key
 word DECLARATIVES begins the declaratives part of the Procedure
 Division; the pair of key words END DECLARATIVES ends it.  Each of
 these reserved word phrases must: (1) be on a line by itself, starting
 in Area A; and (2) be followed by a separator period.

 When you use declarative procedures, you must divide the remainder of
 the Procedure Division into sections.

 Format -

  [ DECLARATIVES.

  { section-name SECTION [ segment-number ] . declarative-sentence

  [ paragraph-name. [sentence] ... ] ... } ...

    END DECLARATIVES. ]

I-O status

 If a file description entry has a FILE STATUS clause, a value is placed
 in the two-character FILE STATUS data item during execution of a CLOSE,
 DELETE, OPEN, READ, REWRITE, START, UNLOCK, or WRITE statement.  Two
 "keys" combine to form this value.  Status Key 1 occupies the leftmost
 character position in the item and Status Key 2 occupies the rightmost
 position.  In combination, the keys indicate the status of the
 input-output operation.

identifiers

 In Procedure Division rules, the term identifier means the
 complete specification of a data item. The term refers to
 all words required to make your reference to the item
 unique.  To reference a data item that is a function, a
 function-identifier is used.

 Format 1 -

  data-name [ qualification ] [ subscripting ] [ reference modification ]

 Format 2 -

  data-name [ qualification ] [ indexing ] [ reference modification ]

 Format 3 -

  FUNCTION function-name [ ({argument}...) ] [ reference modification ]

functions

 A function (synonymous with intrinsic function) is a temporary data
 item that represents a value to be determined at the time the
 function is referenced during the execution of a statement.  The
 value can be alphanumeric, numeric, or integer.

 A function-identifier is a syntactically correct combination of
 character strings and separators that uniquely references the data
 item resulting from the evaluation of a function.   Functions are
 treated as elementary data items, but cannot be  receiving operands. A
 function-identifier that references an alphanumeric function can be
 specified wherever an identifier is permitted and where a reference to
 a function is not specifically prohibited by general-format rules. An
 integer or numeric function can be used anywhere an arithmetic
 expression can be used, subject to certain restrictions.

 The general format of a function-identifier is as follows:

 FUNCTION function-name [({argument}... )] [reference-modifier]

A function-name is one of the names listed below. Most function-names
are key words but not reserved words (the exceptions are LENGTH,
RANDOM, and SUM, which are reserved words, as is FUNCTION), and  can
be used in a program outside the context of a function.

 An argument is an identifier (including a function-identifier),  a
 literal, or an arithmetic expression that complies with the specific
 rules governing the number, class, and category of arguments for the
 function.   The arguments in an argument list may be separated by a
 comma; they are evaluated individually, from left to right.

 A reference-modifier can be specified only for alphanumeric functions.
 It specifies the beginning character position and optionally the
 length of the resulting data item.

 The functions are listed below.  For a complete description of the
 functions, including their formats, see the chapter on Intrinsic
 Functions in the VAX COBOL Reference Manual.

 ACOS               LENGTH         ORD-MIN
 ANNUITY            LOG            PRESENT-VALUE
 ASIN               LOG10          RANDOM
 ATAN               LOWER-CASE     RANGE
 CHAR               MAX            REM
 COS                MEAN           REVERSE
 CURRENT-DATE       MEDIAN         SIN
 DATE-OF-INTEGER    MIDRANGE       SQRT
 DAY-OF-INTEGER     MIN            STANDARD-DEVIATION
 FACTORIAL          MOD            SUM
 INTEGER            NUMVAL         TAN
 INTEGER-OF-DATE    NUMVAL-C       UPPER-CASE
 INTEGER-OF-DAY     ORD            VARIANCE
 INTEGER-PART       ORD-MAX        WHEN-COMPILED

indexing

 Indexing is a special subscripting procedure.  In indexing, you use the
 INDEXED BY phrase of the OCCURS clause to assign an index-name to each
 table level.  You then refer to a table element using the index-name as
 a subscript.

 Format -

  { data-name      } ( { , index-name [ { + } literal-2 ] }     )
  { condition-name } ( {              [ { - }           ] } ... )
                     ( { , literal-1                      }     )

phrases

Additional information available:

AT_ENDAT_END-OF-PAGECORRESPONDINGFROMINTO
INVALID_KEYNOT_AT_ENDNOT_AT_END-OF-PAGE
NOT_INVALID_KEYNOT_ON_EXCEPTIONNOT_ON_OVERFLOWNOT_ON_SIZE_ERROR
ON_EXCEPTIONON_OVERFLOWON_SIZE_ERRORRETAINING
ROUNDED

NOT ON ERROR databaseON ERROR database

AT_END
 The AT END phrase specifies the action your program takes when the AT
 END condition occurs.

 Format -

  AT END stment
AT_END-OF-PAGE
 The AT END-OF-PAGE phrase specifies the action your program takes
 when the AT END-OF-PAGE condition occurs.

 Format -

  AT END-OF-PAGE stment
CORRESPONDING
 The CORRESPONDING option allows you to specify group items as
 operands in order to use their corresponding subordinate items in an
 operation.
FROM
 Format 1 -

  record-name FROM identifier

 Format 2 -

  FROM { keeplist-name } ...


 Keeplist-name refers to a user-defined keeplist in the Sub-Schema
 Section.

 Record-name and identifier must not refer to the same storage area.

 After statement execution ends, the data in the area referenced by
 identifier is available to the program.  The data is not available in
 the area referenced by record-name, unless there is an applicable
 SAME clause.
INTO
 The INTO phrase implicitly moves a current record from the record
 storage area into an identifier.

 Format -

  file-name INTO identifier
INVALID_KEY
 The INVALID KEY phrase specifies the action your program takes when
 an invalid key condition is detected for the file being processed.

 Format -

  INVALID KEY stment
NOT_AT_END
 The NOT AT END phrase specifies the action your program takes when
 the AT END condition does not occur.

 Format -

  NOT AT END stment
NOT_AT_END-OF-PAGE
 The NOT AT END-OF-PAGE phrase specifies the action your program takes
 when the AT END-OF-PAGE condition does not occur.

 Format -

  NOT AT END-OF-PAGE stment
NOT_INVALID_KEY
 The NOT INVALID KEY phrase specifies the action your program takes
 when an invalid key condition is not detected for the file being
 processed.

 Format -

  NOT INVALID KEY stment
NOT ON ERROR database
 The database on error exception condition occurs when the Database
 Control System (DBCS) encounters any database exception condition for
 any Data Manipulation Language (DML) statement.

 The NOT ON ERROR phrase in a DML statement allows the selection of an
 imperative statement sequence when any database exception condition
 does not occur.

 Format -

  NOT ON ERROR stment
NOT_ON_EXCEPTION
 The NOT ON EXCEPTION phrase allows execution of an imperative
 statement when an exception (or error) condition does not occur.

 Format -

  NOT ON EXCEPTION stment
NOT_ON_OVERFLOW
 The NOT ON OVERFLOW phrase allows you to specify an action for your
 program to take when an overflow condition does not exist.

 Format -

  NOT ON OVERFLOW stment
NOT_ON_SIZE_ERROR
 The NOT ON SIZE ERROR phrase allows you to specify an action for your
 program to take when a size error condition does not exist.

 Format -

  NOT ON SIZE ERROR stment
ON ERROR database
 The database on error exception condition occurs when the Database
 Control System (DBCS) encounters any database exception condition for
 any Data Manipulation Language (DML) statement.

 The ON ERROR phrase in a DML statement allows the selection of an
 imperative statement sequence when any database exception condition
 occurs.

 Format -

  ON ERROR stment
ON_EXCEPTION
 The ON EXCEPTION phrase allows execution of an imperative statement
 when an exception (or error) condition occurs.

 The ON EXCEPTION option of the CALL statement prevents control
 transfer of the CALL and triggers the execution of the imperative
 statement related to the CALL.

 The ON EXCEPTION option of the ACCEPT statement allows you to handle
 data entry errors when ACCEPTing into a numeric data field WITH
 CONVERSION.

 Format -

  ON EXCEPTION stment
ON_OVERFLOW
 The ON OVERFLOW phrase allows you to specify an action for your
 program to take when an overflow condition exists.

 Format -

  ON OVERFLOW stment
ON_SIZE_ERROR
 The ON SIZE ERROR phrase allows you to specify an action for your
 program to take when a size error condition exists.

 Format -

  ON SIZE ERROR stment
RETAINING
 The RETAINING clause specifies which currency indicators are not
 updated during the execution of the CONNECT, FETCH, FIND, MODIFY,
 RECONNECT, and STORE statements.

 Format -

  [           [ {|   REALM                  |} ]          ]
  [ RETAINING [ {|   RECORD                 |} ] CURRENCY ]
  [           [ {| { SET [ set-name ] ... } |} ]          ]
  [           [ {| { { set-name } ...     } |} ]          ]


 set-name
  is a subschema set name.
ROUNDED
 The rounding operation adds 1 to the absolute value of the low-order
 digit of the resultant identifier if the absolute value of the next
 least significant (lower-valued) digit of the intermediate data item
 is greater than or equal to 5.

 If you do not use the ROUNDED phrase, any excess digits in the
 arithmetic result are truncated when the result is moved to the
 resultant identifier(s).

qualification

 A reference to a user-defined word is unique if:

   1)  no other name has the same spelling, including hyphenation,
   2)  it is a part of a REDEFINES clause (the reference following the
       word REDEFINES is unique because of clause placement), or
   3)  scoping rules make it unique.

 A name in a hierarchy of names can occur in more than one place in your
 program.  Unless you are redefining it, you must refer to this
 nonunique name using one or more higher-level names in the hierarchy.
 These higher-level names are called qualifiers.  Using them to achieve
 uniqueness of reference is called qualification.

 To make your reference unique, you need not specify all available
 qualifiers for a name, only the one(s) necessary to avoid ambiguity.

 You cannot use the same data-name as:

   1)  The name of an external record and as the name of any other
       external data item in any program contained within or containing
       the program describing the external data record.

   2)  The name of an item possessing the global attribute and as the
       name of any other data item in the program describing the global
       data item.

Additional information available:

1format file2format paragraph3format text4format LINAGE5format PAGE LINE
6format report7format RMS

1format file
 Format 1 -

                   { { { IN } data-name-2 } ... [ { IN } file-name ] }
 { data-name-1    }{ { { OF }             }     [ { OF }           ] }
 { condition-name }{    { IN } file-name                             }
                   {    { OF }                                       }
2format paragraph
 Format 2 -

  paragraph-name { IN } section-name
                 { OF }
3format text
 Format 3 -

  text-name { IN } library-name
            { OF }
4format LINAGE
 Format 4 -

  LINAGE-COUNTER { IN } file-name
                 { OF }
5format PAGE LINE
 Format 5 -

  { PAGE-COUNTER } { IN } report-name
  { LINE-COUNTER } { OF }
6format report
 Format 6 -

              { { IN } data-name-4 [ { IN } report-name ] }
  data-name-3 { { OF }             [ { OF }             ] }
              {  { IN } report-name                       }
              {  { OF }                                   }
7format RMS
 Format 7 -

  { RMS-STS      } { IN } file-name
  { RMS-STV      } { OF }
  { RMS-FILENAME }

record selection expressions

 A record selection expression is used to select a record in the
 database.  It can be used in a FETCH or FIND statement.  The record
 thus selected becomes the current record of the run unit upon which
 subsequent statements may operate when accessing the database.

Additional information available:

1format database key identifier access2format set owner access3format record search access
4format database key access

1format database key identifier access
 This format selects a record by a database key value held by the
 Database Control System (DBCS) in a currency indicator or a keeplist
 entry.

 Format 1 - Database Key Identifier Access

  database-key-identifier

Additional information available:

database-key-identifier

database-key-identifier
 identifies a record according to the rules of Database Key
 Identifiers.
2format set owner access
 This format selects the record that owns a set.

 Format 2 - Set Owner Access

  OWNER WITHIN set-name

Additional information available:

set-name

set-name
 is a subschema set name.  The Database Control System (DBCS) uses
 the currency indicator for set-name to choose the owner record of
 that set occurrence.  A database exception condition occurs if
 set-name is a singular set (DB-CONDITION is set to DBM$_SINGTYP) or
 if the currency indicator for the set type is null (DB-CONDITION is
 set to DBM$_CSTYP_NULL).
3format record search access
 This format selects a record by its position within a collection of
 records and optionally by its record type and contents.

 Format 3 - Record Search Access

 { FIRST                }
 { LAST                 }
 { NEXT                 }
 { PRIOR                }
 { ANY                  }
 { DUPLICATE            }
 { [ RELATIVE ] int-exp }

   [record-name] [ WITHIN { realm-name } ] [ USING { rec-key } ... ]
                 [        { set-name   } ] [ WHERE { bool-expres } ]

Additional information available:

int-exprealm-namerecord-nameset-namerec-keybool-expres

int-exp
 is an integer or arithmetic expression resulting in a longword
 integer value.  It cannot be zero.
realm-name
 is a subschema realm name.
record-name
 is a subschema record name.
set-name
 is a subschema set name.
rec-key
 is a key data item within the subschema record occurrence.  The
 same rec-key can appear only once in a given USING phrase.
bool-expres
 is a conditional expression that involves data items of the object
 record.  It is used to specify additional requirements of a
 qualifying record.

   bool-expres:
     { bool-alt [ OR bool-alt ] ... }
   bool-alt:
     { simp-bool-rel [ AND simp-bool-rel ] ... }
   simp-bool-rel:
     { bool-condit     }
     { NOT bool-expres }
   bool-condit:
     {          {              {[ NOT ] EQUAL TO          } }         }
     {          {              {[ NOT ] =                 } }         }
     {          {              {[ NOT ] LESS THAN         } }         }
     {          { IS           {[ NOT ] <                 } }         }
     {          {              {[ NOT ] GREATER THAN      } }         }
     {          {              {[ NOT ] >                 } }         }
     { { id  }  {              { GREATER THAN OR EQUAL TO } } { id  } }
     { { lit }  {              { >=                       } } { lit } }
     {          {              { LESS THAN OR EQUAL TO    } }         }
     {          {              { <=                       } }         }
     {          { DOES         {[ NOT ] CONTAIN           } }         }
     {          {              {[ NOT ] CONTAINS          } }         }
     {          {              {[ NOT ] MATCH             } }         }
     {          {              {[ NOT ] MATCHES           } }         }

Additional information available:

bool-altsimp-bool-relbool-condit

bool-alt
 is one or more sub-expressions (simp-bool-rel).  Pairs of
 sub-expressions are joined by the logical operator AND.
simp-bool-rel
 is a simple-condition (bool-condit), an expression, or the
 negation of either.
bool-condit
 a simple-condition is a relation involving two operands joined by
 a relational operator.  At least one operand in each relation
 must be an item in the record being found or fetched.
4format database key access
 This format selects the record that is referred to by the database
 key value contained in the special register DB-KEY.

 Format 4 - Database Key Access

   DBKEY

reference modification

 Reference modification defines a subset of a data item by specifying
 its leftmost character and length.

 Format 1 -

  data-name ( leftmost-character-position : [ length ] )

 Format 2 -

  FUNCTION function-name [ ({argument}...) ]

     ( leftmost-character-position : [ length ] )

segmentation

 VAX COBOL programs execute in a virtual memory environment.  Therefore,
 programs need not manage physical memory by overlaying Procedure
 Division code.

 In VAX COBOL, segmentation controls the assignment of Procedure
 Division sections to fixed or independent segments.  The optional
 segment-number in the section header specifies the type of segment.

 Format -

  section-name SECTION [ segment-number ] .

Additional information available:

section-namesegment-numberfixed segmentsindependent segments

section-name
 names a Procedure Division section.
segment-number
 must be an integer in the range 0 through 99.  If there is no
 segment-number in a section header, the implied segment-number is 0.
fixed segments
 Fixed segments appear to reside in memory at all times.  A fixed
 segment is in its initial state the first time the program calls it.
 On later calls, the fixed segment is in its last-used state.
independent segments
 The state of an independent segment depends on how and when it
 receives control.

subscripting

 Subscripts can appear only in references to individual elements in a
 list, or table, of like elements that do not have individual
 data-names.

 Format -

  { data-name      } ( { arithmetic-expression } ... )
  { condition-name }

ACCEPT

 The ACCEPT statement makes low-volume data available to the program.
 The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
 COBOL language additions that facilitate video forms design and data
 handling.

Additional information available:

1format FROM input2format FROM3format screen extensions4format screen extensions CONTROL KEY

1format FROM input

 The ACCEPT statement makes low-volume data available to the program.
 The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
 COBOL language additions that facilitate video forms design and data
 handling.

 Format 1 -

  ACCEPT dest-item [FROM input-source]

     [ AT END stment ] [ NOT AT END stment ]

     [ END-ACCEPT ]

Additional information available:

dest-iteminput-sourcestment

dest-item
 is the identifier of a data item into which data is accepted.
input-source
 is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the
 Environment Division.
stment
 is an imperative statement executed for an AT END or NOT AT END
 condition.

2format FROM

 The ACCEPT statement makes low-volume data available to the program.
 The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
 COBOL language additions that facilitate video forms design and data
 handling.

 Format 2 -

                        { DATE        }
  ACCEPT dest-item FROM { DAY         }
                        { DAY-OF-WEEK }
                        { TIME        }

Additional information available:

dest-item

dest-item
 is the identifier of a data item into which data is accepted.

3format screen extensions

 The ACCEPT statement makes low-volume data available to the program.
 The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
 COBOL language additions that facilitate video forms design and data
 handling.

 Format 3 -

  ACCEPT dest-item

     {|                  { line-num                      }      |}
     {| FROM LINE NUMBER { line-id [ PLUS [ plus-num ] ] }      |}
     {|                  { PLUS [ plus-num ]             }      |}
     {|                    { column-num                       } |}
     {| FROM COLUMN NUMBER { column-id [ PLUS [ plus-num ] ]  } |}
     {|                    { PLUS [ plus-num ]                } |}
     {| ERASE [TO END OF] { SCREEN }                            |}
     {|                   { LINE   }                            |}
     {| WITH BELL                                               |}
     {| UNDERLINED                                              |}
     {| BOLD                                                    |}
     {| WITH BLINKING                                           |}
     {| PROTECTED [| SIZE { prot-size-lit  }   |]               |}
     {|           [|      { prot-size-item }   |]               |}
     {|           [| WITH AUTOTERMINATE        |]               |}
     {|           [| WITH EDITING              |]               |}
     {|           [| WITH NO BLANK             |]               |}
     {|           [| WITH FILLER prot-fill-lit |]               |}
     {| WITH CONVERSION                                         |}
     {| REVERSED                                                |}
     {| WITH NO ECHO                                            |}
     {| DEFAULT IS { def-src-lit   }                            |}
     {|            { def-src-item  }                            |}
     {|            { CURRENT VALUE }                            |}
     {| CONTROL KEY IN key-dest-item                            |}

     { [ ON EXCEPTION stment ] [ NOT ON EXCEPTION stment  ] }
     { [ AT END stment ] [ NOT AT END stment  ]             }

     [ END-ACCEPT ]

Additional information available:

dest-itemline-numline-idcolumn-numcolumn-idplus-numprot-size-lit
prot-size-itemprot-fill-litdef-src-litdef-src-itemkey-dest-itemstment

dest-item
 is the identifier of a data item into which data is accepted.
line-num
 is a numeric literal that specifies a line position on the terminal
 screen.  Line-num must be a positive integer.  It cannot be zero.
line-id
 is the identifier of a data item that provides a line position on the
 terminal screen.
column-num
 is a numeric literal that specifies a column position on the terminal
 screen.  Column-num must be a positive integer.  It cannot be zero.
column-id
 is the identifier of a data item that provides a column position on
 the terminal screen.
plus-num
 is a numeric literal that increments the current value for line or
 column position, or that increments the value of line-id or
 column-id.  Plus-num can be zero or a positive integer.
prot-size-lit
 is a numeric literal that specifies the maximum length of the video
 screen field into which data can be typed.  Prot-size-lit must be a
 positive integer.  It cannot be zero.
prot-size-item
 is the identifier of a numeric integer data item that specifies
 the maximum length of the video screen field into which data can
 be typed.  It must be a positive integer; it cannot be zero.
prot-fill-lit
 is a single character alphanumeric literal that is used to initialize
 each character position of a protected video screen field into which
 data can be typed.
def-src-lit
 is a nonnumeric literal or a figurative constant.  However, it cannot
 be the figurative constant ALL literal.
def-src-item
 is the identifier of an alphanumeric data item.
key-dest-item
 is the identifier of a data item that defines a control key.
 Key-dest-item must specify an alphanumeric data item at least four
 characters in length.
stment
 is an imperative statement executed for an AT END, NOT AT END,
 ON EXCEPTION or NOT ON EXCEPTION condition.

4format screen extensions CONTROL KEY

 The ACCEPT statement makes low-volume data available to the program.
 The DIGITAL extensions to the ACCEPT statement (forms 3 and 4) are
 COBOL language additions that facilitate video forms design and data
 handling.

 Format 4 -

  ACCEPT CONTROL KEY IN key-dest-item

     {|                  { line-num                      }      |}
     {| FROM LINE NUMBER { line-id [ PLUS [ plus-num ] ] }      |}
     {|                  { PLUS [ plus-num ]             }      |}
     {|                    { column-num                       } |}
     {| FROM COLUMN NUMBER { column-id [ PLUS [ plus-num ] ]  } |}
     {|                    { PLUS [ plus-num ]                } |}
     {| ERASE [TO END OF] { SCREEN }                            |}
     {|                   { LINE   }                            |}
     {| WITH BELL                                               |}

     { [ ON EXCEPTION stment ] [ NOT ON EXCEPTION stment  ] }
     { [ AT END stment ] [ NOT AT END stment  ]             }

     [ END-ACCEPT ]

Additional information available:

line-numline-idcolumn-numcolumn-idplus-numkey-dest-itemstment

line-num
 is a numeric literal that specifies a line position on the terminal
 screen.  Line-num must be a positive integer.  It cannot be zero.
line-id
 is the identifier of a data item that provides a line position on the
 terminal screen.
column-num
 is a numeric literal that specifies a column position on the terminal
 screen.  Column-num must be a positive integer.  It cannot be zero.
column-id
 is the identifier of a data item that provides a column position on
 the terminal screen.
plus-num
 is a numeric literal that increments the current value for line or
 column position, or that increments the value of line-id or
 column-id.  Plus-num can be zero or a positive integer.
key-dest-item
 is the identifier of a data item that defines a control key.
 Key-dest-item must specify an alphanumeric data item at least four
 characters in length.
stment
 is an imperative statement executed for an AT END, NOT AT END, ON EXCEPTION
 or NOT ON EXCEPTION condition.

ADD

 The ADD statement adds two or more numeric operands and stores the
 result.

Additional information available:

1format TO2format GIVING3format CORRESPONDING

1format TO

 The ADD statement adds two or more numeric operands and stores the
 result.

 Format 1 -

  ADD { num } ... TO { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-ADD ]

Additional information available:

numrsultstment

num
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item.  It is the resultant
 identifier.
stment
 is an imperative statement.

2format GIVING

 The ADD statement adds two or more numeric operands and stores the
 result.

 Format 2 -

  ADD { num } ... TO { num } GIVING { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-ADD ]

Additional information available:

numrsultstment

num
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
stment
 is an imperative statement.

3format CORRESPONDING

 The ADD statement adds two or more numeric operands and stores the
 result.

 Format 3 -

  ADD { CORRESPONDING } grp-1 TO grp-2 [ ROUNDED ]
      { CORR          }

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-ADD ]

Additional information available:

grpstment

grp
 is the identifier of a numeric group item.
stment
 is an imperative statement.

ALTER

 The ALTER statement changes the destination of a GO TO statement.

 Format -

  ALTER { proc TO [ PROCEED TO ] new-proc } ...

Additional information available:

procnew-proc

proc

 is the name of a paragraph that contains one sentence: a GO TO
 statement without the DEPENDING phrase.

new-proc

 is a procedure-name.

CALL

 The CALL statement transfers control to another program in the executable
 image.

 Format -

 CALL prog-name

    [     {{{ [BY REFERENCE] }        }} [{{BY REFERENCE }        }]     ]
    [     {{{ BY CONTENT     }        }} [{{BY CONTENT   }        }]     ]
    [USING{{{ BY DESCRIPTOR  }{arg}...}} [{{BY DESCRIPTOR}{arg}...}] ... ]
    [     {{{ BY VALUE       }        }} [{{BY VALUE     }        }]     ]
    [     { OMITTED                    } [ OMITTED                 ]     ]

    [ GIVING function-res ]

    { [ ON EXCEPTION stment ] [ NOT ON EXCEPTION stment ] }
    { [ ON OVERFLOW stment  ] [ NOT ON OVERFLOW stment  ] }

    [ END-CALL ]

Additional information available:

prog-nameargfunction-resstment

prog-name

 is a nonnumeric literal or the identifier of an alphanumeric data item.
 It is the name of the program to which control transfers.

arg

 is the argument.  It identifies the data that is available to both the
 calling and called programs.  It is any data item described in the
 Sub-Schema Section, File Section, Working-Storage Section, or Linkage
 Section, or it is a nonnumeric literal.

function-res

 is the identifier of an elementary integer numeric data item with COMP,
 COMP-1, or COMP-2 usage and no scaling positions.  Function-res can be
 subscripted, and it can be qualified.  When control returns to the
 calling program, function-res can contain a function result.

stment

 is an imperative statement.

CANCEL

 The CANCEL statement removes the logical relationship to another program.

 Format -

  CANCEL { prog-name } ...

Additional information available:

prog-name

prog-name

 is a nonumeric literal or the identifier of an alphanumeric data item.
 It contains the program-name of the program to be cancelled.

CLOSE

 The CLOSE statement ends processing of reels (or units) and files.  It
 can also perform rewind, lock, and removal operations.

 Format -

        {           [ { REEL } [ FOR REMOVAL    ] ] }
  CLOSE { file-name [ { UNIT } [ WITH NO REWIND ] ] } ...
        {           [ WITH { NO REWIND }          ] }
        {           [      { LOCK      }          ] }

Additional information available:

file-name

file-name

 is the name of a file described in the Data Division.  It cannot be a
 sort or merge file.

COMMIT

 The COMMIT statement ends your database transaction, makes permanent all
 changes made to the database since the last quiet point, and establishes
 a new quiet point for this run unit.

 Format -

  COMMIT [ RETAINING ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-COMMIT ]

Additional information available:

stment

stment

 is an imperative statement.

COMPUTE

 The COMPUTE statement evaluates an arithmetic expression and stores the
 result.

 Format -

  COMPUTE { rsult [ ROUNDED ] } ... =  arithmetic-expression

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-COMPUTE ]

Additional information available:

rsultstment

rsult

 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.

stment

 is an imperative statement.

CONNECT

 The CONNECT statement inserts the current record of the run unit as a
 member record into one or more sets.  The set occurrence for each
 insertion is determined by the currency indicator for the corresponding
 set type.

 Format -

  CONNECT [ record-name ] TO { { set-name } ... }
                             { ALL              }

     [           [{| REALM                    |}]          ]
     [ RETAINING [{| RECORD                   |}] CURRENCY ]
     [           [{| { SET [ set-name ] ... } |}]          ]
     [           [{| { { set-name } ...     } |}]          ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-CONNECT ]

Additional information available:

record-nameset-namestment

record-name

 names a subschema record type.

set-name

 names a subschema set type.

stment

 is an imperative statement.

CONTINUE

 The CONTINUE statement indicates that no executable statement is present.
 It causes an implicit control transfer to the next executable statement.

 Format -

  CONTINUE

DELETE

 The DELETE statement logically removes a record from a mass storage file.

 Format -

  DELETE file-name RECORD

  [ INVALID KEY stment ] [ NOT INVALID KEY stment ]

  [ END-DELETE ]

Additional information available:

file-namestment

file-name

 is the name of a relative or indexed file described in the Data
 Division.  It cannot be the name of a sequential file or a sort or
 merge file.

stment

 is an imperative statement.

DISCONNECT

 The DISCONNECT statement logically removes the current record of the run
 unit from one or more sets.

 Format -

  DISCONNECT [record-name] FROM { { set-name } ... }
                                { ALL              }

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-DISCONNECT ]

Additional information available:

record-nameset-namestment

record-name

  names a subschema record type.

set-name

 names a subschema set type.

stment

 is an imperative statement.

DISPLAY

 The DISPLAY statement transfers low-volume data from the program to the
 default system output device or to the object of a mnemonic-name.  The
 DIGITAL extensions to the DISPLAY statement (format 2) are COBOL
 language additions that facilitate video forms design and data
 handling.

Additional information available:

1format statement2format screen extensions

1format statement

 The DISPLAY statement transfers low-volume data from the program to the
 default system output device or to the object of a mnemonic-name.  The
 DIGITAL extensions to the DISPLAY statement (format 2) are COBOL
 language additions that facilitate video forms design and data
 handling.

 Format 1 -

  DISPLAY { src-item } ... [ UPON output-dest ] [ WITH NO ADVANCING ]

Additional information available:

src-itemoutput-dest

src-item
 is a literal or the identifier of a data item.  The literal can be
 any figurative constant including ALL literal.
output-dest
 is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the
 Environment Division.

2format screen extensions

 The DISPLAY statement transfers low-volume data from the program to the
 default system output device or to the object of a mnemonic-name.  The
 DIGITAL extensions to the DISPLAY statement (format 2) are COBOL
 language additions that facilitate video forms design and data
 handling.

 Format 2 -

 DISPLAY { src-item

     [{|                { line-num                      }      |}] }
     [{| AT LINE NUMBER { line-id [ PLUS [ plus-num ] ] }      |}] }
     [{|                { PLUS [ plus-num ]             }      |}] }
     [{|                  { column-num                       } |}] }
     [{| AT COLUMN NUMBER { column-id [ PLUS [ plus-num ] ]  } |}] }
     [{|                  { PLUS [ plus-num ]                } |}] }
     [{| ERASE [TO END OF] { SCREEN }                          |}] } ...
     [{|                   { LINE   }                          |}] }
     [{| WITH BELL                                             |}] }
     [{| UNDERLINED                                            |}] }
     [{| BOLD                                                  |}] }
     [{| WITH BLINKING                                         |}] }
     [{| REVERSED                                              |}] }
     [{| WITH CONVERSION                                       |}] }

     [ WITH NO ADVANCING ]

Additional information available:

src-itemoutput-destline-numline-idcolumn-numcolumn-idplus-num

src-item
 is a literal or the identifier of a data item.  The literal can be
 any figurative constant except ALL literal.
output-dest
 is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the
 Environment Division.
line-num
 is a numeric literal that specifies a line position on the terminal
 screen.  Line-num must be a positive integer.  It cannot be zero.
line-id
 is the identifier of a data item that provides a line position on the
 terminal screen.
column-num
 is a numeric literal that specifies a column position on the terminal
 screen.  Column-num must be a positive integer.  It cannot be zero.
column-id
 is the identifier of a data item that provides a column position on
 the terminal screen.
plus-num
 is a numeric literal that increments the current value for line or
 column position, or that increments the value of line-id or
 column-id.  Plus-num can be zero or a positive integer.

DIVIDE

 The DIVIDE statement divides one or more numeric data items by another.
 It stores the quotient and remainder.

Additional information available:

1format INTO2format INTO GIVING3format BY GIVING4format INTO with REMAINDER
5format BY with REMAINDER

1format INTO

 The DIVIDE statement divides one or more numeric data items by another.
 It stores the quotient and remainder.

 Format 1 -

  DIVIDE srcnum INTO { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-DIVIDE ]

Additional information available:

srcnumrsultstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item.  It is the resultant
 identifier.
stment
 is an imperative statement.

2format INTO GIVING

 The DIVIDE statement divides one or more numeric data items by another.
 It stores the quotient and remainder.

 Format 2 -

  DIVIDE srcnum INTO srcnum GIVING { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-DIVIDE ]

Additional information available:

srcnumrsultstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
stment
 is an imperative statement.

3format BY GIVING

 The DIVIDE statement divides one or more numeric data items by another.
 It stores the quotient and remainder.

 Format 3 -

  DIVIDE srcnum BY srcnum GIVING { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-DIVIDE ]

Additional information available:

srcnumrsultstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
stment
 is an imperative statement.

4format INTO with REMAINDER

 The DIVIDE statement divides one or more numeric data items by another.
 It stores the quotient and remainder.

 Format 4 -

  DIVIDE srcnum INTO srcnum GIVING rsult [ ROUNDED ] REMAINDER remaind

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-DIVIDE ]

Additional information available:

srcnumrsultremaindstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
remaind
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.
stment
 is an imperative statement.

5format BY with REMAINDER

 The DIVIDE statement divides one or more numeric data items by another.
 It stores the quotient and remainder.

 Format 5 -

  DIVIDE srcnum BY srcnum GIVING rsult [ ROUNDED ] REMAINDER remaind

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-DIVIDE ]

Additional information available:

srcnumrsultremaindstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
remaind
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.
stment
 is an imperative statement.

ERASE

 The ERASE statement deletes the current record of the run unit from the
 database.  Additional records owned by the current record may also be
 deleted and/or disconnected.

 Format -

  ERASE [ ALL ]  [ record-name ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-ERASE ]

Additional information available:

record-namestment

record-name

 names a subschema record type.

stment

 is an imperative statement.

EVALUATE

 The EVALUATE statement selects a program action based on the evaluation
 of one or more conditions.

 Format -

          { subj-item }   [      { subj-item } ]
 EVALUATE { TRUE      }   [ ALSO { TRUE      } ] ...
          { FALSE     }   [      { FALSE     } ]

     { {    { ANY                                   }
     { {    { cond                                  }
     { {WHEN{ TRUE                                  }
     { {    { FALSE                                 }
     { {    { [NOT] {obj-item [{THRU   } obj-item]} }
     { {    {       {         [{THROUGH}         ]} }

     [     { ANY                                  }]     }           }
     [     { cond                                 }]     }           }
     [ALSO { TRUE                                 }] ... } ... stment} ...
     [     { FALSE                                }]     }           }
     [     { [NOT] {obj-item [{THRU   } obj-item]}}]     }           }
     [     {       {         [{THROUGH}         ]}}]     }           }

     [ WHEN OTHER stment ]

     [ END-EVALUATE ]

Additional information available:

subj-itemcondobj-itemstment

subj-item

 is an identifier, an arithmetic or conditional expression, or a literal
 other than the figurative constant ZERO.

cond

 is a conditional expression.

obj-item

 is a literal, an identifier, or an arithmetic expression.

stment

 is an imperative statement.

EXIT

 The EXIT statement provides a common logical end point for a series of
 procedures.

 The EXIT PROGRAM statement marks the logical end of a called program.

Additional information available:

1statement2statement PROGRAM

1statement

 The EXIT statement provides a common logical end point for a series of
 procedures.

 Format -

  EXIT

2statement PROGRAM

 The EXIT PROGRAM statement marks the logical end of a called program.

 Format -

  EXIT PROGRAM

FETCH

 The FETCH statement is a combined FIND and GET that establishes a
 specific record in the database as the current record of the run unit and
 makes the record available to the run unit in the User Work Area.

 Format -

  FETCH database-record

     [ FOR UPDATE ]

     [          [{| REALM                    |}]         ]
     [RETAINING [{| RECORD                   |}] CURRENCY]
     [          [{| { SET [ set-name ] ... } |}]         ]
     [          [{| { { set-name } ...     } |}]         ]

     [{ [ AT END stment ]  [ NOT AT END stment ]      } ]
     [{ [ ON ERROR stment ]  [ NOT ON ERROR stment ]  } ]

     [ END-FETCH ]

Additional information available:

database-recordset-namestment

database-record

 represents a record selection expression.  References are made to a
 record in the data-base according to the rules for Record Selection
 Expressions.

set-name

 names a subschema set type.

stment

 is an imperative statement.

FIND

 The FIND statement locates a specific record in the database and
 establishes it as the current record of the run unit.

 The FIND ALL statement locates zero or more records in the database and
 inserts them into the named keeplist.

Additional information available:

1format2format ALL

1format

 The FIND statement locates a specific record in the database and
 establishes it as the current record of the run unit.

 Format 1 -

  FIND database-record [ FOR UPDATE ]

     [          [{| REALM                    |}]         ]
     [RETAINING [{| RECORD                   |}] CURRENCY]
     [          [{| { SET [ set-name ] ... } |}]         ]
     [          [{| { { set-name } ...     } |}]         ]

     [{ [ AT END stment ]  [ NOT AT END stment ]      } ]
     [{ [ ON ERROR stment ]  [ NOT ON ERROR stment ]  } ]

     [ END-FIND ]

Additional information available:

database-recordset-namestment

database-record
 represents a record selection expression.  References are made to a
 record in the database according to the rules for Record Selection
 Expressions.
set-name
 names a subschema set type.
stment
 is an imperative statement.

2format ALL

 The FIND ALL statement locates zero or more records in the database and
 inserts them into the named keeplist.

 Format 2 -

  FIND ALL keeplist-name [ record-name ] [ WITHIN { realm-name } ]
                                         [        { set-name   } ]

     [ USING { rec-key } ... ] [ FOR UPDATE ]
     [ WHERE { bool-exp }    ]

     [{ [ AT END stment ]  [ NOT AT END stment ]      } ]
     [{ [ ON ERROR stment ]  [ NOT ON ERROR stment ]  } ]

     [ END-FIND ]

Additional information available:

keeplist-namerecord-namerealm-nameset-namerec-keybool-expstment

keeplist-name
 names a keeplist in the Sub-Schema Section.
record-name
 is a subschema record name.
realm-name
 is a subschema realm name.
set-name
 is a subschema set name.
rec-key
 is a key data item within the subschema record occurrence.  The same
 rec-key can appear only once in a given USING phrase.
bool-exp
 is a conditional expression that involves data items of the object
 record.  It is used to specify additional requirements of a
 qualifying record.
stment
 is an imperative statement.

FREE

 The FREE statement empties selected keeplists or removes a database key
 value from a keeplist or currency indicator.

 Format -

       {         [        { record-name } ]          }
       { CURRENT [ WITHIN { set-name    } ]          }
       {         [        { realm-name  } ]          }
  FREE { { OFFSET integer-exp }                      }
       { { FIRST              } WITHIN keeplist-name }
       { { LAST               }                      }
       { ALL [ { FROM { keeplist-name } ... } ]      }
       {     [ { CURRENT                    } ]      }

       [ ON ERROR stment ] [ NOT ON ERROR stment ]

       [ END-FREE ]

Additional information available:

record-nameset-namerealm-nameinteger-expkeeplist-namestment

record-name

 is a subschema record name.

set-name

 is a subschema set name.

realm-name

 is a subschema realm name.

integer-exp

 is an arithmetic expression or integer.  It refers to a position in
 keeplist-name.  Integer-exp cannot be zero.

keeplist-name

 names a keeplist in the Sub-Schema Section.

stment

 is an imperative statement.

GENERATE

 The GENERATE statement directs the Report Writer Control System (RWCS) to
 produce a report according to the Report Description entry (RD) in the
 Report Section of the Data Division.

 Format -

   GENERATE report-item

Additional information available:

report-item

report-item

 names either a report-name in a Report Description entry, or the
 group-data-name of a TYPE IS DETAIL report group.

GET

 The GET statement moves the contents of the current database record of
 the run unit to your User Work Area.

 Format -

  GET [ record-name         ]
      [ { record-item } ... ]

      [ ON ERROR stment ] [ NOT ON ERROR stment ]

      [ END-GET ]

Additional information available:

record-namerecord-itemstment

record-name

 names a database subschema record type.

record-item

 is a group or elementary data item in a subschema record type.
 Record-item may be qualified.

stment

 is an imperative statement.

GO_TO

 The GO TO statement transfers control from one part of the Procedure
 Division to another.

Additional information available:

1format2format DEPENDING

1format

 The GO TO statement transfers control from one part of the Procedure
 Division to another.

 Format 1 -

  GO TO [ proc-name ]

Additional information available:

proc-name

proc-name
 is a procedure-name.

2format DEPENDING

 The GO TO statement transfers control from one part of the Procedure
 Division to another.

 Format 2 -

  GO TO { proc-name } ... DEPENDING ON num

Additional information available:

proc-namenum

proc-name
 is a procedure-name.
num
 is the identifier of an elementary numeric item described with no
 positions to the right of the assumed decimal point.

IF

 The IF statement evaluates a condition.  The condition's truth value
 determines the program action that follows.

 Format -

  IF condition THEN { { stment-1 } ... }
                    { NEXT SENTENCE    }

     [ ELSE { stment-2 } ... [ END-IF ] ]
     [ ELSE NEXT SENTENCE               ]
     [ END-IF                           ]

Additional information available:

stment

stment

 an imperative or conditional statement.  An imperative statement can
 precede a conditional statement.

INITIALIZE

 The INITIALIZE statement sets selected types of data fields to
 predetermined values.

 Format -



 INITIALIZE { fld-name } ...

     [           { { ALPHABETIC          }             }     ]
     [           { { ALPHANUMERIC        }             }     ]
     [ REPLACING { { NUMERIC             } DATA BY val } ... ]
     [           { { ALPHANUMERIC-EDITED }             }     ]
     [           { { NUMERIC-EDITED      }             }     ]

Additional information available:

fld-nameval

fld-name

 is the identifier of the receiving area data item.

val

 is the sending area.  It can be a literal or the identifier of a data
 item.

INITIATE

 The INITIATE statement causes the Report Writer Control System (RWCS) to
 begin processing a report.

 Format -

  INITIATE { report-name } ...

Additional information available:

report-name

report-name

 names a report defined by a Report Description entry (RD) in the Report
 Section of the Data Division.

INSPECT

 The INSPECT statement counts or replaces occurrences of single
 characters or groups of characters in a data item.

Additional information available:

1format TALLYING2format REPLACING3format TALLYING REPLACING
4format CONVERTING

1format TALLYING

 The INSPECT statement counts or replaces occurrences of single
 characters or groups of characters in a data item.

 Format 1 -

  INSPECT src-string TALLYING

  {
  { tally-ctr FOR
  {

   {
   {            [ { BEFORE }                   ]            }      }
   { CHARACTERS [ { AFTER  } INITIAL delim-val ] ...        } ...  } ...
   { { ALL     } {
   { { LEADING } { compare-val

                  [{ BEFORE }                   ]     }     }      }
                  [{ AFTER  } INITIAL delim-val ] ... } ... } ...  } ...


Additional information available:

src-stringtally-ctrcompare-valdelim-val

src-string
 is the identifier of a group item or an elementary data item with
 DISPLAY usage.  INSPECT operates on the contents of this data item.
tally-ctr
 is the identifier of an elementary numeric data item.
compare-val
 is the character-string INSPECT uses for comparison.  It is a
 nonnumeric literal (or figurative constant other than ALL literal) or
 the identifier of an elementary alphabetic, alphanumeric, or numeric
 data item with DISPLAY usage.
delim-val
 is the character-string that delimits the INSPECT operation.  Its
 content restrictions are the same as those for compare-val.

2format REPLACING

 The INSPECT statement counts or replaces occurrences of single
 characters or groups of characters in a data item.

 Format 2 -

 INSPECT src-string REPLACING

   { CHARACTERS BY replace-char [{ BEFORE } INITIAL delim-val] ... }
   {                            [{ AFTER  }                  ]     }
   { { ALL     }                                                   } ...
   { { LEADING } { compare-val BY replace-val
   { { FIRST   }

                        [ { BEFORE } INITIAL delim-val ] ... } ... }
                        [ { AFTER  }                   ]     }     }


Additional information available:

src-stringcompare-valdelim-valreplace-charreplace-val

src-string
 is the identifier of a group item or an elementary data item with
 DISPLAY usage.  INSPECT operates on the contents of this data item.
compare-val
 is the character-string INSPECT uses for comparison.  It is a
 nonnumeric literal (or figurative constant other than ALL literal) or
 the identifier of an elementary alphabetic, alphanumeric, or numeric
 data item with DISPLAY usage.
delim-val
 is the character-string that delimits the INSPECT operation.  Its
 content restrictions are the same as those for compare-val.
replace-char
 is the one-character item that replaces all characters.  Its content
 restrictions are the same as those for compare-val.
replace-val
 is the character-string that replaces occurrences of compare-val.
 Its content restrictions are the same as those for compare-val.

3format TALLYING REPLACING

 The INSPECT statement counts or replaces occurrences of single
 characters or groups of characters in a data item.

 Format 3 -

  INSPECT src-string TALLYING

  {
  { tally-ctr FOR
  {

   {
   {            [ { BEFORE }                   ]           }      }
   { CHARACTERS [ { AFTER  } INITIAL delim-val ] ...       } ...  } ...
   { { ALL     } {
   { { LEADING } { compare-val
   {
                 [{ BEFORE }                   ]     }     }      }
                 [{ AFTER  } INITIAL delim-val ] ... } ... } ...  } ...
  REPLACING

   { CHARACTERS BY replace-char [{ BEFORE } INITIAL delim-val] ... }
   {                            [{ AFTER  }                  ]     }
   { { ALL     }                                                   } ...
   { { LEADING } { compare-val BY replace-val
   { { FIRST   }

                        [ { BEFORE } INITIAL delim-val ] ... } ... }
                        [ { AFTER  }                   ]     }     }

Additional information available:

src-stringtally-ctrcompare-valdelim-valreplace-charreplace-val

src-string
 is the identifier of a group item or an elementary data item with
 DISPLAY usage.  INSPECT operates on the contents of this data item.
tally-ctr
 is the identifier of an elementary numeric data item.
compare-val
 is the character-string INSPECT uses for comparison.  It is a
 nonnumeric literal (or figurative constant other than ALL literal) or
 the identifier of an elementary alphabetic, alphanumeric, or numeric
 data item with DISPLAY usage.
delim-val
 is the character-string that delimits the INSPECT operation.  Its
 content restrictions are the same as those for compare-val.
replace-char
 is the one-character item that replaces all characters.  Its content
 restrictions are the same as those for compare-val.
replace-val
 is the character-string that replaces occurrences of compare-val.
 Its content restrictions are the same as those for compare-val.

4format CONVERTING

 The INSPECT statement counts or replaces occurrences of single
 characters or groups of characters in a data item.

 Format 4 -

 INSPECT src-string CONVERTING

     compare-chars TO convert-chars

                   [ { BEFORE } INITIAL delim-val ] ...
                   [ { AFTER  }                   ]

Additional information available:

src-stringdelim-valcompare-charsconvert-chars

src-string
 is the identifier of a group item or an elementary data item with
 DISPLAY usage.  INSPECT operates on the contents of this data item.
delim-val
 is the character-string that delimits the INSPECT operation.  Its
 content restrictions are the same as those for compare-val.
compare-chars
 is the string that contains the individual characters that convert to
 those in convert-chars.  It is the same kind of item as compare-val.
convert-chars
 is the string that contains the individual characters to which the
 characters in compare-chars convert.  It is the same kind of item
 as compare-val.

KEEP

 The KEEP statement inserts a database key value from a currency indicator
 or keeplist into a keeplist.

 Format -

       [         [        { record-name } ]          ]
       [ CURRENT [ WITHIN { set-name    } ]          ]
       [         [        { realm-name  } ]          ]
  KEEP [ { OFFSET integer-exp }                      ]
       [ { FIRST              } WITHIN keeplist-name ]
       [ { LAST               }                      ]

     USING destination-keeplist

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-KEEP ]

Additional information available:

record-nameset-namerealm-nameinteger-expkeeplist-namedestination-keeplist
stment

record-name

 is a subschema record name.

set-name

 is a subschema set name.

realm-name

 is a subschema realm name.

integer-exp

 is an arithmetic expression or integer.  It refers to a position in
 keeplist-name.  Integer-exp cannot be zero.

keeplist-name

 names a keeplist in the Sub-Schema Section.

destination-keeplist

 names a keeplist in the Sub-Schema Section to receive the database key
 value.

stment

 is an imperative statement.

MERGE

 The MERGE statement takes two or more identically sequenced files and
 combines them according to the key values you specify.  During the
 process, it makes records available, in merged order, to routines in
 OUTPUT PROCEDURE or to an output file.

 Format -

  MERGE mergefile

     { ON { ASCENDING  } KEY { mergekey } ... } ...
     {    { DESCENDING }                      }

     [ COLLATING SEQUENCE IS alpha ]

      USING infile { infile } ...

     { OUTPUT PROCEDURE IS first-proc [ { THRU    } end-proc ] }
     {                                [ { THROUGH }          ] }
     { GIVING { outfile } ...                                  }

Additional information available:

mergefilemergekeyalphainfilefirst-procend-procoutfile

mergefile

 is a file-name described in a sort-merge file description (SD) entry in
 the Data Division.

mergekey

 is the data-name of a data item in a record associated with mergefile.

alpha

 is an alphabet-name defined in the SPECIAL-NAMES paragraph of the
 Environment Division.

infile

 is the file-name of an input file.  It must be described in a file
 description (FD) entry in the Data Division.

first-proc

 is the section-name or paragraph-name of the output procedure's first
 (or only) section or paragraph.

end-proc

 is the section-name or paragraph-name of the output procedure's last section
 or paragraph.

outfile

 is the file-name of an output file.  It must be described in a file
 description (FD) entry in the Data Division.

MODIFY

 The MODIFY statement changes the contents of specified data items in a
 database record.

 Format -

  MODIFY [ record-name         ]
         [ { record-item } ... ]

     [          [{| REALM                    |}]         ]
     [RETAINING [{| RECORD                   |}] CURRENCY]
     [          [{| { SET [ set-name ] ... } |}]         ]
     [          [{| { { set-name } ...     } |}]         ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-MODIFY ]

Additional information available:

record-namerecord-itemset-namestment

record-name

 names a database subschema record type.

record-item

 is a group or elementary data item in a subschema record type.
 Record-item can be qualified.

set-name

 names a subschema set type.

stment

 is an imperative statement.

MOVE

 The MOVE statement transfers data to one or more data areas.  The
 editing rules control data transfer.

Additional information available:

1format2format CORRESPONDING

1format

 The MOVE statement transfers data to one or more data areas.  The
 editing rules control data transfer.

 Format 1 -

  MOVE { src-item } TO { dest-item } ...
       { lit      }

Additional information available:

src-itemlitdest-item

src-item
 is an identifier that represents the sending area.
lit
 is a literal that represents the sending area.
dest-item
 is an identifier that represents the receiving area.

2format CORRESPONDING

 The MOVE statement transfers data to one or more data areas.  The
 editing rules control data transfer.

 Format 2 -

  MOVE { CORRESPONDING } src-item TO dest-item
       { CORR          }

Additional information available:

src-itemdest-item

src-item
 is an identifier that represents the sending area.
dest-item
 is an identifier that represents the receiving area.

MULTIPLY

 The MULTIPLY statement multiplies two numeric operands and stores the
 result.

Additional information available:

1format2format GIVING

1format

 The MULTIPLY statement multiplies two numeric operands and stores the
 result.

 Format 1 -

  MULTIPLY srcnum BY { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-MULTIPLY ]

Additional information available:

srcnumrsultstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item.  It is the resultant
 identifier.
stment
 is an imperative statement.

2format GIVING

 The MULTIPLY statement multiplies two numeric operands and stores the
 result.

 Format 2 -

  MULTIPLY srcnum BY srcnum GIVING { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-MULTIPLY ]

Additional information available:

srcnumrsultstment

srcnum
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
stment
 is an imperative statement.

OPEN

 The OPEN statement creates an access stream to the file, makes the file
 available to the program, begins the processing of a file, and
 specifies file sharing.

Additional information available:

1format sequential relative indexed2format report writer

1format sequential relative indexed

 The OPEN statement creates an access stream to the file, makes the file
 available to the program, begins the processing of a file, and
 specifies file sharing.

 Format 1 - Sequential, Relative, Indexed

     {        {                         [        {NO OTHERS   }]}   }
     {        {                         [        {{|READERS |}}]}   }
     {{INPUT }{file-name[WITH NO REWIND][ALLOWING{{|WRITERS |}}]}...}
     {{OUTPUT}{                         [        {{|UPDATERS|}}]}   }
     {        {                         [        {ALL         }]}   }
 OPEN{                                                              }...
     {        {                    [         { NO OTHERS     } ]}   }
     {        {                    [         { {| READERS  |}} ]}   }
     {{EXTEND}{ file-name          [ALLOWING { {| WRITERS  |}} ]}...}
     {{I-O   }{                    [         { {| UPDATERS |}} ]}   }
     {        {                    [         { ALL           } ]}   }

Additional information available:

file-name

file-name
 is the name of a file described in the Data Division.  It cannot be
 the name of a sort or merge file.

2format report writer

 The OPEN statement creates an access stream to the file, makes the file
 available to the program, begins the processing of a file, and
 specifies file sharing.

 Format 2 - Report Writer

  OPEN { OUTPUT { file-name  [ WITH NO REWIND ] } ... } ...
       { EXTEND { file-name } ...                     }

Additional information available:

file-name

file-name
 is the name of a file described in the Data Division.  It cannot be
 the name of a sort or merge file.

PERFORM

 The PERFORM statement executes one or more procedures.  It returns
 control to the end of the PERFORM statement when procedure execution
 ends.

Additional information available:

1format2format repeat-count3format UNTIL4format VARYING

1format

 The PERFORM statement executes one or more procedures.  It returns
 control to the end of the PERFORM statement when procedure execution
 ends.

 Format 1 -

  PERFORM [first-proc [ { THRU    } end-proc ]]
          [           [ { THROUGH }          ]]

   [ stment  END-PERFORM ]

Additional information available:

first-procend-procstment

first-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of  statements in first-proc are the
 first (or only) set of statements in the PERFORM range.
end-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of statements in end-proc are the last
 set of statements in the PERFORM range.
stment
 is an imperative statement.

2format repeat-count

 The PERFORM statement executes one or more procedures.  It returns
 control to the end of the PERFORM statement when procedure execution
 ends.

 Format 2 -

  PERFORM [first-proc [ { THRU    } end-proc ]] repeat-count TIMES
          [           [ { THROUGH }          ]]

   [ stment  END-PERFORM ]

Additional information available:

first-procend-procstmentrepeat-count

first-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of  statements in first-proc are the
 first (or only) set of statements in the PERFORM range.
end-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of statements in end-proc are the last
 set of statements in the PERFORM range.
stment
 is an imperative statement.
repeat-count
 is a numeric integer literal or the identifier of a numeric integer
 elementary item.  It controls how many times the statement set (or
 sets) executes.

3format UNTIL

 The PERFORM statement executes one or more procedures.  It returns
 control to the end of the PERFORM statement when procedure execution
 ends.

 Format 3 -

  PERFORM [first-proc [ { THRU    } end-proc ]] [ WITH TEST { BEFORE } ]
          [           [ { THROUGH }          ]] [           { AFTER  } ]

      UNTIL cond

   [ stment  END-PERFORM ]

Additional information available:

first-procend-procstmentcond

first-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of  statements in first-proc are the
 first (or only) set of statements in the PERFORM range.
end-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of statements in end-proc are the last
 set of statements in the PERFORM range.
stment
 is an imperative statement.
cond
 can be any conditional expression.

4format VARYING

 The PERFORM statement executes one or more procedures.  It returns
 control to the end of the PERFORM statement when procedure execution
 ends.

 Format 4 -

  PERFORM [first-proc [ { THRU    } end-proc ]] [ WITH TEST { BEFORE } ]
          [           [ { THROUGH }          ]] [           { AFTER  } ]

     VARYING var FROM init BY increm UNTIL cond

   [ AFTER var FROM init BY increm UNTIL cond ] ...

   [ stment  END-PERFORM ]

Additional information available:

first-procend-procstmentcondvarinitincrem

first-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of  statements in first-proc are the
 first (or only) set of statements in the PERFORM range.
end-proc
 is a procedure-name that identifies a paragraph or section in the
 Procedure Division.  The set of statements in end-proc are the last
 set of statements in the PERFORM range.
stment
 is an imperative statement.
cond
 can be any conditional expression.
var
 is an index-name or the identifier of a numeric elementary data item.
 Its value is changed by increm each time all statements in the
 PERFORM range execute.
init
 is a numeric literal, index-name, or the identifier of a numeric
 elementary data item.  It specifies the value of var before any
 statement in the PERFORM range executes.
increm
 is a nonzero numeric literal or the identifier of a numeric
 elementary data item.  It systematically changes the value of var
 each time the program executes all statements in the PERFORM range.

READ

 For sequential access files, the READ statement makes the next logical
 record available.

 For random access files, READ makes a specified record available.

Additional information available:

1format sequential2format random dynamic

1format sequential

 For sequential access files, the READ statement makes the next logical
 record available.

 Format 1 -

  READ file-name [ NEXT ] RECORD [ INTO dest-item ]

      [ REGARDLESS OF LOCK     ]
      [          { UPDATERS  } ]
      [ ALLOWING { READERS   } ]
      [          { NO OTHERS } ]

      [ AT END stment ] [ NOT AT END stment ]

      [ END-READ ]

Additional information available:

file-namedest-itemstment

file-name
 is the name of a file described in the Data Division.  It cannot be a
 sort or merge file.
dest-item
 is the identifier of a data item that receives the record accessed by
 the READ statement.
stment
 is an imperative statement executed for an at end or not at end
 condition.

2format random dynamic

 For random access files, READ makes a specified record available.

 Format 2 -

  READ file-name RECORD [ INTO dest-item ]

      [ REGARDLESS OF LOCK     ]
      [          { UPDATERS  } ]
      [ ALLOWING { READERS   } ]
      [          { NO OTHERS } ]

      [ KEY IS key-name ]

      [ INVALID KEY stment ] [ NOT INVALID KEY stment ]

      [ END-READ ]

Additional information available:

file-namedest-itemkey-namestment

file-name
 is the name of a file described in the Data Division.  It cannot be a
 sort or merge file.
dest-item
 is the identifier of a data item that receives the record accessed by
 the READ statement.
key-name
 is the data-name of a data item specified as a record key for
 file-name.  It can be qualified.
stment
 is an imperative statement executed for an invalid key or not invalid
 key condition.

READY

 The READY statement begins a database transaction, prepares one or more
 database realms for processing, and places each specified realm in a
 ready mode.

 Format -

  READY [ realm-name ] ...

     [               { { CONCURRENT }                     } ]
     [               { { EXCLUSIVE  }  [ { RETRIEVAL } ]  } ]
     [               { { PROTECTED  }  [ { UPDATE    } ]  } ]
     [ USAGE-MODE IS { { BATCH      }                     } ]
     [               {                 [ { CONCURRENT } ] } ]
     [               { { RETRIEVAL }   [ { EXCLUSIVE  } ] } ]
     [               { { UPDATE    }   [ { PROTECTED  } ] } ]
     [               {                 [ { BATCH      } ] } ]

     [ WITH WAIT ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-READY ]

Additional information available:

realm-namestment

realm-name

 names a subschema realm name.

stment

 is an imperative statement.

RECONNECT

 The RECONNECT statement moves the current database record of the run unit
 from one set to another (possibly the same) set.

 Format -

  RECONNECT [ record-name ] WITHIN { { set-name } ... }
                                   { ALL              }

     [           [{| REALM                    |}]          ]
     [ RETAINING [{| RECORD                   |}] CURRENCY ]
     [           [{| { SET [ set-name ] ... } |}]          ]
     [           [{| { { set-name } ...     } |}]          ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-RECONNECT ]

Additional information available:

record-nameset-namestment

record-name

 names a subschema record type.

set-name

 names a subschema set type.

stment

 is an imperative statement.

RECORD

 The RECORD statement creates a VAX  Common  Data  Dictionary/Plus
 (CDD/Plus) dependency relationship between a COBOL program and  a
 dictionary entity stored in CDD/Plus.

 For this  statement  to  be  meaningful, you  must compile your
 program with the /DEPENDENCY_DATA qualifier.

 RECORD DEPENDENCY pathname [ TYPE IS rel-type ] [ IN DICTIONARY ].

Additional information available:

pathnamerel-type

pathname

 is a partial or full VAX CDD/Plus pathname. It specifies a
 CDD/Plus dictionary entity stored in CDO format.

rel-type

 is a valid CDD/Plus protocol. It specifies the type of relationship
 to be created between the VAX COBOL program and the CDO dictionary
 entity specified in the pathname.

 The default is CDD$COMPILED_DEPENDS_ON.

RELEASE

 The RELEASE statement transfers records to the initial phase of a sort
 operation.

 Format -

  RELEASE rec [ FROM src-area ]

Additional information available:

recsrc-area

rec

 is the name of a logical record in a sort-merge file description (SD)
 entry.  It can be qualified.

src-area

 is the identifier of the data item that contains the data.

RETURN

 The RETURN statement gets sorted records from a sort operation.  It also
 returns merged records in a merge operation.

 Format -

  RETURN smrg-file RECORD [ INTO dest-area ]

     AT END stment [ NOT AT END stment ]

     [ END-RETURN ]

Additional information available:

smrg-filedest-areastment

smrg-file

 is the name of a file described in a sort-merge file description (SD)
 entry.

dest-area

 is the identifier of the data item to which the returned smrg-file
 record is moved.

stment

 is an imperative statement.

REWRITE

 The REWRITE statement logically replaces a mass storage file record.

 Format -

  REWRITE rec-name [ FROM src-item ] [ ALLOWING NO OTHERS ]

     [ INVALID KEY stment ] [ NOT INVALID KEY stment ]

     [ END-REWRITE ]

Additional information available:

rec-namesrc-itemstment

rec-name

 is the name of a logical record in the Data Division File Section.  It
 can be qualified.

src-item

 is the identifier of the data item that contains the data.

stment

 is an imperative statement.

ROLLBACK

 The ROLLBACK statement ends your database transaction, nullifies all
 database changes made by this run unit since its last quiet point, and
 establishes a new quiet point for this run unit.

 Format -

  ROLLBACK [ ON ERROR stment ] [ NOT ON ERROR stment ] [ END-ROLLBACK ]

Additional information available:

stment

stment

 is an imperative statement.

SEARCH

 The SEARCH statement searches for a table element that satisfies a
 condition.  It sets the value of the associated index to point to the
 table element.

Additional information available:

1format serial2format binary

1format serial

 The SEARCH statement searches for a table element that satisfies a
 condition.  It sets the value of the associated index to point to the
 table element.

 Format 1 -

  SEARCH src-table [ VARYING pointr ] [ AT END stment ]

     { WHEN cond { stment        } } ... [ END-SEARCH ]
     {           { NEXT SENTENCE } }

Additional information available:

src-tablepointrcondstment

src-table
 is a table identifier.
pointr
 is an index-name or the identifier of a data item described as USAGE
 INDEX, or an elementary numeric data item with no positions to the
 right of the assumed decimal point.
cond
 is any conditional expression.
stment
 is an imperative statement.

2format binary

 The SEARCH statement searches for a table element that satisfies a
 condition.  It sets the value of the associated index to point to the
 table element.

 Format 2 -

  SEARCH ALL src-table [ AT END stment ]

      WHEN { elemnt    { IS EQUAL TO } arg }
           {           { IS =        }     }
           { cond-name                     }

     [ AND { elemnt    { IS EQUAL TO } arg } ] ...
     [     {           { IS =        }     } ]
     [     { cond-name                     } ]

       { stment        } [ END-SEARCH ]
       { NEXT SENTENCE }

Additional information available:

src-tablestmentelemntargcond-name

src-table
 is a table identifier.
stment
 is an imperative statement.
elemnt
 is an indexed data-name.  It refers to the table element against
 which the argument is compared.
arg
 is the argument tested against each element (elemnt) in the search.
 It is an identifier, a literal, or an arithmetic expression.
cond-name
 is a condition-name.

SET

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

Additional information available:

1format TO2format UP DOWN3format cond-name4format switch-name
5format REFERENCE6format SUCCESS FAILURE

1format TO

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

 Format 1 -

  SET { rsult } ... TO val

Additional information available:

rsultval

rsult
 is an index-name, the identifier of an index data item, or an
 elementary numeric data item described as an integer.
val
 is a positive integer, which may be signed.  It can also be an
 index-name (or the identifier of an index data item) or an elementary
 numeric data item described as an integer.

2format UP DOWN

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

 Format 2 -

  SET { indx } ... { UP BY   } increm
                   { DOWN BY }

Additional information available:

indxincrem

indx
 is an index-name.
increm
 is an integer, which may be signed.  It can also be the identifier of
 an elementary numeric data item described as an integer.

3format cond-name

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

 Format 3 -

  SET { cond-name } ... TO TRUE

Additional information available:

cond-name

cond-name
 is a condition-name that must be associated with a conditional
 variable.

4format switch-name

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

 Format 4 -

  SET { { switch-name } ... TO { ON  } } ...
      {                        { OFF } }

Additional information available:

switch-name

switch-name
 is the name of an external switch defined in the SPECIAL-NAMES
 paragraph.

5format REFERENCE

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

 Format 5 -

  SET pointer-id TO REFERENCE OF identifier

Additional information available:

pointer-ididentifier

pointer-id
 is a data-name whose data description entry must contain the USAGE IS
 POINTER clause.
identifier
 is a data item in the File, Working-Storage, Linkage, or Sub-Schema
 Section.

6format SUCCESS FAILURE

 The SET statement sets values of indexes associated with table
 elements.  It can also change the value of a conditional variable,
 change the status of an external switch, and store the address of a
 COBOL identifier reference at run time.

 Format 6 -

  SET status-code-id TO { SUCCESS }
                        { FAILURE }

Additional information available:

status-code-id

status-code-id
 is a word or longword integer data item represented by PIC S9(1) to
 S9(9) COMP.

SORT

 The SORT statement creates a sort file by executing input procedures or
 transferring records from an input file.  It sorts the records in the
 sort file using one or more keys that you specify.  Finally, it returns
 each record from the sort file, in sorted order, to output procedures or
 an output file.

 Format -

  SORT sortfile { ON { ASCENDING  } KEY { sortkey } ... } ...
                {    { DESCENDING }                     }

     [ WITH DUPLICATES IN ORDER ]

     [ COLLATING SEQUENCE IS alpha ]

     { INPUT PROCEDURE IS first-proc [ { THRU    } end-proc ] }
     {                               [ { THROUGH }          ] }
     { USING { infile } ...                                   }

     { OUTPUT PROCEDURE IS first-proc [ { THRU    } end-proc ] }
     {                                [ { THROUGH }          ] }
     { GIVING { outfile } ...                                  }

Additional information available:

sortfilesortkeyalphafirst-procinfileend-procoutfile

sortfile

 is a file-name described in a sort-merge file description (SD) entry in
 the Data Division.

sortkey

 is the data-name of a data item in a record associated with sortfile.

alpha

 is an alphabet-name defined in the SPECIAL-NAMES paragraph of the
 Environment Division.

first-proc

 is the section-name or paragraph-name of the first (or only) section or
 paragraph of the INPUT or OUTPUT procedure range.

infile

 is the file-name of the input file. It must be described in a file
 description (FD) entry in the Data Division.

end-proc

 is the section-name or paragraph-name of the last section or paragraph
 of the INPUT or OUTPUT procedure range.

outfile

 is the file-name of the output file. It must be described in a file
 description (FD) entry in the Data Division.

START

 The START statement establishes the logical position of the Next Record
 Pointer in an indexed or relative file.  The logical position affects
 subsequent sequential record retrieval.

 Format -

                  [     { IS EQUAL TO                 }          ]
                  [     { IS =                        }          ]
                  [     { IS GREATER THAN             }          ]
  START file-name [ KEY { IS >                        } key-data ]
                  [     { IS NOT LESS THAN            }          ]
                  [     { IS NOT <                    }          ]
                  [     { IS GREATER THAN OR EQUAL TO }          ]
                  [     { IS >=                       }          ]

       [ REGARDLESS OF LOCK     ]
       [          { UPDATERS  } ]
       [ ALLOWING { READERS   } ]
       [          { NO OTHERS } ]

       [ INVALID KEY stment ] [ NOT INVALID KEY stment ]

       [ END-START ]

Additional information available:

file-namekey-datastment

file-name

 is the name of an indexed or relative file with sequential or dynamic
 access.  It cannot be the name of a sort or merge file.

key-data

 is the data-name of a record-key, or the leftmost part of a record key,
 or the relative key for file-name.  It can be qualified.

stment

 is an imperative statement.

STOP

 The STOP statement permanently terminates or temporarily suspends image
 execution.

 Format -

  STOP { RUN  }
       { disp }

Additional information available:

disp

disp

 is any literal, or any figurative constant except ALL literal.

STORE

 The STORE statement stores a new record in the database, establishes the
 record as an owner of an empty set of each set type for which the record
 is an owner record type, and connects the record as a member to the
 current set of each set type for which the record is an AUTOMATIC member
 record type.

 Format -

  STORE record-name [ [ NEXT TO ] DBKEY ] [ WITHIN { realm-name } ... ]

     [           [{| REALM                    |}]          ]
     [ RETAINING [{| RECORD                   |}] CURRENCY ]
     [           [{| { SET [ set-name ] ... } |}]          ]
     [           [{| { { set-name } ...     } |}]          ]

     [ ON ERROR stment ] [ NOT ON ERROR stment ]

     [ END-STORE ]

Additional information available:

record-namerealm-nameset-namestment

record-name

 names a subschema record type.

realm-name

 names a subschema realm.

set-name

 names a subschema set type.

stment

 is an imperative statement.

STRING

 The STRING statement concatenates the partial or complete contents of one
 or more data items into a single data item.

 Format -

  STRING { { src-string } ... DELIMITED BY { delim } } ...
         {                                 { SIZE  } }

      INTO dest-string [ WITH POINTER pointr ]

      [ ON OVERFLOW stment ] [ NOT ON OVERFLOW stment ]

      [ END-STRING ]

Additional information available:

src-stringdelimdest-stringpointrstment

src-string

 is a nonnumeric literal or identifier of a DISPLAY data item.  It is
 the sending area.

delim

 is a nonnumeric literal or the identifier of a DISPLAY data item.  It
 is the delimiter of src-string.

dest-string

 is the identifier of a DISPLAY data item.  It cannot be reference
 modified.  Dest-string is the receiving area that contains the result
 of the concatenated src-strings.

pointr

 is an elementary numeric data item described as an integer.  It points
 to the position in dest-string to contain the next character moved.

stment

 is an imperative statement.

SUBTRACT

 The SUBTRACT statement subtracts one, or the sum of two or more,
 numeric items from one or more items.  It stores the result in one or
 more items.

Additional information available:

1format FROM2format GIVING3format CORRESPONDING

1format FROM

 The SUBTRACT statement subtracts one, or the sum of two or more,
 numeric items from one or more items.  It stores the result in one or
 more items.

 Format 1 -

  SUBTRACT { num } ... FROM { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-SUBTRACT ]

Additional information available:

numrsultstment

num
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item.  It is the resultant
 identifier.
stment
 is an imperative statement.

2format GIVING

 The SUBTRACT statement subtracts one, or the sum of two or more,
 numeric items from one or more items.  It stores the result in one or
 more items.

 Format 2 -

  SUBTRACT { num } ... FROM num GIVING { rsult [ ROUNDED ] } ...

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-SUBTRACT ]

Additional information available:

numrsultstment

num
 is a numeric literal or the identifier of an elementary numeric item.
rsult
 is the identifier of an elementary numeric item or an elementary
 numeric edited item.  It is the resultant identifier.
stment
 is an imperative statement.

3format CORRESPONDING

 The SUBTRACT statement subtracts one, or the sum of two or more,
 numeric items from one or more items.  It stores the result in one or
 more items.

 Format 3 -

  SUBTRACT { CORRESPONDING } grp-1 FROM grp-2 [ ROUNDED ]
           { CORR          }

     [ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]

     [ END-SUBTRACT ]

Additional information available:

grpstment

grp
 is the identifier of a group item.
stment
 is an imperative statement.

SUPPRESS

 The SUPPRESS statement causes the Report Writer Control System (RWCS) to
 inhibit the presentation of a report group.

 Format -

  SUPPRESS PRINTING

TERMINATE

 The TERMINATE statement causes the Report Writer Control System (RWCS) to
 complete the processing of the specified report.

 Format -

  TERMINATE { report-name } ...

Additional information available:

report-name

report-name

 names a report defined by a Report Description entry in the Report
 Section of the Data Division.

UNLOCK

 The UNLOCK statement removes record locks from a record or all currently
 locked records in the file.

 Format -

  UNLOCK file-name [ RECORD      ]
                   [ ALL RECORDS ]

Additional information available:

file-name

file-name

 is the name of a sequential, relative, or indexed file described in the
 Data Division.

UNSTRING

 The UNSTRING statement separates contiguous data in a sending field and
 stores it in one or more receiving fields.

 Format -

  UNSTRING src-string

      [ DELIMITED BY [ALL] delim [ OR [ALL] delim ] ... ]

      INTO { dest-string [DELIMITER IN delim-dest] [COUNT IN countr] } ...

      [ WITH POINTER pointr ]

      [ TALLYING IN tally-ctr ]

      [ ON OVERFLOW stment ] [ NOT ON OVERFLOW stment ]

      [ END-UNSTRING ]

Additional information available:

src-stringdelimdest-stringdelim-destcountrpointrtally-ctr
stment

src-string

 is the identifier of an alphanumeric class data item.  It cannot be
 reference modified. Src-string is the sending field.

delim

 is a nonumeric literal or the identifier of an alphanumeric data item.
 It is the delimiter for the UNSTRING operation.

dest-string

 is the identifier of an alphanumeric, alphabetic, or numeric DISPLAY
 data item.  It is the receiving field for the data from src-string.

delim-dest

 is the identifier of an alphanumeric data item.  It is the receiving
 field for delimiters.

countr

 is the identifier of an elementary numeric data item described as an
 integer.  It contains the count of characters moved.

pointr

 is the identifier of an elementary numeric data item described as an
 integer.  It points to the current character position in src-string.

tally-ctr

 is the identifier of an elementary numeric data item described as an
 integer.  It counts the number of dest-string fields accessed during
 the UNSTRING operation.

stment

 is an imperative statement.

USE

 The USE statement specifies Declarative procedures to handle
 input/output errors and database exception conditions.  It can also
 specify procedures to be executed before the program processes a
 specific report group.

 These procedures supplement the standard procedures in the COBOL
 Run-Time System and VAX RMS.

Additional information available:

1format AFTER EXCEPTION2format BEFORE REPORTING3format DB-EXCEPTION

1format AFTER EXCEPTION

 The USE statement specifies Declarative procedures to handle
 input/output errors and database exception conditions.  It can also
 specify procedures to be executed before the program processes a
 specific report group.

 These procedures supplement the standard procedures in the COBOL
 Run-Time System and VAX RMS.

 Format 1 -

                                                     { {file-name} ...}
                                                     { INPUT          }
 USE [GLOBAL] AFTER STANDARD {EXCEPTION }PROCEDURE ON{ OUTPUT         }.
                             {ERROR     }            { I-O            }
                                                     { EXTEND         }

Additional information available:

file-name

file-name
 is the name of a file connector described in a file description entry
 in a Data Division.  It cannot refer to a sort or merge file.

2format BEFORE REPORTING

 The USE statement specifies Declarative procedures to handle
 input/output errors and database exception conditions.  It can also
 specify procedures to be executed before the program processes a
 specific report group.

 These procedures supplement the standard procedures in the COBOL
 Run-Time System and VAX RMS.

 Format 2 -

  USE [GLOBAL] BEFORE REPORTING group-data-name .

Additional information available:

group-data-name

group-data-name
 is the name of a report group in a report group description entry in
 a Data Division.  It must not appear in more than one USE statement.

3format DB-EXCEPTION

 The USE statement specifies Declarative procedures to handle
 input/output errors and database exception conditions.  It can also
 specify procedures to be executed before the program processes a
 specific report group.

 Format 3 -

  USE [GLOBAL] FOR DB-EXCEPTION [ON { {DBM$_exception-condition} ... }].
                                [   { OTHER                          }]

Additional information available:

DBM$ exception-condition

DBM$ exception-condition
 is a symbolic constant name beginning with the characters "DBM$_".
 It identifies a DBMS exception condition.

WRITE

 The WRITE statement releases a logical record to an output or
 input-output file.  It can also position lines vertically on a logical
 page.

Additional information available:

1format sequential2format relative indexed

1format sequential

 The WRITE statement releases a logical record to an output or
 input-output file.  It can also position lines vertically on a logical
 page.

 Format 1 -

  WRITE rec-name [ FROM src-item ] [ ALLOWING NO OTHERS ]

     [                      { advance-num [ LINE  ]   } ]
     [ { BEFORE }           {             [ LINES ]   } ]
     [ { AFTER  } ADVANCING { top-name                } ]
     [                      { PAGE                    } ]
     [                      { TO VFU-CHANNEL chan-num } ]

     [ AT { END-OF-PAGE } stment ]
     [    { EOP         }        ]

     [ NOT AT { END-OF-PAGE } stment ]
     [        { EOP         }        ]

     [ END-WRITE ]

Additional information available:

rec-namesrc-itemadvance-numtop-namechan-numstment

rec-name
 is the name of a logical record described in the Data Division File
 Section.  It cannot be qualified.  The logical record cannot be in a
 sort-merge file description entry.
src-item
 is the identifier of the data item that contains the data.
advance-num
 is an integer or the identifier of an unsigned data item described as
 an integer.  Its value can be zero.
top-name
 is a mnemonic-name equated to "C01" in the SPECIAL-NAMES paragraph of
 the Environment Division.  It represents top-of-page and is
 equivalent to the PAGE phrase.
chan-num
 is an integer or the identifier of an unsigned data item described
 as an integer. Its value must be in the range from 1 to 16,
 inclusive. It represents a channel number for devices which use
 Vertical Form Units (VFU), which provides positioning information.
stment
 is an imperative statement.

2format relative indexed

 The WRITE statement releases a logical record to an output or
 input-output file.  It can also position lines vertically on a logical
 page.

 Format 2 -

  WRITE rec-name [ FROM src-item ] [ ALLOWING NO OTHERS ]

     [ INVALID KEY stment ] [ NOT INVALID KEY stment ]

     [ END-WRITE ]

Additional information available:

rec-namesrc-itemstment

rec-name
 is the name of a logical record described in the Data Division File
 Section.  It cannot be qualified.  The logical record cannot be in a
 sort-merge file description entry.
src-item
 is the identifier of the data item that contains the data.
stment
 is an imperative statement.

COPY statement

 The COPY statement includes text in a COBOL source program.

Additional information available:

1format text-name2format record-name

1format text-name

 The COPY statement includes text in a COBOL source program.

 Format 1 -

 COPY text-name [ { OF } library-name ]
                [ { IN }              ]

    [          { { ==pseudo-text-1==  }    { ==pseudo-text-2== } }     ]
    [REPLACING { { identifier-1       } BY { identifier-2      } } ... ] .
    [          { { literal-1          }    { literal-2         } }     ]
    [          { { word-1             }    { word-2            } }     ]

Additional information available:

text-namelibrary-name1  pseudo-text-1  identifier-1  literal-1  word-12  pseudo-text-2  identifier-2  literal-2  word-2

text-name

 is the name of a COBOL library file available during compilation.

library-name

 is the name of the VAX Librarian library file that contains text-name.

1 pseudo-text-1 identifier-1 literal-1 word-1

 are text-matching arguments that the compiler compares against
 text-words in the library text.

2 pseudo-text-2 identifier-2 literal-2 word-2

 are replacement items that the compiler inserts into the source
 program.

2format record-name

 The COPY statement includes text in a COBOL source program.

 Format 2 -

 COPY record-name FROM DICTIONARY

    [          { { ==pseudo-text-1==  }    { ==pseudo-text-2== } }     ]
    [REPLACING { { identifier-1       } BY { identifier-2      } } ... ] .
    [          { { literal-1          }    { literal-2         } }     ]
    [          { { word-1             }    { word-2            } }     ]

Additional information available:

record-name1  pseudo-text-1  identifier-1  literal-1  word-12  pseudo-text-2  identifier-2  literal-2  word-2

record-name

 is a partial or complete VAX Common Data Dictionary/Plus (CDD/Plus)
 pathname.  It specifies the CDD/Plus record description to be copied
 into the source program.

1 pseudo-text-1 identifier-1 literal-1 word-1

 are text-matching arguments that the compiler compares against
 text-words in the library text.

2 pseudo-text-2 identifier-2 literal-2 word-2

 are replacement items that the compiler inserts into the source
 program.

REPLACE statement

 The REPLACE statement is used to replace source program text.

Additional information available:

1format pseudo-text-name2format OFF

1format pseudo-text-name

 The REPLACE statement is used to replace source program text.

 Format 1 -

  REPLACE {==pseudo-text-1== BY ==pseudo-text-2==} ...

Additional information available:

pseudo-text-1pseudo-text-2

pseudo-text-1

 is a text-matching argument that the compiler compares against
 text-words in the source program.

pseudo-text-2

 is a replacement item that the compiler inserts into the source
 program.

2format OFF

 The REPLACE OFF statement is used to terminate any text replacement
 processing currently in effect.

 Format 2 -

  REPLACE OFF

Errors

 VAX COBOL Run-Time Error Messages

Additional information available:

ANNUITYBOUNDSCALFAICANFAILCHARBOUNDSDATEINTBOUNDS
DAYINTBOUNDSDELINCOPEDELNO_R_SDELUNOFIL
DEVNOTAPLDIVBY_ZEREOFON_ACCERRDURACC
ERRDURDISERRDURPOSERRDURSORERRON_FIL
EXPDBOVERFACTBOUNDSFAIGET_EFFAIGET_VM
FATINTERRFILALRCLOFILALRLOCFILALROPEFILCLOLOCFILNOTFOU
GOTO_ALTINTDATEBOUNDSINTDAYBOUNDSINDEFVALINTDIVZER
INTEXPOVEINTEXPUNDINTRESOPEINVARGINVBLKFAC
INVDECDATINVDECDIGINVLINVALINVRECSIZKEYNOTMAT
LOWERLENZEROLSTHNDLDBLSTHNDUSEMODBOUNDS
NESERRPERNO_SPACENUMVALARGINVOCCDEPOVE
ORGNOTMATPRESVALBOUNDSRANDOMBOUNDSREAINCOPE
REAMP_D_RREARECTOBREASMAMINREAUNOFIL
RECACTPERRECACTUSERECLOCDELRECLOCREA
RECLOCREWRECLOCSTARECLOCWRIREMBOUNDS
REVERSELENZEROREWINCOPEREWNO_R_SREWSMAMIN
REWUNOFILSTAINCOPSTAUNOFILSUBOVELONTIMOVELON
UNDEF_EXPUNEINSCONUNLNO_CURUNLUNOFIL
UPPERLENZEROWRIBEYBOUWRIINCOPEWRINOTASC
WRIRECTOBWRISMAMINWRIUNOFIL

ANNUITYBOUNDS

 argument(s) to FUNCTION ANNUITY out of bounds

 Explanation:  One or both of these rules were violated:

   a. Argument-1 must be greater than or equal to zero.

   b. Argument-2 must be positive.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

CALFAI

 CALL failed on routine

 Explanation:  Failure to CALL the specified routine.   This
 may be due to one of several possible conditions:

     a.  The routine name  is  too  long  (greater  than  31
         characters).

     b.  The routine name is too  short  (for  example,  all
         blanks).

     c.  The routine name contains invalid characters.

     d.  The named routine is not in the linked image.

 User Action:   Either code the routine name  to  conform  to
 the  syntax  rules  for  proper  routine  name  formation or
 relink the image to include the missing  routine.

CANFAIL

 CANCEL failed on routine

 Explanation:  Failure  to  CANCEL  the  specified  routine.
 This may be due to a number of problems including:

     a.  The routine name  is  too  long  (greater  than  31
         characters).

     b.  The routine name is too  short  (for  example,  all
         blanks)

     c.  The routine name contains invalid characters.

     d.  The named routine is not in the linked image.

 User Action:   Either code the routine name  to  conform  to
 the  syntax  rules  for  proper  routine  name  formation or
 relink the image to include the missing  routine.

CHARBOUNDS

 argument to FUNCTION CHAR out of bounds

 Explanation: Function argument must be greater than zero and
 less  than or  equal to   the  number of  positions  in  the
 collating sequence.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

DATEINTBOUNDS

 argument to FUNCTION DATE-OF-INTEGER out of bounds

 Explanation: Function argument must be greater than zero.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

DAYINTBOUNDS

 argument to FUNCTION DAY-OF-INTEGER out of bounds

 Explanation: Function argument must be greater than zero.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.


DELINCOPE

 DELETE on file incompatible with OPEN mode

 Explanation:  The DELETE operation is not  compatible  with
 the  open  mode  of the file.  The file status variable, if
 present, has been set to 49.  No applicable  USE  procedure
 was found.

 User Action:   Examine the mode in which  the file is opened
 (prior to the attempted DELETE  operation) and make the open
 mode consistent with the  DELETE operation.

DELNO_R_S

 attempting DELETE on file without previous READ or  START

 Explanation:  Attempting to perform a DELETE on  this  file
 without   having  previously  performed  a  READ  or  START
 operation.  The file status variable, if present, has  been
 set to 43.  No applicable USE procedure was found.

 User Action:   Your program must execute a  READ  or   START
 operation  (in  sequential  access mode) immediately  before
 executing the DELETE operation.  This must occur  for   each
 execution of the DELETE operation.

DELUNOFIL

 attempting DELETE on unopened file

 Explanation:  Attempting to perform  a  DELETE  before  the
 file  is opened.  The file status variable, if present, has
 been set to 49.  No applicable USE procedure was found.

 User Action:  Your  program  must  execute  an  appropriate
 OPEN  operation  before  attempting  to  perform  a  DELETE
 operation on the file.

DEVNOTAPL

 attempting to OPEN a RELATIVE or INDEXED file on a non-mass
 storage device

 Explanation:  Attempting to OPEN a RELATIVE or INDEXED file
 on an storage device that is not a mass storage device. The
 file status  variable,  if present,  has been set to 37. No
 applicable USE procedure has been found.

 User Action:  Examine  the  SELECT  clause  of the file and
 alter  the file  specification  to reference a mass storage
 device.

DIVBY_ZER

 attempting to divide by ZERO

 Explanation:  Attempting to divide by ZERO.

 User Action:  If this is not the desired action, restructure
 the  source  program to  avoid the  divide  operation if the
 divisor  is   zero,  or add an   ON SIZE ERROR  clause to be
 executed in the case of a zero divisor.

EOFON_ACC

 end-of-file detected on ACCEPT from file

 Explanation:  An  end-of-file  condition  was  detected  in
 executing an ACCEPT statement.

 User   Action:  You  typed  a  CTRL/Z,  which   caused   an
 end-of-file  condition  for  an  ACCEPT  statement.  If you
 wish  to use CTRL/Z as an end-of-file indicator, you should
 code the input operations using an ACCEPT AT END statement.

ERRDURACC

 error during ACCEPT from file

 Explanation:   An error condition was  detected  by  RMS  in
 executing   the  ACCEPT  operation.   The  subsequent  error
 message is the RMS error code associated with this error.

 User Action:   You typed an illegal character (such as BREAK
 key).   If  you  wish to trap such illegal input characters,
 code the input operation using a COBOL  READ  statement  and
 declare an appropriate USE procedure to handle the error.

ERRDURDIS

 error during DISPLAY on file

 Explanation:   An error condition was  detected  by  RMS  in
 executing  the  DISPLAY  operation.   The  subsequent  error
 message is the RMS error code associated with this error.

 User Action:   Examine the logical  name  assignment  and/or
 the  type  of  device  to  which  the  DISPLAY  statement is
 attempting to write output information.

ERRDURPOS

 error during erasing or positioning in an ACCEPT or DISPLAY

 Explanation:   An error condition was  detected  by  the RTL
 in  executing  the  erasing  or  positioning  option  of the
 extended ACCEPT or DISPLAY.

 User Action:   Examine   the   assignment  of  the  logicals
 SYS$INPUT  and  SYS$OUTPUT,  and/or  the type of device with
 which the statement is interacting.

ERRDURSOR

 error during SORT or MERGE

 Explanation:   An error has occurred during a SORT or  MERGE
 operation.   The  subsequent error message is the associated
 SORT or MERGE error code.

 User Action:   Examine the logic of the program to determine
 why  an  error  is  occurring  during  a  SORT or MERGE.  In
 particular, if the program contains input procedures for the
 SORT  or  MERGE  operation, ensure that at least one RELEASE
 operation is executed in the input procedure.  Failure to do
 so can cause this error condition.

ERRON_FIL

 error on file

 Explanation:   An error status has been returned by RMS that
 is  not  recognized  by  the VAX COBOL I/O error handler.
 The subsequent error message is  the  associated  RMS  error
 code.  The file status variable, if present, has been set to
 30 (except for a CLOSE operation -- file status =  98).   No
 applicable USE procedure has been found.

 User Action:   Examine the subsequent error  message  issued
 by  RMS  and  respond accordingly, or code an applicable USE
 procedure to handle the I/O error.

EXPDBOVER

 expression   value  in  database  argument  list   overflows
 longword

 Explanation:   The value of an offset or  relative  position
 integer expression in a database record selection expression
 cannot be contained in a longword.

 User Action:   Determine why the  value  is  too  large  and
 correct  the program to use a value that is representable in
 a longword.

FACTBOUNDS

 argument to FUNCTION FACTORIAL out of bounds

 Explanation:  Function  argument must be  in  the range of 0
 through  19.

 User Action:  If this is not the desired result,  modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

FAIGET_EF

 failure to get event flag

 Explanation:   An   internal   operation   associated   with
 execution  of  the  CANCEL  operation requires an event flag
 number.  The attempt to allocate the event flag  number  has
 failed.

 User  Action:   The  process  associated  with  your   COBOL
 program   has  allocated  a  number  of  event  flags.   The
 execution of the CANCEL operation  has  requested  one  more
 event  flag  than  is  available to the process.  Deallocate
 some  event  flag  before  executing   the   COBOL   program
 containing the CANCEL operation.

FAIGET_VM

 failure to get virtual memory

 Explanation:   An internal  operation  associated  with  the
 execution  of  an  ACCEPT  or DISPLAY statement requires the
 allocation  of  dynamic  virtual  memory.   The  attempt  to
 allocate this space has failed.

 User Action:   The executable  image  containing  the  COBOL
 ACCEPT  or  DISPLAY  operation  is using a large quantity of
 virtual memory.  The execution  of  the  ACCEPT  or  DISPLAY
 statement   has   requested  more  dynamic  memory  than  is
 available to the executable image.  Your  program  must  use
 less virtual memory if the COBOL ACCEPT or DISPLAY operation
 is to work successfully.

FATINTERR

 fatal internal error

 Explanation:   An internal  consistency  check  has  failed.
 This  represents  an  internal error in the Run-Time Library
 and should be reported to Digital Equipment  Corporation  by
 software performance report.

 User Action:   Either discuss this  error  with  your  local
 software support specialist or submit a software performance
 report with supporting documentation, including  the  system
 traceback listing.

FILALRCLO

 file already closed

 Explanation:   Attempting to CLOSE a file  that  is  already
 closed.   The file status variable, if present, has been set
 to 42.  No applicable USE procedure has been found.

 User  Action:   Examine  the  logic  of  your  program   and
 eliminate the redundant CLOSE operation.  Alternatively, you
 may discover the inadvertent omission of performing an  OPEN
 on this file.

FILALRLOC

 file is already locked

 Explanation:   In the file sharing  environment,  attempting
 to  open  a  file  for  which  another process has exclusive
 access.  The file status variable, if present, has been  set
 to 91.  No applicable USE procedure has been found.

 User Action:   Declare an applicable USE procedure for  this
 file to handle this I/O condition.

FILALROPE

 file is already open

 Explanation:   Attempting to open a  file  that  is  already
 open.  The file status variable, if present, has been set to
 41.  No applicable USE procedure has been found.

 User  Action:   Examine  the  logic  of  the   program   and
 eliminate  the redundant OPEN operation.  Alternatively, you
 may declare an  applicable  USE  procedure  to  handle  this
 error.

FILCLOLOC

 file is closed with LOCK

 Explanation:   Attempting to open a  file  that  is  already
 closed with LOCK.  The file status variable, if present, has
 been set to 38.  No applicable USE procedure has been found.

 User  Action:   Examine  the  logic  of  the   program   and
 eliminate   the   attempted  OPEN  operation  on  the  file.
 Alternatively, you may declare an applicable  USE  procedure
 to handle the error.

FILNOTFOU

 file not found on OPEN

 Explanation:   The named  file  was  not  found  during  the
 execution  of the OPEN statement.  The file status variable,
 if present, has been set to 35.  No applicable USE procedure
 has been found.

 User Action:   Examine the referenced directory to check for
 the  existence  of the named file.  Another common source of
 this error is a mistake in spelling the  file  specification
 for the file.

GOTO_ALT

 GO TO with no preceding ALTER

 Explanation:   Attempting to perform a GO  TO  that  has  no
 preceding ALTER.

 User Action:   Examine the logic of the  program  to  ensure
 that  the  execution  of  an  ALTER  statement  precedes the
 execution of the referenced GO TO statement.

INTDATEBOUNDS

 argument to FUNCTION INTEGER-OF-DATE out of bounds

 Explanation: Function argument must be an integer of the form
 YYYYMMDD.  One or more of these rules were violated:

   a. YYYY must be greater than 1600 and less than or equal to
      9999

   b. MM must be in the range of 1 through 12.

   c. DD  must be in  the range of  1 through 31 and valid for
      the particular month and year combination.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

INTDAYBOUNDS

 argument to FUNCTION INTEGER-OF-DAY out of bounds

 Explanation: Function argument must be an integer of the form
 YYYYDDD.  One or more of these rules were violated:

   a. YYYY must be greater than 1600 and less than or equal to
      9999

   b. DDD  must be in the range of 1 through 366 and valid for
      the year specified.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

INDEFVAL

 invalid DEFAULT value in an ACCEPT

 Explanation:   The  DEFAULT item  cannot be larger  than  the
 destination field when PROTECTED is specified.

 User Action:   Decrease the length of the DEFAULT item or use
 the PROTECTED SIZE clause to allow for more input characters.
 If the DEFAULT item is reference modified, check the value of
 the identifier in the reference modifier size field.

INTDIVZER

 intermediate divide by zero

 Explanation:   Attempting to divide  by  COBOL  Intermediate
 Temporary that has a value of zero.

 User Action:   Examine the referenced expression in which  a
 division  operation occurs and determine why the divisor has
 a zero value.

INTEXPOVE

 intermediate exponent overflow

 Explanation:   A COBOL  Intermediate  Temporary  is  created
 that has an exponent greater than +99.

 User Action:   Examine the referenced  line  of  the  source
 program  containing  an  arithmetic  operation and determine
 what is causing a COBOL Intermediate Temporary to be created
 with too large an exponent.

INTEXPUND

 intermediate exponent underflow

 Explanation:   A COBOL  Intermediate  Temporary  is  created
 that has an exponent less than -99.

 User Action:   Examine the referenced  line  of  the  source
 program  containing  an  arithmetic  operation and determine
 what is causing a COBOL Intermediate Temporary to be created
 with too small an exponent.

INTRESOPE

 intermediate reserved operand

 Explanation:   Encountering  a  reference  to  a  previously
 created  COBOL  Intermediate  Temporary  whose  exponent  is
 greater than +99 or less than -99.

 User Action:   Examine the referenced  line  of  the  source
 program  containing  an  arithmetic  operation and determine
 what is causing a COBOL Intermediate Temporary to be created
 with  too  large  or  too  small an exponent in a previously
 executed statement.

INVARG

 invalid argument

 Explanation:   Internal consistency checking has detected an
 invalid  argument  being  passed  to  a routine in the COBOL
 Run-Time Library.  This represents  an  internal  error  and
 should be reported to Digital Equipment Corporation.

 User Action:   Submit a software performance report with the
 appropriate  supporting  documentation, including the system
 traceback listing.

INVBLKFAC

 attempting  OPEN of  a file  with a specified blocking factor
 that differs from the blocking factor of the file

 Explanation:   There is  a  mismatch  between  the  specified
 blocking  factor of  the file as indicated in the program and
 the blocking  factor that  existed when the file was created.
 This mismatch is encountered on an OPEN  operation. The  file
 status  variable,  if  present,  has  been  set  to  39.   No
 applicable USE procedure has been found.

 User Action:   Examine the  program and  change the  blocking
 factor specification to match  the blocking  factor specified
 when the file was created.

INVDECDAT

 invalid decimal data

 Explanation:   Invalid decimal data has been encountered  in
 the  course of converting a numeric DISPLAY data item into a
 packed number.  One or more of the  following  problems  may
 exist:

     a.  The length of the source string is outside  of  the
         range 0 through 31.

     b.  The length of the destination packed decimal string
         is outside of the range 0 through 31.

     c.  The source string contains  an  invalid  byte.   An
         invalid byte is:

         -   Any character other than ASCII "0" through  "9"
             in a digit byte or an ASCII "+" or a space or a
             hyphen in the sign byte of a  leading  separate
             numeric data item.

         -   Any character other than ASCII "0" through  "9"
             in  any  high-order  byte  (that  is,  any byte
             except  the  least  significant  byte)   in   a
             trailing numeric data item.

     d.  In  the  case  of  trailing  numeric   input,   the
         translation of the least significant digit produces
         an invalid decimal digit or sign nibble.


 User  Action:   This  error  usually   occurs   when   space
 characters  are used in lieu of insignificant, leading, zero
 digit  positions  for  numeric  fields.   These  fields  are
 commonly  found  within  records  on  a  file.  Examine such
 numeric fields on the file  and  replace  all  insignificant
 leading spaces in these fields with numeric zero characters.
 Alternatively, before referencing these fields in arithmetic
 operations,    use   the   INSPECT   statement   to   change
 insignificant space characters to  zeros  in  these  fields.
 Another  alternative  is the NUMERIC class test to determine
 if numeric data items contain numeric characters only.  This
 class  test  should  be  executed  before these numeric data
 items are referenced in arithmetic operations.

INVDECDIG

 invalid decimal digit

 Explanation:   An invalid decimal digit has been encountered
 in the course of converting a packed decimal number.

 User Action:   Examine the logic of the program to determine
 why  illegal  data  is  being  discovered  in converting the
 packed decimal number.

INVLINVAL

 invalid LINAGE value on file

 Explanation:   An invalid value has been encountered in  one
 of the data names associated with the LINAGE clause for this
 file.

 User  Action:   Examine  the  logic  of  the   program   and
 determine  why  a data name value associated with the LINAGE
 clause  does  not  fall  within  the  range  of  values   as
 prescribed in the COBOL rules for the LINAGE clause.

INVRECSIZ

 attempting REWRITE of a record that is a different size from
 the size of the record in the file

 Explanation:   There  is a  mismatch between the size of the
 record in the program to  be rewritten  and the  record size
 that existed  when the  file was created.  The  file  status
 variable, if present, has been set to 44. No applicable  USE
 procedure has been found.

 User Action: Examine the program and change the size of  the
 record  being rewritten to match  the  record size specified
 when the file was created.

KEYNOTMAT

 attempting to open indexed file whose actual  keys  do  not
 match those declared

 Explanation:   An OPEN was  attempted  on  an  indexed  file
 whose  keys  (as  described  in the program) do not have the
 same data-type, size, and position within the record as when
 the  file  was  created.   The  file  status  data  item, if
 specified, has been set to 39. No applicable USE  procedure
 has been found.

 User Action:   Run SYS$SYSTEM:DSP to  determine  the  actual
 keys  within the file and change the program to describe the
 keys correctly.

LOWERLENZERO

 FUNCTION LOWER-CASE argument length cannot be zero.

 Explanation:  A group consisting solely of a variable-length
 table was used as an  argument to LOWER-CASE and its current
 lowbound was 0.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

LSTHNDLDB

 lost handler for database exception - environment corrupted

 Explanation:  The default  COBOL  handler  COB$$HANDLER  was
 deleted,  or a new handler was established that did not call
 COB$$HANDLER when a  program  was  attempting  to  execute a
 GLOBAL USE procedure for a DB-EXCEPTION.

 User Action:   Do not establish a new handler or include  in
 the  new  handler  a  call to  COB$$HANDLER for unrecognized
 conditions.

LSTHNDUSE

 lost handler for a USE procedure - environment corrupted

 Explanation:   The default  COBOL  handler COB$$HANDLER  was
 deleted,  or a new handler was established that did not call
 COB$$HANDLER when a  program  was  attempting  to  execute a
 GLOBAL USE procedure for an I/O statement.

 User Action:   Do not establish a new handler or include  in
 the  new  handler  a  call to  COB$$HANDLER for unrecognized
 conditions.

MODBOUNDS

 argument to FUNCTION MOD out of bounds.

 Explanation: The second argument to FUNCTION MOD  cannot  be
 zero.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

NESERRPER

 nesting error for PERFORM

 Explanation:   A logic error has  been  encountered  in  the
 order in which the nesting of PERFORM ranges are exited.

 User Action:   PERFORM ranges  must  be  exited  in  reverse
 order   from  which  these  PERFORM  ranges  are  activated.
 Examine the logic of the PERFORM range nesting  to  discover
 why  these PERFORM ranges are not exited in reverse order of
 their activation.

NO_SPACE

 no file space on device for file

 Explanation:   During the course of an OPEN,  a  failure  to
 find  additional space  on  a  particular  device  has  been
 detected.  The file status variable, if  present,  has  been
 set to 95.  No applicable USE procedure has been found.

 User Action:   Most likely, you have  many  outdated  and/or
 transient  files  on the device.  Examine the directories on
 the  particular  device  and  free-up  sufficient  space  by
 purging  or deleting unused files, then resubmit the program
 for execution.

NUMVALARGINV

 argument to FUNCTION NUMVAL or NUMVAL-C is invalid.

 Explanation:  The argument does not  conform to an allowable
 format (see Reference Manual for format).

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

OCCDEPOVE

 OCCURS DEPENDING value overflows longword

 Explanation:   The value of the data name associated with an
 OCCURS DEPENDING phrase cannot be contained in a longword.

 User Action:   Examine the referenced  line  in  the  source
 program  containing  an  implicit reference to the data name
 associated  with  an  OCCURS DEPENDING phrase  to  determine
 why this value has overflowed a longword value.

ORGNOTMAT

 attempting to open file whose actual organization does  not
 match that declared

 Explanation:   There is a mismatch between the  organization
 of  the file as declared in the program and the organization
 of the file as it was created.  This mismatch is encountered
 on  the  OPEN  operation.   The  file  status  variable,  if
 present, has been set to 39.  No  applicable  USE  procedure
 has been found.

 User  Action:   Examine   the   program   and   change   the
 declaration  of  the  file's  organization to match the file
 organization attributes (sequential, relative,  or  indexed)
 when the file was created.

PRESVALBOUNDS

 argument to FUNCTION PRESENT-VALUE out of bounds.

 Explanation:  The  first argument  to FUNCTION PRESENT-VALUE
 must be greater than -1.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

RANDOMBOUNDS

 argument to FUNCTION RANDOM out of bounds.

 Explanation: The argument to FUNCTION RANDOM must be greater
 than or equal to zero.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

REAINCOPE

 READ on file incompatible with OPEN mode

 Explanation:   The  file  was  opened  in  a  mode  that  is
 incompatible  with  a  READ operation (that is, an open mode
 for which  READ  operations  are  disallowed).   This  error
 usually  represents bad logic in the user program.  The file
 status variable,  if  present,  has  been  set  to  47.   No
 applicable USE procedure has been found.

 User Action:   Examine the logic of the program to determine
 why a READ operation that is incompatible with the open mode
 is being attempted.  Change the open mode to allow the  READ
 operation or eliminate the READ operation.

REAMP_D_R

 successful READ must precede DELETE or REWRITE in sequential
 access mode

 Explanation:  Attempting to perform a DELETE or  REWRITE on
 this  file  without  having  previously  performed  a  READ
 operation.  The file status variable, if present, has  been
 set to 43.  No applicable USE procedure was found.

 User Action:   Your program must execute a  READ  operation
 (in  sequential  access mode) immediately  before executing
 a DELETE or  REWRITE operation.   This must occur for  each
 execution of the DELETE operation.

REARECTOB

 attempting READ with  relative record  number  too big for
 relative key data item

 Explanation:   Attempting to perform a  sequential READ or
 READ NEXT on a  relative record where the number of digits
 in the relative  key  exceeds the number of digits in  the
 relative  key data item.  The  file  status  variable,  if
 present, has been set to 14. No  applicable  USE procedure
 has been found.

 User Action:   Examine the length of the relative key data
 item  and increase  its size  to  allow  a successful READ
 operation of the record.

REASMAMIN

 attempting READ of variable  length  smaller  than  minimum
 allowed from file

 Explanation:   Attempting to READ a record that  is  smaller
 than  the  minimum length record declared in the program for
 this file.  The file status variable, if present,  has  been
 set to 04.  No applicable USE procedure has been found.

 User Action:   Examine the length of the record on the  file
 being  read  and  then  change  the  minimum  record  length
 declared in the program for this file to allow a  successful
 READ operation on the record.

REAUNOFIL

 attempting READ on unopened file

 Explanation:   Attempting a READ operation on a file that is
 not  open  at  this  time.   This error usually represents a
 logic error in the user program.  The file status  variable,
 if present, has been set to 47.  No applicable USE procedure
 has been found.

 User Action:   Examine the logic of the program to determine
 why  a  READ  operation  is  attempted  on an unopened file.
 Change the logic of the program by opening the  file  or  by
 eliminating the READ operation.

RECACTPER

 recursive activation of PERFORM

 Explanation:   Attempting to PERFORM a paragraph or  section
 that   is  already  activated  due  to  a  previous  PERFORM
 statement.   This   constitutes   an   attempted   recursive
 activation of the paragraph or section and is illegal in the
 COBOL language.  The program must execute an EXIT  statement
 from  the  paragraph  or  section  before  this paragraph or
 section can be the subject of a subsequent PERFORM.

 User Action:   Examine the logic of the program to determine
 why  an  EXIT  from  the  paragraph  or section is not being
 executed before the subsequent PERFORM of the same paragraph
 or section.

RECACTUSE

 recursive activation of USE procedure

 Explanation:  Attempting  to   activate   (enter)   a   USE
 procedure  while that USE procedure is already active.  USE
 procedures are activated (or entered)  in  response  to  an
 error  or  condition  associated  with  an  I/O  operation.
 Within that USE procedure, another I/O operation  has  been
 attempted  that  caused  this  USE  procedure to be entered
 recursively before exiting from the initial  entry  to  the
 USE  procedure.   This  recursive  activation  of  the  USE
 procedure is illegal in the COBOL language.

 User  Action:  Examine  the  logic  of   the   program   to
 ascertain  the  condition  causing the recursive activation
 of the USE procedure and eliminate that  condition.

RECLOCDEL

 record on file is already locked (DELETE attempt)

 Explanation:   In the file sharing  environment,  attempting
 to  DELETE  a  record  that  is  already  locked by another,
 contending process.  The file status variable,  if  present,
 has  been  set  to 92.  No applicable USE procedure has been
 found.

 User Action:   Code an applicable USE procedure in which the
 problem of record contention may be handled properly by your
 own program.  Using USE procedures is important in the  file
 sharing environment.

RECLOCREA

 record on file is already locked (READ attempt)

 Explanation:   In the file sharing  environment,  attempting
 to  READ  a  record  that  is  already  locked  by  another,
 contending process.  The file status variable,  if  present,
 has  been  set  to 92.  No applicable USE procedure has been
 found.

 User Action:   Code an applicable USE procedure in which the
 problem of record contention may be handled properly by your
 own program.  Using USE procedures is important in the  file
 sharing environment.

RECLOCREW

 record on file is already locked (REWRITE attempt)

 Explanation:   In the file sharing  environment,  attempting
 to  REWRITE  a  record  that  is  already locked by another,
 contending process.  The file status variable,  if  present,
 has  been  set  to 92.  No applicable USE procedure has been
 found.

 User Action:   Code an applicable USE procedure in which the
 problem of record contention may be handled properly by your
 own program.  Using USE procedures is important in the  file
 sharing environment.

RECLOCSTA

 record on file is already locked (START attempt)

 Explanation:   In the file sharing  environment,  attempting
 to  perform  a START operation on a record already locked by
 another, contending process.  The file status  variable,  if
 present,  has  been  set to 92.  No applicable USE procedure
 has been found.

 User Action:   Code an applicable USE procedure in which the
 problem of record contention may be handled properly by your
 own program.  Using USE procedures is important in the  file
 sharing environment.

RECLOCWRI

 record on file is already locked (WRITE attempt)

 Explanation:   In the file sharing  environment,  attempting
 to  WRITE  a  record  that  is  already  locked  by another,
 contending process.  The file status variable,  if  present,
 has  been  set  to 92.  No applicable USE procedure has been
 found.

 User Action:   Code an applicable USE procedure in which the
 problem of record contention may be handled properly by your
 own program.  Using USE procedures is important in the  file
 sharing environment.

REMBOUNDS

 argument to FUNCTION REM out of bounds.

 Explanation: The 2nd argument to FUNCTION REM cannot be zero.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

REVERSELENZERO

 FUNCTION REVERSE argument length cannot be zero.

 Explanation:  A group consisting solely of a variable-length
 table  was  used as an argument  to REVERSE and  its current
 lowbound was 0.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

REWINCOPE

 REWRITE on file incompatible with OPEN mode

 Explanation:   The REWRITE operation is not compatible  with
 the  open  mode  of  the file.  The file status variable, if
 present, has been set to 49.  No  applicable  USE  procedure
 has been found.

 User Action:   Examine the mode in which the file was opened
 prior to the attempted REWRITE operation and change the open
 mode to allow  the  successful  completion  of  the  REWRITE
 operation.   Alternatively,  change the logic of the program
 to bypass the attempted REWRITE operation.

REWNO_R_S

 attempting REWRITE on file with no previous READ or START

 Explanation:   Attempting to perform a REWRITE on this  file
 without   having   previously  performed  a  READ  or  START
 operation.  The file status variable, if present,  has  been
 set to 93.  No applicable USE procedure has been found.

 User Action:   Your program must execute  a  READ  or  START
 operation  (that  is,  sequential  access  mode) immediately
 before executing the REWRITE operation.  This must occur for
 each execution of the REWRITE operation.

REWSMAMIN

 attempting REWRITE of variable length smaller than  minimum
 allowed on file

 Explanation:   Attempting  to  REWRITE  a  record  that   is
 smaller  than  the  minimum  record  length  declared in the
 program  for  this  file.   The  file  status  variable,  if
 present,  has  been  set to 44.  No applicable USE procedure
 has been found.

 User Action:   Examine the length of the record on the  file
 being  rewritten  and  then change the minimum record length
 attribute  in  the  program  for  the  file  to  allow   the
 successful REWRITE operation for this record.

REWUNOFIL

 attempting REWRITE on unopened file

 Explanation:   Attempting to perform a REWRITE operation  on
 this  file  before  the  file  is  opened.   The file status
 variable, if present, has been set to 49.  No applicable USE
 procedure has been found.

 User Action:   Examine the logic of the program to determine
 why  a  REWRITE  operation  is  attempted before the file is
 opened.  Change the logic of the program to  open  the  file
 or, alternatively, eliminate the REWRITE operation.

STAINCOP

 START on file incompatible with OPEN mode

 Explanation:   The START operation is  not  compatible  with
 the  current  open  mode  of  the  file.   The  file  status
 variable, if present, has been set to 47.  No applicable USE
 procedure has been found.

 User Action:   Examine the mode in which the file was opened
 prior  to  the attempted START operation and change the open
 mode  to  allow  the  successful  completion  of  the  start
 operation.

STAUNOFIL

 attempting START on unopened file

 Explanation:   Attempting to perform a  START  operation  on
 this  file  before  the  file  is  opened.   The file status
 variable, if present, has been set to 47.  No applicable USE
 procedure has been found.

 User Action:   Examine the logic of the program to determine
 why  a  START  operation  is  attempted  before  the file is
 opened.  Change the logic of the program to  open  the  file
 or,  alternatively,  eliminate  the  START  operation before
 executing the OPEN.

SUBOVELON

 subscript or reference modifier overflows longword

 Explanation:   The evaluation of a  subscript  or  reference
 modifier  has produced a value that cannot be contained in a
 longword quantity.

 User Action:   Examine the referenced  line  of  the  source
 program  containing  the subscripting operation or reference
 modifier to determine why the  value  produced  overflows  a
 longword quantity.

TIMOVELON

 TIMES value overflows longword

 Explanation:   The   evaluation   of   the   TIMES   operand
 associated  with  the PERFORM statement has produced a value
 that cannot be contained in a longword quantity.

 User Action:   Examine the referenced  line  of  the  source
 program to determine why the evaluation of the TIMES operand
 produces a value that overflows a longword quantity.

UNDEF_EXP

 attempting undefined exponentiation -- negative base raised
 to fractional exponent

 Explanation:   Attempting    an    illegal    exponentiation
 operation  in  COBOL  in which a negative base is taken to a
 fractional power.

 User Action:   Examine the logic of the  source  program  to
 determine why this illegal operation is being attempted.

UNEINSCON

 INSPECT CONVERTING lengths unequal

 Explanation:   The lengths of  the  search  and  replacement
 strings are not equal in the INSPECT CONVERTING statement.

 User Action:   Examine  the  referenced  INSPECT  CONVERTING
 statement  to  determine  why  the lengths of the search and
 replacement strings are not equal.  These  lengths  must  be
 the same according to the rules of the COBOL language.

UNLNO_CUR

 attempting UNLOCK on file with no current record

 Explanation:   Attempting  to  perform  an   UNLOCK   RECORD
 statement  without having established a current record.  The
 file  status  variable,  if  present,  is  set  to  93.   No
 applicable USE procedure has been found.

 User Action:   Execute  a  record  operation  that  locks  a
 record,  and  therefore  establishes a current record before
 executing an UNLOCK RECORD statement.

UNLUNOFIL

 attempting UNLOCK on unopened file

 Explanation:   Attempting an UNLOCK operation on a file that
 is not open.  This error usually represents a logic error in
 the program.  The file status data  item,  if  present,  has
 been set to 94.  No applicable USE procedure has been found.

 User  Action:   Determine  why  an   UNLOCK   operation   is
 attempted  on  an unopened file.  Change the program to open
 the file or eliminate the UNLOCK operation.

UPPERLENZERO

 FUNCTION UPPER-CASE argument length cannot be zero.

 Explanation:  A group consisting solely of a variable-length
 table was used as an argument to UPPER-CASE and  its current
 lowbound was 0.

 User Action:   If this is not the desired result, modify the
 source  program  to  ensure a  valid  argument  or avoid the
 function with an invalid argument.

WRIBEYBOU

 attempting WRITE beyond boundaries of file

 Explanation:   Attempting to WRITE a  record  at  a  logical
 position  that  is outside of the bounds of this file.  If a
 sequential  WRITE  has  been  attempted  on  a  sequentially
 organized  file, the file status variable has been set to 34
 and no applicable USE procedure was found. For a relative or
 indexed file,  the  file  status variable has been set to 24
 and no applicable USE procedure was found.

 User Action:   This error usually occurs when  your  program
 attempts  to  write  records  to a volume that does not have
 sufficient free space to contain the file.  Delete or  purge
 as  many  files  as  possible to free-up sufficient space to
 contain the file being written.

WRIINCOPE

 WRITE on file incompatible with OPEN mode

 Explanation:   The WRITE operation is  not  compatible  with
 the  current  open  mode  of  the  file.   The  file  status
 variable, if present, has been set to 48.  No applicable USE
 procedure has been found.

 User Action:   Examine the mode in which the file was opened
 prior  to  the  attempted  WRITE  operation.  Alternatively,
 change the logic of the  program  to  bypass  the  attempted
 WRITE operation.

WRINOTASC

 attempting to WRITE non-ascending ISAM key on file

 Explanation:   Attempting  to  perform  a  sequential  WRITE
 operation to an indexed file in which the primary key is not
 in ascending sequence value.  The file status  variable,  if
 present,  has been set to 21.  No applicable exception label
 or USE procedure was found.

 User Action:   Examine the logic of the program to determine
 why  the primary key values are not written in ascending key
 value.

WRIRECTOB

 attempting  WRITE with a relative record  number too big for
 relative key data item

 Explanation:   Attempting to perform a sequential WRITE to a
 relative file where the number of digits in the relative key
 exceeds the  number of digits in the relative key data item.
 The file status variable, if present, has been set to 24. No
 applicable USE procedure has been found.

 User Action:  Examine the length  of the  relative key  data
 item and increase  its size  to  allow  a  successful  WRITE
 operation of this record

WRISMAMIN

 attempting WRITE of variable length  smaller  than  minimum
 allowed on file

 Explanation:   Attempting to WRITE a record that is  smaller
 than  the  minimum length record declared in the program for
 this file.  The file status variable, if present,  has  been
 set to 94.  No applicable USE procedure has been found.

 User Action:   Examine the logic of the program to determine
 why  it is shorter than the minimum length declared for this
 file in the program.

WRIUNOFIL

 attempting to WRITE to an unopened file

 Explanation:  Attempting to perform a WRITE operation before the
 file is opened.  The file status variable, if present, has
 been set to 48.  No applicable USE procedure was found.

 User Action:  Restructure the source program to OPEN the file
 before the WRITE operation.


Parameters

 {file-spec [/file-qualifier]}...

  Specifies one or more COBOL source programs to be compiled.  If a
  file  specification  does  not  contain a file type, the compiler
  uses the default file type of COB.

  You can specify more  than  one  input  file  but  you  must  use
  separators.   Each  file is compiled separately when you separate
  the file specifications with a comma.  Files  separated  by  plus
  signs are concatenated in a single compilation.

  No wild card characters are allowed in the file specification.

Qualifiers

Additional information available:

/ANALYSIS_DATA/ANSI_FORMAT/AUDIT/CHECK/CONDITIONALS
/COPY_LIST/CROSS_REFERENCE/DEBUG/DEPENDENCY_DATA
/DESIGN/DIAGNOSTICS/FIPS/FLAGGER/INSTRUCTION_SET
/LIST/MACHINE_CODE/MAP/OBJECT/SEQUENCE_CHECK
/STANDARD/TRUNCATE/WARNINGS

/ANALYSIS_DATA

   /ANALYSIS_DATA[=file-spec]
   /NOANALYSIS_DATA (D)

 If you have the VAX Source Code Analyzer (SCA) installed on  your
 system,  you  can use the /ANALYSIS_DATA qualifier to generate an
 output file of source information.  SCA  uses  the  ANA  file  to
 display  information about program symbols and source files.  The
 source information file generated by the /ANALYSIS_DATA qualifier
 has a default file type of ANA.

/ANSI_FORMAT

   /ANSI_FORMAT
   /NOANSI_FORMAT   (D)

 Indicates that the source program is in conventional ANSI format.
 The  compiler  then  expects 80-character card image records with
 optional sequence numbers in character  positions  1  through  6,
 indicators  in position 7, Area A beginning in position 8, Area B
 beginning  in  position  12,  and  the  identification  area   in
 positions 73 through 80.

 The default is /NOANSI_FORMAT;  that  is,  the  compiler  assumes
 that  the  source  program is in DIGITAL's terminal format, where
 Area A begins in position 1, Area B begins in position 5, and the
 source program records do not have line numbers.

/AUDIT

   /AUDIT[=("string",...)]
   /NOAUDIT                (D)

 Controls whether user-supplied text is included in a Common
 Data  Dictionary/Plus (CDD/Plus)  history  list  entry  if  a
 compilation accesses the dictionary.

 You can specify from 1 to 64 strings with the  /AUDIT  qualifier.
 If  you  specify  more than one string, separate them with commas
 and enclose the list  in  parentheses.   If  you  specify  /AUDIT
 without  a  string, a standard history list entry is created with
 no additional text.

/CHECK

   /CHECK[=(option[,...])]
   /NOCHECK                 (D)

 Specifies conditions to be checked at execution  time.   Controls
 whether   the   system   checks   PERFORM   statements,  indexes,
 subscripts, reference modifications, and the  depending-item  for
 specific run-time errors.

 You can select one or more of the following options:

 [NO]PERFORM     Verifies that PERFORM statement  rules  are  met.
                 The default is NOPERFORM.

 [NO]BOUNDS      Verifies the range of  subscripts  and  reference
                 modifiers.  The default is NOBOUNDS.

 ALL             Same as /CHECK without any options.

 NONE            Same as /NOCHECK.  Default if /CHECK is not used.

/CONDITIONALS

   /CONDITIONALS[=(character,...)]
   /NOCONDITIONALS                 (D)

 Indicates which conditional compilation lines are to be compiled.
 The  characters  A-Z specify the conditional compilation lines to
 be complied.   If no  characters  are specified,  all conditional
 compilation lines are compiled.

/COPY_LIST

   /COPY_LIST
   /NOCOPY_LIST  (D)

 Controls whether source statements included by COPY are printed
 in the listing  file. The /COPY_LIST qualifier has no effect
 unless the /LIST qualifier is also specified. If  /NOCOPY_LIST
 is specified,  only the COPY statement appears in the listing.

/CROSS_REFERENCE

   /CROSS_REFERENCE[=(option[,...])]
   /NOCROSS_REFERENCE                (D)

 Controls whether the compiler creates a  cross-reference  listing
 as part of the listing file.

 You can select one or both of the following options:

 ALPHABETICAL    The  compiler   sorts   user-defined   names   in
                 alphabetical order and lists them with the source
                 program line numbers.

 DECLARED        Produces a listing of user-defined names in order
                 of  declaration.

 If you specify /CROSS_REFERENCE without specifying an option,  an
 alphabetical listing of user-defined names is produced.

/DEBUG

   /DEBUG[=(option[,...])]
   /NODEBUG

 Controls whether the compiler produces traceback and local symbol
 table  information  for the VAX Symbolic Debugger.

 You can select one or more of the following options:

 [NO]SYMBOLS     Produces a local symbol table that allows you  to
                 refer to  data items  by data-name.  NOSYMBOLS is
                 the default.

 [NO]TRACEBACK   Produces traceback information  only  to  provide
                 the   debugger   with   compiler-generated   line
                 numbers and names.  TRACEBACK is the default.

 ALL             Provides  traceback  and   local   symbol   table
                 information.   Equivalent  to /DEBUG  without any
                 options or /DEBUG=(TRACEBACK,SYMBOLS).

 NONE            Omits   traceback   and   local   symbol    table
                 information.    /DEBUG=NONE   is   equivalent  to
                 /NODEBUG.

 If you specify a qualifier parameter, the default options do  not
 change unless individually modified.

/DEPENDENCY_DATA

   /DEPENDENCY_DATA
   /NODEPENDENCY_DATA       (D)

 If you have  the  VAX  Common  Data  Dictionary/Plus  (CDD/Plus)
 installed on  your  system,  you  can  use  the  /DEPENDENCY_DATA
 qualifier to  store  CDD/Plus  relationship  information  in  the
 dictionary.   The  information  generated  will correlate the VAX
 COBOL program with:

     a.  The object file created by the compilation
     b.  A CDD/Plus  record  specified  in  the  COPY  FROM  DICTIONARY
         statement
     c.  A  CDD/Plus  entity  explicitly  referenced  in   the   RECORD
         DEPENDENCY statement

/DESIGN

   /DESIGN[=(option[,...])]
   /NODESIGN

 Controls whether the compiler processes the input file as a detailed
 design.

 You can select one or both of the following options:

 [NO]COMMENTS
                 Determines   whether  the  compiler  searches  inside
                 comments for program design information, according to
                 the rules for associating comments with declarations,
                 described  in  the  Guide  to  Vax Language-Sensitive
                 Editor (LSE) V3.0 and  VAX Source Code Analyzer (SCA)
                 V2.0.  The compiler  reports  any errors  detected at
                 compile time.

 [NO]PLACEHOLDERS
                 Determines    whether   the   compiler   accepts  Vax
                 Language-Sensitive Editor (LSE) placeholders (in well
                 defined contexts) as valid program syntax.

 Specifying /DESIGN without an explicit option is equivalent to specifying
 /DESIGN=(COMMENTS,PLACEHOLDERS).

/DIAGNOSTICS

   /DIAGNOSTICS[=file-spec]
   /NODIAGNOSTICS            (D)

 Creates  a  diagnostic  file  containing  compiler   messages  and
 diagnostic  information.   The diagnostic file is reserved for use
 by DIGITAL.  The VAX Language-Sensitive Editor uses the diagnostic
 file  to display diagnostic messages and to position the cursor on
 the line and column where a source error exists.  The default file
 type for a diagnostic file is .DIA.

/FIPS

   /FIPS=74
   /NOFIPS      (D)

 /FIPS=74 supports the  interpretation  of  file  status  and  the
 intermediate  arithmetic  data  item  as specified in the Federal
 Information Processing Standards Publication 21-1 (FIPS-PUB 21-1)
 issued by the U.S. National Bureau of Standards.

 /FIPS=74 will cause a file status of "10"  to  be  returned  when
 reporting  at  end  conditions  and  cause  the compiler to use a
 19-digit temporary and round  on  the  20th  digit  for  add  and
 subtract operations.

 /FIPS=74  causes the compiler to use the algebraic value of items
 with P in their picture character strings in all operations.

 The  default,  /NOFIPS,  ensures version to version compatibility
 for COBOL.

/FLAGGER

   /FLAGGER[(=option,...)]
   /NOFLAGGER           (D)

 Allows the specification of a level of FIPS syntax, beyond which,
 informational diagnostics will be generated, as specified in the
 Federal Information Processing Standards Publication 21-1
 (FIPS-PUB 21-1) issued by the U.S. National Bureau of Standards.

 You cannot specify the /FLAGGER qualifier with the /STANDARD=V3
 qualifier.

 You can select one or more of the following options:

 HIGH_FIPS
 INTERMEDIATE_FIPS
 MINIMUM_FIPS
 OBSOLETE
 OPTIONAL_FIPS
 REPORT_WRITER
 SEGMENTATION
 SEGMENTATION_1

/INSTRUCTION_SET

   /INSTRUCTION_SET[=option]

 Provides the users  with  a  switch  for  optimizing  code  using
 different  portions  of  the  VAX  instruction set.  You can only
 choose one option for this qualifier; multiple  options  are  not
 allowed.

 You can select one of the following options:

 /INSTRUCTION_SET=DECIMAL_STRING   instructs   the   compiler   to
 optimize  the  code  for  VAX processors that include the decimal
 string subset instructions.

 /INSTRUCTION_SET=NODECIMAL_STRING  instructs  the   compiler   to
 optimize  the  code  for  VAX  processors that do not include the
 decimal string subset instructions.

 /INSTRUCTION_SET=GENERIC instructs the compiler to  optimize  the
 code to run reasonably well on all VAX processors.

 You do not have to compile all modules within an application with
 the same /INSTRUCTION_SET qualifier  option.   An  object  module
 compiled with this qualifier  option  will  execute  on  any  VAX
 processor, regardless of the option chosen.  This qualifier  only
 affects performance.

 The default is /INSTRUCTION_SET=DECIMAL_STRING.

/LIST

   /LIST[=file-spec]
   /NOLIST

 Controls whether  the  compiler produces  an  output listing file.

 If you issue the COBOL command from  the  interactive  mode,  the
 compiler does not create a listing file;  the default is /NOLIST.
 If you issue the COBOL command from batch mode,  the  default  is
 /LIST:   the  compiler gives a listing file the same file name as
 the input source file.  The output file type defaults to LIS.

 The listing file always contains a listing of the source program.
 Other  portions of the listing file are optionally produced under
 the control of  the  /MACHINE_CODE,  /MAP,  and  /CROSS_REFERENCE
 qualifiers.

/MACHINE_CODE

   /MACHINE_CODE
   /NOMACHINE_CODE   (D)

 Controls  whether  the  listing  file  contains  a  list  of
 compiler generated machine code.

/MAP

   /MAP[=option]
   /NOMAP         (D)

 Controls whether the compiler produces the following maps in  the
 listing file:

      o  data-names, procedure-names, and file-names
      o  external references
      o  subschema objects

 You can control the format of the data-name, procedure-name, and
 file-name maps in the listing file by specifying  one or both of
 the following options:

 ALPHABETICAL        Produces an alphabetical list of map items

 DECLARED            Produces a list of map  items  in  the  order
                     they were declared

 If you specify /MAP without specifying an option, an alphabetical
 list of map items is produced.

/OBJECT

   /OBJECT[=file-spec]  (D)
   /NOOBJECT

 Controls whether the compiler creates an output object module.

 By default, the compiler produces an object module with the  same
 file name as the source file and a file type of OBJ.

/SEQUENCE_CHECK

   /SEQUENCE_CHECK
   /NOSEQUENCE_CHECK  (D)

 Controls whether the compiler produces a sequence  check  on  the
 line numbers in columns 1 through 6 of the source program.

/STANDARD

   /STANDARD[(=option,...)]
   /NOSTANDARD                  (D)


 Controls whether the compiler prints informational level diagnostics
 associated with specific language features.

 You can select one or more of the following options:

 85              Produces code according to the 1985 ANSI standard
                 for certain constructs. /STANDARD=85 is the default.

 V3              Produces code in the manner of version 3.4 of
                 VAX COBOL, and issues informational diagnostics
                 for language constructs that would cause different
                 run-time results if /STANDARD=85 had been specified

 [NO]SYNTAX      Produces/does    not    produce     informational
                 diagnostics on language features that are DIGITAL
                 extensions.  NOSYNTAX is the default.

 [NO]PDP11       Produces/does    not    produce     informational
                 diagnostics on language features that are not
                 supported by the COBOL-81 compiler.


/TRUNCATE

   /TRUNCATE
   /NOTRUNCATE  (D)

 Controls  how  the  compiler  stores  values   in   COMPUTATIONAL
 receiving items if high-order truncation is necessary.

 If  you  specify  /NOTRUNCATE,  the  compiler  truncates   values
 according  to  the  VAX hardware storage unit (word, longword, or
 quadword) allocated to the receiving item.

 If you specify /TRUNCATE, the compiler truncates values according
 to  the  number  of decimal digits specified by the PICTURE size.
 Specifying /TRUNCATE increases program execution time.

  The /INSTRUCTION_SET qualifier specifying the value NODECIMAL
  should not be used with the /TRUNC qualifer, since this
  situation could generate unpredictable results.  The compiler
  will automatically set this qualifer to /NOTRUNC when the
  /INSTRUCTION_SET=NODECIMAL qualifier is present.

/WARNINGS

   /WARNINGS[=(option[,...])]
   /NOWARNINGS

 Controls whether the compiler  prints  warning  or  informational
 diagnostics   as  well  as  error  and  severe  error  diagnostic
 messages.

 You can select one or more of the following options:

 [NO]STANDARD    Produces/does    not    produce     informational
                 diagnostics on language features that are DIGITAL
                 extensions.  NOSTANDARD is the default.

 [NO]INFORMATION Produces/does    not    produce     informational
                 diagnostics.  NOINFORMATION is the default.

 [NO]OTHER       Produces/does not  produce  warning  diagnostics.
                 OTHER is the default.

 ALL             Provides the diagnostics produced  by   STANDARD,
                 INFORMATION,  and   OTHER.  /WARNINGS=ALL  is the
                 equivalent of /WARNINGS.

 NONE            Omits   the   listing   of    all    diagnostics.
                 /WARNINGS=NONE is the equivalent of /NOWARNINGS.

 If you specify an option,  defaults  for  other  options  do  not
 change (unless individually modified).

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026