﻿An error message in log files starts with the “error:” string, error location
(namely, the name of F291 file and line number), and message text. A warning
message follows the same structure except for that it starts with the 
“warning:” string. Error and warning messages are further explained below and 
their impacts on the conversion process are described.


1. error: D.depthX not given
Part of record type D repeats TEMPERATURE, PRACTICAL SALINITY, and CONDUCTIVITY 
measurements per DEPTH. The number X runs from 1 to 5 and it identifies a 
repetition block. The repetition number is assigned in the order of appearance: 
1 for columns 27-44, 2 for columns 45-62, and so forth. This error occurs when 
any of the three measurements is present but its corresponding DEPTH is absent. 
All measurements in the repetition block without DEPTH are discarded and they 
are not written to the NetCDF file.


2. error: E.depthX not given
Part of record type E repeats PRESSURE, U-, V-, and W-COMPONENT measurements 
per DEPTH. The number X runs from 1 to 4 and it identifies a repetition block. 
The repetition number is assigned in the order of appearance: 1 for columns 
27-48, 2 for columns 49-70, and so forth. This error occurs when any of the 
four measurements is present but its corresponding DEPTH is absent. All 
measurements in the repetition block without DEPTH are discarded and they are 
not written to the NetCDF file.


3. error: invalid format
The current input line from a F291 file does not conform to the F291 
specification. This typically happens when a field cannot be parsed to a number 
because of the presence of one or more non-numerical characters. The field is 
thrown away and conversion proceeds to next field on the same line.


4. error: orphaned record
The required F291 record of type A is not found for this line. Conversion will 
be attempted using the date and time from this line.


5. error: unwritten measurements; avail XXXXXXXX, written YYYYYYYY
This error is issued when one or more measurement data were successfully parsed 
but they were not written to the NetCDF file because of an error reported 
earlier in the log file. Data loss has occurred. Both avail and written 
bitmasks are 32-bit hexadecimal numbers. Each non-zero bit in the avail bitmask 
represents the availability of a measurement on the current F291 line. Each 
type of F291 record has its own bitmask mapping to F291 measurements. For 
example, the most significant bit for record type A is reserved for LATITUDE. 
However, it is used for ANEMOMETER HEIGHT in records of type B. (For complete 
bitmask mappings, the source code should be consulted.) The written bitmask 
tells which F291 data were actually written to the NetCDF file. By finding the 
difference between the avail and written bitmasks, one can determine which 
measurement was not recorded to the NetCDF file.


6. warning: blank tail(s) <   X >; parsed as X0
This happens when the conversion program has an issue parsing a fixed-width 
integer with or without a sign. The brackets (< and >) delineates the 
fixed-width integer as found on the current F291 record. They are not part of 
the F291 record. One or more blank spaces appearing to the right side of X are 
treated as zeros.


7. warning: count mismatch; expected X, actual Y
This warning can occur for record of types C, I, and K. The COUNT DATA in 
record type C and COUNT in record types I and K specify the expected number of 
data block repetition. When the actual number of repetition differs from the 
expected count, this warning is issued.


8. warning: delta unavailable for central value X.XX; will use zero
This warning message is issued when a frequency resolution is unavailable for 
the wave_wpm_bnds variable in the NetCDF file or when a depth bin width is for 
the depth_bnds variable. The wave_wpm_bnds variable specifies the upper and 
lower bounds of each frequency value in the wave_wpm variable. In records of 
types C, G, H, I, K, and L, the FREQUENCY and its corresponding RESOLUTION are 
present. The FREQUENCY is converted and stored to the wave_wpm variable. The 
RESOLUTION is divided by two and the resulting value is added to or subtracted 
from the corresponding FREQUENCY to yield the upper or lower bounds of a 
wave_wpm_bnds entry. When a RESOLUTION is unavailable, the conversion program 
issues the warning message and uses a zero for the resolution. Record types D, 
E, and F defines the DEPTH but only record type E specifies BIN WIDTH, a width 
of each depth bin. When a BIN WIDTH is unavailable for a DEPTH, the warning is 
issued. For record types D and F, the warning will be issued for every DEPTH 
because there is no width information.


