このサブルーチンは入力を読み込みそれをフィールド inpc に保存します。保存前に以下の処理が行なわれます。
さらにセットの数が nset_ に、inpc 内の行数が nline に保存されます。変数 nset_ は以降のメモリー確保で使用されます。最後に inpc を読み込む順番がフィールド ipoinp と inp に保存されます。またキーワードカードのいくつかは他の物のものより先に読み込むことができません。例えば *SOLID SECTION カードで参照される材料は *MATERIAl カードでの材料定義が読み込まれる前に解釈することはできません。どの順番にキーワードカードを読み込まなければならないかはサブルーチン keystart.f のフィールド nameref で定義されます。現在のところ読み込まれるのは以下のものです。
上記は *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の様になります。
上記のリストにキーワードを追加したい場合は以下を行なう必要があります。
else if(strcmp1(&buff[0],"*AMPLITUDE")==0){ FORTRAN(keystart,(&ifreeinp,ipoinp,inp,"AMPLITUDE",nline,&ikey)); }