SUBROUTINE TableWriteToUnit &
( tab, iunit )
! Module used:
USE StringManipulation, ONLY: &
! imported routines:
StringCompact
IMPLICIT NONE
! Function arguments
! Scalar arguments with intent(in):
INTEGER (KIND = short), INTENT (IN) :: iunit
! Type defined arguments with intent (in):
TYPE (Table), INTENT (IN) :: tab
!Local variables:
INTEGER (KIND = long) :: i, j
!------------end of declaration------------------------------------------------
!write keyword for start table
WRITE(iunit,'(a)') 'Table Start'
!write title if exists
IF ( StringCompact ( tab % title ) /= '' ) THEN
WRITE(iunit,'(a7)', ADVANCE = 'no') 'Title: '
WRITE(iunit,'(a)') TRIM (tab % title)
END IF
!write id
WRITE(iunit,'(a4)', ADVANCE = 'no') 'Id: '
WRITE(iunit,'(a)') TRIM (tab % id)
!write column headers
WRITE(iunit,'(a9)', ADVANCE = 'no') 'Columns: '
DO i = 1, tab % noCols - 1
WRITE(iunit,'(a1,a,a2)', ADVANCE = 'no') '[', TRIM (tab % col (i) % header ), '] '
END DO
WRITE(iunit,'(a1,a,a1)') '[', TRIM (tab % col (tab % noCols) % header ), ']'
!write column unit
WRITE(iunit,'(a7)', ADVANCE = 'no') 'Units: '
DO i = 1, tab % noCols - 1
WRITE(iunit,'(a1,a,a2)', ADVANCE = 'no') '[', TRIM (tab % col (i) % unit ), '] '
END DO
WRITE(iunit,'(a1,a,a1)') '[', TRIM (tab % col (tab % noCols) % unit ), ']'
!write content
DO i = 1, tab % noRows
DO j = 1, tab % noCols - 1
WRITE(iunit,'(a)', ADVANCE = 'no') TRIM (tab % col (j) % row (i) ) // ' '
END DO
WRITE(iunit,'(a)') TRIM (tab % col (tab % noCols) % row (i) )
END DO
!write keyword for close table
WRITE(iunit,'(a)') 'Table End'
END SUBROUTINE TableWriteToUnit