hecmwST_matrixのメンバーALU(hecMAT%ALU)の削除提案

概要

hecmwST_matrix 型のメンバー ALU は、現在プロジェクト内で実質的に使用されていないため、削除を提案します。

調査結果

hecmwST_matrix%ALU の参照箇所をプロジェクト全体で検索した結果、以下の7箇所のみが該当しました。

ファイル 行 操作
hecmw1/src/common/hecmw_util_f.F90 L446 型定義(pointer メンバー宣言)
hecmw1/src/common/hecmw_util_f.F90 L817 nullify
fistr1/src/lib/m_fstr.f90 L916 allocate
fistr1/src/lib/m_fstr.f90 L928 ゼロ初期化(= 0.0d0)
fistr1/src/lib/m_fstr.f90 L977-978 deallocate
hecmw1/src/solver/matrix/hecmw_matrix_misc.f90 L214 deallocate
hecmw1/src/solver/matrix/hecmw_matrix_misc.f90 L822 ポインタコピー(dest%ALU => src%ALU)

すべての参照がメモリ管理(allocate / deallocate / nullify / ポインタコピー)のみであり、計算処理での読み書きは一切行われていません。

注: hecmw1/src/solver/precond/bilu/ 配下のプリコンディショナモジュールにもローカル変数 ALU が存在しますが、これらは hecmwST_matrix%ALU とは無関係なモジュールローカル変数・サブルーチン引数です。

問題点

  • NDOF*NDOF*N サイズの配列が確保・ゼロ初期化された後、一度も参照されずに解放されており、メモリの無駄遣いが発生しています。
  • 型定義に不要なメンバーが残っていることで、コードの可読性・保守性が低下しています。

提案内容

以下の変更を段階的に行うことを提案します。

  1. hecmwST_matrix の型定義から ALU メンバーを削除
  2. 関連するすべての allocate / deallocate / nullify / ポインタコピー処理を削除

対象ファイル

  • hecmw1/src/common/hecmw_util_f.F90
  • fistr1/src/lib/m_fstr.f90
  • hecmw1/src/solver/matrix/hecmw_matrix_misc.f90

備考

  • C/C++ 側には hecmwST_matrix の構造体定義自体が存在せず、影響はありません。
  • 外部プラグインやユーザーコードで hecMAT%ALU を参照している可能性がある場合は、非推奨期間を設けることも検討してください。