/*-----CDAT reader and conversion-------* | This converts from CDAT format to | | tabular format | *--------------------------------------*/ // 3/2/07 - fixed for negative M // 8/04/04 - New filter version // 8/26/04 - change to strings to handle any data // 11/15/04 - drop exec commands show_line "CDATA.S - CDAT File Reader" show_nl init_var NMAX 10000 #---prompt for CDAT file name--- $dat_in = dat2.cd show_field "CDAT file name" input0 $dat_in #---name the reformatted file--- show_nl $dat_out = $dat_in set_file_type $dat_out csv show_field " Output file name" input0 $dat_out #---choose delimiter for the output file--- $Delim = comma // default show_line " Supported delimiters: comma,tab,space,slash" show_field " Specify delimiter" input0 $Delim set_delim $Delim show_nl #---read CDAT file-- read_line $dat_in $header if err exit show $header write_line $dat_out $header set_delim space read_line $dat_in N M // rows/columns set_delim $Delim N = abs(N) if N=0; exit "Zero points in table"; end_if if N=1 show_line " N=1....read to EOF" N = NMAX else show_line "--> " @N " points in table" end_if show_line "--> " @abs(M) " fields per point" show_nl Mcol = abs(M) show_field "Number of columns to write?" input0 Mcol Mcol = min(Mcol,abs(M)) #---display/write param info--- if M<0 M = -M read_line $dat_in Params show_line "--> " @Params " parameters found" for_i = 1 Params // read params, if any read_line $dat_in $plab[i] read_line $dat_in $Par[i] show_line $plab[i] " = " $Par[i] write_line $dat_out " " $plab[i] " = " $Par[i] end_i else Params = 0 end_if #---read labels--- set_delim space // this drops the expl fields for_i = 1 M read_line $dat_in $Label[i] end_i set_delim $Delim #---write the reformatted file--- #---labels--- write_field $dat_out $Label[1] for_i = 2 Mcol write_field $dat_out $Dlm + $Label[i] end_i write_field $dat_out \n show_nl for_i = 1 N #---read data--- for_j = 1 M if j