next up previous
次へ: bound/bound.par.Fの編集(境界条件ファイルの作成) 上へ: 各種ファイルの編集の仕方および書き換え例 戻る: EXAMPLE (GEOの編集)

init/initial.par.Fの編集(初期条件ファイルの作成)

等温・等塩分・静止という簡単な初期条件ファイルを作成するためのプログラム がinit/initial.par.Fに用意されています.まずinitial.par.Fの中身をみて, どのように等温・等塩分・静止という簡単な初期条件ファイルを作成しているの か確認しましょう. 以下にinitial.par.Fの中身で特に重要な部分を抜き出してみました.
    -- initial.par.F --
   
28   DATA TINIT / NZ * 5.D0 /
29   DATA SINIT / NZ * 34.7D0 /
     
31   DO 100 K = 1, NZ
32       DO 100 J = 1, NYG
33           DO 100 I = 1, NXG
34               DIM3(I, J, K) = 0.0
35               T(I, J, K) = TINIT(K)
36               S(I, J, K) = SINIT(K)
37 100 CONTINUE
    
上のプログラムでは 配列DIM3にはすべて0,配列Tにはすべて5.D0,配列Sにはすべて34.7D0の値が 入ることになります. つまりDIM3を東向き,北向き流速場,Tを温度場,Sを塩分場として, 初期条件ファイルに書き出すことで 等温・等塩分・静止という初期状態を表現できることになります.
初期条件ファイルにこれらのデータを書き出している部分を以下に抜き出し ます.
  -- initial.par.F --  
   
51     WRITE(CHEAD(64), '(I16)') NXYZG  
52     WRITE(NFINIT) CHEAD  
53     WRITE(NFINIT) DIM3 流速東向き成分
54     WRITE(CHEAD(64), '(I16)') NXYZG  
55     WRITE(NFINIT) CHEAD  
56     WRITE(NFINIT) DIM3 流速北向き成分
57     WRITE(CHEAD(64), '(I16)') NXYZG  
58     WRITE(NFINIT) CHEAD  
59     WRITE(NFINIT) T 水温
60     WRITE(CHEAD(64), '(I16)') NXYZG  
61     WRITE(NFINIT) CHEAD  
62     WRITE(NFINIT) S 塩分
63     WRITE(CHEAD(64), '(I16)') NXYG  
64     WRITE(NFINIT) CHEAD  
65     WRITE(NFINIT) DIM2 鉛直速度
66     WRITE(CHEAD(64), '(I16)') NXYG  
67     WRITE(NFINIT) CHEAD  
68     WRITE(NFINIT) DIM2 鉛直粘性係数
69     WRITE(CHEAD(64), '(I16)') NXYG  
70     WRITE(NFINIT) CHEAD  
71     WRITE(NFINIT) DIM2 鉛直拡散係数
72     WRITE(CHEAD(64), '(I16)') NXYZG  
73     WRITE(NFINIT) CHEAD  
74     WRITE(NFINIT) DIM3 海面高度
75     WRITE(CHEAD(64), '(I16)') NXYZG  
76     WRITE(NFINIT) CHEAD  
77     WRITE(NFINIT) DIM3 鉛直積分流量東向き成分
78     WRITE(CHEAD(64), '(I16)') NXYZG  
79     WRITE(NFINIT) CHEAD  
80     WRITE(NFINIT) DIM3 鉛直積分流量北向き成分
81     WRITE(CHEAD(64), '(I16)') NXYG  
82     WRITE(NFINIT) CHEAD  
83     WRITE(NFINIT) DIM2 海面温度フラックス
84     WRITE(CHEAD(64), '(I16)') NXYG  
85     WRITE(NFINIT) CHEAD  
86     WRITE(NFINIT) DIM2 海面淡水フラックス
    
COCOにおける初期条件ファイルの形式は, 上から順に流速東向き成分,流速北向き成分,水温,塩分 $\cdots$が書いてある形式となっています. 上のプログラムは初期条件ファイルの形式に合わせて, 順に53行目で流速東向き成分場を配列DIM3として書き, 56行目で流速北向き成分場を配列DIM3として書き, 59行目で水温場を配列Tとして書き, 62行目で塩分場を配列Sとして書き出しています. これでデフォルトのinitial.par.Fは静止,等温 (5.0 $^\circ$C),等塩分(34.7 psu)の初期条件ファイルを作成している ことを確認できたと思います.

このプログラムを実行するには,ディレクトリinit/で

make

とコマンドします.そうするとINITIALという名前で初期条件ファイルが作成されま す.ただし,北大大型計算機センターのコンピュータwineでこれを行うと, 初期条件ファイルはftn41という名前で作成されます.しかし中身に問題はなく 名前をINITIALに変更するとよい.

それでは次に例として,初期条件にLevitusの気候値を与えることを考えてみましょ う.Levitusの温度・塩分などの気候値のデータは//lanina/E:/f/woa94 においてあります.そこから温度・塩分のデータを取得しましょう(プログラム a2b.fを使用してデータ形式を変更する必要があります). まずはLevitusの温度・塩分のデータをモデルの解像度にあわせます. Levitusの温度・塩分のデータの解像度は 1$^\circ \times$1$^\circ$,33層となっており,今回はモデルの解像度と Levitusの温度・塩分データの解像度が同じなのでそのままのデータを使用します. ただし欠損値が存在している場合は,各自で補完したデータを作成しましょう (一応参考としてtest.mを//lanina/E:/d/coco3.3/programにおいておきます). initial.par.Fの中で,OPEN文を使って初期条件として使用するデータを読み込みま す.

    REAL ANNTEMP(NXG,NYG,NZ)
    REAL ANNSAL(NXG,NYG,NZ)
     
    OPEN(UNIT=80, FILE='inittemp',
  &     ACCESS='DIRECT', RECL=4*NXYZG, FORM='UNFORMATTED')
    OPEN(UNIT=81, FILE='initsal',
  &     ACCESS='DIRECT', RECL=4*NXYZG, FORM='UNFORMATTED')
     
    read(80,rec=1) ANNTEMP
    read(81,rec=1) ANNSAL
    
あとは前述したように初期条件ファイルの書式に従ってWRITE文でANNTEMP, ANNSALを書き出します.(//lanina/E:/d/coco3.3/program/initial.par.Fを参照)
next up previous
次へ: bound/bound.par.Fの編集(境界条件ファイルの作成) 上へ: 各種ファイルの編集の仕方および書き換え例 戻る: EXAMPLE (GEOの編集)
Yoshifumi Watanabe 平成15年3月30日