Loading
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 のビルドでのみ捕捉可能です。