Index: branches/2011/dev_r2787_MERCATOR2_tidalharm/NEMOGCM/NEMO/OPA_SRC/DIA/surdetermine.F90
===================================================================
--- branches/2011/dev_r2787_MERCATOR2_tidalharm/NEMOGCM/NEMO/OPA_SRC/DIA/surdetermine.F90	(revision 2956)
+++ branches/2011/dev_r2787_MERCATOR2_tidalharm/NEMOGCM/NEMO/OPA_SRC/DIA/surdetermine.F90	(revision 3043)
@@ -6,15 +6,15 @@
    PUBLIC
    
-   INTEGER, PARAMETER :: NBINCOMAX = 18
-   INTEGER, PARAMETER :: DIMSPARSE = NBINCOMAX*300*24
+   INTEGER, PARAMETER :: jpincomax = 18
+   INTEGER, PARAMETER :: jpdimsparse = jpincomax*300*24
 
-   INTEGER :: NBSPARSE, NBINCO
-   REAL(wp), DIMENSION(DIMSPARSE) :: SPARSEVALUE
-   INTEGER, DIMENSION(DIMSPARSE) :: JSPARSE , ISPARSE
+   INTEGER, PUBLIC :: nsparse, ninco
+   REAL(wp), PUBLIC, DIMENSION(jpdimsparse) :: valuesparse
+   INTEGER , PUBLIC, DIMENSION(jpdimsparse) :: njsparse, nisparse
 
-   INTEGER, SAVE, DIMENSION(NBINCOMAX) :: JPOS1
-   REAL(wp), DIMENSION(NBINCOMAX) :: TAB4, TAB7
-   REAL(wp), SAVE, DIMENSION(NBINCOMAX,NBINCOMAX) :: TAB3, PILIER
-   REAL(wp), SAVE, DIMENSION(NBINCOMAX) :: PIVOT
+   INTEGER, SAVE, DIMENSION(jpincomax) :: ipos1
+   REAL(wp), DIMENSION(jpincomax) :: tmp4, tmp7
+   REAL(wp), SAVE, DIMENSION(jpincomax,jpincomax) :: ztmp3, zpilier
+   REAL(wp), SAVE, DIMENSION(jpincomax) :: zpivot
 
    !!---------------------------------------------------------------------------------
@@ -29,75 +29,75 @@
 
       INTEGER  :: &
-         I_SD, I1_SD, II_SD, J_SD, K1_SD, K2_SD
-      REAL(wp) :: VALEUR1, VALEUR2, X1
-      REAL(wp), DIMENSION(NBINCOMAX) :: TABX, COL1, COL2
-      INTEGER, DIMENSION(NBINCOMAX) :: JPOS2, JPIVOT      
+         ji_sd, jj_sd, ji1_sd, ji2_sd, jk1_sd, jk2_sd
+      REAL(wp) :: zval1, zval2, zx1
+      REAL(wp), DIMENSION(jpincomax) :: ztmpx, zcol1, zcol2
+      INTEGER, DIMENSION(jpincomax) :: ipos2, ipivot      
    !---------------------------------------------------------------------------------
 
       IF (init==1) THEN
-        IF(NBSPARSE.GT.DIMSPARSE) STOP 'surdetermine erreur1'
-        IF(NBINCO.GT.NBINCOMAX)THEN
-          IF (lwp) WRITE(numout,*)'NBINCO   =',NBINCO
-          IF (lwp) WRITE(numout,*)'NBINCOMAX=',NBINCOMAX
+        IF(nsparse .gt. jpdimsparse) STOP 'surdetermine erreur1'
+        IF(ninco .gt. jpincomax)THEN
+          IF (lwp) WRITE(numout,*)'ninco   =',ninco
+          IF (lwp) WRITE(numout,*)'jpincomax=',jpincomax
           STOP 'DONC dans surdetermine erreur2'
         END IF
 
-        TAB3(:,:)=0.e0
+        ztmp3(:,:)=0.e0
 
-        DO K1_SD=1,NBSPARSE
-          DO K2_SD=1,NBSPARSE 
-            ISPARSE(K2_SD)=ISPARSE(K2_SD)
-            JSPARSE(K2_SD)=JSPARSE(K2_SD)
-            IF(ISPARSE(K2_SD).EQ.ISPARSE(K1_SD)) &
-            TAB3(JSPARSE(K1_SD),JSPARSE(K2_SD))= &
-            TAB3(JSPARSE(K1_SD),JSPARSE(K2_SD))  &
-           +SPARSEVALUE(K1_SD)*SPARSEVALUE(K2_SD)
+        DO jk1_sd=1,nsparse
+          DO jk2_sd=1,nsparse 
+            nisparse(jk2_sd)=nisparse(jk2_sd)
+            njsparse(jk2_sd)=njsparse(jk2_sd)
+            IF(nisparse(jk2_sd) .eq. nisparse(jk1_sd)) &
+            ztmp3(njsparse(jk1_sd),njsparse(jk2_sd))= &
+            ztmp3(njsparse(jk1_sd),njsparse(jk2_sd))  &
+           +valuesparse(jk1_sd)*valuesparse(jk2_sd)
           END DO
         END DO
 
-        DO J_SD=1,NBINCO
-          JPOS1(J_SD)=J_SD
-          JPOS2(J_SD)=J_SD
+        DO jj_sd=1,ninco
+          ipos1(jj_sd)=jj_sd
+          ipos2(jj_sd)=jj_sd
         ENDDO
 
-        DO I_SD=1,NBINCO
+        DO ji_sd=1,ninco
 ! recherche du plus grand pivot non nul
