1 /* BEGIN fortran_ps.incl.pl1 */
 2 
 3 /*        Template for FORTRAN I/O storage block. It is similar to PL/I PS.*/
 4 
 5 /* Modified November 1976 by R.Schoeman */
 6 /* Modified 17 May 1977 by D.S. Levin */
 7 /* Modified 6 Dec 1977 by DSL - clean up dcl for element_desc */
 8 /* Modified 19 Dec 1977 by DSL - add declaration for fio_ps. */
 9 /* Modified 29 Nov 82, HH - VLA's: Add 'VLA' to 'element_desc'.  */
10 
11 declare
12           1 PS aligned structure based(PS_ptr),
13 
14 /* OFFSET (octal) */
15 
16 /* 00 */       2 stack_frame_p          ptr,                /* pointer to user's stack frame */
17 /* 02 */       2 symbol_table_top_p     ptr,                /* pointer to top of symtab, ONLY IF IT EXISTS */
18 /* 04 */       2 symbol_table_block_p   ptr,                /* pointer to cur block of symtab, ONLY IF IT EXISTS */
19 /* 06 */       2 user_format_p          ptr,                /* format as specified by user */
20 /* 10 */       2 file_number            fixed bin(17),      /* file reference number */
21 /* 11 */       2 record_number          fixed bin(17),      /* record no. if direct access */
22 /* 12 */       2 error_p                ptr,                /* full pointer to label if err= supplied */
23 /* 14 */       2 end_p                  ptr,                /* full pointer to label if end= supplied */
24 /* 16 */       2 work_format_p          ptr,                /* format used at runtime. (can be the same as user_format_p) */
25 /* 20 */       2 buffer_p               ptr,                /* ptr to I/O buf or ptr to string source/target */
26 /* 22 */       2 namelist_p             ptr,                /* pointer to OK list */
27 
28 /* 24 */
29 %include fortran_job_bits;
30 
31 /* 25 */       2 max_buffer             fixed bin(17),
32 
33 /* 26 */       2 element_desc           unaligned structure,
34                     3 data_type,
35                          4 (integer, real, double, complex, logical, char, array_ref, VLA) bit(1),
36                     3 length            fixed bin(23),
37                     3 pad               bit(4),
38 
39 /* 27 */       2 element_count          fixed bin(24),
40 /* 30 */       2 element_p              ptr,
41 /* 32 */       2 start_field            fixed bin,
42 /* 33 */       2 buffer_size            fixed bin,
43 /* 34 */       2 data_word(18)          fixed bin,
44 /* 56 */       2 iostat_p               ptr;                /* ptr to location for iostat var */
45 
46 
47 dcl       1 fio_ps                      aligned,            /* ps in fortran I/O's stack frame. */
48 /* Octal offsets */
49 /* 00 */    2 label_for_transfer        label,              /* Two ptrs, one to label var ref, one to fio frame. */
50 /* 04 */    2 address_of_index          ptr,                /* Pointer to storage for label var index. */
51 
52 /* 06 */    2 job_bits                  unaligned structure like PS.job_bits,
53 /* 07 */    2 file_number               fixed bin,
54 
55 /* 10 */    2 element_desc              unaligned structure like PS.element_desc,
56 /* 11 */    2 element_count             fixed bin,
57 /* 12 */    2 element_p                 ptr;
58 
59 
60 %include fortran_io_consts;
61 
62 /* END   fortran_ps.incl.pl1 */