La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

FORTRAN 77 y Cómputo Científico

Presentaciones similares


Presentación del tema: "FORTRAN 77 y Cómputo Científico"— Transcripción de la presentación:

1 FORTRAN 77 y Cómputo Científico
Guilmer González Facultad de Ciencias – UNAM Programación Avanzada para Ingenieros Petroleros asilados en la Facultad de Ciencias

2 Algunos operadores, sentencias, conceptos de uso común (I)
Constante: Valor que no cambia durante el programa. Variable: Valor que puede modificarse. Constante y variables ENTERAS: I,J,K,L,M,N : enteras por defecto Declaraciones: integer, integer*2, integer*4 Constante y variables REALES Declaraciones: real, real*4,real*8, ¿ real*16 ? (programa int_div) Constante y variables LOGICAS (solo 2 valores) .TRUE. Verdadero .FALSE. Falso OPERADORES LOGICOS DE RELACION ESPECÌFICOS .EQ. Igual a .NOT. negación .NE. desigual .AND. y .LT. Menor que .OR. o .LE. Menor o igual que .GT. Mayor que .XOR. o exclusivo .GE. Mayor o igual que

3 Constantes y variables alfanuméricas
declaración Character*30 cad Cad=‘Esto es una cadena de caracteres’ Cad(1:1)=‘E’ Operador más usual con cadenas: // Sentencia IMPLICIT Implicit tipo_de_variable lista_de_letras Implicit real*8 (A-H,O-Z) Implicit NONE

4 Funciones en FORTRAN Intrínsecas: las que trae el compilador. REAL();AIMAG(),SIN(),COS(),… 2)De usuario: las define el usuario y=f(x) Entrada-Salida E/S Open READ, WRITE y FORMAT CLOSE OPEN(UNIT=unit,FILE=nombre,STATUS= ‘NEW’ ‘OLD’ ‘UNKNOWN’ CLOSE(unit) READ(UNIT=unit,FORMAT=formato) lista WRITE(UNIT=unit,FORMAT=formato)lista etiqueta FORMAT(lista_de_formato)

5 Sentencias de control en FORTRAN
IF GO TO DO - ENDDO IF(condición) sentencia IF(condición) THEN bloque ENDIF primer bloque ELSE segundo bloque

6 Transfiere control del programa. !! Evitar su uso !!
GO TO etiqueta Transfiere control del programa. !! Evitar su uso !! Alternativa Bloque ENDDO DO ivar=n1,n2,n3 bloque ENDDO DO etiqueta ivar=n1,n2,n3 bloque Etiqueta CONTINUE DO DO DO DO Incorrecta Correcta ENDDO ENDDO ENDDO ENDDO

7 C C Programa que realiza una tabla de la funcion C sin(x) entre dos valores de x dados por el C usuario. C C--- Declaracion de variables implicit real*8 (a-h,o-z) character*20 file_out c c--Entrada de datos write(6,*)' limite inferior:' read(5,*)xinf write(6,*)' limite superior:' read(5,*)xsup write(6,*)' numero de intervalos:' read(5,*)inter write(6,*)' nombre del archivo:' read(5,'(a20)')file_out C---Realizacion de la tabla open(unit=30,file=file_out,status='new') write(30,50) xpaS=(xsup-xmin)/dfloat(inter) do i=1,inter+1 x=xinf+dble(i-1)+xpas y=dsin(x) write(30,100)X,Y enddo 50 FORMAT(8X,' x ',10X,' sin(x) '/) 100 FORMAT(2(2X,D13.5)) close(30) stop end

8 Algoritmo: Sistema secuencial para resolver un problema
Ejemplo: Diagrama de flujo para resolver una ecuación de segundo grado INICIO Entrar a b c Si No Escribir Escribir FINAL

9 C C Programa para el calculo de las raices de una ecuacion de segundo C grado C complex*8 z1,z2 tol=1.0d-5 write(6,*) ‘ De el coeficiente cuadratico’ read(5,*)a if(abs(a).lt.tol)then write(6,*) ‘ El coeficiente debe ser mayor’ stop endif write(6,*) ‘ De el coeficiente lineal’ read(5,*)b write(6,*) ‘ De el coeficiente inependiente’ read(5,*)c open(unit=12,file=‘resul.res’,status=‘new’) C Calculo y escritura de las fraices dis=b*b-4.*a*c if(dis.ge.0.) then x1=(-1.0*b + sqrt(dis))/(2.0*a) x2=(-1.0*b - sqrt(dis))/(2.0*a) write(12,100) ‘ primera raiz = ‘,x1 write(12,100) ‘ segunda raiz = ‘,x2 else z1=(cmplx(-1.0*b)+sqrt(cmplx(dis)))/(cmplx(2.0*a)) z2=(cmplx(-1.0*b)-sqrt(cmplx(dis)))/(cmplx(2.0*a)) write(12,100) ‘ primera raiz = ‘,z1 write(12,100) ‘ segunda raiz = ‘,z2 100 format(2x,a20,2x,e15.8) 200 format(2x,a20,2x,’(‘,e15.8,’.’e15.9,’)’) close(12) end


Descargar ppt "FORTRAN 77 y Cómputo Científico"

Presentaciones similares


Anuncios Google