Fix link errors from leftover calls to the removed amplitude API

問題

amplitude 統一 (f736b63b) のマージ以降、master が fistr1 の最終リンクで失敗します:

/usr/bin/ld: libfistr.a(fstr_Spring.f90.o): undefined reference to `table_amp_'
/usr/bin/ld: libfistr.a(dynamic_mat_ass_bc_vl.f90.o): undefined reference to `table_dyn_'

原因

amplitude 統一 (f90c4217、f736b63b feature/amplitude-bc-consistency として マージ) は m_fstr::table_amp を fstr_get_amplitude に置換、 m_table_dyn::table_dyn を fstr_get_amplitude_dyn に改名し、ブランチ上に 存在した呼び出し元はすべて変換済みでした。しかしブランチ分岐後に作られた 別の 2 ブランチが旧 API の呼び出しを新規追加し、テキスト衝突なしに先に master へマージされていました:

  • fstr_Spring.f90 — SPRING の INCREMENTAL/AMPLITUDE (33ec0c30)
  • dynamic_mat_ass_bc_vl.f90 — VELOCITY の ROT_CENTER (f860bdfd)

消えたモジュール手続きへの call は暗黙の external 扱いになるため コンパイルは通り、fistr1 の最終リンクで初めて落ちます。

修正

取り残された 3 箇所を、f90c4217 が同じファイル内の兄弟箇所に適用したのと 同形に変換します:

  • spring 経路は factor = 1.d0 を渡して素の振幅 a(t) を受け取る (VALUE=RELATIVE / ABSOLUTE どちらでも旧 table_amp の出力と一致)
  • 回転速度経路は他の velocity 呼び出し元と同様に nominal 値を fstr_get_amplitude_dyn に渡す

検証

  • fresh RELEASE ビルドがリンク成功 (undefined reference 0 件)
  • implicit_spring_amp (spring 経路) と dyn_velo_rot_amp (回転速度経路) が commit 済み参照結果と byte 一致。同ディレクトリの兄弟ケースも同様

レビュー向け注記

この 2 経路が統一評価器を通ることで、f90c4217 の他の箇所と同じ意味論が 付随します (本 MR の新規判断ではなく、上記テストでは非発火):

  • spring 経路が TIME=TOTAL を尊重するようになる
  • テーブル開始時刻より前はクランプ (旧実装は外挿)

なお本件の類型は MR パイプライン (source branch をビルド) では検出できず、 マージ後 master のビルドでのみ捕捉可能です。

Merge request reports

Loading
Loading