fundamentos de programacion fortran

11
PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO 2 1 APENDICE FUNDAMENTOS DE PROGRAMACION EN FORTRAN La codificación de algúnos de los programas presentados en este artículo, como ya se señaló, están en lenguaje FORTRAN. El compilador empleado es el Microsoft FORTRAN versión 5.1, por lo que el empleo de alguna otra versión requerirá la consulta de su respectivo manual, debido a que algunos de los comandos aquí presentados pueden no incluirse en dicha versión y con ello marcar errores de codificación. A continuación se presentan los operadores que se emplean en este lenguaje: Operadores Aritméticos. ** Exponenciación. - Aectación negativa. * Multiplicación. / División. + Adición. - Sustracción. Operadores Lógicos. .AND. Conjunción. .NOT. Negación. .OR. Disyunción. .EQV. Equivalencia lógica. .NEQV. No equivalencia lógica. Operadores Racionales. .LT. Menor que. .LE. Menor o igual que. .EQ. Igual que. .NE. Diferente de. .GT. Mayor que. .GE. Mayor o igual que. Operador de Asignación. = Asigna o reemplaza. Variables. Los nombres de las variables deben ser de 1 a 6 caracteres. El primer caracter debe ser alfabético. Si no se expresa el tipo de variable mediante un estatuto IMPLICIT, todas las variables que inicien con las letras I, J, K, L, M, y N son tipo INTIGER*2 ó INTIGER*4 dependiendo de la asignación dada por el metacomando $STORAGE; las variables iniciadas con las letras A-H ú O-Z se tomarán como tipo REAL. Tipo de Dato INTEGER*2 Entero desde -32767 hasta +32767 INTEGER*4 Entero desde -2147’483,647 hasta +2147’483,647 REAL Variable tipo punto flotante (de 1 a 7 dígitos) desde 8.43E-37 hasta 3.37E+38 (REAL*4).

Upload: fernando-mendoza

Post on 14-Jul-2016

27 views

Category:

Documents


3 download

DESCRIPTION

LENGUAJE FORTRAN

TRANSCRIPT

Page 1: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

1

APENDICE

FUNDAMENTOS DE PROGRAMACION EN FORTRAN

La codificación de algúnos de los programas presentados en este artículo, como ya se señaló, están en

lenguaje FORTRAN. El compilador empleado es el Microsoft FORTRAN versión 5.1, por lo que el empleo

de alguna otra versión requerirá la consulta de su respectivo manual, debido a que algunos de los comandos

aquí presentados pueden no incluirse en dicha versión y con ello marcar errores de codificación.

A continuación se presentan los operadores que se emplean en este lenguaje:

Operadores Aritméticos.

** Exponenciación.

- Aectación negativa.

* Multiplicación.

/ División.

+ Adición.

- Sustracción.

Operadores Lógicos.

.AND. Conjunción.

.NOT. Negación.

.OR. Disyunción.

.EQV. Equivalencia lógica.

.NEQV. No equivalencia lógica.

Operadores Racionales.

.LT. Menor que.

.LE. Menor o igual que.

.EQ. Igual que.

.NE. Diferente de.

.GT. Mayor que.

.GE. Mayor o igual que.

Operador de Asignación.

= Asigna o reemplaza.

Variables.

Los nombres de las variables deben ser de 1 a 6 caracteres. El primer caracter debe ser alfabético. Si no

se expresa el tipo de variable mediante un estatuto IMPLICIT, todas las variables que inicien con las letras I,

J, K, L, M, y N son tipo INTIGER*2 ó INTIGER*4 dependiendo de la asignación dada por el metacomando

$STORAGE; las variables iniciadas con las letras A-H ú O-Z se tomarán como tipo REAL.

Tipo de Dato

INTEGER*2 Entero desde -32767 hasta +32767

INTEGER*4 Entero desde -2147’483,647 hasta +2147’483,647

REAL Variable tipo punto flotante (de 1 a 7 dígitos) desde

8.43E-37 hasta 3.37E+38 (REAL*4).

Page 2: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

2

DOUBLE

PRECISION

Variable tipo punto flotante (de 1 a 16 dígitos) desde

4.19D-307 hasta 1.67D+308 (REAL*8)

LOGICAL

(2 o 4 bytes)

