DAFTAR PUSTAKA 1.
2.
3.
4.
5.
6. 7.
8.
9. 10.
11.
12. 13.
14.
15.
Aldrian, E. (2003), Simulations of Indonesian Rainfall with a Hierarchy of Climate Models, Disertasi Program Doktor, Max Planck Institute for Meteorology, 83-89. Aldrian, E., Susanto, R. D. (2003), Identification of three dominant rainfall regions within Indonesia and their relationship to sea surface temperature, International Journal of Climatology, 23, 1435-1452. Aldrian, E., Gates, L.D., Jacob, D., Podzun, R., Gunawan, D. (2004) Longterm simulation of Indonesian rainfall with the MPI Regional Model, Climate Dynamics, 22, 795–814. Aldrian, E. (2004), Perkembangan dan aplikasi teknologi simulasi dan komputasi iklim dan kelautan di Indonesia, Prosiding Semiloka Teknologi Simulasi dan Komputasi serta Aplikasi, Jakarta, P3TIE-BPPT, 45-60. Aldrian, E., Sein, D., Jacob, D., Gates, L.D., Podzun, R. (2005), Modelling Indonesian rainfall with a coupled regional model, Climate Dynamics, 25, 117. Aldrian, E. (2006), Proses interaksi laut dan atmosfer, dalam Dinamika Laut dan Atmosfer, Jakarta, BRKP-DKP, 1-11. Aldrian, E., Gates, L.D., Widodo. F.H., (2007) Seasonal variability of Indonesian rainfall in ECHAM4 simulations and in the reanalyses: The role of ENSO, Theoretical and Applied Climatology, 87, 41–59. Baquero-Bernal, A., Latif, M., Legutke, S. (2002), On dipolelike variability of sea surface temperature in the tropical Indian Ocean. Journal of Climate, 15, 1358–1368. Bayong, T.H.K. (2004), Klimatologi, Penerbit ITB, Bandung, 17-22. Behera, S. K., Luo, J. J., Masson, S., Rao, S. A., Sakuma, H., Yamagata, T. (2005), A CGCM study on the interaction between IOD and ENSO, Journal of Climate. Marsland, S. J., Haak, H., Jungclaus, J. H., Latif, M., Röske, F. (2003) The Max-Planck Institute global ocean/sea ice model with orthogonal curvilinear coordinates. Ocean Modelling, 5, 91–127. Ramage, C.S. (1971), Monsoon Meteorology, Academic Press, New York, 135-137. Wood, R. A., Bryan, F. O., (2001), Coupled Ocean-Atmosphere Models, dalam Ocean Circulation and Climate, Bab 2.3, Siedler, G., Church, J., Gould, J., Editor, London, 79-82. Zhang, C., Dong, M., Gualdi, S., Hendon, H. H., Maloney, E. D., Marshall, A., Sperber, K. R., Wang, W. (2006), Simulation of the Madden –Julian oscillation in four pairs of coupled and uncoupled global models, Climate Dynamics, 573-592. DKRZ (1993), The ECHAM3 Atmospheric General Circulation Model, Report No. 6 Revision 2, Hamburg. 49
16. The Regional Model – REMO, http://www.mpimet.mpg.de/en/wissenschaft/ ueberblick/atmosphaere-im-erdsystem/regionale-klimamodellierung/theremo-model. 17. ECHAM, http://www.mpimet.mpg.de/en/wissenschaft/modelle/echam/ echam4-short-description.html
50
LAMPIRAN A Hasil Simulasi Model Kopel
a
b
A.1 Plot time series curah hujan bulanan wilayah Maluku bagian selatan, (a) tahun 1979 hingga tahun 1986 dan (b) tahun 1987 hingga tahun 1993.
51
a
b
A.2 Plot time series curah hujan bulanan wilayah Laut Jawa, (a) tahun 1979 hingga tahun 1986 dan (b) tahun 1987 hingga tahun 1993.
52
a
b
A.3 Plot time series SST wilayah Maluku Utara, (a) tahun 1979 hingga tahun 1986 dan (b) tahun 1987 hingga tahun 1993.
53
a
b
A.4 Plot time series SST wilayah Maluku bagian selatan, (a) tahun 1979 hingga tahun 1986 dan (b) tahun 1987 hingga tahun 1993.
54
a
b
A.5 Plot time series SST wilayah Laut Jawa, (a) tahun 1979 hingga tahun 1986 dan (b) tahun 1987 hingga tahun 1993.
55
A.6 SST rata-rata antartahunan (1979-1993) wilayah Maluku Utara, Maluku bagian selatan dan Laut Jawa.
A.7 Mean difference significance curah hujan antartahunan
56
A.7
A.8
(Lanjutan)
Mean difference significance tipe hujan konvektif antartahunan
57
A.8
(Lanjutan)
58
a
b
A.9
Rata-rata antartahunan (a) radiasi gelombang pendek di permukaan dan panas laten, (b) curah hujan dan SST
59
LAMPIRAN B Panduan Simulasi Model Kopel Bab III telah menjelaskan tentang pendekatan dan metoda yang dilakukan agar simulasi model kopel dapat dijalankan, sehingga dapat menjawab permasalahan utama penelitian ini. Untuk mencapai tujuan tersebut, terdapat beberapa hal teknis yang harus dilakukan agar simulasi dapat berjalan, dan semuanya dirangkum dalam Lampiran B, Panduan Simulasi Model Kopel.
Dalam panduan ini, keseluruhan tahap menjalankan model kopel dibagi menjadi empat, yaitu: 1.
Tahap Compiler Installation (Porting)
2.
Tahap Pre-processing
3.
Tahap menjalankan model kopel
4.
Tahap Post-processing.
B.1
Tahap Compiler Installation (Porting)
Pada tahap pertama ini, terdapat dua hal yang harus dilakukan, yaitu instalasi fortran compiler dan instalasi model kopel.
B.1.1 Instalasi Fortran Compiler Memasuki tahap ini, diharapkan telah tersedia komputer dengan OS Linux, lengkap dengan berbagai programming standard seperti gcc dan lain sebagainya. Untuk selanjutnya, user dianggap telah memiliki sebuah home directory sebagai langkah awal pekerjaan. Dalam bahasa prompt atau perintah Linux, direktori ini dikenal dengan tanda ˜. Direktori tersebut dapat dicek menggunakan perintah cd ˜.
Selanjutnya harus disiapkan fortran compiler agar REMO, MPI-OM dan kompilasi keduanya dapat dijalankan. Cukup banyak jenis fortran compiler yang dapat dipilih, tetapi pada penelitian ini digunakan Lahey Fortran Fujitsu 95. Dengan menggunakan CD paket fortran, instalasi fortran dapat dilakukan sebagai berikut:
60
• • • • • • • •
cd /media/cdrom ./install
kemudian ikuti petunjuk dan semua perintah pada proses instalasi tersebut setelah selesai, lakukan editing pada file /etc/ld.so.conf dan pastikan ada tambahan baris /usr/local/lf9561/lib yang menunjuk pada lokasi fortran compiler selanjutnya masuk sebagai root dengan perintah su ldconfig
berikutnya mengaktifkan isi file /etc/ld.so.conf setelah selesai, lakukan editing pada file ~/.bashrc dan pastikan ada tambahan baris berikut: − −
export PATH=.:/home/user/bin:$PATH ulimit -s unlimited
Fortran compiler yang di-install dapat dicek dengan mencoba perintah which lf95 pada command prompt. Perintah tersebut akan menunjukkan dimana lokasi lf95 berada. Jika proses instalasi berhasil, maka fortran compiler siap digunakan,
dan dapat dilanjutkan dengan proses instalasi REMO dan MPI-OM.
Jika ternyata CD paket fortran tidak tersedia, tetapi pada komputer lain dengan OS Linux sudah ter-install Lahey Fortran, maka yang dapat dilakukan adalah menyalin keseluruhan isi direktori lf9561 ke komputer lain tersebut, dan melakukan editing file /etc/ld.so.conf dan perintah ldconfig. Cara termudah untuk melakukannya adalah sebagai berikut: • • • • • •
cd /usr/local tar -cvf lf95.tar lf9561/*
salin file lf95.tar ke komputer lain dibawah directory /usr/local cd /usr/local tar -xvf lf95.tar
lanjutkan dengan proses editing /etc/ld.so.conf dan seterusnya.
B.1.2 Instalasi Model Kopel Cara instalasi atau compile model kopel pada sebuah komputer berbasis Linux dapat dilakukan menggunakan instalasi script compile_all. Script tersebut dapat mengerjakan keseluruhan instalasi model kopel dalam satu paket. Untuk keperluan tersebut, terlebih dahulu harus disiapkan sebuah direktori sebagai tempat untuk menjalankan simulasi, misalnya direktori ~/model. Kemudian
61
lakukan perintah cd ~/model. Direktori ~/model seharusnya berisikan file-file sebagai berikut ini: Nama file README_first_coupled cleanipc.pl compile_all.scr hopeoasis.tar.gz init_hope.tar.gz remo-rho.tar.gz oasis.tar.gz interpolate.tar.gz regrid2.tar.gz rho.tar.gz tmpdirname.txt Z37000_1979_01.tar.gz
Keterangan keterangan ringkas keseluruhan program untuk membersihkan memory setelah simulasi script untuk mempersiapkan seluruh paket simulasi paket program model MPI-OM paket files masukan model MPI-OM yang berisi grid files paket program model REMO paket program coupler antar model paket program untuk mosaic interpolation paket program untuk interpolasi spasial paket script dan data pendukung untuk menjalankan simulasi model kopel nama direktori temporary paket files masukan model MPI-OM yang berisi ocean restart file
Kemudian lanjutkan instalasi dengan perintah compile_all. Perintah tersebut akan mengurai keseluruhan paket model kopel, yang terdiri dari model atmosfir REMO, model laut MPI-OM, coupler OASIS, metoda transformasi data dengan mosaic interpolation, dan segala kelengkapan data inisialisai pendukung. Isi dari script compile_all adalah sbb: #!/bin/sh # ### Prepare temporary directory rm tmpdirname.txt curdir=`pwd` cat > tmpdirname.txt << EOF1 $curdir EOF1 ### prepare directory and extract model packages mkdir execs mkdir tmp mkdir MFHOME cd MFHOME mkdir rho_band_900 cd rho_band_900 cp ../../init_hope.tar.gz . tar -xvzf init_hope.tar.gz rm init_hope.tar.gz cd ../.. tar -xvzf hopeoasis.tar.gz tar -xvzf interpolate.tar.gz tar -xvzf oasis.tar.gz
62
tar -xvzf remo-rho.tar.gz tar -xvzf rho.tar.gz ### compile section cd interpolate cp ../MFHOME/rho_band_900/init/anta . cp ../MFHOME/rho_band_900/init/arcgri . remo_int.job convert_matrix_res.job mv MATRIX_BAND_800 ../MFHOME/rho_band_900/init/MATRIX_BAND_900 rm anta* arcgri MATRIX* cd ../hopeoasis mkhope cd ../remo-rho/build mkremo cd ../../oasis mkoasis cd grid_toy lf95 --dal --fix -O extract-lsm.f -o extract-lsm.x lf95 -c --dal --dbl --fix -O grid_toy_800.f lf95 grid_toy_800.o -o grid_toy_800.x extract-lsm.x grid_toy_800.x mv areas_800.ieee grids_800.ieee maskr_800.ieee masks_800.ieee ../../rho
Script diatas melakukan perintah-perintah sebagai berikut: 1.
menyiapkan direktori-direktori yang dibutuhkan selama simulasi berjalan, seperti: direktori hopeoasis : untuk model laut direktori interpolate : untuk matriks interpolasi direktori oasis : untuk OASIS coupler : untuk model atmosfer direktori remo-rho direktori rho : untuk menjalankan script simulasi model kopel : tempat file-file hasil kompilasi model (*.exe) direktori execs direktori tmp : tempat menyimpan hasil sementara direktori MFHOME dan sub direktori rho_band_900: merupakan direktori kerja serta tempat menyimpan direktori masukan dan keluaran
2.
mengekstraksi dan menyiapkan paket model-model MPI-OM, mosaic interpolation, OASIS coupler, REMO, dan script serta pendukung simulasi model kopel
3.
mengkompilasi masing-masing paket model tersebut.
Dalam menjalankan REMO dan MPI-OM harus diperhatikan juga beberapa tambahan piranti lunak untuk pengolahan data sebelum dan sesudah menjalankan model, seperti paket prepostproc.tar.gz, pingo_1.50.tar.gz dan GrADS (The Grid Analysis and Display System). Fungsi dari masing-masing paket tersebut adalah: 1.
prepostproc.tar.gz
63
merupakan beberapa paket tambahan REMO untuk pengolahan data sebelum dan setelah menjalankan REMO. Paket prepostproc.tar.gz ini merupakan satu kesatuan dari paket REMO. Paket utama yang diperlukan diantaranya adalah program uswap dan ieg. Program uswap berfungsi mengubah data masukan dalam bentuk Unix atau big endian menjadi bentuk Linux atau little endian. Sementara program ieg digunakan untuk mengidentifikasi file REMO. 2.
pingo_1.50.tar.gz
PINGO (Procedural Interface for Grib formatted Objects) merupakan paket pengolahan data REMO yang salah satu fungsinya adalah mengubah bentuk data REMO menjadi bentuk data GrADS. 3.
GrADS
merupakan piranti lunak untuk menampilkan hasil keluaran REMO secara grafis. 4.
NCARGraphics
merupakan piranti lunak untuk menampilkan hasil keluaran MPI-OM secara grafis.
B.2
Tahap Pre-processing
Selain direktori-direktori paket model diatas, pada tahap pre-processing ini juga harus disiapkan direktori-direktori dan data yang digunakan selama simulasi berjalan. Direktori tersebut berada dalam direktori MFHOME dan sub direktori rho_band_900, yang meliputi direktori: tahun pertama simulasi dan sub direktori bulan pertama simulasi xa : berisi data masukan, data forcing batas dan data permukaan statis untuk hope init xe xt xf xhope
: : : : : :
REMO berisi data masukan dan data forcing batas untuk MPI-OM berisi data permukaan statis yang dibutuhkan MPI-OM berisi seluruh parameter hasil perhitungan REMO berisi parameter permukaan hasil perhitungan REMO berisi file perantara atau file inisial berisi parameter hasil perhitungan MPI-OM
Sedangkan tahapan persiapan data yang akan digunakan selama simulasi berjalan meliputi:
64
1.
menyiapkan data permukaan statis REMO dan MPI-OM
2.
menyiapkan data global dengan interpolasi spasial dan vertikal kedalam domain REMO (data lokal)
3.
menyiapkan data global dengan interpolasi spasial kedalam sistim grid MPI-OM (data lokal)
4.
menyiapkan data lokal kedalam bentuk binary REMO dan MPI-OM (optional), yaitu bentuk binary little endian. Jika bentuk data masih berupa big endian maka segera diubah menjadi bentuk little endian.
B.2.1 Format Data REMO Data permukaan statis atau surface library yang digunakan dalam simulasi REMO terdiri dari beberapa parameter, dan disiapkan menggunakan script tertentu. Data permukaan statis tersebut akan terus digunakan secara berulang-ulang dalam setiap iterasi REMO. Parameter tersebut meliputi: 129 172 173 229 200 226 212 198 174 199
Surface geopotential (orography) Land sea mask Surface roughness length Field capacity of soil Leaf area index FAO data set (soil data flags) Vegetation type Vegetation ratio Surface background albedo Orographic variance (untuk runoff)
Data REMO menggunakan format IEEE berupa binary yang berisikan banyak data mentah untuk masing-masing waktu dan header. Untuk melihat isi data REMO tersebut dapat menggunakan perintah ieg.x, dan pada setiap data masukan REMO terdapat parameter statis diatas. Setiap file REMO mengikuti kaidah standar penamaan file, yaitu ExxDDMMYYHH, yang berarti: E : yaitu jenis data, dapat berupa e, a atau c xx : yaitu jenis file, dapat berupa file masukan (xa), keluaran (xe,xt) atau reinisialisasi (xf, xg) DD : hari (Day) MM : bulan (Month) YY : tahun (Year) HH : jam (Hour)
65
B.2.2 Format Data MPI-OM Data permukaan statis yang digunakan dalam simulasi MPI-OM juga terdiri dari beberapa parameter, dan akan terus digunakan secara berulang-ulang dalam setiap iterasi MPI-OM. Parameter tersebut meliputi: anta topo arcgri BEK SURSAL INISAL dan INITEM runoff_obs runoff_pos Z37000, Z38000 MATRIX_BAND_800
: : : : : : : : : :
data sistim grid secara spasial (bujur dan lintang) data batimetri kedalaman dasar laut data grid MPI-OM data land sea mask dengan 1 bit data data surface salinity klimatologis data Levitus salinitas dan temperatur potensial data nilai runoff sungai data posisi muara sungai data inisialisasi MPI-OM matriks untuk mosaic interpolation
File Z37000 dan Z38000 diperoleh dengan mengekstraksi file Z37000_1979_ 01.tar.gz. File tersebut terlebih dahulu harus disalin ke direktori $HOME/ MFHOME/rho_band_900/1979/01, kemudian mengekstraknya dengan perintah cd ~/model cp Z37000_1979_01.tar.gz MFHOME/rho_band_900/1979/01 cd MFHOME/rho_band_900/1979/01 tar –xvzf Z37000_1979_01.tar.gz
Dari perintah diatas dihasilkan dua file data inisialisasi MPI-OM yang merupakan hasil simulasi sebelumnya (akhir tahun 1978), yaitu file Z37000 dan Z38000. Tetapi apabila diperlukan, kedua data tersebut dapat diganti dengan file serupa hasil simulasi waktu lain. Untuk melihat isi file Z37000 dan Z38000 dapat menggunakan perintah pada paket PINGO, seperti srv sinfo atau srv info. Selain data statis yang selalu digunakan diatas, juga terdapat data dinamis yang disuplai dari kondisi atmosfir global. Data tersebut berasal dari reanalisis global dan telah disesuaikan dengan grid sistim dari MPI-OM, yang meliputi: tcdc.eatm.band.YY.MM.srv atau GICLOUD prate.sfc.band.YY.MM.srv atau GIPREC dswrf.sfc.band.YY.MM.srv atau GISWRAD tdew.sfc.band.YY.MM.srv atau GITDEW air.2m.band.YY.MM.srv atau GITEM uvwnd.10m.band.YY.MM.srv atau GIU10 uflx.sfc.band.YY.MM.srv atau GIWIX vflx.sfc.band.YY.MM.srv atau GIWIY
66
: : : : : : : :
tutupan awan total curah hujan radiasi short wave ke permukaan dew point temperature temperatur udara ketinggian 2m kecepatan angin ketinggian 10m angin permukaan zonal angin permukaan meridional
Pada data dinamis diatas, nama file mengikuti kaidah penamaan, YY menyatakan tahun dan MM menyatakan bulan. Untuk melihat isi file tersebut dapat menggunakan perintah pada paket PINGO, seperti ext8 sinfo (nama file) atau ext8 info (nama file). B.2.3 Mengubah Bentuk Masukan dari Tipe big endian Menjadi Tipe little endian
Proses konversi dapat dilakukan dengan menyiapkan data berupa format big endian dalam direktori ˜/ressy/model_ossrc/data/xabig dan hasil konversi
berupa format little endian dalam direktori ˜/ressy/model_ossrc/data/ xalit. Program konversi terdapat dalam prepostproc.tar.gz. Agar program
tersebut dapat dijalankan, maka lakukan langkah-langkah sebagai berikut: cd ˜/remo-rho/ tar -xvfz prepostproc.tar.gz cd prepostproc/procedures/uread gcc uswap.c-o uswap mv uswap ˜/bin/ cd .. cp conv_b2l ../.. cd ../..
Arti dari perintah-perintah diatas, secara berurutan adalah: • • • • • • • •
Masuk ke direktori ˜/remo-rho/ Lakukan unpacking atau untar paket prepostproc.tar.gz Masuk ke direktori prepostproc/procedures/uread Kompilasi program uswap.c menjadi uswap Salin hasil kompilasi ke direktori ˜/bin/ atau direktori lain yang dapat dipanggil dengan perintah dari mana saja di command prompt Pindah ke direktori diatasnya Salin program konversi dari big ke little, conv_b2l, ke direktori kerja Pindah ke direktori kerja dan program konversi dapat dijalankan.
Proses konversi dilakukan dengan asumsi letak script convb2l berada pada direktori ˜/ressy/model_ossrc/data dimana terdapat direktori xabig dan xalin didalamnya. Isi script convb2l adalah: #! /bin/bash # set -ex # # converts bigendian data to littleendian data # compile uswap in directory uread # INPUTDIR=/home/ressy/model_ossrc/data/xabig OUTPUTDIR=/home/ressy/model_ossrc/data/xalin cd ${INPUTDIR}
67
for I in * do # for ext4,remo etc uswap -x -i ${I} -o ${OUTPUTDIR}/${I} # for ext8 #uswap -x -d -i ${I} -o ${OUTPUTDIR}/${I} done exit
Pada dasarnya isi script tersebut akan mendaftarkan semua file yang terdapat dalam direktori INPUTDIR dan meletakkan hasilnya pada direktori OUTPUTDIR. Untuk mengetahui cara menggunakan program uswap dapat dilakukan dengan perintah uswap -help. Dari perintah tersebut diketahui bahwa option -x digunakan untuk mengubah format big endian menjadi little endian. Sebaliknya option tersebut tidak digunakan untuk konversi dari little endian menjadi big endian. Proses konversi data dapat dilakukan dengan memakai perintah cd ˜/ressy/model_ossrc/data/ ./convb2l
Proses konversi serupa dapat juga dilakukan untuk seluruh file model laut, MPIOM. B.3
Tahap Menjalankan Model Kopel
Sebelum melakukan simulasi model kopel, harus diperhatikan bahwa semua piranti lunak pendukung, paket-paket model dan data yang dibutuhkan selama simulasi berjalan sudah tersedia dan siap untuk digunakan. B.3.1 Script Utama Menjalankan Simulasi Model Kopel Script utama untuk menjalankan simulasi model kopel terdapat dalam direktori ~/model/rho, yaitu file runit, dan dapat dilihat pada Lampiran C. Selain runit,
juga terdapat beberapa file pendukung lain seperti: areas_800.ieee maskr_800.ieee masks_800.ieee DUMMY_SIPC grids_800.ieee EXPN_BAND_900 LSA MONTHLIST_BAND_900 RUNYEAR_BAND_900 lsm.txt
: : : : : : : : : :
Data untuk mosaic interpolation Data untuk mosaic interpolation Data untuk mosaic interpolation Data untuk System V Inter Process Communication Data untuk mosaic interpolation Experiment number Waktu simulasi terakhir (jam) Bulan simulasi berjalan Tahun simulasi berjalan Data untuk keperluan simulasi couple off 68
namcouple_rho_900
: Tabel parameter yang dipertukarkan antar model
File-file LSA, MONTHLIST_BAND_900 dan RUNYEAR_BAND_900 merupakan penanda waktu simulasi dan menunjukkan posisi saat simulasi berlangsung. Ketiga file tersebut bersifat dinamis, karena terus berganti seiring berjalannya proses simulasi dan komputasi, sementara file-file lainnya bersifat tetap. Angka 900 atau 800 menunjukkan nomor eksperimen simulasi yang dipilih. Untuk skenario simulasi baru, sebaiknya juga dipilih nomor simulasi yang baru dan dibuat penyeragaman. Hal ini bertujuan untuk membantu pada saat post-processing atau pengolahan data hasil simulasi pada skenario yang berbeda. Jika semua hal yang dibutuhkan selama simulasi berjalan sudah siap, maka simulasi dapat segera dilakukan dengan menjalankan perintah runit. Apabila simulasi terpaksa berhenti di tengah jalan karena suatu hal, maka untuk melanjutkan simulasi berikutnya harus memperhatikan beberapa hal dibawah ini. Misalnya simulasi dimulai pada tanggal 1 Januari 1979. Tetapi ternyata simulasi terpaksa berhenti ditengah jalan, misalnya tanggal 1 Maret 1979 pukul 00, maka yang harus diperhatikan adalah: 1.
Perhatikan sinkronisasi antara ketiga file penanda waktu simulasi yaitu LSA, MONTHLIST_BAND_900 dan RUNYEAR_BAND_900.
2.
a. LSA = 31*24+28*24 = 1416
Januari 31 hari dan Pebruari 28 hari
b. MONTHLIST_BAND_900 = 3
Bulan Maret adalah bulan ke-3
c. RUNYEAR_BAND_900 = 79
Tahun tetap sama yaitu 1979
Perhatikan apakah data inisialisasi model MPI-OM, yaitu file Z37000 dan Z38000,
tersedia
dalam
direktori
data
inisialisasi
$HOME/MFHOME/rho_band_900/
1996/03.
3.
Perhatikan
apakah
e900xf01037900
dan
model
e900xg01037900,
REMO,
tersedia
dalam
yaitu
file
direktori
$HOME/MFHOME/rho_band_900/xf.
4.
Apakah data forcings REMO tersedia secara lengkap dalam direktori $HOME/MFHOME/rho_band_900/xa, yang berisi 125 file untuk simulasi
selama bulan Maret, yaitu file e900xa01047900 dan e900xaDD0379HH (DD menyatakan hari simulasi, sedangkan HH menyatakan waktu simulasi yaitu 69
00, 06, 12 atau 18). Biasanya file e900xa01037900 hilang, karena bukan merupakan satu paket data dengan data simulasi bulan berjalan. Tetapi jika masih ada, maka file tersebut harus dihapus. Seperti yang telah disebutkan diatas, bahwa isi dari masing-masing file xa tersebut dapat dilihat dengan perintah ieg, misalnya ieg e900xa01037900. 5.
Apakah data forcing MPI-OM tersedia secara lengkap dalam direktori $HOME/MFHOME/rho_band_900/hope, yang berisi delapan file forcings
MPI-OM, yaitu GICLOUD, GIPREC, GISWRAD, GITDEW, GIU10, GITEM, GIWIX dan GIWIY. Untuk memeriksa apakah file dalam direktori hope berisi data bulan yang diinginkan dapat menggunakan perintah dalam paket PINGO yaitu srv8 sinfo, atau srv8 info, misalnya srv8 sinfo GICLOUD. 6.
Satu permasalahan lain yang harus mendapat perhatian adalah data keluaran MPI-OM berupa semua file fort.*. Selama simulasi, data keluaran ini akan terus digunakan dan ditambahkan ke data keluaran bulan sebelumnya hingga akhir simulasi tahun berjalan (bulan Desember). Jika simulasi terpaksa berhenti ditengah jalan, maka data keluaran MPI-OM sampai bulan terakhir sebelum simulasi berhenti harus diselamatkan dan disimpan agar dapat ditambahkan dengan bulan selanjutnya. Caranya adalah dengan memindahkan semua file fort.* yang terdapat dalam direktori $HOME/tmp ke direktori $HOME/MFHOME/rho_band_900/xhope sebelum simulasi dilanjutkan.
7.
Bersihkan share memory, dengan dengan menjalankan perl script dengan perintah perl cleanipc.cl sebanyak dua kali.
Jika ketujuh hal diatas telah dipenuhi, maka simulasi dapat dilanjutkan untuk bulan saat simulasi berhenti. Tetapi apabila terjadi kesalahan karena satu dan lain hal, maka disarankan untuk memundurkan waktu simulasi satu bulan sebelumnya, baru kemudian melakukan ketujuh hal diatas. Dengan script runit ini, maka data hasil simulasi dan inisialisasi simulasi akan tersimpan pada tempatnya masingmasing, sehingga tidak perlu khawatir akan kehilangan.
70
B.3.2 Bedah Isi Script runit Script runit yang terdapat pada Lampiran C sudah mengalami banyak penyesuaian atau modifikasi disesuaikan dengan keadaan yang ada. Semua modifikasi script ini dilakukan hanya sekali sebelum keseluruhan simulasi dijalankan. Modifikasi atau penyesuaian yang dilakukan meliputi: 1.
Deklarasi direktori tempat simulasi berkerja HOME=/home/bppt/ressy/model_ossrc
2.
Deklarasi batas akhir simulasi # batas akhir simulasi if [ ${RUNYEAR} -eq 1994 ] then if [ ${monthlist} -eq 01 ] then exit fi fi #
3.
Deklarasi waktu akhir (waktu data inisialisasi) model atmosfir (NATMDAT), model laut (NOCEDAT) dan coupler (NCPLDAT), data inisialisasi model atau waktu awal simulasi (INIDAT), interval waktu simulasi laut atau time step model (NODT) dan interval waktu simulasi atmosfir atau time step model (NADT) dinyatakan dengan NATMDAT=19781231 NOCEDAT=19781231 NCPLDAT=19781231 INIDAT=19790101 NODT=1440 NADT=300
4.
Batas domain REMO terdiri dari batas selatan (PHILU), batas barat (RLALU), letak kutub utara pada posisi meridional (POLPHI), letak kutub utara pada possi zonal (POLLAM), resolusi zonal atau spasial bujur (DLAM) dan resolusi meridional atau spasial lintang (DPHI), jam awal simulasi (NHANF), jam akhir simulasi (NHENDE), serta tanggal dan jam awal simulasi (YADAT) dideklarasikan dengan &EMGRID PHILU=-19.0, RLALU=91.0, POLPHI=90.0, POLLAM=180.0, DLAM=0.5, DPHI=0.5, &END &RUNCTL NHANF=${LSA}, NHENDE=${LSE}, YADAT='01017900',
5.
Definisi lain yang memberikan control dalam menjalankan REMO adalah 71
NHEAA NHDEA NHFORA NHDFOR NHTAA NHDTA NHDAA NHDDA DT LMOMON LQWR LCHEM YADEN YRDEN YEDEN YFDEN YTDEN YADCAT YRDCAT YEDCAT YFDCAT YTDCAT YTVARN
: : : : : : : : : : : : : : : : : : : : : : :
membaca file masukan xa setiap berapa jam menulis keluaran file xe setiap berapa jam menyimpan reinisialisasi file xf,xg setelah berapa jam interval menyimpan file xf,xg setiap berapa jam menyimpan reinisialisasi file xt setelah berapa jam interval menyimpan file xt setiap berapa jam menyimpan reinisialisasi file xd setelah berapa jam interval menyimpan file xd setiap berapa jam resolusi temporal model apakah memakai sistim kalender julian? apakah data liquid water content tersedia? apakah running dengan chemical module? nomor experiment data masukan xa nomor experiment data masukan xr nomor experiment data keluaran xe nomor experiment data keluaran xf nomor experiment data keluaran xt letak direktori data masukan xa letak direktori data masukan xr letak direktori data keluaran xe letak direktori data keluaran xf letak direktori data keluaran xt parameter yang akan disimpan di file xt
Secara normal hasil keluaran REMO akan tersimpan dalam file xe, tetapi hal ini dapat memperlambat proses pengolahan data, karena ukuran filenya yang sangat besar. Untuk mempercepat proses pengolahan data, maka hanya beberapa parameter hasil tersebut saja yang disimpan, yaitu dalam file xt, dan disebutkan pada baris YTVARN, misalnya: APRL APRC APRS ALWCVI QVI RUNOFF DRAIN EVAP SRADS TRADS SRADO TRADO AHFS AHFL WSECH TEMP2
Hujan stratiform atau hujan non konvektif Hujan konvektif Salju, akumulasi Vertically integrated cloud water, accumulated Vertically integrated specific humidity, accumulated Limpasan air permukaan Ratio of water goes underground Evaporasi Radiasi gelombang pendek di permukaan Radiasi gelombang panjang di permukaan Radiasi gelombang pendek di atas awan Radiasi gelombang panjang di atas awan Fluks panas sensibel permukaan Fluks panas laten permukaan Porsi lahan terhadap air Temperatur pada ketinggian 2m 72
TSECH TD TDCL TD3 TD4 TD5
6.
Temperatur permukaan Temperatur titik embun Temperatur pada dasar awan Temperatur tanah lapisan 3 Temperatur tanah lapisan 4 Temperatur tanah lapisan 5
Deklarasi untuk menjalankan model laut yang menunjukkan waktu model akan berhenti setelah setiap berapa tahun dinyatakan dengan NYEARS dan bulan dengan NMONTS, serta definisi layer yang digunakan dalam simulasi model laut dinyatakan dengan DZW. NYEARS = 0 NMONTS = 1 &END &OCEDZW DZW = 12.,10.,10.,10.,10.,10.,13.,15.,20.,25.,30.,35.,40., 50.,60.,70.,80.,100.,120.,150.,200.,300.,400.,450.,500., 500.,500., 600.,700.,1000.
B.4
Tahap Post-processing
Pada penelitian ini, tahap post-processing hanya mengolah beberapa parameter permukaan keluaran REMO yang terdapat dalam file xt, sementara data vertikal keluaran REMO dan MPI-OM tidak diolah. Untuk mengolah data vertikal (tiap lapisan) keluaran REMO, perlu dilakukan beberapa penyesuaian. Hal ini dikarenakan REMO menggunakan sistim grid vertikal hibrida gabungan antara sistim tekanan dan sigma level. Biasanya untuk keperluan pengolahan data, dibutuhkan tampilan pada level-level tertentu yang diinginkan berdasarkan ketinggian skala tekanan atau dilakukan konversi dari skala level REMO menjadi skala level tekanan. Data permukaan keluaran REMO dapat langsung diolah menggunakan dua script berikut, yaitu script.all dan script2.all. Script.all berfungsi untuk mengekstraksi data parameter REMO tertentu, menjadi data per 6 jam, sedangkan script2.all berfungsi untuk mengelompokkan data menjadi nilai rata-rata
bulanan. Pada contoh dibawah, yang diolah adalah parameter hujan stratiform (142) dan hujan konvektif (143). Hasil dari kedua script tersebut dapat digunakan langsung pada piranti lunak GrADS.
73
# loop tahunan while [ ${YY} -le 79 ] do if [ ${MMM} -ne 0 ]; then MM=${MMM} MMM=0 else MM=01 MMM=0 fi # loop bulanan while [ ${MM} -le 01 ] do INTE=1 # buat daftar panjang seluruh file berawal e400xt, proses satu satu for FILE in ‘ls ${ERUN}??${MM}${YY}??‘; do NEWFILE=‘basename $FILE‘ echo $NEWFILE # yefis mengubah format REMO output ke format ieee yefis < INPUTA ${FILE} ${NEWFILE}.ieee # pure4 mengubah format ieee ke format pure binary atau grads sekaligus dibuat ctl file untuk grads pure4 grads ${NEWFILE}.ieee ${FILE}.grd < INPUTB >> ${FILE}.ctl # akumulasikan seluruh file hasil ke file hasil bulanan (data 6jam-an) cat ${FILE}.grd >> ${ERUN}${MM}${YY}.grd rm ${FILE} rm ${FILE}.ieee ${FILE}.grd # pindah ke indeks file berikutnya INTE=‘expr ${INTE} + 1‘ done # jangan lupa juga lakukan proses serupa untuk yang jam 00 bulan berikutnya yefis < INPUTA ${ERUN}01????00 dummy.ieee pure4 grads dummy.ieee dummy.grd < INPUTB >> dummy.ctl cat dummy.grd >> ${ERUN}${MM}${YY}.grd rm dummy.* ${ERUN}01????00 # mengenali nama bulan yang sedang di proses case ${MM} in 01) MON=jan;; 02) MON=feb;; 03) MON=mar;; 04) MON=apr;;
Isi script script.all: #!/bin/bash # This script extracting precipitation components (142+143) set -ex ## tahun YY dan bulan MMM awal proses, ubah sesuai kebutuhan YY=79 MMM=01 ART=’.tar’ DATT=xt RUN=400 ## Ubah PARMA atau PARMB sesuai kebutuhan, bisa lebih dari satu parameter PARMA=142 PARMB=143 ERUN=e${RUN}xt NUMMERA=$PARMA,$PARMB # #pindah ke direktori kerja cd /home/bppt/ressy/model_ossrc/output # buat file parameter input untuk yefis (INPUTA) & pure4 (INPUTB) # pertama check jika kedua file ada, jika ya hapus keduanya if [ -f INPUTA ];then rm INPUTA fi if [ -f INPUTB ];then rm INPUTB fi ################### cat > INPUTA << EOF &DATEN ICODE=${NUMMERA} IEXP=$RUN &END EOF # cat > INPUTB << EOF 101 55 2 91 91.5 2 -19 -18.5 EOF ###################
74
05) MON=may;; 06) MON=jun;; 07) MON=jul;; 08) MON=aug;; 09) MON=sep;; 10) MON=oct;; 11) MON=nov;; 12) MON=dec;; esac # check jika ctl_file untuk bulan ini ada, jika tidak buatkan if [ ! -f ${ERUN}${MM}${YY}.ctl ] then ##### cat > ${ERUN}${MM}${YY}.ctl << EOF DSET ${ERUN}${MM}${YY}.grd UNDEF 9e+09 XDEF 101 LINEAR 91.000000 0.500000 YDEF 55 LINEAR -19.000000 0.500000 TDEF ${INTE} LINEAR 06:00Z1${MON}${YY} 06hr ZDEF 1 LINEAR 1000 -1 VARS 2 c$PARMA 1 0 CODE $PARMA c$PARMB 1 0 CODE $PARMB ENDVARS EOF ##### fi rm ${ERUN}??${MM}${YY}??.ctl # hitung bulan berikutnya if [ ${MM} -le 08 ]; then MM=0‘expr ${MM} + 1‘ else MM=‘expr ${MM} + 1‘ fi done # hitung tahun berikutnya YY=‘expr ${YY} + 1‘ done rm INPUTA INPUTB ####### exit
Isi script script2.all: #!/bin/sh # This script creates monthly avg set -ex YY=79 MMM=01 ART=’.tar’ DATT=xt RUN=450 ERUN=e${RUN}${DATT} while [ ${YY} -le 93 ] do if [ ${MMM} -ne 0 ]; then MM=${MMM} MMM=0 else MM=01 MMM=0 fi while [ ${MM} -le 12 ] do case ${MM} in 01|03|05|07|08|10|12) MONDAY=31;; 04|06|09|11) MONDAY=30;; 02) MONDAY=28;; esac # if [ ${MM} -eq 2 ] then set +e I400=‘expr ${YY} % 400‘ I100=‘expr ${YY} % 100‘ I4=‘expr ${YY} % 4‘ if [ ${I400} -eq 0 ] then MONDAY=‘expr ${MONDAY} + 1‘ fi if [ ${I4} -eq 0 -a ${I100} -ne 0 ] then MONDAY=‘expr ${MONDAY} + 1‘ fi set -e
75
fi MONDAY=‘expr ${MONDAY} \* 4‘ if [ -f combine.exec ];then rm combine.exec fi # cat > combine.exec << EOF ’open ${ERUN}${MM}${YY}.ctl’ ’set t 1’ ’set gxout fwrite’ ’set fwrite dummy.grd’ ’d ave(c142,t=1,t=${MONDAY})’ ’d ave(c143,t=1,t=${MONDAY})’ ’disable fwrite’ ’quit’ EOF # grads -b -l -c "combine.exec" cat dummy.grd >> remo-rain.grd rm dummy.grd if [ ${MM} -le 08 ]; then MM=0‘expr ${MM} + 1‘ else MM=‘expr ${MM} + 1‘ fi done YY=‘expr ${YY} + 1‘ done ####### exit
Lampiran C
Script runit
#!/usr/bin/ksh # #********************************************************** # Script to run MPI OM with REMO # on Linux Intel Quadcore Extreme with ECMWF data #********************************************************** # set -x HOME=/home/bppt/ressy/model_ossrc cd $HOME/rho # VER=BAND ver=band USER=008 YYUSER=\'${USER}\' E=e # # rho exp number EXPN=900 # # remo forcing exp number EXP2=400 EXP=${EXPN} # monthlist=`cat MONTHLIST_${VER}_${EXPN}` RUNYEAR=`cat RUNYEAR_${VER}_${EXPN}` # export RUNYEAR NEXTYEAR=$RUNYEAR # LASTMONTH=12 ; export LASTMONTH; if [ -f rho_band_900.rep ] ; then mv rho_band_${EXPN}.rep rho_band_${EXPN}_${monthlist}.rep fi # # end of simulation
76
#----------------- Initialize directories ----------------MFHOME=$HOME/MFHOME home=$HOME work=${MFHOME}/rho_${ver}_${EXPN} rhodir=${home}/rho exe=${home}/execs OASIS=${home}/oasis TEMPDIR=$work/rhoout TMPDIR=$HOME/tmp # # REMO directories remoxx=$work remoxt=$remoxx/xt remoxf=$remoxx/xf remoxo=$remoxx/oasis remoxa=$remoxx/xa remoxe=$remoxx/xe # # HOPE input hopexa=$work/hope hopein=$work/init # # HOPE output xhope=$work/xhope # if [ $TESTWRITE -eq 0 ] ; then hopefl=$TMPDIR else hopefl=$MFHOME/rhop${EXPN} fi # cat > ${work}/tmpdirname.txt << EOF5 $TMPDIR EOF5 #---------------------------------------------------------# Specify data type : float2 REAL=64 bit, INTEGER=64 bit, CRAY format # TYPE2 REAL=64 bit, INTEGER=64 bit, IEEE # TYPE1 REAL=64 bit, INTEGER=32 bit, IEEE, as ECHAM5
# if [ ${RUNYEAR} -eq 1994 ] then if [ ${monthlist} -eq 01 ] then exit fi fi # TESTWRITE=0 WSCHAUER=0 # #********************** Monthly loop ********************** # for number in ${monthlist} do # set -x typeset -Z2 NEXTMONTH PROFDIR=. export PROFDIR # MPISUSPEND=ON ; export MPISUSPEND # F_SETBUF06=0 F_SETBUF07=0 F_SETBUF08=0 F_SETBUF79=0 export F_SETBUF06 F_SETBUF07 F_SETBUF08 F_SETBUF79 # F_PROGINF=detail export F_PROGINF # F_SYSLEN=132 export F_SYSLEN # F_ERRCNT=0 export F_ERRCNT #
77
# if [ $Y -ge 100 ] ; then Y=`expr ${RUNYEAR} - 2000` YN=`expr ${NEXTYEAR} - 2000` fi # #----------------------- Leap year -----------------------# case ${RUNMONTH} in 01|03|05|07|08|10|12) MONDAY=31;; 04|06|09|11) MONDAY=30;; 02) MONDAY=28;; esac # set +e ISCHALT=0 I400=`expr ${RUNYEAR} % 400` I100=`expr ${RUNYEAR} % 100` I4=`expr ${RUNYEAR} % 4` if [ ${I400} -eq 0 ] then ISCHALT=1 fi if [ ${I4} -eq 0 -a ${I100} -ne 0 ] then ISCHALT=1 fi # if [ ${RUNMONTH} -eq 2 ] ; then MONDAY=`expr ${MONDAY} + ${ISCHALT}` fi # #--------------- Initialize the first month --------------# set -e RERUN=.TRUE. if [ ${RUNMONTH} -eq 01 -a ${RUNYEAR} -eq 1979 ] ; then RERUN=.FALSE. #
# prog_mode=float0 # anaisgwr=1 anaisvar=1.0 extrapwr=1 chan=_GMEM atmmodnam=REMOTD ocemodnam=CHPGI4 lunitar=53 lunitaw=54 lunitor=51 lunitow=52 cnfilear=sstatmos cnfileaw=flxatmos cnfileor=flxocean cnfileow=sstocean NCDT=21600 # #------------------- No of days in month -----------------# DUMMY=99999; export DUMMY # RUNMONTH=${number} ; export RUNMONTH NEXTMONTH=`expr ${RUNMONTH} + 01` LASYEAR=`expr ${RUNYEAR} - 1` case $NEXTMONTH in 1|2|3|4|5|6|7|8|9) NEXTMONTH=0${NEXTMONTH} esac # if [ ${NEXTMONTH} -eq 13 ] ; then NEXTMONTH=01 NEXTYEAR=`expr ${NEXTYEAR} + 1` fi export NEXTYEAR export NEXTMONTH # Y=`expr ${RUNYEAR} - 1900` YN=`expr ${NEXTYEAR} - 1900`
78
if [ ! -d $outdir ] ; then mkdir $outdir || true fi # echo $outdir echo $NEXTMONTH # set +e set -x # #---------------------------------------------------------# cd $TMPDIR rm -rf $TMPDIR/* # #---------------------------------------------------------# # Getting REMO source fields from file # if [ ! -f $remoxa/e${EXP2}xa28${RUNMONTH}${Y}18 ]; then cd $remoxa/ cp $HOME/data/xadata/e${EXP2}xa${RUNMONTH}${Y}.tar.gz . tar -xvzf e${EXP2}xa${RUNMONTH}${Y}.tar.gz rm e${EXP2}xa${RUNMONTH}${Y}.tar.gz # cd $TMPDIR fi # #---------------------------------------------------------# # Getting HOPE source fields from file # if [ ! -f $hopexa/vflx.sfc.${ver}.${RUNYEAR}.${RUNMONTH}.srv ] ; then cd $hopexa cp $HOME/data/hopedata/ecmwf.${ver}.${RUNYEAR}.${RUNMONTH}.tar . tar -xvf ecmwf.${ver}.${RUNYEAR}.${RUNMONTH}.tar rm ecmwf.${ver}.${RUNYEAR}.${RUNMONTH}.tar # for FILE in `ls *.${ver}.${RUNYEAR}.${RUNMONTH}.srv`; do
if [ ! -f ${rhodir}/EXPN_${VER}_${EXPN} ] ; then cd $rhodir cat > EXPN_${VER}_${EXPN} << EOFE ${EXPN} EOFE fi if [ ! -f ${rhodir}/RUNYEAR_${VER}_${EXPN} ] ; then cd $rhodir cat > RUNYEAR_${VER}_${EXPN} << EOFY 1979 EOFY fi if [ ! -f ${rhodir}/MONTHLIST_${VER}_${EXPN} ] ; then cd $rhodir cat > MONTHLIST_${VER}_${EXPN} << EOFM 01 EOFM fi # if [ ! -f ${work}/${RUNYEAR}/${RUNMONTH}/Z38000_${RUNYEAR}_${RUNMONTH} ] ; then ${MFHOME}/rho_${ver}_${EXPN}/getdat_restart${RUNYEAR}${RUNMONTH}.o ut cd ${work}/${RUNYEAR}/${RUNMONTH} tar -xf ${LASYEAR}.tar Z37000_${LASYEAR} tar -xf ${LASYEAR}.tar Z38000_${LASYEAR} /pool/pingo/pingo_1.5/bin/ext8 copy Z37000_${LASYEAR} Z37000_${RUNYEAR}_${RUNMONTH} /pool/pingo/pingo_1.5/bin/ext8 copy Z38000_${LASYEAR} Z38000_${RUNYEAR}_${RUNMONTH} rm -f ${LASYEAR}.tar cd $rhodir fi # fi export RERUN; # outdir=$work/${RUNYEAR}/${RUNMONTH}
79
# # Job description: # YEAR year counter of actual experiment # NUM1/NUM2 first/last month of int. period (incl.age of initial file) # MONTH1/MONTH2 first/last month of the actual year to be simulated # NOCEYEAR year of actual date of ocean files # NATMYEAR year of actual date of atmos files # NCPLYEAR year of actual date of coupler files # NACTYEAR date (year) of actual run (used in month length calculation) # IAUFR 1 implies use of restart file (previous run or initial file) # 0 " use of climatology # YEAR=0001 NUM1=${RUNMONTH} NUM2=${RUNMONTH} MONTH1=${RUNMONTH} MONTH2=${RUNMONTH} NOCEYEAR=$RUNYEAR NATMYEAR=$RUNYEAR NCPLYEAR=$RUNYEAR NACTYEAR=$RUNYEAR echo $NACTYEAR IAUFR=1 NEXTJOB1=00001 NEXTJOB2=00001 IMATW=0 # #---------------------------------------------------------# # Namelist for interface # ntatmos=`expr ${NCDT} / $NADT` ntocean=`expr ${NCDT} / $NODT` # # naostop = monday*(number of coupling per day)
uswap -x -i $FILE -o $FILE.lin srv8 copy $FILE.lin $FILE rm $FILE.lin done # cd $TMPDIR fi # set –e # #---------------------------------------------------------# # Experiment description: # exptid experiment identifier # NOCOFF number of time steps of oceanic restart file (used for GRIB output) # NATOFF number of time steps of atmos restart file (set in MAKELST) # OCFILE name of oceanic initial file # ATFILE name of atmos initial file / forcing data # NATMDAT date of initial file atmos # NOCEDAT date of initial file ocean # NCPLDAT date of initial file experiment # NADT time step (sec) of atmosphere model # NODT time step (sec) of ocean model # exptid=R11 NOCOFF=0 NATOFF=0 OCFILE=RESTLEVAR ATFILE=17207ctrl NATMDAT=19781231 NOCEDAT=19781231 NCPLDAT=19781231 INIDAT=19790101 NODT=1440 NADT=300 # #----------------------------------------------------------
80
typeset -Z2 M Y YY typeset -Z3 EXP EXP2 # RMP=$HOME TMP=$TEMPDIR YEXP=\'${EXP}\' YEXP2=\'${EXP2}\' M=${RUNMONTH} # #---------------------------------------------------------# if [ ${ISCHALT} -eq 0 ] ; then ISHOUR=0 else ISHOUR=24 fi LSANF=`cat $rhodir/LSA` echo $LSANF case ${RUNMONTH} in 01) LSADIF=0;; 02) LSADIF=744;; 03) LSADIF=`expr 1416 + ${ISHOUR}`;; 04) LSADIF=`expr 2160 + ${ISHOUR}`;; 05) LSADIF=`expr 2880 + ${ISHOUR}`;; 06) LSADIF=`expr 3624 + ${ISHOUR}`;; 07) LSADIF=`expr 4344 + ${ISHOUR}`;; 08) LSADIF=`expr 5088 + ${ISHOUR}`;; 09) LSADIF=`expr 5832 + ${ISHOUR}`;; 10) LSADIF=`expr 6552 + ${ISHOUR}`;; 11) LSADIF=`expr 7296 + ${ISHOUR}`;; 12) LSADIF=`expr 8016 + ${ISHOUR}`;; esac # #if [ ${RUNMONTH} -eq 01 ] ; then LSA=${LSANF} #else #LSA=`expr ${LSANF} + ${LSADIF}` #fi echo $LSA
ntaostop=`expr ${MONDAY} \* 4` runtime=`expr $ntaostop \* ${NCDT}` echo $runtime # NOCEYEAR=$NOCEYEAR NATMYEAR=$NATMYEAR NCPLYEAR=$NCPLYEAR NACTYEAR=$NACTYEAR # cat > KONTCTL << EOF &KONTCTL ntatmos = $ntatmos, ntocean = $ntocean, ntaostop = $ntaostop, nacyear = $NACTYEAR, nocyear = $NOCEYEAR, natyear = $NATMYEAR, nmonthc = $MONTH1, lrerun = $RERUN, natoff = $NATOFF, nocoff = $NOCOFF, kunitar = $lunitar, kunitaw = $lunitaw, kunitor = $lunitor, kunitow = $lunitow, cnfilear = '$cnfilear', cnfileaw = '$cnfileaw', cnfileor = '$cnfileor', cnfileow = '$cnfileow', ocemodnam = '$ocemodnam', atmmodnam = '$atmmodnam', cexptid = '$exptid', &END EOF # #---------------------------------------------------------# REMO STUFF # set -ex
81
&PHYCTL HDRAD=1, LPHYEM=.FALSE., LAKKU=.FALSE., &END &NMICTL LANMI=.TRUE, DTNMI=45.0, &END &PRICTL &END &DATEN YADEN=${YEXP2}, YRDEN=${YEXP2}, YEDEN=${YEXP}, YFDEN=${YEXP}, YTDEN=${YEXP}, YADCAT='${remoxa}/', YRDCAT='${remoxa}/', YEDCAT='${remoxe}/', YFDCAT='${remoxf}/', YTDCAT='${remoxt}/', YTVARN='APRL ','APRC ','APRS ','ALWCVI ','QVI ', 'RUNOFF','DRAIN ','SNMEL ','DSNAC ','EVAP ','SRADS ', 'TRADS ','SRAD0 ','TRAD0 ','AHFS ','AHFL ','ACLCV ', 'WSECH ','SN ','TEMP2 ','TSECH ','TD ','TDCL ', 'TSN ','TD3 ','TD4 ','TD5 ', &END EOF # #---------------------------------------------------------# HOPE STUFF # cat > OCECTL << EOF &OCECTL DT = ${NODT}. CAULAPTS = 0.000 CAULAPUV = 0.0065 AUS = 0.0
# #---------------------------------------------------------set +e # YY=${NACTYEAR} # HMON=`expr ${MONDAY} \* 24` LSE=`expr ${LSA} + ${HMON}` echo $LSE # cat > INPUT << EOF &EMGRID PHILU=-19.0, RLALU=91.0, POLPHI=90.0, POLLAM=180.0, DLAM=0.5, DPHI=0.5, &END &RUNCTL NHANF=${LSA}, NHENDE=${LSE}, YADAT='01017900', NHEAA=6, NHDEA=6, NHFORA=${LSE}, NHDFOR=9999999, NHTAA=6, NHDTA=6, NHDAA=6, NHDDA=6, NHDMXN=6, DT=${NADT}.0, NHDR=6, LQWR=.FALSE., LMOMON=.FALSE., &END &DYNCTL &END
82
cp $rhodir/masks_800.ieee masks cp $rhodir/maskr_800.ieee maskr # cp $rhodir/lsm.txt masking # cp $hopein/SURSAL SURSAL cp $hopein/topo topo cp $hopein/anta anta cp $hopein/arcgri arcgri cp $hopein/BEK BEK cp $hopein/INISAL INISAL cp $hopein/INITEM INITEM cp $hopein/runoff_obs runoff_obs cp $hopein/runoff_pos runoff_pos # ln -s $hopexa/tcdc.eatm.${ver}.${RUNYEAR}.${RUNMONTH}.srv GICLOUD ln -s $hopexa/prate.sfc.${ver}.${RUNYEAR}.${RUNMONTH}.srv GIPREC ln -s $hopexa/dswrf.sfc.${ver}.${RUNYEAR}.${RUNMONTH}.srv GISWRAD ln -s $hopexa/tdew.sfc.${ver}.${RUNYEAR}.${RUNMONTH}.srv GITDEW ln -s $hopexa/uvwnd.10m.${ver}.${RUNYEAR}.${RUNMONTH}.srv GIU10 ln -s $hopexa/air.2m.${ver}.${RUNYEAR}.${RUNMONTH}.srv GITEM ln -s $hopexa/uflx.sfc.${ver}.${RUNYEAR}.${RUNMONTH}.srv GIWIX ln -s $hopexa/vflx.sfc.${ver}.${RUNYEAR}.${RUNMONTH}.srv GIWIY # mv ${xhope}/fort.* . # set +ex # F_UFMTIEEE=61,121,122,42,44,45 # export F_UFMTIEEE # #---------------------------------------------------------# HOPE Files # F_UFMTADJUST121=NO ; export F_UFMTADJUST121 F_UFMTADJUST122=NO ; export F_UFMTADJUST122 # #---------------------------------------------------------# REMO Files
CAH00 = 1000. DV0 = 0.2E-2 AV0 = 0.2E-2 CWT = 5.E-4 CSTABEPS = 0.03 DBACK = 1.E-5 ABACK = 1.E-5 CRELSAL = 8.0E-7 IMEAN = 2 NYEARS = 0 NMONTS = 1 &END &OCEDZW DZW =12.,10.,10.,10.,10.,10.,13.,15.,20.,25.,30.,35.,40.,50., 60.,70.,80.,100.,120.,150.,200.,300.,400.,450.,500.,500.,500.,600 .,700.,1000. &END EOF # ln -s $hopein/MATRIX_BAND_900 MATRIX # if [ ! -f $outdir/Z37000_${NACTYEAR}_${RUNMONTH} ] ; then exit fi # cp $outdir/Z37000_${RUNYEAR}_${RUNMONTH} Z37000 cp $outdir/Z38000_${RUNYEAR}_${RUNMONTH} Z38000 # if [ $RERUN = .TRUE. ] ; then cp $outdir/flxatmos_${NACTYEAR}_${RUNMONTH} flxatmos cp $outdir/sstocean_${NACTYEAR}_${RUNMONTH} sstocean fi # pwd cp $rhodir/EXPN_${VER}_${EXPN} EXPN # cp $rhodir/grids_800.ieee grids cp $rhodir/areas_800.ieee areas
83
# #---------------------------------------------------------# Get ocean model # cp $exe/hopeoasis_BAND_900.exe oce.x # #---------------------------------------------------------# Get atmosphere model # cp $exe/remo_101x55x20oasis.exe atm.x # #---------------------------------------------------------# Get oasis # cp $exe/OASIS_rho.exe oasis.x # #---------------------------------------------------------# Get lance # cp $home/oasis/oasis2.4_dkrz/lance_rho_ossrc lance chmod 755 lance # #---------------------------------------------------------# Get data for coupler # grids=$rhodir/grids_800.ieee areas=$rhodir/areas_800.ieee masks=$rhodir/masks_800.ieee maskr=$rhodir/maskr_800.ieee # export grids areas masks maskr ls –l # #---------------------------------------------------------# Run coupled ocean - atmosphere model with oasis interface # if [ -f $outdir/atmout_${NACTYEAR}_${RUNMONTH} ]; then rm $outdir/atmout_${NACTYEAR}_${RUNMONTH} fi if [ -f $outdir/oceout_${NACTYEAR}_${RUNMONTH} ]; then
F_UFMTADJUST61=NO ; export F_UFMTADJUST61 F_UFMTADJUST45=NO ; export F_UFMTADJUST45 F_UFMTADJUST42=NO ; export F_UFMTADJUST42 F_UFMTADJUST44=NO ; export F_UFMTADJUST44 # set -ex # #---------------------------------------------------------# Prepearing the data #---------------------------------------------------------# Connect files to value of environment variable # F_FILECONNECT=YES export F_FILECONNECT # #---------------------------------------------------------# No. of CPU request # NCPUS=1 export NCPUS F_RSVTASK=$NCPUS export F_RSVTASK # #---------------------------------------------------------# namcouple editing #---------------------------------------------------------# cp $rhodir/namcouple_rho_$EXPN namcouple # ed namcouple << EOF g/Exptid/ s/Exptid/${exptid} g/Runtime/ s/Runtime/${runtime} g/Jahr_Monat_Tag/ s/Jahr_Monat_Tag/${NACTYEAR}${RUNMONTH}01 w q EOF echo 'namcouple ......'
84
fi # #---------------------------------------------------------cat > fort.20 << EOF ${LSE} EOF mv fort.20 $rhodir/LSA #---------------------------------------------------------# Preparing the data # mv Z37000 $nextdir/Z37000_${NEXTYEAR}_${NEXTMONTH} mv Z38000 $nextdir/Z38000_${NEXTYEAR}_${NEXTMONTH} cp sstocean $nextdir/sstocean cp flxatmos $nextdir/flxatmos mv sstocean $nextdir/sstocean_${NEXTYEAR}_${NEXTMONTH} mv flxatmos $nextdir/flxatmos_${NEXTYEAR}_${NEXTMONTH} # #---------------------------------------------------------set +e set -x ls -l pwd #---------------------------------------------------------# Compressing and Cleaning # if [ -f $remoxe/e${EXP}xe02${RUNMONTH}${Y}12 ] ; then cd $remoxe tar -cvf e${EXP}xe${RUNMONTH}${Y}.tar ./e${EXP}xe??${RUNMONTH}${Y}?? ./e${EXP}xe01${NEXTMONTH}${YN}00 rm e${EXP}xe??${RUNMONTH}${Y}?? mv e${EXP}xe${RUNMONTH}${Y}.tar $HOME/output/ cd $TMPDIR fi # if [ -f $remoxt/e${EXP}xt02${RUNMONTH}${Y}12 ] ; then cd $remoxt tar -cvf e${EXP}xt${RUNMONTH}${Y}.tar ./e${EXP}xt??${RUNMONTH}${Y}?? ./e${EXP}xt01${NEXTMONTH}${YN}00 rm e${EXP}xt??${RUNMONTH}${Y}?? mv e${EXP}xt${RUNMONTH}${Y}.tar $HOME/output/
rm $outdir/oceout_${NACTYEAR}_${RUNMONTH} fi if [ -f $outdir/cplout_${NACTYEAR}_${RUNMONTH} ]; then rm $outdir/cplout_${NACTYEAR}_${RUNMONTH} fi # atmout=$outdir/atmout_${NACTYEAR}_${RUNMONTH} oceout=$outdir/oceout_${NACTYEAR}_${RUNMONTH} cplout=$outdir/cplout_${NACTYEAR}_${RUNMONTH} # export atmout oceout cplout # lance oasis.x atm.x oce.x < INPUT || { # set +e rm Z* MATRIX GI* INI* # cp * $TEMPDIR/. cat oasis.x.err cat oce.x.err cat atm.x.err # cat atm.x.out exit 1 } # set +ex cp e${EXPN}xo* e${EXPN}xh* fl${EXPN}* $MFHOME/rho_band_${EXPN}/rhoout set –e # #---------------------------------------------------------# if [ ! -d $work/${NEXTYEAR} ] ; then mkdir $work/${NEXTYEAR} || true fi nextdir=$work/${NEXTYEAR}/${NEXTMONTH} ; export nextdir if [ ! -d $nextdir ] ; then mkdir $nextdir || true
85
ext4 copy fort.72 j${EXPN}\_sao.ext4 ext4 copy fort.73 j${EXPN}\_uko.ext4 ext4 copy fort.74 j${EXPN}\_vke.ext4 ext4 copy fort.79 j${EXPN}\_eminpo.ext4 ext4 copy fort.82 j${EXPN}\_zo.ext4 ext4 copy fort.84 j${EXPN}\_flum.ext4 ext4 copy fort.85 j${EXPN}\_pem.ext4 ext4 copy fort.137 j${EXPN}\_qswo.ext4 ext4 copy fort.138 j${EXPN}\_qlwo.ext4 ext4 copy fort.139 j${EXPN}\_qlao.ext4 ext4 copy fort.140 j${EXPN}\_qseo.ext4 ext4 copy fort.141 j${EXPN}\_preco.ext4 ext4 copy fort.143 j${EXPN}\_psiuwe.ext4 ext4 copy fort.146 j${EXPN}\_wo.ext4 ext4 copy fort.156 j${EXPN}\_zmld.ext4 # tar -cvf ${RUNYEAR}.tar *.ext4 mv ${RUNYEAR}.tar $HOME/output/ rm -f *.ext4 fort.* fi # cd $HOME perl cleanipc.pl perl cleanipc.pl cd $TMPDIR # set +ex cd $HOME/rho runit # exit
cd $TMPDIR fi # rm $remoxa/e${EXP2}xa??${RUNMONTH}${Y}?? # rm $hopexa/*.${ver}.${RUNYEAR}.${RUNMONTH}.srv # cd $remoxf rm -f $remoxf/e${EXP}xf01${RUNMONTH}${Y}00 rm -f $remoxf/e${EXP}xg01${RUNMONTH}${Y}00 tar -cvf e${EXP}xf${RUNMONTH}${Y}.tar ./* mv e${EXP}xf${RUNMONTH}${Y}.tar $HOME/output/ cd $TMPDIR # cat > fort.20 << EOF1 ${NEXTMONTH} EOF1 cp fort.20 $rhodir/MONTHLIST_${VER}_${EXPN} rm fort.20 # #save HOPE result # rm -f fort.41 fort.42 mv -f fort.* ${xhope}/ # #******************* end of monthly loop ****************** done # #---------------------------------------------------------# if [ ${RUNMONTH} -eq 12 ] ; then cat > fort.20 << EOF3 ${NEXTYEAR} EOF3 cp fort.20 $rhodir/RUNYEAR_${VER}_${EXPN} rm fort.20 # cd ${xhope} ext4 copy fort.71 j${EXPN}\_tho.ext4
86