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 |