Académique Documents
Professionnel Documents
Culture Documents
Contenido:
1 Funciones De Biblioteca ( Del Lenguaje)
2 Funciones Definidas por el Usuario
3 Comando Function y sus argumentos
4 Manejo y Uso de Sub Programas
5 Comando Subroutine
6 Manejo y Uso de Sus Parmetros
7 Comando Use
8 Programacin Estructurada
9 Comando Module
10 Comando Contains
11 Evidencias Para El Aprendizaje
1
Funcione
2
Para llamar a una funcin bastar con solo llamarla, dentro de alguna
expresin.
Las funciones pueden realizar cualquier tipo de proceso permitido por el
Fortran
Vgr.
PROGRAM ABSOLUTO
IMPLICIT NONE
INTEGER:: X
READ (*,*) X
ABSO = ABSOL (X)
WRITE (*,*) X
RETURN
END PROGRAM
ABSOLUTO
FUNCTION ABSOL(A)
IMPLICIT NONE
INTEGER, INTENT(InOut) :: A
INTEGER :: ABSOL
ABSOL =SQTR (ABSOL**2)
RETURN
END FUNCTION ABSOL
Aqu podemos
3
Funciones De Librera ( Del Compilador y/ de
Formato1: Formato de
Etiqueta: Call subroutine (nombre)(lista de argumentos
ficticios)
4
Lista de argumentos reales.- Aqu se encuentra la lista de argumentos que
el subprograma usa para su proceso. Pudiesen llegar a
coincidir en que se llamasen de igual forma que el programa
principal,
ms eso no tiene importancia.
Seccin de declaracin.- Aqu se declara el modo de cada variable, as
como si es de entrada de datos, salida o entrada salida.
Seccin de ejecucin (proceso).- En esta etapa debe incluirse la
expresin con la variable que contenga el resultado del
proceso pudiendo ser inclusive arreglos completos.
Return.-Nos indica que el resultado se regresa al programa que realiz la
llamada.
End Subroutine nombre.- Aqu damos por cerrado el proceso y el nombre
Reglas:
El orden en que se enlistan los argumentos ficticios, es de tipo
Posicional, es decir en esa posicin el auto programa interpreta que
recibe y enva. Es por ello que pueden llamarse distinto los
argumentos tanto en el programa principal como en los subprogramas.
En la seccin de declaracin se indica y refuerza que argumentos son
de entrada intent (in), de salida intent (out)y de entrada salida
intent
(inout), as como su modo de variable.
Es recomendable hacer uso del estatuto implicit none tanto en
el programa principal como en el subprograma.
Un subprograma puede contener todos los llamados que sean
Ejemplo:
PROGRAM MATRICES
IMPLICIT NONE
INTEGER:: N= 10, I, J
REAL, DIMENSIN (N,N):: A,B
READ (*,*) ((A(I, J), I=1, N), J=1, N)
READ (*,*) ((B(I, J), I=1, N), J=1, N)
CALL SMATRIZ (A, B, S, N) Aqu podemos apreciar el
CALL RMATRIZ (A, B, R, N) llamado a cuatro diferentes
CALL P MATRIZ (A, B, P, N) sub-programas ( sub-rutinas).
CALL SALIDAM (A, B, S, R, P, N)
END PROGRAM MATRICES
1
SUBROUTINE RMATRIZ (X, Y, RESTA, M)
IMPLICIT NONE
INTEGER, INTENT(IN)::M
REAL, INTENT(IN); DIMENSION (M, M):: RESTA
RESTA = X - Y
RETURN
END SUBROUTINE RMATRIZ
Ayuda:
2
La recepcin de resultados se indica en la parte inferior del smbolo
de
llamada (programa externo)
En la llamada el subprograma SALIDAM, carece de elementos en la
parte
inferior del inferior del smbolo. Esto es por que solo enva y no
regresa resultados, solo el control para terminar el proceso.
Programacin estructurada
3
USE.- Es el comando que nos permite el acceso a los comando
almacenados (voltilmente), en la memoria alta de la
computadora.
Nombre del mdulo.- Este es el nombre que el programador haya asignado
a la estructura que almacen los datos.
Ejemplo:
MODULE ARREGLO
IMPLICIT NONE
SAVE
INTEGER, PAREMETER:: N=10
REAL, DIMENSION (N,N):: VECTOR
END MODULE ARREGLO
PROGRAM APLICACIN
USE ARREGLO
IMPLICIT NONE
VECTOR = (/1,2,3,4,5,6,7,8,9,10/)
CALL SALIDA
END PROGRAM APLICACIN
SUBROUTINE SALIDA
USE SALIDA
IMPLICIT NONE
WRITE (*,*) VECTOR
RETURN
END SUBROUTINE
4
CONTAINS.- Es un estatuto que nos permite adicionar otra serie de
instrucciones no contenidas en una estructura. De tal manera que
podemos
incluir todo tipo de subprogramas previamente creados para poder
Ejemplo:
MODULE MATRIZ
IMPLICIT NONE
! DECLARAR (LOS DATOS QUE SE DEBEN COMPARTIR EN EL PROCESO)
CONTAINS
SUBROUTINE MATRIZS (K,Y, SUMA,M)
IMPLICIT NONE
INTEGER, INTENT (IN):: N
REAL, INTENT (IN) DIMENSION (M,M)::X,Y
REAL, INTENT (IOUT),DIMENSION (M,M)::SUMA
SUMA = X + Y
RETURN
END SUBROUTINE MATRIZS
END MODULE MATRIZ
PROGRAM PRINCIPAL
USE MATRIZ
IMPLICIT NONE
---
CALL MATRIZ (A,B,N)
---
END PROGRAM PRINCIPAL Tarea: Diagrame el ejemplo anterior.
Evidencias para el aprendizaje
5
7.19.- Puede una llamada a subprograma no tener ningn dato de regreso?
7.20.- Qu es el tipo de programacin lineal (TOP-DONW)?
7.21.- Qu es el tipo de programacin estructurada ( Modular )?
7.22.- Qu tipo de programacin es ms conveniente para un profesional
de
la ciencia (ingeniero)? Por que?
7.23.- Para que sirve el comando MODULE?
7.24.- Para que sirve el comando USE?
7.25.- Para que sirve el comando SAVE?
7.26.- Para que sirve el comando CONTAINS?
7.27.- Puede una llamada a subprograma no enviar ni recibir parmetros y
*** Haciendo uso de los sugeridos para una programacin
solucione los problemas a continuacin enunciados En forma modular y
con
subprogramas:
7.29.- Elabore un programa que calcule la solucin de una matriz por el
mtodo de eliminacin Gaussiana (puede investigar en el libro Fortran
90-95 Stephen Chapman 1998, Pg. 323)
7.30.- Para el arreglo matricial de 4x4, sume los elementos de la diagonal
principal. A11 A12 A13 A14
A21 A22 A23 A24
A31 A32 A33 A34
A41 A42 A43 A44