計算機実習Ⅰ
FORTRAN担当ファイル編集からプログラムのコンパイル・実行までの流れ
ファイル編集の方法は2通りある．どちらの手法でもよい．
どちらの手法も目の前のPCで作業する．

OS:windows■TeraTermで全て作業する方法（viエディタを使える人向け）

１．TeraTermでサーバへログイン．
２．TeraTermのファイル編集機能のviエディターを使ってプログラム編集．
３．TeraTerm上でプログラムをコンパイル，プログラム実行．

TeraTerm■ファイル編集をWindowsのエディタを使用する方法

１．WordPadやメモ帳にある編集機能を使ってプログラムを編集
WordPad メモ帳

２．作成したファイルをサーバへ転送
サーバ：UNIX(LINAX)FFFTP

WinSCP

３．TeraTermでサーバへログイン．
４．TeraTerm上でプログラムをコンパイル，プログラム実行．
TeraTerm

(2)UNIXパソコンへの接続「TeraTerm」の起動①ホスト 「nutech」②サービス 「SSH」

OK(2)UNIXパソコンへの接続(S+学籍番号6桁)「TeraTerm」使用方法④ユーザー名パスワード

OK「TeraTerm」の使用方法
接続に成功するとこのようになる

作成ファイルを自分で保存したいとき
Linuxサーバから，自分の目の前のPCへデータを転送することが可能

OS：UNIX(LINAX)

OS:windows
ファイルを移動

現在使用しているPC

FFFTP

作成したプログラムファイルを印刷・持ち帰ることができる

作成したプログラムファイルはこの中に保存されている

WinSCPkadai.f

大学内(1階にあるPC)

「FFFTP」の使用方法

ここまで自宅PCでFORTRANを使う/ ここまで

Teratermを用いた作業方法

Linuxを操作①UNIX PCの中の中身を確認する「 ls 」と入力

先週作成したファイルが表示される

本日の課題の準備
UNIX PCの中にフォルダやファイルを作成するフォルダ（ディレクトリ）を作成「 mkdir kadai」と入力
UNIX PCの中の中身を確認する「 ls 」と入力

先週作成したファイル+Kadai※作成したkadai が追加されるフォルダの中に移動してみる「 cd kadai 」と入力

TeraTermのviエディターを用いてファイル編集する場合⑥フォルダ（ディレクトリ内）にファイルを作成する(2つファイルを作成する)ファイルを作成 「 touch datain1.txt 」と入力
ファイルを作成 「 touch kadai.f」と入力

ファイル名⑦フォルダ（ディレクトリ内）の中身を確認する

datain1.txt Kadai.f「 ls 」と入力⑦ファイルを編集

2つのファイルが表示される「 vi datain1.txt 」と入力

WordPad，メモ帳を使用する場合「datain1.txt 」を新規に開くプログラムの作成（TeraTermのviエディターの場合）①ファイルを編集

vi datain1.txt②文字・数字を入力する。
入力するとき 「Esc」→ 「a」
削除するとき 「Esc」→ 「x」

datain1.txt

本日作成するデータ

N AGA OK A
学生番号を記入 1 7 2 9 9 9 9 92マスあける 5 2マス 67 . 1 2 8 . 2 01マスあける1マスあける
8 5 . 3 2マス 0 . 1
2マス 5 . 3 2 2 0 . 1
名前を記入

viエディタの場合

WordPad，メモ帳の場合

1行目

2行目
3行目
4行目
5行目
6行目

③ファイルを入力して終了する
・保存して終了「Esc」 → 「:wq!」
・保存しないで終了 「Esc」 → 「:q!」ファイル保存後，サーバへファイルを転送
kadaiのディレクトリ内に保存する

プログラムの作成（TeraTermのviエディターの場合）①ファイルを編集

vi kadai3.f
FORTRAN言語ファイル②文字・数字を入力する。
入力するとき 「Esc」→ 「a」
削除するとき 「Esc」→ 「x」

(1) 変数宣言

整数、実数の区別(宣言文で区別する)

