(57)【要約】【課題】Ｃ＋＋で記述されたプログラムにおいて、ＦＯＲＴＲＡＮで記述されたプログラムを呼出して利用することである。【解決手段】ＦＯＲＴＲＡＮで記述されたプログラム内に、データの形式および取扱い形式をＦＯＲＴＲＡＮのデータ形式に変更する初期化ルーチンを設け、Ｃ＋＋により記述されたプログラムから前記初期化ルーチンを呼出して、入力されたデータの形式および取扱い形式を変更し、ＦＯＲＴＲＡＮで記述されたプログラム内のサブルーチンを呼出して形式および取扱い形式が変更されたデータに基づいて計算を行うダイナミックリンクライブラリとして構成する。また、ＦＯＲＴＲＡＮプログラム内のサブルーチン（関数）の宣言文を、前記ダイナミックリンクライブラリ内のサブルーチン（関数）を宣言する宣言文とし、この宣言文をＦＯＲＴＲＡＮでのデータ形式をＣ＋＋で取扱うことができる形式に変更してして利用するサブルーチンの宣言文とする。【選択図】    図１
2004310539.tif 000002
【特許請求の範囲】
【請求項１】
ＦＯＲＴＲＡＮにより記述された冷媒の熱物性の算出プログラム内に、オブジェクト指向型言語により記述されたプログラムから渡されたデータの形式および取扱い形式を前記ＦＯＲＴＲＡＮによるデータの形式に変更してセットする初期化ルーチンを設けたことを特徴とする冷媒の熱物性の算出プログラム。
【請求項２】
ＦＯＲＴＲＡＮにより記述された冷媒の熱物性の算出プログラム内に、ＣまたはＣ＋＋により記述されたプログラムから渡されたデータの形式および取扱い形式を前記ＦＯＲＴＲＡＮによるデータの形式に変更してセットする初期化ルーチンを設け、ＣまたはＣ＋＋により記述されたプログラムから初期化ルーチンが呼出されて、ＣまたはＣ＋＋により記述された前記プログラムから渡されたデータの形式および取扱い形式を変更してセットし、
ＣまたはＣ＋＋により記述された前記プログラムにより冷媒の熱物性の算出を行うサブルーチンが呼出されて、セットされた前記データに基づいての算出計算を行うことを特徴とする請求項１記載の冷媒の熱物性の算出プログラム。
【請求項３】
ＣまたはＣ＋＋により記述されたプログラムから呼出し可能なダイナミックリンクライブラリとして構成したことを特徴とする請求項２記載の冷媒の熱物性の算出プログラム。
【請求項４】
プログラム内に記述されたサブルーチン（関数）の宣言文を、請求項２記載の冷媒の熱物性の算出プログラム内のサブルーチン（関数）を宣言する宣言文とし、この宣言文をＦＯＲＴＲＡＮでのデータ形式をＣまたはＣ＋＋で取扱うことができる形式に変更して利用するサブルーチンの宣言文としたことを特徴とする熱交換量を演算するためのシミュレーションプログラム。
【請求項５】
ＦＯＲＴＲＡＮにより記述された冷媒の熱物性の算出プログラム内に設けた初期化ルーチンにデータを渡してデータの形式および取扱い形式を変更してセットし、前記冷媒の熱物性の算出プログラム内の算出ルーチンを呼出してセットされたデータに基づいて計算を行わせることを特徴とする請求項４記載の熱交換量を演算するためのシミュレーションプログラム。
【請求項６】
請求項１乃至請求項５のいずれか１つに記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＦＯＲＴＲＡＮなどの手続き指向型言語で記述された冷媒の熱物性の算出プログラムを、ＣまたはＣ＋＋で記述された熱交換量のシミュレーションプログラムにより関数として呼出して利用するプログラムに関するものである。
【０００２】
【従来の技術】
従来、冷媒の熱物性の算出プログラムとしては、米国のＮＩＳＴ（Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  Ｓｔａｎｄａｒｄ  Ｔｅｃｈｎｏｌｏｇｙ、国家標準・技術研究所）で作成されたＲＥＦＰＲＯＰがもっとも多用されており、このＲＥＦＰＲＯＰは、手続き指向型言語であるＦＯＲＴＲＡＮで記述されたプログラムである。ＲＥＦＰＲＯＰの発祥当時、学術計算プログラムのほとんどは、ＦＯＲＴＲＡＮで記述されていたため、ＲＥＦＰＲＯＰも例外ではなくＦＯＲＴＲＡＮで記述されていた。そして、現在も従来のプログラムの継承の問題や実行速度の有利さなどの理由から、ＦＯＲＴＲＡＮによる記述のまま、現在のバージョン（Ｖ７．０）まで更新されている。
【０００３】
また、昨今、コンピュータのプログラムの主流は、旧来の手続き指向型言語からオブジェクト指向型言語へと移行してきている。Ｃ＋＋などのオブジェクト指向型言語は、レコード（インスタンス）を、引数（事象）や引数に対するメソッド（処理方法）とともにクラスに定義し、クラスに定義されたメソッドによりレコードを処理するという点で手続き指向型言語とは相違し、計算方法（メソッド）などが変更になった場合、または、新たな事象による影響を追加する場合でも、クラス定義を変更または追加するだけで、基幹プログラムを変更する必要がないという特徴を持つ。このような場合、手続き指向型言語では、基幹プログラムに記述された処理をルーチンを変更、ひいては基幹プログラムを変更しなければならない。
また、Ｃ＋＋などのオブジェクト指向型言語は、共通の引数をスーパー（上位）クラスとして定義し、スーパークラスで定義された引数を有する複数のサブ（下位）クラスで引用することができる。さらに、前記スーパークラスとして、具体的なレコードを持たず、引数やメソッドのみからなる抽象クラスを定義することもできる。
【０００４】
例えば、冷凍サイクルの熱交換量のシミュレーションプログラムをオブジェクト指向型言語により記述する場合、本願の出願人がすでに出願した特願２００３−１００７００号に記載したように、熱交換量に関係する各構成要素をクラスとして定義する。また、各クラス（構成要素）に択一的な複数の要因が想定される場合、例えば、圧縮機クラスのように圧縮機の種類によってメソッドが相違するような場合には、共通の事象（引数）のみを抽出したスーパークラスで圧縮機クラスを定義し、そのサブクラスとして圧縮機の種類別のクラスを定義する。
【０００５】
【発明が解決しようとする課題】
上述のような状況の中で、Ｃ＋＋などのオブジェクト指向型言語とＦＯＲＴＲＡＮなどの手続き指向型言語とでは、データ伝達形式、データ蓄積形式、コンパイラの記述法が相違する。例えば、関数を呼出す場合、Ｃ＋＋では、基本的には、引数として値を渡すが、ＦＯＲＴＲＡＮでは、引数を格納したアドレスを示すポインタで値を引き渡すという相違がある。また、文字列についても、Ｃ＋＋では、任意の長さの文字列に終端を表すコードを付加して取り扱われるが、ＦＯＲＴＲＡＮでは、文字列を固定の長さに宣言して取り扱われ、文字列の終端を表すコードは付加されない。さらに、関数名がコンパイルによって多少変更されるが、Ｃ＋＋とＦＯＲＴＲＡＮとでは、その変更のしかたが相違する。
これらの相違からＣ＋＋により記述されたプログラムから、ＦＯＲＴＲＡＮで記述されたプログラム（関数）を呼出すことは困難であるという問題点があった。したがって、ＲＥＦＰＲＯＰを利用するためには、開発の点で不利な面が多い手続き指向型言語によるプログラムによらなければならないという問題点があった。
【０００６】
【課題を解決するための手段】
本発明は、以上のような問題点を解決するためになされたもので、ＦＯＲＴＲＡＮにより記述された冷媒の熱物性の算出プログラム内に、ＣまたはＣ＋＋により記述されたプログラムから入力されたデータの形式および取扱い形式を前記ＦＯＲＴＲＡＮよるデータの形式に変更してセットする初期化ルーチンを設け、ＣまたはＣ＋＋により記述された前記プログラムから前記初期化ルーチンを呼出して、ＣまたはＣ＋＋により記述された前記プログラムから入力されたデータの形式および取扱い形式を変更してセットし、ＣまたはＣ＋＋により記述された前記プログラムから冷媒の熱物性の算出を行うサブルーチンを呼出して、形式および取扱い形式が変更されたデータに基づいて計算を行うダイナミックリンクライブラリとして構成する。
また、熱交換量を演算するためのシミュレーションプログラム内に記述されたサブルーチン（関数）の宣言文を、前記冷媒の熱物性の算出を行うダイナミックリンクライブラリ内のサブルーチン（関数）を宣言する宣言文とし、この宣言文をＦＯＲＴＲＡＮでのデータ形式をＣまたはＣ＋＋で取扱うことができる形式に変更してして利用するサブルーチンの宣言文とする。
【０００７】
【発明の実施の形態】
本発明の一実施形態例として、前出の本願の出願人がすでに出願した熱交換量のシミュレーションプログラムの構成方法に適用する場合について説明する。
まず、図３に基づいて、熱交換量のシミュレーションプログラムの全体の構成を簡単に説明する。この図３において、冷凍サイクル（Ａ０１）は、冷凍サイクル構成部品クラス（Ａ０２）を集約して構成されている。この冷凍サイクル構成部品クラス（Ａ０２）と相互作用する動作流体クラスとして、空気クラス（Ａ０３）と冷媒クラス（Ａ０４）が定義されている。また、構成部品を断熱材で覆う場合も考慮して、冷凍サイクル構成部品クラス（Ａ０２）は、断熱材クラス（Ａ０５）を集約して構成されている。さらに、冷凍サイクル構成部品クラス（Ａ０２）の継承クラスとして、圧縮機クラス（Ａ０６）、管クラス（Ａ０７）、熱交換器クラス（Ａ０８）が定義されている。
【０００８】
前記圧縮機クラス（Ａ０６）は、圧縮機の種類の違いなどを反映させるために抽象クラスとして宣言され、この圧縮機クラス（Ａ０６）の性質を継承した圧縮機の種類ごとのレシプロ式クラス（Ａ０９）、スクロール式クラス（Ａ１０）、ロータリー式クラス（Ａ１１）がサブクラスとして定義されている。
同様に、管クラス（Ａ０７）も抽象クラスとして宣言され、管の種類別の直管クラス（Ａ１２）、曲がり管クラス（Ａ１３）などがサブクラスとして定義されている。
【０００９】
このようにして定義されたクラスごとに、そのクラスにおいて起こる現象を計算する関数がメソッドとして実装されている。例えば、圧縮機クラス（Ａ０６）には、出口冷媒状態を計算する関数と、流体を圧縮する場合の放熱量を計算する関数がメソッドとして実装されている。他のクラスにおいても、それぞれのクラスにおいて生じる現象に基づいたメソッドが実装されている。
【００１０】
次に、以上で説明した構成のうち、本願の発明による冷媒クラス（Ａ０４）について詳述する。まず、プログラムの作成について説明する。
プログラムの作成は、（１）ＦＯＲＴＲＡＮで記述された冷媒の熱物性の算出プログラムＲＥＦＰＲＯＰに変更を加えてコンパイルし、Ｃ＋＋で呼出すことができるダイナミックリンクライブラリ（ＤＬＬ）を作成することと、（２）Ｃ＋＋で記述した熱交換量のシミュレーションプログラム内に、（１）で作成したＤＬＬ内のサブルーチンにより処理を行う冷媒クラス（Ａ０４）を作成する。
以下、これらを詳細に説明する。
【００１１】
（１）ＦＯＲＴＲＡＮで記述された冷媒の熱物性の算出プログラムであるＲＥＦＰＲＯＰに変更を加えてコンパイルし、Ｃ＋＋で呼出すことができるダイナミックリンクライブラリを作成する方法を説明する。
▲１▼まず、文字配列からＦＯＲＴＲＡＮの整数配列に引数を変更して初期化するための次のサブルーチンを、ＲＥＦＰＲＯＰのｓｅｔｕｐ（）ｂｏｄｙの外側に付加する。
2004310539.tif 000003
2004310539.tif 000004
このプログラムは、図２に示す流れ図をＦＯＲＴＲＡＮ言語で記述したものである。このプログラム中、ＮＣは冷媒の構成要素の数である。単一の冷媒の場合は１であり、２種類の冷媒が混合されている場合は２であり、３種類の冷媒が混合されている場合は３であり、以下同様に冷媒を構成する冷媒の種類の数を整数で表す。ＲＮＵＭは冷媒の種類を表す値である。例えば、冷媒がＲ２２である場合は２２、Ｒ３２である場合は３２、Ｒ１２５である場合は１２５、Ｒ１３４ａである場合は１３４、Ｒ３２とＲ１２５の混合である場合は４１０、Ｒ３２とＲ１２５とＲ１３４ａの混合である場合には４０７であり、ＲＥＦＰＲＯＰ内で定義されている冷媒を適当な整数で表す値である。
【００１２】
▲２▼ダミーＡＲＧＵＭＥＮＴＳの名前に変更して、ＲＥＦＰＲＯＰのコンパイル構造に加える。
例えば、ＲＥＦＰＲＯＰの中には、ＴＱＦＬＳＨ（）という次のサブルーチンがある。
2004310539.tif 000005
このサブルーチンの第１行目（サブルーチンの宣言）の直後に次の注釈文１行を追加する。
！ＤＥＣ＄ＡＴＴＲＩＢＵＴＥＳ  ＤＬＬＥＸＰＯＲＴ：：ＴＱＦＬＳＨ
ただし、第１行目の宣言文の引数は、次のようにすべて大文字に変更する。
Ｓｕｂｒｏｕｔｉｎｅ  ＴＱＦＬＳＨ（Ｔ，Ｑ，ＫＱ，Ｐ，Ｄ，ＤＩ，ＤＶ，Ｘ，Ｙ，Ｅ，ＣＶ，ＣＰ，Ｗ，ＩＥＲＲ，ＨＥＲＲ）
Ｃ＋＋による熱交換量のシミュレーションプログラムから呼出すＲＥＦＰＲＯＰ内の他のサブルーチンについても、第１行目の直後に、対応するサブルーチン名の同様の注釈文１行を追加する。
【００１３】
▲３▼前述の▲１▼および▲２▼の変更を加えたＲＥＦＰＲＯＰのソースをコンパイルおよびリンクし、Ｃ＋＋から呼出し可能な実行ファイルであるＮＩＳＴＤＬＬ．ＤＬＬを作成する。
【００１４】
（２）Ｃ＋＋で記述した熱交換量のシミュレーションプログラム内に、（１）で作成したＮＩＳＴＤＬＬ．ＤＬＬ内の関数（サブルーチン）により処理を行う冷媒クラス（Ａ０４）を作成する方法を説明する。
▲１▼まず、Ｃ＋＋で記述した熱交換量のシミュレーションプログラム内の関数宣言に、ＲＥＦＰＲＯＰ内のサブルーチンを宣言する次の宣言文１行を追加する。
ｅｘｔｅｒｎ  “Ｃ”＿ｄｅｃｌｓｐｅｃ（ｄｌｌｉｍｐｏｒｔ）  ｖｏｉｄ  ＿ｓｔｄｃａｌｌ  ＴＱＦＬＳＨ  ＳＵＢＮＡＭＥ  （ａｒｇｕｍｅｎｔｓ）；
また、データの伝送方法は次の変換を通して行う。
Ｉｎｔｅｇｅｒ−＞ｉｎｔ＆
Ｒｅａｌ−＞ｄｏｕｂｌｅ＆
Ｃｈａｒａｃｔｅｒ−＞ｃｈａｒ＊
Ｉｎｔｅｇｅｒ  ａｒｒａｙ−＞ｉｎｔ  ＸＸ［］
Ｒｅａｌ  ａｒｒａｙ−＞ｄｏｕｂｌｅ  ＸＸ［］
ここで、ＸＸは、変数名を意味する。
具体的には、熱交換量のシミュレーションプログラム中の宣言文
ｓｕｂｒｏｕｔｉｎｅ  ＴＱＦＬＳＨ（Ｔ，Ｑ，Ｚ，ＫＱ，Ｐ，Ｄ，ＤＩ，ＤＶ，Ｘ，Ｙ，Ｅ，Ｈ，Ｓ，ＣＶ，ＣＰ，Ｗ，ＩＥＲＲ，ＨＥＲＲ）
を、
ｅｘｔｅｒｎ  ”Ｃ”  ＿ｄｅｃｌｓｐｅｃ（ｄｌｌｉｍｐｏｒｔ）  ｖｏｉｄ  ｓｔｄｃａｌｌ  ＴＱＦＬＳＨ（ｃｏｎｓｔ  ｄｏｕｂｌｅ  ＆Ｔ，  ｃｏｎｓｔ  ｄｏｕｂｌｅ  ＆  Ｑ，ｃｏｎｓｔ  ｄｏｕｂｌｅ  ＆Ｚ［］，  ｃｏｎｓｔ  ｄｏｕｂｌｅ  ＆ＫＱ，  ｄｏｕｂｌｅ  ＆Ｐ  ，ｄｏｕｂｌｅ  ＆Ｄ，          ｄｏｕｂｌｅ  ＆ＤＬ，          ｄｏｕｂｌｅ  ＆ＤＶ，          ｄｏｕｂｌｅ  ＆Ｘ［］，  ｄｏｕｂｌｅ  ＆Ｙ［］，  ｄｏｕｂｌｅ  ＆Ｅ，  ｄｏｕｂｌｅ  ＆Ｈ，  ｄｏｕｂｌｅ  ＆Ｓ，  ｄｏｕｂｌｅ  ＆ＣＶ，  ｄｏｕｂｌｅ  ＆ＣＰ，  ｄｏｕｂｌｅ  ＆Ｗ，      ｉｎｔ  ＆ＩＥＲＲ，  ｃｈｒ＊ＨＥＲＲ，            ｉｎｔ  ＨＥＲＲ＿ＬＥＮ）；
に書き換えて、データ形式を変更する。
▲２▼前述の▲１▼の変更を加えた熱交換量のシミュレーションプログラムのソースをコンパイルおよびリンクしてシミュレーションプログラムの実行ファイルを作成する。
【００１５】
次に、以上で作成した熱交換量のシミュレーションプログラムからＮＩＳＴＤＬＬ．ＤＬＬ内の関数を呼出すことにより、冷媒クラス（Ａ０４）の熱交換量のシミュレーションを行う作用について説明する。
図１に示すように、まず、冷媒の構成要素の数（以下、冷媒構成要素数と呼ぶ）ＮＣと冷媒の種類を表す値（以下、冷媒種類値と呼ぶ）ＲＮＵＭを整数変数で入力する。次に、データの初期化のために、前述の（１）の▲１▼でＲＥＦＰＲＯＰに付加した初期化サブルーチンＩＮＩＴＩＡＬを呼出し、冷媒構成要素数ＮＣと冷媒種類値ＲＮＵＭに基づくデータの初期化を行いセットする。次に、ＮＩＳＴＤＬＬ．ＤＬＬ内のサブルーチンを呼出して冷媒の熱物性の算出結果を得る。
【００１６】
次に、データの初期化の作用を図２に基づいて詳細に説明する。
ＮＩＳＴＤＬＬ．ＤＬＬのサブルーチンＩＮＩＴＩＡＬは、冷媒構成要素数ＮＣおよび冷媒種類値ＲＮＵＭの入力を受けて、まず冷媒構成要素数ＮＣの値が１であるか否かを判定する。ＹＥＳである場合は、冷媒種類値ＲＮＵＭが２２であるか否かを判定し、ＹＥＳである場合は、ＮＩＳＴＤＬＬ．ＤＬＬ（ＲＥＦＰＲＯＰ）が冷媒の種類を参照する１つ目の変数であるＨＦＩＬＥ（１）に’Ｒ２２．ＦＬＤ’の文字列を格納する。ＮＯである場合には、冷媒種類値ＲＮＵＭが３２であるか否かを判定し、ＹＥＳである場合は、前記変数ＨＦＩＬＥ（１）に’Ｒ３２，ＦＬＤ’の文字列を格納する。以下、同様に、冷媒種類値ＲＮＵＭが、１２５か１３４であるか否かを判定して、該当する冷媒種類を表す文字列を前記変数ＨＦＩＬＥ（１）に格納する。冷媒種類値ＲＮＵＭが、２２，３２，１２５，１３４のどれにも該当しなかった場合には、冷媒種類ＲＮＵＭが不正である旨の警告情報をセット、すなわち、変数ｉｅｒｒに−１を代入し、変数ｈｅｒｒに’Ｎｕｍｂｅｒ  ｏｆ  ｄｅｆｒｉｇｅｒａｎｔ  ｉｓ  ｗｒｏｎｇ！’の文字列を代入する。
【００１７】
次に、前述の冷媒構成要素数ＮＣが１でなかった場合は、冷媒構成要素数ＮＣが２であって冷媒種類値ＲＮＵＭが４１０であるか否かを判定し、ＹＥＳである場合は、前記変数ＨＦＩＬＥ（１）に’Ｒ３２．ＦＬＤ’を格納するとともに、ＮＩＳＴＤＬＬ．ＤＬＬ（ＲＥＦＰＲＯＰ）が冷媒の種類を参照する２つ目の変数であるＨＦＩＬＥ（２）に’Ｒ１２５．ＦＬＤ’の文字列を格納する。
ＮＯである場合には、冷媒構成要素数ＮＣが３であって冷媒種類値ＲＮＵＭが４０７であるか否かを判定し、ＹＥＳである場合は、前記変数ＨＦＩＬＥ（１）に’Ｒ３２．ＦＬＤ’を前記変数ＨＦＩＬＥ（２）に’Ｒ１２５．ＦＬＤ’の文字列を格納するするとともに、ＮＩＳＴＤＬＬ．ＤＬＬ（ＲＥＦＰＲＯＰ）が冷媒の種類を参照する３つ目の変数であるＨＦＩＬＥ（３）に’Ｒ１３４ａ．ＦＬＤ’の文字列を格納する。
さらに、ＮＯである場合には、冷媒構成要素数ＮＣまたは冷媒種類ＲＮＵＭが不正である旨の警告情報をセット、すなわち、変数ｉｅｒｒに−２を代入し、変数ｈｅｒｒに’Ｎｕｍｂｅｒ  ｏｆ  ｍｉｘｔｕｒｅ  ｉｓ  ｗｒｏｎｇ！’の文字列を代入する。
冷媒構成要素数ＮＣと冷媒種類値ＲＮＵＭの判定が終了したら、ＮＩＳＴＤＬＬ．ＤＬＬのＳＥＴＵＰモジュールを呼出して、ｎｃ，  ｈｆｉｌｅｓ，  ｈｒｆ，  ｉｅｒｒ，  ｈｅｒｒの値を必要なメモリ内にセットする。
【００１８】
データをメモリ内にセットしたら、ＮＩＳＴＤＬＬ．ＤＬＬ内のサブルーチン（関数）を呼出して計算を行い、ＲＮＵＭに対応する冷媒の熱物性の算出結果を得る。
【００１９】
以上の実施例では、冷媒としてＲ２２、Ｒ３２、Ｒ１２５、Ｒ１３４、Ｒ４１０およびＲ４０７の熱物性の算出が必要な場合の例であって、ＲＥＦＰＲＯＰに付加するＩＮＩＴＩＡＬプログラムに、必要に応じ他の種類の冷媒の判定を追加することもできる。ただし、ＲＥＦＰＲＯＰにその追加しようとする冷媒の熱物性の算出を行えるように、データまたはサブルーチンが組み込まれているか、あるいは組み込む必要がある。
【００２０】
以上の実施例では、米国のＮＩＳＴのＲＥＦＰＲＯＰをＣ＋＋から呼出す構成について説明したが、本発明はこれに限られるものではなく、ＣまたはＣ＋＋言語により記述されたプログラムから、ＦＯＲＴＲＡＮ言語により記述されたプログラムを呼出す場合に応用できるものである。
【００２１】
【発明の効果】
本発明は、以上のように構成することにより、ＣまたはＣ＋＋により記述されたプログラムから、ＦＯＲＴＲＡＮで記述されたプログラム（関数）を呼出すことができるので、従来のＦＯＲＴＲＡＮによる優れたプログラムを、移植などの大きな手間をかけることなくＣまたはＣ＋＋によるプログラムから利用することができるという効果を有するものである。
【図面の簡単な説明】
【図１】本発明により、ＲＥＦＰＲＯＰのサブルーチンを呼出す場合の概要を示す流れ図である。
【図２】図１におけるＲＥＦＰＲＯＰに付加するサブルーチンＩＮＩＴＩＡＬを示す流れ図である。
【図３】本出願人がすでに提案した熱交換量のシミュレーションプログラムを示すブロック図である。
【図１】
2004310539.tif 000006
【図２】
2004310539.tif 000007
【図３】
2004310539.tif 000008