***SAS CODE TO READ AND PRINT ANY OF THE NDP059 ***SNOWDEPTH DATA FILES (FILES 7-13 OF NDP059). ***THE USER NEEDS TO SPECIFY THE DESIRED FILE NAME IN ***THE "FILENAME" AND "INFILE" STATEMENTS BELOW; *SET UP AN OUTPUT FILE; filename out 'west.out'; data snow; *SPECIFY THE INPUT FILE; infile 'west.dat' lrecl=270; array datfield {31} $ field1-field31; array sf{31} sf1-sf31; array dmf {31} $ dmf1-dmf31; array dqf {31} $ dqf1-dqf31; array chsnow {31} $ 4 chsnow1-chsnow31; array snowd {31} snowd1-snowd31; input @1 staid $ 1-6 dattyp $ 8-11 units $ 12-13 year 14-17 mon 18-19 numdays 21-22 @23 (field1-field31) ($char8.); *STATEMENTS IN THE LOOP BELOW EXTRACT CHARACTER VALUES OF SNOWDEPTH AND DATA FLAGS AND CONVERT THE CHARACTER SNOWDEPTH VALUE TO INTEGER; do i=1 to 31; sf{i}=substr(datfield{i},2,1); chsnow{i}=substr(datfield{i},3,4); *MAKE AN INTEGER VALUE OF SNOWDEPTH FROM THE CHARACTER VALUE; snowd{i}=input(chsnow{i},4.); dmf{i}=substr(datfield{i},7,1); dqf{i}=substr(datfield{i},8,1); end; *PRINT EACH LINE OF INPUT DATA (RESULTING IN 5 OUTPUT LINES), IF DESIRED; file out; put staid 1-6 dattyp 8-11 units 12-13 year 14-17 mon 18-19 numdays 21-22 / @1 (field1-field10) ($char8.) / @1 (field11-field20) ($char8.) / @1 (field21-field30) ($char8.) / @1 field31 $char8.; run;