Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

Character Editing (A and AT)

The A and AT data edit descriptors transfer character or Hollerith values. They take the following forms:

A[w]

AT

If the corresponding I/O list item is of type character, character data is transferred. If the list item is of any other type, Hollerith data is transferred. The AT edit descriptor is allowed only for output.

The G edit descriptor can be used to edit character data; it follows the same rules as Aw.

Rules for Input Processing

On input, the A data edit descriptor transfers w characters from an external field and assigns them to the corresponding I/O list item. The AT edit descriptor is not permitted for input.

The maximum number of characters that can be stored depends on the size of the I/O list item, as follows:

  • For character data, the maximum size is the length of the corresponding I/O list item.

  • For non-character data, the maximum size depends on the data type, as shown in the following table:

    Size Limits for Non-Character Data Using A Editing

    I/O List Element

    Maximum Number of Characters

    BYTE

    1

    LOGICAL(1) or LOGICAL*1

    1

    LOGICAL(2) or LOGICAL*2

    2

    LOGICAL(4) or LOGICAL*4

    4

    LOGICAL(8) or LOGICAL*8

    8

    INTEGER(1) or INTEGER*1

    1

    INTEGER(2) or INTEGER*2

    2

    INTEGER(4) or INTEGER*4

    4

    INTEGER(8) or INTEGER*8

    8

    REAL(4) or REAL*4

    4

    DOUBLE PRECISION

    8

    REAL(8) or REAL*8

    8

    REAL(16) or REAL*16

    16

    COMPLEX(4) or COMPLEX*81

    8

    DOUBLE COMPLEX1

    16

    COMPLEX(8) or COMPLEX*161

    16

    COMPLEX(16) or COMPLEX*321

    32

    1 Complex values are treated as pairs of real numbers, so complex editing requires a pair of edit descriptors. (See Complex Editing.)

If w is equal to or greater than the length (len) of the input item, the rightmost characters are assigned to that item. The leftmost excess characters are ignored.

If w is less than len, or less than the number of characters that can be stored, w characters are assigned to the list item, left-justified, and followed by trailing blanks.

The following shows input using the A edit descriptor (the symbol ^ represents a non-printing blank character):

Format     Input      Value        Data Type
A6         PAGE^#     #            CHARACTER(LEN=1)
A6         PAGE^#     E^#          CHARACTER(LEN=3)
A6         PAGE^#     PAGE^#       CHARACTER(LEN=6)
A6         PAGE^#     PAGE^#^^     CHARACTER(LEN=8)
A6         PAGE^#     #            LOGICAL(1)
A6         PAGE^#     ^#           INTEGER(2)
A6         PAGE^#     GE^#         REAL(4)
A6         PAGE^#     PAGE^#^^     REAL(8)

Rules for Output Processing

On output, the A data edit descriptor transfers the contents of the corresponding I/O list item to an external field that is w characters long.

The AT edit descriptor transfers the contents of the corresponding I/O list item with trailing blanks removed to an external field. The width of the external field is the length of the I/O list item minus the number of trailing blanks it contains. The AT edit descriptor produces no output if the corresponding output list item contains no characters other than blanks.

If w is greater than the size of the list item, the data is transferred to the output field, right-justified, with leading blanks. If w is less than or equal to the size of the list item, the leftmost w characters are transferred.

The following shows output using the A edit descriptor (the symbol ^ represents a non-printing blank character):

Format     Value         Output
A5         OHMS          ^OHMS
A5         VOLTS         VOLTS
A5         AMPERES       AMPER
AT         WATTS^^^      WATTS