Anda di halaman 1dari 28

MANUAL INSTALASI DAN RUNNING MODEL WAVEWATCHIII V3.

14
Pengembangan Model Bidang Meteorologi Maritim
Wave Model Generasi III Tahun 2012

Oleh:
Donaldi S Permana

Pusat Penelitian dan Pengembangan


Badan Meteorologi Klimatologi dan Geofisika

MANUAL INSTALASI DAN RUNNING MODEL WAVEWATCHIII V3.14


1) Source Code WaveWatch-III (WW3)
Sistem yang dibutuhkan
2) Instalasi Model
WW3 single processor
WW3 multi processor
3) Running Model
Pembentukan Grid Domain
Seting Kondisi Awal / Restart
Persiapan Data Input
Eksekusi Model
ww3_shel (one-way nesting)
ww3_multi (two-way nesting)
Post-processing
Visualisasi

1) Source Code WaveWatch-III (WW3)


Model versi 1.18 dan 2.22 dapat di-download secara gratis
pada ftp://polar.ncep.noaa.gov/pub/wwatch3/
Model versi 3.14 dapat di-download setelah melakukan
registrasi pada
http://polar.ncep.noaa.gov/waves/wavewatch/license.shtml
Request username dan password
Download semua paket pada
http://polar.ncep.noaa.gov/waves/wavewatch/distribu
tion
Grid generator:
gridgen1.0 (gridgen.bin.tar.gz ;
gridgen.exp.tar.gz; gridgen.ref.tar.gz;
grid_generation.pdf)
gridgen1.1.tar.gz
WW3 v.14:
install_wwatch3 (installation script)
wwatch3.aux.tar (auxiliary functions)
wwatch3.ftn.tar (source code)
wwatch3.inp.tar (example input files)
wwatch3.tst.tar (test cases with results)

Sistem yang dibutuhkan


Sistem Operasi
Linux, Unix, Mac OS X, Sun OS, Windows
(Cygwin)
Fortran Compiler

GNU Fortran Compiler (gfortran)


Berlisensi GNU General Public Licence
(gratis). Dapat di-install dari paket Linux
OS.
Intel Fortran Compiler (ifort)
Berlisensi non-komersial untuk Linux.
Dapat di-download pada
http://software.intel.com/enus/articles/non-commercial-softwaredownload/
Portland Group Fortran Compiler (pgi)
Berlisensi komersial. Versi trial dapat didownload pada www.pgroup.com
C Compiler
GNU C Compiler (gcc)
Intel C Compiler (icc)
Paket MPI (Message Passing Interface) untuk
mendukung multiprosesor
MPICH2 (mpich2-1.4.1p1.tar.gz). Dapat didownload pada
http://www.mcs.anl.gov/research/projects/mpich
2/downloads/index.php?s=downloads
MATLAB (Unix dan Windows) untuk grid generator
MEXNC library. Dapat di-download pada
http://mexcdf.sourceforge.net/downloads/
Untuk versi 2010b atau lebih, netcdf library
sudah built-in di MATLAB

Paket CDO (Climate Data Operator). Dapat didownload pada


https://code.zmaw.de/projects/cdo/files
Software analisis dan visualisasi (post-processing)
GrADS. Dapat di-download pada
http://sourceforge.net/projects/opengrads/files/g
rads2
Ferret. Dapat di-download pada
http://www.ferret.noaa.gov/Ferret/

Dataflow Wavewatch III

BOUNDARY

NCEP ICE
(GRIB)

NCEP
WIND
(GRIB)

RESTART

Reproject

Format
conversion

BATHYMETRY

OBSTRUCTION
BY LAND

Format
conversion
WIND & ICE

COMPUTATIONAL
GRID
WAVEWATCH
III
MODEL

Output on
grid

Output in
isolated points

Join output
parameters

RAW WW3

MATLAB

ARGOSS (2008)

Tolman (2009)

1) Instalasi Model

WW3 single processor


