WriteDataFileUnit Subroutine

private subroutine WriteDataFileUnit(network, fileunit, init)

write data from file unit. if optional argument init is true a string to initialize data section of file is written

Arguments

Type IntentOptional Attributes Name
type(ObservationalNetwork), intent(in) :: network
integer(kind=short), intent(in) :: fileunit
logical, intent(in), optional :: init

Variables

Type Visibility Attributes Name Initial
integer(kind=short), public :: i

Source Code

SUBROUTINE WriteDataFileUnit &
!
(network, fileunit, init)

IMPLICIT NONE

! Arguments with intent (in):
TYPE (ObservationalNetwork), INTENT(IN) :: network
INTEGER (KIND = short), INTENT(IN) :: fileunit


!Optional arguments:
LOGICAL, OPTIONAL, INTENT(IN) :: init

!local declarations:
INTEGER (KIND = short) :: i

!----------------------------end of declarations-------------------------------

!initialize data section
IF ( PRESENT (init) ) THEN
  IF (init) THEN
     WRITE (fileunit,*) !blank line
     WRITE (fileunit,'(a)') 'data' !data keyword
     WRITE (fileunit,'(a)',advance='no') 'DateTime'
				DO i = 1, network % countObs - 1
					WRITE (fileunit,'(" ",a)', advance='no') TRIM (network % obs (i) % id)
				END DO
        WRITE(fileunit,'(" ",a)') TRIM (network % obs (network % countObs) % id)
     RETURN !no need to go on
  END IF
END IF

!write current data
timeString = network % time
WRITE (fileunit,'(a25)',advance = 'no') timeString
DO i = 1, network % countObs - 1
	WRITE (fileunit,'(" ",e14.7)', advance = 'no') network % obs (i) % value
END DO
WRITE (fileunit,'(" ",e14.7)') network % obs (network % countObs) % value


RETURN
END SUBROUTINE WriteDataFileUnit