プログラムでは、「整数 1」と「実数 1.0」は違う
プログラム例

宣言文

整数： INTEGER
実数： REAL
文字： CHARACTER
フローチャート
開始
整数型宣言 I , J,K
実数型宣言 A, B,C
文字型宣言 N, D

PROGRAM MAIN
6文字スペース

INTEGERI , J , K 整数
REAL
A , B , C 実数
CHARACTER N*20 , G*20
STOP
END

文字(20文字以内)

終了「*20」は20文字以内という意味

(3) 入出力(直接入力)■プログラム中でのデータの入力と出力(WRITE文)

フローチャート
開始
整数型宣言 I , J,K
実数型宣言 A, B,C
文字型宣言 N, D
I=1、A=1.0
N=NAKAOKA
I、A、Nの出力

終了

PROGRAM MAIN
INTEGERI , J ,KREAL
A , B,C
CHARACTER N*20 , G*10
6文字スペース

I=1
A=1.0
N=‘NAGAOKA’「I」、「A」、「N」に値を入力

WRITE(6,’(1I10)’) I
WRITE(6,’(1F10.2)’) A
WRITE(6,’(1A10)’) N「I」、「A」、「N」を画面に出力

STOPENDWRITE文のルール
整数文字

WRITE(6 , ‘( 2 I 5 )’)WRITE(6 , ‘( 2 A 5 )’)どこに出力するかどこに出力するか2つ5マス出力される結果

2345マス出力される結果

41

2つ55
67

1つ89 10

2つC I V0 7 ENV 0 7
123456

1つ789 10

2つ実数

WRITE(6 , ‘( 2 F 5.2 )’)どこに出力するか2つ5マス出力される結果

4 . 00123
1つ45

6 . 00678
2つ9 10WRITE(6 , ‘( 2 F 5.2 )’)「6」は画面に出力

プログラムを実行してみよう
プログラムをコンパイル「 f95 kadai.f 」を入力
ifort ?

プログラムを実行「 ./a.out 」 を入力すると実行
正しく実行されると、結果が表示される

11.00
NAGAOKA
このように表示されていれば良い(3) 入出力(ファイルから入力・出力)

データの読み込み

データの出力プログラム(FORTRAN言語)

datain1.txt

計算，データ処理など

datain2.txt

(3) 入出力(ファイルから入力)
プログラムでは、「OPEN文」と「REDA文」を使用する。
プログラム例

ファイル名「datain1.txt」というファイルを開く

OPEN(10,FILE=‘datain1.txt’)
READ(10,’(1A20)’) N
ファイルの文字を「N」、「G」に入力
READ(10,’(1A20)’) G
READ(10,’(2I3)’) I, J
ファイルから「I」、「J」に入力
CLOSE(10)5
番号を合わせる

I6
J「datain1.txt」というファイルを閉じる

Kadai.f
PROGRAM MAIN
INTEGERI , J,KREAL
A , B,C
CHARACTER N*20 , G*20
I=1
A=1.0
N=‘NAGAOKA’
WRITE(6,’(1I10)’) I
WRITE(6,’(1F10.2)’) A
WRITE(6,’(1A10)’) N
OPEN(10,FILE=‘datain1.txt’)
READ(10,’(1A20)’) N
READ(10,’(1A20)’) G
READ(10,’(2I3)’) I, J
CLOSE(10)OPEN(20,FILE=‘dataout1.txt’)
WRITE(20,’(2I5)’) I, J
WRITE(20,’(2A20)’) G, N
CLOSE(20)STOP
END(3) 入出力(ファイルから入力)
プログラム例OPEN(10,FILE=‘datain1.txt’)
READ(10,’(1A20)’) N
READ(10,’(1A20)’) G
READ(10,’(2I3)’) I, J
CLOSE(10)OPEN(20,FILE=‘dataout1.txt’)
WRITE(20,’(2I5)’) I , J
WRITE(20,’(1F5.1)’) A
WRITE(20,’(2A20)’) G , N
CLOSE(20)ファイルを編集