9. warning: MINUTE OF HOURLY PEAK is present but no speed/direction
The MINUTE OF HOURLY PEAK is specified in a record of type J. However, its 
corresponding wind speed (HOURLY PEAK WIND) and/or direction (DIRECTION OF 
HOURLY PEAK) are not present. The MINUTE OF HOURLY PEAK datum is entered to the 
timem NetCDF variable by augmenting it with the REPORT DATE and the hour from 
REPORT TIME.


10. warning: negative spectral density -X.XX
By definition, the spectral density C11 in a record of type C should be 
nonnegative. This warning occurs when the parsed value of a spectral density is 
negative. Nonetheless, the negative value is recorded to the NetCDF file.


11. warning: negative visibility -X.X
The VISIBILITY in a record of type B is expected to be nonnegative because it 
measures visibility in nautical miles. This warning occurs when the parsed 
value of a visibility measurement is negative. Nonetheless, the negative value 
is recorded and kept in the NetCDF file.


12. warning: real number for BOTTOM DEPTH XX.X
The BOTTOM DEPTH field in record type A specifies a number with up to five 
digits without a decimal point. A decimal point is to be placed at tenths. 
However, when a decimal point is present on the five-character field, this 
warning message is printed. The given datum is parsed as a real number and 
recorded to the NetCDF file.


13. warning: real number for WIND SPEED (AVG) X.XX
The WIND SPEED (AVG) field in record type B specifies a number with up to four 
digits without a decimal point. A decimal point is to be placed at hundredths. 
However, when a decimal point is present, this warning message is given. The 
given datum is parsed as a real number and recorded to the NetCDF file.


14. warning: skip invalid integer <####>
This warning happens when the conversion program fails to parse a fixed-width 
integer with or without a sign. The brackets (< and >) delineates the 
fixed-width integer as found on the current F291 record and they are not part 
of the record. Presence of a non-numeric character, which typically is a sharp 
character (#), causes an “invalid format” error. This warning message 
supplements the error with details. The datum is discarded and conversion 
proceeds to next field on the same F291 record.


15. warning: skip invalid unsigned integer <####>
This warning happens when the conversion program fails to parse a fixed-width 
unsigned integer without a sign. The brackets (< and >) delineates the 
fixed-width integer as found on the current F291 record and they are not part 
of the record. Presence of a non-numeric character, which typically is a sharp 
character (#), causes an “invalid format” error. This warning message 
supplements the error with details. The datum is discarded and conversion 
proceeds to next field on the same F291 record.


16. warning: TIME OF HOURLY LOW ATMOSPHERIC PRESSURE is present but no pressure
The TIME OF HOURLY LOW ATMOSPHERIC PRESSURE is present in a record of type J. 
However, its corresponding pressure (HOURLY LOW ATMOSPHERIC PRESSURE) is 
absent. The TIME OF HOURLY LOW ATMOSPHERIC PRESSURE datum is entered to the 
timen NetCDF variable by using the REPORT DATE.


17. warning: TIME OF HOURLY PEAK WIND SPEED is present but no speed/direction
The TIME OF HOURLY PEAK WIND SPEED is given in a record of type J. However, its 
corresponding wind speed (HOURLY PEAK WIND SPEED) and/or direction (DIRECTION 
OF HOURLY PEAK WIND SPEED) are absent. The TIME OF HOURLY PEAK WIND SPEED datum 
is entered to the timem NetCDF variable by using the REPORT DATE.


18. warning: too many unwritten measurements; stopped reporting
As explained elsewhere, an unwritten measurements error occurs when one or more 
measurement data are not written to the NetCDF file. To reduce the size of a 
log file, the “unwritten measurements” errors are reported up to three times. 
If the error occurs more than three times, this warning message is issued and 
the subsequent errors are not reported for the remainder of conversion process.
