The LOCNEWVALUE(v, x, a) built-in subroutine allocates space in a for the variable type described by the LOCATES attribute that is associated with x and assigns v to that area.
>>-LOCNEWVALUE(v,x,-+---+-)------------------------------------>< '-a-'
If you do not specify a, the OFFSET attribute for x must have specified an AREA reference, and LOCNEWSPACE allocates space in that area.
declare
1 data based(data_ptr) unaligned,
2 actual_count fixed bin(31),
2 orderinfo(order_count refer(actual_count)),
3 name offset(pool) locates(char(30) varying),
3 address offset(pool) locates(char(62) varying),
2 pool area(10_000);
call locnewvalue('Sherlock Holmes’, name(1));
call locnewvalue(‘Sherlock Holmes’, name(1), pool);