最初に重要な注意:バージョン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 です。これはおおまかには以下の部分から構成されます。