!PROGRAMA PRINCIPAL
include 'mkl_dss.f90'
PROGRAM PROGRAMAPRINCIPAL
USE LAPACK95
USE mkl_dss
IMPLICIT NONE
INTEGER,PARAMETER :: LONG=8!selected_int_kind(15)
INTEGER :: i,j,ppx,ppy,m,n,t,cont,kk,cont1,total,cargasdistribuidas,fila,w,NVALUES,nn,CONDCONT
INTEGER,DIMENSION(4) :: CC 
REAL (KIND=LONG) :: E,poisson,D,D1,espesor,alpha,a=0.,b=0.
REAL (KIND=LONG) :: pasox,k,EMPOTR
REAL (KIND=LONG),ALLOCATABLE,DIMENSION(:,:) :: s,MX,MY,MT,GIROX,GIROY,MATRIZDESPLAZ,Q
REAL (KIND=LONG),ALLOCATABLE,DIMENSION(:) :: P,X
INTEGER,ALLOCATABLE,DIMENSION(:) :: ipiv
REAL(KIND=LONG), ALLOCATABLE, DIMENSION (:) :: VALORES,VAL
INTEGER, ALLOCATABLE, DIMENSION (:) :: COLUMNAS,COL
INTEGER, ALLOCATABLE, DIMENSION (:) :: ROWINDEX,perm
OPEN(81,FILE="/home/Placas/Propiedades.dat")
READ(81,*)poisson
READ(81,*)E
READ(81,*)espesor
READ(81,*)k
CLOSE(81)
!comprobamos que las magnitudes estan bien
WRITE(*,*)'POISSON=',poisson,'E=',E,'Canto=',espesor,'balasto=',k
pasox=0.1 !viene del mallado
alpha=1.
cont=1
!k=50000 !balasto dl suelo libro 
!k=0 !kN/m^3
!k=11476.48
!k=34429.44