Buat folder ww3 pada home direktori (misal:
/home/ww3)
[ww3@puslitbang ww3]$ mkdir ww3
Copy semua materi training ke folder
/home/ww3/ww3
Buat file install_wwatch3 agar dapat dieksekusi
[ww3@puslitbang ww3]$ chmod 700 install_wwatch3
Eksekusi file install_wwatch3
[ww3@puslitbang ww3]$ install_wwatch3

Kemudian akan terbentuk file .wwatch3.env


pada direktori /home/ww3
[ww3@puslitbang ww3]$ cat
/home/ww3/.wwatch3.env

#
# Environment variables for wavewatch III
# --------------------------------------#
WWATCH3_LPR
WWATCH3_F77
WWATCH3_CC
WWATCH3_DIR
WWATCH3_TMP
WWATCH3_SOURCE
WWATCH3_LIST

printer
gfortran
cc
/home/ww3/ww3
/tmp/ww3
yes
yes

Selain itu, pada direktori /home/ww3/ww3 akan


terbentuk direktori berikut
aux (raw auxiliary program)
bin (executables and shell scripts for compiling and
linking)
exe (WW3 executables)
ftn (source code and makefile)
inp (input files)
mod (module files)
obj (object files)
test (script with test cases)
work (auxiliary work directory)

Tambahkan PATH pada linux dengan mengedit


file /home/ww3/.bashrc
[ww3@puslitbang ww3]$ vi /home/ww3/.bashrc
Tambahkan
PATH=$PATH:/home/ww3/ww3/bin:/home/ww3/ww3/exe
export PATH
[ww3@puslitbang ww3]$ source /home/ww3/.bashrc
[ww3@puslitbang ww3]$ bash

