154359Sroberto# program to produce loran tdata statistics from clockstats files
254359Sroberto#
354359Sroberto# usage: awk -f tdata.awk clockstats
454359Sroberto#
554359Sroberto# format of input record (missing replaced by -40.0)
654359Sroberto# 49228 36.852 127.127.10.1 93:241:00:00:20.812 LORAN TDATA
754359Sroberto# M OK 0 0 1169.14 -7.4 3.16E-07 .424
854359Sroberto# W CV 0 0 3329.30 -16.4 1.81E-06 
954359Sroberto# X OK 0 0 1737.19 -10.5 3.44E-07 .358
1054359Sroberto# Y OK 0 0 2182.07 -9.0 4.41E-07 .218
1154359Sroberto#
1254359Sroberto# format of output record (time in nanoseconds, signal values in dB)
1354359Sroberto#  MJD      sec      time     M      W      X      Y      Z
1454359Sroberto# 49228    36.852   175.0   -7.4  -16.4  -10.5   -9.0
1554359Sroberto#
1654359Sroberto# select LORAN TDATA records with valid format
1754359Sroberto{
1854359Sroberto	if (NF >= 7 && $6 == "TDATA") {
1954359Sroberto		m = w = x = y = z = -40.0
2054359Sroberto		for (i = 7; i < NF - 5; i++) {
2154359Sroberto			if ($i == "M" && $(i+1) == "OK") {
2254359Sroberto				i += 5
2354359Sroberto				m = $i
2454359Sroberto			}
2554359Sroberto			else if ($i == "W" && $(i+1) == "OK") {
2654359Sroberto				i += 5
2754359Sroberto				w = $i
2854359Sroberto			}
2954359Sroberto			else if ($i == "X" && $(i+1) == "OK") {
3054359Sroberto				i += 5
3154359Sroberto				x = $i
3254359Sroberto			}
3354359Sroberto			else if ($i == "Y" && $(i+1) == "OK") {
3454359Sroberto				i += 5
3554359Sroberto				y = $i
3654359Sroberto			}
3754359Sroberto			else if ($i == "Z" && $(i+1) == "OK") {
3854359Sroberto				i += 5
3954359Sroberto				z = $i
4054359Sroberto			}
4154359Sroberto                }
4254359Sroberto		printf "%5s %9.3f %6.1f %6.1f %6.1f %6.1f %6.1f\n", $1, $2, m, w, x, y, z
4354359Sroberto	}
4454359Sroberto}
4554359Sroberto
46