chap06/sample5.f90

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

 1program sample
 2  implicit none
 3
 4  character(len=*), parameter :: text = 'initialization by this string'
 5  character(len=16) :: a, b, c, d
 6  character(len=64) :: str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 7  integer :: i1, i2, n
 8
 9  a = 'This'
10  b = 'is'
11  c = 'a'
12  d = 'pen'
13
14  ! 何も考えずに出力
15  write(*, *) a, b, c, d
16
17  ! 文字列を結合して出力
18  write(*, *) a//b//c//d
19
20  ! 6文字分ずつ
21  write(*, '(a6,a6,a6,a6)') a, b, c, d
22
23  ! 間の空白無し
24  write(*, '(a)') trim(a)//trim(b)//trim(c)//trim(d)
25
26  ! 空白を削除して結合
27  write(*, '(a,x,a,x,a,x,a)') trim(a), trim(b), trim(c), trim(d)
28
29  ! XYZと一致する部分文字列を検索し, 開始位置のインデックスを返す
30  i1 = index(str, 'XYZ')
31  i2 = i1 + len('XYZ')
32  write(*, *) str(i1:i2)  ! XYZを出力
33
34  ! 内部ファイルを用いて連番のファイル名を作成
35  do n = 1, 8
36    write(str, '("data",i3.3,".dat")') n
37    write(*, '(a)') str
38  enddo
39
40  stop
41endprogram sample