基本的なFortranプログラム(配列)

配列

v(1)=0,v(2)=5,v(3)=10のように同一形式の数字郡を並べたものを配列と呼ぶ。

real(8) a(2)     !a(2)までの配列を宣言
real(8) a(0:2)     !a(0)~a(2)の配列を宣言

a(1)=1.0d0
a(2)=3.0d0     !配列a(1),a(2)に値を代入

b(1)=2.0d0
b(2)=4.0d0     !配列b(1),b(2)に値を代入

配列を使ったプログラムの例

a(0)~a(2)、b(0)~b(2)に値を代入して第一要素から並び替えるプログラム。

program zerofortran
implicit none
integer k
real(8) a(0:2),b(0:2)

a(0)=1.0d0
a(1)=3.0d0
a(2)=5.0d0

b(0)=2.0d0
b(1)=4.0d0
b(2)=6.0d0

do k=0,2
write(*,*) a(k),b(k)
end do


end program zerofortran

1.0000000000000000  2.0000000000000000
3.0000000000000000  4.0000000000000000
5.0000000000000000  6.0000000000000000

配列を使った積分プログラムの例

2×2ベクトルの内積を計算するプログラム。

program zerofortran
implicit none
integer k
real(8) a(0:1),b(0:1),inpro

a(0)=1.0d0
a(1)=3.0d0

b(0)=2.0d0
b(1)=4.0d0

inpro=0.0d0

do k=0,1
inpro=inpro+a(k)*b(k)
end do

write(*,*) inpro

end program zerofortran

14.000000000000000

ファイルの読み込みを行うプログラムの例

ファイルの数値を配列に読み取る。

program zerofortran
implicit none
integer k
real(8) a(0:2)

open(10,file='model.txt')
write(10,*) 1.0d0
write(10,*) 2.0d0
write(10,*) 3.0d0     !1行に1つずつ入力する
close(10)

open(10,file='model.txt')
do k=0,2
read(10,*) a(k)     !各行から1個ずつ読み込む

!ファイル内の改行を無視して読み込むときには
!read(10,*) (a(k),k=0,2)を使う。

write(*,*) a(k) 
end do
close(10)


end program zerofortran

1.0000000000000000
2.0000000000000000
3.0000000000000000

部分配列のプログラム例

a(始めの要素の数:終わりの要素の数)=0     !指定した要素に0を代入する
a(:)=0     !全ての要素に0を代入する
a(始めの要素の数:終わりの要素の数)=(/1.0d0,2.0d0,・・・,n/)     !指定した要素に値を代入する

ファイル内全ての要素に0を代入し、1~3のみ整数を代入するプログラム。

program zerofortran
implicit none
integer k
real(8) a(0:4)
a(:)=0
a(1:3)=(/1.0d0,2.0d0,3.0d0/)

do k=0,4
write(*,*) a(k) 
end do

end program zerofortran

0.0000000000000000
1.0000000000000000
2.0000000000000000
3.0000000000000000
0.0000000000000000

コメント