chap07/sample1.f90

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

 1program sample
 2  implicit none
 3
 4  write(*, *) 'square1 => ', square1(2.0_8)
 5  write(*, *) 'square2 => ', square2(2.0_8)
 6
 7  ! 以下はエラー (引数はreal(8)で宣言されているのに与えられたのはreal(4))
 8  !write(*,*) square1(2.0), square2(2.0)
 9
10  stop
11contains
12  !!!!!!!!!! 関数やサブルーチンの宣言はここから !!!!!!!!!!
13
14  !
15  ! 関数の宣言(1) : 関数名と同じ名前の変数に返値を代入する形式
16  !
17  real(8) function square1(x)     ! square1という名前で関数を宣言
18    implicit none                 ! 暗黙の型宣言の禁止
19    real(8) :: x                  ! 引数を宣言
20
21    square1 = x**2                ! 返値は関数名と同じ名前の変数に代入
22
23    return                        ! 呼び出し元に制御を戻す
24  endfunction square1
25
26  !
27  ! 関数の宣言(2) : resultを使った形式
28  !
29  function square2(x) result(y)   ! square2という名前で関数を宣言
30    implicit none                 ! 暗黙の型宣言の禁止
31    real(8) :: x                  ! 引数を宣言
32    real(8) :: y                  ! 返値となる変数(result)の宣言
33
34    y = x**2                      ! 返値を代入
35
36    return                        ! 呼び出し元に制御を戻す
37  endfunction square2
38
39  !!!!!!!!!! ここまでの間に行う !!!!!!!!!!
40endprogram sample