--- spml-g95.orig/src/lumatrix_f77.f
+++ spml-g95/src/lumatrix_f77.f
@@ -5,8 +5,7 @@
 *"        99/11/10(takepiro) LUSOLM ɲ
 *       2002/01/20(takepiro) ispack-f90 Ѥȴ
 *       2002/06/10(takepiro) ٥ȥĹб lusol2 Ѱ.
-*       2008/10/29(takepiro) OpenMP Ѥ˲¤
-*       2009/08/06(takepiro) LUMAK1 ɲ
+*       2009/08/06(takepiro) OMP ǤȤ LUMAK1 
 *
 **********************************************************************
       SUBROUTINE LUMAKE    !" Σ̣ʬʬԥܥå
@@ -34,9 +33,8 @@
       DOUBLE PRECISION       PIVOT, TEMP
 *
 *
-*$omp parallel do private(M,K,N,PIVOT,TEMP)
-      DO 3000  J = 1, JDIM
-         DO 3000 K = 1, NDIM-1
+      DO 3000 K = 1, NDIM-1
+         DO 3000  J = 1, JDIM
 *
 *"         < 1. ʬԥܥå >
 *
@@ -73,7 +71,6 @@
  2200       CONTINUE
 *
  3000 CONTINUE
-*$omp end parallel do
 *
       RETURN
       END
@@ -97,55 +94,10 @@
 *   [OUTPUT] 
       INTEGER    KP  ( NDIM )           !" ԥܥå
 *
-*   [INTERNAL WORK] 
-      INTEGER    K, M, N
-      DOUBLE PRECISION       PIVOT, TEMP
-*
-*
-      DO 3000 K = 1, NDIM-1
-*
-*"         < 1. ʬԥܥå >
-*
-*
-         PIVOT      = ALU ( K,K )
-         KP ( K ) = K
-         DO 1100  M = K+1, NDIM
-            IF (  ABS( ALU ( M,K ) ) .GT. ABS( PIVOT )  ) THEN
-               PIVOT      = ALU ( M,K )
-               KP ( K ) = M
-            ENDIF
- 1100    CONTINUE
-*
-         IF ( KP ( K ) .NE. K ) THEN
-            DO 1200 N = 1, NDIM
-               TEMP              = ALU ( K,N )
-               ALU ( K,N )       = ALU ( KP(K),N )
-               ALU ( KP(K),N ) = TEMP
- 1200       CONTINUE
-         ENDIF
-*
-*"         < 2. ̣ʬ >
-*
-*$omp parallel 
-*$omp do 
-         DO 2100  N = K+1, NDIM
-*"                                                   U[kj], j>k+1
-            ALU ( K,N ) = ALU( K,N ) / PIVOT
-*
- 2100    CONTINUE
-*
-*$omp do 
-         DO 2200  N = K+1, NDIM
-            DO 2300 M = K+1, NDIM
-*"                                                   L[i,k+1], i>=k+1
-               ALU ( M,N ) = ALU( M,N )
-     &                     - ALU( M,K ) * ALU( K,N )
-*     
- 2300       CONTINUE
- 2200    CONTINUE
-*$omp end parallel
-*
- 3000 CONTINUE
+      CALL LUMAKE
+     M         ( ALU   ,
+     O           KP    ,
+     D           1     , NDIM   )
 *
       RETURN
       END
@@ -180,11 +132,10 @@
 *
 *"         < 1. ԥܥåˤ¤Ӵ >
 *
-*$omp parallel do private(I,K,TEMP)
-      DO 1100 J = 1, JDIM
+      DO 1100 K = 1, NDIM-1
          DO 1100 I = 1, IDIM
-            DO 1100 K = 1, NDIM-1
 *
+            DO 1110 J = 1, JDIM
                IF ( KP ( J,K ) .NE. K ) THEN
                   TEMP               = XV ( I,J,K )
                   XV ( I,J,K )       = XV ( I,J,KP(J,K) )
@@ -193,43 +144,38 @@
  1110      CONTINUE
 *
  1100 CONTINUE
-*$omp end parallel do
 *
 *"         < 2.  >
 *
-      DO 2100 I = 1, IDIM
-         DO 2100 N = 1, NDIM
+      DO 2100 N = 1, NDIM
 *"                                               Y[i]
-*$omp parallel do 
+         DO 2110 I = 1, IDIM
             DO 2110 J = 1, JDIM
                XV ( I,J,N ) = XV ( I,J,N ) / ALU ( J,N,N )
- 2110       CONTINUE
-*$omp end parallel do
+ 2110    CONTINUE
 *
-            DO 2130 NN = N+1, NDIM
-*$omp parallel do
+         DO 2130 NN = N+1, NDIM
+            DO 2120 I = 1, IDIM
                DO 2120 J = 1, JDIM
                   XV ( I,J,NN ) = XV ( I,J,NN )
      &                          - XV ( I,J,N ) * ALU ( J,NN,N )
- 2120          CONTINUE
-*$omp end parallel do
- 2130       CONTINUE
+ 2120       CONTINUE
+ 2130    CONTINUE
 *
  2100 CONTINUE
 *
 *"         < 3.  >
 *
