Thursday, January 09, 2014

Belajar Fortran di CentOS

Cara mengetahui distro yang digunakan. Sepertinya sih CentOS, namun perlu diyakinkan dulu

[root@master ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)

Biasanya pakai perintah uname, namun nama distronya tidak terlihat

[root@master ~]# uname -a
Linux master 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Bagaimana cara mengetahui, apakah sudah ada paket fortran-nya dalam distro ini. Belum menemukana rtikel yang secara to the point mengatakan hal itu.Biasanya dengan menjalankan yum install lalu diikuti nama paket, akan ada pesan.

[root@master ~]# yum install gfortran
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.hostemo.com
 * extras: centos.ipserverone.com
 * updates: mirrors.hostemo.com
base                                                     | 3.7 kB     00:00
extras                                                   | 3.4 kB     00:00
updates                                                  | 3.4 kB     00:00
updates/primary_db                                       | 1.3 MB     00:01
Setting up Install Process
No package gfortran available.
Error: Nothing to do

Coba perintah baris untuk mengetahui versi fortran :

[root@master ~]# apropos fortran
ctags                (1p)  - create a tags file (DEVELOPMENT, FORTRAN)
fort77               (1p)  - FORTRAN compiler (FORTRAN)

 Apakah yang telah terinstall adalah F77?

Coba install gcc-gfortran

[root@master ~]# yum install gcc-gfortran

Setelah proses instalasi, cek gfortran

[root@master ~]# gfortran -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)

Contoh program fortran :
http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap02/traps.html

Dari pada susah ngetik, download pakai wget di  :
http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap02/traps.f90

Ternyata ekstensinya .f90.

Gemana cara melakukan compiling dan executing? Coba ngikutin panduan ini :
http://homepages.wmich.edu/~korista/README-fortran.html

[root@master ~]# f90
-bash: f90: command not found


Apa yaa printah baris untuk menjalankan atau sekedar meng-compile?
Coba aja : gfortran

[root@master ~]# gfortran -o traps.exe traps.f90

Ada sih hasihnya, yaitu file traps.exe. Tapi kan exe gak bisa jalan di Linux. Trus sintaknya apa yaa?

Ternyata jalanin hasil compilenya adalah sbb :

[root@master ~]# ./traps.exe
 First, the exponential trap:
           2  **            2  **            3  =          256
 (            2  **            2  ) **           3  =           64
           2  ** (            2  **            3  ) =          256

 Second, the integer division trap:

           4  /            6  =            0
 REAL(            4  ) /            6  =   0.66666669
           4  / REAL(            6  ) =   0.66666669

 Third, the string truncation trap:
 IS Smith STILL IN TEXAS?
 IS Smit STILL IN TEXAS ?


Ini saya coba setelah membaca di sini :
http://gcc.gnu.org/wiki/GFortranGettingStarted

Hasil running ini sesuai dengan contoh di situs :
http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap02/traps.html

Kesimpulan :
Fortran di CentOS adalah gfortran
Cara meng-compile bisa dengan
# gfortran -o traps.exe traps.f90
atau
# gfortran -o traps traps.f90

Cara meng-running nya adalah
# ./traps.exe
atau
# ./traps

Cuma saya lupa, apakah gfortran yang saya pakai merupakan hasil instalasi kemudian atau sudah ada sejak awal saat instalasi CentOS

Di halaman : http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/intro.html

Ada 5 contoh program fortran :
  1. Three Programming Traps : traps.f90
  2. Computing Means : means.f90
  3. Quadratic Equation Solver : quad-1.f90
  4. The Length of a Parabola Segment : p-length.f90
  5. Projectile motion (intrinsic functions : projectile.f90

[root@master ~]# gfortran -o quad-1.f90 quad-1
gfortran: quad-1: No such file or directory


Gak boleh kebalik

[root@master ~]# gfortran -o quad-1 quad-1.f90
[root@master ~]# ./quad-1
 A, B, C Please :
5 5 5

 Roots are              NaN  and              NaN


Gak boleh asal
[root@master ~]# ./quad-1
 A, B, C Please :
1 -5 3

 Roots are    4.3027754      and   0.69722438


[root@master ~]# gfortran -o p-length p-length.f90
[root@master ~]# ./p-length
 Height of a parabola :
100
 Base of a parabola   :
78.5

 Height =    100.00000
 Base   =    78.500000
 Length =    266.14944


Nilai "100" dan "78.5" masukkan melalui keyboard

[root@master ~]# gfortran -o projectile projectile.f90
[root@master ~]# ./projectile
45.0 6.0 60.0
 Horizontal displacement :    254.55847
 Vertical displacement   :    78.158432
 Resultant velocity      :    45.476311
 Direction (in degree)   :   -21.103064


Nilai "45.0 6.0 60.0" masukkan dengan cara mengetikkan melalui keyboard

Sumber :
http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/fortran.html

No comments:

Post a Comment