D=E*(espesor**3)/(12*(1-(poisson**2)))
WRITE(*,*)'D=',D
READ(*,*)
EMPOTR=20E30
cont1=0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!BORRAR LOS VALORES DESPUÉS!!!!!!!!!!!
CALL PASO(pasox)
D1=(k*pasox**4)/D
CALL GENERACIONMALLADO(a,b,pasox,cargasdistribuidas)
ppx=NINT((a/pasox)+1) !Debe venir implícito desde la funcion de mallado
ppy=NINT((b/pasox)+1)
total=ppx*ppy
ALLOCATE(s(ppy,ppx))
ALLOCATE(MX(ppy,ppx))
ALLOCATE(MY(ppy,ppx))
ALLOCATE(MT(ppy,ppx))
ALLOCATE(Q(ppy,ppx))
ALLOCATE(P(total))
ALLOCATE(X(total))
ALLOCATE(VALORES(13*total))
ALLOCATE(COLUMNAS(13*total))
ALLOCATE(ROWINDEX(total+1))
ALLOCATE(perm(total))
ALLOCATE(ipiv(total))
s=0.0
P=0.0
VALORES=0.0
COLUMNAS=0
ROWINDEX=0
nn=2
kk=1
ROWINDEX(1)=1
WRITE(*,*)'ESCRIBA POR FAVOR EL VALOR DE LAS CONDICIONES DE CONTORNO'
READ(*,*)CONDCONT
CALL CONDICIONCONTORNO(CONDCONT,CC)
WRITE(*,*)'COMENZAMOS A CALCULAR LOS ESQUEMAS.TENGA PACIENCIA'
INDICEFILAS: DO m=1,ppy
  INDICECOLUMNAS: DO n=1,ppx
  cont1=cont1+1
   s=0.0
   diffin: SELECT CASE (CONDCONT)
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO 1
   	CASE(1)
   	    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok1
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=-2*poisson+2
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=-2*poisson+2
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok1
	!Línea central
              s(m,n)=20+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok1
	!Línea central
              s(m,n)= 20+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF 
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok1
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok1
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok1
    !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok1
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok1

   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok1
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok1
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok1
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok1
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-1)=2*(poisson**2)+4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*(poisson**2)+ 8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 8*poisson-12
          s(m-1,n+1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2   
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*poisson**2+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+8*poisson-12
          s(m-1,n-1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=EMPOTR+D1
	END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1

		    END DO
          END DO
!Creamos la matriz de coeficientes para luego resolver triangulando
	
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO 2
	CASE(2)
		    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=-2*poisson+2
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok2
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok2
	!Línea central
              s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n-1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok2
	!Línea central
              s(m,n)= 20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok2
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok2
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok2
	!Línea central
	  s(m,n)=21+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok2
	!Línea central
	  s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok2
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
 	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok2
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok
	!Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok2
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=2*(poisson**2)+4*poisson-6
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok2
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok2
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-1)=2*(poisson**2)+4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=-7*(poisson**2)-8*poisson+17+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*(poisson**2)+ 8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 8*poisson-12
          s(m-1,n+1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2   
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*poisson**2+8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n+1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=EMPOTR+D1
	END IF
!HACEMOS EL VOLCADO A UN VECTOR Y LO ESCRIBIMOS EN UN FICHERO
!if((m==2).AND.(n==2)) THEN !REVISAR, EN EL PUNTO 6 DE ESTUDIO HACE ALGO RARO
!s(m+2,n-1)=0.0
!END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
	!Creamos la matriz de coeficientes para luego resolver triangulando
	
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 3
	CASE(3)
	    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok3
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok3
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok3
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok3
	!Línea central
              s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n-1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok
	!Línea central
              s(m,n)= 18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n+1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok3
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF 
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok3
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok3
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok3
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=2*(poisson**2)+4*poisson-6
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
    !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*poisson**2+8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n+1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n-1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
	END IF
!HACEMOS EL VOLCADO A UN VECTOR Y LO ESCRIBIMOS EN UN FICHERO
!if((m==2).AND.(n==2)) THEN !REVISAR, EN EL PUNTO 6 DE ESTUDIO HACE ALGO RARO
!s(m+2,n-1)=0.0
!END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
	!ESCRIBIMOS EN UN FICHERO PARA COMPARAR CON NUESTRA MATRIZ
	!Creamos la matriz de coeficientes para luego resolver triangulando
	
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 4
	CASE(4)
		    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok4
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok4
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok4
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=-2*poisson+2
	END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok
	!Línea central
              s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok
	!Línea central
              s(m,n)= 18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n+1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok4
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok4
	!Línea central
	      s(m,n)=EMPOTR+D1
	END IF 
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok4
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok4
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok4
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok4
	!Línea central
	   s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok
 	!Línea central
	   s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok4
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-7*(poisson**2)-8*poisson+17+D1
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok4
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*poisson**2+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+8*poisson-12
          s(m-1,n-1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2
	END IF 
	IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n-1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
	END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 5
         CASE(5)
          	    !Estudiamos primero los puntos centrales
	           IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok5
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok5
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=-2*poisson+2
	END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
        IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok5
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok5
	!Línea central
              s(m,n)=20+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF 
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok5
	!Línea central
              s(m,n)= 22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF 
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok5
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF 
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok5
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF 
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	  s(m,n)=21+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
        IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok
	!Línea central
	  s(m,n)=EMPOTR+D1
	END IF 
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
        IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok5
    !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF 
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
        IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok5
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF 
!LADO INFERIOR
        IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok5
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok5

   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2

	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok5
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok
   !Línea central
           s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
              s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok
            s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok5
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-1)=2*(poisson**2)+4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok5
   !Borde correspondiente al borde inferior
          s(m,n)=-7*(poisson**2)-8*poisson+17+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok5
	   !Línea central
		  s(m,n)=-4*(poisson**2)-8*poisson+12+D1
		  s(m,n+1)=4*(poisson**2)+ 8*poisson-12
		  s(m,n+2)=-2*(poisson**2)+2
	   !Línea por encima de la central
		  s(m-1,n)=4*(poisson**2)+ 8*poisson-12
		  s(m-1,n+1)=8-8*poisson
	   !Línea superior
		  s(m-2,n)=-2*(poisson**2)+2   
	END IF 
	IF((m==ppy).AND.(n==ppx)) THEN !ok
	  !Línea central
		  s(m,n)=EMPOTR+D1
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
	   !Línea central
		  s(m,n)=EMPOTR+D1
	END IF 
	IF ((m==1).AND.(n==ppx)) THEN !ok
	  !Línea central
		  s(m,n)=EMPOTR+D1
	END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		   
		      P(t)=s(j,i)

		      t=t+1
!		     
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 6
   CASE(6)
   	    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok6
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
       END IF
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok6
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok6
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok6
	!Línea central
              s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n-1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok6
	!Línea central
              s(m,n)= 20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok8
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF 
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok8
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok6
	!Línea central
	  s(m,n)=21+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok6
	!Línea central
	  s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok6
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok6
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok6
     !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok6
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok6

   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok6
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok6
   !Línea central 
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok6
	   !Línea central 
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=2*(poisson**2)+4*poisson-6
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok6
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok
   !Línea central 
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
   !Línea central 
          s(m,n)=EMPOTR+D1
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
        !Línea central 
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
   	!Línea central 
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*poisson**2+8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n+1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
	END IF 
	IF ((m==1).AND.(n==ppx)) THEN !ok
    !Línea central 
          s(m,n)=EMPOTR+D1
	END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		   
		      P(t)=s(j,i)

		      t=t+1
!		     
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 7
   CASE(7)
   	    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok7
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok7
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok7
	!Línea central
              s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok7
	!Línea central
              s(m,n)= 18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n+1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok7
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok7
	!Línea central
	      s(m,n)=EMPOTR+D1
	END IF 
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok7
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok7
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok7
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok7
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok7
     !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok
	   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok
	   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok7
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-7*(poisson**2)-8*poisson+17+D1
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok7
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
    !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
	IF((m==ppy).AND.(n==ppx)) THEN !ok
    !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
	IF((m==1).AND.(n==1)) THEN !ok
      !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n-1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
	END IF 
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		   
		      P(t)=s(j,i)

		      t=t+1
!		     
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 8
   CASE(8)
	    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok8
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok8
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok8
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=-2*poisson+2
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok8
	!Línea central
              s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF 
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok8 
	!Línea central
              s(m,n)= 20+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok8
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	!Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok8
	!Línea central
	      s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
 	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok8
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF 
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok8
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF 
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok8
    !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok8
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok8
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok8
	!Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok8
	!Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok8
   !Borde vertical correspondiente al borde derecho
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok8 
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok8
   !Línea central 
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok8
   !Línea central 
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok8
   !Borde correspondiente al borde inferior
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok8
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok8
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*poisson**2+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+8*poisson-12
          s(m-1,n-1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2
	END IF 
	IF((m==1).AND.(n==1)) THEN !ok8
   	!Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok8
	!Línea central
          s(m,n)=EMPOTR+D1
	END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		   
		      P(t)=s(j,i)

		      t=t+1
!		     
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO 9
 CASE(9)
!Estudiamos primero los puntos centrales
	 	   IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	      IF((m==(ppy-1)).AND.(n==2)) THEN !ok
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=2*poisson-6
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	      !Línea superior
	      s(m-2,n)=1 
	      END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	      IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	      IF ((m==2).AND.(n==2)) THEN !ok11
	!Línea central
              s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
	  !Línea inferior
	      s(m+2,n)=1
	      END IF 
	      IF((m==(2)).AND.(n==(ppx-1))) THEN!ok11
	!Línea central
              s(m,n)= 22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	      END IF 
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2               
	      IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=2*poisson-6
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	      END IF 
	!aqui
	      IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok9
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*(poisson)
	      s(m,n+2)=2
	!Línea encima de la central
	      s(m-1,n)=4*(poisson**2)+ 4*poisson-8
	      s(m-1,n+1)=4-2*poisson
	!Línea por debajo de la central
	      s(m+1,n)=4*(poisson**2)+ 4*poisson-8
	      s(m+1,n+1)=4-2*poisson
	!Línea superior e inferior
	      s(m-2,n)=1-(poisson**2)
	      s(m+2,n)=1-(poisson**2)
	      END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	      IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok11
	!Línea central
	      s(m,n)=21+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	 !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	 !Línea por debajo de la línea central
              s(m+1,n)=-8
              s(m+1,n-1)=2
         !Línea inferior
	      s(m-2,n)=1
	 !Línea superior
	      s(m+2,n)=1
	      END IF
 !LADO DERECHO
              IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok11
               s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
              IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
    !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)=1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por debajo de la central.
              s(m+1,n)=-8
              s(m+1,n+1)=2
              s(m+1,n-1)=2
   !Línea inferior
              s(m+2,n)=1
	      END IF 
              IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
              s(m,n)=EMPOTR+D1
              END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	      IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)= 1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por encima de la central. 
              s(m-1,n)=-8
              s(m-1,n+1)=2 
              s(m-1,n-1)=2
   !Línea superior 
              s(m-2,n)=1
	      END IF 
!LADO INFERIOR
              IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
             s(m,n)=EMPOTR+D1
              END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	      IF ((m==(ppy-1)).AND.(n==1)) THEN !ok11
   !Línea central
              s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
              s(m,n+1)=4*poisson-12
              s(m,n+2)=2
   !Línea por debajo de la central
              s(m-1,n)=4*(poisson**2)+ 4*poisson-8
              s(m-1,n+1)=4-2*poisson
   !Línea inferior
              s(m-2,n)=1-(poisson**2)
              END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	      IF ((m==2).AND.(n==1)) THEN !ok
   !Línea central
              s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
              s(m,n+1)=4*poisson-12
              s(m,n+2)=2
   !Línea por debajo de la central
              s(m+1,n)=4*(poisson**2)+ 4*poisson-8
              s(m+1,n+1)=4-2*poisson
   !Línea inferior
              s(m+2,n)=1-(poisson**2)
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	      IF ((n==(ppx)).AND.(m==2)) THEN!ok11
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	      IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok12
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	      IF ((m==1).AND.(n==2)) THEN !ok12
   !Línea central 
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	      IF ((m==1).AND.(n==(ppx-1))) THEN !ok12
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	      IF ((m==(ppy)).AND.(n==2)) THEN !ok12
   !Borde correspondiente al borde inferior
             s(m,n)=EMPOTR+D1
	      END IF                                                                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AQui
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	      IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Borde correspondiente al borde inferior
              s(m,n)=EMPOTR+D1
	      END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
              IF((m==ppy).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==ppy).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==1).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF ((m==1).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 10
          CASE(10)
          	!Estudiamos primero los puntos centrales
	 	   IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok10
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	      IF((m==(ppy-1)).AND.(n==2)) THEN !ok10
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	      IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok10
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	      IF ((m==2).AND.(n==2)) THEN !ok10
	!Línea central
              s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	  !Línea por encima de la central
	      s(m-1,n)=2*poisson-6
	      s(m-1,n+1)=2-poisson
	      END IF 
	      IF((m==(2)).AND.(n==(ppx-1))) THEN!ok10
	!Línea central
              s(m,n)= 20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	!Línea por encima de la central
	      s(m-1,n)=2*poisson-6
	      s(m-1,n-1)=2-poisson
	      END IF 
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2               
	      IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok10
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	      END IF 
	
	      IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok10
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	      IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok10
	!Línea central
	      s(m,n)=21+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	 !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	 !Línea por debajo de la línea central
              s(m+1,n)=-8
              s(m+1,n-1)=2
	 !Línea inferior
	      s(m-2,n)=1
	 !Línea superior
	      s(m+2,n)=1
	      END IF
 !LADO DERECHO
              IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok10
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
              IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok10
    !Línea central     
              s(m,n)=19+D1
              s(m,n+1)=-8
              s(m,n+2)=1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por debajo de la central.
              s(m+1,n)=-8
              s(m+1,n+1)=2
              s(m+1,n-1)=2
   !Línea por encima de la central
   	      s(m-1,n)=2*poisson-6
   	      s(m-1,n-1)=2-poisson
   	      s(m-1,n+1)=2-poisson
   !Línea inferior
              s(m+2,n)=1
	      END IF 
              IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok10
   !Línea central
              s(m,n)=-6*(poisson**2)-8*poisson+16+D1
              s(m,n-1)=4*(poisson**2)+4*poisson-8
              s(m,n+1)=4*(poisson**2)+4*poisson-8
              s(m,n+2)=1-(poisson**2)
              s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central 
              s(m+1,n)=4*poisson-12
              s(m+1,n-1)=4-2*poisson
              s(m+1,n+1)=4-2*poisson
   !Línea inferior
   	      s(m+2,n)=2
              END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	      IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok10
     !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)= 1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por encima de la central. 
              s(m-1,n)=-8
              s(m-1,n+1)=2 
              s(m-1,n-1)=2
   !Línea superior 
              s(m-2,n)=1
	      END IF 
