Topへ戻る 

02: データ分析の進め方


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

まずは前半で行う南方振動指数の計算について説明する。
次に、データの入出力をおさらいする。
最後に、南方振動指数を計算するために必要なタヒチとダーウィンの海面気圧データをの読み込みを行う。



(1)南方振動指数について
 南方振動指数(Southern Oscillation Index)はタヒチとダーウィンの海面気圧差を指数化したもの。
 貿易風の強度の目安で、正であれば貿易風が強い。
 南方振動(熱帯の西部太平洋と東部太平洋の海面気圧が数年ごとにシーソーのように振動する現象)とエルニーニョ現象は
 大気と海洋が相互に作用する現象を表している。
 講義で詳しく説明する。

 南方振動指数の計算手順1(NOAA)



(2)おさらい
 前回使用したReadCO2.forを用いる。
 このスクリプトは、おおまかに書くと宣言文・OPEN文・READ文・READ/WRITE文で構成されている。
 それぞれについて説明する。最後は必ず「stop」「end」で終わること。

 コンパイルは 
 gfortran ReadCO2.for

 そのほか必須コマンド
 フォルダの移動には「cd」、フォルダ内のファイルの確認は「dir(Windows)」「ls(Mac)」で行う。

 
CO2時系列データの平均値や標準偏差を求める。
 IF文を使って条件分けを行い、2000年以前と以後の平均値の差を計算する。


 
IF文・条件分けの書き方


(3)タヒチとダーウィンのデータをFortranで読む

 データのDL
 ・タヒチの海面気圧
 ・ダーウィンの海面気圧
 
 上記のデータはNOAA(米国大気海洋局)が作成したもの。
 最初の一行目はヘッダー、
 そのあとは、行方向に1951年~2022年、列方向に1~12月となっている。

 このままでは使いにくいので、1次元のデータに並べ替える。

 以下はダーウィンの海面気圧を読むためのサンプルコード。
c============================================
C This code reads sea level purresure dataset
C from NOAA & cal Southern Oscillation Index!
C K.Mizobata
C 2023.10.15
c============================================
C234567--------------------------------------
    character*120 header ! 最初の一行を格納する変数
    integer iyear(72) ! 「年」を格納する変数
    real Dar(12,72),Tah(12,72) ! 元データを格納する変数
    real mslpd(12),mslpt(12) ! 平均海面気圧を格納する変数
    real aDar(12,72),aTah(12,72) ! 偏差データを格納する変数
    real sDar,sTah ! 標準偏差を格納する変数
    real nDar(12,72),nTah(12,72) ! 標準化した気圧を格納する変数
    real MSD,SOI(12,72) ! 月平均標準偏差と南方振動指数を格納する変数
    real SOI2(12*72) ! 1次元に並び変えた南方振動指数を格納する変数

!--------------------------------------------
!-- read SLP(1000mb subtracted) @ Darwin ----
!--------------------------------------------
    open(10,file="./Darwin.txt")
    read(10,'(a120)') header !<--ヘッダー空読み
    !write(*,'(a120)') header

    i=1
    do j=1,72
    read(10,*) iyear(j),(Dar(i,j),i=1,12)
100   format(i4,12f6.1)
    enddo
    close(10)
   
    stop
    end