次へ 上へ 前へ 目次へ
次へ:Allocation of the fields 上へ:CalculiX CrunchiX USER'S MANUAL 前へ:Gap MPC. 目次へ

プログラムの構造

最初に重要な注意:バージョン2.8から環境変数 CCX_LOG_ALLOC が導入されました。1(デフォルトはゼロ)に設定すると CalculiX 実行中のフィールドの確保、再確保、解放に関する詳細な情報を得られます。セグメント・フォルトのデバッグ時にはこれは特に役立つでしょう。

CalculiX CrunchiX は(FORTRAN90からの要素を含む)FORTRAN77 と C で書かれています。C は基本的には自動でのメモリー確保、再確保のために使用されています。FORTRAN は私が最初に学んだ言語で、私がいまだに FORTRAN 中毒者であることは認めざるを得ません。必要な場所では C を使っていますが、できるだけ避けています。また全てを FORTRAN90 でコードするという選択肢もありますが、現在のところ品質の良いフリーの FORTRAN90 コンパイラーは存在しません。おおまかに言えば main ルーチンと main から呼ばれるルーチンのいくつかは C で書かれ、他は FORTRAN で書かれています。つまり FORTRAN から呼ばれる C ルーチンは無く、FORTRAN ルーチンは C ルーチンか FORTRAN ルーチンから呼ばれるということです。コード内に共通領域はありません。データの受け渡しはサブルーチン呼び出しの引数を通して行なわれます。引数は全てアドレス渡しで、値渡しはありません(1、2カ所はこのルールの例外があるかもしれませんが)。

CalculiX の main サブルーチンは ccx_2.10.c です。これはおおまかには以下の部分から構成されます。

各ステップ:
  1. (最初のステップのための前ステップデータを含む)ステップ入力データの読み込み
  2. 行列構造体の決定
  3. 方程式の充填と求解、結果のソート



サブセクション
次へ 上へ 前へ 目次へ
次へ:Allocation of the fields 上へ:CalculiX CrunchiX USER'S MANUAL 前へ:Gap MPC. 目次へ
guido dhondt 2016-03-08