!LADO INFERIOR
              IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok10
   !Línea central
             s(m,n)=EMPOTR+D1
              END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	      IF ((m==(ppy-1)).AND.(n==1)) THEN !ok11
        !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
              END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	      IF ((m==2).AND.(n==1)) THEN !ok11
   !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	      IF ((n==(ppx)).AND.(m==2)) THEN!ok11
   	      s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	      IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok12
   	      s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	      IF ((m==1).AND.(n==2)) THEN !ok12
   !Línea central 
              s(m,n)=-7*(poisson**2)-8*poisson+17+D1
              s(m,n+1)=4*(poisson**2)+4*poisson-8
              s(m,n+2)=1-(poisson**2)
   !Línea inferior a la central 
   	      s(m+1,n)=4*(poisson)-12
   	      s(m+1,n+1)=4-2*poisson
   !Línea inferior
   	      s(m+2,n)=2
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	      IF ((m==1).AND.(n==(ppx-1))) THEN !ok12
   !Línea central 
              s(m,n)=-7*(poisson**2)-8*poisson+17+D1
              s(m,n-1)=4*(poisson**2)+4*poisson-8
              s(m,n-2)=1-(poisson**2)
   !Línea inferior a la central 
   	      s(m+1,n)=4*(poisson)-12
   	      s(m+1,n-1)=4-2*poisson
   !Línea inferior
   	      s(m+2,n)=2
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	      IF ((m==(ppy)).AND.(n==2)) THEN !ok12
   !Borde correspondiente al borde inferior
             s(m,n)=EMPOTR+D1
	      END IF
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	      IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Borde correspondiente al borde inferior
              s(m,n)=EMPOTR+D1
	      END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
              IF((m==ppy).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==ppy).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==1).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF ((m==1).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 11
          CASE(11)
	        !Estudiamos primero los puntos centrales
	 	   IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok11
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	      IF((m==(ppy-1)).AND.(n==2)) THEN !ok11
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	      IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok11
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      s(m,n+1)=2*poisson-6
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      s(m-1,n+1)=2-poisson
	      !Línea superior
	      s(m-2,n)=1
	      END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	      IF ((m==2).AND.(n==2)) THEN !ok11
	!Línea central
              s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	      END IF 
	      IF((m==(2)).AND.(n==(ppx-1))) THEN!ok11
	!Línea central
              s(m,n)= 20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      s(m,n+1)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	      s(m+1,n+1)=2-poisson
	!Línea inferior
	      s(m+2,n)=1
	      END IF 
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2               
	      IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok11
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	      END IF 
	
	      IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok11
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	      IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok11
	!Línea central
	      s(m,n)=19+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
              s(m+1,n)=-8
              s(m+1,n-1)=2
              s(m+1,n+1)=2-poisson
	 !Línea inferior
	      s(m-2,n)=1
	 !Línea superior
	      s(m+2,n)=1
	      END IF
 !LADO DERECHO
              IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok11
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n-1)=-12+4*poisson
	      s(m,n-2)=2
	!Línea por encima de la central
	      s(m-1,n)=4*(poisson**2)+ 4*poisson-8
	      s(m-1,n-1)=4-2*poisson
	!Línea por debajo de la central
	      s(m+1,n)=4*(poisson**2)+ 4*poisson-8
	      s(m+1,n-1)=4-2*poisson
	!Línea superior e inferior
	      s(m+2,n)=1-(poisson**2)
	      s(m-2,n)=1-(poisson**2)
	      END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
              IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok11
    !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)=1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por debajo de la central.
              s(m+1,n)=-8
              s(m+1,n+1)=2
              s(m+1,n-1)=2
   !Línea inferior
              s(m+2,n)=1
	      END IF 
              IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok11
              s(m,n)=EMPOTR+D1
              END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	      IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok11
     !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)= 1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por encima de la central. 
              s(m-1,n)=-8
              s(m-1,n+1)=2 
              s(m-1,n-1)=2
   !Línea superior 
              s(m-2,n)=1
	      END IF 
