program weather_statistics
implicit none
integer :: i, n
real, dimension(1000) :: temperature, humidity, visibility
real :: avg_temperature, avg_humidity, avg_visibility, water_vapor_pressure
! 读取气象要素数据
open(unit=1, file='data6.txt', status='old')
do i = 1, 1000
read(1, *) temperature(i), humidity(i), visibility(i)
end do
close(1)
! 计算平均气温、相对湿度和能见度
avg_temperature = sum(temperature) / 1000
avg_humidity = sum(humidity) / 1000
avg_visibility = sum(visibility) / 1000
! 输出平均气温、相对湿度和能见度
print *, "平均气温:", round(avg_temperature, 1)
print *, "平均相对湿度:", round(avg_humidity, 1)
print *, "平均能见度:", round(avg_visibility, 1)
! 计算各时次水汽压并输出到屏幕
call calculate_water_vapor_pressure(temperature, n, water_vapor_pressure)
contains
subroutine calculate_water_vapor_pressure(temperature, n, water_vapor_pressure)
implicit none
integer, intent(in) :: n
real, dimension(n), intent(in) :: temperature
real, dimension(n), intent(out) :: water_vapor_pressure
integer :: i
real :: t
do i = 1, n
t = temperature(i)
water_vapor_pressure(i) = 6.1 * exp(17.8 * t / (t + 273.15))
end do
end subroutine calculate_water_vapor_pressure
end program weather_statisticsv