IDLでHelloWorld!

IDLでHelloWorld!

IDLの初期設定が終わっていない方は、以下の記事を参考にして、IDLの初期設定を行ってください。

参考記事
IDL インストール・ライセンス認証方法
IDL ターミナル・コマンドラインモードの設定方法
IDL おすすめカスタム設定
IDL パス設定


IDL メインプログラムを新規作成

IDLのパスが設定してあるディレクトリに、MyMain.proというメインプログラムを作成してください。
MyMain.proに以下のコードを入力してください。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; pro compile
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@HelloWorld
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; __MAIN__ 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HelloWorld
end

IDL プロシージャを新規作成

続いて、HelloWorld.proというプロシージャを作成してください。
HelloWorld.pro に以下のコードを入力してください。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; pro HelloWorld.pro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pro HelloWorld
    str = "Hello World!"
    print, str
end

このプロシージャは、変数strに文字列”Hello World!”を代入し、それを標準出力するというモノです。

続いて、ターミナルを起動して「idl」を入力した後、「IDL > 」モードになったら、以下のコマンドを入力してください。

.run MyMain  # MyMain.proをコンパイルして実行する

プログラムが実行された後にターミナル上に

Hello World!

と表示されればプログラムの実行成功です。

続いては自分で関数を作成して、プロシージャに組み込む方法について説明します。

IDL 関数を新規作成

GoodbyeWorld.proという名前の関数を作成してください。
GoodbyeWorld.proに以下のコードを入力してください。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Function GoodbyeWorld.pro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Function GoodbyeWorld, str
    str = str + " ,Goodbye World!"
    return, str
end

この関数は、引数strを受け取ったら、受け取ったstrに文字列” ,Goodbye World!”をお尻に付け加えてプロシージャに返すというモノです。

作成した関数をプロシージャに組み込みましょう。
HelloWorld.proを以下のように編集してください。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; function compile
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@GoodbyeWorld
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; pro HelloWorld.pro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pro HelloWorld
    str = "Hello World!"
    print, str
    print, GoodbyeWorld(str)
end

プロシージャの先頭で@GoodbyeWorldという行がありますが、これはこのプロシージャを実行する前にGoodbyeWorld.proをコンパイルするよという意味です。
この記述がないと、GoodbyeWorld.proはコンパイルされないので、エラーが吐かれると思いますのでご注意ください。

先程と同様にメインプログラムを実行してみてください。
ターミナル上に、

Hello World!
Hello World! ,Goodbye World!

と表示されればOKです。

まとめ

この記事では、IDLのメインプログラム、プロシージャ、関数の作り方と組み合わせ方を説明しました。
最後にメインプログラム、プロシージャ、関数の特徴についてまとめておきます。

名称 特徴
メインプログラム .runで実行する。endで終わる。
プロシージャ メインプログラムに@を使って紐付ける。proで始まり、endで終わる。
関数 プロシージャもしくはメインプログラムに@を使って紐付ける。functionで始まり、endで終わる。

最後までお読みいただき、ありがとうございました。

End of the Text


山田 武尊 (Takeru Yamada)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です