The discrepancy between the numbers of variables in datasets TEST and TC_LEVEL_JUNE01 indicates that the PUT statement uses 870-516=354 variable names that are not contained in TC_LEVEL_JUNE01, i.e., the PUT statement doesn't match the dataset, which is alarming. Even worse, if exactly 516 variable names are listed in the PUT statement, 354 variables from TC_LEVEL_JUNE01 will not be written to JUNE012.csv, only missing values instead. Normally, TEST would be an identical copy of TC_LEVEL_JUNE01 (and therefore typically omitted by using a data _null_ statement).
Watch out for log messages like
NOTE: Variable NEWVAR is uninitialized.
to identify the mismatching variable names.
Also, consider using the DSD option (which is useful if a character value happens to contain the delimiter) if you want to create a CSV file and not a text file with fixed field widths and without delimiters (as is suggested by your PUT statement).
... View more