!LADO INFERIOR
              IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok10
   !Línea central
             s(m,n)=EMPOTR+D1
              END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	      IF ((m==(ppy-1)).AND.(n==1)) THEN !ok11
        !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
              END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	      IF ((m==2).AND.(n==1)) THEN !ok11
   !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	      IF ((n==(ppx)).AND.(m==2)) THEN!ok11
   !Línea central 
              s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
              s(m,n-1)=4*poisson-12
              s(m,n-2)=2
   !Línea inferior a la central 
   	      s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   	      s(m+1,n-1)=4-2*poisson
   !Línea inferior
   	      s(m+2,n)=1-(poisson**2)
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	      IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok12
   !Línea central 
              s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
              s(m,n-1)=4*poisson-12
              s(m,n-2)=2
   !Línea inferior a la central 
   	      s(m-1,n)=4*(poisson**2)+ 4*poisson-8
   	      s(m-1,n-1)=4-2*poisson
   !Línea inferior
   	      s(m-2,n)=1-(poisson**2)
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	      IF ((m==1).AND.(n==2)) THEN !ok12
   !Línea central 
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	      IF ((m==1).AND.(n==(ppx-1))) THEN !ok12
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	      IF ((m==(ppy)).AND.(n==2)) THEN !ok12
   !Borde correspondiente al borde inferior
             s(m,n)=EMPOTR+D1
	      END IF                                                                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AQui
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	      IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Borde correspondiente al borde inferior
              s(m,n)=EMPOTR+D1
	      END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
              IF((m==ppy).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==ppy).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==1).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF ((m==1).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 12
          	CASE(12)
                   !Estudiamos primero los puntos centrales
	 	   IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok10
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	      IF((m==(ppy-1)).AND.(n==2)) THEN !ok12
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea inferior
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	      END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	      IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok12
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea inferior
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	      END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	      IF ((m==2).AND.(n==2)) THEN !ok12
	!Línea central
              s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	      END IF 
	      IF((m==(2)).AND.(n==(ppx-1))) THEN!ok12 !aqui modifique el s(m,n)
	!Línea central
              s(m,n)= 22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	      END IF 
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2               
	      IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok12
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	      END IF 
	
	      IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok12
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	      IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok12
	!Línea central
	      s(m,n)=21+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	 !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	 !Línea por debajo de la línea central
              s(m+1,n)=-8
              s(m+1,n-1)=2
	 !Línea inferior
	      s(m-2,n)=1
	 !Línea superior
	      s(m+2,n)=1
	      END IF
 !LADO DERECHO
              IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok12
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
              IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok12
    !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)=1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por debajo de la central.
              s(m+1,n)=-8
              s(m+1,n+1)=2
              s(m+1,n-1)=2
   !Línea inferior
              s(m+2,n)=1
	      END IF 
              IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok12
	      s(m,n)=EMPOTR+D1
              END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	      IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok12
     !Línea central     
              s(m,n)=19+D1
              s(m,n+1)=-8
              s(m,n+2)= 1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por encima de la central. 
              s(m-1,n)=-8
              s(m-1,n+1)=2 
              s(m-1,n-1)=2
   !Línea por debajo de la central
   	      s(m+1,n)=2*poisson-6
   	      s(m+1,n+1)=2-poisson
   	      s(m+1,n-1)=2-poisson
   !Línea superior 
              s(m-2,n)=1
	      END IF 
