These are exactly the same as those routines described in subsection 7.4, except that now the argument `colData' is a pointer array. This allows the calling routine to avoid having to size it before the call to readColDataToPtr, on the other hand `colData' should now be DEALLOCATED by the calling program after use. As with readArrayData (subsection 7.2), there is no association between `colData' and the dataset pointers opened within the subroutine, which are either disassociated within the subroutine (if readColDataToPtr was called with the column name) or at the time the calling program releases the dataset (if readColDataToPtr was called with the column pointer).
interface readColDataToPtr subroutine readColToPtrName2dReal32(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName real(single), pointer :: colData(:,:) end subroutine readColToPtrName2dReal32 subroutine readColToPtrName2dReal64(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName real(double), pointer :: colData(:,:) end subroutine readColToPtrName2dReal64 subroutine readColToPtrNameReal32(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName real(single), pointer :: colData(:) end subroutine readColToPtrNameReal32 subroutine readColToPtrNameReal64(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName real(double), pointer :: colData(:) end subroutine readColToPtrNameReal64 subroutine readColToPtrNameInt8(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName integer(int8), pointer :: colData(:) end subroutine readColToPtrNameInt8 subroutine readColToPtrNameInt16(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName integer(int16), pointer :: colData(:) end subroutine readColToPtrNameInt16 subroutine readColToPtrNameInt32(tab, colName, colData) type(TableT), intent(in) :: tab character(*), intent(in) :: colName integer(int32), pointer :: colData(:) end subroutine readColToPtrNameInt32 subroutine readColToPtrColReal32(col, colData) type(ColumnT), intent(in) :: col real(single), pointer :: colData(:) end subroutine readColToPtrColReal32 subroutine readColToPtrColReal64(col, colData) type(ColumnT), intent(in) :: col real(double), pointer :: colData(:) end subroutine readColToPtrColReal64 subroutine readColToPtrColInt8(col, colData) type(ColumnT), intent(in) :: col integer(int8), pointer :: colData(:) end subroutine readColToPtrColInt8 subroutine readColToPtrColInt16(col, colData) type(ColumnT), intent(in) :: col integer(int16), pointer :: colData(:) end subroutine readColToPtrColInt16 subroutine readColToPtrColInt32(col, colData) type(ColumnT), intent(in) :: col integer(int32), pointer :: colData(:) end subroutine readColToPtrColInt32 end interface
The rules for conversion between datatypes are the same as for readArrayData (subsection 7.2). There is at present no conversion between non-string data and a string-valued `colData' argument.