You are on page 1of 15

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

CAPITULO II. PROGRAMACIN FORTRAN


La codificacin de todos los programas presentados en este texto, como ya se seal, estn en lenguaje
FORTRAN. El compilador empleado es el Microsoft FORTRAN Power Station versin 4.0, aunque en la
mayora de los casos se codific en base al ANSI FORTRAN 77, lo que ocasiona que la variacin en la
codificacin no sea muy marcada con respecto a otras versiones. Se recomienda el consultar el manual
correspondiente al compilador en particular para verificar si se contiene el comando u operador.
A continuacin se presentan los operadores que se emplean en este lenguaje:
Operadores Aritmticos.
**
*
/
+
-

Exponenciacin.
Afectacin negativa.
Multiplicacin.
Divisin.
Adicin.
Sustraccin.

Operadores Lgicos.
.AND.
.NOT.
.OR.
.EQV.
.NEQV.

Conjuncin.
Negacin.
Disyuncin.
Equivalencia lgica.
No equivalencia lgica.

Operadores Racionales.
.LT.
.LE.
.EQ.
.NE.
.GT.
.GE.

Menor que.
Menor o igual que.
Igual que.
Diferente de.
Mayor que.
Mayor o igual que.

Operador de Asignacin.
=

Asigna o reemplaza.

Variables.
Los nombres de las variables deben ser de 1 a 6 caracteres. El primer caracter debe ser alfabtico. 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 INTEGER*2 INTEGER*4 dependiendo de la asignacin dada por el metacomando
$STORAGE; las variables iniciadas con las letras A-H O-Z se tomarn como tipo REAL.
Tipo de Dato
INTEGER*2
INTEGER*4
REAL
DOUBLE
PRECISION

Entero desde -32767 hasta +32767


Entero desde -2147483,647 hasta +2147483,647
Variable tipo punto flotante (de 1 a 7 dgitos) desde
8.43E-37 hasta 3.37E+38 (REAL*4).
Variable tipo punto flotante (de 1 a 16 dgitos) desde
4.19D-307 hasta 1.67D+308 (REAL*8)
7

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

LOGICAL
(2 o 4 bytes)
CHARACTER*n
COMPLEX
(8 bytes)

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


.FALSE. (falso) (LOGICAL*2 o LOGICAL*4)
Una cadenas que contiene no ms de 127 caracteres
Un par ordenado de nmeros reales de simple
precisin, donde la segunda componente representa la
parte imaginaria (COMPLEX*8).
DOUBLE COMPLEX
Nmero complejo con numeros reales de doble
(16 bytes)
precisin (COMPLEX*16)

Descriptores de Formato de Campo.


