IPN

IPN
IPN-ESIQIE

viernes, 14 de mayo de 2010

programa temperaturas.....

PROGRAM temperaturas
! Lee una serie de temperaturas de un archivo y
! calcula el valor medio
IMPLICIT NONE
CHARACTER (LEN=20):: archivo,archivo2
INTEGER:: cuenta, error_de_apertura, error_de_lectura, error_de_escritura
REAL:: temperatura, suma, media
! Abrir archivo como unidad 15
WRITE( *, *)"Dame nombre del archivo para abrir:"
READ (*, *) archivo
OPEN(15, FILE=archivo, STATUS="OLD", ACTION="READ",IOSTAT= error_de_apertura)
IF (error_de_apertura > 0) STOP ' error al abrir el archivo '
WRITE( *, *)"Dame el nombre del archivo donde deseas guardar:"
READ (*, *) archivo2
OPEN(20,FILE=archivo2,STATUS="UNKNOWN",ACTION="WRITE",IOSTAT=error_de_apertura)
IF (error_de_apertura>0) STOP 'archivo no creado'
100 FORMAT (1X, F4.1)
cuenta=0
suma=0
DO
READ (15, 100, IOSTAT = error_de_lectura) temperatura
IF (error_de_lectura >0 ) THEN
WRITE(*,*) "error de lectura"
EXIT
ELSE IF (error_de_lectura <0 ) THEN !WRITE(*,*) "fin del archivo" EXIT ELSE suma = suma + temperatura cuenta = cuenta + 1 PRINT*,temperatura WRITE(20,*,IOSTAT=error_de_escritura)temperatura IF (error_de_escritura>0)STOP 'error de escritura'
!PRINT*,suma
!PRINT*,cuenta
ENDIF
END DO
! Calcular temperatura media
media = suma/ REAL(cuenta)
PRINT*
WRITE (*, *) " temperatura media: "
WRITE (*, *) media

WRITE(20,*,IOSTAT=error_de_escritura)
IF (error_de_escritura>0)STOP 'error de escritura'
WRITE(20,*,IOSTAT=error_de_escritura)"temperatura media:",media
IF (error_de_escritura>0)STOP 'error de escritura'
CLOSE (15)
CLOSE (20)
END PROGRAM temperaturas