次へ 上へ 前へ 目次へ
次へ:allocate 上へ:Allocation of the fields 前へ:openfile 目次へ

readinput

このサブルーチンは入力を読み込みそれをフィールド inpc に保存します。保存前に以下の処理が行なわれます。

さらにセットの数が nset_ に、inpc 内の行数が nline に保存されます。変数 nset_ は以降のメモリー確保で使用されます。最後に inpc を読み込む順番がフィールド ipoinp と inp に保存されます。またキーワードカードのいくつかは他の物のものより先に読み込むことができません。例えば *SOLID SECTION カードで参照される材料は *MATERIAl カードでの材料定義が読み込まれる前に解釈することはできません。どの順番にキーワードカードを読み込まなければならないかはサブルーチン keystart.f のフィールド nameref で定義されます。現在のところ読み込まれるのは以下のものです。

  1. *RESTART,READ
  2. *NODE
  3. *ELEMENT
  4. *NSET
  5. *ELSET
  6. *TRANSFORM
  7. *MATERIAL
  8. *ORIENTATION
  9. *SURFACE
  10. *TIE
  11. *SURFACE INTERACTION
  12. *INITIAL CONDITIONS
  13. *AMPLITUDE
  14. *CONTACTPAIR
  15. 他の全て

上記は *RESTART,READ が他の全てのカードに先んじて読み込まれなければならず、続いて *NODE を読み込み……ということを意味しています。inpc の読み込まれ方はフィールド ipoinp、inp、ipoinpc に保存されています。2次元フィールド ipoinp は2つの列と nentries の行から構成されます。ここで nentries は上であげたリストにあるキーワードカードの数で、現在のところ nentries=15 です。フィールド ipoinp の i 行目の1列目にはフィールド inp の行番号、例えば j1 が保持されています。さらにフィールド inp の j1 行目の1列目にはキーワード i の開始位置となる行番号が保持され、2列目には読み込み終了位置の行数、3列目にはフィールド inp の読み込み情報のある行番号が保持されます。これが無い場合はゼロになります。ゼロの場合には対応する inp の行番号がフィールド ipoinp の行 i の2列目に保持されます。ファイルの各行は順次フィールド inpc に保存されます(空白、コメント行は削除されています)。ファイルの行 l1 は ipoinpc(l1-1)+1 から開始(1文字目)し、ipoinpc(l1) で終了します(最後の文字)。ipoinpc(0)=0 であることに注意してください。この構造体はどのような順番で inpc を読み込むべきかを一意に指定します。またこれを図示すると図135の様になります。

図135: キーワード・エントリー i での各行の読み込み
\begin{figure}\epsfig{file=input.eps,width=10cm}\end{figure}

上記のリストにキーワードを追加したい場合は以下を行なう必要があります。


次へ 上へ 前へ 目次へ
次へ:allocate 上へ:Allocation of the fields 前へ:openfile 目次へ
guido dhondt 2016-03-08