Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/08/2008, 07:00
delp
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 15 años, 9 meses
Puntos: 0
problemas con este programa

holaaaaaaaaaaaaa necesito aux con este programa estoy utilizando para copilarlo el FORCE 2.0 pero no se que pasa que genera un monton de errores..........
ahi va el codigo:


PROGRAM GAUSS
WRITE(*,*)"RESOLUCION DE MATRICES A TRAVS DE GAUSS Y PIVOTEO"
IMPLICIT NONE
INTEGER:: I,J,K,N
REAL:: FACTOR
REAL,ALLOCATABLE ::MAT(80,80),RESULTADOS(:)

WRITE(*,*)"PROGRAMA DE RESOLUCIàN DE ECUACIONES"
WRITE(*,*)" A PARTIR DEL MTODO DE GAUSS "
WRITE(*,*)""
WRITE(*,*)""
WRITE(*,*)"INTRODUCE EL NUMERO INCOGNITAS EN LAS ECUACIONES:"
READ(*,*)N
ALLOCATE (MAT(N,N+l),RESULTADOS(N))
DO I=1,N,l
DO J=1,N+1,1
WRITE(*,*)"INTRODUCE EL ELEMENTO (",I,",",J,"):"
READ(*,*)MAT(I, J)
END DO
END DO
DO K=1,N-1,1
DO I=K,N-1,1
IF (K==I) THEN
CALL PIVOTE(MAT,N,K)
ENDIF
FACTOR=MAT(I+1,K)/MAT(K,K
DO J=1,(N+1),1
MAT(I+1,J)=MAT(I+1,J)-(FACTOR*MAT(K,J))
ENDDO
ENDDO
ENDDO
WRITE(*,*)"LA MATRIZ RESULTANTE DESPUS DE LAS OPERACIONES ES:"
WRITE(*,*)""
DO I=1,N,l
DO J=1,N+1,1
WRITE(*,*)"(",I,",",J,")",MAT(I,J)
ENDDO
ENDDO
CALL SOLUCION(MAT.N,RESULTADOS)
write(*,*)"los resultados para los valores de x son estos: "
DO I=1,N=l
WRITE(*,*)" X(",I,"):",RESULTADOS(I)
ENDDO
ENDPROGRAM
SUBROUTINE PIVOTE(MAT,N,i)
WRITE(*,*)"SUBRUTINA QUE NOS AYUDA A DETERMINAR EL ELEMENTO MAYOR"
WRITE(*,*)"A SER CONSIDERADO EL PIVOTE DE LOS CµLCULOS Y"
WRITE(*,*)"LO REEMPLAZA EN EL ORDEN DE LOS MISMOS"
IMPLICIT NONE
INTEGER::I,N,K,INDICE,BAND
REAL::TEMP
REAL,DIMENSION (N,N+l)::MAT
BAND=0
INDICE=I
DO K=I+1,N,1
IF (ABS(MAT(INDICE,I))<ABS(MAT(K,I))) THEN
INDICE=K
BAND=1
ENDIF
ENDDO
IF (BAND/=0) THEN
DO K=I,N+1,1
TEMP=MAT(INDICE, K)
MAT(INDICE,K)=MAT(I,K)
MAT(I,K)=TEMP
ENDDO
ENDIF
RETURN
ENDSUBROUTINE

SUBROUTINE SOLUCION(MAT,N,RESULTADOS)
IMPLICIT NONE
INTEGER:: I,J,N
REAL:: SUMA
REAL,DIMENSION(N):*RESULTADOS
REAL,DIMENSION(N,N+l)::MAT
SUMA=0
RESULTADOS(N)=MAT(N,N+1)/MAT(N,N)
DO I=N-1,1,-1
DO J=I+1,N,1
SUMA=SUMA+(MAT(I,J)*RESULTADOS(J))
ENDDO
RESULTADOS(I)=(MAT(I,N+l)-SUMA)/MAT(I,I)
ENDDO
RETURN
ENDSUBROUTINE





si me puedes ayudar te lo agradeceria ......