Penting !!
Perbaiki source code WW-III v3.14 yang telah didownload sesuai dengan
http://polar.ncep.noaa.gov/waves/wavewatch/prob
lems.3.14.shtml
Copy semua file dari direktori
/home/ww3/ww3/fix/inp ke
/home/ww3/ww3/inp
[ww3@puslitbang ww3]$ cp
/home/ww3/ww3/fix/inp/* /home/ww3/ww3/inp

Copy semua file dari direktori


/home/ww3/ww3/fix/ftn ke
/home/ww3/ww3/ftn
[ww3@puslitbang ww3]$ cp
/home/ww3/ww3/fix/ftn/* /home/ww3/ww3/ftn

Compiling dan Linking (menggunakan


gfortran)
Masuk ke direktori bin.

[ww3@puslitbang ww3]$ cd bin


Edit file comp pada baris ke 89-111

[ww3@puslitbang bin]$ vi comp

# opt="-c -Mlist -fast -fastsse -module


$path_m"
# if [ "$name" != 'gx_outp' ] && [ "$name"
!= 'gx_outf' ]
# then
#
opt="$opt -byteswapio"
# fi
##
##
##
##
#
##

opt="-c -O3 -I$path_m"


if [ "$name" != 'gx_outp' ] &&
[ "$name" != 'gx_outf' ]
then
opt="$opt -byteswapio"
fi
if [ "$mpi_mod" = 'yes' ]
then
comp=mpif90
else
comp=gfortran
fi

if [ "$mpi_mod" = 'yes' ]
then
comp=mpif90
else
comp=pgf90
fi

# if [ "$omp_mod" = 'yes' ]
# then
#
opt="$opt -mp"
# fi

# if [ "$omp_mod" = 'yes' ]
# then
#
opt="$opt -mp"
# fi

# 2.b.2 Compile
# 2.b.2 Compile
# $comp $opt
$name.out 2> $name.err
# OK="$?"

$name.$fext >

$comp $opt
$name.out 2> $name.err
OK="$?"

$name.$fext >

Edit file link pada baris ke 57-69 dan


baris ke 110-127
[ww3@puslitbang bin]$ vi link

if [ -n "`grep MPI
$main_dir/bin/switch`" ]
then
export mpi_mod='yes'
else
export mpi_mod='no'
fi

if [ -n "`grep MPI
$main_dir/bin/switch`" ]
then
mpi_mod='yes'
else
mpi_mod='no'
fi

if [ -n "`grep OMP
$main_dir/bin/switch`" ]
then
export omp_mod='yes'
else
export omp_mod='no'
fi

if [ -n "`grep OMP
$main_dir/bin/switch`" ]
then
omp_mod='yes'
else
omp_mod='no'
fi
export mpi_mod omp_mod

# opt="-o $prog"

opt="-o $prog"

##if [ "$mpi_mod" = 'yes' ]


##then
## comp=mpif90
##else
#
comp=pgf90
##fi

if [ "$mpi_mod" = 'yes' ]
then
comp=mpif90
else
comp=gfortran
fi

# if [ "$omp_mod" = 'yes' ]
# then
#
opt="$opt -mp"
# fi

# if [ "$omp_mod" = 'yes' ]
# then
#
opt="$opt -mp"
# fi

# 3.b Link

# 3.b Link

# $comp $opt $objects


> link.out 2> link.err
# OK="$?"

$comp $opt $objects


> link.out 2> link.err
OK="$?"


Compile binari file WW3
[ww3@puslitbang bin]$ w3_make

Akan terbentuk file executables WW3 di


/home/ww3/exe
[ww3@puslitbang bin]$ ls al /home/ww3/exe

total 3792
drwxrwxr-x. 2 ww3 ww3
4096 Jun 21 23:51 .
drwxrwxr-x. 11 ww3 ww3
4096 Jun 21 19:16 ..
-rwxrwxr-x. 1 ww3 ww3 316770 Jun 21 23:50 gx_outf
(gridded
output post-processor for GrADS)
-rwxrwxr-x. 1 ww3 ww3 274997 Jun 21 23:50 gx_outp
(point
output post-processor for GrADS)
-rwxrwxr-x. 1 ww3 ww3 298151 Jun 21 23:50 ww3_grib
(GRIB
output post-processor)
-rwxrwxr-x. 1 ww3 ww3 284834 Jun 21 23:50 ww3_grid
(the
grid preprocessor)
-rwxrwxr-x. 1 ww3 ww3 837466 Jun 21 23:51 ww3_multi(the multigrid shell for single processor)
-rwxrwxr-x. 1 ww3 ww3 316403 Jun 21 23:50 ww3_outf
(gridded
output post-processor)
-rwxrwxr-x. 1 ww3 ww3 340388 Jun 21 23:50 ww3_outp
(point
output post-processor)
-rwxrwxr-x. 1 ww3 ww3 302385 Jun 21 23:50 ww3_prep
(the
field preprocessor for the generic shell)
-rwxrwxr-x. 1 ww3 ww3 541624 Jun 21 23:50 ww3_shel
(the
generic shell for single processor)
-rwxrwxr-x. 1 ww3 ww3 256789 Jun 21 23:50 ww3_strt
(the
initial conditions program)
-rwxrwxr-x. 1 ww3 ww3 78628 Jun 21 23:50 ww3_trck
(track
output post-processor)

Ubah nama file ww3_shel menjadi


ww3_shel.1 dan ww3_multi menjadi
ww3_multi.1 untuk identifikasi sebagai
binari file single prosesor.

[ww3@puslitbang bin]$ mv /home/ww3/exe/ww3_shel


/home/ww3/exe/ww3_shel.1
[ww3@puslitbang bin]$ mv
/home/ww3/exe/ww3_multi
/home/ww3/exe/ww3_multi.1

WW3 multi processor


Pindah direktori kembali ke /home/ww3/ww3

[ww3@puslitbang bin]$ cd ..
Untar file mpich2-1.4.1p1.tar.gz kemudian pindah
direktori ke mpich2-1.4.1p1
[ww3@puslitbang ww3]$ tar zxf mpich2-1.4.1p1.tar.gz
[ww3@puslitbang ww3]$ cd mpich2-1.4.1p1

Compile dan install paket mpich2

[ww3@puslitbang mpich2-1.4.1p1]$ ./configure CC=cc


CXX=c++ F77=gfortran FC=gfortran
--prefix=/home/ww3/ww3/mpich2
[ww3@puslitbang mpich2-1.4.1p1]$ make
[ww3@puslitbang mpich2-1.4.1p1]$ make install
[ww3@puslitbang mpich2-1.4.1p1]$ cd ..
Tambahkan PATH pada linux dengan mengedit file
/home/ww3/.bashrc
Pindah direktori
kembali
ke /home/ww3/ww3/bin

[ww3@puslitbang
ww3]$
vi /home/ww3/.bashrc
[ww3@puslitbang ww3]$ cd bin
Tambahkan
Edit file switch dengan mengubah SHRD menjadi

PATH=$PATH:/home/ww3/ww3/bin:/home/ww3/ww3/exe:/home/ww
DIST MPI
3/ww3/mpich2/bin
[ww3@puslitbang
bin]$ vi switch
export
PATH
[ww3@puslitbang
NOGRB LRB4
SHRD LLG PR3 FLX2 ww3]$
LN1 ST2 source
STAB2 NL1/home/ww3/.bashrc
BT1 DB1 MLIM TR0 BS0 XX0 WNX1
WNT1 CRX1
CRT1 O0 O1 O2 O3 O4
O5 O6 bash
O7 O11 O14
[ww3@puslitbang
ww3]$

F90

Menjadi
F90 NOGRB LRB4 DIST MPI LLG PR3 FLX2 LN1 ST2 STAB2 NL1 BT1 DB1 MLIM TR0 BS0 XX0
WNX1 WNT1 CRX1 CRT1 O0 O1 O2 O3 O4 O5 O6 O7 O11 O14

Compile ww3_shel dan ww3_multi baru yang support


multi prosesor
[ww3@puslitbang bin]$ w3_make ww3_shel ww3_multi
Akan terbentuk file ww3_shel dan ww3_multi baru

di /home/ww3/exe
[ww3@puslitbang bin]$ ls al /home/ww3/exe

total 7100
drwxrwxr-x. 2 ww3 ww3
4096 Jun 22 07:45 .
drwxrwxr-x. 13 ww3 ww3
4096 Jun 22 03:13 ..
-rwxrwxr-x. 1 ww3 ww3 316770 Jun 22 07:42 gx_outf
-rwxrwxr-x. 1 ww3 ww3 274997 Jun 22 07:42 gx_outp
-rwxrwxr-x. 1 ww3 ww3 298151 Jun 22 07:42 ww3_grib
-rwxrwxr-x. 1 ww3 ww3 284834 Jun 22 07:42 ww3_grid
-rwxrwxr-x. 1 ww3 ww3 1861386 Jun 22 07:45 ww3_multi
(the multi-grid shell for multi processor)
-rwxrwxr-x. 1 ww3 ww3 837466 Jun 22 07:42 ww3_multi.1
(the multi-grid shell for single processor)
-rwxrwxr-x. 1 ww3 ww3 316403 Jun 22 07:42 ww3_outf
-rwxrwxr-x. 1 ww3 ww3 340388 Jun 22 07:42 ww3_outp
-rwxrwxr-x. 1 ww3 ww3 302385 Jun 22 07:42 ww3_prep
-rwxrwxr-x. 1 ww3 ww3 1522015 Jun 22 07:44 ww3_shel
(the generic shell for multi processor)

-rwxrwxr-x.
-rwxrwxr-x.

1 ww3 ww3
1 ww3 ww3

256789 Jun 22 07:42 ww3_strt


78628 Jun 22 07:42 ww3_trck

Pembentukan Grid Domain


Pembentukan grid domain pada WW3 dilakukan
menggunakan software MATLAB (Linux/Windows)

Untuk MATLAB dengan library NetCDF built-in menggunakan


gridgen1.1

Untuk MATLAB dengan library NetCDF add-ons (MEXNC


library; http://mexcdf.sourceforge.net/downloads/)
menggunakan gridgen1.0
(Manual ini menggunakan MATLAB 2010b dengan library NetCDF
built-in)
Ekstrak gridgen1.1.tar.gz. Akan terbentuk direktori

gridgen1.1

Buka software MATLAB

Ubah Current Folder sesuai dengan lokasi direktori


gridgen1.1
Pilih subdirektori bin, examples dan reference_data.

Kemudian klik kanan, pilih Add to Path Selected Folders


and Subfolders

3. Running Model
Grid Domain Global
Masuk ke dalam direktori examples, kemudian buka file
create_grid_global.m
Edit baris ke-190 pada file create_grid_global.m

sebelum : b_split = split_boundary(b,10);


menjadi : b_split = split_boundary(b,10,icoords);
Edit baris ke-253 pada file create_grid_global.m

sebelum : d2 = depth;
menjadi : d2 = double(depth);
Edit parameter bin_dir, ref_dir, out_dir, fname, grid_box, dy,

dx dan lainnya sesuai kebutuhan (resolusi = 1 deg)


Eksekusi file create_grid_global.m dengan menekan tombol F5 (Waktu

proses ~30-60 menit, tergantung kecepatan komputer)

Akan tampil peta global untuk data batimetri, data land/sea mask dan
data obstruction
Output grid domain global dapat dilihat dalam subdirektori data dengan

ekstensi file .depth_ascii (data batimetri), .maskorig_ascii (land/sea


attribution), .obstr_lev1 (obstructions level) dan .meta (grid definition)

Kemudian, pada bagian Workspace, pilih icon Save untuk menyimpan


variabel-variabel yang telah terbentuk.

Grid Domain Regional (Indonesia)


Buka file create_grid_regional.m

Edit baris ke-176 pada file create_grid_regional.m

sebelum : b_split = split_boundary(b,10);


menjadi : b_split = split_boundary(b,10,icoords);
Edit baris ke-232 pada file create_grid_regional.m

sebelum : d2 = depth;
menjadi : d2 = double(depth);
Edit parameter bin_dir, ref_dir, out_dir, fname, grid_box, dy, dx

dan lainnya sesuai dengan wilayah regional Indonesia (resolusi = 1/4 deg).
Eksekusi file create_grid_regional.m dengan menekan tombol F5 (Waktu

proses ~20-40 menit)

Akan tampil peta Indonesia untuk data batimetri, data land/sea mask dan
data obstruction
Output grid domain global dapat dilihat dalam subdirektori data dengan

ekstensi file .depth_ascii (data batimetri), .maskorig_ascii (land/sea


attribution), .obstr_lev1 (obstructions level) dan .meta (grid definition)
Kemudian, pada bagian Workspace, pilih icon Save untuk menyimpan

variabel-variabel yang telah terbentuk. Parameter ini akan digunakan dalam


menentukan data boundary output dan input untuk running nested domain.

Boundary Output

Dengan me-load variabel m4 (land mask) pada grid domain regional


(Indonesia), dapat ditentukan data boundary output dan input yang
diinginkan.
Boundary output (lon-lat format) untuk grid domain global

Jumlah
Grid
32

$Boundary output
$North
90.
15.
0.25 0
109. 15.
0.25 0
121.5
15.
0.25 0
$South
90.
-15. 0.25 0
137. -15. 0.25 0
145.5
-15. 0.25 0
$West
90.
-14.75 0
0.25
$East
150. -14.75 0
0.25
150. -10. 0
0.25
150. -5.5 0
0.25

45
115
142
19
19
119
18
16
82

Boundary output (i - j grid format) untuk grid domain regional (Indonesia)


$Boundary input
$North
2 122 F
32 122 T
81 122 F
120 122 T
130 122 F
242 122 T
$South
2 2 F
140 2 T
187 2 F
207 2 T
225 2 F
242 2 T
$West
2 3 F
2 121 T
$East
242 3 F
242 18 T
242 27 F
242 35 T
242 41 F
242 121 T

Running Model

Kembali ke sistem operasi Linux,


kemudian buat direktori
/home/ww3/ww3/run,
/home/ww3/ww3/run/data,
/home/ww3/ww3/global_1d,
/home/ww3/ww3/indo_0.25d
[ww3@puslitbang bin]$ mkdir
/home/ww3/ww3/run
/home/ww3/ww3/run/data
/home/ww3/ww3/global_1d
/home/ww3/ww3/indo_0.25d
Copy semua isi folder

/home/ww3/ww3/inp ke dalam
/home/ww3/ww3/run/global_1d dan
/home/ww3/ww3/run/indo_0.25d
[ww3@puslitbang bin]$ cp
/home/ww3/ww3/inp/*
/home/ww3/ww3/run/global_1d/
[ww3@puslitbang bin]$ cp
/home/ww3/ww3/inp/*
/home/ww3/ww3/run/indo_0.25d/

Copy semua file hasil luaran MATLAB ke


dalam direktori
/home/ww3/ww3/run/data, yakni file
dengan ekstensi.depth_ascii (data
batimetri), .maskorig_ascii (land/sea
attribution), .obstr_lev1 (obstructions
level) dan .meta (grid definition)

Kemudian pindah ke direktori


/home/ww3/ww3/run/global_1d
[ww3@puslitbang bin]$ cd
/home/ww3/ww3/run/global_1d
Edit file ww3_grid.inp

[ww3@puslitbang global_1d]$ vi
ww3_grid.inp

Seting Kondisi Awal /


Restart
Edit file ww3_strt.inp

[ww3@puslitbang global_1d]$ vi ww3_strt.inp


Eksekusi perintah ww3_strt (initial condition)

[ww3@puslitbang global_1d]$ ww3_strt

Akan menghasilkan file restart.ww3

Persiapan Data Input


Buat direktori /home/ww3/ww3/run/data_wind

[ww3@puslitbang global_1d]$ mkdir /home/ww3/ww3/run/data_wind


Copy contoh data FNL NCEP (format GRIB1) ke /home/ww3/ww3/run/data_wind

[ww3@puslitbang global_1d]$ cp ../../data_fnl_Jan2010/* /home/ww3/ww3/run/data_wind

Untuk melihat isi data input dapat menggunakan software Panoply


Compile paket cdo-1.5.5.tar.gz dan install pada /home/ww3/ww3/cdo

[ww3@puslitbang global_1d]$ cd ../../


[ww3@puslitbang ww3]$ tar zxf cdo-1.5.5.tar.gz
[ww3@puslitbang ww3]$ cd cdo-1.5.5
[ww3@puslitbang cdo-1.5.5]$ ./configure prefix=/home/ww3/ww3/cdo
[ww3@puslitbang cdo-1.5.5]$ make
[ww3@puslitbang cdo-1.5.5]$ make install
Akan terbentuk binary file /home/ww3/ww3/cdo/bin/cdo

[ww3@puslitbang cdo-1.5.5]$ /home/ww3/ww3/cdo/bin/cdo


Copy file extract_wind_grib1_fnl_1d.sh ke /home/ww3/ww3/run/global_1d

[ww3@puslitbang cdo-1.5.5]$ cd
[ww3@puslitbang ww3]$ cp extract_wind_grib1_fnl_1d.sh /home/ww3/ww3/run/global_1d
[ww3@puslitbang ww3]$ cd /home/ww3/ww3/run/global_1d
Buat file extract_wind_grib1_fnl_1d.sh agar dapat dieksekusi

[ww3@puslitbang global_1d]$ chmod 700 extract_wind_grib1_fnl_1d.sh


Eksekusi file extract_wind_grib1_fnl_1d.sh untuk menghasilkan data input wind raw

[ww3@puslitbang global_1d]$ ./extract_wind_grib1_fnl_1d.sh ../data_wind wind.raw


Akan terbentuk file wind.raw


Akan terbentuk file
out_grd.ww3,
out_pnt.ww3,
nest1.ww3,
restartN.ww3 (N=1..5)

Log file dapat dilihat pada


log.ww3

Visualisasi
Buka file ww3.ctl menggunakan grads

[ww3@puslitbang global_1d]$ grads

Anda mungkin juga menyukai