编辑代码

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