2013年10月31日木曜日

GOTM developer's version (test cases)

現段階で生じているエラーはこちら:

    init_air_sea
 FATAL ERROR: I could not read airsea namelist
STOP init_airsea

このネームリストはgotmバージョン4から持ってきたものなのでこのファイルがdeveloper's versionの更新と同期されてないかまたはその逆でdeveloper's verisonのコードが書き換えられてからネームリストがモデルの更新に追いついていってないかのどっちかだと思うんだが新しい宿題が出たのでまた今度じっくりコードを眺めてみることにする。

2013年10月30日水曜日

NPZ Visualizerをhtml5&javascriptで作りたい

昨日の一年生のラボはNPZ model(栄養塩・植物プランクトン・動物プランクトン)で遊ぶというものでワシントン大学の教授が作ったプログラムを使っていた(http://coast.ocean.washington.edu/~neil/npzvisualizer/)。プログラムはJavaで書かれていてラボにあったパソコンからだとIEかつJavaが更新されていることが利用できる条件だった。ちょっと不便だよね。。

Javaは全くわからんがhtml5とjavascriptを使って書き直してみたいと思いいろいろ検索すると「HTML5による物理シミュレーション環境の構築 ~WebGLライブラリThree.js 入門」というのを見つけた。

これを参考にすれば上記のJavaプログラムと同じようなのを作れるかもしれない。

土日にやってみるかな。

こういうところで礼拝しています。

大学内での礼拝はできるだけ合同礼拝に参加するようにしています。
sedgewick buildingにある礼拝所
ビクトリア大学にはムスリム専用の礼拝所がSedgewick Buildingにあります(アルハムドゥリッラー)。流し台もあるのでウドゥーもしやすい。
しかしSedgewick buildingは立地が少々悪い(キャンパスの中央から若干距離がある)ので合同礼拝をしようとしてもあまり人が集まりません。そこで図書館の地下階の隅っこにある普段ほとんど人のくることのない通路に二人一組で並んで礼拝します。多い時で四列できたりします。もっともっと増えるといいが。
大学外ですがビクトリア唯一のモスク、マスジド・アル・イマーンの中です。歩いて十二分なので朝の礼拝は天気が悪くない限りここに来れるようにアラームをセットします。

この他に金曜礼拝は大学のチャペルでも行われます。またカモソンカレッジにもリッチモンドハウスという建物内に礼拝室が設けられています。ありがたいこってす(^ ^)

2013年10月29日火曜日

オンキャンパスハウジングの違い

この前友達が言っていた。ビクトリア大学の学生寮は一年生しか住めないらしい。一年後はみんな出て行かないといけないんだって。そしたらメモリアル大学や他の多くのカナダの大学みたいに上級生(senior)がfroshと呼ばれる新入生をいろいろいじったりいろんなことさせたりするfroshingという伝統のようなものはないんだろうな。寮別スポーツ大会とかもないんかな?

メモリアル大学の寮には初めて来た年に住んだけどあんまり馴染めなかったな。みんな高校卒業したて&親元離れたての人ばかりでパーティなんかしてはしゃぎたい年頃の人ばかりだった。自分はというと高卒後日本で一年間一人暮らしを経てやって来たわけだったのでそういう年頃はもう過ぎていたような。。

寮に住んでよかったことは

  • 家賃が安い(月$250ぐらいだったような?)
  • 授業にすぐ&Tシャツにスリッパで行ける(雪が積もっても移動できるようにメモリアル大学キャンパス内には地下トンネルが張り巡らされている)
  • 食事を作らなくていい(みんな食堂で食べる)
  • 友達といつでも遊べる(一年目にできた友達は寮又は学内アパートに住んでいた友達がほとんどだった)
逆に悪かったことは
  • 食費が高い(家賃が安いからかしらないが食事は一食10㌦ぐらいした)
  • プライバシーがほとんどない(新入生は基本二人一部屋。トイレ&シャワーは各階の住人と共有。男女別)
  • ほぼ毎週末パーティをやっている(quiet hourと呼ばれる静かにする時間帯あり。またquiet floorと呼ばれる静かにすることを約束された階もあるが部屋数に限りがある)
  • 勉強する環境には向いていない(友達の遊びの誘いが常にある状態)

大学留学で初めてカナダに来る、という人はいろいろ不安もあると思うので大学内の寮やアパートに住むことをお勧めします。オフキャパスはリース(賃貸契約)や電気代の支払いなど英語圏が初めての場合難しいことが多いと思います。

基本的にオンキャンパスハウジングは人気があるので早めに希望を出しておくことをお勧めします。場合によっては大学入学出願する前に希望を出すこともできます。僕の場合大学院(M1)の時大学院用の寮に住んだんですがそのときは住みたい一年前に希望をだしました。またビクトリア大学の家族用アパートにも入学願書を出した次の日(2月中旬)に希望を出しましたが希望者が多かった又は空き部屋が無く結局9月入居は無理っぽかったのであきらめました。まぁ今住んでいるところで十分満足しているんですが。

2013年10月18日金曜日

test case: nns_annual



Mixing in Northern North Sea including the NPZD bio-geochemical model: http://www.gotm.net/index.php?go=software&page=testcases

More about this case: http://www.gotm.net/pages/documentation/manual/stable/html/node237.html#nns_annual

Biogeochemical Model: NPZD (4 variables)
Advection scheme for vertical motion: TVD with ULTIMATE QUICKEST
ODE scheme for source and sink dynamics: Modified Patankar-RK (2. order, conservat., posit.)

bio_npzd.nml

I am going to play around with this file.

".value" files

This type of file gives you the list of parameters or T/F statements of your choice for the run. Can be useful to keep track of your simulation settings.

sst and sss restoring (every 3 hours with 3-D model output)

temperature and salinity resotring (whole depth, every 12 hours with 3-D model output)

dt = 1 hour

Sensitivity Analysis: Select 5 parameters.

Parameter Number.  Code Name: Default Value: Line Number in "bio_npzd.nml"

  1. I_min: 25.: L39
  2. rmax: 1.: L40
  3. gmax: 0.2: L41
  4. alpha: 1.35: L43
  5. rzd: 0.02: L49

How to rewrite a specific line using sed: http://www.linuxquestions.org/questions/programming-9/bash-replace-a-line-in-text-file-631208/#post3102926

c=1 for -5%
c=2 for +5%
c=3 for -25%
c=4 for +25%


I created a simpler script than the one I created before for PISCES:

sensitivity.sh


#---------------------------------------------------------------
for it in `seq 1 5`; #Number of cases
do
for it2 in `seq 1 4`; #Number of parameters
do

testname="p${it}c${it2}.nc" #p=parameter number, c=case number

casenum=${testname:3:1}
if [ $casenum -eq 1 ]
then
 variation="0.8"
elif [ $casenum -eq 2 ]
then
 variation="0.95"
elif [ $casenum -eq 3 ]
then
 variation="1.05"
elif [ $casenum -eq 4 ]
then
 variation="1.2"
fi

parnum=${testname:1:1}
if [ $parnum -eq 1 ]
then
 sed -i "39s/.*/  I_min=       `echo "scale=5;25.*$variation"|bc`/" bio_npzd.nml
 grep "I_min=" bio_npzd.nml >> samemo.txt
elif [ $parnum -eq 2 ]
then
 sed -i "40s/.*/  rmax=        `echo "scale=5;1.*$variation"|bc`/" bio_npzd.nml
 grep "rmax=" bio_npzd.nml >> samemo.txt
elif [ $parnum -eq 3 ]
then
 sed -i "41s/.*/  gmax=        `echo "scale=5;0.2*$variation"|bc`/" bio_npzd.nml
 grep "gmax=" bio_npzd.nml >> samemo.txt
elif [ $parnum -eq 4 ]
then
 sed -i "43s/.*/  alpha=       `echo "scale=5;1.35*$variation"|bc`/" bio_npzd.nml
 grep "alpha=" bio_npzd.nml >> samemo.txt
elif [ $parnum -eq 5 ]
then
 sed -i "49s/.*/  rzd=         `echo "scale=5;0.02*$variation"|bc`/" bio_npzd.nml
 grep "rzd=" bio_npzd.nml >> samemo.txt
fi
./rungotm
mv nns_annual.nc output/$testname
cp bio_npzd_original.nml bio_npzd.nml

done
done
#------------------------------------------------------



By producing output for each run in "samemo.txt", it helped me to check if the modifications were made in "bio_npzd.nml" appropriately.

One thing I learned from making this script: the square brackets [ ] in IF statements have to be isolated (a space before and after [ or ]).