!LADO INFERIOR
              IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok12
   !Línea central
              s(m,n)=-6*(poisson**2)-8*poisson+16+D1
              s(m,n-1)=4*(poisson**2)+4*poisson-8
              s(m,n+1)=4*(poisson**2)+4*poisson-8
              s(m,n+2)=1-(poisson**2)
              s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central 
              s(m-1,n)=4*poisson-12
              s(m-1,n-1)=4-2*poisson
              s(m-1,n+1)=4-2*poisson
   !Línea inferior
   	      s(m-2,n)=2
   	      END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	      IF ((m==(ppy-1)).AND.(n==1)) THEN !ok11
        !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
              END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	      IF ((m==2).AND.(n==1)) THEN !ok11
   !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	      IF ((n==(ppx)).AND.(m==2)) THEN!ok11
   	      s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	      IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok12
   	      s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	      IF ((m==1).AND.(n==2)) THEN !ok12
	      s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	      IF ((m==1).AND.(n==(ppx-1))) THEN !ok12
  	      s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	      IF ((m==(ppy)).AND.(n==2)) THEN !ok12
   !Línea central 
              s(m,n)=-7*(poisson**2)-8*poisson+17+D1
              s(m,n+1)=4*(poisson**2)+4*poisson-8
              s(m,n+2)=1-(poisson**2)
   !Línea Superior a la central 
   	      s(m-1,n)=4*(poisson)-12
   	      s(m-1,n+1)=4-2*poisson
   !Línea inferior
   	      s(m-2,n)=2
	      END IF
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	      IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Línea central 
              s(m,n)=-7*(poisson**2)-8*poisson+17+D1
              s(m,n-1)=4*(poisson**2)+4*poisson-8
              s(m,n-2)=1-(poisson**2)
   !Línea Superior a la central 
   	      s(m-1,n)=4*(poisson)-12
   	      s(m-1,n-1)=4-2*poisson
   !Línea inferior
   	      s(m-2,n)=2
	      END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
              IF((m==ppy).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==ppy).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==1).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF ((m==1).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 

          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          	CASE(13)                                                                                        !!!Caso todo empotrado
		    !Estudiamos primero los puntos centrales
	 	   IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok1
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	      IF((m==(ppy-1)).AND.(n==2)) THEN !ok1
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      END IF 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	      IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok1
	      !Línea central
	      s(m,n)=22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      END IF 
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	      IF ((m==2).AND.(n==2)) THEN !ok1
	!Línea central
              s(m,n)=22+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	      END IF 
	      IF((m==(2)).AND.(n==(ppx-1))) THEN!ok1
	!Línea central
              s(m,n)= 22+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	      END IF 
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2               
	      IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok1
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	      END IF 
	
	      IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok1
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	      IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok1
	!Línea central
	      s(m,n)=21+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	 !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	 !Línea por debajo de la línea central
              s(m+1,n)=-8
              s(m+1,n-1)=2
	 !Línea inferior
	      s(m-2,n)=1
	 !Línea superior
	      s(m+2,n)=1
	      END IF
 !LADO DERECHO
              IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok1
	!Línea central
	      s(m,n)=EMPOTR+D1
	      END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
              IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok1 
    !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)=1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por debajo de la central.
              s(m+1,n)=-8
              s(m+1,n+1)=2
              s(m+1,n-1)=2
   !Línea inferior
              s(m+2,n)=1
	      END IF 
              IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	      IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok1
     !Línea central     
              s(m,n)=21+D1
              s(m,n+1)=-8
              s(m,n+2)= 1
              s(m,n-1)=-8
              s(m,n-2)=1
   !Línea por encima de la central. 
              s(m-1,n)=-8
              s(m-1,n+1)=2 
              s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
              s(m-2,n)=1
	      END IF 
!LADO INFERIOR
              IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	      IF ((m==(ppy-1)).AND.(n==1)) THEN !ok1
        !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
              END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	      IF ((m==2).AND.(n==1)) THEN !ok1
   !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	      IF ((n==(ppx)).AND.(m==2)) THEN!ok1
   !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	      IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok1
   !Borde vertical correspondiente al borde izquierdo
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	      IF ((m==1).AND.(n==2)) THEN !ok1
   !Borde horizontal correspondiente al borde superior
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	      IF ((m==1).AND.(n==(ppx-1))) THEN !ok1
   !Borde horizontal correspondiente al borde superior
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	      IF ((m==(ppy)).AND.(n==2)) THEN !ok1
   !Borde correspondiente al borde inferior
              s(m,n)=EMPOTR+D1
	      END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	      IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Borde correspondiente al borde inferior
              s(m,n)=EMPOTR+D1
	      END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
              IF((m==ppy).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==ppy).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF((m==1).AND.(n==1)) THEN !ok1
   !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
              IF ((m==1).AND.(n==ppx)) THEN !ok1
  !Línea central
              s(m,n)=EMPOTR+D1
              END IF 
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 14
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 14
   	CASE(14)
	    !Estudiamos primero los puntos centrales
	 centrales:IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	           END IF centrales
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	alinfizq:IF((m==(ppy-1)).AND.(n==2)) THEN !ok
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=-2*poisson+2
	END IF alinfizq
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	alinfder:IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok
	      !Línea central
	      s(m,n)=18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=-2*poisson+2
	END IF alinfder
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	alsupizq: IF ((m==2).AND.(n==2)) THEN !ok
	!Línea central
              s(m,n)=18+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n-1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF alsupizq
	alsupder: IF((m==(2)).AND.(n==(ppx-1))) THEN!ok
	!Línea central
              s(m,n)= 18+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	      s(m-1,n+1)=-2*poisson+2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF alsupder
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	pladoizq: IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF pladoizq
	
	ladoizq: IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF ladoizq
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	pladoder: IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF pladoder   
 !LADO DERECHO
   ladoder: IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF ladoder
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
 pladosup: IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF pladosup