Son utilizados para definir la presentacin del contenido de una variable previamente especificada.
Iw[[.m
Zw
Fw.d
Ew.d[[Ee
Gw.d[[Ee
Dw.d
Lw
A[[w
Notas.-

Valores enteros.
Valores hexadecimales.
Valores reales.
Valores reales con exponente.
Valores reales de rango extendido.
Valores reales de doble precisin.
Valores lgicos.
Valores tipo caracter.

w representa el nmero de espacios que ocupar el valor de la variable,


m representa el nmero de cifras a la izquierda del punto,
d representa el nmero de dgitos a la derecha del punto decimal.
e representa el exponente.

Funciones Intrnsecas.
Nombre

Definicin

Tipo de
Argumentos

Tipo de valores de
Funcin

(todos)
(todos)
INTEGER
REAL*8
(todos)
(todos)
(todos)
CHARACTER
INTEGER

INTEGER
REAL*4
REAL*4
REAL*4
REAL*8
COMPLEX*8
COMPLEX*16
INTEGER
CHARACTER

REAL*4
REAL*8

REAL*4
REAL*8

arg
Obtiene la magnitud del
nmero complejo Z

(Todos)
COMPLEX*8
COMPLEX*16

(Todos)
REAL*4
REAL*8

Proporciona el residuo del


cosciente arg1/arg2

INTEGER
REAL*4
REAL*8

INTEGER
REAL*4
REAL*8

Conversin

Convierte el contenido de la
variable a:
INT (arg)
INTEGER
REAL (arg)
REAL*4
FLOAT(I)
REAL*4
SNGL(X)
REAL*4
REAL*8
DBLE(arg) [3
COMPLEX*8
CMPLX(Z,[Y)[4
COMPLEX*16
DCMPLX(Z,[Y)
INTEGER
ICHAR(C) [5
CHARACTER
CHAR(X) [5
Truncacin
AINT(arg)
Trunca un nmero REAL
Valor absoluto
ABS (arg)
CABS(Z)
Residuo
MOD(arg1,arg2)

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

Diferencia positiva
DIM(arg1,arg2)

arg1-Mnino de arg1 y arg2

Conjugado de un Complejo
CONJG(Z)
Regresa X - jY de X + jY
DCONJG(Z)
Regresa X - jY de X + jY
Parte real de un complejo
DREAL(Z)
REAL (Z)
Parte imaginaria de un complejo
IMAG (Z)

FERNANDO TOLEDO2

INTEGER
REAL*4
REAL*8

INTEGER
REAL*4
REAL*8

COMPLEX*8
COMPLEX*16

COMPLEX*8
COMPLEX*16

COMPLEX*16
COMPLEX*8
COMPLEX*16

REAL*8
REAL*4

COMPLEX*8
COMPLEX*16

REAL*4
REAL*8

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8
COMPLEX*8
COMPLEX*16

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

Raiz cuadrada
SQRT(arg)

Exponencial
EXP(arg)

arg

Logaritmo natural
LOG(arg)

ln (arg)

Logaritmo de base 10
LOG10(arg)

log10 (arg)

Seno
SIN(arg)

Coseno
COS(arg)

Tangente
TAN(arg)
Arco seno
ASIN(arg)
Arco coseno
ACOS(arg)
Arco tangente
ATAN(arg)

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

ATAN2(X,Y)

arctan (X/Y)

Seno hiperblico
SINH(arg)
Coseno hiperblico
COSH(arg)
Tangente hiperblica
TANH(arg)

FERNANDO TOLEDO2

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

REAL*4
REAL*8

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 )...
Dimensiona dinmicamente un arreglo que ha sido previamente declarado con el atributo
ALLOCATABLE.
arreglo
Nombre del arreglo.
ierr
Variable entera que regresa el estado del tamao del arreglo.
l
Expresin entera que ajusta el lmite ms bajo de el arreglo.
u
Expresin entera que ajusta el lmite ms alto de el arreglo.
ASSIGN etiqueta TO variable
Asigna el valor de un formato instruccin etiquetada a una variable entera.
etiqueta
Es el formato o instruccin etiquetada. La etiqueta estar en el mismo programa.
variable
Variable entera.
AUTOMATIC[[nombres
Declara variables especificadas en la locacin de memoria esttica.
nombres
Lista de variables o nombres de arreglos para ser creados automticamente. Si son
ms de una variable, stas deben de separarse por comas.
BACKSPACE{archivo
([[UNIT=archivo
[[,ERR=errlabel
[[,IOSTAT=iocheck )}
Posiciona el archivo conectado de la unidad especificada en el principio del registro precedente.
archivo
Expresin entera que especifica la unidad externa. Si archivo no es abierto, ocurre
un error.
errlabel
Etiqueta de una instruccin 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 nmero de error si ste ocurri.
BLOCK DATA [[nombre del subprograma
Identifica el bloque de datos de un subprograma, donde variables y arreglos de elementos en bloques
podrn ser inicializados.
El nombre no ser similar a ninguno de los nombres de variables locales o arreglo de elementos
definidos en el subprograma, y adems ser distinto a los nombres dados en el programa principal,
procedimientos externos, bloques comunes o cualquier otro subprograma.
CALL nom_sub [[args
10

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

Invoca una subrutina.


nom_sub
Nombre de la subrutina.
args
Uno o ms argumentos.
Si son ms de un argumento, estos se separan con comas.
CASE (lista de expresiones)
Comienza un bloque de instrucciones que se ejecuta si la expresin 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 expresin 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
Expresin entera que especifica la unidad externa. No ocurre error si la unidad no
es abierta.
errlabel
Ver BACKSPACE.
iocheck
Ver BACKSPACE.
estado
Expresin 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 dems archivos,
est predeterminado STATUS=KEEP.
COMMON [[/[[cname[[ [attrs /nlist[[ [[,/[[cname[[ [attrs /nlist...
Permite a dos o ms unidades o subprogramas accesar para lectura y/o modificar datos almacenados en
grupos de variables, a su ves definidos mediante un bloque con nombre.
cname
Nombre de el bloque comn. Si no es dado, el bolque se nombra como espacio
comn. Omitiendo cname, se especifica que todo elemento en el nlist siguen dentro
del bloque espacio comn.
attrs
Lista de atributos separado por comas. Los atributos describen a cname. Solo
ALIAS, C, FAR, NEAR, y PASCAL pueden ser usados con nombres del bloque
comn.
nlist
Lista de nombre de variables, arreglos y declaracin de arreglos, separados por
comas.
El nombre de los argumentos formales, funciones, variables automticas, y arreglos
repartidos no pueden presentarse en una instruccin COMMON. En cada
instruccin COMMON, toda variable y arreglo presentados dentro de cada nlist
posterior a cname sern declarados dentro de cada bloque comn.
CONTINUE
No tiene ningn efecto.Se usa como un punto de referencia para un nmero 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 instruccin del ciclo DO, la
variable es incrementada, En una instruccin del ciclo DO WHILE la expresin lgica es reevaluada.
DATA nlist / clist/ [[ [[, nlist / clist/...
Asigna valores iniciales a variables.
nlist

Lista de variables, arreglo de elementos, arreglo de nombres, subhilera de nombres , y


listas implicando al ciclo DO separadas por comas.
11

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

clist

FERNANDO TOLEDO2

Lista de constantes y/o constantes repetidas, separadas por comas. Una constante
repetitiva es escrita en el formato n*c, donde el factor repetitivo n es una constante
entera positiva, y c es la constante que ser repetida. La constante repetitiva 3*10, por
ejemplo, es equivalente para el clist 10,10,10.

DEALLOCATE (arraylist [[,STAT=ierr )


Libera el espacio previamente recervado en la instruccin ALLOCATE.
arraylist Lista de nombre de arreglos repartidos; si existen ms de uno, estos sern separados por
comas.
ierr
Variable entera que regresa el estado del intento de liberacin de memoria.
DIMENSION arreglo[[ [attrs ({[[lower: upper :} [[, {[[lower: upper :}... )
Declara que una variable es un arreglo, y especifica el nmero de dimensiones y sus lmites.
arreglo
Nombre del arreglo. Ms de un arreglo pueden ser declarados con la instruccin
DIMENSION. Los nombres se separarn con comas.
attrs
Lista de atributos separados por comas. El attrs describe a arreglo. Los siguientes
atributos podrn ser usados con arreglo: ALIAS, ALLOCATABLE, C, EXTERN,
FAR, HUGE, NEAR, PASCAL, REFERENCE, VALUE.
lower
Es el lmite dimensional inferior, el cual puede ser positivo, negativo o cero. Si no
es especificado, se tomar como 1.
upper
Es el lmite dimensional 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 instruccin DO repetidamente, ya sea hasta la instruccin etiquetada con el
nmero label o la instruccin END DO. Si inc (incremento) no es especificado, su valor es +1. La ejecucin
se detiene cuando variable excede el valor v_fin. Si inc es negativo, la ejecucin termina cuando variable es
menor que v_fin.
DO label WHILE (expresin lgica)
Repite el bloque de instrucciones acotado por la etiqueta con el nmero label, mientras la expresin
lgica sea verdadera. Si label no es especificado, el listado se finaliza con la instruccin END DO.
ELSE
Marca el inicio de un bloque ELSE.
ELSE IF (expresin) THEN
Ejecuta el bloque de instrucciones si expresin es verdadera.
END
Termina la ejecucin 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 en la unidad especificada.
archivo
Expresin entera que especifica la unidad externa. Si archivo no ha sido abierto,
ocurre un error.
errlabel
Ver BACKSPACE.
12

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

iocheck

FERNANDO TOLEDO2

Ver BACKSPACE.

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


Especifica un valor de entrada a una subrutina o funcin externa.
ename
Nombre del valor de entrada. Si ename es un valor de entrada para una funcin
definida por el usuario, ename debe de corresponder al tipo de dato de:
Las reglas preestablecidas en la determinacin del tipo;
El tipo de dato especificado con un IMPLICIT;
Una declaracin dentro de la seccin de declaracin de tipos de datos, en
funciones definidas por el usuario.
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 un 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.
EQUIVALENCE (nlist) [[,(nlist)...
Crea dos o ms 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 tambin del listado de una instruccin IF.
EXTERNAL name[[attrs [[,name[[attrs ...
Identifica un nombre definido por el usuario como una funcin o subrutina externa.
name
El nombre de una subrutina o funcin externa. Nombre de funciones declaradas
(funciones de una lnea) no sern dados.
attrs
Lista de atributos separados por comas. El attrs describe a name. Los siguientes
atributos pueden ser usados con name: ALIAS, C, FAR, LOADDS, NEAR,
PASCAL, VARYING.
FORMAT([[listado)
Marca el formato en que ser escrito o ledo un dato desde 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 funcin, y es sustituida por su nombre, tipo de dato y
parmetros opcionales formales.
tipo
Declara el tipo de dato de el valor regresado por la funcin.
Si tipo es omitido, el tipo de funcin se determinar con la aplicacin 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 funcin ser dado en la declaracin de la funcin o en una declaracin tipo.
Si tipo es especificado, el nombre de la funcin no podr aparecer en una
instruccin para declarar el tipo de dato.
func
Nombre de la funcin. 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 podrn ser usados con el nombre func: ALIAS, C, FAR, NEAR,
PASCAL, VARYING.
formal
Nombre de los argumentos formales. Si ms de uno son especificados, debern estar
separados por comas.
13

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

attrs

FERNANDO TOLEDO2

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 ejecucin hacia donde se encuentre la etiqueta asignada con variable.
variable
Variable entera. Variable tendr que corresponder a una etiqueta de una instruccin
ejecutable dentro del mismo programa.
labels
Lista de una o ms etiquetas de instrucciones ejecutables dentro del mismo
programa. Si se especifican ms de una etiqueta, stas se separarn con comas.
Label podr presentarse ms de una vez en la lista.
GOTO (labels) [[, n
Transfiere el control a la instruccin con la n-sima etiqueta de la lista.
labels
Una o ms etiquetas de instrucciones ejecutables dentro del mismo programa. Si son
ms de una etiqueta, stas deben ir separadas por comas.
La misma etiqueta podr presentarse ms de una vez en la lista.
n
Expresin entera.
GOTO label
Transfiere el control a una instruccin etiquetada.
label
Etiqueta de una instruccin ejecutable dentro del mismo programa.
IF(expresin) labels
Transfiere el control a una de tres etiquetas, dependiendo de el valor de expresin. Se le denomina IF
aritmtico.
expresin
Expresin entera o real de simple o doble precisin.
labels
Tres etiquetas de instrucciones ejecutables, dentro del mismo programa,
separadas por comas. La misma etiqueta puede estar ms de una vez.
Si expresin 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 (expresin) instruccin
Si expresin es verdadera, instruccin es ejecutada; si es falsa, el programa continua con la siguiente
instruccin. Se le denomina IF lgico.
expresin
Expresin lgica.
instruccin Cualquier instruccin ejecutable exceptuando al CASE, DO, ELSE, ELSE IF,
END,END IF, END SELECT CASE, SELECT CASE, bloques IF, o cualquier IF
lgico. Ntece que la instruccin puede ser un IF aritmtico.
IF (expresin) THEN
Si expresin es verdadera, el bloque IF es ejecutado; si es falso, el control se transfiere hasta encontrar
una instruccin ELSE, ELSE IF END IF, del mismo nivel del IF.
expresin
Expresin lgica.
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 ms de una letra o rango son enlistados, deben
separarse con comas.
El rango de letras se indica con la primera y ltima letra del rango, separadas por
un guin (-). Las letras para un rango debern estar en orden alfabtico. En este
contexto, Microsoft FORTRAN define al signo $ como un caracter alfabtico que
sigue despus de la letra Z.
14

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

INCLUDE nombre
Inserta el contenido de un archivo .FOR en la locacin de la instruccin INCLUDE.
nombre
El nombre de el archivo .FOR que ser incluido dentro del programa, este marcado
con apstrofes.
INTERFACE TO {funcin subrutina}
(Listado de declaraciones para todos los argumentos del proceso formal)
END
Especifica el nombre de una subrutina o funcin, con sus atributos y tipos de argumentos formales.
funcin
Declaracin de una instruccin FUNCTION.
subrutina
Declaracin de una instruccin SUBROUTINE.
INTRINSIC nombres
Declara que nombres es una funcin intrnseca.
nombres
Uno o ms nombres de funciones intrnsecas. Si ms 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.
archivo
Expresin entera de la unidad que ser cerrada. El archivo deber ser abierto como
un archivo de acceso directo.
lockmode
Expresin de caracteres con uno de los siguientes valores:
'NBLCK' Bloquea la regin especificada para lectura y escritura. Si alguno de los
registros est bloqueado por un proceso diferente, ocurre un error. Este
valor es el predeterminado.
'LOCK' Bloquea la regin especificada para escritura y lectura. Se espera en
alguna parte de la regin bloqueada para un proceso diferente que llegue
a disponerlo.
'NBRLCK' Bloquea la regin especificada para lectura; puede registrarlo an siendo
para escritura. Este bloqueo es similar a NBLCK.
'RLCK'
Bloquea la regin especificada para lectura; puede registrarlo an siendo
para escritura. Este bloqueo es similar a LOCK.
'UNLCK' Desbloquea la regin especificada.
res
Expresin entera que es el nmero de el primer registro en un grupo de registros
que sern bloqueados o desbloqueados. Si rec es omitido, el siguiente registro es
bloqueado.
recnum
Expresin entera que es el nmero de registros que sern bloqueados. Si es omitido
se considera igual a 1.
MAP
tipo-decl
.
.
.
END MAP
Delimita un grupo de declaraciones de tipo de variables dentro de una instruccin STRUCTURE.
tipo-dec
Declaracin de variables; pueden ser algunas de tipo convencional o una
declaracin RECORD de una estructura.
NAMELIST /namlst/ varlst [[/namlst/ varlst
15

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

Declara el nombre de un grupo de variables, y as poder ser escritos o leidos con una instruccin
WRITE o READ respectivamente.
namlst
Nombre del grupo de variables.
varlst
Lista de nombres 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 nmero de la unidad con un archivo externo.
archivo
Expresin entera que especifica la unidad externa.
access
Expresin de caracteres evaluados con APPEND, DIRECT SEQUENTIAL
(este ltimo es el predeterminado).
blanks
Expresin de caracteres evaluados con NULL ZERO. Si es NULL (el
predeterminado) se ignorarn los espacios (mismo que BN del editor descriptor, a
menos que sobrepase de un BZ explcito en la instruccin READ). Si es ZERO se
rellenan los espacios con ceros (mismo que BZ del editor descriptor, a menos que
sobrepase de un BN explcito en la instruccin READ).
blocksize
Expresin entera que especifica el tamao del buffer interno para la unidad (en
dytes).
En una aplicacin Windows, blocksize marca el tamao de la pantalla del buffer.
El tamao del buffer determina cuanto texto es guardado para la ventana. Registra
el buffer con WINBUFINF continuamente redistribuyendo memoria para salvar
todo el texto. Si blocksize no es especificado, el buffer tomar 2048 bytes.
errlabel
Ver BACKSPACE.
file
Expresin de caracteres. 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 su ejecucin normalmente.
form
Expresin de caracteres evaluados 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
Expresin lgica que especifica si una nueva ventana en Windows tendr el enfoque
I/O. Si se omite, iofocus es .TRUE.
iocheck
Ver BACKSPACE.
mode
Expresin de caracteres evaluados con READ (los procesos sern slo de lectura
en el archivo), WRITE (los procesos sern solo de escritura en el archivo)
READWRITE (lectura y escritura en el archivo).
Si mode no es especificado, se abrirn los archivos con modo READWRITE.
recl
Expresin entera que especifica el largo de cada registro en bytes. Este parmetro es
requerido para archivos de acceso directo, y es ignorado para archivos secuenciales.
share
Expresin de caracteres. Los valores aceptados de share son:
16

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

'COMPAT'

status

title

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 nmero
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 podrn abrirlo.
'DENYWR' Modo de no escritura. Mientras el archivo sea abierto en este modo,
otros procesos no podrn abrirlo para escritura.
'DENYRD'
Modo de no lectura. Mientras el archivo sea abierto en este modo,
otros procesos no puedrn abrirlo para lectura.
'DENYNONE' Ningn modo (modo predeterminado por OS/2). Mientras el archivo
sea abierto en este modo, algunos procesos podrn abrirlo en
cualquier modo (excepto el modo compatible).
Expresin de caracteres evaluados con OLD, NEW, UNKNOWN
(predeterminado) SCRATCH.
'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
automticamente 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 opcin 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 ejecucin del programa termina.
'UNKNOWN' Si existe el archivo lo abre, en caso contrario lo crea.
Expresin de caracteres evaluados como una cadena, con apertura en la barra de
ttulos de una pequea ventana dentro de una aplicacin Windows. El ttulo
predeterminado identifica la ventana como una unidad y da el nmero archivo (esto
es, TITLE=UNIT ndonde n es el nmero de unidades.

PARAMETER(nombre=expresin [[, nombre=expresin...)


Asigna a una constante un nombre simblico.
nombre
Nombre simblico.
expresin
Una expresin. La expresin puede incluir nombres simblicos slo si stos
nombres fueron definidos previamente con una instruccin PARAMETER dentro
del programa.
PAUSE [[prompt
Suspende la ejecucin del programa hasta que se teclee el nmero o cadena de caracteres especificados
por prompt. Si prompt no es especificado, se tomar como ENTER.
prompt
Cualquier caracter o entero desde 0 hasta 99,999
PROGRAM n_prog
Identifica la unidad del programa como un programa principal y le da un nombre.
n_prog
Nombre del programa principal.
El nombre del programa es global. Por lo tanto, ste no puede ser el nombre de un
procedimiento definido por el usuario o un bloque comn. Este es slo un nombre
local distinto a cualquier nombre local del programa principal.
READ{{ formatspec, nmlspec}
17

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

( [[UNIT=archivo
[[, [[{[[FMT=formatspec [[NML=nmlspec}
[[, END=endlabel
[[, ERR=errlabel
[[, IOSTAT=iocheck
[[, REC=rec )}
iolist
Transfere datos de el archivo asociado con archivo a los valores correspondientes dentro del iolist hasta
que toda operacin de lectura sea completada, ya sea encontrando el fin de archivo con la ocurrencia de un
error.
archivo
Unidad especificada.
Cuando leemos un archivo interno, archivo es una subhilera de caracteres, variable
tipo caracter, arreglo de elementos tipo caracter, arreglo de caracteres, arreglo de no
caracteres, o estructura de elementos. Cuando leemos a un archivo externo, archivo
es una expresin entera que especifica una unidad.
Si se incluye un nombre de archivo en la lnea de comandos que ejecuta esta
instruccin, ese nombre ser usado por el archivo. Si no es incluido, ste ser
indicado con uno.
formatspec
Formato especificado. Este podr ser la etiqueta de una instruccin FORMAT o el
formato de especificaciones del mismo.
Este argumento es requerido para un formato de lectura, y no se presentar dentro de
uno que no lo sea. Si una instruccin READ omite las opciones UNIT=, END=,
ERR= y REC=, y especifica slamente a formatspec e iolist, la lectura ser desde la
unidad asterizco (teclado).
nmlspec
Grupo especificado con nombres enlistados. Si se d, iolist ser omitido.
endlabel
Etiqueta de una instruccin en el mismo programa.
Si est presente, leer el fin de archivo marca una transferencia de control para la
instruccin que ste indica. Si es omitida, leer el fin de archivo causa un error en la
ejecucin, a menos que errlabel o iocheck sean especificados.
errlabel
Ver BACKSPACE.
iocheckl
Ver BACKSPACE.
rec
Expresin entera que evalua a un nmero positivo, llamando el nmero registrado.
Este es especificado slamente para archivos de acceso directo. Si se especifica en
acceso secuencial o achivos internos, ocurre un error I/O.
iolist
Lista de entidades en las que los valores son transferidos de el archivo. Si I/O es por
o de un formato requerido, un iolist no puede contar con estructura de variables,
pero si con estructura de elementos.
RECORD /tipo_nom/ vname [[ [atrrs [[(dim) [[, vname [[ [attrs [[(dim) ...
Especifica un tipo de estructura a nombres definidos por el usuario.
tipo_nom
Nombre de la estructura.
vname
Variable, arreglo o declarador de arreglo, que ser de este tipo de estructura.
attrs
Lista de atributos separados por comas. El attrs describe vname.
dim
Declarador de dimensin. La especificacin dim declara a vname como un arreglo.
RETURN [[ordinal
Regresa el control a la unidad de programa que lo llam.
ordinal
Constante entera. Especifica la posicin de una etiqueta de regreso alterno en la
lista de argumentos formales de la subrutina.
REWIND { archivo
( [[ UNIT= archivo
[[, ERR=errlabel
[[, IOSTAT=iocheck )}
Posiciona un archivo en su primer registro.
18

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

archivo
errlabel
iocheckl

FERNANDO TOLEDO2

Expresin entera que especifica la unidad externa. Si no es abiero, REWIND


no tiene efecto.
Ver BACKSPACE.
Ver BACKSPACE.

SAVE [[nombre
Causa que las variables retengan sus valores entre invocaciones del procedimiento en los cuales son
definidos.
nombre
Uno o ms nombres de bloques comunes (encerrados entre / ), variables o arreglos.
Si ms de un nombre es especificado, estos se separarn con comas. Si no se
especifica, todo nombre dentro del programa ser salvado.

SELECT CASE (testexp)


CASE (listexp)
[[Bloque de instrucciones
[[CASE (listexp)
[[Bloque de instrucciones
.
.
.
[[CASE DEFAULT
[[Bloque de instrucciones
END SELECT
Transfiere el control del programa a un bloque de instrucciones, determinados por el valor de una
expresin de control.
testexpr
Expresin de control que puede ser INTEGER, LOGICAL, CHARACTER*1.
listexp
Lista de valores, que sern constantes y se compararn con testexp. Los datos deben
ser del mismo tipo. Si testexp es igual a uno de los valores, el correspondiente
bloque de instrucciones es ejecutado.
fname ( [[formals ) = expresin
Define una funcin dentro de una instruccin simple.
fname
Nombre de la funcin.
El nombre fname es local en el programa ms cercano y no ser usado en otro,
excepto con el nombre de un bloque comn o de un argumento formal de otra
funcin, fname tendr el mismo tipo de dato cada que ste sea usado.
formals
Lista de argumentos formales. Si son ms de uno, los nombres deben ir separados
por comas.
El campo de nombres de argumentos formales es la declarada en la funcin. Por lo
tanto, nombres de argumentos formales pueden ser reusados con otros nombres
definidos por el usuario en el resto del programa ms cercano a la definicin de la
funcin.
Si formal tiene el mismo nombre que un nombre local, una referencia de formal
dentro de la funcin siempre se referir a el argumento formal y nnca al nombre
local. El tipo de dato de formal es determinado por el tipo de dato de la variable
local, porque al compilarlo no tiene otro camino para establecer el tipo de dato.
expresin
Alguna expresin legal.
Referente a variables, argumentos formales, otras funciones, arreglo de elementos y
constantes son permitidas dentro de expresin. Referente a la funcin declarada, de
cualquier manera, relacionar a la definicin previa de las funciones en la
declaracin de la funcin en cuanto esta se presente. La funcin no podr ser
llamada recursivamente, tanto directa como indirectamente.
19

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

FERNANDO TOLEDO2

STOP [[mensaje
Termina la ejecucin del programa.
mensaje
Constante tipo caracter o una constante entera desde 0 a 99,999.
STRUCTURE /tipo_nom/
el_decl(s)
.
.
.
END STRUCTURE
Define un nuevo componente de tipo de variable, construida con otro tipo de variables.
tipo_nom
Nombre del nuevo tipo de dato; siguiendo los nombres convencionales. No se puede
duplicar el nombre de otra variable o una funcin intrnseca, y tampoco el de un
tipo de dato intrnseco, como es COMPLEX. Debe ser un nombre local.
el_decl(s) Alguna combinacin de una o ms instrucciones de tipo de variables y
construcciones UNION. Puede incluir RECORD que usa estructuras previamente
definidas.
SUBROUTINE subr [[ [sattrs [[( [[formal [[ [attrs [[,formal [[ [attrs ... )
Identifica una unidad de programa como una subrutina, dndole un nombre e identificado con
argumentos formales.
subr
Nombre externo de la subrutina. El nombre no podr presentarse dentro de
AUTOMATIC, COMMON, DATA, EQUIVALENCE, INTRINSIC, LOADDS,
SAVE o tipo declaracin.
sattrs
Lista de atributos separados por comas. El sattrs describe a subr. Los siguientes
atributos podrn ser usados con subr: ALIAS, C, FAR, NEAR, PASCAL,
VARYING.
formal
Nombre de argumentos formales. Si ms de uno es especificado, debern ir
separados por comas. Un argumento formal podr ser el nombre de una variable
convencional, estructura de variables, una funcin intrnseca. Un argumento
formal tambin podr ser un regreso alternativo de una etiqueta (*).
attrs
Lista de atributos separados por comas. El attrs describe a formal (excepto en
especificacin de regreso alternativo). Los siguientes atributos pueden ser usados
con formal: FAR, HUGE, NEAR, REFERENCE, VALUE.
UNION
inst_map
inst_map
[[inst_map...
END UNION
Causa dos o ms mapeos para ocupamiento de la misma locacin de memoria.
inst_map
Declaracin de mapeo. Vase MAP...END MAP.
WRITE ([[UNIT= archivo
[[, [[{[[FMT=formatspec [[NML=nmlspec }
[[, ERR=errlabel
[[, IOSTAT=iocheck
[[, REC=rec )
iolist
Transfiere datos del iolist a el archivo asociado con archivo.
archivo

Cuando escriben en un archivo interno, archivo ser una subhilera de caracteres,


variable, arreglo, arreglo de elementos, estructura de elementos o arreglo de no
caracteres. Cuando escriben para un archivo externo, archivo es una expresin
entera que especifica una unidad.
20

PROGRAMACIN APLICADA A SISTEMAS ELECTRICOS DE POTENCIA

formatspec
nmlspec
errlabel
iocheck
rec

iolist

FERNANDO TOLEDO2

Formato especificado. Un formato especificado es requerido para un formato de


escritura; y no se presenta en uno que no lo sea.
Ver READ.
Ver BACKSPACE.
Ver BACKSPACE.
Expresin entera positiva, llamando un nmero registrado, especificado slo para
archivos de acceso directo (en caso contrario, ocurre un error).
Este argumento especifica el nmero del registro que ser escrito. El primer registro
en el archivo es marcado con el nmero 1. El predeterminado para rec es la
posicin recorrida en el archivo.
Lista de entidades de los valores transferidos por el WRITE. Este no puede contar
con estructura de variables, pero si con estructura de elementos.

21

You might also like