情報処理概論Ⅰ(Fortran)
|
|||||||||||||
![]() |
|||||||||||||
>前準備
>本学の情報処理センターで,Fortranを使う時の約束 UNIXコマンド一覧 よく使うコマンド集 pwd: 現在のフォルダ(ディレクトリ)の場所を返す。 ls: (現在いる)フォルダのファイルをリストアップしてくれるコマンド。 cd : change directory、フォルダ(ディレクトリ)移動の際のコマンド。例)ZドライブにあるJOUHOUというフォルダに移動したい場合、「cd JOUHOU」と入力 gfortran: 作成したFortranスクリプトをコンパイルする。 簡単なFortranスクリプトにチャレンジ 1.Terapadを立ち上げて、以下のスクリプトを書いてみる。 C---- ここから ---- C234567 real k write(*,*) "Hello world!" do k=1,10 write(*,*) k enddo stop end C---- ここまで ---- 2.書き込めたら、名前をつけて「JOUHOU」フォルダに保存する。ここでは名前を sample1.for とする。 3.Windows上で見ると、 sample1.for.txt となっている。「.txt」という拡張子は消したい。 そこでファイルを指定して、右クリック→名前の変更 として、「.txt」を消す。ショートカットキーのF2をつかってもよい。 4.Cygwin Terminal64を立ち上げる。 5.cd /cygdrive/z/JOUHOU と入力 6.ls コマンドでsample1.forがあることを確認する。 7.gfortran sample1.for と入力する。(コンパイル) 8.ls コマンドで a.exe が作成されたことを確認する。 9../a.exe と入力するとターミナル内に 「Hello world!」 と数字の1~10までが表示される。 |
|||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
>授業で使うファイル:「右クリック→名前をつけて保存」でZドライブの情報処理概論用のフォルダにファイルを保存すること 使用するファイルは Day of Year、深度、 CTDで計測した塩分、地上で計測した塩分、 塩分比、観測点番号、の345行x6列のデータを示したテキストファイル。 Fortranスクリプトによる読み込みは以下のように行う。 ※このまま流行のコピペをしてもたぶんできませんよと。。 ~~~~ここから~~~~ parameter(num=345) real doy(num), dpt(num), csal(num), bsal(num), ss(num), stn(num) open(10,file="./data.txt") do k=1,345 read(10,*) doy(k),dpt(k),csal(k),bsal(k),ss(k),stn(k) write(*,*) doy(k),dpt(k),csal(k),bsal(k),ss(k),stn(k) enddo close(10) stop end ~~~~ここまで~~~~ |
今回使うのは CTD(Conductivity-Temperature-Depth)で計測された塩分データと ニスキンボトルで得られた海水を陸上で調べた塩分データ 海洋学実習Ⅱ:ニスキンボトルから採水しているところ |
||||||||||||
このスクリプトは主に3つに分けることができる。 ①宣言文 1~2行目:あらかじめ、こういう変数名・こういうデータを扱いますよ、という宣言。 integer (整数型) real (実数型) character (文字型) ※ちなみに変数icは、前回でてきた暗黙の型宣言で、整数として扱われるので宣言文にはでてこない。 ②データ入力部分 ③stop+end: 絶対にわすれてはだめ。 ※上のスクリプトは、データの行数を事前に知らなくてもできるようにしています。 ※最終的に変数icにデータの行数が格納されることになります。 以降の授業ではここで作成したスクリプトを改良していく形で進めます。 |
|||||||||||||
DOループを使わない方法もある。あらかじめデータの数がわかっていない場合はこっちのほうが便利。 ~~~~ここから~~~~ parameter(num=345) real doy(num), dpt(num), csal(num), bsal(num), ss(num), stn(num) ic=1 open(10,file="./data.txt") 1000 read(10,*,end=555) doy(ic),dpt(ic),csal(ic),bsal(ic),ss(ic),stn(ic) write(*,*) doy(ic),dpt(ic),csal(ic),bsal(ic),ss(ic),stn(ic) ic=ic+1 goto 1000 555 ic=ic-1 close(10) stop end ~~~~ここまで~~~~ |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() おさらいと戦略 |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
接線の方程式を思い出すこと。x-f(x)=0で表せる式を解く。 サンプルプログラムのダウンロード 課題のサンプルプログラム(平方根を求める) |
|||||||||||||
戻る↑ | |||||||||||||
![]() |
|||||||||||||
戻る↑ | |||||||||||||
~おまけ~ |