ladosup:IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF ladosup
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
 pladoinf: IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF pladoinf
!LADO INFERIOR
ladoinf:IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF ladoinf
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok

   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2

	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=2*(poisson**2)+ 4*poisson-6
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
          s(m+1,n)=2*(poisson**2)+ 4*poisson-6
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=2*(poisson**2)+4*poisson-6
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)- 8*poisson+15+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-1)=2*(poisson**2)+4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=-5*(poisson**2)-8*poisson+15+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
          s(m,n+1)=2*(poisson**2)+ 4*poisson-6
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
esqinfizq:IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*(poisson**2)+ 8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 8*poisson-12
          s(m-1,n+1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2   
END IF esqinfizq
esqinfder: IF((m==ppy).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*poisson**2+2
   !Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+8*poisson-12
          s(m-1,n-1)=8-8*poisson
   !Línea superior
          s(m-2,n)=-2*(poisson**2)+2
END IF esqinfder
esqsupizq: IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n+1)=4*poisson**2+8*poisson-12
          s(m,n+2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n+1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
END IF esqsupizq 
esqsupder: IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=-4*(poisson**2)-8*poisson+12+D1
          s(m,n-1)=4*(poisson**2)+ 8*poisson-12
          s(m,n-2)=-2*(poisson**2)+2
   !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 8*poisson-12
          s(m+1,n-1)=8-8*poisson
   !Línea inferior
          s(m+2,n)=-2*(poisson**2)+2
END IF esqsupder
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		   
		      P(t)=s(j,i)

		      t=t+1
!		     
		    END DO
          END DO
          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CASO 15
	CASE(15)
	!Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok15
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok15
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n+1)=2-poisson
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok15
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	      !Línea por debajo de la línea central
	      s(m+1,n)=2*poisson-6
	      s(m+1,n-1)=2-poisson
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok15
	!Línea central
              s(m,n)=20+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok15
	!Línea central
              s(m,n)= 20+D1
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=2*poisson-6
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok2
	!Línea central
	      s(m,n)=21+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok15
	!Línea central
	  s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok15
	!Línea central
	  s(m,n)=21+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok16
	!Línea central
	  s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok16
    !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. Coincide con el borde superior
          s(m-1,n)=-6+2*poisson
          s(m-1,n+1)=2-poisson
          s(m-1,n-1)=2-poisson
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok16
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por debajo de la central
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea inferior
          s(m+2,n)=2
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
 	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok16
     !Línea central     
          s(m,n)=19+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central. Coincide con el borde inferior
          s(m+1,n)=-6+2*poisson
          s(m+1,n+1)=2-poisson
          s(m+1,n-1)=2-poisson
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok15
   !Línea central
          s(m,n)=16-8*poisson-6*(poisson**2)+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
          s(m,n-2)=1-(poisson**2)
   !Línea por encima de la central
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea inferior
          s(m-2,n)=2
	END IF
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok15
	!Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok15
  	!Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok15
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok15
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok2
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-7*(poisson**2)-8*poisson+17+D1
          s(m,n+2)=1-(poisson**2)
          s(m,n+1)=4*(poisson**2)+4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
          !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok2
   !Borde horizontal correspondiente al borde superior
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m,n-2)=1-poisson**2
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m+1,n)=-12+4*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m+2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok2
   !Borde correspondiente al borde inferior
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m,n+1)=4*(poisson**2)+ 4*poisson-8
          s(m,n+2)=1-(poisson**2)
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok
   !Borde correspondiente al borde inferior
          s(m,n)=-7*(poisson**2)-8*poisson+17+D1
          s(m,n-1)=4*(poisson**2)+ 4*poisson-8
          s(m,n-2)=1-poisson**2
   !Línea  paralela al borde inferior
          s(m-1,n)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea más exterior
          s(m-2,n)=2
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
	!Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
	!Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=EMPOTR+D1
	END IF
          t=1
          DO j=1,ppy
		DO i=1,ppx
		   P(t)=s(j,i)
		   t=t+1
		END DO
          END DO

          DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO 16
	CASE(16)
	    !Estudiamos primero los puntos centrales
	IF (((n>2).AND.(n<(ppx-1))).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok16
	           s(m,n)=20+D1
	           s(m,n+1)=-8
	           s(m,n+2)=1
	           s(m,n-1)=-8
	           s(m,n-2)=1
	           !Línea por encima de la central
	           s(m-1,n)=-8
	           s(m-1,n+1)=2
	           s(m-1,n-1)=2
	           !Línea por debajo de la central
	           s(m+1,n)=-8
	           s(m+1,n+1)=2
	           s(m+1,n-1)=2
	           !Líneas superior e inferior
	           s(m+2,n)=1
	           s(m-2,n)=1
	END IF 
!!!!!!!!!CONDICIONES DE CONTORNO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!CONDICIÓN DE CONTORNO INFERIOR
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)
	IF((m==(ppy-1)).AND.(n==2)) THEN !ok16
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      !Línea por encima de la línea central
	      s(m-1,n-1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      !Línea superior
	      s(m-2,n)=1 
	END IF
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO DERECHO)
	IF((m==(ppy-1)).AND.(n==ppx-1)) THEN !ok16
	      !Línea central
	      s(m,n)=20+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	      !Línea por encima de la línea central
	      s(m-1,n+1)=2-poisson
	      s(m-1,n)=-8
	      s(m-1,n-1)=2
	      !Línea superior
	      s(m-2,n)=1
	END IF
