funini.com kei Fortran

Fortran

Fortran (90)

意外とWEB上に載っていないFortran関連の情報提供。

g77で遊ぼう。

いにしえの言語、Fortranに触れてみよう!

とりあえずHello.


 program main
 write(*,*) "Hello!"
 end

変数。 integerはi-z,realはa-hまでで始めると無難。


 program main
 integer i, j, k
 i = 2
 j = 3
 k = i + j
 write(*,*) "i + j = ", k
 end

関数。 メイン関数の中では、ちゃんと関数名も変数と同じように型宣言しないといけない。


 program main
 integer i, j, k
 integer sample_f
 k = f(1,2)
 write(*,*) "k=",k
 end
c
c
 integer function sample_f(a, b)
 integer a, b
 f = a * b
 write(*,*) '(' , a, ',' , b, ',', f, ')'
 end


### tips


-
int <-> integer

double <-> real*8


-
配列をまとめてwrite。

普通なら


do i=1,10 write(,) A(i) end do


と書くところを

write(,) (A(i),i=1,10)


と書けます。二次元なら

write (,) ((A(i,j),j=1,10),i=1,10)



- Fortranでもmalloc!
まずはA(100)の動的確保。

real8, allocatable A() ... allocate(A(10)) do i=1,10 A(i)=ii end do write(,) (A(i),i=1,10)


二次元配列にも使えます

real*8, allocatable A(:,:) ... allocate(A(0:9,0:9))



-