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