| RESIZE | 
 | dynamic-clause | 
 | [ GIVINGoperand5] | 
| array-clause | 
This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: EXPAND | REDUCE 
               
Belongs to Function Group: Memory Management Control for Dynamic Variables or X-Arrays
The RESIZE statement is used to adjust:
               
the size of a dynamic variable
                        														(dynamic-clause), or
                     
the number of occurrences of X-arrays
                        														(array-clause).
                     
For further information, see also the following sections in the Programming Guide:
Operand Definition Table:
| Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | S | A | A | U | B | no | no | |||||||||||||
| operand2 | C | S | I | no | no | |||||||||||||||
| operand3 | A | G | A | U | N | P | I | F | B | D | T | L | C | G | O | yes | no | |||
| operand4 | C | S | N | P | I | no | no | |||||||||||||
| operand5 | S | I4 | no | yes | ||||||||||||||||
Syntax Element Description:
| Syntax Element | Description | 
|---|---|
| dynamic-clause | DYNAMIC Clause: The  | 
| operand1 | Dynamic Variable to be
                                 																				Adjusted: 
 | 
| operand2 | New Length Specification: 
 | 
| array-clause | ARRAY Clause: The  | 
| operand3 | Name of X-array: 
 | 
| dim
 | X-array Lower and Upper
                                 																				Bound: The lower and upper bound notation
                              																				( | 
| GIVING
                              																		operand5 | GIVING Clause: If the  If the  | 
| [ SIZE OF]DYNAMIC[VARIABLE]   operand1TOoperand2 | 
The RESIZE DYNAMIC statement adjusts the allocated
                  												length of a dynamic variable (operand1)
                  												to the value specified with
                  												operand2.
               
When the RESIZE statement is used, the currently
                  												allocated storage size will be adjusted to the requested values, regardless
                  												whether it must be increased or decreased.
               
| [ AND RESET]
                           																				[OCCURRENCES OF]ARRAYoperand3TO(dim[,dim[,dim]]) | 
The RESIZE ARRAY statement adjusts the number of
                  												occurrences of the X-array
                  												(operand3) to the upper and lower bound
                  												specified with (dim[,dim[,dim]]).
               
The RESET option resets all occurrences of the
                  												resized X-array to its default zero value. By default (no RESET
                  												option), the actual values are kept and the resized (new) occurrences are
                  												reset.
               
An upper or lower bound used in an RESIZE statement
                  												must be exactly the same as the corresponding upper or lower bound defined for
                  												the array.
               
DEFINE DATA LOCAL
1 #a(I4/1:*)
1 #g(1:*)
  2 #ga(I4/1:*)
1 #i(i4)
END-DEFINE
...
*/ resizing #a (1:10)
RESIZE ARRAY #a TO (1:10)       /* #a is resized to
RESIZE ARRAY #a TO (*:10)       /* 10 occurrences.
/* resizing #ga (1:10,1:20)
RESIZE ARRAY #g TO (1:10)       /* 1st dimension is set to (1:10)
RESIZE ARRAY #ga TO (*:*,1:20)  /* 1st dimension is dependent and 
                                /* therefore kept with (*:*)
                                /* 2nd dimension is set to (1:20)
 
RESIZE ARRAY #a TO (5:10)       /* This is rejected because the lower index
                                /* must be 1 or *
RESIZE ARRAY #a TO (#i:10)      /* This is rejected because the lower index
                                /* must be 1 or *
RESIZE ARRAY #ga TO (1:10,1:20) /* (1:10) for the 1st dimension is rejected
                                /* because the dimension is dependent and 
                                /* must be specified with (*:*). 
               										For further information, see the following sections in the Programming Guide:
Each of the dimensions (dim) specified in the Array Clause is defined using the following syntax:
| 
 | * | 
 | ||||||
| 
 |  
                              																						 | 
 | : | 
 |  
                              																						 | 
 | ||
The lower and upper bound notation
                  												(operand4 or asterisk) to which the
                  												X-array should be expanded
                  												is specified here. If the current value of the upper or lower bound should be
                  												used, an asterisk (*) may be specified in place of
                  												operand4. In place of *:*,
                  												you may also specify a single asterisk. 
               
The number of dimensions
                  												(dim) must exactly match the defined
                  												number of dimensions of the X-array (1, 2 or 3).