chap07/sample3.f90

サンプルコードのダウンロード

 1program sample
 2  implicit none
 3
 4  call sub1(4.0_8)
 5  call sub2()
 6
 7  stop
 8contains
 9  ! sub1
10  subroutine sub1(exponent)
11    implicit none
12    real(8) :: exponent
13
14    !
15    ! 基本的に内部でのみ使う変数はここで宣言して使う
16    ! 特にループ変数(以下の例ではi)は必須
17    ! これらの変数は外部からは見えないので,メインプログラムや他のサブプログラム
18    ! で同名の変数が宣言されていてもそれらとは完全に独立であることに注意
19    !
20    ! (引数に値を代入して返す場合,メインプログラムの変数を参照する場合について
21    ! はレジュメのintent属性や内部手続きの節を参照のこと)
22    !
23    integer, parameter :: n = 10
24    integer :: i
25    real(8) :: x(n), sum
26
27    ! 代入
28    do i = 1, n
29      x(i) = i**exponent
30    enddo
31
32    ! 和を計算
33    sum = 0.0_8
34    do i = 1, n
35      sum = sum + x(i)
36    enddo
37
38    write(*, *) 'sum of array = ', sum
39
40  endsubroutine sub1
41
42  ! sub2
43  subroutine sub2()
44    implicit none
45
46    ! このように定義されていても問題無い(sub1のnとは独立な変数である)
47    integer, parameter :: n = 100
48
49    write(*, *) 'n = ', n
50
51  endsubroutine sub2
52
53endprogram sample