With a signed COMP-3 value, posting the data probably wouldn't help. You might investigate the COB2SAS program, which is a way of essentially translating a COBOL data description into a SAS INPUT statement.
once you have positioned the input pointer at the forecast_table, then execute the input statement in a loop, like[pre]
input @1234 @ ; * replace 1234 with the correct position number;
array fcast(3,26) ;
do t=1 to 26 ;
input ( fcast(1,t) fcast(2,t) fcast(3,t) )
( pd5.2 pd4. pd2. ) ;
[/pre]The input column position for the following field is maintained by the input processing internally. The input pointer moves along the buffer area according to the informat length, which is why for "S9(07)V9(02)" use PD5.2, where 5 is the space in the record for the data, and 2 is for the implied decimal places.
If run-time performance is very important, you can eliminate the array and looping and list all the required variable names, in order, inside the first parenthesis. [pre] input (
intfcast1 pord1 lineItms1
intfcast2 pord2 lineItms2
intfcast3 pord3 lineItms3
.......................... (easy for me, but you need all the vars listed)
intfcast26 pord26 lineItms26 )
( pd5.2 pd4. pd2. ) ; [/pre]
The input processing repeatedly uses the format list (second parenthesis).
Of course, that long variable list in the first parenthesis may be reduced with some macro to generate the long variable list, but I'm not sure which you would prefer.