このルーチンでは様々な行列が作成されます。何が作成作成されるかは論理値 mass、stiffness、buckling、rhsi、stiffonly で記述されます。例えば質量行列を計算しなければならない場合には mass=true、そうでない場合は mass=false となります。mass と stiffonly は長さ2のベクターとして定義されていることに注意してください。1つ目の要素は機械的計算、2番目の要素は熱的計算で使用されます。mass(1)=true の場合には機械的計算、または温度・変位の連成計算の機械部分の質量行列が決定され、同様に mass(2)=true の場合には熱的計算、または温度・変位の連成計算の熱部分の比熱行列が決定されます。機械的計算と熱的計算の間の違いに対する区別が必要です。機械的計算では質量行列を1度だけ行なえば十分ですが、比熱は温度に大きく依存するので比熱行列の計算は各イテレーションごとに行なう必要があります。以下では機械的剛性行列と熱伝導行列はたんに剛性行列、機械的質量行列と熱的熱容量行列は質量行列と呼ぶことにします。
このルーチンは全要素に対する2つの主要なループから構成されます。それぞれの必要に応じて1つ目のループは行列の機械的な部分を、2番目のループは行列の熱的な部分を受け持ちます。各ループは全要素にわたって繰り返され、要素の剛性行列と/または質量行列を機械的計算ではルーチン e_c3d、熱的計算では e_c3d からそれぞれ集めます。さらに集めたそれらをグローバルな剛性行列と/または質量行列に挿入し、全ての線形多点拘束を考慮します。同様に右辺側の行列も要素の右辺側と全点荷重から作成されます。
要素の剛性行列を組み立てるためには要素の積分点での材料剛性行列(dσ/dε)が必要になります。これらはサブルーチン results.f が最後に呼び出された時の保存データから再構成されます。質量行列では積分点での密度と/または比熱が必要になります。これらの数値は該当する温度範囲での値から補間して取得されます。他の材料データでは補間の必要はありません。