SUBROUTINE ExportSpatialAverageMeteo &
!
(init)
IMPLICIT NONE
!arguments with intent in:
LOGICAL, OPTIONAL, INTENT(IN) :: init
!local declarations
INTEGER (KIND = short) :: i, k, count
!-------------------------------end of declaration-----------------------------
IF ( countmeteo == 0 ) THEN
RETURN
END IF
IF (PRESENT (init) .AND. init ) THEN ! open file and write header
DO i = 1, nextents
extents (i) % unitmeteo = GetUnit ()
OPEN (UNIT = extents (i) % unitmeteo, FILE = extents (i) % filemeteo)
WRITE(UNIT = extents (i) % unitmeteo, FMT ='(a)') &
'spatial average values of meteorological variables'
WRITE(UNIT = extents (i) % unitmeteo, FMT ='(a,a)') &
'extent id: ', TRIM(extents (i) % id)
WRITE(UNIT = extents (i) % unitmeteo, FMT ='(a,a)') &
'extent name: ', TRIM(extents (i) % name)
WRITE(UNIT = extents (i) % unitmeteo, FMT ='(a,f15.5)') &
'extent area (km2): ', extents (i) % area / 1000. ** 2.
WRITE(UNIT = extents (i) % unitmeteo, FMT ='(a,i5)') &
'number of variables: ', countmeteo
WRITE(UNIT = extents (i) % unitmeteo, FMT = *)
WRITE(UNIT = extents (i) % unitmeteo, FMT = '(a)') 'data'
WRITE(UNIT = extents (i) % unitmeteo, FMT = '(a)', ADVANCE = 'no' ) 'DateTime '
count = 0
DO k = 1, SIZE (meteoout)
IF (meteoout (k) ) THEN
count = count + 1
IF (count == countmeteo) THEN !last header
WRITE(UNIT = extents (i) % unitmeteo, FMT = '(a)') TRIM(meteoheader (k))
ELSE
WRITE(UNIT = extents (i) % unitmeteo, FMT = '(a,2x)', ADVANCE = 'no') TRIM(meteoheader (k))
END IF
END IF
END DO
END DO
ELSE !write spatial average values
timeString = timeSpatialAverageMeteo
DO i = 1, nextents
WRITE(UNIT = extents (i) % unitmeteo, FMT ='(a,2x, 11(E12.5,5x))') &
timeString, (extents (i) % meteo (k), k = 1, countmeteo)
END DO
END IF
RETURN
END SUBROUTINE ExportSpatialAverageMeteo