-- 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 |
-- 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 | 海面淡水フラックス |
このプログラムを実行するには,ディレクトリinit/で
make
とコマンドします.そうするとINITIALという名前で初期条件ファイルが作成されま
す.ただし,北大大型計算機センターのコンピュータwineでこれを行うと,
初期条件ファイルはftn41という名前で作成されます.しかし中身に問題はなく
名前をINITIALに変更するとよい.
それでは次に例として,初期条件にLevitusの気候値を与えることを考えてみましょ う.Levitusの温度・塩分などの気候値のデータは//lanina/E:/f/woa94 においてあります.そこから温度・塩分のデータを取得しましょう(プログラム a2b.fを使用してデータ形式を変更する必要があります). まずはLevitusの温度・塩分のデータをモデルの解像度にあわせます. Levitusの温度・塩分のデータの解像度は 11,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 |