Valores de la tabla de verdad: .TRUE. (verdadero) y

.FALSE. (falso) (LOGICAL*2 o LOGICAL*4)

CHARACTER*n Una cadenas que contiene no más de 127 caracteres

COMPLEX

(8 bytes)

Un par ordenado de números reales de simple

precisión, donde la segunda componente representa la

parte imaginaria (COMPLEX*8).

DOUBLE COMPLEX

(16 bytes)

Número complejo con numeros reales de doble

procisión (COMPLEX*16)

Descriptores de Formato de Campo.

Son utilizados para definir la presentación del contenido de una variable previamente especificada.

Iw[[.m Valores enteros.

Zw Valores hexadecimales.

Fw.d Valores reales.

Ew.d[[Ee Valores reales con exponente.

Gw.d[[Ee Valores reales de rango extendido.

Dw.d Valores reales de doble precisión.

Lw Valores lógicos.

A[[w Valores tipo caracter.

Notas.- w representa el número de espacios que ocupará el valor de la variable,

m representa el número de cifras a la izquierda del punto,

d representa el número de dígitos a la derecha del punto decimal.

e representa el exponente.

Funciones Intrínsecas.

Nombre Definición Tipo de

Argumentos

Tipo de valores de

Función

Conversión Convierte el contenido de la

variable a:

INT (arg) INTEGER (todos) INTIGER

REAL (arg) REAL*4 (todos) REAL*4

FLOAT(I) REAL*4 INTEGER REAL*4

SNGL(X) REAL*4 REAL*8 REAL*4

DBLE(arg) [3 REAL*8 (todos) REAL*8

CMPLX(Z,[Y)[4 COMPLEX*8 (todos) COMPLEX*8

DCMPLX(Z,[Y) COMPLEX*16 (todos) COMPLEX*16

ICHAR(C) [5 INTEGER CHARACTER INTEGER

CHAR(X) [5 CHARACTER INTEGER CHARACTER

Truncación

AINT(arg) Trunca un número REAL REAL*4

REAL*8

REAL*4

REAL*8

Valor absoluto

ABS (arg) arg (Todos) (Todos)

CABS(Z) Obtiene la magnitud del

número complejo Z

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

Residuo

MOD(arg1,arg2) Proporciona el residuo del INTEGER INTEGER

Page 3: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

3

cosciente arg1/arg2 REAL*4

REAL*8

REAL*4

REAL*8

Diferencia positiva [5

DIM(arg1,arg2) arg1-Mínino de arg1 y arg2 INTEGER

REAL*4

REAL*8

INTEGER

REAL*4

REAL*8

Conjugado de un Complejo

CONJG(Z) Regresa X - jY de X + jY COMPLEX*8 COMPLEX*8

DCONJG(Z) Regresa X - jY de X + jY COMPLEX*16 COMPLEX*16

Parte real de un complejo

DREAL(Z) COMPLEX*16 REAL*8

REAL (Z) COMPLEX*8

COMPLEX*16

REAL*4

Parte imaginaria de un complejo

IMAG (Z) COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

Raiz cuadrada

SQRT(arg)

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

Exponencial

EXP(arg)

earg

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

Logaritmo natural

LOG(arg)

ln (arg)

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

Logaritmo de base 10

LOG10(arg)

log10 (arg)

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

Seno

SIN(arg)

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

Coseno

COS(arg)

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

REAL*4

REAL*8

COMPLEX*8

COMPLEX*16

Tangente

TAN(arg) REAL*4

REAL*8

REAL*4

REAL*8

Arco seno

ASIN(arg) REAL*4

REAL*8

REAL*4

REAL*8

Arco coseno

ACOS(arg) REAL*4

REAL*8

REAL*4

REAL*8

Arco tangente

Page 4: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

4

ATAN(arg) REAL*4

REAL*8

REAL*4

REAL*8

ATAN2(X,Y) arctan (X/Y) REAL*4

REAL*8

REAL*4

REAL*8

Seno hiperbólico

SINH(arg) REAL*4

REAL*8

REAL*4

REAL*8

Coseno

hiperbólico

COSH(arg) REAL*4

REAL*8

REAL*4

REAL*8

Tangente hiperbólica

TANH(arg) REAL*4

REAL*8

REAL*4

REAL*8

Lista de instrucciones contenidas en el Microsoft FORTRAN.

NOTA.- [[ arg indican de que arg es opcional.

I/O Entrada-Salida

ALLOCATE (arreglo ([[l: u[[,[[l: u... )[[,STAT = ierr )...

Dimenciona dinámicamente un arreglo que a sido previamente declarado con el atributo ALLOCATA-

BLE.

arreglo Nombre del arreglo.

ierr Variable entera que regresa el estado del tamño del arreglo.

l Expresión entera que ajusta el límite más bajo de el arreglo.

u Expresión entera que ajusta el límite más alto de el arreglo.

ASSIGN etiqueta TO variable

Asigna el valor de un número de etiqueta o formato a una variable entera.

etiqueta Es el formato o número de etiqueta. La etiqueta se mostrará en el mismo programa.

variable Variable entera.

AUTOMATIC[[nombres

Declara la especificación de variables en la locación de memoria estática.

nombres Lista de variables o nombres de arreglos. Si son más de una variable, éstas deben de

separarse por comas.

BACKSPACE{archivo ó

([[UNIT=archivo

[[,ERR=errlabel

[[,IOSTAT=iocheck )}

Posiciona al archivo especificado en el inicio para su escritura.

archivo Expresión entera que especifica la unidad externa. Si archivo no es abierto, ocurre

un error.

errlabel Etiqueta de una instrucción ejecutable que debe estar en el mismo programa. Si

errlabel es especificado, un error I/O transfiere el control hasta la etiqueta errlabel.

Si es omitido, un error de I/O se determina con la presencia o ausencia de iocheck.

iocheck Variable entera, arreglo de elementos, o estructura de elementos que regresan un

valor de cero si no ocurrió un error, o el número de error si éste ocurrió.

BLOCK DATA [[nombre del subprograma

Identifica el bloque de datos de un subprograma, donde variables y arreglos de elementos deben ser

inicializados.

Page 5: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

5

El nombre no será similar a ninguno de los nombres de variabes locales o arreglo de elementos definidos

en el subprograma, y además será distinto a los nombres dados en el programa principal, procedimientos

externos, bloques comunes o cualquier otro subprograma.

CALL nom_sub [[args

Invoca una subrutina.

nom_sub Nombre de la subrutina.

args Uno o más argumentos.

Si son más de un argumento, estos se separan con comas.

CASE (lista de expresiones)

Comienza un bloque de instrucciones que se ejecuta si la expresión de prueba es igual a uno de los

valores de la lista de expresiones. Deben estar dentro del bloque del SELECT CASE.

CASE DEFAULT Comienza un bloque de instrucciones que es ejecutado si la expresión de prueba no es ninguno de

los valores de los listados CASE de el bloque del SELECT CASE.

CLOSE ([[UNIT=archivo

[[,ERR=errlabel

[[,IOSTAT=iocheck

[[,STATUS=estado )

Cierra el archivo y previene subsecuentes lecturas y escrituras dirigidas a ese archivo.

archivo Expresión entera que especifica la unidad externa. No ocurre error si la unidad no

es abierta.

errlabel Ver BACKSPACE.

iocheck Ver BACKSPACE.

estado Expresión de caracteres que pueden ser ‘KEEP’ ó ‘DELETE’. En archivos

temporales está predeterminado STATUS=‘DELETE’, con lo cual se borra el

archivo. El colocar STATUS=‘KEEP’ ocasionará un error. En los demás archivos,

está predeterminado STATUS=’KEEP’.

COMMON [[/[[cname[[ [attrs /nlist[[ [[,/[[cname[[ [attrs /nlist...

Permite a dos o más unidades o subprogramas accesar para lectura y/o modificar datos almacenados en

grupos de variables, a su ves definidos mediante un bloque con nombre.

CONTINUE No tiene ningún efecto.Se usa como un punto de referencia para un número de etiqueta,

particularmente como la etiqueta terminal de un ciclo DO ó DO WHILE.

CYCLE Control de regreso para el comienzo de un ciclo DO ó DO WHILE.En una instrucción del ciclo DO,

la variable es incrementada, En una instrucción del ciclo DO WHILE la expresión lógica es reevaluada.

DATA nlist

Asigna valores iniciales a variables. El nlist es una lista de variables, arreglo de elementos, arreglo

de nombres, subhilera de nombres , y listas implicando al ciclo DO separadas por comas.

DEALLOCATE arraylist

Libera el espacio previamente recervado en la instrucción ALLOCATE.

DIMENSION arreglo[[ [attrs ({[[lower: upper :} [[, {[[lower: upper :}... )

Especifica el nombre de un arreglo y define el número de elementos en el arreglo.

arreglo Nombre del arreglo. Más de un arreglo pueden ser declarados con la instrucción

DIMENSION. Los nombres se separarán con comas.

Page 6: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

6

attrs Una lista de atributos separados por comas. El attrs describe a arreglo. Los

siguientes atributos podrán ser usados con el arreglo: ALIAS, ALLOCATABLE, C,

EXTERN, FAR, HUGE, NEAR, PASCAL, REFERENCE, VALUE.

lower Es el límite inferior, el cual puede ser positivo, negativo o cero. Si no es

especificado, se tomará como 1.

upper Es el límite superior., el cual puede ser positivo, negativo, cero o asterizco. Este

debe ser mayor o igual que lower.

DO [[label[[, variable=v_ini,v_fin[[,inc

Evalua el listado de la instrucción DO repetidamente ya sea hasta la instrucción etiquetada con el

número label o la instrucción END DO. Si inc (incremento) no es especificado, su valor por defecto es +1. La

ejecución se detiene cuando variable excede el valor v_fin. Si inc es negativo, la ejecución termina cuando

variable es menor que v_fin.

DO label WHILE (expresión lógica)

Repite el bloque de instrucciones acotado por la etiqueta con el número label, mientras la expresión

lógica sea verdadera. Si label no es especificado, el listado se finaliza con la instrucción END DO.

ELSE Marca el inicio de un bloque ELSE.

ELSE IF (expresión) THEN

Ejecuta el bloque de instrucciones si expresión es verdadera.

END Termina la ejecución del programa principal, o la de un subprograma.

END DO Termina el listado de instrucciones de un ciclo DO o DO WHILE.

END IF Termina un bloque de instrucciones IF.

ENDFILE{archivo ó

([[UNIT=archivo

[[,ERR=errlabel

[[,IOSTAT=iocheck )}

Escribe una marca de fin de archivo para la unidad especificada.

ENTRY ename[[ [eattrs [[ ( [[formal[[ [atrrs [[, formal[[ [atrrs ... )

Especifica un valor de entrada a una subrutina o función externa.

ename Nombre del valor de entrada. Si ename es un valor de entrada para una función

definida por el usuario, ename debe de corresponder al tipo de dato para:

Las reglas preestablecidas en la determinación del tipo; ó

El tipo de dato especificado con un IMPLICIT; ó

Una declaración en la función definida por el usuario, en su sección de tipo de

declaración

eatrrs Lista de atributos, separados por comas. El eattrs describe a ename. Los siguientes

atributos pueden ser usados con ename: ALIAS, C, LOADDS, PASCAL,

VARYING.

formal Nombre de la variable, arreglo, variable estructurada ó procedimiento formal. Si

ENTRY está en una subrutina, formal puede ser una asterizco.

attrs Lista de atributos, separados por comas. El attrs describe a formal. Los siguientes

atributos pueden ser usados con formal: FAR, HUGE, NEAR, REFERENCE,

VALUE.

Page 7: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

7

EQUIVALENCE (nlist) [[,(nlist)...

Crea dos o más variables o arreglos para ocupar el mismo espacio reservado de memoria. Las

variables enlistadas en nlist deben estar separadas por comas.

EXIT Se utiliza para salir de un ciclo DO o DO WHILE ó también del listado de una instrucción IF.

EXTERNAL name[[attrs [[,name[[attrs ...

Identifica un nombre definido por el usuario como una función o subrutina externa.

FORMAT([[listado)

Marca el formato en que será escrito un dato en la pantalla o en un archivo.

listado Lista de descriptores de formato de campo.

[[tipo FUNCTION fun[[ [fattrs ( [[formal[[ [attrs [[,formal[[ [attrs ...)

Identifica una unidad de programa como una función, y es sustituida por su nombre, tipo de dato y

parámetros opcionales formales.

tipo Declara el tipo de dato de el valor regresado por la función.

Si tipo es omitido, el tipo de función se determinará con la aplicación de IMPLICIT.

Si éste no está, el tipo será establecido por el compilador de FORTRAN. Si

IMPLICIT NONE o el metacomando $DECLARE se efectuan, el tipo de función

será dado en la declaración de la función o en una declaración tipo.

Si tipo es especificado, el nombre de la función no podrá aparecer en una

instrucción para declarar el tipo de dato.

func Nombre de la función. El nombre func no podrá aparecer en AUTOMATIC,

COMMON, DATA, EQUIVALENCE, INTRINSIC, NAMELIST ó SAVE.

fattrs Lista de atributos, separados por comas. El fattrs describe a func. Los siguientes

atributos podrán ser usados con el nombre func: ALIAS, C, FAR, NEAR, PASCAL,

VARYING.

formal Nombre de los argumentos formales. Si más de uno son especificados, deberán estar

separados por comas.

attrs Lista de atributos, separados por comas. El attrs describe a formal. Los siguientes

atributos pueden ser usados con formal: FAR, huge, NEAR, REFERENCE,

VALUE.

GOTO variable [[[[, (labels)

Transfiere la ejecución hacia donde se encuentre la etiqueta asignada a variable.

variable Variable entera. Variable tendrá que corresponder a una etiqueta de una instrucción

ejecutable dentro del mismo programa.

labels Lista de una o más etiquetas de instrucciones ejecutables dentro del mismo

programa. Si se especifican más de una etiqueta, éstas se separarán con comas.

Label podrá presentarse más de una vez en la lista.

GOTO (labels) [[, n

Transfiere el control a la instrucción con la n-ésima etiqueta de la lista.

labels Una o más etiquetas de instrucciones ejecutables dentro del mismo programa. Si son

más de una etiqueta, éstas deben ir separadas por comas.

La misma etiqueta podrá presentarse más de una vez en la lista.

n Expresión entera.

GOTO label

Transfiere el control a una instrucción etiquetada.

label Etiqueta de una instrucción ejecutable dentro del mismo programa.

IF(expresión) labels

Page 8: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

8

Transfiere el control a una de tres etiquetas, dependiendo de el valor de expresión. Se le denomina

IF aritmético.

expresión Expresión entera o real de simple o doble precisión.

labels Tres etiquetas de instrucciones ejecutables, dentro del mismo programa,

separadas por comas. La misma etiqueta puede estar más de una vez.

Si expresión es:

< 0 Transfiere el control a la primera etiqueta.

= 0 Transfiere el control a la segunda etiqueta.

> 0 Transfiere el control a la tercera etiqueta.

IF (expresión) instrucción

Si expresión es verdadera, instrucción es ejecutada; si es falsa, el programa continua con la

siguiente instrucción. Se le denomina IF lógico.

expresión Expresión lógica.

instrucción Cualquier instrucción ejecutable exceptuando al CASE, DO, ELSE, ELSE IF, END,

END IF, END SELECT CASE, SELECT CASE, bloques IF, o cualquier IF lógico.

Nótece que la instrucción puede ser un IF aritmético.

IF (expresión) THEN

Si expresión es verdadera, el bloque IF es ejecutado; si es falso, el control se transfiere hasta

encontrar una instrucción ELSE, ELSE IF ó END IF, del mismo nivel del IF.

expresión Expresión lógica.

IMPLICIT {tipo (letters) [[, tipo (letters) ... NONE}

Define el tipo de dato de acuerdo con el nombre de la variable declarada por el usuario.

tipo Indica el tipo de dato.

letters Lista de letras y rango de letras. Si más de una letra o rango son enlistados, deben

separarse con comas. ¿Este proceso no es significativo.?

El rango de letras se indica con la primera y última letra del rango, separadas por

un signo menos. Las letras para un rango deberán estar en orden alfabético. En este

contexto, Microsoft FORTRAN define al signo “$” como un caracter alfabético que

sigue después de la letra Z.

INCLUDE ‘nombre’

Intercambia el texto de un archivo en la locación de la instrucción INCLUDE.

nombre El nombre de el archivo con texto en FORTRAN que será incluido dentro del

programa, marcado con apóstrofes.

INTERFACE TO {función subrutina}

(Listado de declaraciones para todos los argumentos del proceso formal)

END Especifica el nombre de una subrutina o función, con sus atributos y tipos de argumentos formales.

función Declaración de una instrucción FUNCTION.

subrutina Declaración de una instrucción SUBROUTINE.

INTRINSIC nombres

Declara que nombres es una función intrínseca.

nombres Uno o más nombres de funciones intrínsecas. Si más de un nombre es especificado,

éstos deben ir separados por comas.

LOCKING ([[UNIT=archivo

[[, ERR=errlabel

[[, IOSTAT=iocheck

[[, LOCKMODE=lockmode

[[, REC=rec

[[, RECORDS=recnum

Bloquea archivos de acceso directo y los marca para evitar otro uso en el ambiente de trabajo.

Page 9: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

9

archivo Expresión entera de la unidad que será cerrada. El archivo deberá ser abierto como

un archivo de acceso directo.

lockmode Expresión tipo caracter con uno de los siguientes valores:

'NBLCK' Bloquea la región especificada para lectura y escritura. Si alguna de las

marcas está bloqueada por un proceso diferente, ocurre un error. Este

valor es el predeterminado.

'LOCK' Bloquea la región especificada para escritura y lectura. Se espera en

alguna parte de la región bloqueada para un proceso diferente que llegue

a disponerlo.

'NBRLCK' Bloquea la región especificada para lectura; puede marcarlo aún sinedo

para escritura. Este bloqueo es similar a ‘NBLCK’.

'RLCK' Bloquea la región especificada para lectura;puede marcarlo aún siendo

para escritura. Este bloqueo es similar a ‘LOCK’.

'UNLCK' Desbloquea la región especificada.

res Expresión entera que es el número de la primera marca en un grupo de marcas que

serán bloqueadas o desbloqueadas. Si rec es omitido, la siguiente marca es

bloqueada.

recnum Expresión entera que es el número de marcas que serán bloqueadas. Si es omitido se

considera igual a 1.

MAP tipo-decl

.

.

.

END MAP Delimita un grupo de tipo de declaraión de variables dentro de una instrucción STRUCTURE.

tipo-dec Declaración de variables; pueden ser algunas de tipo convencional o una

declaración RECORD de una estructura.

NAMELIST /namlst/ varlst [[/namlst/ varlst

Declara el nombre de un grupo de variables, y así poder ser escritos o leidos con una instrucción

WRITE o READ respectivamente.

namlst Nombre del grupo de variables.

varlst Lista de nombre de variables y arreglos; puede no incluir estructura de variables y

argumentos formales.

OPEN ([[UNIT= archivo

[[, ACCESS=access

[[, BLANK=blanks

[[, BLOCKSIZE=blocksize

[[, ERR=errlabel

[[, FILE=file

[[, FORM=form

[[, IOFOCUS=iofocus

[[, IOSTAT=iocheck

[[, MODE=mode

[[, RECL=recl

[[, SHARE=share

[[STATUS=status

[[TITLE=title )

Asocia el número de la unidad con un archivo externo ó

archivo Expresión entera que especifica la unidad externa.

Page 10: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

10

access Expresión tipo caracter evaluada con ‘APPEND’, ‘DIRECT’ ó ‘SEQUENTIAL’

(este último es el predeterminado).

blanks Expresión tipo caracter que se evaluará con ‘NULL’ ó ‘ZERO’. Si es ‘NULL’ (el

predeterminado) se ignorarán los espacios (mismo que BN del editor descriptor, a

menos que sobrepase de un BZ explícito en la instrucción READ). Si es ‘ZERO’ se

rellenan los espacios con ceros (mismo que BZ del editor descriptor, a menos que

sobrepase de un BN explícito en la instrucción READ).

blocksize Expresión entera que especifica el tamaño del buffer interno para la unidad (en

dytes).

En una aplicación Windows, blocksize marca el tamaño de la pantalla del buffer.

El tamaño del buffer determina cuanto texto es guardado para la ventana. Marca el

buffer con ‘WINBUFINF’ continuamente redistribuyendo memoria para salvar todo

el texto. Si blocksize no es especificado, el buffer tomará 2048 bytes.

file Expresión tipo caracter. Si file es omitido, el compilador crea un archivo temporal

único en la unidad especificada. El archivo temporal es borrado cuando este es

cerrado ó el programa termina normalmente.

form Expresión tipo caracter que se evalua con ‘FORMATTED’, ‘UNFORMATTED’ o

‘BINARY’.

Si el acceso es secuencial, el predeterminado para form es ‘FORMATTED’, si el

acceso es directo, el predeterminado es ‘UNFORMATTED’.

iofocus Expresión lógica que especifica si una nueva ventana en Windows tendrá el enfoque

I/O. Si se omite, iofocus es .TRUE.

mode Expresión tipo caracter evaluada con ‘READ’ (los procesos serán sólo de lectura en

el archivo), ‘WRITE’ (los procesos serán solo de escritura en el archivo) ó

‘READWRITE’ (lectura y escritura en el archivo).

Si mode no es especificado, se abrirán los archivos con modo ‘READWRITE’.

recl Expresión entera que especifica el largo de cada registro en bytes. Este parámetro es

requerido para archivos de acceso directo, y es ignorado para archivos secuenciales.

share Expresión tipo caracter. Los valores aceptados de share son:

'COMPAT' Modo compatible (modo dado por DOS). Cuando un archivo es

abierto en modo compatible, el usuario original (el proceso que abre

el archivo) puede abrir el archivo en modo compatible un número

limitado de veces. Otro usuario no puede abrir el archivo.

Un archivo que haya sido abierto en otro modo, no podrá ser abierto

en modo compatible.

'DENYRW' Modo de no lectura-escritura. Mientras el archivo sea abierto en este

modo, otros procesos no podrán abrirlo.

'DENYWR' Modo de no escritura. Mientras el archivo sea abierto en este modo,

otros procesos no podrán abrirlo para escritura.

'DENYRD' Modo de no lectura. Mientras el archivo sea abierto en este modo,

otros procesos no puedrán abrirlo para lectura.

'DENYNONE' Ningún modo. (modo predeterminado por OS/2). Mientras el archivo

sea abierto en este modo, algunos procesos podrán abrirlo en

cualquier modo (excepto el modo compatible).

status Expresión tipo caracter evaluada con ‘OLD’, ‘NEW’, ‘UNKNOWN’

(predeterminado) ó ‘SCRATCH’.

Page 11: FUNDAMENTOS DE PROGRAMACION FORTRAN

PROGRAMACIÓN APLICADA A SISTEMAS ELÉCTRICOS DE POTENCIA FERNANDO TOLEDO2

11

'OLD' El archivo debe de existir. Si el archivo existe, este es abiero. En caso

contrario, ocurre un error de I/O.

Si se abre un archivo secuencial y escribes en éste o lo cierras sin

moverlo primero hasta el final de éste, se sobreescribirá en el

archivo. (Abriendo con ACCESS = ‘APPEND’ se posiciona

automáticamente al final del archivo).

'NEW' El archivo no debe de existir. Si no existe, éste es creado. En caso

contrario se produce un error de I/O.

Si se abre el archivo con la opción STATUS=‘NEW’, y se cierra con

STATUS=‘KEEP’, o si el programa terminara sin cerrar el archivo,

éste es creado permanentemente.

'SCRATCH' Crea archivos temporales, los cuales son borrados cuando son

cerrados o la ejecución del programa termina.

'UNKNOWN' Si existe el archivo lo abre, en caso contrario lo crea.

title Expresión tipo caracter que es evaluado como una cadena, con apertura en la barra

de títulos de una pequeña ventana dentro de una aplicación Windows. El título

predeterminado identifica la ventana como una unidad y da el número archivo (esto

es, TITLE=‘UNIT’ n’donde n es el número de unidades.

PARAMETER(nombre=expresión [[, nombre=expresión...)

Asigna a nombre el valor de expresión.

nombre Nombre simbólico.

expresión Una expresión. La expresión puede incluir nombres simbólicos sólo si éstos

nombres fueron definidos previamente con una instrucción PARAMETER dentro

del programa.

PAUSE [[prompt

Suspende la ejecución del programa hasta que se teclee el número o cadena de caracteres

especificados por prompt. Si no es especificado, se tomará como ENTER.

prompt Cualquier caracter o entero desde 0 hasta 99,999