!CONDICIÓN DE CONTORNO 
	!FILA ANTERIOR AL BORDE INFERIOR (PUNTO IZQUIERDO)	
	IF ((m==2).AND.(n==2)) THEN !ok16
	!Línea central
              s(m,n)=20+D1
	      s(m,n-1)=2*poisson-6
	      s(m,n+1)=-8
	      s(m,n+2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n-1)=2-poisson
	      s(m+1,n+1)=2
	  !Línea inferior
	      s(m+2,n)=1
	END IF
	IF((m==(2)).AND.(n==(ppx-1))) THEN!ok16
	!Línea central
              s(m,n)= 20+D1
	      s(m,n+1)=2*poisson-6
	      s(m,n-1)=-8
	      s(m,n-2)=1
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2-poisson
	      s(m+1,n-1)=2
	!Línea inferior
	      s(m+2,n)=1
	END IF
	!CONDICIONES DE CONTORNO EN LOS LADOS
	!LADO PARALELO AL IZQUIERDO,CORRIDA UNA POSICIÓN, n==2
	IF ((n==2).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok16
	!Línea central
	      s(m,n)=19+D1
	      s(m,n+1)=-8
	      s(m,n+2)=1
	      s(m,n-1)=-6+2*poisson
	!Línea por encima de la línea central
	      s(m-1,n)=-8
	      s(m-1,n+1)=2
	      s(m-1,n-1)=2-poisson
	!Línea por debajo de la línea central
	      s(m+1,n)=-8
	      s(m+1,n+1)=2
	      s(m+1,n-1)=2-poisson
    !Línea superior
	      s(m-2,n)=1
	!Línea inferior
              s(m+2,n)=1
	END IF
	
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==1)) THEN !ok16
	!Línea central
	      s(m,n)=16-8*poisson-6*(poisson**2)+D1
	      s(m,n+1)=-12+4*poisson
	      s(m,n+2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+4*poisson-8
          s(m-1,n+1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n+1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF 
 !LADO PARALELO AL DERECHO,CORRIDA UNA POSICIÓN, n==ppx-1
	IF (n==(ppx-1).AND.((m>2).AND.(m<(ppy-1)))) THEN !ok16
	!Línea central
	  s(m,n)=19+D1
	  s(m,n-1)=-8
	  s(m,n-2)=1
	  s(m,n+1)=-6+2*poisson
	 !Línea por encima de la línea central
	  s(m-1,n)=-8
	  s(m-1,n-1)=2
	  s(m-1,n+1)=2-poisson
	 !Línea por debajo de la línea central
          s(m+1,n)=-8
          s(m+1,n-1)=2
          s(m+1,n+1)=2-poisson
	 !Línea inferior
	  s(m-2,n)=1
	 !Línea superior
	  s(m+2,n)=1
	END IF
 !LADO DERECHO
	IF (((m>2).AND.(m<(ppy-1))).AND.(n==ppx)) THEN!ok16
	!Línea central
	  s(m,n)=16-8*poisson-6*(poisson**2)+D1
	  s(m,n-1)=-12+4*poisson
	  s(m,n-2)=2
	!Línea por encima de la central
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-1,n-1)=4-2*poisson
    !Línea por debajo de la central
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
          s(m+1,n-1)=4-2*poisson
    !Línea superior
          s(m-2,n)= 1-(poisson**2)
          s(m+2,n)= 1-(poisson**2)
	END IF
 !LADO PARALELO AL SUPERIOR,CORRIDA UNA POSICIÓN, m==2
	IF((m==2).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok16
    !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)=1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por debajo de la central.
          s(m+1,n)=-8
          s(m+1,n+1)=2
          s(m+1,n-1)=2
   !Línea inferior
          s(m+2,n)=1
	END IF
	IF((m==1).AND.((n>2).AND.(n<ppx-1))) THEN !ok16
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
 !LADO PARALELO AL INFERIOR,CORRIDA UNA POSICIÓN, m==ppy-1
	IF((m==ppy-1).AND.((n>2).AND.(n<(ppx-1)))) THEN !ok
     !Línea central     
          s(m,n)=21+D1
          s(m,n+1)=-8
          s(m,n+2)= 1
          s(m,n-1)=-8
          s(m,n-2)=1
   !Línea por encima de la central. 
          s(m-1,n)=-8
          s(m-1,n+1)=2 
          s(m-1,n-1)=2
   !Línea superior !he modificado estas lineas pues aparecia un mas (m+1) y queda fuera
          s(m-2,n)=1
	END IF
!LADO INFERIOR
	IF((m==ppy).AND.((n>2).AND.(n<ppx-1))) THEN !ok16
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTOS PUNTOS CERCANOS A LAS ESQUINAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE VERTICAL)

!cesqizqinfver
	IF ((m==(ppy-1)).AND.(n==1)) THEN !ok16

   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m-1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE VERTICAL)
!cesqizqsupver
	IF ((m==2).AND.(n==1)) THEN !ok16
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n+1)=-12+4*poisson
          s(m+1,n+1)=4-2*poisson
   !Línea más exterior
          s(m,n+2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE VERTICAL)
