 桁目に命令を書く。
そのためにプログラムで、1つの文が複数行になってしまっている場合が多い。
 桁目に命令を書く。
そのためにプログラムで、1つの文が複数行になってしまっている場合が多い。
| 
      WRITE(*,*) 'BACKWARD : METHOD=1, ',
     1           'CENTRAL : =2, ',
     2           'FORWARD : =3'
(6桁目にブランクでない文字 1,2 を置いている、
継続行であることを意味する。) | 
| 
      printf("BACKWARD : METHOD=1, CENTRAL : =2, FORWARD : =3\n");
 | 
| C 菊地文雄, 山本昌宏「微分方程式と計算機演習」, 山海堂 (1991), P. 13 | 
| // 菊地文雄, 山本昌宏「微分方程式と計算機演習」, 山海堂 (1991), P. 13 | 
ともあれ、C言語では、変数宣言は絶対にサボれないので、ちゃんと書く必要がある。 IJKLMN ルールを使っているので、 先頭の文字が I,J,K,L,M,N のいずれかの 場合は int 型に、そうでない場合は double 型にした。 (もとの FORTRANプログラムは単精度(REAL)なので、 double でなく float にすべきかもしれないが、 C言語で float の利用はあまり推奨できないので double にした。)
| (変数宣言なし) | 
| int i,j,k; double aa; | 
| 
      DIMENSION A(NDIM,NDIM),F(NDIM)
 | 
| int n, i, j; double a[NDIM][NDIM], f[NDIM]; | 
例えば、B(1) は b[0] に, A(N) は a[n-1] に直す。 また
| 
      DO 2 I=1,N
        DO 1 J=1,N
          READ(*,*) A(I,J)
    1   CONTINUE
    2 CONTINUE
 | 
| 
      for (i=0; i<n; i++)
        for (j=0; j<n; j++)
          scanf("%lf"< &a[i][j];
 | 
| 
      PARAMETER (NDIM=100)
      DIMENSION A(NDIM,NDIM),F(NDIM)
 | 
| #define NDIM (100 double a[NDIM][NDIM], f[NDIM]; | 
次元 N 以上の数NDIMを取って、大きめの変数を用意しておく、 ということである。 古いFORTRANでは、動的な変数宣言は出来ず、 プログラムをコンパイルする時点で、 変数の大きさを決めておく必要があるので、 このようなプログラムになっている (そうするより仕方がない)。 最近のプログラミング言語では、動的な変数宣言が出来るのが普通なので、 古めかしい書き方であると言える。
例えば C 言語であれば、ベクトルを記憶する変数 f は
| 
#include <stdlib.h> // malloc() のため
   int N;
   double *f;
   // N を決めてから
   f = malloc(sizeof(double) * N);
   if (f == NULL) { } // エラー処理
 | 
| 
      SUBROUTINE GAUSS(A,F,N,NDIM)
      DIMENSION A(NDIM,NDIM),F(NDIM)
 | 
| void gauss(double a[ndim][ndim],f[ndim],int n, int ndim) | 
| void gauss(int ndim,double a[ndim][ndim],double f[ndim],int n) | 
| void gauss(int ndim,double a[][ndim],double f[],int n) | 
| // n次元ベクトル x,y の内積を計算する関数 double naiseki(double x[], double y[], int n) |