What do you thing those @ in the INPUT statement are for?
To SAS it looks like you started with:
input id 3-5 @SCORE ....
So the @ score means move to the column number of the value of SCORE. Just like @ 10 means move to column 10.
So it is expecting the name of the variable you want to read from columns 13 to 14 to appear between the variable that the @ pointer motion is using and the 13.
Remove the @ 's .
input
ID 3- 5
Score 13-14
Age 6- 7
Code 8-12
State 1- 2
;
Note it is probably easier if you have some reason for wanting ID to be the first variable instead of the second to just tell SAS that directly and then have the INPUT statement read the variables in the order they actually appear on the line.
data dmv;
length ID Score Age Code State 8;
input
State 1- 2
ID 3- 5
Age 6- 7
Code 8-12
Score 13-14
;
Or
data dmv;
length ID Score Age Code State 8;
input
State 2.
ID 3.
Age 2.
Code 5.
Score 2.
;