!cesqdersupver:
	IF ((n==(ppx)).AND.(m==2)) THEN!ok16
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m+2,n)=1-(poisson**2)
          s(m+1,n)=4*(poisson**2)+ 4*poisson-8
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m+1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE VERTICAL)
!cesqderinfver:
	IF ((m==(ppy-1)).AND.(n==ppx)) THEN !ok1
   !Borde vertical correspondiente al borde izquierdo
          s(m,n)=-7*(poisson**2)- 8*poisson+17+D1
          s(m-1,n)=4*(poisson**2)+ 4*poisson-8
          s(m-2,n)=1-(poisson**2)
   !Línea vertical paralela al borde izquierdo
          s(m,n-1)=-12+4*poisson
          s(m-1,n-1)=4-2*poisson
   !Línea más exterior
          s(m,n-2)=2
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqsuphor:
	IF ((m==1).AND.(n==2)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA SUPERIOR DERECHA (EJE HORIZONTAL)
!cesqdersuphor:
	IF ((m==1).AND.(n==(ppx-1))) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR IZQUIERDA (EJE HORIZONTAL)
!cesqizqinfhor:
	IF ((m==(ppy)).AND.(n==2)) THEN !ok1
      !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!!PUNTO CERCANO A LA ESQUINA INFERIOR DERECHA (EJE HORIZONTAL)
!cesqderinfhor:
	IF ((m==(ppy)).AND.(n==(ppx-1))) THEN !ok1
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF 
!PUNTOS ESQUINA
!ESQUINA INFERIOR IZQUIERDA
	IF((m==ppy).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==ppy).AND.(n==ppx)) THEN !ok
    !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF((m==1).AND.(n==1)) THEN !ok
   !Línea central
          s(m,n)=EMPOTR+D1
	END IF
	IF ((m==1).AND.(n==ppx)) THEN !ok
  !Línea central
          s(m,n)=EMPOTR+D1
	END IF
          t=1
          DO j=1,ppy
		    DO i=1,ppx
		      P(t)=s(j,i)
		      t=t+1
		    END DO
          END DO
	!Creamos la matriz de coeficientes para luego resolver triangulando
	  DO t=1,total
          	IF(P(t).NE.0.0) THEN
             		VALORES(kk)=P(t)
             		COLUMNAS(kk)=t
             		kk=kk+1
             	END IF
          END DO
          ROWINDEX(nn)=kk
	  nn=nn+1
          s=0.0
          w=w+1
END SELECT diffin 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 END DO INDICECOLUMNAS
END DO INDICEFILAS
NVALUES=kk-1
ALLOCATE(VAL(NVALUES))
ALLOCATE(COL(NVALUES))
VAL=0.0
COL=0.0
DO i=1,NVALUES
	VAL(i)=VALORES(i)
	COL(i)=COLUMNAS(i)
END DO
DEALLOCATE(VALORES)
DEALLOCATE(COLUMNAS)
P=0.0
X=0.0
!!Preparamos el vector de cargas
CALL VECTORCARGAS(a,b,pasox,ppx,ppy,total,P)
P=(P*(pasox**4))/D
!Guardamos el vector de cargas en la matriz Q
CALL REORDENACIONSIMPLE(PPY,PPX,TOTAL,P,Q)
!Ya tenemos en Q una matriz que es el vector de cargas en la posición x,y correspondiente

!!Empezamos la resolución
!CALL getrf(coef,ipiv) 
!CALL getrs(coef,ipiv,P,'N')
CALL SPARSE(VAL,COL,ROWINDEX,perm,P,X,total,NVALUES)
OPEN(26,FILE="/home/Placas/Desplazamientos-Kirchhoff.dat")
DO i=1,total !HE CAMBIADO ESTO, HAY QUE TENER CUIDADO LE HE PUESTO LA P Y NO LA X
WRITE(26,*)X(i)
END DO
WRITE(*,*)'Hemos escrito el fichero con los desplazamientos.'
CLOSE(26)
CALL MOMENTOSMOD(X,s,MX,MY,MT,ppx,ppy,poisson,D,pasox,CC,espesor)
ALLOCATE(MATRIZDESPLAZ(PPY,PPX))
!Pasamos el vector desplazamientos a una matriz de desplazamientos
CALL REORDENACIONSIMPLE(PPY,PPX,TOTAL,X,MATRIZDESPLAZ)
!Limpiamos la memoria para poder reutilizarla
DEALLOCATE(VAL)
DEALLOCATE(COL)
DEALLOCATE(ROWINDEX)
DEALLOCATE(X)
DEALLOCATE(s)
DEALLOCATE(P)
!Redefinimos la variable TOTAL
total=3*PPX*PPY
!Redefinimos el tamaño del vector X
ALLOCATE(X(total))
ALLOCATE(GIROX(PPY,PPX))
ALLOCATE(GIROY(PPY,PPX))
WRITE(*,*)'INTRODUCE LAS CONDICIONES DE CONTORNO'
READ(*,*)CC(1),CC(2),CC(3),CC(4)
!CALL ECUACIONESMINDLIN(PPY,PPX,total,W,X,GIROX,GIROY,poisson,D,pasox,k,E,espesor,Q,CC)
CALL ECUACIONESMINDLINEMPOTRADOTODO(PPY,PPX,total,W,X,GIROX,GIROY,poisson,D,pasox,k,E,espesor,Q)
WRITE(*,*)'SALI DE LAS ECUACIONES DE MINDLIN'


!	DO I=1,20 !Buscamos la mejor aproximación. Empeora cada vez que avanzamos...
!		CALL MINDLIN1EMPOTRADO(PPY,PPX,total,MATRIZDESPLAZ,X,GIROX,GIROY,poisson,D,pasox,k,E,espesor,Q)!Esto nos dará los giros en x e y.
!		total=PPX*PPY
!		CALL MINDLIN2EMPOTRADO(PPY,PPX,total,k,pasox,GIROX,GIROY,Q,MATRIZDESPLAZ,poisson,espesor,E)
!	END DO

END PROGRAM PROGRAMAPRINCIPAL
!ifort -openmp -O3 -o PROGRAMA20022011 -I$MKLINCLUDE -L$MKLPATH PROGRAMA20022011.f90 -lmkl_lapack95 -Wl,--start-group $MKLPATH/libmkl_intel.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group -liomp5 -lpthread
