トップページ >  fortran95
初版2013/05/07: 最終更新日2013/05/17
  fortran95
目次
FTN95のインストール
変数の宣言
コメント
write文の使い方
data文の使い方
ファイル操作
readの使い方
文字型操作
if文
サブルーチン
システムコール
FTN95のインストール
Windows7の場合、FTN95 Personal Editionなら動作するので、こちらよりダウンロードします。
ダウンロード画面のhereをクリックしてください。

ダウンロード画面


ダウンロードしたexeを実行します。すると以下のような画面が表示されますので、「Next」をクリックします。

インストール画面


次に以下のような画面が表示されますので、「I accept~~」を選択して、「Next」をクリックします。

インストール画面


次に以下のような画面が表示されますので、適当なUser Name、Organizationを入力し、all usersにするか自分のアカウントにするか選択して、「Next」をクリックします。

インストール画面


次に以下のような画面が表示されますので、「Next」をクリックします。

インストール画面


次に以下のような画面が表示されますので、「Next」をクリックします。

インストール画面


次に以下のような画面が表示されますので、チェックを入れて「Next」をクリックします。pathを勝手に通してくれます。

インストール画面


インストール画面


インストール画面


Plato IDEの使い方ですが、「すべてのプログラム」 - 「Silverflost」 - 「Silverflost FTN95」 - 「Plato IDE」で起動します。
変数の宣言
変数は、integer(整数型)、character(文字型)があります。
characterはa*5というように宣言することができ、これは長さが5のaという文字型であることをあらわします。

fortran95の文字型は長さを調べるlenや右側の空白を削除して文字型の長さを調べるtrim_lenで調べることができます。
trimは、空白を削除しますが、変数の領域は変わりません。以下、例です。

character a*10
a = "test"
print *, len(a)
print *, len_trim(a)
a = trim(a)
print *, len(a)
print *, len(trim(a))
stop
end

実行結果は以下のとおりです。

10
4
10
4

コメント
fortranのコメントは、行頭にcと記述すると、その行末まではコメントになります。
fortran95ではコメントは!になります。コメントでcを使用するとコンパイルエラーとなりました。

character abc*10,def*3
data abc,def/'1234567890','rwx'/
!write(*,*) abc,def
!write(*,*) abc,def
stop
end

write文の使い方
write文はファイル操作で使ったりしますが、変数の文字型に出力したりすることができます。
c(2:2)としているので、2文字目を書き換えます。

integer a,b
character c*3
data a,b/1,2/ c/'999'/
write(c(2:2),'(i1)') a
print *,c
stop
end

実行結果は以下のとおりです。

919

data文の使い方
data文は、変数の初期値を設定します。以下はabcという文字型を1234567890で初期化しています。
character abc*10
data abc/'1234567890'/
write(*,*) abc
stop
end

data文で複数初期化する場合は、カンマ区切りで

data 変数1,変数2/初期値1,初期値2/

というように記述します。以下、例です。

character abc*10,def*3
data abc,def/'1234567890','rwx'/
write(*,*) abc,def
stop
end

ファイル操作
ファイル操作にはopenとcloseがあります。openの引数は以下のとおりです。

第一引数・・・1~99までの装置番号(5,6は使用しないことが推奨されているみたいです)
第二引数・・・ファイルパス
第三引数・・・ファイル操作モード

第二引数の書式は、file='ファイルパス'というように記述します。
第三引数は、ファイル操作モードで記述方法は以下のとおりです。

記述意味
status='old'読み取り
status='replace'書き込み

以下、例です。

character a*10
open(20,file='a.txt',status='old')
read(20,*) a
close(20)
write (*,*) a
stop
end

closeの引数には、open時に指定した任意の装置番号を指定します。
a.txtの中身は以下のようになっているとします。

サンプルです

実行結果は以下のとおりです。

サンプルで

character a*12とすると、サンプルですと表示されます。

readの使い方
read文はファイルを1行読み込みます。read文の使い方は以下のとおりです。

第一引数・・・open時に指定した装置番号
第二引数・・・フォーマット
第三引数・・・変数

ファイルから読み込んだ値を第三引数の変数に代入します。
以下のようなファイルa.txtがあったとします。

1,2,3,4
5,6
7,8,9,10

このファイルを読み込んで変数に代入してみます。以下、例です。



結果は以下のとおりです。



文字型操作
文字型の一部を取り出すのに変数名(開始位置:終了位置)という書き方があります。

character abc*5
data abc/'12345'/
write(*,*) abc(1:4)
stop
end

結果は以下のとおりです。

1234

文字列の連結をするには//を使用します。

character abc*3,def*3
data abc,def/'123','456'/
write(*,*) abc//def
write(*,*) abc//' '//def
stop
end

実行結果は以下のとおりです。

123456
123 456

if文
fortranのif文の書式は以下のとおりです。

if(真偽値) then
    !処理A
endif

if(真偽値) then
    !処理A
else
    !処理B
endif

if(真偽値) then
    !処理A
else if(真偽値) then
    !処理B
endif

比較演算子は以下が使えます。

比較演算子意味
le <未満
lt <=以下
ge >より大きい
gt >=以上
.eq. ==等しい
.ne. /=等しくない

.lt.や.gt.などを使う場合、変数との間にスペースがあっても問題なくビルドできました。以下、例です。

integer i,j
data i,j/3,2/
if(j .le. i) then
  write (*,*) j,i
end if
stop
end

実行結果は以下のとおりです。

2 3

サブルーチン
システムコール
システムコールとは、Windows環境ならコマンドプロンプトのコマンドを実行することができます。
システムコールの書式は以下のとおりです。

call system('コマンド')

以下、例です。

call system('dir')
stop
end