-*$omp parallel do private(I,K,N)
-      DO 3100 J = 1, JDIM
-         DO 3100 I = 1, IDIM
-            DO 3100 K = NDIM-1, 1, -1
-               DO 3100 N = K+1, NDIM
+      DO 3100 K = NDIM-1, 1, -1
+         DO 3100 N = K+1, NDIM
 *"                                               X[k]
+            DO 3110 I = 1, IDIM
+               DO 3110 J = 1, JDIM
                   XV ( I,J,K ) = XV ( I,J,K )
      &                         - XV ( I,J,N ) * ALU ( J,K,N )
+ 3110       CONTINUE
 *
  3100 CONTINUE
-*$omp end parallel do
 *
       RETURN
       END
@@ -264,9 +210,8 @@
 *
 *"         < 1. ԥܥåˤ¤Ӵ >
 *
-*$omp parallel do private(K,TEMP)
-      DO 1100 I = 1, IDIM
-         DO 1100 K = 1, NDIM-1
+      DO 1100 K = 1, NDIM-1
+         DO 1100 I = 1, IDIM
                IF ( KP ( K ) .NE. K ) THEN
                   TEMP           = XV ( I,K )
                   XV ( I,K )     = XV ( I,KP(K) )
@@ -275,37 +220,35 @@
  1110      CONTINUE
 *
  1100 CONTINUE
-*$omp end parallel do
 *
 *"         < 2.  >
 *
-*$omp parallel do private(N,NN,TEMP)
-      DO 2100 I = 1, IDIM
-         DO 2100 N = 1, NDIM
+      DO 2100 N = 1, NDIM
 *"                                               Y[i]
-            XV ( I,N ) = XV ( I,N ) / ALU ( N,N )
-*
-            DO 2130 NN = N+1, NDIM
-               XV ( I,NN ) = XV ( I,NN )
-     &                       - XV ( I,N ) * ALU ( NN,N )
- 2130       CONTINUE
+         DO 2110 I = 1, IDIM
+               XV ( I,N ) = XV ( I,N ) / ALU ( N,N )
+ 2110    CONTINUE
+*
+         DO 2130 NN = N+1, NDIM
+            DO 2120 I = 1, IDIM
+                  XV ( I,NN ) = XV ( I,NN )
+     &                          - XV ( I,N ) * ALU ( NN,N )
+ 2120       CONTINUE
+ 2130    CONTINUE
 *
  2100 CONTINUE
-*$omp end parallel do
 *
 *"         < 3.  >
 *
-*$omp parallel do private(K,N)
-      DO 3100 I = 1, IDIM
-         DO 3100 K = NDIM-1, 1, -1
-            DO 3100 N = K+1, NDIM
+      DO 3100 K = NDIM-1, 1, -1
+         DO 3100 N = K+1, NDIM
 *"                                               X[k]
+            DO 3110 I = 1, IDIM
                   XV ( I,K ) = XV ( I,K )
      &                         - XV ( I,N ) * ALU ( K,N )
  3110       CONTINUE
 *
  3100 CONTINUE
-*$omp end parallel do
 *
       RETURN
       END
@@ -342,9 +285,8 @@
 *
 *"         < 1. ԥܥåˤ¤Ӵ >
 *
-*$omp parallel do private(K,TEMP)
-      DO 1100 I = 1, IDIM
-         DO 1100 K = 1, NDIM-1
+      DO 1100 K = 1, NDIM-1
+         DO 1100 I = 1, IDIM
 *
             IF ( KP ( JMTX(I),K ) .NE. K ) THEN
                TEMP             = XV ( I,K )
@@ -354,35 +296,35 @@
  1110      CONTINUE
 *
  1100 CONTINUE
-*$omp end parallel do
 *
 *"         < 2.  >
 *
-*$omp parallel do private(N,NN)
-      DO 2100 I = 1, IDIM
-         DO 2100 N = 1, NDIM
+      DO 2100 N = 1, NDIM
 *"                                               Y[i]
+         DO 2110 I = 1, IDIM
             XV ( I,N ) = XV ( I,N ) / ALU ( JMTX(I),N,N )
+ 2110    CONTINUE
 *
-            DO 2130 NN = N+1, NDIM
+         DO 2130 NN = N+1, NDIM
+            DO 2120 I = 1, IDIM
                XV ( I,NN ) = XV ( I,NN )
      &                       - XV ( I,N ) * ALU ( JMTX(I),NN,N )
+ 2120       CONTINUE
  2130    CONTINUE
 *
  2100 CONTINUE
-*$omp end parallel do
 *
 *"         < 3.  >
 *
-*$omp parallel do private(K,N)
-      DO 3100 I = 1, IDIM
-         DO 3100 K = NDIM-1, 1, -1
-            DO 3100 N = K+1, NDIM
+      DO 3100 K = NDIM-1, 1, -1
+         DO 3100 N = K+1, NDIM
 *"                                               X[k]
+            DO 3110 I = 1, IDIM
                XV ( I,K ) = XV ( I,K )
      &                      - XV ( I,N ) * ALU ( JMTX(I),K,N )
+ 3110       CONTINUE
+*
  3100 CONTINUE
-*$omp end parallel do
 *
       RETURN
       END
