### Complex visibilities

The complex visibility values are always real(4). The range of 32-bit columns for the complex visibility values is indicated by h%gil%fcol and h%gil%lcol. We thus have the following relations
h%gil%fcol = h%gil%nlead+1
h%gil%lcol = h%gil%dim(visi_axis) - h%gil%ntrail
h%gil%nlead+h%gil%ntrail = sum (h%gil%column_size)
where visi_axis is 1 for the “natural” (UVT) order, in which each visibility is contiguous, and 2 for the “transposed” order (TUV).

The UV data format is in fact a generic telescope table format, and can also handle tables from a Single dish telescope. As weights are often common to all values, the complex visibility can be made of only 2 “atoms” provided h%gil%column_pointer(code_uvt_weig) 0. It can also have only 1 atom, if the imaginary part is always 0. The “atom” types are explicitely described by the h%gil%atoms(1:4) array. Currently defined atom types are

    ! Visibility atom description
    integer(kind=4), parameter :: code_atom_real = 1
    integer(kind=4), parameter :: code_atom_imag = 2
    integer(kind=4), parameter :: code_atom_weig = 3

Other codes may be added if needed, for example integration time (as Tsys weighting is not necessarily the thing to do when handling different polarizations).