vi dataout1.txt

結果が出力されている

(4) 四則演算 ・ (5)組み込み関数■プログラム中での四則演算■組み込み関数(sin、logなど)

エクセルなどと同様である

エクセルなどと同様である

「＋」
「－」
「×」
「÷」
「2乗」

→→→→
→

「＋」
「－」
「*」
「/」
「**2」

「√ 」

→

「SQRT( )」

「sin」

→

「SIN( )」「cos」→

「COS( )」「e」→

「EXP( )」

プログラム例
I=1+10

I=1+10

J=102

J=10**2

A=1.0×2.0

A=1.0*2.0

B=1.0/2.0

B=1.0/2.0

プログラム例A 2
A=SQRT(2.0)

B  sin( 45   / 180)
B=SIN(45.0 * 3.14 / 180.0)

(4) 四則演算・(5)組み込み関数
開始
整数型宣言 I , J
実数型宣言 A, B
文字型宣言 C, D
I=1、A=1.0
C=NAKAOKA
I、A、Cの出力
I, J , A, B, C, D
を読み込む
I, J, A, B, C, Dの出力
I=1+10 J=102
A=1.0×2.0 B=1.0/2.0
I, J, A, Bの出力A 2
B=(45°×3.14/180°)
A, Bの出力終了

PROGRAM MAIN
INTEGERI , J,KREAL
A , B,CCHARACTER N*20 , G*20
I=1
A=1.0
N=‘NAGAOKA’
WRITE(6,’(1I10)’) I
WRITE(6,’(1F10.2)’) A
WRITE(6,’(1A20)’) N
OPEN(10,FILE=‘datain1.txt’)
READ(10,’(1A20)’) N
READ(10,’(1A20)’) G
READ(10,’(2I3)’) I , J
CLOSE(10)OPEN(20,FILE=‘dataout1.txt’)
WRITE(20,’(2I5)’) I, J
WRITE(20,’(1F5.1)’) A
WRITE(20,’(2A10)’) G, N
CLOSE(20)
STOP
END

プログラム例

I=I+J
J = 10**2
A = 2.0*SQRT(2.0)

(6)判定文(IF文)■プログラム中で判定・選択を行うもの
機能はエクセルの「IF文」と同様である。
プログラムでの書き方

IF(○.判定記号.○) THEN
(判定が正しい場合)
ELSE(判定が正しくない場合)
ENDIF
プログラム例IF(I .EQ. 10) THEN
J=1
ELSE
J=0
ENDIF

判定記号「=」 → EQ「<」 → LT「≦」 → LE「≧」 → GE「>」 → GT「≠」 → NE

「I=10」のとき「I=10」のときは、「J=1」「I=10」以外のときは、「J=0」本日の課題(プログラムを作成しなさい)
ファイル名： kadai_190528.f
PROGRAM MAIN
INTEGERI , J,T
REAL
A , B,C,D
REAL
E ,F ,R ,Y
CHARACTER N*20 , G*20
OPEN(20,FILE=‘datain1.txt’)
READ(20,’(1A20)’) N
READ(20,’(1A20)’) G
READ(20,’(2I3)’) I , J
READ(20,’(2F5.2)’) A , B
READ(20,’(2F5.1)’) C , D
READ(20,’(2F5.1)’) E , F
CLOSE(20)
ここを作成
STOPEND

以下を計算するプログラムを作成し、N, G, T, R ,Y を画面に出力しなさい

T= I + J *20
R= A / B + C + 1.0/2.0
Y= R + E + F**0.5■プログラムが完成したらＴＡの前で実行してみせる■ＴＡからＯＫをもらったら名簿にチェックを入れる■プログラムをFFTPへ自分のPCへ転送■WordPadにプログラムをコピーしてファイル作成■作成したファイルを犬飼へメール送信して提出
メール・アドレスはinu@nagaokaut.ac.jpである
メールは学生Webmailを使用して送信すること．

http://ipc.nagaokaut.ac.jp/GUIDE/user/squirrelmail/index.html