compile aimpac with intel fortran in Debian GNU/Linux

Assalamu’alaikum warahmatullahi wabarakatuh..

Di tulisan yang sebelumnya kita telah membahas bagaimana kompilasi dari pglot dan aimpacpg, sekarang kita akan mencoba membahas bagaimana kompilasi aimpac. Kemarin sempat googling dan tidak menemukan apa-apa kecuali di esdebian.org, jadi kompilasi ini mengacu pada step yang ditulis di web itu.

Pertama-tama siapkan dulu beberapa library yang dibutuhkan seperti pgplot5, libpng12-dev, zlib1g-dev, libc6-dev (menginstall libc6-dev di Debian 64 bit dapat menyebabkan libc-i386-dev dan beberapa library untuk aplikasi 32 bit lainnya juga ikut terhapus, paling tidak itu yang kualami). Semua itu bisa diinstall menggunakan perintah aptitude atau apt-get.

Setelah kalian mendownload file aimpac, ekstrak file tersebut dan ubah ekstensi file .SRC menjadi .f dan mulai kompile satu per satu. Agar mudah dalam merename bisa menggunakan perintah
$ rename ‘s/.SRC/.f/’ *.SRC

Di sini aku menggunakan Intel Fortran dan MKL. Urutan file yang dikompilasi adalah sebagai berikut :

1. Kompilasi EXTB94.f
$ ifort EXTB94
Setelah kompilasi ada file a.out, rename file tersebut menjadi ext94
$ mv a.out ext94
hal yang sama juga dilakukan untuk step yang selanjutnya, rename file a.out sesuai dengan kode fortran yang dikompilasi.

2. Kompilasi BUBBLE.f
$ ifort BUBBBLE.f

3. Kompilasi PROAIMV.f
$ ifort PROAIMV.f

4. Kompilasi PROFIL.f
Sebelum kompilasi, kita perlu mengedit file PROFIL.f dengan memberi tanda C (komentar) pada bagian atas file mulai bagian :
From CHEESE@SSCvax.CIS.McMaster.CA Sat Aug  1 16:58 EDT 1992
C Received: from SSCvax.CIS.McMaster.CA by alchemy.chem.utoronto.ca (5.65/1.34)
C    id AA09563; Sat, 1 Aug 92 16:58:11 -0400
C Date: Sat, 1 Aug 1992 15:51 EDT
C From: CHEESE@SSCvax.CIS.McMaster.CA
C Subject: profil.src
hingga
C X-Vms-To: @USERS
C Status: R
dan mengganti COMMON / UNIT / InpT, Iout, IWFN dengan COMMON / UNIT / InpT, Iout, IWFN, IDBG untuk semua tempat di mana UNITS muncul. Ganti juga / prims / COO (MPRIMS, MMO), EXX (MPRIMS), ICT (MPRIMS) + SUM (MPRIMS), ITP (10), NPRIMS, DIV (MPRIMS) dengan / prims / COO (MPRIMS, MMO), EXX (MPRIMS), ICT (MPRIMS) + SUM (MPRIMS), ITP (10), DIV (MPRIMS) NPRIMS
kompilasi dilakukan dengan menggunakan perintah
$ ifort -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm  -llapack  -lblas -L/opt/intel/composer_xe_2011_sp1.9.293/mkl/lib/intel64 PROFIL.f
akan muncul warning dari ifort, tapi tak apalah karena berhasil dikompilasi.

Untuk bagian kedua, kita akan mengkompilasi file-file yang ada di folder aimpacpg, contorpg.f dan grdvecpg.f. Pertama-tama hapus “pg” dari nama dua file tadi. Kemudian kompile hereplot.f, contor.f dan grdvec.f menggunakan perintah
$ ifort -c hereplot.f
$ ifort contor.f hereplot.o -lc -lX11 -lpng -lpgplot
$ ifort grdvec.f hereplot.o -lc -lX11 -lpng -lpgplot

Kompilasi GRIDV.f
$ ifort GRIDV.f

Ketika file ./gridv dijalankan akan muncul error PLOT IN ATRIBUT CARD ERROR, kita akan membahas ini di lain kesempatan atau kalian bisa googling sendiri😀.

Kompilasi RELIEF.f
$ ifort RELIEF.f hereplot.o -lc -lX11 -lpng -lpgplot

Kompilasi SCHUSS.SRC
$ ifort SCHUSS.f hereplot.o -lX11 -lpng -lpgplot -lz -lm

Kompilasi CUBEV.SRC
$ ifort CUBEV.f

Kompilasi ENVELOP.f
Nah, pada kompilasi file terakhir inilah muncul error di line 47, sepertinya sih SUBROUTINE DRAWI tidak ada prosedurnya, jadi aku beri komentar saja. Oia, selain itu RETURN di line 53 juga aku hapus saja(yah, meski aku juga tidak yakin dengan solusi ini)
$ ifort ENVELOP.f hereplot.o -lX11 -lpgplot

Dengan cara ini semua file *.f berhasil dikompilasi. Oia, karena tidak ada ia32-libs dan library 32 bit yang diperlukan maka aplikasi 32 bit seperti firefox dan gaussian 03 32 bit tidak dapat berjalan. Mungkin jika ada yang tahu cara lain bisa di-share juga. Oke, cukup sekian dan semoga bermanfa’at!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s