45from __future__
import print_function
59fname =
"milleBinaryISN.dat"
74 print(
" usage: readMilleBinary.py <file name> <number of records> [<number of records to skip> <minimum value to print derivative>]")
78 mrec = int(sys.argv[2])
80 skiprec = int(sys.argv[3])
82 minval = float(sys.argv[4])
90 while (nrec < mrec + skiprec)
or (mrec < 0):
94 lenf = array.array(intfmt)
97 length = array.array(intfmt)
99 nr = abs(length[0] / 2)
103 glder = array.array(
'f')
105 glder = array.array(
'd')
106 glder.fromfile(f, nr)
108 inder = array.array(intfmt)
109 inder.fromfile(f, nr)
112 lenf = array.array(intfmt)
115 if (nrec <= skiprec):
118 print(
" === NR ", nrec, length[0] / 2)
130 while (i < (nr - 1)):
132 while (i < nr)
and (inder[i] != 0): i += 1
135 while (i < nr)
and (inder[i] != 0): i += 1
139 if (ja + 1 == jb)
and (glder[jb] < 0.):
141 nsp = int(-glder[jb])
143 print(
' ### spec. ', nsp, inder[jsp + 1:i + 1], glder[jsp + 1:i + 1])
145 while (i < nr)
and (inder[i] != 0): i += 1
150 print(
' -g- meas. ', nh, inder[jb + 1], jb - ja - 1, i - jb, glder[ja], glder[jb])
153 print(
' -l- meas. ', nh, inder[ja + 1], jb - ja - 1, i - jb, glder[ja], glder[jb])
157 for k
in range(ja + 1, jb):
161 elif abs(glder[k]) >= minval:
164 print(
" local ", lab)
165 print(
" local ", val)
169 for k
in range(jb + 1, i + 1):
173 elif abs(glder[k]) >= minval:
176 print(
" global ", lab)
177 print(
" global ", val)
182 print(
" >>> error: end of file before end of record", nrec)
184 print(
" end of file after", nrec,
"records")