fstr_param は global 変数にすべきか
module m_fstr では type fstr_param が定義され、モジュール変数として fstrPR が宣言されています。
!> GLOBAL VARIABLE INITIALIZED IN FSTR_SETUP
type( fstr_param ),target :: fstrPRしかしながら、使われ方は方針がまちまちで混乱があります。
- サブルーチンの引数に fstrPR を与えている
- use m_fstr したうえで引数で同じ名前を使っているものもあり、指すものが結局は同じであっても混乱する
- サブルーチンの引数に与えずにモジュール変数を使っている
- サブルーチンの引数に fstrPARAM という名前を使っている
- しかしながら、サブルーチンの中ではモジュール変数の fstrPR を使っているものもある
構造体の意味としては solution_type や nlgeom などをメンバに含むため、プログラムのグローバル変数というよりも解析固有のパラメータを集めたものと考えられます。
提案としては、
- モジュール m_fstr の変数 fstrPR は廃止する
- 構造体 fstr_solid などと同様にモジュール m_fstr_main で生成する
- サブルーチンの引数に明示する
と考えていますが、いかがでしょうか。ご意見をお聞かせください。