Topへ戻る 

04: データの収集と加工(南方振動指数の計算2)


  http://www.data.kishou.go.jp/shindan/sougou/html/sum_2.3.html より

月平均標準偏差の計算,南方振動指数(SOI)の計算



月平均標準偏差(MSD)の計算
標準化されたタヒチとダーウィンの気圧差の二乗和を求め、
次に二乗和をサンプル数で割って月平均標準偏差MSDを求める。
ただし、各月における1981年~2010年の平均値を使うこと。


 サンプルコードは以下の通り。

!------------------------------------
! Monthly mean standard deviation (MSD)
! 正規化したタヒチとダーウィンの気圧の差の二乗和を、
! データ数(icount2)で割り、さらに平方根を取る。
!------------------------------------
      MSD=0; icount2=0
      do j=
DOループの制御
      if(ここに1981年~2010年のみで以下の計算を行うという条件を書く)then
      do i=DOループの制御
      MSD=MSD+ !
差の二乗和の計算
      icount2=
!データ数のカウント
      enddo
      endif
      enddo

      MSD=sqrt(MSD/real(icount2))
      write(*,*)" "
      write(*,*)"MSD=",MSD
      write(*,*)"icount2=",icount2





南方振動指数(SOI)の計算
 ついに最終局面。
 SOI=
(標準化タヒチ海面気圧 ー 標準化ダーウィン海面気圧)/ 月平均標準偏差(MSD)------(5)



!------------------------------------
! Final stage! Cal SOI
! 正規化したタヒチとダーウィンの気圧の差を、
! MSDで割ることでSOIを得る。
!------------------------------------
      do j=1,72
      do i=1,12
      SOI(i,j)= !埋めてください
      enddo
      enddo

!-------------------------------------------
! Timeseries SOI will be used later
! to investigate the relationship
! between SOI and SST@Nino monitoring areas
!-------------------------------------------
      decim=1./24.!(365/12/2/365)
      decim2=decim*2

      open(15,file="SOItimeseries.txt")
      do j=1,72
      do i=1,12
      k=i+(j-1)*12
      SOI2(k)=SOI(i,j)
      date=real(iyear(j))+decim+decim2*(i-1)
      !write(*,200) iyear(j),i,k,SOI2(k)
      write(15,200) date,SOI2(k)
      enddo
      enddo
200     format(2f12.4)
      close(15) !<-- caution: should be closed
! otherwise whole data cannot be saved !

!-----------------------------------
! Output
!-----------------------------------
      write(*,*)" "
      write(*,*)"Southern Oscillation Index"
      open(20,file="./SOI.txt")
      do j=1,72
      write(20,100) iyear(j),(SOI(i,j),i=1,12)
      write(*,110) iyear(j),(SOI(i,j),i=1,12)
110       format(i4,12f6.1)
      enddo
      close(20)


      stop !<---- we need to add it ALWAYS!
      end







(答え合わせ) NOAAによる南方振動指数