私はhdf5 Fortranライブラリで動作するモジュールを設計しています。このモジュールには、さまざまな型と形状の配列をファイルに読み書きするためのサブルーチンが含まれています。サブルーチン引数として未知のランクの配列
配列の形状と型に関係なくwriteToHDF5(filepath、array)を呼び出せます。私はインターフェイスが異なるタイプでこれを達成するために使用されなければならないことを認識しています。私はしかし、配列の仮定された形状を持つことが可能かどうか疑問に思っています。
アレイは、このような
integer(kind=4), dimension(*),intent(in) :: array
として定義された二次元アレイは、これがうまくいく渡された場合。配列の各シェイプに対して別々のサブルーチンを作成せずにこれを行う方法はありますか?
'dimension(*)'はサイズとみなされ、形状とはみなされません。 'integer(kind = 4)'は悪いです、それは移植可能に4バイトを意味しません。 –
'writeToHDF5'の実際の定義は何ですか?あなたはそれをまったく変更できますか? –
Fortran 2015に*想定ランク*と呼ばれるものがあります。https://www.ibm.com/support/knowledgecenter/SSGH4D_15.1.0/com.ibm.xlf151.aix.doc/language_ref/assumedrankobject.html便利です主にC interop用です。 –