Duda
Publicado por nordri (2 intervenciones) el 20/03/2010 14:09:54
Me pregunto por qué este código:
PROGRAM matriz
USE FILEUNITS ; USE PARAMETERS
IMPLICIT NONE
INTEGER, DIMENSION(:), ALLOCATABLE :: m
INTEGER :: error
ALLOCATE(m(28000000000000),STAT=error)
IF (error.NE.0) THEN
PRINT*, "Error al reservar memoria"
ELSE
PRINT*, "OK, Memoria reservada"
ENDIF
DEALLOCATE(m)
END PROGRAM matriz
Funciona y reserva esa cantidad de memoria y en cambio este otro:
PROGRAM matriz
USE FILEUNITS ; USE PARAMETERS
IMPLICIT NONE
INTEGER, DIMENSION(:,:), ALLOCATABLE :: m
INTEGER :: error
ALLOCATE(m(167322,167322),STAT=error)
IF (error.NE.0) THEN
PRINT*, "Error al reservar memoria"
ELSE
PRINT*, "OK, Memoria reservada"
ENDIF
DEALLOCATE(m)
END PROGRAM matriz
No funciona diciendo que no puede reservar la memoria. Alguien me lo puede explicar?
Muchas gracias y saludos.
PROGRAM matriz
USE FILEUNITS ; USE PARAMETERS
IMPLICIT NONE
INTEGER, DIMENSION(:), ALLOCATABLE :: m
INTEGER :: error
ALLOCATE(m(28000000000000),STAT=error)
IF (error.NE.0) THEN
PRINT*, "Error al reservar memoria"
ELSE
PRINT*, "OK, Memoria reservada"
ENDIF
DEALLOCATE(m)
END PROGRAM matriz
Funciona y reserva esa cantidad de memoria y en cambio este otro:
PROGRAM matriz
USE FILEUNITS ; USE PARAMETERS
IMPLICIT NONE
INTEGER, DIMENSION(:,:), ALLOCATABLE :: m
INTEGER :: error
ALLOCATE(m(167322,167322),STAT=error)
IF (error.NE.0) THEN
PRINT*, "Error al reservar memoria"
ELSE
PRINT*, "OK, Memoria reservada"
ENDIF
DEALLOCATE(m)
END PROGRAM matriz
No funciona diciendo que no puede reservar la memoria. Alguien me lo puede explicar?
Muchas gracias y saludos.
Valora esta pregunta
0