FORTRANでもエスケープシーケンスを利用すれば下記のような入力項目を
表示してデータ入力ができます。 古い実験装置等のDOS/Vマシンでは有効
活用できるかもしれません。

 写りは悪いですが
DOS窓での実行状況です。 トップからの1〜9のメニューに
対して順番に数値を入力していきます。 現在は項目1に入力待ちの状況で
すが、入力し終えたら
次行同列にいきます。

 上記、表示部分のリストは下記のようになっていますが、\はMicrosoft
系のコンパイラに有効であり、Fujitsu系ではすべて$に変更が必要です。

C   画面クリアー,5行改行
    WRITE(6,*) CHAR(27)//'[2J'
    WRITE(6,*) CHAR(27)//'[5;H'
C   メニュー表示項目の作成
    WRITE(6,'(17X,A)') '===================================='
    WRITE(6,'(17X,A)') '|  1.鉛直要素数は   [ 7] :           |'
    WRITE(6,'(17X,A)') '|  2.水平要素数は   [16] :          |'
    WRITE(6,'(17X,A)') '|  3.水平要素長は(m) [80] :          |'
    WRITE(6,'(17X,A)') '|  4.基盤の高さは(m)  [10] :          |'
    WRITE(6,'(17X,A)') '|  5.液状化層高は(m) [25] :          |'
    WRITE(6,'(17X,A)') '|  6.地表面傾斜は(%)  [ 5] :           |'
    WRITE(6,'(17X,A)') '|  7.基盤面傾斜は(%)  [ 5] :           |'
    WRITE(6,'(17X,A)') '|  8.解析基盤数は   [ 2] :           |'
    WRITE(6,'(17X,A)') '|  9.杭の(left)位置は  [12] :           |'
    WRITE(6,'(17X,A)') '===================================='
C   重ね書きのため再度、6行目へ移動
    WRITE(6,*) CHAR(27)//'[6;H'
C   \により改行位置で入力待ちの状態となり、1.ではELVの変数に代入される
    WRITE(6,'(17X,A,
\)') '|  1.鉛直要素数は    [ 7] : '
    READ(5,*) ELV
    WRITE(6,'(17X,A,
\)') '|  2.水平要素数は    [16] : '
    READ(5,*) ELH
    WRITE(6,'(17X,A,
\)') '|  3.水平要素長は(m)  [80] : '
    READ(5,*) WD
    WRITE(6,'(17X,A,
\)') '|  4.基盤の高さは(m)   [10] : '
    READ(5,*) H1
    WRITE(6,'(17X,A,
\)') '|  5.液状化層高は(m)  [25] : '
    READ(5,*) H2
    WRITE(6,'(17X,A,
\)') '|  6.地表面傾斜は(%)  [ 5] : '
    READ(5,*) TGS
    WRITE(6,'(17X,A,
\)') '|  7.基盤面傾斜は(%)  [ 5] : '
    READ(5,*) TBS
    WRITE(6,'(17X,A,
\)') '|  8.解析基盤数は    [ 2] : '
    READ(5,*) LB
    WRITE(6,'(17X,A,
\)') '|  9.杭の(left)位置は  [12] : '
    READ(5,*) IP