program enshu06z
  implicit none
  integer :: seireki,tsuki,joutai,bangou,kosuu
  real,dimension(1800) :: kion1retsu
  real :: seki_souwa,seki_heikin,soukan
  real :: kion_a,kion_a_souwa,kion_a_heikin,kion_a2_souwa,kion_a2_heikin, &
       kion_a_bunsan,kion_a_hensa
  real :: kion_b,kion_b_souwa,kion_b_heikin,kion_b2_souwa,kion_b2_heikin, &
       kion_b_bunsan,kion_b_hensa
  integer :: lag,kosuu_souwa
  ! 入力データのあるファイルを開く
  open(10,file="matsuyama-kion2.txt",status="old",action="read")
  kosuu = 0
  do ! データを読むループ
     read(10,'(2i5,i2.2,f6.1)',iostat=joutai)bangou,seireki,&
          tsuki,kion1retsu(bangou)
     if (joutai /= 0) exit
     kosuu = kosuu + 1
  end do
  close(10) ! ファイルを閉じる
  do lag = 0,kosuu/2 ! ラグに関するループ
     seki_souwa = 0.0
     kion_a_souwa = 0.0
     kion_a2_souwa = 0.0
     kion_b_souwa = 0.0
     kion_b2_souwa = 0.0
     kosuu_souwa = 0
     do bangou = 1,kosuu-lag
        kion_a = kion1retsu(bangou)     ! ラグ相関をとる2つの温度を kion_a と
        kion_b = kion1retsu(bangou+lag) ! kion_b と便宜的に呼ぶことにして、
        seki_souwa &                    ! kion_a と kion_b の積の総和をとる
             = seki_souwa + kion_a*kion_b
        kion_a_souwa = kion_a_souwa + kion_a      ! kion_a の総和をとる
        kion_a2_souwa = kion_a2_souwa + kion_a**2 ! kion_a の2乗の総和をとる
        kion_b_souwa = kion_b_souwa + kion_b      ! kion_b の総和をとる
        kion_b2_souwa = kion_b2_souwa + kion_b**2 ! kion_b の総和をとる
        kosuu_souwa = kosuu_souwa + 1             ! 総和をとったデータの個数を調べる
     end do
     kion_a_heikin = kion_a_souwa/real(kosuu_souwa)   ! kion_a の平均
     kion_a2_heikin = kion_a2_souwa/real(kosuu_souwa) ! kion_a の2乗の平均
     kion_a_bunsan = kion_a2_heikin-kion_a_heikin**2 ! kion_a の分散
     kion_a_hensa = sqrt(kion_a_bunsan)      ! kion_a の標準偏差
     kion_b_heikin = kion_b_souwa/real(kosuu_souwa)   ! kion_b の平均
     kion_b2_heikin = kion_b2_souwa/real(kosuu_souwa) ! kion_b の2乗の平均
     kion_b_bunsan = kion_b2_heikin-kion_b_heikin**2 ! kion_b の分散
     kion_b_hensa = sqrt(kion_b_bunsan)      ! kion_b の標準偏差
     seki_heikin = seki_souwa/real(kosuu_souwa)   ! kion_a と kion_b の積の平均
     soukan = (seki_heikin-kion_a_heikin*kion_b_heikin) &
          /kion_a_hensa/kion_b_hensa ! kion_a と kion_b の相関係数
     write(*,*)lag,soukan
  end do
end program enshu06z