struct_readを実行する前に確保しておく配列変数のサイズを読み込みます。
function struct_size( str_file, up_x, up_y, up_z, low_x, low_y, low_z, key
) result(status)
パラメータ
character(len=*), intent(in):: str_file
構造ファイルのファイル名を指定します。
integer, intent(out) :: up_x, up_y, up_z
第1領域の格子サイズがX方向、Y方向、Z方向の順に代入されます。
integer, intent(out) :: low_x, low_y, low_z
第2領域の格子サイズがX方向、Y方向、Z方向の順に代入されます。
integer, intent(out) :: key
物性値の種類の数が代入されます。
戻り値
関数が成功すると0が返ります。関数が失敗すると、エラーが返ります。返されるエラー値は次の通りです。
値 |
説明 |
-1 |
ファイルオープンに失敗しました。 |
-2 |
HDF5データセットのオープンに失敗しました。 |
-4 |
FdmToolIDに不整合があります。 |
-5 |
HDF5データセットの読み込み処理でエラーが発生しました。 |
-7 |
構造ファイルに不整合があります。格子オブジェクトと構造オブジェクトの大きさがそろっていません。 |
-15 |
メモリアロケーション処理でエラーが発生しました。 |
解説
struct_readの引数として渡す動的配列変数の確保を行うため、必要なサイズ情報を構造ファイルから読み込みます。構造ファイルの必要な部分だけを読み込むので、実行時間はわずかです。
参照