配列
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
コメント