recordformatspec STACKFM
recordformat BOUNDFM(c
  integer LOWER,
      integer UPPER,
      integer MULT C
    )
  recordformat AFM(c
  integer DIMENSION,
      integer TOTALSIZE,
      integer ZERODISPLACEMENT,
      integer DV,
      integer LOCALFRAME,
      integer BASE,
      record (BOUNDFM) array BOUND (1:7) C
    )
  constant record (AFM) name ATYPE == 0
  recordformat VARFM(c
  integer FLAGS,
      byte integer BASE,
      byte integer PRIM,
      byte integer TYPE,
      byte integer FORM,
    ( c
      long real RVAR C
    or c
      integer DISP,
    ( c
      integer EXTRA C
    or c
      record (AFM) name ADATA C
    ) c
    ),
    ( c
      integer FORMAT C
    or c
      integer SCALE C
    ),
      integer AREA C
    )
  recordformat OLFM(c
  integer OPER,
      record (STACKFM) name LINK C
    )
  recordformat XFM(c
  integer XSIZE,
      record (STACKFM) name INDEX C
    )
  recordformat DATAFM(c
  record (VARFM) V,
      integer VARNO,
      record (VARFM) name FV,
    ( c
      integer BIAS C
    or c
      byte integer REG,
      byte integer LABEL C
    ),
      record (STACKFM) name PARAMS,
      record (STACKFM) name RECORD,
    ( c
      integer OPER,
      record (STACKFM) name LINK C
    or c
      record (OLFM) OPLINK C
    ),
    ( c
      integer XSIZE,
      record (STACKFM) name INDEX C
    or c
      record (XFM) X C
    ) c
    )
  recordformat MEMBERFM(c
  integer CONST,
      integer ITEMS,
      record (STACKFM) name A,
      record (STACKFM) name B,
      record (MEMBERFM) name LINK C
    )
  constant record (MEMBERFM) name MEMBERFMTYPE == 0
  recordformat STACKFM(c
  record (VARFM) V C
    or c
      record (DATAFM) DATA C
    or c
      integer FLAGS,
      byte integer BASE,
      byte integer PRIM,
      byte integer TYPE,
      byte integer FORM,
    ( c
      long real RVAL C
    or c
      integer RHIGH,
      integer RLOW C
    or c
    ( c
      integer DISP,
    ( c
      integer EXTRA C
    or c
      record (AFM) name ADATA C
    ) c
    ),
    ( c
      integer FORMAT C
    or c
      integer SCALE C
    ),
      integer AREA,
      integer VARNO,
    ( c
      record (VARFM) name FV C
    or c
      record (MEMBERFM) name MEMBERS C
    ),
    ( c
      integer BIAS C
    or c
      byte integer REG,
      byte integer LABEL C
    ),
      record (STACKFM) name PARAMS,
      record (STACKFM) name RECORD,
    ( c
      integer OPER,
      record (STACKFM) name LINK C
    or c
      record (OLFM) OPLINK C
    ),
    ( c
      integer XSIZE,
      record (STACKFM) name INDEX C
    or c
      record (XFM) X C
    ) c
    ),
      record (STACKFM) name USING,
      record (STACKFM) name STACK C
    )
  constant record (STACKFM) name STACKFMTYPE == 0
  recordformat WITHFM(c
  integer KEY,
      record (DATAFM) DATA,
      record (WITHFM) name LINK C
    )
  constant record (WITHFM) name WITHFMTYPE == 0
  recordformat WORKFM(c
  integer SIZE,
      integer DISPLACEMENT,
      integer VALIDITY C
    )
endoffile