-          VALEUR1=ABS(TAB3(I_SD,I_SD))
+          zval1=ABS(ztmp3(ji_sd,ji_sd))
 
-          JPIVOT(I_SD)=I_SD
-          DO J_SD=I_SD,NBINCO
-       	    VALEUR2=ABS(TAB3(I_SD,J_SD))
-       	    IF(VALEUR2.GE.VALEUR1) THEN
-              JPIVOT(I_SD)=J_SD
-              VALEUR1=VALEUR2
+          ipivot(ji_sd)=ji_sd
+          DO jj_sd=ji_sd,ninco
+       	    zval2=ABS(ztmp3(ji_sd,jj_sd))
+       	    IF(zval2.GE.zval1) THEN
+              ipivot(ji_sd)=jj_sd
+              zval1=zval2
        	    ENDIF
           END DO
 
-          DO I1_SD=1,NBINCO
-      	    COL1(I1_SD)=TAB3(I1_SD,I_SD)
-      	    COL2(I1_SD)=TAB3(I1_SD,JPIVOT(I_SD))
-      	    TAB3(I1_SD,I_SD)=COL2(I1_SD)
-      	    TAB3(I1_SD,JPIVOT(I_SD))=COL1(I1_SD)
+          DO ji1_sd=1,ninco
+      	    zcol1(ji1_sd)=ztmp3(ji1_sd,ji_sd)
+      	    zcol2(ji1_sd)=ztmp3(ji1_sd,ipivot(ji_sd))
+      	    ztmp3(ji1_sd,ji_sd)=zcol2(ji1_sd)
+      	    ztmp3(ji1_sd,ipivot(ji_sd))=zcol1(ji1_sd)
           END DO
 
-          JPOS2(I_SD)=JPOS1(JPIVOT(I_SD))
-          JPOS2(JPIVOT(I_SD))=JPOS1(I_SD)
-          JPOS1(I_SD)=JPOS2(I_SD)
-          JPOS1(JPIVOT(I_SD))=JPOS2(JPIVOT(I_SD))
+          ipos2(ji_sd)=ipos1(ipivot(ji_sd))
+          ipos2(ipivot(ji_sd))=ipos1(ji_sd)
+          ipos1(ji_sd)=ipos2(ji_sd)
+          ipos1(ipivot(ji_sd))=ipos2(ipivot(ji_sd))
 
 
 !-------------------------------
-          PIVOT(I_SD)=TAB3(I_SD,I_SD)
-          DO J_SD=1,NBINCO
-      	    TAB3(I_SD,J_SD)=TAB3(I_SD,J_SD)/PIVOT(I_SD)
+          zpivot(ji_sd)=ztmp3(ji_sd,ji_sd)
+          DO jj_sd=1,ninco
+      	    ztmp3(ji_sd,jj_sd)=ztmp3(ji_sd,jj_sd)/zpivot(ji_sd)
           END DO
 !-------------------------------
 
 !-------------------------------
-          DO II_SD=I_SD+1,NBINCO
-      	    PILIER(II_SD,I_SD)=TAB3(II_SD,I_SD)
-      	    DO J_SD=1,NBINCO
-       	      TAB3(II_SD,J_SD)= &
-       	      TAB3(II_SD,J_SD)-TAB3(I_SD,J_SD)*PILIER(II_SD,I_SD)
+          DO ji2_sd=ji_sd+1,ninco
+      	    zpilier(ji2_sd,ji_sd)=ztmp3(ji2_sd,ji_sd)
+      	    DO jj_sd=1,ninco
+       	      ztmp3(ji2_sd,jj_sd)= &
+       	      ztmp3(ji2_sd,jj_sd)-ztmp3(ji_sd,jj_sd)*zpilier(ji2_sd,ji_sd)
       	    END DO 
           END DO
@@ -108,24 +108,24 @@
 
 !
-      DO I_SD=1,NBINCO
-        TAB4(I_SD)=TAB4(I_SD)/PIVOT(I_SD)
-        DO II_SD=I_SD+1,NBINCO
-      	  TAB4(II_SD)=TAB4(II_SD)-TAB4(I_SD)*PILIER(II_SD,I_SD)
+      DO ji_sd=1,ninco
+        tmp4(ji_sd)=tmp4(ji_sd)/zpivot(ji_sd)
+        DO ji2_sd=ji_sd+1,ninco
+      	  tmp4(ji2_sd)=tmp4(ji2_sd)-tmp4(ji_sd)*zpilier(ji2_sd,ji_sd)
         END DO
       END DO
 
 !  resolution du systeme:
-      TABX(NBINCO)=TAB4(NBINCO)/TAB3(NBINCO,NBINCO)
-      I_SD=NBINCO
-      DO I_SD=NBINCO-1,1,-1
-        X1=0.
-        DO J_SD=I_SD+1,NBINCO
-          X1=X1+TABX(J_SD)*TAB3(I_SD,J_SD)
+      ztmpx(ninco)=tmp4(ninco)/ztmp3(ninco,ninco)
+      ji_sd=ninco
+      DO ji_sd=ninco-1,1,-1
+        zx1=0.
+        DO jj_sd=ji_sd+1,ninco
+          zx1=zx1+ztmpx(jj_sd)*ztmp3(ji_sd,jj_sd)
         END DO 
-        TABX(I_SD)=TAB4(I_SD)-X1
+        ztmpx(ji_sd)=tmp4(ji_sd)-zx1
       END DO 
 
-      DO J_SD=1,NBINCO
-        TAB7(JPOS1(J_SD))=TABX(J_SD)
+      DO jj_sd=1,ninco
+        tmp7(ipos1(jj_sd))=ztmpx(jj_sd)
       END DO
 
