## Parameter m1 = Model asked ## From this AWK script, we read the file xxx.ori ## Argument 'parts': 0=all 1=title only 2=data only BEGIN { if (parts!=0) print "# parts=" parts ", m1=" m1 ", m2=" m2 } ## First 153 records contain the Wavelengths. NR < 154 { for (i=1; i<=NF; i++) nm[++n] = $i ; next} ## Models are made of 176 lines, the first being the model parameters. { if (((NR-154)%176)==0) { #print "----There are " n " wavelengths" m=$1; if (mm1) exit(0); ### Here, we are at beginning of model m1. T=$2; logg=$3; mh=$4; xi=$5;xh=$6 #print "\\cgidef{-tex}" if (parts != 2) { #print "\\section*{Model Parameters:}"; print "\\begin{tabular}{rl}" print "T$_{eff}$ =&" T " \\d K\\\\"; print "logg =&" logg " [cm/s$^2$]\\\\"; print "[M/H] =&" mh " dex$^{ }$\\\\"; print "V$_{turb}$ =&" xi " km/s\\\\"; print "xh =&" xh " (mixing-length)" "\\\\"; print "\\end{tabular}" } if (parts == 1) exit(0); if (parts != 2) { printf("\\par\\begin{PRE}\n\\hr\n") ; printf(" Lambda\tOri Flux moment") ; if (m2 > 0) printf("\tCorrected Flux Moment"); printf("\n (nm)\t (mW/m2/Hz)\t (mW/m2/Hz)\n") ; } if (m2 > 0) { ### Read the 2nd file #print "----Getting 2nd model #" m2 ; for (k=1; k<154; k++) { cat2 | getline ; for (i=1; i<=NF; i++) { n2++ ; if ($i != nm[n2]) { print "****Non-matching wavelengths: k=", k, $i, nm[n2] exit(1) ; } } } cat2 | getline ; # Read line Mod# Teff logg ... #print "....Skipped lambda's, line is: " $0 ; while ($1 < m2) { #print "#2nd File: Skipping" $0 for (i=0; i<175; i++) cat2 | getline ; if ((cat2 | getline) <= 0) break ; #print "....Skipped fluxes, line is: " $0 } #print "#2nd File: Current " $0 } if (parts != 2) print "\\hr" ; k1=0; k2=0; next } #### Flux data. #printf("----NR=%4d; NF=%d", NR, NF) ; if(m!=m1) next; for (i=1; i<=NF; i++) val[i] = $i ; if (m2 > 0) { cat2 | getline ; #print "#2nd File: Current " $0 for (i=1; i<=NF; i++) val2[i] = $i ; #print "," NF ; } # part2: print the 2 parts independantly if ((m2 > 0) && (parts == 0)) part2 = 1; else part2 = 0; for (i=1; i<=NF; i++) { printf("%12s\t%12s", nm[++k1], val[i]) if (part2 > 0) printf("\t%12s", val2[i]) else if (m2 > 0) val2f[++k2] = val2[i]; print "" } } END { if (parts != 2) print "\\hr\\end{PRE}" if (k2>0) { print "" for (i=1; i<=k2; i++) printf("%12s\t%12s\n", nm[i], val2f[i]); } }