8 - Instituto Nacional de Ecología y Cambio Climático

Anuncio
Instituto Nacional de Ecología
Libros INE
CLASIFICA CION
AE 001932
LIBRO
Sistema de información rápida de
impacto ambiental
TOMO
1111111111111111111111111111111111111111111111111111111
AE 001932
SECRETARIA DE DESARROLLO URBANO Y ECOLOGIA
SUBSECRETARIA ;DE ECOLOGIA
DIRECCION GENERAL DE NORMATIVIDAD Y REGULACION ECOLOGICA
SISTEMA DE INFORMACION RAPIDA
DE IMPACTO AMBIENTAL
DINAMICA HEURISTICA S .C.
DINAMICA HEURISTICA S . C
SISTEMA DE INFORMACION RAPIDA
DE IMPACTO AMBIENTAL
Contrato Numero :
Responsable Tecnico
por la Compania :
412-011-85
Ing .Sergio Garza Ayala
Dr .J .Victor Hugo Paramo F.
Responsable Tecnico
por la Direccion
General:
Ing .Rogelio Gonzales
Fecha de Inicio:
lo . de octubre de 1985
Fecha de Termino:
31 de diciembre de 1985
Av . Co 1 . dmi V1 1 n s04—302 .Co l . dmoi
?l 1
ew .
CP . Oa i OO .Mmst i c e D . F .
I
N D I C E
1. INTRODUCCION
1 .1
OBJETIVOS
1 .2 ALCANCES Y ESQUEMA DESARROLLADO
PRIMERA PARTE
------------COMPILACION Y ANALISIS DE INFORMACION
2. BASES DE DATOS
2 .1 . BANCO DE DATOS
2 .1 .1 . CLASIFICACION POR GIRO DE ACTIVIDAD
2 .1 .2 . LISTA DE ACTIVIDADES DE DESARROLLO
2 .1 .3 . FACTORES DE EMISION DE CONTAMINANTES AL AGUA,
AIRE Y SUELO DE LAS ACTIVIDADES DE DESARROLLO
2 .1 .4 . LISTA DE CONTAMINANTES
2 .1 .5 . REGLAMENTACIONES NACIONALES Y DE OTROS PAISES
2 .1 .6 . CANTIDADES DE SUSTANCIAS PELIGROSAS` INDICADORAS
DE RIESGO
2 .1 .7 . VALORES MAXIMOS PERMISIBLES DE SUSTANCIAS
RIESGOSAS Y EFECTOS EN LA SALUD
2 .1 .8 . INFORMACION GENERAL SOBRE PROYECTOS
NACIONALES
2 .1 .9 . SISTEMAS DE CONTROL DE LA CONTAMINACION
REFERENCIAS
2 .2 . BANCO DE TEXTOS
REFERENCIAS
SEGUNDA PARTE
------------DISENO DEL SISTEMA
3. MODULO DE INFORMACION
4. MODULO DE PREDICCION
4 .1 . MODELOS DE DISPERSION DE CONTAMINANTES
4 .1 .1 . MODELOS DE DISPERSION AIRE
4 .1 .1 .1 . MODELO GAUSSIANO : POSICION(X,Y,Z)
E ISOCONCENTRACION
4 .1 .1 .2 . MODELO GAUSSIANO : FUGAS Y DERRAMES
4 .1 .1 .3 . MODELO GAUSSIANO : PUFF
REFERENCIAS
4 .1 .2 . MODELOS DE DISPERSION AGUA
4 .1 .2 .1 . MODELO STREETER Y PHELPS : DBO-OD
4 .1 .2 .2 . MODELO A .I .E .A : DESCARGAS TERMICAS
REFERENCIAS
4 .2 . MODELO DE SIMULACION DE IMPACTOS CRUZADOS (KSIM)
REFERENCIAS
5. MODULO DE APOYO DECISIONAL
5 .1 . PROCEDIMIENTO DE SELECCION DE ALTERNATIVAS RAJO
CRITERIOS MULTIPLES (ELECTRE)
REFERENCIAS
6. MODULO DE SISTEMA DE EXPERTOS
REFERENCIAS
7. MODULO CONVERSACIONAL 0 DE INTERFASE
TERCERA PARTE
------------IMPLEMENTACION OPERATIVA
8. GUTAS DEL USUARIO
ANEXOS
ANEXO 1 . PROGRAMAS FUENTE MODULO DE INFORMACION
ANEXO 2 . PROGRAMAS FUENTE MODULO DE PREDICCION
ANEXO 3 . PROGRAMAS FUENTE MODULO DE APOYO DECISIONAL_
ANEXO 4 . PROGRAMAS FUENTE MODULO DE SISTEMA DE EXPERTOS
ANEXO 5 . PROGRAMAS FUENTE MODULO CONVERSACIONAL
0 DE INTERFASE
1 . INTRODUCCION.
1 .1 . OBJETIVOS.
Entre los objetivos basicos que se persiguen con el desarrollo
del SIRIA cabe destacar los siguientes:
- Contar con un sistema computarizado que genere
la informacion necesaria para la toma de decisiones
en la evaluacion de impactos ambientales;
- Dinamizar el Procedimiento de Impacto Ambiental
en todo el pais ;
de la SEDUE, para permitir la identificacion
expedita de los posibles impactos ambientales
atribuibles a un plan o proyecto.
Es conveniente resaltar las implicaciones de los objetivos
anteriores . En primer termino, el proceso de evaluacion de
impactos ambientales en nuestro
creacion,
pais
es de muy reciente
por lo que la experiencia acumulada en la
determinacion
de efectos posibles es escasa . Existe una grave
deficiencia de datos e informacion sobre el comportamiento de
los diversos ecosistemas de nuestro pais, haciendo mas dificil
la tarea de prediccion de impactos.
Las
experiencias
en
materia
de Evaluacion de
Impactos
Ambientales en otros paises tienden a senalar la importancia
de contar con esquemas
faciliten el proceso de
una
depuracion
de
herramientas computarizadas que
y
evaluacion y permitan llevar a cabo
informacion y calibracion de los modelos y
metodos empleados.
El SIRIA constituye un proyecto cuyos resultados mas
importantes son de mediano plazo, si bien, se puede lograr una
operatividad
inicial en el corto
ello de una voluntad
politica,
plazo, .requiriendose para
sostenida, al igual que un
esfuerzo tecnico intenso.
Asimismo, es el
operacion
vehiculo
un conjunto de
mediante el cual se
tecnicas,
herramientas
pondran en
y metodos
desarrollados en un ambiente academico y de investigacion . A
traves
de este proceso se podra identificar que herramientas
son las mas adecuadas
y
que grado de calibracion requieren
para las condiciones de nuestro pais.
En este documento final, los elementos descritos surgen de un
proceso evolutivo, por lo que son sujetos a cambios y/o
modificaciones, con la idea
basica de que se adecuen lo mas
posible a las necesidades de la SEDUE .
1 .2 . ALCANCES Y ESQUEMA DESARROLLADO.
La heterogeneidad del proceso de evaluacion que se busca que
apoye
al SIRIA, hizo ineludible el adoptar una estrategia de
desarrollo
evolutivo, a
paultinamente
traves
del cual se incorporaron
herramientas con una cobertura mayor . Su
inicial se oriento a tipos de problemas donde existe
operacion
una mayor definicion y conocimiento, esto con el fin de probar
y optimizar su funcionamiento.
Fue menester, sin embargo, dotar al sistema desde su inicio,
de una estructura amplia, capaz de contender con el mayor
numero de problemas que se enmarcan dentro del proceso de
evaluacion de impactos ambientales.
Para
lograr una
planteados para
esquema
modular,
el
mayor
consistencia
SIRIA,
se considero necesario adoptar un
con
los objetivos
que permita tener una imagen global de los
alcances del proyecto.
Es adecuado identificar cuatro grandes categorias de problemas
implicitos
en la
evaluacion de impacto ambiental, los cuales
requieren de esquemas alternativos de solucion . Las categorias
son :
- problemas valorativos y de juicio;
- problemas de conocimiento;
- problemas de informacion;
- problemas de prediccion.
Dentro de cada categoria de problemas existe un conjunto de
herramientas, metodologias
y
enfoques que hacen factible dar
solucion a algunos de los problemas de tal categoria . Asi, se
tiene que dentro de la primera categoria se han desarrollado
un cumulo de herramientas para atender el area de toma de
decisiones . Los problemas del conocimiento han recibido
atencion especial en las ultimas dos decadas, dentro del area
de Inteligencia Artificial e Ingenieria del Conocimiento . La
informacion como un elemento vital en la vida moderna ha
cobrado un impetu renovado con el advenimiento de la
computadora personal,
y todo un universo de herramientas para
facilitar su manejo . Los problemas de prediccion estan en el
centro de la ciencia e ingenieria misma y dentro de las cuales
el desarrollo de modelos constituye una de las herramientas
mas visibles y poderosas.
Se estima que los problemas centrales de Evaluacion de
Impactos Ambientales estan enmarcados dentro de las cuatro
categorias anteriores, por consiguiente el SIRIA pretende
contar con los elementos para resolver tales problemas dentro
de un ambiente integrado y sistematico.
En base a lo anterior se doto al SIRIA de los siguientes
modulos :
- Modulo de Informacion
- Modulo de Prediccion
- Modulo de Apoyo Decisional
- Modulo de Sistema de Expertos
- Modulo de Interfase .
PRIMERA PARTE
-------------
COMPILACION Y ANALISIS DE INFORMACION
2. BASES DE DATOS.
La
informacion
obtuvo de
que se empleo en la conformacion del SIRIA se
articulos,
documentos
y
libros
tecnicos,
tanto
nacionales como de otros paises . El material incluido se
selecciono considerando criterios tales como : objetividad,
aplicabilidad, disponibilidad, confiabilidad.
La
informacion seleccionada se analizo y sistematizo, quedando
almacenada en dos bases de datos, designadas como:
- Banco de Datos
- Banco de Textos.
En el Banco de Datos se encuentran integrados una serie de
archivos que constituyen la
informacion basica
(actividades industriales, factores .
de
del SIRIA
emision,
reglamentaciones, informacion de proyectos, etc .).
'
El Banco de Textos esta constituido por un conjunto de citas
referentes a
informacion
relevante que puede servir de apoyo
en las evaluaciones de impacto ambiental .
2 .i BANCO DE DATOS.
El Banco de Datos esta formado por los siguientes archivos
de
informacion:
- Clasificacion por giro de actividad
- Lista de actividades de . desarrollo
- Factores de emision de contaminantes al aire,
água y suelo de las actividades de desarrollo
- Lista de contaminantes
- Reglamentaciones nacionales y de otros paises
- Cantidades de sustancias peligrosas indicadoras
de riesgo
- Valores maximos permisibles de concentraciones de
sustancias riesgosas y efectos en la salud
- Informacion general
sobre proyectos nacionales
- Sistemas de control de la contaminacion.
En cada uno de estos archivos se tiene almacenada informacion
que sirve, por si sola o como apoyo dentro de otros modulas,
de referencia en la evaluacion ambiental de un proyecto.
A continuacion se
presenta
archivos del Banco de Datos .
el
contenido
de cada un de los
2.1 .1 . CLASIFICACION POR GIRO DE ACTIVIDAD.
La
informacion incluida
ref .6 .
acuerdo
Se
en
este archivo fue extraida de la
refiere a la clasificacion de giros industriales de
con la
del archivo.
Ver tabla 2 .1 .1 .
O .N .U .
A continuacion se presenta el desglose
TABLA
NUMERO
2 .1 .1
RAND DE
DE GIRO ACTIVIDADES
------------------
NOMBRE DE LOS GIROS
í
1110a
1110h
PRODUCCION AGROPECUARIA
2
3111a
3121b
PRODUCCION DE ALIMENTOS !PARA CONSUNO HUMANO)
3 .
3131a
3134
INDUSTRIA DE BEBIDAS
4
321la
3211h
MANUFACTURA DE TEXTILES
5
3231a
3231c
MANUFACTURA DE CUERO
b
3311a
331lb
MANUFACTURA DE MADERA Y CORCHO, EXCEPTO MUEBLES
7
3411a
3411f
MANUFACTURA DE PULPA, PAPEL Y CARTON
8
3511
3530g
MANUFACTURA DE PRODUCTOS QUIMICOS INDUSTRIALES
3540
3540c
MANUFACTURA DE PRODUCTOS MISCELANEOS DEL PETROLED Y CARBON
9
10
3551a
3551b
MANUFACTURA DE PRODUCTOS DE CAUCHO
11
3610
3697
INDUSTRIA DE MINERALES NO METALICOS
12
3710
3710a
INDUSTRIA METALICA BASICA
13
3840a
3843
MANUFACTURA DE PRODUCTOS METALICOS, MAQUINARIA Y EQUIPO
14
4101a
4102
ELECTRICIDAD, GAS Y VAPOR
2 .8 .2 . LISTA DE ACTIVIDADES DE DESARROLLO.
La fuente de informacion es tambien la ref .6, y corresponde a
la subdivision de los giros industriales en las distintas
actividades comprendidas en ellos . Este desglose corresponde
igualmente al de la O .N .U . El contenido del archivo se muestra
a continuacion.
Ver tabla 2 .1 .2 .
TABLA
2 .1 .2
CLASIFICACION
NUMERO
DE LA ACTIVIDAD
DE GIRO
-------------
-----------------------------
NOMBRE DE LA ACTIVIDAD
1110a
1110b
1
CORRAL DE ENGORDA PARA RESES
1
CORRAL DE ENGORDA PARA CERDOS
111OC
1
CORRAL DE ENGORDA PARA POLLOS
111Od
I
CORRAL DE ENGORDA PARA CORDEROS
111Oe
1
CORRAL DE ENGORDA PARA PAVOS
111Of
I
CORRAL DE ENGORDA PARA PATOS
111Og
1
GRANJAS LECHERAS
111Oa
1
GRANJAS DE GALLINAS PONEDORAS
3111a
2
MATADEROS
3111b
3111c
2
EMPACADORAS
2
PROCESAMIENTO DE AVES DE CORRAL
3112
2
MANUFAOCTURA DE PRODUCTOS LACTEOS
3113
2
ENLATADO DE FRUTAS Y VERDURAS
3114
2
ENLATADO DE PESCADO
3115a
3115b
2
EXTRACCION DE ACEITE DE OLIVA
2
REFINACION DE ACEITE VEGETAL
3116
2
MOLINOS DE GRANOS
3118a
2
INGENIOS AIUCAREROS
311Gb
2
MANUFACTURA DE AZÚCAR DE REMOLAO3IA
3121a
2
MANUFACTURA DE ALNIDON Y GLUCOSA
3121b
3131a
2
MANUFACTURA DE LEVADURA
3
DESTILERIAS DE OLOOHOL
3133a
3
MANUFACTURA DE MALTA Y LICOR DE MALTA
31336
3
FERMENTACION DE CERVEZA
3133c
3133d
3
PRODUCCION TOTAL DE CERVEZA
3
PRODUCCION DE VINO
3134
.3
INDUSTRIAS DE REFRESCOS Y AGUAS CARBONATADAS
3211a
3211b
3211c
3211d
4
LANA (INCLUYENDO ESTREGADO)
4
LANA (SIN ESTREGAR)
4
ALGODONG
4
RAYON
321le
4
ACETATO
3211f
4
NAILON
321Gg
4
ACRILICO
3211b
3231a
3231b
3231c
3311a
3311b
4
POLIESIER
5
TENERLAS DE CUERO (A BASE DE SALES DE CROMO)
5
TENERIAS DE CUERO (CON AGENTES VEGETALES)
5
TERMINADOS DE CUERO SOLAMENTE
6
MANUFACTURA DE MADERA TERCIADA
6
MANUFACTURA DE TABLONES
3411a
3411b
3411c
7
PULPA SULFATARA (KRAFT)
7
PULPA SULFITADA
7
PULPA SEMIBUIMICA
341 Id
7
FABRICAS DE PAPEL
3411e
3411f
7
FABRICAS DE PAPEL (CON SISTEMAS DE REUSO DE AGUA)
7
FABRICAS DE PAPEL (CON SISTEMA MEJORADO DE REUSO DE AGUA)
3511
8
MANUFACTURA DE PRODS OUINICOS INDUSTRIALES BASICOS EXCEPTO FERTILIZTES
3511a
3511b
8
ACIDO CLORHIDRICO
8
ACIDO SULFÚRICO
3511c
3511d
8
ACIDO NITRICO
9
ACIDO FOSFORICO (SIN LAGUNA)
351le
8
ACIDO FOSFORICO (CON LAGUNA)
3511f
8
ACIDO FOSFORICO (PROCESO TERNICO)
35118
8
AMONIACO
3511h
8
HIDROXIDO DE SODIO, METODO DE CATODO DE MERCURIO 0 PROC CASTNER-KELLNR
35111
8
HIDROXIDO DE SODIO (CELDA DE DIAFRAGMA)
3511j
9
ACIDO FLUORHIDRICO
3511k
9
PIGMENTOS DE CROMO
351ln
8
VER CUADRO 2 .3, ANEXO 2 PAS .66 EVAL RAPIDA FUENTES DE CONTANINACION
3511n
9
VER CUADRO 2 .3, ANEXO 2 PAB.66 EVAL RAPIDA FUENTES DE CONTANINACION
351 lo
8
VER CUADRO 2 .3, ANcX0 2 PAS .66 EVAL RAPIDA FUENTES DE CONTANINACION
3511p
8
VER CUADRO 2 .3, ANEXO 2 PAG .66 EVAL RAPIDA FUENTES DE CONTANINACION
3512
8
MANUFACTURA DE FERTILIZANTES Y PLAGUICIDAS
3512a
3512b
3512c
3512d
8
SUPERFOSFATO NORMAL (191 P205)
8
SUPERFOSFATO TRIPLE (481 P205)
9
FOSFATO DE AMONIO (201 P205)
8
FOSFATO DI-AMONIO (201 P205)
3512e
3512f
3512g
3512h
8
DDT
9
HERBICIDAS DE HIDROCARBUROS CLORADOS
8
CARBANATOS
8
PARATION
3513
8
RESINAS SINTETICAS, PLASTICOS Y FIBRAS
3513a
3513b
3513c
3513d
3513e
9
FIBRAS DE RAYON
8
ELASTOMEROS VULCANIZABLES - CAUCHO SINTETICO
8
POLIOLEFINAS (POLIETILENOS)
8
RESINAS DE POLIESTIRENO Y COPOL IMEROS
8
RESINAS VINILICAS (PVC)
3513f
3513g
3513h
3513i
8
RESINAS DE POLIESTER Y ALKIDICAS
9
RESINAS FENOLICAS
8
RESINAS ACRILICAS (POLI(IERO A GRANEL)
8
RESINAS ACRILICAS (POLINERO EMULSIONADO)
3521
9
MANUFACTURA DE PINTURAS, BARNICES Y LACAS
3522
8
MANUFACTURA DE DROGAS Y MEDICINAS
3522a
3522b
8
PRODUCTOS BIOL0GICOS
8
PRODUCTOS MEDICOS, GUIMICOS Y BOTANICOS
3523
9
JABONES Y LIMPIADORES
3523a
3523b
3523c
3523d
3523e
8
JASON DE HERVOR A CALDERA
8
JABON DE ACIDOS GRASOS
8
DETERGENTES
8
REFINACION DE GLICERINA
9
DETERGENTES LIQUIDOS
3529
8
NANUF .DE SOMA ANIMAL (DE MATERIAS PRIMAS COMO CARNE,CUERO Y CROMO)
3530
9
REFINACION DE PEtROLEO
3530a
3530b
3530c
8
REFINERIAS DE DESTILACION PRIMARIA
8
REFINERIAS DE PIROLISIS A PRESION BAJA
8
REFINERIAS DE PIROLISIS A PRESION ALTA
3530d
3530e
3530f
3530g
8
REFINERIAS DE ACEITE DE LUBRICACION
3540
3540a
3540b
3540c
8
REFINERIAS PETROOUIMICAS
8
REFINERIAS INTEGRALES
9
RE-REFINACION DE ACEITE LUBRICANTE GASTADO
9
MANUFACTURA DE PRODUCTOS ASFALTICOS
9
PAVIMENTACION ASFALTICA
9
TECHADO ASFALTICO
9
FIELTRO PARA CONSTRUCCION Y ((ORMIGON
MANUFACTURA DE LLANTAS Y CÁMARAS
355Ia
10
3551b
10
OTROS PRODUCTOS DE CAUCHO
3610
11
MANUFACTURA DE CERAMICA, PORCELANA Y L01A DE BARRO
3620
11
MANUFACTURA DE VIDRIO Y PRODUCTOS DE VIDRIO
3621
11
MANUFACTURA DE PRODUCTOS DE ARCILLA ESTRUCTURAL
3692
11
MANUFACTURA DE CEMENTO
3697
11
MANUFACTURA DE CAL
3710
12
INDUSTRIA DE HIERRO Y EL ACERO
3710a
12
HORNO DE COQUE METALURBICO
3710b
3710c
3710d
3710e
3710f
12
HORNO DE CHORRO
12
HORNO DE ACERO BOF
12
HORNO DE ACERO ABIERTO
12
HORNO DE ACERO DE ARCO ELECTRICO
12
FUNDIDORAS DE ACERO E HIERRO GRIS
3720
12
INDUSTRIA BASICA DE METALES NO FERROSOS
3720a
3720b
3720c
3720d
12
MANUFACTURA DE ALUMINIO A PARTIR DE BAUXITA
12
FUNDICION PRIMARIA DE ALUMINIO
12
FUNDICION SECUNDARIA DE ALUMINIO
12
FUNDICION DE COBRE A PARTIR DE MINERALES SULFITADOS
3720e
3720f
3720g
3720h
3720i
12
REFINACION ELECTRO.ITICA DE COBRE
12
FUNDICION SECUNDARIA DE COBRE
12
FUNDIDORAS DE LATON Y BRONCE
12
FUNDICION DE PLOMO A PARTIR DE MINERAL
12
FUNDICIOI SECUNDARIA DE PLOMO Y REFINACION
3720j
3720k
12
FUNDICION PRIMARIA DE ESTANO Y REFINACION
12
FUNDICION PRIMARIA DE ZINC
37201
12
TRATAMIENTO SECUNDARIO DE ZINC
3720a
3720n
3720a
12
FUNDICION PRIMARIA DE ANTIMONIO
12
FUNDICION PRIMARIA DE MERCURIO Y REFINACION
12
FUNDICION PRIMARIA DE TITANIC Y REFINACIOR
3840a
3840b
13
ENSERES DONESTICOS
13
GALVANOPLASTIA (DEPOSITO DE COBRE,NIQUEL,CRONO Y ZINC)
3841
13
CONSTRUCCION DE BARCOS
3843
13
MANUFACTURA DE VEHICULOS AUTOMOTORES
4101a
4101b
14
PLANTAS TERMOELECTRICAS DE LIGNITO
14
PLANTAS TERMOELECTRICAS DE CARBON BITUMINOSO
4102
14
MANUFACTURA DE GAS A PARTIR DE HORNOS DE COQUE
2.8 .3 . FACTORES DE EMISION DE CONTAMINANTES AL AIRE,
AGUA Y SUELO DE LAS ACTIVIDADES DE DESARROLLO.
Para cada una de las actividades de desarrollo mencionadas en
el
parrafo 2 .1 .2 .,
se presentan los factores de emision de
contaminantes que generan ya sea al aire, al agua o al suelo
(residuos
solidos) .
Estos factores se tomaron de la ref .6 y
provienen de diversas fuentes bibliograficas (por lo general
norteamericanas) . El archivo esta integrado por la informacion
que se presenta a continuacion.
Ver tabla 2 .1 .3 .
T A 8 L A
CLAVE DE
ACTIVIDAD
3114
3114
3116
3138a
3121a
3133c
3211c
3311a
3411a
3411a
3411a
3411a
3411a
3511b
3511c
3511d
3511e
3511f
3511g
3511g
3512
3512
3512a
3512a
3512b
3512c
3512c
3512d
3512d
3512e
3512e
3512e
3512f
3512f
3512f
3512f
3513
3513
3513a
3513a
3513b
3513c
3513c
3521
3521
3521a
3521a
3521b
3521c
3523
2 .1 .3
CLAVE DE
CANTIDAD
CONTAMINANTE
------------
EMITIDA
1
6
1
1
1
1
1
4
1
2
5
6
2
2
3
13
13
1
4
9
1
13
1
13
13
1
13
1
13
1
3
9
1
2
3
9
7
6
7
6
4
1
4
1
4
1
4
4
4
1
0.050
0 .005
8 .800
20 .000
4 .000
4 .000
14 .000
1 .200
123 .000
2.500
35 .000
7.200
77 .000
20.000
26 .200
20 .100
20 .100
5 .100
45 .000
101 .000
4 .500
0.075
4 .500
0 .075
0 .015
41 .000
0 .020
41 .000
0 .020
5 .000
2 .000
1 .500
10 .000
0.700
2 .000
5.000
27 .500
3 .000
27 .500
3 .000
20 .000
17 .000
3 .500
1 .000
15.000
1 .000
15.000
40 .000
770.000
45 .000
IDIILOD
Kglt
Kg/t
Kg/t
Kg/t
Kg/t
Kg/e3
Kg/t
Kglm3
Kg/t
Kg/t
Kglt
Kg/t
Kg/t
Kq/t
Kglt
Kg/t
Kg/t
Kg/t
Kglt
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kq/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kglt
Kg/t
Kglt
Kq/t
Kglt
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kglt
Kg/t
Kg/t
Kg/t
Kglt
Kg/t
Kglt
Kg/t
3523c
3540
3540a
3540b
3540b
3540b
3610
3620
3620
3521
3692a
3697
3710
3110
3710
3710
3710
3710
3710a
3710a
3710a
3710a
3710a
3710a
37106
3710b
3710c
3710e
3710f
3720c
3720d
3720g
3720h
3720h
3720i
3720i
3720k
3720k
37201
3840a
38436
4101a
4101a
4101a
4101a
4101a
4101a
4101a
4101a
4101a
4101a
410fa
4101a
1
1
1
1
4
5
1
1
12
1
1
1
1
2
3
4
5
9
1
2
3
4
5
9
1
5
5
5
5
1
1
1
1
2
1
2
1
21
1
4
4
1
2
3
4
5
9
1
2
3
4
5
9
45 .000
22.000
22 .000
2.300
0.800
0 .500
65 .000
1 .000
10 .000
Kg/t
65 .000
170 .000
170 .000
Kg/t
Kg/t,
Kg/t
1 .750
2 .010
0 .020
2 .100
0 .630
0 .090
2 .500
2 .900
0 .030
Kg lt
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
3 .000
0 .900
0 .130
Kg/t Coque
Kg/t Coque
Kg/t Coque
75.000
875 .000
69.500
9 .000
72 .500
2.150
270 .000
30 .000
300 .000
297 .000
65 .000
43 .000
300 .000
100 .000
50 .000
16 .200
16 .200
1 .750
2 .010
0 .020
2 .100
0 .630
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kglt
de C
de C
de C
de C
de C
de C
Coque
Coque
Coque
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
Kg/t
KgIt
Kg/t
Kg /t
Kg/t
Kg/t
Kg/t , de
Kg/t
Kg/t de
Kg/t de
Kg/t de
Kg/t de
Kg/t de
fe
C
C
C
C
C
0 .090
2 .500
2 .900
0 .030
3 .000
Kg/t
Kg/t
Kg lt
Kg/t
Kg/t
de C
Coque
Coque
Coque
Coque
0.900
0.130
Kg/t Coque
Kg/t Coque
2~1~4~ LISTA DE CONTAMINANTES.
Este archivo esta formado por una tabla que incluye los
nombres,
y
en la
mayoria
de los casos los simbolos, de los
contaminantes del aire, agua
y
suelo mas comunes . Esta
estructurado de tal forma que los contaminantes se agrupan de
acuerdo al receptor en el cual son descargados (aire,
agua ,
suelo) . A continuacion se presenta el contenido del archivo.
Ver tabla 2 .1 .4 .
TABLA
NUMERO
2 .1 .4
DEL
CONTAMINANTE
CONTAMINANTE
------------
------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
3i
32
PART ICULAS
S02
OXIDO DE NITROSENO
HIDROCARBUROS
CO
H2S
CS2
FENOLES
NH3
CU
HCL
F2
FLUORUROS
HF
DB05
D40
SS
ACEITE
NITR06éNO
(N)
FENOLES
P205
S2CN
Hg
Cu
Ni
Cr
Zn
Cd
Sn
HIDROCARBUROS CLORADOS
F-
RECEPTOR'
6
6
8
6
6
6
6
6
6
G
6
G
6
G
L
L
L
L
L
L
L
l
L
L
L
L
L
L
L
L
L
L
2.1 .5. REGLAMENTACIONES NACIONALES Y DE OTROS PAISES.
Este archivo consta de un conjunto de tablas con
informacion
sobre reglamentos referentes a contaminacion del aire, agua y
por ruido de nuestro
informacion
sobre
pais (ref .5) ;
legislacion
ademas se integro
ambiental en otros paises . Las
tablas incluidas se describen a continuacion.
Ver tablas 2 .1 .5 .a hasta 2 .1 .5 .i
T A 8 L A
2 .1 .5 .a
REGLAMENTO PARA LA EMISION DE POLVOS. 17-SEP-1971 . ARTICULO 20 . EN TODA
OPERACION, PROCESO 0 ACTIVIDAD INDUSTRIAL, LA EMISION DE POLVOS NO DEBERA
EICEDER DE LAS CANTIDADES INDICADAS EN RELACION AL PESO DE PROCESO CORRESPONDIENTE.
--------------------------------------------------------------------------PESO DEL PROCESO
Ton/H
EMISION MAXIMA PERMITIDA 1Kg/N1
INDUSTRIA NUEVA
INDUSTRIA EXISTENTE
------------------------------------------------------------------------0.025
0 .489
0 .652
0.050
0 .780
1 .040
0 .100
1 .239
1 .652
0.220
1 .974
2 .632
0 .300
2 .589
3 .452
0.400
3 .141
4 .188
0.500
3 .648
4 .364
0.750
4 .788
6 .348
1 .000
5 .805
7 .740
1 .250
6 .741
8.988
1 .500
7 .617
10 .156
2 .000
9 .237
12.316
2.500
10 .725
14 .300
3 .000
12 .120
16.160
3.500
13 .437
17 .916
4 .000
14.694
19.592
4 .500
15.900
21 .200
5 .000
17 .064
22.752
6 .0
19.281
26 .708
8 .0
23 .382
31 .176
10 .0
27 .153
36 .201
15 .0
35 .625
47 .500
20 .0
43 .200
57 .600
25.0
50 .166
66 .888
30.0
55 .572
74 .096
35.0
57 .462
76 .616
40.0
59 .127
78 .836
45.0
60 .564
80 .752
50.0
61 .926
82 .568
60.0
64 .269
85 .693
70.0
65 .556
87 .408
80.0
68 .052
90 .736
100.0
71 .154
94 .872
500.0
95 .436
127.248
1000.0
107.313
143 .084
3000.0
130.080
172.650
TABLA
2 .1 .5 .6
REGLAMENTO PARA LA EMISION DE POLVOS . 17-SEP-1971 . ARTICULO 20 . EN TODA
OPERACION, PROCESO 0 ACTIVIDAD INDUSTRIAL, LA ENISION DE POLVOS NO DEDERA
EXCEDER DE LAS CANTIDADES INDICADAS EN RELACION AL AL VOLUMEN DE 6AS EN LA
FUENTE .
CONCENTRACION INDUSTR.
VOLUMEN DE 6AS EN
CONCENTRACION INDUSTR .
LA FUENTE M3 NORMAL
NUEVA Mg/N3 NORMAL
EXISTENTE Mg/N3 NORMAL
--------------------------------------------------------------------------100
125
819.0
795.0
1132.0
1000 .0
150
175
200
750.0
714 .0
684 .0
1000.0
952 .0
912.0
300
400
500
750
600.0
543 .0
510.0
800.0
724.0
680.0
592.0
1000
1500
444 .0
405.0
357 .0
2000
3000
324 .0
285 .0
432.0
380.0
4000
5000
7500
258 .0
240 .0
210.0
344.0
320.0
280.0
10000
15000
20000
192 .0
168 .0
154 .2
256.0
224.0
205 .6
30000
40000
50000
135 .0
123 .0
180.0
164 .0
152 .0
114 .0
540 .0
476.0
TABLA
2 .1 .5 .c
REGLAMENTO PARA PREVENCION Y CONTROL DE LA CONTAMINACION DE AGUA . (29-MAR
-1973) . ARTICULO 24 . LOS CUERPOS RECEPTORES DE UNA CUENCA 0 UNA
REGION.
CLASIFICACION DE LAS AGUAS DE LOS CUERPOS RECEPTORES SUPERFICIALES.
----------------------------------------------------------------------------CLASE USOS
pH
TEMPERATURA IC)
----------------------------------------------------------------------------ABASTECIMIENTO PARA SISTEMAS
DE AGUA POTABLE E INDUSTRIA
DA
ALIMENTICIA CON DESINFECCION
UNICAMENTE .
RECREACION CON-
TACTO PRIMARIO Y LIBRE PARA
CONDICIONES NATURALES
6 .3
NAS 2 .5
A
B .5
LOS USOS DI, DII, DIII.
ABASTECIMIENTO DE AGUA POTAILE
CON
DI
TRATAMIENTO CONVENCIONAL
6 .0
ICOAGULACION, SEDIMENTACION,
A
FILTRACION Y DESINFECCION) E
9 .0
CONDICIONES NATURALES
NAS 2.5
INDUSTRIAL.
AGUA ADECUADA PARA USO RECREADII
DIII
TIVO DE CONSERVACION DE FLORA,
6 .0
A
FAUNA Y USOS INDUSTRIALES
9 .0
AGUA PARA USO AGRICOLA E IN-
6 .0
DUSTRIAL .
A
CONDICIONES NATURALES
MAS 2.5
CONDICIONES NATURALES
MAS 2 .5
9 .0
DIV
AGUA PARA USO INDUSTRIAL
5 .0
(EXCEPTO PROCESAMIENTO DE
A
ALIMENTOS) .
9 .5
---------------
TABLA
2 .1 .5 .d
REGLAMENTO PARA PREVENCION Y CONTROL DE LA CONTAMINACION DE AGUA . 129-MAR1973) . ARTICULO 24 . VALORES MAXIMOS PERMISIBLES DE SUBSTANCIAS TOXICAS
EN LOS CUERPOS RECEPTORES.
---------------------------------------------------------------------------CLASIFICACION
LIMITES MAXIMOS EN MILISRAMOS POR LITRO
DA
DI
DII
DIII
---------------------------------------------------------------------------ARSENICO
0 .05
0 .05
1 .00
5 .00
BARIO
1 .00
1 .00
5 .00
BORO
1 .00
1 .00
2 .0
CADMIO
0.01
0 .01
0 .01
0 .005
COBRE
1 .00
1 .00
0 .1
1 .0
CROMO HEXAVALENTE
0 .05
0 .05
0 .1
5 .00
MERCURIO
0.005
0 .005
0 .01
PLOMO
0 .05
0.05
0 .10
5 .00
SELENIO
0 .01
0 .01
0 .05
0 .05
CIANURO
0 .20
0.20
0 .02
FENOLES
0 .001
0 .001
1 .00
SUSTANCIAS ACTIVAS AL
AZUL DE METILENO
1DETERSENTESI
0.50
0 .50
0 .15
0.15
0 .017
0 .003
0.042
0 .017
0 .001
'0 .018
0 .018
0 .056
0.035
0.017
0 .003
0.042
0.017
0 .001
0 .018
0 .018
0 .056
0 .035
0.100
0.005
0 .100
0 .100
0 .005
0 .100
3 .0
EXTRACTABLES CON
CLOROFORMO
PLAGUICIDAS
ALORIN
CLORDANO
D .D.T.
DIELDRIN
ENDRIN
HEPTACLORO
EPDXICO DE HEPTACLORO
LINDANO
METOXICLOiO
FORFATOS ORGANICOS CON
CARBAMATOS
TOXAFENO
HERBICIDAS TOTALES
RADIACTIVIDAD
BETA
RADIO 226
ESTRONCIO
PICOCURIES I LITRO
1 .000
1 .000
3
3
1 .000
3
10
10
10
2 .1 .5 .e
TABLA
REFOLAMENTO PARA LA PROTECCION DEL AMBIENTE CONTRA LA CONTAMINACION ORIGINADA
POR LA EMISION DE RUIDO . 6-DIC-1982.
--------------- ------------------ -------------------------------------------ARTICULOS
11, 19, 22, 29.'
ARTICULO 11.
EL NIVEL DE EMISION DE RUIDO MAHMO PERMISIBLE EN FUENTES FIJAS ES DE 6B dB
(A) OE LAS SEIS A LAS VEINTIDOS HORAS, Y DE 65 dB DE LAS VEINTIDOS A LAS SEIS
HORAS . ESTOS NIVELES SE MEDIRAN EN FORMA CONTINUA 0 SEMICONTINUA EN LAS COLINDANCIAS DEL PREDIO, DURANTE UN LAPSO NO MENOR DE 15 MINUTOS, CONFORME A
LAS NORMAS CORRESPONDIENTES.
EL GRADO DE MOLESTIA PRODUCIDO POR LA EMISIOi DE RUIDO MAXIMO PERMISIBLE SERA
DE 5 EN UNA ESCALA LIKERT MODIFICADA DE 7 GRADOS . ESTE GRADO DE MOLESTIA
SERA EVALUADO EN UN UNIVERSO ESTADISTICO REPRESENTATIVO CONFORME A LAS NORMAS
CORRESPONDIENTES.
ARTICULO 19.
LOS CIRCOS, FERIAS Y JUEGOS MECÁNICOS QUE SE INSTALEN EN LA CERCANIA DE CENTROS HOSPITALARIOS, SUARDERIAS, ESCUELAS, ASILOS, LUGARES PARA DESCANSO Y
OTROS SITIOS DONDE EL RUIDO ENTORPEZCA CUALQUIER ACTIVIDAD, SE DEBERA AJUSTAR A UN NIVEL NAXIMO PERMISIBLE DE EMISION DE RUIDO DE 55 dB IA) .
ESTE
NIVEL SE MEDIRA EN FORMA CONTINUA 0 SENICONTINUA EN LAS COLINDANCIAS DEL
PREDIO AFECTADO DURANTE UN LAPSO NO MENOR DE 15 MINUTOS, CONFORME A LAS NORMAS CORRESPONDIENTES.
ARTICULO 22.
LOS APARATOS AMPLIFICADORES DE SONIDO Y OTROS DISPOSITIVOS SIMILARES ODE
PRODUZCAN RUIDO EN LA VIA PUBLICA 0 EN EL MEDIO AMBIENTE DE LA COMUNIDAD
SOLO PODRAN SER USADOS EN CASO DE SERVICIO DE BENEFICIO COLECTIVO NO
COMERCIAL Y REQUERIRAN DE PERMISO, QUE OTORGARA LA AUTORIDAD COMPETENTE,
SIEMPRE DUE EXCEDA UN NIVEL DE 75 dB (A), MEDIDO DE ACUERDO A LAS NORMAS
CORRESPONDIENTES.
ARTICULO 29.
PARA EFECTOS DE PREVENIR Y CONTROLAR LA CONTAMINACION AMBIENTAL ORIGINADA
POR LA EMISION DE RUIDO, OCASIONADAVDR AUTOMOVILES, CAMIONES, AUTOBUSES,
TRACTO-CAMIONES Y SIMILARES, SE ESTABLECEN LOS SIGUIENTES NIVELES PERMISIBLES EXPRESADOS EN dB IA).
PESO BRUTO
VEHICULAR
NIVEL MAXIMO
HASTA 3,000 Kg
MAS DE 3,000 Kg
Y HASTA 1,0000 Kg
MAS DE 10,000 Kg
PERMISIBLE EN
79
81
84
dB IA)
LOS VALORES ANTERIORES SERAN NEDIDOS A 15 N DE DISTANCIA DE LA FUENTE POR
EL IO:TODO DINAMICO DE CONFORMIDAD CON LA NORMA CORRESPONDIENTE .
TABLA
2 .1 . 5 . f
REGLAMENTO SOBRE LA PREVENCION DE LA CONTANINACION DEL MAR POR VERTINIETNTO
DE DESECHOS Y OTRAS MATERIAS . (23-ENE-1979).
---______________________________________ --________________________________
ANEXOS I, II, III
-------------------------------------------------------------------------
ANEXO I.
1 . COMPUESTOS ORGANICOS HAL0GENADOS.
2. MERCURIO Y COMPUESTOS DE MERCURIO.
3. CADMIO Y COMPUESTOS DE CADMIO.
4 . PLASTICOS PERSISTENTES Y DEMAS MATERIALES SINTETICOS PERSISTENETS
TALES CONO REDES Y CABOS, QUE PUEDAN FLOTAR 0 QUEDAR EN SUSPENSIN EN
EL MAR DE MODO QUE PUEDAN OBSTACULIZAR MATERIALMENTE LA PESCA, LA NAVESACION U OTRAS UTILIZACIONES LEGITIMAS DEL MAR.
5 . PETROLEO CRUDO, FUEL-OIL, ACEITE PESADO DIESEL, Y ACEITES LUBRICANTES,
FLUIDOS HIDRALICOS, Y MEZCLAS DUE CONTENGAN ESOS HIDROCARBUROS, CARGADOS CON EL FIN DE SER VERTIDOS.
6 . DESECHOS U OTRAS MATERIAS DE ALTO NIVEL RADIACTIVO QUE POR RAZONES DE
SALUD PUBLICA, BIOLOSICAS 0 DE OTRO TIPO HAYAN SIDO DEFINIDAS POR EL
ORGANO INTERNACIONAL COMPETENTE EN ESTA ESFERA, ACTUALMENTE EL ORGA NISMO INTERNACIONAL DE ENERGIA ATONICA, CONO INAPROPIADOS PARA SER VERTIDOS EN EL MAR.
7. MATERIALES DE CUALQUIER FORMA (POR EJEMPLO, SOLIDOS, LIQUIDOS, SEMILIQUIDOS, GASEOSOS 0 VIVIENTES) PRODUCIDOS PARA LA GUERRA DUIMICA Y
BIOLOSICA.
8. LOS PARRAFOS PRECEDENTES DEL PRESENTE ANEXO NO SE APLICARAN A SUSTANCIAS QUE SE TRANSFORMEN RAPIDAMENTE EN EL MAR EN SUSTANCIAS INOCUAS
MEDIANTE PROCESOS FISICOS, QUIMICOS 0 BIOL06ICOS, SIEMPRE QUE:
I)
NO DEN MAL SABOR A LA CARNE DE LOS ORGANISMOS MARINOS COMESTIBLES,
0
II)
NO PONGAN EN PELIGRO LA SALUD DEL HOMBRE 0 DE LOS ANIMALES
DONESTICOS.
SI EXISTIESE ALGUNA DUDA SOBRE SI UNA SUSTANCIA ES INOCUA, LA PARTE
DEBERA SEGUIR EL PROCEDIMIENTO CONSULTIVO DISPUESTO EN EL ARTICULO
XIV.
9 . EL PRESENTE ANEXO NO SE APLICARA A DESECHOS U OTROS MATERIALES (TALES
CONO LODOS DE AGUAS RESIDUALES Y ESCOMBROS DE DRAGADOS) QUE CONTENGAN COMO VESTIGIOS DE CONTAMINANTES, LAS MATERIAS A QUE SE HACE REFERENCIA EN LOS APARTADOS 1-5 DEL PRESENTE ANEXO . ESTOS DESECHOS ESTARAN SUJETOS A LAS DISPOSICIONES DE LOS ANEXOS II Y III SEGNN PROCEDA.
ANEXO II .
LAS SUBSTANCIAS Y MATERIAS QUE PARA SU VERTIMIENTO REQUIEREN ESPECIAL ATENCION SE ENUMERAN A CONTINUACION:
A. DESECHOS QUE CONTENGAN CANTIDADES CONSIDERABLES DE LAS MATERIAS
SIGUIENTES:
ARSENICO.
PLOMO.
COBRE Y SUS COMPUESTOS.
ZINC.
COMPUESTOS ORGANICOS DE SILICIO.
CIANUROS.
FLUORUROS.
PESTICIDAS Y SUS SUBPRODUCTOS NO INCLUIDOS EN EL ANEXO 1
B. AL CONCEDER PERMISO PARA EL VERIMIENTO DE GRANDES CANTIDADES DE ACIDOS
Y ALCALIS, SE TENDRA EN CUENTA LA POSIBLE PRESENCIA EN ESOS DESECHOS
DE LAS SUBSTANCIAS ENUMERADAS EN EL APARTADO A Y DE LAS SUBSTANCIAS ADICIONALES SIGUIENTES:
BERILIO.
CROO.
NIQUEL Y SUS COMPUESTOS.
VANADIO.
C. LOS CONTENEDORES, CHATARRA Y OTROS DESECHOS VOLUMINOSOS QUE PUEDAN HUN DIRESE HASTA EL FONDO DEL MAR Y OBSTACULIZAR SERIAMENTE LA PESCA 0 LA
NAVESACION.
D. LOS DESECHOS RADIACTIVOS U OTRAS MATERIAS RADIACTIVAS NO INCLUIDOS EN
EL ANEXO I . EN LA EXPEDICION DE PERMISOS PARA EL VERTIMIENTO DE ESTAS
MATERIAS LAS PARTES CONTRATANTES DEBERAN TEMER DEBIDAMENTE EN CUENTA
LAS RECOMENDACIONES DEL ORGANO INTERNACIONAL COMPETENTE EB ESTA ESFERA
EN LA ACTUALIDAD EL ORGANISMO INTERNACIONAL DE ENERGIA ATONICA.
ANEXO III.
ENTRE LOS FACTORES QUE DEBERAN EXAMINARSE AL ESTABLECER CRITERIOS QUE
RIJAN LA CONCESION DE PERMISOS PARA EL VERTIMIENTO DE MATERIAS EN EL MAR
ESTALA LOS SIGUIENTES:
A . CARACTERISTICAS Y COMPOSICION DE LA MATERIA.
1. CANTIDAD TOTAL Y CONPSICION MEDIA DE LA MATERIA VERTIDA (POR EJEMPLO POR ANO).
2.
FORMA, POR EJEMPLO, SOLIDA, LODOSA, LIQUIDA 0 GASEOSA.
3.
PROPIEDADES : FISICAS (POR EJEMPLO, LA SOLUBILIDAD Y DENSIDAD) QUIMICAS Y BIOQUIMICAS (POR EJEMPLO, DEMANDA DE OXIGENO, NUTRIENTES)
Y BIOLOSICA (POR EJEMPLO, PRESENCIA DE VIRUS, BACTERIAS, LEVADURAS,
PARASITOS).
4.
TOXICIDAD.
5.
PERSISTENCIA : FISICA, QUIMICA Y BIOLORICA.
6.
ACUMRULACION Y BIOTRANSFORNACION EN MATERIALES BIOLOGICOS 0 SEDIMENTOS.
7.
SUSCEPTIBILIDAD A LOS CAMBIOS FISICOS, QUIMICOS Y BIOQUIMICOS E
INTERACCION EN EL MEDIO ACUATICO CON OTROS MATERIALES ORSANICOS
DISUELTOS.
S . PROBABILIDAD DE QUE SE PRODUZCAN CONTAMINACIONES U TOROS CAMBIOS
QUE REDUICAN LA POSIBILIDAD DE CONERCIALIZACION DE LOS RECURSOS
(PESCADOS, MOLUSCOS, ETC .)
B. CARACTERISTICAS DEL LUGAR DE VERTIMIENTO Y METODO DE DEPOSITO.
1. SITUACION (POR EJEMPLO, COORDENADAS DE LA ZONA DE VERTIMIENTO,
PROFUNDIAD Y DISTANCIA DE LA COSTA), SITUACION RESPECTO A OTRAS
ZONAS (POR EJEMPLO, ZONAS DE ESPARCIMIENTO, DE DESOVE, DE CR1ABERDS Y DE PESCA Y RECURSOS EXPLORARLES).
2. TASA DE ALIMENTACION POR PERIODO ESPECIFICO (POR EJEMPLO, CANTIDAD POR DIA, POR SEMANA, POR MES).
3. METODOS DE ENVASADO Y CONTENCION, SI LOS HUBIERE.
4. DILUCION INICIAL LOGRADA POR EL METODO DE DESCARGA PROPUESTO
5. CARACTERISTICAS DE LA DISPERSION (POR EJEMPLOO, EFECTOS DE LAS
CORRIENTES, MAREAS Y VIENTO SOBRE EL DESPLAZAMIENTO HORIIONTAL
Y LA MEZCLA VERTICAL).
6. CARACTERISTICAS DEL AGUA (POR EJEMPLO, TEMPERATURA, pH, SALINIDAD, ESTRATIFICACION, INDICES DE OXIGENO DE LA CONTAMINACION,
OXIGENO DISUELTO (CO), DEMANDA QUIMICA DE OXIGENO (DQO) Y DEMANDA
BIOQUIMICA DE OXIGENO (DBO), NITROGEN() PRESENTE EN FORMA ORGANICA
Y MINERAL INCLUYENDO AMONIACO, MATERIAS EN SUSPENSION, OTROS
NUTRIENTES Y PRODUCTIVIDAD.
7. CARACTERISTICAS OE LOS FONDOS (POR EJEMPLO, TOPOGRAFIA, CARACTERISTICAS GEOQUIMICAS Y SEOLOGICAS, PRODUCTIVIDAD BIOLOGICA).
8. EXISTENCIA Y EFECTOS DE OTROS VERTIMIENTOS QUE SE HAYAN EFECTUADO EN LA ZONA DE VERTIMIENTO (POR EJEMPLO, ANTECEDENTES SOBRE
CONTENIDO DE METALES PESADOS Y CONTENIDO DE CARBONO ORGANICO).
9. AL EXPEDIR UN PERMISO PARA EFECTUAR UNA OPERACION DE VERTIMIENTO
LAS PARTES CONTRATANTES DEBERAN CONSIDERAR SI EXISTE UNA BASE
CIENTIFICA ADECUADA, PARA DETERMINAR, COMO SE EXPONE EN EL PRESENTE ANEXO LAS OCNSEUCENCIAS DE TAL VERTIMIENTO TENIENDO EN CUENTA LAS VARIACIONES ESTACIONALES.
C. CONSIDERACIONES Y CONDICIONES GENERALES.
1. POSIBLE EFECTOS SOBRE LOS ESPARCIMIENTOS (POR EJEMPLO, PRESENCIA
DE MATERIAL FLOTANTE 0 VARADO, TURBIDEZ, MALOS OLORES, DECOLORACION
Y ESPUMAS).
2. POSIBLES EFECTOS SOBRE LA VIDA MARINA, PISCICULTURA Y (ONQUICULTURA
RESERVAS DE ESPECIES MARINAS PESQUERIAS, Y RECOLECCION Y CULTIVO
DE ALGAS MARINAS.
3.
POSIBLES EFECTOS SOBRE OTRAS UTILIZACIONES DEL MAR (POR EJEMPLO,
MENOSCABO DE LA CALIDAD DEL AGUA PARA USOS INDUSTRIALES, CORROSION
SUBMARINA DE LAS ESTRUCTURAS, ENTORPECIMIENTO DE LAS OPERACIONES
POR LA PRESENCIA DE MATERIALES FLOTANTES, ENTORPECIMIENTO DE LA
PESCA 0 DE LA NAVE6ACION POR EL DEPOSITO DE DESECHOS I OBJETOS
SOLIDOS EN EL FONDO DEL MAR Y PROTECCION DE ZONAS DE ESPECIAL IMPOR TANCIA PARA FINES CIENTIFICOS 0 DE CONSERVACION).
4. DISPONIBILIDAD PRACTICA DE NETODOS ALTERNATIVOS DE TRATAMIENTO,
EVACUACION 0 ELIMENACION SITUADOS EN TIERRA, 0 DE TRATAMIENTO PARA
CONVERTIR LA MATERIA EN SUBSTANCIAS MENOS NOCIVAS PARA SU VERTI MIENTO EN EL MAR.
TABLA
2 .1 .5 .g
DE
ESTANDARES
CALIDAD
DE
AIRE
BIOXIDO DE AZUFRE
l 1
i2
oras )
ias )
nos )
mg/m3
ppm
tiempo promedio t 3
Argentina
0 .07
0 .05
0 .3
0 .03
0.02
30
Bulgaria
Canada
0.11
0 .02
0 .06
0 .01
0 .06
2
1
24
24
1
1
3
Mexico
0 .06
0 .15
0.03
0 .15
0.365
0.08
0.04
0.37
Rusia
0 .05
0 .14
0 .03
0 .1
0 .13
0 .02
0.9
0 .2
0.1
0.396
0 .45
0 .1
0 .05
0 .21
1
24
1
1
1
1
3
1
11 .5
1 .0
15.0
10.0
23 .0
14 .95
1 .0
10 .0
0 .9
13.0
8 .6
20 .0
13 .0
0 .9
8
24
8
8
8
8
1
1
1
1
1
1
1
0 .1
0.2156
0 .05
0 .11
nivel deseable
Espana
Estados Unidos
s
a
Japan
24
1
1
1
3
3
24
1
24
24
1
3
1
1
24
1
BIOXIDO DE NITRO8ENO
Argentina
Espana
Estados Unidos
Mexico
MONOXIDO
DE CARBONO
Argentina
Bulgaria
Espana
Estados Unidos
Japan
Mexico
Rusia
8
OIONO
Israel
Mexico
PARTICULAS SUSPENDIDAS
Argentina
Canada
0 .15
0 .06
24
1
1
30
1
2
3
Espana
Estados Unidos
Italia
Japon
Mexico
Rusia
0 .30
0 .26
0 .30
0.1
0 .275
0.15
24
24
24
24
24
24
1
1
1
1
1
1
TABLA
2 .1 .5 .h
REGLAMENTO PARA PREVENCION Y CONTROL DE LA CONTAMINACION DE AGUA . C29-MAR
-1973) . ARTICULO 13 . LOS RESPONSABLES DE LAS DESCARGAS DE AGUAS RESIDUALES
QUE NO SEAN ARROJADAS EN EL ALCANTARILLADO DE LAS POBLACIONES, DEBERAN DENTRO
DE UN PLAIO DE TRES ANOS CONTADOS A PARTIR DE LAFECHA DEL REGISTRO DE LA
DESCARGA AJUSTARLA A LA SIGUIENTE TABLA.
---------------------------------------------------------------------------MAXIMOS TOLERABLES
----------------------------------------------------------------------------
I .- SOLIDOS SEDINENTABLES
II .- GRASAS Y
ACEITES
III .- MATERIA FLOTANTE
1 .0 MI/L
70
Mgll
NINGUNA QUE PUEDA SER
RETENIDA POR MALLA DE
3 Ms DE CLARO LIBRE
CUADRADO
IV .- TEMPERATURA
V .- POTENCIAL HIDROGENO pH
o
35 C
4 .5 - 10 .0
TABLA 2 .1 .5 .1
PROTOCOLO RELATIVO A LA INTERVENCION EN ALTANAR POR SUSTANCIAS DISTINTAS
DE HIDROCARBUROS. NOV-1980.
LISTA DE SUSTANCIAS ESTABLECIDAS POR EL CONITE DE PROTECCION DEL MEDID
MARINO.
1. HIDROCARBUROS.
SOLUCIONES ASFALTICAS.
BASES PARA NEICLAS ASFALTICAS.
IIPERNEABILIIANTES BITUMINOSOS.
RESIDUOS OE PRIMERA DESTILACIO(.
HIDROCARBUROS.
ACEITE CLARIFICADO.
MEZCLAS OUE CONTENGAN CRUDOS DE PETROLEO.
BITUMEN PARA RIEGO DE AFIRMADOS.
ACEITES ARONATICOS (EXCLUIDOS LOS ACEITES VEGETALES).
ACEITES BASE.
ACEITES MINERALES.
ACEITES PENETRANTES.
ACEITES LIGEROS (SPINDLE).
ACEITES PARA TURBINAS.
DESTILADOS.
FRACCION DIRECTA DE COLUMNAS.
CORTE DE EXPANSION.
SAS OIL.
DE CRAQUED (CRACKING).
BASES PARA GASOLINAS.
BASES ALKILICAS.
BASES POLINERAS.
GASOLINA.
NATURAL.
DE AUTOMOVIL.
DE AVIACION.
DURECTA DE COLUMNA.
COMBUSTIBLES PARA REACTORES.
JP-1 (KEROSENO).
JP-3.
JP-4.
JP-5 (KEROSENO PESADO).
ATK (TURBO FUEL).
ALCOHOL MINERAL.
NAFTAS.
DISOLVENTE.
PETROLEO.
FRACCION INTERMEDIA.
2.
SUSTANCIAS NOCIVAS.
ACETATO DE FENTIN (SECO).
ACETONA.
ACIDO BUTIRICO.
ACIDO CACODILICO.
ACIDO CIANHIDRICO.
ACIDO CRONICO (TIROIIDO DE CROMO).
ACIDO FLUORHIDRICO (SOLUCION ACUOSA 401).
ACIDO FLUOSILICICO.
ACIDO FOSFORICO.
ACIDO NITRICO (901).
ACRILATO DE N-NITILO.
ACRILONITRILO.
ACROLEINA.
ALCOHOL METILICO.
ALDRINA.
AMIL ERCAPTAID.
AMONIACO (SOLUCIOI ACUOSA 281).
ANHIDRIDO ACETICO.
ANILINA.
ATRAIINA.
AIIDA DE BARIO.
AIINFO-METILO (BUTHION).
BENCENO.
BENCIDINA.
BERILIO EN POLVO.
BIFENILOS POLIHALOSENADOS.
BROMO.
BROMOACETATO DE ETILO.
BROMURO DE CIAIDGENO.
CARBARIL (SEVIN).
CIANHI DIINA DE LA ACETONA.
CIANURO DE BARIO.
CIANURO DE BRONOBENCILD.
CLORHIDRATO DE ANILINA.
CLORHIDRINA ETILENICA 12- CLORO ETANOL).
CLORHIDRINAS (CRUDAS).
CLORDANO.
CLOROACETONA.
COLORACETOFENONA.
CLORODINITROBENCENO.
CLOROFORMO.
CLOROPIERINAS.
CLORURO DE CIANOSEND.
CLORURO DE METILENO.
COCCULUS (COCA OE LEVANTE) (SOLIDO).
COMPUESTO DE ANTIMONIO.
COMPUESTO DE ARSENICO.
COMPUESTO DE CADMIO.
COMPUESTO DE CIANURO.
COMPUESTO DE COBRE.
COMPUESTOS DE MERCURIO.
COMPUESTOS DE PLOMO
CRESOLES.
D .D .T.
DICLOROANILINAS.
DICLOROBENCENOS.
DICLORURO DE ETILENO.
DIELDRINA.
DIISOCIANATO DE TOLUENO.
DIMETILANINA tDOLUCION ACUOSA 401) .
MEZCLA DUTANDIPROPANO.
MEZCLA DE METILACEIILEND Y PROPADIENO.
01100 DE ETILEND.
PROPANO.
PROPILENO.
4 . SUSTANCIAS RADIACTIVAS.
LAS SUSTANCIAS RADIACTIVAS
60
137
226
239
Co
Cs
Ra
Pu
235
U
2.1 .6 . CANTIDADES DE SUSTANCIAS PELIGROSAS
INDICADORAS DE RIESGO.
La
informacion
almacenada en este archivo se refiere a
cantidades de sustancias riesgosas almacenadas para las cuales
se requiere de una notificacion a las autoridades sanitarias
competentes en el Reino Unido . La tabla fue extraida de la
ref .4, y se presenta a continuacion.
Ver tabla 2 .1 .6 .
TABLA
2 .1 .6
PRODUCTO RIESSOSO
CANITIDAD NININA
PARA SER MONITOREADA
2 TONS .
20 TONS.
100 TONS.
MISSEND
CLORO
ACRILONITRILO
ACIDO CIANNIDRICO
DISILFURO DE CARBONO
DIOZIDO DE AZUFRE
BROMO
ANONIA
HIDROGENO
OXI00 DE ETILENO
OIIDO DE PROPILENO
PEROIIDOS ORSANICOS
CORP. DE NITROCELULOSA
NITRATO DE ANONIO
CLORATO DE SODIO
OXISENO LIQUIDO
PROPAND COMERCIAL
BUTANO COMERCIAL
FERTILIZANTES COMPUESTOS
ESPUMA PLASTICA
CANTIDAD MINIMA
PARA SER NOTIFICADA
10
20
20
20
20
40
TONS.
TONS.
TONS .
TONS .
TONS .
TONS .
100
2
5
5
TONS .
TONS.
TONS .
TONS .
5
50
500
500
1000
TONS .
TONS .
TONS .
TONS .
TONS .
30
30
500
500
TONS .
TONS .
TONS .
TONS .
200
200
200
200
400
1000
TONS.
TONS.
TONS.
TONS.
TONS.
TONS.
20
50
50
50
TONS.
TONS.
TONS.
TONS.
500
5000
5000
10000
300
TONS.
TONS.
TONS.
TONS.
TONS.
300 TONS.
5000 TONS.
5000 TONS .
2~1~7~ VALORES MAXIMOS PERMISIBLES DE CONCENTRACIONES
DE SUSTANCIAS RIESGOSAS Y EFECTOS EN LA SALUD.
En este archivo se incluyo informacion sobre sustancias que
son riesgosas para la salud,
maxima
indicandose
permisible, el tiempo de
asociados . La
ihformacion
la concentracion
exposicion
fue tomada de la
y
los efectos
ref .7, y
se
encuentra almacenada como se indica en la tabla que se
presenta a continuacion.
Ver tabla 2 .1 .7 .
TABLA
CLAVE
2 .1 .7
CONTAMINANTE
CANTIDAD CANTIDAD OBSERV- EFECTOS EN
EN PPM
EN NG
VACIONES LA SALID
-------------------------------------------------------------- ---------
1 ABRINA
Ingestion :
Sin establecer datos
Anorexia, Nauseas, Diarrea y Debilidad.
200.000 360 .000 En el aire
2 ACETALDEHIDO
Inhalation e Ingestion irritante, depresivo del sistema nervioso
central.
3 ACETATO DE AMILO
100.000 525 .000 En el aire
Inhalation :
Irritante, dano a los rinones e higado,depresivo
del sistema nervioso.
4 ACETATO DE BUTILO
200.000 950 .000 En el aire
Inhalation : Irritante, depresivo del sistema nervioso central.
5 ACETATO DE ETILENSLICOLIOINOETI 100.000 0 .000 Sugerido
Inhalation : irritante
6 ACETATO DE ETILO
400 .000 1400 .000 En el aire
Inhalation : irritante, hiperemia de rinones y bazo, opresivo
del sistema nervioso central.
7 ACETATO DE NETIL CICLOHEXILO
Inhalation : irritante
100 .000
0 .000
En el aire
8 ACETATO DE METILO
200 .000
0 .000 En el aire .
Inhalation e ingestion : Edema cerebral, depresivn sistema nervioso
central, neuritis optica y atrofia.
9 ACETATO DE PROPILO
200 .000 840 .000 En el aire.
Inhalation e ingestion ; irritante, depresivo del sistema nervioso
central.
10 ACETILENO
500 .000
Inhalacion :asfixia por anorexia.
0 .000 En aire(no confirm .)
il ACETOFENONA
20 .000
0 .000 (No confirmado).
Inhalacion :irritante y depresivo del sistema nervioso central.
12 ACETONA
1000 .000
0 .000
Inhalation e ingestion: irritation y depresion del sistema nervioso
central.
13 ACIDO ACETICO
10 .000 25 .000
:
irritation
local, peribronquis y enfisema
Inhalation e ingestion
hiperemia de estomago, congestion hepatica, nefrosis hemorragica.
14 ACIDO ACRILICO
0.000
0 .000 Nada establecido.
Inhalation : irritante
15 ACIDO BORICO 0.000 0 .000 Nada establecido.
Ingestion, percutaneo:irritante,depresivo del sistema nervioso
central, lesiones renales y hepaticas.
16 ACIDO CLORACETICO
0 .000
0 .000
Nada establecido
Inhalacion, ingestion,percutanea : irritante.
17 ACIDO CLORHIDRICO
5 .000
7 .000 Sugerido.
Inhalation e ingestion :rinitis,laringitis,bronquiteumonia, jaqueca,
palpitacion . Por ingestion :quemadura,nausea,vomitos,escalofrios,
nefritis, shock.
18 ACIDO FLUORHIDRICO
3 .000
0 .000
Inhalation e ingestion : irritante, corrosivo, edema pulmonar,
nefritis, alteraciones degenerativas de higado.
19 ACIDO FORNICO
10.000
0 .000 Sugerido.
Inhalation, ingestion, percutaneo : irritante, corrosivo, lesiones
renales.
20 ACIDO FOSFORICO
0.000
1 .000
Inhalacion e ingestion : irritante, cuando se calienta hasta la
descosposicion, produce humos de oxido fosforoso.
21 ACIDO LACTICO
0 .000
0 .000 Nada establecido.
0 .000
0 .000 Nada establecido.
0 .000
0 .000 Nada establecido.
Ingestion : irritation .
22 ACIDO NALEICO
Inhalacion : irritante .
23 ACIDOS NAFTENICOS
Irritacion de ojos y piel .
24 ACIDO NITRICO
10.000
25.000
Inhalacion e ingestions corrosivos, forma acido xantroteico edema
pulsonar,nefritis.
0 .000
0 .000 Nada establecido.
Inhalation e ingestion : corrosivo,le5ion de los tubos renales,
edema cerebral, se combina con los iones calcicos.
25 ACIDO OXALICO
0.000
0.000 Nada establecido.
Inhalation e ingestion : irritante y sensibilizante.
26 ACIDO PERCLORICO
27 ACIDO PICRICO
0.000
0 .100
Inhalacion,ingestion y percutaneo: irritante, depresivo del sistema
nervioso central, bronquitis, hepatitis, nefritis hemorragica, anemia
hesolitica, sensibilizador lalergeno).
28 ACIDO PRUSICO
10 .000
0 .000
Inhalacion, ingestion y percutaneo: anoxia citotoxico.
0 .000
0.000 Nada establecido.
29 ACIDO SALICILICO
Ingestion y percutaneo irritante, depresivo cardiovascular,
estimulacion del sistema nervioso central con depresion posterior.
30 ACIDO SULFURICO
0 .000
Inhalacion e ingestion : corrosivo.
1 .000
31 ACIDO TIOBLICOLICO
0 .000
0 .000 Nada establecido.
Inhalation: irritante alergeno, al descomponerse produce sulfuro
de hidrogeno.
32 ACRIDINA
0 .000
0 .000
Nada establecido.
0 .000
0 .000
Nada establecido.
Inhalation : accion irritante .
33 ACRILANIDA
Inhalacion : neurotoxico .
34 ACRILATON
0 .000
0.000 Nada establecido .
Inhalation e ingestion : irritante, el metil acrila es un alergeno.
35 ACRILONITRILO
20 .000 45 .000
Inhalation, ingestion percutaneo : inhibe la respiracion celular.
36 ACROLEINA
0 .100
0 .250
Inhalation, ingestion y percutaneo: irritation de las mucosas,
alergeno.
37 ALCANFOR
0.000
5 .000 Sugerido.
Inhalation, ingestion y percutaneo: irritante.
39 ALCOHOL ALILICO
2.000
5.000
Inhalation, ingestion y percutaneo : irritante.
39 ALCOHOL ANILICO
100.000 360 .000
Inhalation : depresivo del sistema nervioso central.
40 ALCOHOL BUTILICO
100 .000 300 .000
Inhalacion e ingestion: accion similar al alcohol etilico, depresivo
del sistema nervioso central, degeneracion grasa del higado.
41 ALCOHOL ETILICO
1000.000 1900 .000
Inhalation e ingestion : irritante, depresivo del sistema nervioso
central.
42 ALCOHOL ISOPROPILICO
400 .000 980 .000
Inhalacion e ingestion : irritante, se metaboliza dando acetona
en el cuerpo, depresivo del sistema nervioso central.
43 ALCOHOL NETILICO
200 .000 260 .000
Inhalacion, ingestion y percutaneo . Se metaboliza dando formaldehido
y acido formico . Edema cerebral, neuritis optica y atrofia, congestion
renal.
44 ALCOHOL PROPILICO
400.000
0 .000
Inhalacion e ingestion : irritante, se metaboliza dando acetona en el
cuerpo, depresivo del sistema nervioso central.
45 ALDREN
0 .000
0 .250
Inhalation, ingestion y percutaneo: irritante,excitacion del sistema
nervioso central.
46 ALEACION DE SODIO Y POTACIO Nada establecido
Inhalacion :Quemaduras termitas, son posibles los efectos de la
radiation procedente de sodio-potasio de los reactores.
47 ALBODON
0,000 100.000 Sugerido.
Los constituyentes proteioicos de las fibras pueden originar una
respuesta alergica . Contamination de endotoxina bacterial
48 ALOUITRAN
0 .000
Percutaneo : irritante y carcinogeno .
0 .000 Nada establecido.
2~1 .8.
La
informacion
INFORMACION GENERAL SOBRE PROYECTOS NACIONALES.
especifica de cada proyecto que se evalue con
el SIRIA sera almacenada dentro de este archivo . Se incluiran
aspectos tales como la identificacion del proyecto, proponente
del mismo, actividad productiva principal, produccion anual,
observaciones, materias primas, productos intermedios,
productos finales, combustibles, dispositivos de control de
contaminantes . La estructura de almacenamiento de la
informacion
se presenta en las tablas que se muestran a
continuacion .
/
DATOS BASICOS SOBRE PROYECTOS
------------------------------------------------------------- - -1
1
~
/
INFORMACION
iPROYECTO ICOMPANIA IACTIVIDAD
IPRODUCCION
I
1
1
1
1
ANUAL
1
GENERAL
1
P12-85378ICYDSA
P15-B59651FERTIMEX
PULPA-KRAFT
1
FOSFATO AMONIOI
4000 TON 1
7500 TON I
1
1
MATERIAS PRIMAS UTILIZADAS
---------------------------------------------------------------1
1
CANTIDAD
1
1 PROYECTO
1
1
P12-85378
P15-85965
SUSTANCIA
1
1
1
CLORO
HIDROGENO
DIARIA
1 UTILIZADA
1 TON
40 KG
CANTIDAD
ALMACENADA
1
50 TON
1 TON
1
1
1
1
PRODUCTOS INTERMEDIOS
1 PROYECTO
1
I
1
1
P12-85378
P15-85965
I
1
SUSTANCIA
1 CANTIDAD
1
DIARIA
I GENERADA
IACIDO CLORHIDRICOI 50 KG
IACIDO SULFURICO 1 40 KG
1
1
1
1
CANTIDAD
ALMACENADA
3 TON
3 TON
1
1
1
1
;PRODUCTOS FINALES
1
PROYECTO
1
1
SUSTANCIA
1
1
1
CANTIDAD
DIARIA
PRODUCIDA
1
1
1
CANTIDAD
ALMACENADA
1
P12-85378
P15-85965
(AMONIACO
;FOSFATO AMONIO
5 TON
! 10 TON
50 TON
1 400 TON
1
1
1
1
1
1
COMBUSTIBLES
---------------------------------------------------------------1
CANTIDAD
PROYECTO
!
1
1
1
SUSTANCIA
1
DIARIA
1
1 UTILIZADA 1
CANTIDAD
ALMACENADA
1
I
1
P12-85378
P15-85965
1 GASOLINA
1 DIESEL
5 TON
10 TON
1
50 TON
400 TON
1
1
DISPOSITIVOS DE CONTROL
---------------------------------------------------------------1
1
1
1
1
1 PROYECTO
1
1 P12-85378
P15-85965
1
1
1
DISPOSITIVO
UTILIZADO
1 CONTAMINANTE
1 REMOVIDO
1
PORCENTAJE
REMOVIDO
1
1
1
1 DEPURADOR
1 PARTICULAS 1 75 %
1 PURIFIC . HUMEDO
CO
1 98 'f.
1
2 .8 .9 . SISTEMAS DE CONTROL DE LA CONTAMINACION.
El
archivo consta de un conjunto de tablas que contienen
informacion
referente a diversos tipos de sistemas y
dispositivos de control de contaminantes del agua
(ref .3)
y
del aire (refs .1,2), sus rangos de aplicacion y eficiencias de
remocion
de contaminantes,
complementaria .
Las
asi
tablas
continuacion.
Ver tablas 2 .1 .9 .a hasta 2 .1 .9 .r .
como alguna otra informacion
incluidas
se
muestran
a
2 .1 .9 .a
TABLA
PORCENTAJE DE REMOCION BE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES POR
PROCESOS DE INTERCAMBIO IONICO.
------------------------------------------------------------------------CONTAMINANTE
------
----------------------------
FOSFORO
REMOCION
------------------------ ----90 Z
NITROSENO
90 Z
NITROSENO AMONIACAL
99 X
CADMIO
99.9 Z
CROMO
96 Z
SELENIO
99 .73
TABLA
2 .1 .9 .6
PORCENTAJE DE RENOCION DE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES
A TRAVES DE FILTROS ROCIADORES.
-------------------------------------------------------------------------CONTAMINANTE
REMOCION
-------------------------------------------------------------------------DRO
SOLIDOS SUSPENDIDOS
FOSFORO
CADMIO
CROMO
COBRE
FIERRO
PLOMO
MANGANESO
MOLIBDENO
NIQUEL
PLATA
ZINC
PATO;ENOS
. SALMONELLA
. MYCOBACTERIUM
. QUISTES DE AMOEBA
. NELMINTOS
. SCHISTOSOMA MANSONI
. VIRUS
65-95 1 1851 PROMEDIO)
65-95 1 (85% PROMEDIO)
75 2
51
19 1
47 2
46 X
36 %
16 X
15 1
20 %
48 2
56 X
88-99 .9 2
66-99 2
11-99 .9 2
62-76 1
99 .7 2
0-84%
TABLA
2 .1 .9 .c
PORCENTAJE DE RENOCION DE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES POR
ADSORCION CON CARBON ACTIVADO.
--------------------------------------------------------------------------CONTAMINANTE
RENOCION
---------------------------------------------------------------------------BBO
80 .6 1
42 .6 1
CARBON ORGANICO
NITROSENO TOTAL
NITRUSENO AMONIACAL
NITROGENO ORGANICO
18 X
21 .2 1
66.7 X
NITRATOS Y NITRITOS
1 .7 1
69 .2 1
2 .2 1
.2 1
85 1
95 X
NITRATOS
FOSFORO TOTAL
SOLIDOS SUSPENDIDOS
DRO
CADMIO
CR018) (+6)
SELENIO
MERCURIO
95 1
37 X
70 1
PLABUICIDAS
. ALDRIN (50 alll DE CARBON ACTIVADO)
. ENDRIN (50 agll DE CARBON ACTIVADO)
. DIELDRIN (10-12 .5 0g/1 DE CARBON ACTIVADO)
. DDT (12.5 .g/1 DE CARBON ACTIVADO)
. DID (50 ag/1 DE CARBON ACTIVADO)
. DDE 150 agli DE CARBON ACTIVADO)
. TOXAFENO (10-12 .5 ag/l DE CARBON ACTIVADO)
. AROCLOR 1242 (10-12 .5 ag/1 DE CARBON ACTIVADO)
. AROCLOR 1254 (50 mg/1 DE CARBON ACTIVADO)
PATOSENOS
18-40
. POLIOVIRUS TIPO I
91 X
99 .7 I
100 1
>99 X
99 .3 1
97.8 X
100 1
100 X
97.6 S
1
TABLA
2 . 1 . 9 . d
EFICIENCIA DE LOS PRINCIPALES TRATAMIENTOS EN FUNCION DE LA ORANULONETRIA
DE PARTICULAS .
TIPO DE TRATAMIENTO
EFICIENCIA EN % POR PARTICULAS DE
5 NICRONTS . 2 MICRONTS . 1 NICRONT.
------------------------------- ------- -----------------------------CICLON DE EFICIENCIA NEDIA .
27
14
8
CICLOS DE ALTA EFICIENCIA .
73
46
27
NUL TICICLCN TUBULAR .
89
77
40
TORRE DE LAVADO (PULVERIZACION) .
94
87
55
TRATAMIENTO CON LAMINA DE AGUA
93
75
40
99 .6
99
97
99 .9
99 .9
99 .0
99 .8
99 .0
98 .4
INDUCIDA .
VENTURI CON FUERTE PERDIDA DE
CARGA .
TRATAMIENTO DE LECHO FI 'OSO
(FILTRO DE BOLSAS) .
ELECTROFILTRO .
TABLA
2 .1 .9 .e
PORCENTAJE DE REMOCION DE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES
LAGUNAS FACULTATIVAS.
--------------------------------------------------------------- --------
POR MEDID DE
CONTAMINANTE
------------------------------------------------
REMOCIGU
---------------------
DBD
10-50 %
SOLIDUS SUSPENDIDOS
50-60 %
PATOBENOS
. ORGANISMOS COLIFORMES
95-99 %
. COLIFORMES FECALES
95-99 7.
. ESTREPTOCOCOS FECALES
95-99 %
. VIRUS
0-96 X
L'96
MOOO'O
S Z'Li
% S'96
L'86
S8S00'0
íLí00'3
600000'0
S4í00'0
Z2600'0
6t0'0
NOVO
ViVld
018313S
(9+) OV083
01N8V3
NOOHV3 138 830dS30
888d03 130 S31NV
nolmum
(116J) Kotmimm
------------------------------------------------ ---------------------------'N888V3 NO3 K015HOS0V 80d S06VS3d S31V130 30 N013843U 30 3PVIN33NOd
4 ' 6 ' í ' Z
V 18 V
TABLA
2 . 1 . 9 . g
PORCENTAJE DE RENOCION DE CONTAMINANTES PRESENTES EN AGUAS RESIDUALES EN
UNA PLANTA PILOTO DE INTERCANBID IDNICO.
- -------------------------------- ------ ------------------- --------------
CONTANINAtITE
RENOCION
- ------------------------------------------------------------------------- --CALCIO
MAGNESIO
•
SODIO
97 7i
97 %
89 %
POTASIO
75 %
NITROGENO ANONIACAL
41 7.
SULFATO
98 7:
CLORO
66 %
NITRATO
85 %
FOSFATO
96 %
SOLIDOS TOTALES DISUELTOS
82 %
ALCALINIDAD
81 7i
CONDUCTIVIDAD
81 %
T A 8 L A 2 . 1
. 9 .
h
IMPORTANCIA DE PERDIDA DE CARGA Y DE TANAND DE DIFERENTES DISPOSITIVOS
OE TRATAMIENTO DE PARTICULAS.
-----------------------------------------------------------------------TIPO DE TRATAMIENTO
PERDIDA DE CARGA
VELOCIDAD DE GAS
TANANO
'O/s)
-----------------------------------------------------------------------í .ilibars)
CICLON
NULTICICLON
FILTRO TEXTIL
FILTRO GRANULAR
5 - 15
5 - 20
BASTANTE PEDUENO
10 - 20
5 - 30
PEOUENO
5 - 30
10 - 60
TORRE DE LAVADO
2
TORRE EMPACADA
5 - 20
0 .05 a 0 .2
GRANDE
0 .2
MEDIO
a 1
0 .5 a 2
BASTANTE
GRANDE
2 a 5
BASTANTE
PEOUENO
10 - 30
5
a G
BASTANTE
PEOUENO
15 - 50
10
a 50
BASTANTE PEOUEND
VENTURI
20 -200
10 a 150
PEOUENO
LAVADOR FL1N)-
10-20
20
PEOUENO
TORRE DE PULVERIIACION
LAVADOR DE CORTINA
LIQUIDA
a 50
LIOUIDO
ELECTROFILTRO
1-3
0 .2 a 4
BASTANTE
GRANDE
TABLA
2 .1 .9 .1
PORCENTAJE DE REMOCION DE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES POR
TRATAMIENTO PRIFARIO.
CONTAMINANTE
POPCENTAJE DE RE?IzCTOI+
ADICI?il DE CAL
DB14
42 %
DIM
39 X
30LIDO3 SUSPENDIDOS
64 7.
DRAMS Y ACEITES
61 g
60 2
95 2
NITRDGENO ANONIACAL
41 %
COBRE
36 h
100 X
ZINC
26 X
94 L
filIQL4:L
20 ti
CROMO
32 2
100 2
PATOGENOS
. SALNONELLA THIPI >50 2
. SALMONELLA SP .
0-15
2
. STREPTaCLCU-" FEti4LIS <50 1 99 .9 1
. IiYCOBACTERIUN 48-57 2
. ENTEROVIRUS 0
. POLIO VIRUS 0
. COXSACKIE VIRUS <50 %
. DUISTES DE ANDEBA POCA EEMOCIDN
. LOMBRICES PARASITICAS 50-98 2
. ASCARIS
100
2
TA8LA
2 .1 .9 .~
PROCENTAJE DE RENOCION DE RETALES PESADOS CONTENIDOS EN AGUAS RESIDUALES
A TRAVES DE TRATAMIENTO SECUNDARIO.
-------------------------------------------------------------------------- - -METAL
PROMEDIA DE REROCION
CLARIFICADOR
FILTROS ROCIADORES
PRIMARIO
Y CLARIFIC . SEC.
ANALISIS
POR
EMISION
LODOS ACTIVADOS
Y CLARIFICADOR
SECUNDARIO
DE RAYOS X
CADMIO
30 X
5X
56 h
MONO
36 X
19 2
36 X
CODE
40 X
47 Z
59 2
FIERRO
57 !
4il
7
48 7:
PLUMí1
pJ1N5AI#E50
MOLIBL`EN?
NIOUEL
54 2
36 X
48 t
27 g
16 X
22 7.
22 Z
15 1
23 X
25 8
20 Z
22 X
PLATA
46
%
48 7:
71 g
ZINC
50 Z
56 3
60 Y
ANALYSIS POR ABSORCION ATONICAIDUYRICA HÚMEDA
CR0M0
481
191
407:
COBRE
38 Z
39 %
70
FIERRO
50 2
43 2
4r X
62
36 %
2Z
43 2
30 2
39 %
PIOLIBDEND
ZINC
TABLA
2 .1 .9 .k
POSIBLES CANTIDADES DE SOLIDUS SUSPENDIDOS Y PRODUCTOS OUINICOS REMOVIDOS
EN UN TANQUE DE SEDIMENTACION PRIMARIA DE EXPERIMENTACION.
--------------------------------------------------------------------------TIPO DE LODO
(Kg/oillon de gal)
SIN ADICION DE CON ADICION DE PRODUCTOS DUIMICOS
PRODUCTOS DUICAL
ALUMINIO
FIERRO
MICOS
---------------------------------------------------------------SOLIDOS SUSPENDIDOS
472 .6
709 .1
945 .2
709 .1
164.3
709 .1
209.7
472 .6
1654 .4
873.5
918.9
10.13)
(0 .44)
(0 .23)
(0 .24)
PRODUCTOS OUIMICOS
PRODUCCION TOTAL DE
LODOS
PRODUCCION TOTAL DE
LOBOS (Kg/ .3)
TABLA
2 .1 .9 .1
COSTO DE TRATAMIENTO DE PARTICULAS DE CALDERAS DE CARBON (CENIIAS)
------------------------------------------------------------------------COSTO
TIPO DE
EFICIENCIA
COSTO DE COSTO DE MANTENIMIENTO
TRATAMIENTO SOBRE CENIIAS INVERSION ENERSIA
BASE 100: BASE 100:
1 PROMEDIO
CICLON
BASE 100:
CICLON
ANUAL DE
FUNCIONAMIENTO
CICLON
BASE 100:
CICLON
-------------------------------------------------------------------------CICLON ES65 I
100
100
100
100
TANDARD
CICLON ALTA
EFICIENCIA
84 1
180
140
100
160
lO1t . TICI1LG1i
94 1
210
130
110
157
LECHO FIL-
99 .7 1
450
120
1500
510
99 .9 1
550
160
1800
610
95 I
700
250
500
540
94.5 1
400
120
600
410
TORRE EMPACADA
97 .9 2
450
200
850
600
SI SPENSION
95 I
600
500
450
550
VENTURI NORNAL
99.7 1
410
600
500
500
LAVAD' ALTO
RENDIMIENTO
99.9 1
480
800
550
610
ELECTROFILTRO
99 1
900
60
600
440
TRAME
LECHO FILTRANTE (FIBRAS
CON LIMPIEZA A
CONTRA CORRIENTE)
FILTRO BRAMULAR
TORRE DE
LAVABO
FLUOLIOUDA
TABLA
2 .1 .9 ..
PORCENTAJE DE REMOCION DE CONTANINANTEES CONTENIDOS EN AGUAS RESIDUALES A
TRAVES DE UN PROCESO DE LODOS ACTIVADOS.
----------------------------------------------------------------------------
CONTAMINANTE
PORCENTAJE DE RENOCION
FENOLES
90 I
95 I
912
98 I
90 2
NITRGIGNO AIONIACAL
52 1
FOSFORO
67 2
CIANURO
57 1
CADMIO
PLOMO
56%
36 1
59 2
48 I
48 2
MANiANESO
22 1
MOLIBDENO
NIQUEL
23 2
22 I
PLATA
71 2
ZINC
60 i
DOD
DRO
SOLIDOS SUSPENDIDOS
GRASAS Y ACEITES
CROMO
COBRE
FIERRO
PATOGENDS
NICROBACTERIA
96-991
CERCA 87 1
QUISTES DE ALBA
POCA REMOCION
. SALMONELLA
.
.
. HELMINTOS
POCA RGMOCION
. ORGANISMOS COLIFORIIES
COXSACKIE VIRUS
90-992
84-942
90-992
99 2
90-992
66-882
0-991
0-992
0-501
ECHO VIRUS
POCA RENOCIAN
.
.
.
.
.
.
.
.
.
ESTREPTOCOCO FECALES
SNISELLA
PSEUDONONAS A:ROBINOSA
CLOSTRIDIUM PERFRINGES
NYCOBACTERIUN TUBERCULOSIS
ENTEROVIRUS
POLIOVIRUS
TABLA
2 .1 .9 .n
PROCENTAJE DE REMOCION DE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES
POR FILTRACION CONO PROCESO TERCIARIO.
-------------------------------------------------------- ---------CONTANINANTE
FILTRACION (eg/1)
INFLUENTE
REMOCION
EFLUENTE
=
DBO
60-70 1
5-14
14-28
1 .3-3 .5
25-37
21-29
2-3
4.5-7.5
0 .4-1 .0
20-35
18-29
3-12
0-14 1
68-77 1
CRONO(+6)
13-37
TRAZA A
0 .00075
0.0503
0 .0007
0 .049
2.6 1
CRD1O(+3)
COBRE
NIGUEL
SELENIO
2 .7
0 .79
0.08
0.0103
0 .63
0 .32
0 .1
0 .00932
CARBON ORSANICO TOTAL
FOSFATOS
NITROGENO TOTAL
NITROSENO AMONIACAL
SOLIDOS SUSPENDIDOS
CADMIO
PLATA
ZINC
PATOSENOS (UNIDADES
. POLIOVIRUS(PRUEBA
POLIOVIRUS(PRUEBA
. POLIOVIRUS(PRUEBA
0 .00164
0 .00145
0 .97
0 .23
FORMADORES DE PLACA/L)
1)
2,200
397
2)
15,912
750
3)
1,940
( 4 .6
. POLIOVIRUS(PRUEBA 4)
. POLIOVIRUS(PRUEBA 5)
505
47
12.5
2.8
68-73 .5 1
69-75 1
6-20 1
6 .61
771
59 .5 2
INCREMENTO
9.5 1
11 .6 1
76 .3 1
82 1
95.3 1
> 99.8 2
97 .5 1
94 .0 X
TABLA
2 .1 . 9 . o
PORCENTAJE DE REMOION DE CONTAMINANTES GASEOSOS, POR DIVERSOS PROCESOS.
--------------------------------------------------------------------------TECIIILOSIA
REDUCCION DE LA EMISION
------------------------------------------------------------------------PIEDRA CALIZA (FED).
90 1 EN LA REDUCCION DE
DIOXIDO DE AZUFRE.
FED POR PIEDRA CALIZA CON ACIDO
ADIPICO.
90 1 EN LA IR;DUCCION DE
DIOXIDO DE AIUFRE.
LAVADO EN SECO POR ASPERSION DE CAL.
70 I EN LA REDUCCION DE
DIOXIDO DE AZUFRE.
QUEMADORES MULTIETAPA CON INYECCION
50-60 i EN LA REDUCCION
DE DIOXIDO DE AZUFRE Y
50-60 1 EN LA REDUCCION
DESULFURIIACION DE GAS FLUIDO POR
DE PIEDRA CALIZA (LIMB) .
DE OXIDDS DE NITROGENO .
TABLA
2 . 1 . 9 . p
COMPUESTOS ORGANICOS POSIBLEMENTE CARCINOSENICOS NO REDUCIDOS
SIGNIFICANTENENTE POR PROCESOS DE LODOS ACTIVADOS.
-----------------------------------------------------------COMPUESTOS
------------------------------------------------------------------------2, 3 OXI00 DE BUTILENO
B-PROPIOLACTONA
TIOUREA
ETILCARBONATO
2-TIDURACIL
4 -ETOXIFENILUERA
BENIIDINA
4,4' -DIDHIDR0XI-A,B-DIETILETILBENO
2-NAFTIL AMINA
4,4' -BIS(DIIB:TILAMINO)BENI0FEN0
P-FENILAIOFENOL
P -FENILAIOANILIIBi
9 - 10 -DIMETIL ANTRACENO
1,2 -BENIANTRACE(NI
7 METIL- 1,2-BENZANTRACENO
1,2,5,6 -DIBENIANTRACENO
3,4 -BENZOPIRENO
1,2,4,5 DIBENIOPIREND
20-METIL COLANTRENO
2-NITRO FLUORENO
2 -FLUORENO AMINO '
N-2 FLUDRENIL ACETAMIDA
7,9 DIMETILBENI(C1 ACRIDINA
7,10 DI)B:TILBENZ(CI ACRIDINA
DIBENI(A,H) ACRIDINA
DIBENI(A,a) ACRIDINA
TABLA
2 .1 .9 .q
PORCENTAJE DE REMOCION DE METALES CONTENIDOS EN AMAS RESIDUALES POR LA
FILTRACION SESUIDA DE COAGULACION CON CAL.
------------------------------------------------------------------------METAL
CONCENTRACIONES tag/1)
RENOCION
ANTES DE
POSTERIOR AL
FILTRACION
TRATAMIENTO
-------------------------------------------------------------------------CADMIO
CROMO (+6)
CROMO t+31
COBRE
SELENIO
PLATA
ZINC
0 .00075
0 .0503
2.7
0 .79
0.0103
0.00164
0 .97
0 .00070
0.049
0.63
0.32
0 .00932
0 .00145
0.23
6 .6
2.6
77.0
59 .5
9.5
11 .6
76.3
1
1
X
1
%
1
.
7
TABLA
2 . 1 . 9 . r
PORCENTAJE DE REMOCION DE CONTAMINANTES CONTENIDOS EN AGUAS RESIDUALES POR
PROCESOS BUINICOS.
------ --------------------------------------------------------------CONTANINANTE
COAGULANTE
REMOCION
(DOSIS mg/1)
--------------------------------------------------------------------------DIO
90 I
CLORURO DE FIERRO (170)
SOLIDOS SUSPENDIDOS
FOSFORO
ANTIMONIO
ARSENICO
CADMIO
COMO) (+6)
CROMO (+3)
COBRE
ORO
FIERRO
PLOMO
MANGANESO
MERCURIO
MOLIBDENO
NIOUEL
SELENIO
PLATA
TELURIO
TITANIO
ZINC
PATOSENOS
. VIRUS
. VIRUS
. VIRUS
. POLIOVIRUS
. POLIOVIRUS
CLORURO DE FIERRO (170)
CAL
CAL
CAL
CAL
CAL
CAL
CAL
CAN.
CAL
CAL
CAL
CAL
CAL
CAR.
95 I
95-98 1
90 1
(10 2
94 .5 1
11 1
>99 .9 2
)99 2
>90 I
40- >99 2
97 1
96 2
(10 1
18 1
>99 .9 1
CAL
CAL
CAL
CAL
CAL
16.2 1
97 1
>90 2
>90X
>90 1
ALUMBRE (75)
CLORURO FERRICO (50)
ALUMBRE (18) Y
POLIELECTROLITO B(1)
CAL (200)
CAL (500)
99 .9 2
99 .4 I
99 .2 2
92 .3 I
99 .86 1
REFERENCIAS.
(1).
Dumon
R .,Joffre
R .,
"Depoussiereurs industriels",
Techniques et Procedes Industriels, Masson, Paris, 1984.
(2).
Interagency Task Force on Acid Precipitation, "National
Acid Precipitacion Programs", DOA-NOAA-EPA, Washington D .C .,
Anual Report 1983.
(3).
SARH, "Efectos del reuso del agua para la agricultura,
recarga de acuiferos, industria, ganaderia, flora y fauna",
CIECA, 1980.
(4).
Sarmiento B .M .R ., "Pollution due to accidents from the
chemical industry", Fuel and Combustion Department, University
of Leeds, 1979.
(5).
SEDUE, "Breviario Juridico Ecologico", Subsecretaria de
Ecologia, 1983.
(6).
SEDUE, "Evaluacion rapida de fuentes de contaminacion del
aire, agua
y
suelo", Subsecretaria de Ecologia-Centro
Panamericano de Ecologia Humana y Salud, Traduccion de la
publicacion WHO Offset Publication No .62 ., Septiembre 1984.
(7) .
S .S .A .,
"Inventario
de
contaminantes
quimicos
industriales", Subsecretaria de Mejoramiento del Ambiente,
Septiembre 1973 .
2 .2. BANCO DE TEXTOS.
El Banco de Textos es constituido por una serie de citas
referentes
a
informacion
suplementario
para efectuar
ambientales . Dicha
concernientes
ecologicas,
de
a
impactos
informacion se refiere a topicos concretos
actividades industriales,
caracteristicas
Y
de industrias, medidas de
operacion
de impactos, caracteristicas socioeconomicas,
mitigacion
Las fuentes de
alimentacion
variadas : citas
periodisticas
podra
evaluaciones de
y
apoyo
datos de produccion, impactos ambientales en fases
construccion
estudios
relevante que sirve de
proyectos,
etc.
del Banco de Textos son muy
y bibliograficas, extractos de
articulos cientificos, etc . Este banco
ser alimentado con material de la SEDUE de estudios de
impacto ambiental ya realizados . Las citas que conforman el
banco se desglosan a continuacion .
ESTUDIO PARA LA EVALUACION DE IMPACTO AMBIENTAL DE LA
CONSTRUCCION Y OPERACION DE LOS APROVECHAMIENTOS HIDROELECTRICO
(Ref .3)
La
precipitación media anual en México es de 1 .53 millones
de millones de metros cubicos y se distribuyen en
forma
muy
variable (en el norte del pals se tienen regiones con
precipitación inferior a 500 mm . y en el sur mayores a 2000 mm).
Cerca de las tres cuartas partes del volumen de precipitación se
evapora, se
evapotranspira
y en mucho menor grado se infiltra
hacia los acuíferos ; el resto constituye la disponibilidad
potencial de agua superficial, estimada en 410,000 millones de
millones de metros cubicos.
El pals cuenta con 91 plantas hidroeléctricas en operación.
Los estados de Michoac&n y México son los que tienen mayor netmero
de hidroeléctricas, 16 y 14 respectivamente ; sin embargo el
estado de Chiapas cpn solamente 9 plantas, es el que tiene mayor
potencia instalada y generación media anual, debido a que cuenta
con tres de las plantas hidroeléctricas mas grandes del pals:
Malpaso, la Angostura y Chicoasén . La capacidad instalada de las
91 plantas es de 6929 MW y representan una generación media anual
de 22,580 millones de KWH . El volumen anual de agua que pasa por
estas plantas es de 99,360 millones de metros cubicas.
El Edo . de México tiene la carga de diseMo más grande del
pals ya que cuenta con sistemas hidroeléctricos como el de Miguel
AlemAn . También existen grandes cargas de diseho en el Edo . de
Puebla donde se localiza el sistema Necaxa .
En
los estados de Chiapas, Michoac&n,
Guerrero se
pals .
Puebla y
México,
generan el 847. del total de energía eléctrica
del
El potencial hidroeléctrico del pals es de 83,176 millones
de KWH ; de este potencial, 27% pertenece a plantas en operación y
73% a plantas en estudio . Mientras que en el Edo .
en
tiene
operación
el 100% del potencial
de México se
y en
identificado
Michoac&n el 81%, en los Edos . de Chiapas y Oaxaca el porcentaje
es solamente del 29% y 6% repectivamente.
Los riesgos asociados con la construcción y operación de las
accidentes
plantas hidroeléctricas se refieren principalmente a
en la
derrames
de bancos de material,
explotación
del
asi como fugas
agua almacenada que dependiendo
de
y
su magnitud
pueden poner en peligro a las poblaciones situadas aguas abajo.
Un aspecto particular a considerar es la sismicidad de la zona.
Las
principales
construcción
actividades
realizadas para
la
fase
de
de una planta hidroeléctrica que provocan impactos
al ambiente son : reacomodo de la población, limpieza del terreno,
construcción de la cortina, caminos de acceso, cartes y rellenos,
bancos de material y obras de desvio.
Los
efectos adversos mas significativos se
presentan
con la
limpieza del terreno, siendo los mayores impactos al suelo,
flora
y fauna, reacomodo de la población y por migración de personal a
la fuente de empleo . El impacto positivo es en la socioeconomla y
se
da sobre
la
economía regional,
ya que los ingresos
se
distribuyen en compras locales . En lo que respecta a los impactos
producidos sobre las regiones del pals, se tiene que las mas
afectadas seran el tropico humedo y seco, por ser zonas con una
biota rica en composición, estructura y diversidad.
En la fase de operación de una hidroeléctrica, las
principales actividades que causan impacto son : almacenamiento de
agua, generación de energia eléctrica, fallas de operación, fugas
y derrames de agua, cultivos de peces, zona de recreo,
abastecimiento de agua para agricultura, abastecimiento de agua
para las poblaciones . Los efectos negativos se dan principalmente
por el almacenamiento de agua, fallas de operación y fugas y
derrames de agua, impactAndose la calidad del agua, el microclima
y habitats terrestres . Las actividades restantes producen efectos
positivos sobre el valor estético, la pesca, la caza, la
navegación y el bano y la disponibilidad de agua para riego y
poblaciones . En esta fase la región m&s beneficiada es la zona
&rida, ya que ademés de adolecer de agua, requiere de energia
eléctrica para su desarrollo.
Las medidas de mitigación de impactos ambientales
ocasionados por la
construcción y operación de una planta
hidroeléctrica son:
- Construir unidades
habitacionales para el personal
que laborará en la obra.
- El reacomodo de la población se har& bas&ndose en una
investigación socioeconomica para evitar problema a
los habitantes de la región.
- El desmonte debe realizarse antes de inundar el
embalse y asi evitar condiciones anaerobias en el mismo y
evitar la generación de olores en los alrededores . Se
debe evitar la tala de bosques, aguas arriba y a orillas
del embalse para disminuir la erosión y el aporte de
sedimentos.
- Prohibir el verter desechos municipales o
industriales sin tratar, aguas arriba o en el embalse
para evitar la contaminación del agua y sus efectos
sobre la biota acuAtica.
- Realizar desazolve del almacenamiento periodicamente
para evitar la proliferación de
maleza
acuática asi
como taponamientos de tuberías.
- Tener
una estricta supervisión durante la operación
para que en el momenta en que detecte una fuga en
la presa se proceda a una reparación inmediata . Esto
se aplica igualmente para el caso en , que se
movimientos sismicos .
presenten
ESTUDIO PARA LA „ EVALUCION DE IMPACTO AMBIENTAL DE LA
INDUSTRIA DEL ACIDO SULFURICO
(Ref . 1)
Dado que la producción de H2SO4 se utiliza como un servicio
auxiliar en muchos procesos, las plantas productoras de H2SO4 se
localizan en diversas regiones del pals .
(S03
La producción de oleum
disuelto en H2SO4 (100X) ) es una actividad asociada . La
taza de crecimiento de
la producción de H2SO4 fue de 2 .8%
promedio anual para el periodo 1978-1982 . La taza de crecimiento
del consumo, mismo peri ódo, fue de 7 .7% promedio anual . Si se
continzta la misma tendencia, para 1985 se tendran que importar
casi 100,000 tons ., para satisfacer la demanda nacional.
El
consumo de H2SO4 por la industria en México es : 68 .4%
industria de los fertilizantes ; 16% industria química ; 16 .57.
refinación de petroleo, minería y metales, entre otros.
El
proceso de producción de H2SO4 empleado en México es el
de contacto que implica las operaciones de combustión, conversión
y absorción . El almacenamiento se realiza en tanques atmosféricos
y el oleum en tanques con venteos a unas torres .
El transporte es
por carros tanque o pipas de ferrocarril.
Los principales factores de riesgo involucrados en la
actividad del
H2804
son : almacenamiento de H2SO4, manejo y
almacenamiento de oleum y emisiones de S02 .
Debido a que se
pueden producir fugas en los tanques de almacenamiento de
oleum y producirse explosiones o fugas masivas de S02
H2804 u
en la
torre de absorción . El S02 a alta concentración es venenoso .
El ácido sulfórico (H2SO4), producto químico inorgánico, se
emplea en las industrias de pegamentos, explosivos,
farmacéuticos, alimentaria, del rayon, acero y fertilizantes . En
México la industria de fertilizantes emplea la mayor parte de la
producci6n,disponible.
El Acido Sulfórico se puede obtener de : azufre elemental,
pirita,
natural,
hidrodesulfuracibn
ácido
del petroleo, endulzamiento de gas
sulfórico gastado, desecho de fundidoras y
refinerías) . -En México el azufre elemental se extrae en los
Edos . de S .L .P ., B .C ., ORO ., Sureste de Veracruz y en los domos
salinos
del Itsmo
de Tehuantepec . Se extrae
con el proceso
Frash . La principal empresa extractora es Azufrera Panamericana.
Los yacimientos de Pirita se encuentran en las llanuras boreales
dentro de Dgo ., Coah .o N .L . y Chih ., en el NE de B .C ., en la
Meseta de Anahuac, en Hgo ., Jal, y la Sierra Madre del Sur, y en
porciones de Col . y Mich ., Oro . y .Oax . La hidrodesulfuración del
petroleo y el endulzamiento del gas natural se hace en PEMEX que
es el principal productor de Azufre en México.
La fabricación de H2SO4 produce emisiones de S02 que es un
gas irritante, perceptible a concentraciones mínimas y su
principal efecto en el hombre es sobre el tracto respiratorio . En
los vegetales causa "necrosis" (destrucción de tejidos) y
"clorosis" (las hojas se tornan blanquecinas o amarillentas) .Los
cultivos
más sensibles a este contaminante son las leguminosas,
trigo, cebada y alfalfa.
Los aerosoles de H2SO4 producen efectos sobre los vegetales,
manifestandose como manchas sobre las hojas ; sobre los materiales
met&licor causan corrosión ; y sobre los materiales de
construcción desgaste . En el hombre estos aerosoles causan
lesiones en el tracto respiratorio.
Los estandores de emisión,
para
contaminantes
promulgados por la EPA
(1971),
de plantas de H2SO4 son : SOC. - 4 .0
lb/ton,
niebla acida - 0 .15 lb/ton, reducción de visibilidad 10%.
Las medidas de mitigación para la fase de construcción de
una planta de H2SO4 son : a) la no-construcción de plantas en
zonas con abundante vegetación natural, b) la construcción de
unidades habitacionales para personal de obra.
Las medidas de mitigación para la fase de operación de una
planta de
H2SO4 consisten principalmente en la instalación de
equipos de control para disminuir emisiones a la atmósfera . Para
el control de
S02
se puede contemplar : a) aumento de la altura
de chimeneas (al doble se reduce la emisión en una cuarta parte)
b) adopción del proceso Bayer (adición de una torre de absorción
de SO3, antes de la ultima etapa de conversión) para aumentar la
conversión hasta un 99 .77. y disminuir la emisión de S02 a 2 Kg/M
ton
H2SO4 .
Las nieblas acidas se pueden recuperar con los
siguientes dispositivos : precipitadores electrostáticos, filtros
de fibra y vidrio, y filtros de tela metálica . Las emisiones de
S03 se reducen con un mantenimiento adecuado de los procesos.
Durante la fase de construcción de las plantas de H2SO4,
las
principales actividades que causan impacto son el desmonte,
sistemas de drenaje y excavación, las cuales afectan al suelo,
flora y fauna
terrestre y al
en
importancia
agua ; este impacto es de mayor
las regiones tropico humedo
aspecto socioeconómico se causa un fuerte impacto por la
de
mano
de
obra, dando lugar a la
sus
seco, por
vegetación y ecosistemas sensibles .
de
caracterlsti.cas
y
migración
En el
demanda
de personas,
formándose campamentos que se convierten en centros poblacionales
sin infraestructura adecuada ; este impacto es mas relevante en la
región árida por ser escasamente poblada . El impacto positivo en
esta fase es para la economía de la región.
Durante
la
fase de operación de las plantas
de H2804 se
afectan los siguientes factores ambientales : aire,
biota
terrestre, salud y seguridad del hombre, y en menor proporción la
calidad del agua .
Los impactos se deben a emisiones de S02 y S03
y nieblas de H2604 (en la torre de absorción),
de
agua de enfriamiento .
y por la descarga
Los factores de emisión promedio para
los contaminantes mencionados son : 30 Kg de S02, 1 .5-6 Kg de
niebla ácida y 0 .1 Kg de S03 por toneladas de H2SO4 .
Las regiones
ecológicas del pals más sensibles a esta actividad son el tropico
humedo y tropico seco .
el
El impacto positivo de esta fase se da en
aspecto socioeconomico, ya que una planta
convierte
en
fuente
de
empleo permanente,
economía regional y nacional .
de H2804 se
beneficiando
la
ESTUDIO 'PARA LA EVALUACION DE IMPACTO AMBIENTAL
DE LAS PINTURAS Y SOLVENTES
(Ref . 7>
En México son 7 las empresas que forman el sector de
pigmentas orgAnicos e inorg&nicos . Las empresas se localizan en
el D . F ., Monterrey, Guadalajara, Tlalnepantla y Altamira . La
producción se proyecta fundamentalmente a la industria de
pinturas y tintas . Los recubrimientos org&nicos incluyen las
pinturas, lacas y barnices . La taza de crecimiento de producción
de pigmentos orgAnicos para el peritodo 1975-1982 fue de 9 .7% y la
de consumo 10 .27. promedio anual . La taza de producción para
pigmentos inorgAnicos fue de 2 .9% y la de consumo de 5 .6%
promedio anual.
Los pigmentos son parte constitutiva de los recubrimientos
orgAnicos y contribuyen directamente a la utilidad de estos en su
función protectora, decorativa y artística . En la fabricación de
los pigmentos inorgAnicos se utilizan procedimientos muy
variados, solo la trituración y pulverización son de uso general.
Desde el punto de vista del tonelaje, los pigmentos blancos
son los mas importantes, entre éstos se encuentran el bióxido de
titanio, el cual posee un excelente poder cubriente, éste sólo
es producido en México por la empresa PPO, la cual exporta un
gran volumen, en 1982 exporto 11031 toneladas.
El proceso de producción de óxido de titanio incluye:
reacción, separación, condensación, purificación, oxidación,
tratamiento humedo, secado y molido . Las descargas liquidas de
estas operaciones contienen : cloruro férrico, cloruro ferroso y
Las emisiones gaseosas son de CO, CO2 y vapor
Acido clorhídrico .
de agua.
La
de
industria
los pigmentos orgánicos se
de la
ocupa
conversión de químicos orgánicos usualmente bencenoides cíclicos,
en
y al final en
intermediarias mas complejos
Las
colorantes .
operaciones
de
pigmentos
y
son:
producción más comunes
cristalización, filtración, lavado, secado y molido .Entre los
contaminantes gaseosos generados
encuentran : óxido de
se
nitrógeno, azufre, sulfuro de hidrógeno, clururo de hidrógeno.
Entre los contaminantes líquidos producidos están : corrientes
diluidas
de
acidos
y bases
compuestos
con
contaminadas
orgánicos, además de metales o sales metálicas.
Los recubrimientos orgánicos incluyen las pinturas, lacas y
barnices
y se
de 4
componen
aglutinante orgánico,
el
ingredientes principales :
pigmento,
el disolvente y el
el
agente
modificante ; los pasos esenciales en su fabricación son : mezcla,
molienda, adelgazamiento y teftido, colado y clarificación.
Existe una gran variedad de recubrimientos orgánicos entre
los que
se
ecuentran :
recubrimientos basados
oleoresinosos,
de resinas fentolicass
caucho clorado
de
vinílicas
y
ésteres acrílicos,
y
desechos
de
lacas,
de
emiten
de
resinas
gases (
líquidos que contienen
8
monómero, polímeros, oligómeros, compuestos orgánicos
pesados .
barnices
de resinas aminicas,
otros . Durante su producción se
disolventes volatiles)
en
y metales
La
industria
de alto
considerada
de
volumenes
de pigmentas y
recubrimientos orgAnicos
riesgo, principalmente por los grandes
disolventes que se manejan y almacenan ya que
altamente flamables .
es
Los
principales sitios de riesgo
en
son
una
planta de este tipo son : a> carga y descarga de camiones o carros
tanque (derrames accidentales) ; b) fugas o derrames en tanques de
almacenamiento ;
d)
calderas ;
tuberías
o
c)
derrames
en
v&lvulas descargando en areas no
de
tanques
de
los domos superiores
protegidas ;
a
almacenamiento expuestos
entre otros por trafico vehicular .
e)
impactos,
riesgo
de
Otra fuente
las
importante es el vertido de aguas residuales, ya que los residuos
de
disolventes pueden alcanzar concentraciones que
temperatura determinada pueden volatilizarse
y
a
una
producir
explosiones de graves consecuencias.
Para
disminuir riesgos por uso de suelo en la ubicación de
una industria
de
pigmentos
y
recubrimientos orgAnicos,
recomienda que los asentamientos humanos se sitúen fuera
radio de 5 Km de la industria,
de
se
un
y que otras industrias se sitúen
por lo menos a una distancia superior a 1 .5 Km.
La
fase
de construcción de una industria
de
pigmentos
y
recubrimientos orgAnicos causa impactos sabre la biota terrestre
por las actividades
de preparación del
y el
sitio,
impacto
socioeconomico producido por la migración para satisfacer la mano
de obra demandada.
En .
la
fase de operación de una industria
recubrimientos org&nicos
de
pigmentos
se producen impactos sobre la
y
calidad
del aire, del agua y del suelo, siendo los 2 primeros los mas
importantes.
El
impacto
sabre la calidad del aire de una industria de
pigmentos y recubrimientos org&nicos es debido a polvos y
particulas
emitidas durante las
operaciones
de
molido
y
trituración de pigmentos, y las emisiones de gases, vapores y
olores provenientes de diferentes fuentes durante los procesos y
almacenamientos de disolventes, ( en la manufactura de pigmentos
orgAnicos y recubrimientos).
El impacto sobre la calidad del agua de una industria de
pigmentos y recubrimientos orgAnicos es debido principalmente a
las aguas residuales provenientes del lavado de peroles de
reacción, lavado de pisos y en menor volumen a aguas de los
procesos en si . Adem&ss aguas de purgas de calderas y torre de
enfriamiento . Estos desechos contienen basicamente reactivos
orgAnicos, monómeros, polímeros, sales, grasas y metales pesados
como Pb, Fe, Al y Zn, adem&s de tener pH altamente bAsica . Las
aguas residuales de pigmentas inorg&nicos son caracterizadas por
contener metales pesados.
Durante la fase de construcción de una planta de pigmentas y
'recubrimientos orghnicos, las regiones ecológicas m&s afectadas
son la zona del tropico humedo y tropico seco, por tener
abundante vegetación, y la zona acida por ser escasamente poblada
(migración de mano de obra) . Durante la fase de operación, las
mas afectadas son el tropico humedo, el tropico seco y la zona
templada, por las emisiones liquidas y gaseosas que se emiten
durante los
procesos,
que afectar&n la
biota acuAtica,
la
terrestre y al hombre.
Para mitigar los impactos producidos por una fabrica de
pigmentos y recubrimientos org&nicos se recomienda:
- Su no construcción en zonas con abundante vegetación natural.
= Crear
unidades
habitacionales para personal
de
obra
de
construcción.
- Implantar sistema efectivo contra incendio y equipos de
protección adecuados para el personal.
- Realizar tratamientos a las aguas residuales.
- Segregar
efluentes,
siendo una corriente la proveniente de
purga de
calderas y torres de enfriamiento ( puede ser
vertida a
sistemas de tratramiento de aguas municipales,
previa coagulación quimica
para separar componentes de
cobre) . La segunda corriente seria
limpieza de peroles,
tratamiento
la de los procesos, de la
pisos y bodega (se
incluyendo :
sedimentador y
sugiere un
desgrasados,
neutralización tratamiento secundario a base de lodos
activados, y
coagulación,
tratamiento fisicoquimico, consistente de
precipitación y decantación).
Para mitigar los
impactos producidos por una
fabrica
de
pigmentos y recubrimientos org&nicos se recomienda:
- Disminuir pérdidas por evaporación de los tanques de
almacenamiento, usando tanques de techo flotante y sistemas de
recompresión en tanques de techo fijo.
- Reducir las emisiones durante la carga y descarga de carros
tanque utilizando la técnica de llenado sumergido.
- Dependiendo
de la naturaleza de los procesos y de los químicos
orgAnicos, los vapores liberados a través de las v&lvulas
de
alivio, pueden ser venteados a la atmósfera para su dispersión
o quemados
y enviados a una chimenea.
- Para gases y vapores las técnicas utilizadas para su reducción
son :
dispersión, chimeneas, combustión directa, combustión
catalitica, absorción, compresión y refrigeración.
- Los
olores
son
gases y vapores .
eliminados por las mismas técnicas que para
ESTUDIO PARA LA EVALUACION DE I .A.
DE LA INDUSTRIA DE LOS FERTILIZANTES
(Ref . 4)
La
industria
de
los fertilizantes en
Mexico esta
representada por la empresa Fertilizantes Mexicanos, S . A.
(FERTIMEX), la cual cuenta actualmente con 13 unidades
productoras, destacando la de Pajaritos Ver ., L&zaro CArdenas,
Mich ., y Queretaro, Oro . Existen otras empresas que producen
fertilizantes en menor cuantía, principalmente sulfato de amonio.
FERTIMEX divide el mercado de consumo en 8 zonas del pals;
encontrindose las mas consumidoras en la región acida.
Los principales fertilizantes que se consumen en el pals son
los nitrogenados y fosfatados, entre los que se tienen : urea,
sulfato y nitrato de amonio, formulas complejas con nitrógeno y
con fosfato, y superfosfato simple y triple.
El crecimiento en la producción de fertilizantes para el
peri6do de 1975 a 1982 fue de 8 .29% promedio anual y el
crecimiento del consumo de 12 .97% promedio anual.
Las principales materias primas para la producción de
fertilizantes son : roca fosfórica y Acido fosfórico, amoniaco y
Acido nitrico y ácido sulfdrico.
Los yacimientos de roca fosfórica en el pals, se encuentran
en Zimapan, Hgo ., Saltillo, Coah ., San Juan de la Costa y Santo
Domingo, en B .C .S. La ' obtenci6n de roca fosfórica involucra las
siguientes operaciones : minadoo beneficio, molido, triturado,
cribado
y calcinación . Entre los principales contaminantes
generados por dichas operaciones se tienen polvos y particular,
asi coma fluor gaseoso y aguas de desecho.
La obtención de H3PO4,
ácido fosfórico, por via humeda se
efecteta por digestión de la roca fosfórica con ácido sulfbrico;
de dicha operación se obtiene como desecho una suspensión que
contiene principalmente : yeso, ácido fosfórica, fluor, silice y
metales pesados como Cd, Hg, Cr y Zn.
La producción de ácido nitrito consiste en la oxidación del
amoniaco con aire para formar óxido de nitrógeno, el cual es
oxidado a dióxido de nitrógeno . Se genera en el proceso gas
contaminane de NH3.
En el proceso del superfosfato simple, se convierte la roca
fosfórica comercializable en superfosfato simple, por reacción
con ácido sulfbrico, el cual es vendido directamente o mezclado
para elaborar fórmulas complejas . Las emisiones contaminantes
generadas son particulas de roca fosfórica y aguas de desecho
conteniendo HF y H2SiF6.
El superfosfato triple se produce haciendo reaccionar roca
fosfórica con
ácido fosfórico,
el cual
puede venderse
directamente o mezclarse con otros para elaborar
fórmulas
complejas . Las emisiones producidas son aguas de lavado y gases
de HF3 y SiF4.
Para la producción de urea se combina el amoniaco con
dióxido de carbono a alta presión y temperatura para formar
carbonato de amonio el cual es simultáneamente deshidratado para
obtener una solución de urea, de donde Esta se extrae y se
convierte en un sólido fundido . Los desechos principales son
gases de amoniaco.
El sulfato de amonio se produce reaccionando amoniaco con
Acido sulfúrico . El producto puede venderse o mezclarse para
fabricar fórmulas complejas . El anico desecho es vapor de agua.
El nitrato de amonio se produce de la reacción de amoniaco
anhidro con Acido nítrico ; puede ser vendido o usado para
elaborar fórmulas complejas . Los contaminantes producidos son
polvos y amoniaco.
La fabricación de fórmulas complejas incluyen las siguientes
operaciones : disolución, amonización, granulación, secado,
disolución de lodos y mezclado . Las emisiones principales son de
amoniaco.
Los riesgos a la industria de fertilizantes son por manejo y
almacenamiento de combustibles (gas, diesel, combustoleo) y por
manejo y almacenamiento de materias peligrosas : H2804 y HNO3
(corrosivos), NH3 (toxico), NH4NO3 (explosivo).
En la fase de construcción de una planta de fertilizantes,
los impactos mAs sobresalientes son sobre la biota terrestre, por
la preparación del sitio, y con mas magnitud en regiones con
abundante vegetación como son el tropico humedo y seco . Asi mismo
el impacto socioeconomico es importante en la zona Arida debido a
la migración y creación de fuentes de empleo ; este aspecto tiene
el impacto positivo de generar, emplear y distribuir los ingresos
en compras locales beneficiando la economía regional.
\
En la fase de operación de una planta de
fertilizante,
los
principales impactos producidos son sobre la biota terrestre y
acuAtica . Los primeros por los gases y partículas que son
emitidos durante los procesos o en el
almacenamiento de productos
terminados, siendo principalmente fluor, NH3 y NOx, lo que
tambi6n afecta al hombre en su salud ; dicho efecto es de mayor
importancia en las regiones tropico humedo, tropico seco y zona
templada . La biota acuatica se ve afectada por el desecho líquido
producido en la fabricación de acido fosfórico (fosfoyeso).
El impacto negativo socioeconomico de la fase de operación
de una planta de fertilizantes (dadlo al hombre y pérdidas
materiales) tiene su mayor efecto en las zonas más densamente
pobladas, que en general corresponden a las de mayor desarrollo
industrial, dicha zona corresponde a la región templada . El
impacto positivo es en la socioeconomia por constituir fuentes de
empleo permanente, además del beneficio para la economía nacional
que representa el uso agricola de los fertilizantes.
Los efectos sobre el hombre y la biota terrestre producidos
por las emisiones contaminantes generadas por una planta de
fertilizantes son:
- Los óxidos de nitrógeno (NOx) afectan principalmente los
bronquios y pulmones del hombre y en altas concentraciones
producen la muerte . En los vegetales afectan su estructura,
causando rompimiento de los tejidos y disminución de la
fotosintesis . Además decoloran las fibras textiles . Los NOx se
pueden transformar en HNO3 liquido que es corrosivo para los
metales.
- El
HNO3 en forma gaseosa es tóxico y afecta las vi as
respiratorias superiores.
- El HF es un gas venenosa a altas concentraciones ; a bajas
concentraciones y en exposiciones prolongadas, causa fluorosis
en el tejido oseo . En los vegetales afecta su estructura y
composición, por el quemado de las orillas de las hojas ; las
coníferas son muy sensibles a este contaminante.
Las medidas de mitigación de impactos ambientales para una
planta de fertilizantes son:
- Crear unidades habitacionales, con servicios, para el personal
de obra durante la fase de construcción.
- Se recomienda no construir plantas en zonas con abundante
vegetación.
- Se recomienda instalar equipos para disminuir la emisión de
contaminantes gaseosos : ciclones primarios y secundarios, en el
lavador y secador, de los gases de reacción.
- Se recomienda una disolución del fosfoyeso hasta un 99 .06%
previa descarga en el mar con un difusor submarino a 30 metros
de profundidad.
- Se recomienda realizar estudios de recuperación de compuestos
de fluor del desecho de fosfoyeso, en forma de H2SiF6 ; esto
evita serios problemas de contaminación y es atractivo desde
el punto de vista económico.
- La distancia minima para permitir asentamientos humanos deber&
ser a 5 km a la redonda de la planta y para el emplazamiento
de otras
industrias a 1 .5 Km.
Estandares de emisión para contaminantes de la industria
de
fertilizantes :
CONTAMINANTE
Amoniaco
Fluor
HF
NOx
Particulas
_ ESTANDAR
PAIS
Al emani a
USA
Al emani a
Alemania
Espana
50 ppm (35 mg/m3)
0.4 Kg/ton P205
2 mg/M3
9 mg/M3
120 mg/M3 fert . org.
150 mg/M3 fert . nitr.
150 mg/M3 fert . fosf.
Estandares de Emisión para plantas de fertilizantes (EPA, 1975):
PROCESO
' Proceso humedo
Acido fosforico
CONTAMINANTE
Fluoruros totales
Acido super f osf orico
Fosfato diamonico
0 .06
11
Superfosfato
triple
Superfosfato
triple granular
11
0 .02
11
0 .0005
lb/hr/ton
• ESTUDIO PARA LA EVALUACION DEL IMPACTO
AMBIENTAL DE LA INDUSTRIA DEL AZUCAR
(Ref . 2)
El cultivo de calla de azucar esta ligado al clima, la
abundacia de agua y a suelos ricos en materia orgAnica, esto
determina la localización de la actividad azucarera . En México el
cultivo de cana de azucar se da principalmente al sur del Tropico
de Cancer, en un total de 15 estadoss siendo los m&s importantes
Veracruz (39/.), Jalisco, Sinaloa y Oaxaca, contribuyendo estos 3
&Itimos con un 26% de la producción.
Se producen 3 tipos 'de azucar : crudo o mascabado, estandar y
refinado . Las actividades asociadas con la industria del azucar
son : elaboración de alcohol, ron y piloncillo, fabricación de
papel . La taza de crecimiento de producción de azocar para los
peritodos 1968-1974 y 1978-1983 fue de 2 .6% anual, sin embargo la
taza de consumo pera el periodo 1968-1980 fue de 5 .09% .
Las actividades involucradas en el cultivo de calla de azocar
son : preparación de tierras, cultivo de plantillas y de socass
cosecha . En la preparación de tierras se rastrea, surca y
fertiliza, por lo general con maquinaria agricola . El cultivo de
plantillas y socas involucra el barbecho-cruza, rastredo,
surcado, siembra, riego, abonos, cultivos y limpias . Cuando la
plantas maduran se efectda la zafra para facilitar su cosecha, la
cual dura alrededor de 156 dias.
Las actividades involucradas en la obtención de az&car crudo
son : extracción de jugos, clarificación y cristalización . La
extracción se efectaa en tandems, obteniéndose bagazo de cara
(fibras celulosa) . El jugo de cana pasa a clarificación, donde se
obtiene la cachaza como subproducto (abono para campos de cana).
Después se realiza la cristalización, por evaporación del jugo;
pasando a subsecuentes procesos de ebullición y centrifugado,
obteniéndose el aztcar crudo ; de las cristalizaciones se obtienen
mieles incristalizables, para su posterior utilización en la
fabricación de alcohol.
El azócar refinado se obtiene a partir del azócar crudo, al
cual se le hacen las siguientes operaciones : lavado,
clarificación, filtración, purificación (con carbón animal o
vegetal), cristalización, centrifugado, secado y envasado en
sacos de 50 Kg, al igual que el azócar crudo.
El alcohol etílico se produce procesando las mieles de
azócar incristalizables (provenientes de la producción de azótcar
crudo) : preparación del cultivo, fermentación y destilación . De
la destilación se obtienen como subproductos, caldo de destilería
que contienen potasio y fosfato (puede servir como abono), aceite
de fusel ( mezcla de alcoholes superiores) que puede utilizarse
para producir ésteres y dióxido de carbono.
Los riesgos asociados a la indusria del azócar
son:
incendios por almacenamiento de bagazo de cana, debido a los
grandes volumenes almacenados, ademAs pueden provocarse
fermentaciones anaerobias, con riesgo de explosión en lugares
cerrados ; explosiones por manejo y almacenamiento de alcohol, ya
que
es
altamente volatil
y
flamable ;
almacenamiento de combustible (diesel) .
explosiones por
Las actividades que ocasionan impactos en la fase de
construcción de un ingenio azucarero son : limpias, desmontess
junta y quema, nivelación del terreno, zafra, riego y
fertilización . Dichas actividades causan efectos en el aspecto
socioeconómico, en la fauna y flora terrestre, en el suelo, agua
y aire . Se presentan efectos positivos en lo que se refiere a
fuentes de empleos y niveles de ingresos, asi como en la
productividad de cosechas.
La localización de los ingenios azucareros del pals
corresponden a 44% en el tropico humedo, 36% en la zona templada,
147. en el tropico seco y 6% en la zona árida.
Las actividades de operación de un ingenio azucarero,
producen efectos negativos en el agua y biota acuática, debido a
los desechos que generan . Existen efectos positivos en lo que se
refiere a nuevas fuentes de empleo, niveles de ingresos y calidad
de vida.
La región ecológica más sensible a un desarrollo de un
ingenio azucarero es la zona del tropico humedo, por su gran
diversidad de especies, asi como por sus ecosistemas frágiles . La
región menos afectada es la región árida por sus propias
características.
Las medidas de mitigación de impacto ambiental en la
industria azucarera son:
- Asesoramiento al agricultor sobre los tipos y manejo de abonos,
fertilizantes, herbicidas e insecticidas asi como uso adecuado
de maquinaria dependiendo del tipo de suelo .
Prohibición o disminución de las actividades de los aeropuertos
cercanos a ingenioss durante la época de zafra, por la pérdida
de
visibilidad.
- Recirculación del agua, principalmente de los evaporadores y
del
lavado de carta.
Utilización de subproductos en la actividad azucarera (bagazo
de carta, mieles incristalizables,cachaza) y en la producción de
alcohol (caldo de destilerIas aceite de fusel, gas carbonico),
para disminuir la contaminación y obtener mayores beneficios
económicos.
- Tratamiento de los efluentes surgiéndose dos tipos :
tratamientos
los
combinados (lagunas de estabilización de dos
pasos o lagunas aereadas mecAnicamente o lodos activados
convencionales) ; los tratamientos separados para el efluente
proveniente del lavado de carta (remoción mecAnicas decantación,
aereación o laguna de estabilización) y para el efluente de
condensados (lagunas de estabilización).
La descarga de contaminantes al agua de cuerdo con el tipo
de producción de azetcar son:
TIPO DE AZUCAR
Mascabado
Estandar
Refinado
DESCARGA (M3/Ton)
330 .06
196 .00
224 .79
La composición de las aguas residuales en la fabricación de
azocar es:
TIPO DE AZUCAR'
I
CRUDO
Kg/t gn PC gd_
Par_ámetCg
141 .27
49 .18
50 .50
SST
DBO
DQO
ESTANDAR
Kg/tgn PCód_
REFINADA
hg/t gn er
__
g
179 .73
139 .94
213.83
405 .07
245 .25
263 .00
Las características de un efluente típico de destilerías es:
FARAMETRO
DBO
DQO
N-organico
ST
STF
STV
SST
SDT
Fosfatos totales
CONCENTRACION (mg/1)
91520
22000
446
97222
27226
69996
33400
63822
1250
ESTUDIO PARA LA EVALUACION DE IMPACTO AMBIENTAL
DE LA INDUSTRIA DEL FLUOR Y SUS DERIVADOS
(Ref . 5)
La industria del fluor y sus derivados en México, est&
compuesta
por dos
ramas
principales :
producción
de
ácido
fluorhidrico (HF) y producción de fluorocarbonos (principalmente
diclorodifluorometano (C12 CF2) y triclorofluorometano (C13 CF).
Entre los principales productores de HF se pueden mencionar:
Química Fluor, S . A., en Matamoros, Tam ., Industrias Químicas de
México, S . A ., en S.L .P., Fluorex, S . A. de C . V ., en Cd . Juárez,
Chih ., y Quimos Basicos, S . A ., en Monterrey, N .L. Entre las
empresas productoras de fluorocarbonos se encuentran CYDSA en
Monterrey, N .L ., y Halocarburos, S .A ., en Tulpetlac, Edo . de
México.
La materia prima esencial para la producción de HF es la
fluorita (Ca F2) siendo México uno de los principales productores
de ésta . Los yacimientos se encuentran en los estados de S .L .P .,
Hgo ., y Coah . Dadas las características de las zonas de
yacimientos de fluorita, el lugar más
apropiado
para nuevas
explotaciones será en Muzquiz, Coah.
La producción de HF en el pals creció en un 13 .17
. para el
periodo 1975-1982 . El 66 .9% de la producción lo absorbe la
exportación,
20 .7% la industria química y un 9 .87. el tratamiento
de metales.
La
obtención de la fluorita implica
beneficio y aglomeración .
3 etapas : minado,
En el minado se generan polvos
fugitivos y se produce contaminación de agua de corrientes
subterráneas con polvos de roca, aceite, fluidos hidrAulicos y
gasolina y otros materiales usados para trabajos bajo tierra . El
beneficio incluye : lavado, separación, molido y cribado
flotación, filtración y secado, y trituración ; los efluentes
acuosos contienen sólidos suspendidos . La aglomeración consiste
en concentrar el material y convertirlo en pellets a prueba de
agua ; los desechos generados provienen del horno y consisten de
vapores de la solución ligante.
El proceso de producción de HF implica dos etapas:
generación y purificación . La generación se efectta en hornos
rotarorios donde la fluorita (grado Acido) es tratada con acido
sulftrico ; se requieren 2 .4 ton de fluorita . y 2.7 ton de H2SO4
(96-987 comercial) por tonelada de HF producido ; el principal
contaminante es sulfato de calcio generAndose alrededor de 3 .875
ton Ca SO4/ton producto . La purificación implica : absorción,
condensación y destilación ; el HF recuperado alcanza purezas del
99% ; se generan emisiones de S02 y CO2, los cuales se ventean al
aire en cantidades menores a 10 Kg/ton de HF.
La producción de refrigerantes y aerosoles actualmente
conforman el 75% de la producción de fluorocarbono . Las etapas de
producción son :
fluoración en fase
liquida,
destilación,
separación, neutralización y secado . La fluoración con HF
convierte los clorocarburos en fluorocarburos con ayuda de
catalizadores de Sb C15, Sb C13 y CC13 F ; se requieren 1 .037 ton
de CC14 y 0 .22 ton de HF por tonelada de producto . En la
destilación se separan subproductos volatiles y se retorna el
catalizador . En la separación, neutralización y secado se separan
las productos crudos y productos finales.
El principal riesgo que puede presentarse en la industria
del fluor y sus derivados, es el almacenamiento de HF y de
fluorocarbonos, por fugas de estos ; ya que son venenosos, ademAs,
se tiene que los fluorocarbonos destruyen la capa de ozono
estratosferico que sirve coma filtro de radiaciones ultravioleta
que causan cancer de la piel.
El Acido fluorhidrico es un gas irritante a los tejidos del
cuerpo y el tracto respiratorio es muy sensible a 61 . Una
exposición breve de los vaportes de HF, de alrededor de 1 parte
por mil puede ser fatal . Los sintomas que causan una fuga de este
son : irritación de mucosas, accesos continuos de tos, asfixia y
por raltimo la muerte . Si este es respirado en bajas
concentraciones durante peri6dos largos, causa fluorosis . En
Alemania se han fijado valores de máxima concentración en los
entornos industriales para los compuestos gaseosos de fluor de 2
mg/M3 y para compuestos en forma de polvo de 2 .5 mg/M3.
Debido a que la
actividad
de producción de HF y
fluorocarbonos se sitóa básicamente en la región árida del país,
es
ésta la que se ve afectada,
no asi las regiones ecológicas
restantes.
Dentro de la fase de construcción de una industria de HF y
fluorocarbonos, las principales actividades que causan efectos al
media son : desmonte, sistemas de drenaje y excavación, los cuales
afectan
al suelo,
al agua y a la biota asociados a
embargo en la región &rida no son significativos .
aire
estos ;
sin
La calidad del
se ve afectada por las actividades de colado, montajes
de
equipos y estructuras, limpieza de equipo, aplicación de pintura
y aislamiento y pruebas de arranque ;
término
de la obra .
estos efectos concluyen
En el aspecto socioeconómico
hay
al
impacto
negativo . por migración de mano de obra e impacto positivo por
generación de empleos y derrama económica en la forma loCal.
Los
impactos producidos por las actividades de
minado
de
fluorita son:
de la
Degradación
calidad del
aire en la
explotación y su
entorno.
Ocupación
de
terrenos,
impidiendo otros usos (camping).
- Pérdida de la cubierta vegetal
(si la hay).
del agua subterrAnea y superficial,
Contaminación
afectando a
la biota asociada.
- Reacciones mecAnicas, estéticas y din&micas provocadas por
la
excavación y explosiones.
Dentro
sus
de la fase de operación de la industria del fluor y
con lo que respecta a la producción
derivados,
afecta a el aire,
el agua,
de
HF,
se
el suelo y las vistas escenicas, por
fugas de &cido de la atmósfera o por derrames liquidos .
El CaSO4
producido perturba las vistas escenicas, por su disposición en
rellenos
o
contaminación
formando cerros .
El
agua
de
enfriamiento causa
en las corrientes superficiales por temperatura
compuestos químicos .
En la
producción
de
fluorocarbonos
y
se
contamina el agua (descarga de aguas rasiduales) y el aire (fugas
a la atmósfera) . El impacto positivo es en el aspecto
socioeconómico por generación de empleos y generación de divisas
para el pals.
Las medidas de mitigación de los impactos que ocasiona la
industria del fluor y sus derivados son:
- Construir unidades habitacionales para el personal de fase de
construcción.
- Las operaciones de minado deben efectuarse con un riego
adecuado de agua o espuma, o colocar captores de polvo donde se
genere una gran cantidad del mismo.
- Agilizar investigaciones y pruebas para la utilización del
SO4 generado en la producción de HF, por lo problematico de su
disposición.
- Si el CaSO4 se obtiene en forma anhidra, se recomienda
manejarlo via humeda para evitar emisiones de polvos.
Las medidas de mitigación de los impactos que ocasiona la
industria del fluor y sus derivados son:
- Con lo que respecta a los gases residuales que son venteados
al aire, después de la descarga de los tanques de
almacenamiento, se recomienda que sean enviados a una torre de
lavado con solución alcalina y silice, para minimizar emisiones
a la atmósfera y obtener fluorosilicatos del agua residual
generada (los fluorosilicatos son comercializables).
- Enviar las aguas residuales de la producción de fluorocarbonos
a fosas de neutralización antes de su vertido final.
- Se recomienda que los asentamientos humanos se sitáen por lo
menos a 5 Km a la redonda de la planta y que otras industrias
se sitóen por lo menos a 1 .5 Km de la misma.
i
ESTUDIO PARA LA EVALUACION DE IMPACTO AMBIENTAL
DE LA INDUSTRIA DEL PAPEL Y LA CELULOSA
(Ref . 6)
Las industrias de celulosa y papel puede ser integradas, que
producen celulosa y papel, y no-integradas, que producen sólo
celulosa o sólo papel.
En México, las materias primas basicas para fabricar
celulosa son las maderas de coníferas (maderas blandas) y en
menor proporción maderas de especies latifoliadas (maderas duras)
y plantas vegetales anuales (agricolas) como borra de algodón,
paja de trigo
y
bagazo de caria . Los bosques de coníferas
y
latifoliadas se encuentran en relieves elevados y se localizan en
las cumbres de las sierras Madre Occidental, Oriental, del Sur y
de Chiapas . Siendo las entidades que destacan por sus extensos
bosques de coníferas : Michoac&n, Guerrero, Oaxaca,
Chihuahua,
Durango, México y Jalisco.
Las principales actividades para la explotación forestal
son : marqueo, timbado, trozado, descortezado, arrime, carga y
transporte.
En cuanto a los recursos fibrosos no-maderables para
fabricación de celulosa, son utilizados en baja escala . Entre las
industrias que utilizan bagazo de carta están : Mexicana de Papel
Periódico, localizada en tres Valles,
Ver ., y
Kimberly Clark,
Edo . de México.
El sector industrial de la celulosa y del papel se encuentra
localizado principalemente en la región templada, sutuándose el
66%
en el D .F . y el Edo . de México . El crecimiento de la
producción de celulosa, para el periodo 1973 a 1982, fue de 4% y
para papel de 6% .
La producción de celulosa y papel requiere del manejo de
considerables volumenes de agua, estiméndose un indice de demanda
de 100-200 M3/ton de celulosa fabricada y de 30-40 M3/ton de
papel .
La celulosa obtenida mecénicamente es un producto extraido
de la madera o vegetal anual, el proceso consiste de una
disgregación mecénica de la materia prima para separar las fibras
entre si, se realiza moliendo la madera en grandes esmeriles, y
pasada con agua a través de tamices, posteriormente, y también
por tratamiento mecanico, se refina y seca para su transporte . El
efluente de la corteza tamizada contiene partículas finas de
corteza, madera y algunos sólidos disueltos.
La celulosa preparada químicamente se produce por los
procesos a la sosa, al sulfato (Kraft) y al sul f i to . Estos
procesos se diferencian del mecénico por, el uso de agentes
quimicos para la digestión de las astillas . En ellos se generan
efluentes liquidas que contienen altas cantidades de materia
org&nica, sólidos suspendidos, disueltos y sedimentales, y tienen
un olor característico debido a compuestos de azufre formados por
los quimicos uitilizados . Se tienen emisiones de compuestos de
azufre olorosos (H2S) y . dióxido de azufre (SO2).
La '
fabricación de papel implica : desintegración dé las
pastas ; refinación ;, mezcla con productos como caolin, talco, y
bióxido de titanio y adición de solución de sulfato de aluminio;
adición de colorantes . Después de la mezcla, la suspensión de
pasta previo paso por una serie de depuradores, concentradores y
reguladores de consistencia, entra en la mAqUina para papel ; al
final la parte humeda es del 32 .33% , la cual se pasa a la parte
seca donde sale con solo 8-6% de humedad . Finalmente pasa a la
sección de acabado . Las aguas residuales de la fabrica de papel
contienen fibrillas en suspensión, cargas minerales, sales
disueltas y accidentalmente colorantes.
Los principales factores de riesgo dentro de la industria de
la celulosa y papel son el almacenamiento de materia prima y de
productos terminados, ya que los materiales celulósicos son
altamanente flamables.
Durante la fase de construcción de una industria de celulosa
y papel la principal actividad que causa impacto es la de
desmonte, por la erosión que puede provocar, asi como el cambio
en el uso del suelo, y la pérdida de vegetales y animales, cuya
importancia dependera de la zona . Otro impacto será el debido a
la migración de mano de obra . El impacto positivo es la
generación de empleos y la derrama económica regional.
Durante la fase de operación de una industria de celulosa y
papel, considerando la explotación forestal, los principales
impactos se deben a las actividades de : labores agrícolas,
pastoreo, incendios provocados y tala clandestina ; que influirán
sobre la erosión, el estrato arboreo y arbustivo, calidad del
agua, y del suelo y sobre la belleza escenica . En cuanto a los
procesos de producción de celulosa y papel, los principales
efectos son : sobre la calidad del agua y del aire, y sobre el
hombre, en cuanto a salud, seguridad, asi como en el aspecto
socioeconómico y est6tico ; el impacto de mayor magnqud es sobre
la calidad del agua (por los grandes volumenes manejados y
vertidos) y el de mayor importancia sobre la calidad del aire
(las características de los contaminantes emitidos tienen efectos
sobre el hombre y los materiales).
Los impactos generados por la construcción de una industria
de celulosa y papel son mas severos en las regiones tropico
humedo y seco por tener vegetación . abundante debido a las
actividades de preparación del sitio ; y la región acida ya que
por ser escamente poblada la migración de mano de obra ser& mas
significativa.
En la fase de operación de una industria de celulosa y
papel, las regiones mas afectadas son las zona templada, tropico
humedo y tropico seco ; por las emisiones gaseosas y liquidas las
cuales causan un mayor impacto por encontrarse los
cuerpos de
agua y especies vegetales m&s sensibles.
Las medidas de mitigación de impactos para una industria de
celulosa y papel son:
- No construir plantas en regiones con abundante vegetación
natural.
- Construir unidades habitacionales para personal de obra.
- Explotación racional,
usando técnicas silvicolas adecuadas.
- Utilizar en mayor proporción materiales fibrosos no-maderables .
- Situar esta industria cerca de ingenios azucareros para
utilizar bagazo de caña.
- Emplear sistemas de recirculación de agua, asi coma de
recuperación de subproductos, en la fabricación de celulosa y
papel.
- Aplicar tratamientos a las aguas residuales (pretratamiento,
tratamiento primario y secundario a base de lagunas aereadas
mecanicamente).
- Controlar emisiones al aire : mejoras en la combustión;
recircular corrientes ; instalar precipitadores electrostaticos,
lavadores, desniebladores, etc.
- Se recomienda no permitir asentamientos humanos a una distancia
minina de 2 Km de la planta y de otra industria a 1 Km .
"S E D U E"
REGIONALIZACION ECOLOGICA DEL TERRITORIO
4a . VERSION
(Ref . 8)
ZONA AB l
Pe
Esta zona ocupa la mayor parte del
est& determinada por la latitud .
centro y norte del pals y
A este nivel se encuentran
los grandes desiertos del mundo coma el Sahara, el
los del centro de Asia,
el
tropico
Arabigo y
debidos a que aproximadamente entre
de Cancer y los 30 grados latitud norte existe
en que predominan los vientos
una franja
de
superficie
descendentes, determinados por la' Circulación General de la
lo
Atmósfera,
no
que provoca que
haya
nubosidad
y
precipitación ; ademas, la gran continentalidad o lejanía al
mar y la presencia de los grandes sistemas
actetan
montaflosos,
como barrera para los, vientos humedos,
aridez .
acent&an
que
la
Estas condiciones climAticas provocan bajos
volumenes de precipitación y vegetación de tipo xerofitico y
lo
matorrales, por
disponibilidad
de
que
la
limitante ambiental
es la
agua, que en algunos casos llega a
ser
extrema.
La precipitación media anual es inferior a 600 mm,
que las temperaturas que se presentan son
mientras
extremosas . Esta
zona esta dedicada principalmente a la ganaderia y a la
agricultura
fronterizo
de
riego
y a la
y temporal,
explotación
originales de la zona (cactáceas,
de
asi como
al
turismo
recursos floristicos
jojoba, candelilla, etc .) .
Es en este ultimo renglón en donde se est& llevando a cabo
una sobreexplotación de recursos que amenaza su permanencia
en los ecosistemas.
Comprende los estados de Baja California, Baja California
Sur, Coahuila, Zacatecas y Aguascalientes, la mayor parte de
Sonora, Sinaloa, Chihuahua, Durango, Nuevo León y Tamaulipas
e importantes Areas de Guanajuato, Querétaro, San Luis
Potosi e Hidalgo.
II . ZONA TEMPLADA
La zona templada se caracteriza por tener temperaturas
supVriores a 18 grados centigrados en el mes más caluroso y
descender en la época invernal, aunque conservando su
promedio superior a los 0 grados centigrados . Se registran
precipitaciones con promedios mayores de 600 mm . anuales,
generalmente en verano.
Esta zona esta determinada por los grandes sistemas
montaftosos, cuya altitud suaviza un teórico clima tropical
por la latitud . En ella se desarrolla vegetación de tipo
bosque (principalmente de pino, de encino y asociaciones de
ambos) y pastizales.
Tales condiciones clim&ticas ocasionan la mayor
concentración
de
población
del
paiss
cuyas principales
actividades económicas son la agricultura, la ganadería, la
explotación forestal,
la industria y el turismo .
Al
constituir la zona mas urbanizada, ha sufrido la mayor
degradación de sus ecosistemas, que se traduce en una
intensa deforestación y un acusado
empobrecimiento
Y
erosión de los suelos.
Las entidades incluidas son Tlaxcala y Distrito Federal, la
mayor parte de Puebla, Mexico, Hidalgo y Jalisco, asi como
partes de Oaxaca, Morelos, Querétaro, Zacatecas, Tamaulipas,
Nuevo León, Michoac&n, Guanajuato, Nayarit, Durango, Sinaloa
y Chihuahua.
III .
ZONA DEL TROP'ICO SECO
Esta zona se caracteriza b&sicamente por una temperatura
media anual superior a 18 grados centigrados y precipitación
pluvial entre 800 y 1200 mm . anuales, que se presenta en su
mayor parte en verano.
La estacionalidad de la precipitación y las altas
temperaturas provocan una alta evaporación durante la
temporada seca, que caracteriza ambientalmente a la zona.
Los tipos de vegetación que se presentan son muy diversos y
varian desde selvas medianas y bajas hasta sabanas, palmares
e incluso asociaciones de xerafitas, aunque estas ultimas no
son caracterlsticas de la zona . Las actividades económicas
b&sicas son la agricultura de temporal, la explotación
fotestal y el turismo.
La Canica entidad comprendida integramente es Guerrero,
mientras que importantes &reas de Oaxaca, Michoachns Colima,
Jalisco,
Nayarit,Sinaloa,
Sonora y Morelos también se
incluyen en esta zona.
/
Iv . ZONA DEL TROP' CO HUMEDO
La zona del tropico humedo se caracteriza por presentar una
temperatura media anual superior a los 18 grados centígrados
y precipitaciones mayores de 1200 mm . anuales . Su clima,
favorecido por la prolongada llanura costera, es francamente
tropical, lo que permite el desarrollo de exhuberante
vegetación del tipo de selvas altas, medianas y bajas que
coexisten con pastizales antropogénicos.
Aunque corresponde a la zona con recursos naturales más
abundantes, comprende también los ecosistemas más frágiles
donde la principal limitante ambiental es la cobertura
vegetal, por lo que el desarrollo de actividades económicas
fácilmente los degradan, de manera particular la ganadería,
la agricultura tropical, la extracción petrolera y la
explotación forestal.
Las entidades comprendidas son Quintana Roo, Yucatan,
Campeche, Chiapas, Tabasco y Veracruz, además de porciones
de Oaxaca, Tamaulipas y San Luis Potosi .
REFERENCIAS.
'. (1) .
de
SEDUE, "Estudio para la evaluacion de impacto ambiental
la
industria del acido sulfurico", Subsecretaria de
Ecologia, 1985.
(2).
SEDUE, "Estudio para la evaluacion de impacto ambiental
de la industria del azucar", Subsecretaria de Ecologia,
(3).
1985.
SEDUE, "Estudio para la evaluacion de impacto ambiental
de la construccion
y
operacion de los aprovechamientos
hidroelectricos", Subsecretaria de Ecologia, 1985.
(4).
de
SEDUE, "Estudio para la evaluacion de impacto ambiental
la industria de los fertilizantes", Subsecretaria de
Ecologia, 1985.
(5) . SEDUE, "Estudio para la evaluacion de impacto ambiental
de la industria del fluor y sus derivados", Subsecretaria de
Ecologia, 1985~
(6) . SEDUE, "Estudio para la evaluacion de impacto ambiental
de la industria del
papel y la celulosa", Subsecretaria de
Ecologia, 1985.
(7) . SEDUE, "Estudio para la evaluacion de impacto ambiental
de la
industria
de
pinturas
y solventes", Subsecretaria de
Ecologia, 1985.
(8) . Regionalizacion Ecologica del
Territorio", Subsecretaria
de Ecologia, 4a . version, Diciembre 1984 .
SEGUNDA PARTE
-----------a
DISENO DEL SISTEMA
Como se menciono anteriormente el SIRIA esta constituido por
cinco modulas :
!MODULO DE !
!MODULO DE !
!INFORMACION!
!PREDICCION!
________________
!MODULO
!
!CONVERSACIONAL!
!
O DE
!
!INTERFASE
!
----------------
!MODULO DE !
!APOYO
!
!DECISIONAL !
!MODULO DE !
!SISTEMA DE!
!EXPERTOS !
A continuacion se describe cada uno de los modulos .
3. MODULO DE INFORMACION .
^
Este modulo esta formado por la informacion de los Bancos de
Datos
y de Textos, los cuales fueron descritos en los parrafos
Cabe mencionar que el modulo esta estructurado de tal forma
que el usuario puede efectuar bajas, altas y cambios en los
archivos que lo integran,
asegurandose
de esta manera una
permanente actualizacion en la informacion que se maneja
^
4 . MODULO DE PREDICCION.
Este modulo esta constituido por dos tipos de herramientas
usadas en la prediccion:
- modelos de dispersion de contaminantes
- modelos de simulacion de impactos cruzados.
Los primeros se refieren a la dispersion de contaminantes en
la
atmosfera
(se incluyen tres modelos)
y en cuerpos de agua
(se incluyen dos modelos).
Los segundos se enfocan a la simulacion de tendencias de los
elementos que conforman, por e j emplo, un sistema ecologico (se
incluye un modelo) .
4 .1 . MODELOS DE DISPERSION DE CONTAMINANTES.
En lo referente a contaminantes del aire, se incluyen los
modelos que simulan tres situaciones diferentes:
- calculo de concentraciones en un punto con respecto
a un emisor puntual continuo y trazo de una curva
de isoconcentracion
- calculo de concentraciones a una distancia
determinada a partir del punto donde se produce una
fuga de gas o un derrame de un liquido que se evapora
- calculo de concentraciones en el centro de un "puff"
o burbuja de un gas, proveniente de un almacenamiento
del cual es liberado masiva e instantaneamente.
Con respecto a contaminantes del agua se incorporaron dos
modelos :
- calculo de la variacion de la demanda bioquimica
de oxigeno (DBO) y del oxigeno disuelto (OD)
en un rio o canal, a partir de un punto de
descarga de un efluente liquido contaminado
- calculo de la variacion de la temperatura del agua
de un rio o canal, a partir de un punto de descarga
de agua caliente .
4 .1~8 . MODELOS DE DISPERSION AIRE.
A continuacion de describen los siguientes modelos:
- Modelo gaussiano : posicion (x,y,z) e isoconcentracion
- Modelo gaussiano : fugas y derrames
- Modelo gaussiano : puff .
4~1~1~1~ MODELO GAUSSIANO : POSICION (XvYvZ)
E ISOCONCENTRACION.
El
modelo
emitido
se
se
basa en la consideracion de que el contaminante
dispersa siguiendo una distribucion gaussiana en
las direcciones lateral y vertical .
La
concentracion
de un contaminante gaseoso en una posicion
proveniente de un emisor puntual continuo se calcula
x ,y,z ,
con la ecuacion (refs .4,5,7):
C(x,y,z ;He) = (Q/2PiSySzU) exp((-1/2)(y/Sy) :2)
(exp((-1/2)((z-He)/Sz)°)
+ exp((-1/2)((z+He)/Sz))
(1)
donde :
C(x,y,z ;He) = concentracion en la
posicion x,y,z,(g/m)
Q = gasto de contaminante,(g/s)
U = velocidad del viento,(m/s)
Pi = 3 .1416
He = altura efectiva de emision,(m)
Sy = coeficiente de dispersion en la direccion y , {m)
Sz = coeficiente de dispersion en
He es
la
direccion z,/m).
igual a la suma de la altura real de la chimenea mas el
termino
de elevacion de la
temperatura
de
los
elevacion de la
pluma debida
gases a la
pluma
se
salida
a la velocidad y
de la chimenea . La
calcula empleando
(refs .3,7):
dH = (VsD/U)(1 .5 + 2 .72P((Ts-Ta)/Ts)D)
donde :
dH = elevacion de la pluma,(m)
(2)
la ecuacion
Vs = velocidad de emision del gas,(m/s)
D = diametro interno de la chimenea,(m)
U = velocidad del viento,(m/s)
P = presion atmosferica,(atm)
Ts = temperatura del gas,(°°K)
Ta = temperatura del aire,( = K).
Se
no
recomienda
concentraciones
aplicar esta
en
ecuacion en el
calculo de
los primeros metros a partir de la base de
la chimenea.
Los
coeficientes
el
considerando
de dispersion Sy y Sz se
tipo de estabilidad atmosferica, siguiendo la
clasificacion de Pasquill-Turner <refs .3,7>:
Clase
calculan
Estabilidad
===========
A
Muy inestable
B
Inestable
C
Ligeramente inestable
D
Neutra
E
Estable
F
Muy estable.
La clase se determina a partir de la tabla siguiente :
_____________________________________
Dia
!
Noche
!
!Velocidad!
!
!
del
!
!
viento !Radiacion solar!Nebu-!Nebu-!
! (a 10 m)!incidente
!losi-!losi-!
!
!
!
!dad
!dad
!
(m/s) !Fuer-!Mode-!Ii-!entre!< 3/8!
!
!te
!rada !ge !4/8 y!
!
!
!
!
!ra !7/8
!
!
!
1
!
!
<2
A
! A-B ! B !
F
!
F
!
2-3
! A-B !
B
! C !
E
!
F !
!
3-5
!
B
! B-C ! C !
D
!
E
!
!
5-6
! C
! C-D ! D !
D
!
D !
>6
!
C
!
D
! C> !
! D !
D
!---!
!
!
Los valores de Sy o Sz se obtienen utilizando la ecuacion:
Sy o Sz = a x ~ + c
donde los
(3)
coeficientes correspondientes ,
en funcion del tipo
de estabilidad, son (ref .3):
__________________________________________
!Clase!
x < 1km
!
x > 1km '
!
c !
a
b
! c
!
a ! b
!
!
!
!
!----!
!
!
!A Sy! .215 ! .858 !
0 !
!
Sz! .467 !1 .89 ! .01 !
mismos
!!
!
!----!
coeficientes
!B Sy! .155 ! .889 ! 0 !
que para
!
Sz! .103 !1 .11 !
0 !
x < 1 km
!____!
!C Sy! .105 ! .903 !
0 !
!
Sz! .066 ! .915 ! 0 !
!----!
!
!
!D Sy! .068 ! .908 ! 0 !
Gz! .0315! .822 !
!
0 !
!
!
!E Sy! .050 ! .914 !
Q ! .050 ! .914 !
0 !
!
Sz! .0232! .745 ! 0 ! .148 ! .150 !- .126!
!----! !
!
!
!
!F Sy! .034 ! .908 !
0 ! .034 ! .908 ! 0 !
!
Sz! .0144! .727 !
0 ! .0312! .306 !- .017!
----/
'
/
!
!
!
!----!
!
!
-----
_------------ ________________________
Las
curvas
de
isoconcentracion
se
calculah
efectuando
el
cociente (ref .7):
C (x , y , 0 ; He) / C(x,0,0 ;He) = exp((-1/2)(y/Sv)°
(4)
de donde
y = (2 ln(C(x,0,0 ;He)/C(x,y,0 ;He)> 2 /2 8v
(5)
El programa calcula primeramente las distancias en las cuales
la curva de isoconcentracion corta al eje x,
determina los valores de
y
y en sequida
en funcion de incrementos de la
distancia x . Puesto que la forma de la curva se aproxima a una
elipse, el area se puede estimar por (3 .1416 AB), donde A es
el semieje mayor y B el semieje menor.
El modelo implica las siguientes suposiciones:
-
la pluma posee una distribucion gaussiana de la
concentracion de contaminante en las direcciones vertical y
lateral, con desviaciones estandar de Sy y Sz,
-
la velocidad media del viento es U y se considera
constante durante el tiempo de aplicacion del modelo,
- la fuente emite con un gasto constante 0,
no existe deposito de contaminante hacia el suelo, ni
reacciona con el mismo,
-
la difusion de contaminante en la direccion x es
insignificante.
El modelo es aplicable en zonas con topografia plana sin
obstaculos fisicos importantes .
4 .1 .1 .2. MODELO GAUSSIANO : FUGAS Y DERRAMES.
El
modelo se
aplica
para
efectuar
estimaciones
de
concentraciones de ' sustancias peligrosas, a nivel de piso ,
provenientes de una fuga gaseosa o de un derrame de un liquido
que se evapora.
Los parametros de salida del modelo son el tiempo que tarda la
nube peligrosa en alcanzar una concentracion dada y el area de
"exclusion" o area de riesgo, dentro de la cual se pueden
tomar acciones preventivas de evacuacion de la poblacion en
caso de accidente .
Para el
caso
de
una
gas , la ecuacion empleada es
fggª
(refs .1,6):
C(x,0,0 ;0) = (Q/PiSvSzU)
(6)
donde :
C(x,0,0 ;0) = concentracion de la sustancia peligrosa,
x metros abajo de la fuga,(g/m)
Q = gasto de la fuga,(g/s)
Pi = 3 .1416
U = velocidad media del
viento,(m/s)
Sy = coeficiente de dispersion en la direccion y , (m)
Sz = coeficiente de dispersion en la direccion z,(m).
En
esta ecuacion, la fuga se considera como una fuente
puntual . Para definir el area de exclusion se recomienda tomar
los TLV's como criterio para determinar la concentracion
maxima
a la cual se puede exponer una persona durante periodos
de tiempo relativamente cortos (1 hora)(refs .1,6).
Las suposiciones implicadas en el modelo son las mismas que se
indicaron para el modelo de posicion (x,y,z)
e
isoconcentracion.
Un problema a considerar es la estimacion del gasto de la fuga
de gas . Con el fin de dar una idea de la magnitud del gasto se
tienen los siguientes datos (ref .1) :
Tipo de Almacenamiento
Gasto (kg/s)
======================
Valvulas para exceso
de flujo en carros
tanque y pipas
< 0 .9
Valvulas para exceso
de flujo en barcasas
< 1 .9
Por lo general el tiempo que dura una fuga es de algunas
horas, por lo que el gasto Q se puede suponer constante
durante
la
modelacion.
La determinacion del area de exclusion se efectua con el mismo
procedimiento
En el
utilizado
ca so de un
d=
para
trazar
una
curva
de
=== 42 un Lismisiggu2 a2 ey224n2 ,los
calculos se efectuan considerando la emision como una fuente
de area, suponiendose que la forma del derrame es cuadrangular
(ref .7).
El primer problema a resolver es la estimacion de la cantidad
de sustancia que se evapora . Para esto, el modelo utiliza una
grafica que relaciona el cociente entre la presion de vapor de
la sustancia en cuestion
y
la presion atmosferica, con el
gasto que se esta emitiendo por evaporacion (ref .l).
De la misma forma que en el caso de fuga de gas, se asumen las
restricciones de aplicacion
El
que se indicaron para el modelo
modelo para derrames esta basado en la ecuacion 6
considerando una pequena modificacion, con el fin de
representar la fuente de area : Sz se determina en funcion de
la distancia x
xv,
y Sy en fúncion de una distancia ficticia x +
asumiendo que:
L = 4 .3 Syo
(7)
Syo = L/4 .3
(8)
donde :
L = longitud de un lado del cuadrado de derrame,(m)
Syo = coeficiente de dispersion a la distancia
x=,(m).
Una vez que se calcula Syo,
xr
es obtenida a partir de la
ecuacion 3 ya descrita.
El procedimiento de calculo es identico como para el caso de
fuga de gas, obteniendose el area de exclusion y el tiempo en
que la nube de vapor alcanza un punto determinado con una
concentracion dada .
4 .1~1~3 MODELO GAUS$IANO : PUFF.
El modelo considera la dispersion de un "puff" tridimensional,
o burbuja, formado por la masa de una substancia que es
liberada a la atmosfera en unos cuantos segundos, tal como la
liberacion
de una nube de gas provocada por una explosion o
ruptura de una esfera de almacenamiento .
Se
la dispersion de la nube, o puff, a lo largo de
asume que
la direccion del
viento
(x) es igual a la dispersion en la
direccion lateral (y) . En este caso el viento interviene como
vector de
movimiento
viento abajo del
del
puff,
condicionando su
posicion
punto de emision.
La ecuacion representativa del modelo es (refs .2,7,8):
C(x,y,0 ;He) = (2Q/(2Pi) z5 ^°Sh--r-Sz)
exp((-1/2)((((x-Ut)0+yo)/Sh)
+(He/Szom)>)
(9)
donde :
C(x,y,O ;He) = concentracion en el puff a nivel de piso
en la posicion x,y a partir del centro del
puff,(g/rO)
Q = emision total de gas , (g)
He = altura de emision,(m)
Sh = Sy=Sx = coeficiente de dispersion del puff en las
direcciones x e y , (m)
Sz = coeficiente de dispersion del puff en la direccion
z,(m)
Pi = 3 .1416
t = tiempo de desplazamiento del puff,(s)
U = velocidad promedio del viento,(m/s)
x = distancia desde el centro del puff en la direccion
del viento,(m)
y = distancia desde el centro del puff en la direccion
/
lateral,(m)
z = distancia desde el centro del puff en la direccion
vertical,(m)
Los terminos Sy
y Sz, los cuales definen el tamano del puff ,
dependen de la distancia recorrida por el mismo (Ut)
y de las
condiciones de estabilidad atmosferica prevalecientes . En el
modelo se considera que la estabilidad,
y por lo mismo-el
viento, permanece constante durante todo el recorrido del
puff ;
los coeficientes Sy y Sz se calculan can la ecuacion 3
ya descrita en el modelo de posicion e isoconcentracion,
seleccionandolos de tal forma que la concentracion estimada
resultante sea representativa de la concentracion que se
tendria desde un emisor puntual continuo.
El modelo da como salidas la distancia recorrida por el puff ,
el tiempo de recorrido
y
la concentracion en el centro del
mismo a nivel de piso . Los calculos se efectuan de tal forma
que se interrumpen cuando se alcanza una distancia de interes
o una concentracion determinada por el usuario (que pueden ser
los
TLV's) .
Igualmente
se
determinan
las
curvas de
isoconcentracion correspondientes a la concentracion
suministrada por el usuario , en varios puntos del recorrido
del puff.
Las condiciones de aplicacion del modelo son las mismas que
fueron
descritas
para
el
modelo de
posicion
e
isoconcentracion .
REFERENCIAS.
(1).
Environmental Protection Agency, "Accidental episode
manual", Office of Air Programs, Research Triangle Park, North
Carolina, January 1972.
(2).
~
Ludwig F .L .,Gasiorek L .S .,Ruff R .E ., "Simplif.ication of a
gaussian
puff
model
for
real-time
minicomputer use",
Atmos .Environ ., Vol .11, pp .431-436, 1977.
dispersion des polluants a l'aval des cheminees
industrielles", E .D .F ., Bulletin de la Direction des Etudes et
Recherches, Serie A Nucleaire, Hydraulique, Thermique, No .3,
pp . 5 -64, 1972.
(4).
Neely W .B ., "Chemicals in the environment : distribution,
transport, analysis", Marcel Dekker Inc ., New York and Basel,
1980 .
(5).
Pasquill F ., "Atmospheric diffusion : the dispersion of
windborne material from industrial and other sources", Ellis
Harwood Limited, 2nd .Edition, New york, 1974.
(6).
Powers
developing
J .E .,Pultz
contingency
S .,Paxton K .,Hsu H ., "Guide to
plans
for
hazardous
chemical
emergencies",
Centers
for
Disease
Control, Center for
Environmental Health, Atlanta, Georgia, September 1981.
(7) .
Turner
D .B .,
"Workbook
of atmospheric dispersion
'
estimates", Environmental Protection Agency, Office of Air
Programs, Research Triangle Park, North Carolina, 1970.
(8).
U .G .Nuclear Regulatory Commision,
"Methods for estimating
atmospheric transport and dispersion of gaseous effluents in
routine releases from light-water cooled reactors", Regulatory
Guide 1 .111 ., July 1977 .
4 .1 .2. MODELOS DE DISPERSION AGUA.
A continuacion se describen los modelos de dispersion en rios
y caviales:
-- Modelo de Streeter y Phelps : DBO-OD
- Modelo I .A .E .A . : descargas termicas .
4 .1 .2 .8 . MODELO STREETER Y PHELPS : D.B .O. O .D.
El modelo simula las variaciones de la Demanda Bioquimica de
Oxigeno (DBO)
y
del Oxigeno Disuelto (OD), a partir de un
punto de descarga de agua residual en un rio o canal, en
funcion de la distancia recorrida por la corriente de agua.
Las ecuaciones del modelo son deducidas efectuando un balance
de masa en un volumen elemental de agua ; haciendo algunas
simplificaciones se llega a las ecuaciones establecidas por
Streeter y Phelps (refs .1,2,4,6):
L = Lo exp(-klx/U)
(1)
D = (k1Lo/(k2-k1))<exp(-k1x/U)
-exp(-k2x/U)>+Doexp(-k2x/U)
(2)
L = DBO a x km . de la descarga,(mg/l)
Lo = DBO del rio, despues del mezclado
del efluente,(mg/l)
C = OD a x km . de la descarga,(mg/l)
Co = OD del rio, despues del mezclado
del efluente,(mg/l)
Cs = concentracion de OD a la saturacion,
(mg/1)
k1 = coeficiente de desoxigenacion,(d- l )
k2 = coeficiente de reaereacion,(d- l )
x = distancia recorrida por la corriente
a partir de la descarga,(km)
U = velocidad de la corriente,(m/s)
La ec .1 representa el proceso de biodegradacion de la materia
organica,
y
la ec .2 ` describe la evolucion del deficit de
oxigeno disuelto con respecto a la concentracion de saturacion
(ref .1).
El modelo considera el siguiente esquema:
K
X
x
(4.n1).
ZONA DE
MEZCLADO
donde
Qi,Qe
y
Qo son los gastos, de la corriente antes de la
descarga "i", de la descarga "e" y de la corriente "o" una vez
que los efluentes han sido mezclados . Para correr el modelo es
necesario obtener los parametros iniciales
Lo,
Co y Qo de
acuerdo con:
Qo = Qi+Qe
(5)
Lo = (QiLi+QeLe)/(Qi+Qe)
(6)
Co = (QiCi+QeCe)/(Qi+Qe)
(7)
Por lo general se tiene que Qe<<Qi . La velocidad U se obtiene
considerando:
(8)
U = Qo/A
donde A es el area transversal del rio o canal en cuestion . Se
asume que la zona de mezclado es pequena y que la mezcla es
homogenea a lo largo del trayecto de la corriente.
Los coeficientes kl y k2 son funciones de la temperatura, del
gasto
,
hidraulicas)
de
las
y
condiciones de flujo (hidrologicas e
del estado general de contaminacion de la
corriente . Por lo general estos parametros deben ser obtenidos
experimentalmente . A manera indicativa se tienen los
siguientes valores para k2 (ref .4) :
Tipo de corriente
Rangos de k2
a 20 =C(d- ,. )
================
=======================
Pequenos estanques
0 .10-0 .23
Lagos grandes
0 .23-0 .35
Corrientes grandes
0 .35-0 .46
a baja velocidad
Corrientes grandes
0 .46-0 .69
a velocidad normal
Corrientes tortuosas
0 .69-1 .15
Rapidos y caidas
>1 .15
de agua
Para otras temperaturas:
(
k2 = (k2
9)
a 20°C) 1 .024 -r - 2 °
.
Si no se conoce k1 se le puede asignar algun valor inferior a
k2 ; la velocidad de desoxigenacion (k1) es siempre mas pequena
que la de oxigenacion (k2).
La concentracion de saturacion es tambien una funcion de la
temperatura (ref .1):
donde T = temperatura,(°C).
El modelo considera las siguientes suposiciones:
-
existe un flujo uniforme permanente (U = 0/A), donde Q y
A son constantes en el tramo considerado de la corriente,
-
no toma en cuenta la
biodegradacion
de compuestos
nitrogenados,
- representa un balance entre el consumo de oxigeno por
los microorganismos que efectuan la biodegradacion inmediata
(DBO)
la reoxigenacion que se efectua en la interfase
y
aire-agua,
-
no incluye el proceso de sedimentacion de particulas
solidas conteniendo materia organica biodegradable,
-
no toma en cuenta la reoxigenacion por fotosintesis
debida a ciertas algas.
Por lo anterior es necesario tener cautela en la
interpretacion de los resultados del modelo cuando se aplique
a rios o canales donde:
- la porcion modelada no puede considerarse homogenea,
- existan puntos singulares, tales como:
* varias descargas contaminantes importantes
* cambios bruscos de pendiente (por ejemp.
la presencia de una cortina)
* cambios importantes del gasto de la corriente .
4 .1 .2 .2 .
MODELO I .A~E.A. : DESCARGAS TERMICAS.
El modelo simula la evolucion de la temperatura en un rio
o
canal, despues de que este recibe una descarga de un efluente
liquido con una temperatura mas elevada que el agua de la
corriente, en funcion de la distancia recorrida.
El
modelo esta basado
en el
siguiente esquema:
.^
_
"=
~-
CE
o
r:::.:~
~
~~
~ .~ .~ .~ .~ .~ .~ .~ .~
.
~ .~ ..
La ecuacion represehtativa del modelo es (ref .3):
T(d) = Ti+((To-Ti)exp(-d/D))
(11)
con
Qo = Qi+Oe
(12)
To = (QiTi+QeTe)/(Qi+Qe)
(13)
donde :
T(d) = temperatura de la corriente d km aguas
abajo del punto de descarga,
(DC)
To = temperatura de la corriente, despues de
mezclado del efluente,( D C)
Ti = temperatura de la corriente antes del
.
aC)
punto de descarga,(
Te = temperatura de la descarga,( =C)
d = distancia recorrida por la corriente a
partir del punto de descarga,(km)
D = distancia de relajacion,(km)
Qi = gasto de la corriente antes del punto
de descarga,(m 3 /s)
Qe = gasto de la descarga,(m~/s)
Do = gasto de la corriente despues del
punto de ds/scarga,(rO/s)
U = velocidad media del viento, a 2 metros
de la superficie del agua,(m/s)
Estas ecuaciones indican que bajo la influencia de varios
factores meteorologicos (evaporacion, conveccion, radiacion),
la temperatura corriente abajo del punto de descarga tendera a
disminuir . Esta disminucion se asume de tipo exponencial . La
distancia de relajacion D, corresponde aproximadamente a la
distancia recorrida por la corriente cuando (To-Ti) es igual a
un tercio de su valor inicial.
Si se suponen condiciones meteorologicas estables a lo largo
del recorrido del rio o canal, se tiene la siguiente relacion
simplificada para D (ref .3):
D = (h'Qo/hb)(864/0 .01T"+0 .95+(0 .62+0 .37U)
(14)
(1+0 .87e 0 ^ 00r ^)>
donde :
b = anchura promedio del rio o canal,(m)
T" = temperatura superficial del agua,( ="C)
h = profundidad media de la corriente,(m)
h' = espesor de la capa de agua afectada
por la descarga termica,(m)
El modelo considera un mezclado completo, lo que conduce a que
h=h'yT"=To.
Los
resultados del modelo deben interpretarse con mucha
precaucion
Y
dentro ,de
una perspectiva adecuada . Las
aproximaciones teoricas efectuadas hacen que el modelo
subestime la disipacion de calor por la corriente y por lo
tanto sobrestime la temperatura corriente abajo del punto de
descarga . Ademas el modelo no toma en cuenta aspectos tales
como :
— variaciones diarias de la temperatura del agua de la
corriente,
_ cambios en las caracteristicas de la corriente
(anchura, profundidad, flujo, turbulencia,etc .), a lo largo de
su recorridov
variaciones en las condiciones meteorologicas .
REFERENCIAS.
(1).
Agence Financiere de Bassin-Seine Normandie,
"Modelisation du pouvoir autoepurateur des rivieres", Cahiers
Techniques No .5, Juin 1977.
(2).
Hamer M .J .,MacKichan K .A ., "Hydrology and quality of
water resources", John Wiley and Sons, 1981.
(3).
I .A .E .A ., "Thermal discharges at nuclear power stations:
their management and environmental impacts", International
Atomic Energy Agency, Technical Report Series No ^ 155, Vienna,
1974 .
(4).
Metcalf and Eddy Inc ., "Water resource and environmental
engineering", Mc .Graw Hill Inc ., 1979.
(5).
Parker L .F .,Krenkel P .A ., "Thermal pollution : status of
the art", Department of Environmental and Water Resources
Engineering, School of Engineering, Vanderbilt Universityv
December 1969.
(6).
1979 .
Shen H .W ., "Modelling of rivers", John Wiley and Sons,
4 .2 . MODELO DE SIMULACION DE IMPACTOS CRUZADOS (KSIM).
El lenguaje de simulacion KSIM (Kane Simulation Modelling)
esta orientado a establecer modelos estructurales, en los
cuales el enfasis se pone en la manera que los elementos
participantes se interconectan . KSIM fue desarrollado en 1973
por Julius Kane
atacar
y
sus colaboradores, con el proposito de
.cierta clase de problemas que emergen con frecuencia en
la etapa de estructuracion de problemas socio-tecnologicos
comlejos . El procedimiento tiene las siguientes
caracteristicas:
lo . Involucra interacciones complejas entre variables
tanto del tipo cuantitativo como cualitativo.
2o . Estimula la interaccion entre grupos
multidisciplinarios y con intereses diversos.
3o . Esta basado en ciertas suposiciones sobre la
naturaleza de la dinamica de los sistemas.
4o . Ofrece amplia flexibilidad para modificar las
interacciones entre los elementos e incorporar
dinamicas de crecimiento alternativo.
5o . Esta diseñado para enfatizar la geometria de
las relaciones en lugar de predicciones numericas.
Existe un amplio espectro de problemas en los cuales KSIM ha
sido empleado en forma exitosa (refs .1,2) .
De ª~~ ' cig º del Metodg_
El usuario selecciona, en primer termino, el conjunto de
variables
que se considera relevantes
Xi
al problema bajo
estudio.
La
no es restrictiva puesto que, como se menciono,
solucion
las adiciones y eliminaciones se pueden hacer facilmente.
En segundo termino, es necesario normalizar las variables
entre cero
y
uno (X E(0,1)), seleccionando los niveles
superiores e inferiores de cada variable Xi.
Con las variables seleccionadas y normalizadas, se procede a
construir
at,
la
Matriz de
indicando
ºri0_ E
la interaccion
Exclusivamente
variable j .
Interaccion (MI),
orden ,
pudiendose
entre
se
con elementos
y
la variable i
la
consideran interacciones de
emplear una escala ordinal para
medir la intensidad de las interacciones y el signo de las
mismas . En este caso se acostumbra emplear el signo de "+"
cuando
la
relacion
"amplificacion"
una
relacion
que
existe entre
o de refuerzo,
Xi
y
Xj
es de
y el signo °-" cuando existe
de amortiguamiento o
inhibicion
entre las
variables.
Es necesario contemplar las interacciones entre
visceversa,
aji
entre
Xj
y Xi ;
es decir la relacion a ^ j
no es reflexiva.
Cªl~~lº_
~ªt~~ªtiEºa _
Las ecuaciones que rigen al KSIM son las siguientes:
Xi(T+dT) = Xi(T) + ^^ r '
Xi y Xj y
en donde T = KdT, para K un entero positivo y dT representa un
periodo de tiempo . fi(T) esta dada por:
m
fi(T) = (1+(dT/2)E ! Zi~ -(Zij) Xj(T)/
j=1
m
! Zi~ +(Zij) Xj(T))
(1+(dT/2
j=l
con Zij = al,+Bij
Bij = b^j(d(ln Xi (T))/dT)
y
m = numero de variables
a ^i = elementos de la matriz de interaccion
b^4 = elementos de la matriz de derivadas
de interaccion.
Es conveniente hacer notar que el uso de las matrices A =
(a ^ i)
B = (b ^ j) corresponde a la consideracion de
y
impactos a corto plazo (matriz B) e impactos acumulativos a
mediano
y
largo plazos (matriz A) . En la mayoria de las
aplicaciones se hace uso exclusivo de la matriz A dado el
objetivo primordial del modelaje y la filosofia basica de la
tecnica.
Pasos Principales
lo . Seleccione las variables Xi.
2o . Escoja los valores maximos y minimos de cada
variable y normalicelos dentro del rango (0,1).
3o . Prepare la matriz A de interaccion listando
las variables dos veces, una como filas y la
otra como columnas . El valor a ^i representa
el efecto que Xi tiene sobre Xj . El numero
puede ser positivo, negativo o cero, dependiendo
si Xj incrementa, decrementa o no altera el valor de
Xi.
4o . (Opcional) Preparar la matriz B con los
coefficientes bij representados por el
nivel de cambio de Xj con Xi.
5o . Las variables que actuan sobre otras pero que no
son influenciado por ninguna, deben incluirse en
la matriz como columnas exclusivamente.
6o . Seleccione el incremento de tiempo dT y los
Valores Iniciales de cada Xi.
7o . Ingrese la informacion a KSIM de acuerdo a lo
solicitado por el programa.
So . Correr el modelo y analizar las graficas de la
simulacion, obtenidas para cada variable.
9o . Modificar el modelo si los resultados no son
satisfactorios (eliminando variables, cambiando
valores a los niveles de impacto, condiciones
iniciales, etc.
10o . Repetir los pasos 8 y 9 hasta obtener un modelo
satisfactorio . De no lograrlo, reconceptualice
el problema y su estructura y comience con
el paso 1.
11o . Con el modelo obtenido y juzgado satisfactorio
puede aplicarse para evaluacion de impactos y
generacion de escenarios y politicas .
REFERENCIAS.
(1).
Armijo R .,Medina J .G .,Jameson D .A .,Nava R ., "Manejo
integral de los recursos renovables", Ciencia y Desarrollo,
pp .111-119, Nov .-Dic . 1982.
(2).
Holling C .S ., "Adaptive environmental assessment and
management", IIASA Applied System Analysis, John Wiley and
Sons, Chichester, 1978.
(3).
Kane J ., "A primer for a new cross-impact language KSIM",
Technological Forecasting and Social Change, Vol .4,
pp .129-142, 1972 ..
(4).
Kane J ., Vertinsky I ., Thomson W ., °KSIM : a methodology
for interactive resource policy simulation", Water Resource
Research, Vol .9, No .1, pp .65-79,
1973 .
5. MODULO DE APOYO DECISIONAL
5 .1 PROCEDIMIENTO DE SELECCION DE ALTERNATIVAS BAJO CRITERIOS
MULTIPLES (ELECTRE I).
INTRODUCCION.
El m&todo ELECTRE fu& originalmente desarrollado por la
"Direction
Scientifique" de la "Soci&tb D'Economie et
Mathematique Appliquees" en 1965
de
a solicitud , del Gobierno
Francés . A sido exitosamente empleado dentro de los sectores
p6blico y privado para atender problemas relativos a la selección
de alternativas o proyectos bajo un esquema que considera
m6ltiples dimensiones de evaluación,
sin existir una sola
dimensión dominante.
Las problemas de decisión cuya naturaleza involucra
m0ltiples dimensiones de evaluación o puntos de vista se les
denomina multicriterios o multiatributos, y para los cuales se
han diseftado esquemas adiversos para apoyar el proceso de toma de
decisiones.
ELECTRE constituye una herramienta de apoyo cuya filosofía
bAsica es la de "facilitar" la decisión sin "intromisiones"
excesivas en los procesos cognositivos de "el o la" responsable
de tomar la decisión . Esto implica que ELECTRE I no produce una
jerarquización de las opciones bajo consideración, sino que
sef'fala las "mejores" opciones eliminando aquellas que estan
"dominadas" por las opciones seleccionadas .
Es posible que en
algunas ocasiones una alternativa sobresale sobre el resto,
dominando a todas las dem&s por lo que ELECTRE I
la señalara
como la mejor opción . Por lo general, sin embargo, es suficiente
con reducir el netmero inicial de opciones bajo consideración a
dos o tres y poder escrutinar con mayor detalle el subconjunto
seleccionado.
Conviene indicar que existe ELECTRE II cuya función es la de
proveer una jerarquización de todas las opciones bajo escrutinio.
Se ha considerado pertinente iniciar con ELECTRE I por ser de mas
fAcil aplicación y de contar con numerosas instancias en las
cuales su uso ha sido exitoso.
Como una segunda generaci6n de herramientas de Apoyo
Decisional se estima que la implementación de un modelo de
funciones utilitaristas multidimensionales (referencia 3) seria
el paso mas indicado, dado que este enfoque' complementa al de
ELECTRE.
PLANTEAMIENTO.
El problema bajo consideración puede ser expresado de la
siguiente manera:
"Dado un conjunto inicial de alternativas, seleccionar un
subconjunto de tal manera que las seleccionandas "dominen" a las
no seleccionadas de acuerdo a la estructura de preferencias del
responsable de tomar la decisión".
En
terminas prácticos ELECTRE I requiere definir los
siguientes elementos:
lo . Un conjunto de alternativas dentro de las cuales se hará
la Selección.
2o . Un conjunto de puntos de vista o criterios mediante los
cuales las alternativas serán evaluadas.
3o . Un conjunto de valores de importancia relativa que
representan el peso (relativo) de los atributos de
evaluación . Dichos pesos no tienen que sumar 100% y
pueden definirse dentro de cualquier escala ordinal.
4o. Definir la escala en las cuales se definirá el
conjunto de puntos de vista ; por ejemplo para el
criterio de evaluación "COSTO", se le define una escala
[0,100 en Millones], el atributo "FLEXIBILIDAD" se le
define la escala [NULA, BAJA, MODERADA, ALTA], etc.
Esto implica que ELECTRE permite considerar puntos de
vista &ggggt 2 t ¡ ygs
selección,
lo
y cuantitativos en el proceso de-
cual se logra una
visión
mas balanceada de el proceso de selección .
global
5o .
Elaborar una matriz que resuma la evaluación de
de vista a
los puntos
todos
todas las alternativas . Esta
es de gran utilidad puesto que sintetiza las
matriz
de
características
a
acuerdo
los
los objetos bajo evaluación
multiples
criterios
de
de
evaluación
empleada . Asi se tiene que la matriz se forma, poniendo
coma renglones a las alternativas y como columnas a
los
puntos de vista bajo evaluacion:
Por ejemplo:
P1 P2 P3
Pm
---------------------------Ai
all a12 a13
aim
A2 a2i
.
n
LI
An
ani
anm
Los valores de aij corresponden a la evaluación de j-ava
alternativa por el i-avo punto de vista.
PROCEDIMIENTO.
,
A -
CALCULO
INDICE
DE CONCORDANCIA
- .
El
de
indice
medida
del
concordancia Cij esta definido como
acuerdo que existe con la
la
hipótesis "La
alternativa i es preferida a la j", y se calcula de la
siguiente manera :
SUM
K e s ij
w
SUM
k e P
w
k
ij =
Con S ij = C k
de vista k.
: i
es preferido a j de acuerdo al punto
w = peso de importancia relativa del punto de vista k.
P = Conjunto de todos los puntos de vista.
B -
CALCULO DE L
- INDICE DE DISCORDANCIA.
El indice de discordancia Dij esta definido coma el savo elemento del conjunto decreciente R, tal que:
la
1
R
=
C
r
:r
k
- a
ki
1
kj
=
k e Dij
k
RMAX
en donde se tiene que
Dij = C k
: i
no es preferido a j de acuerdo con el
punto de vista k, k e PI.
aki, akj son las evaluaciones de las alternativas i y j
empleando el punto de vista k.
RMAX =
valor mAximo absoluto de las escalas empleadas en
todos los puntos de vista.
C - CALCULO pg. ---E - - E
Condicibn de dominancia.
Si
Cij >= p y Dij <= q para p y q EO,1],
entonces g i ,j
=
1 ; de lo
contrario g ij = O .
La matriz de g
ij
integra G(p,q,$).
Se dice
U es el
que
conjunto
de
todos los arcos
definidos por g ij, tal que arc(i,j) pertenece a U
solo
g
si
ij=l .
El
si y
U no es
grafo definido por
necesariamente completo ni transitivo y puede existir
circuitos los cuales se suponen equivalentes.
D -
0 I E0 gggg DEL uggLE g .
Empleando G'(A,U) = 6(p 5 q,$)
es el
(sin circuitos), en donde A
conjunto de nodos (alternativas) y U
dirigidos,
el
nucleo N se define como el
los arcos
conjunta
de
nodos que no tienen arcos dirigidos hacia ellos y si se
originan arcos de ellos hacia otros nodos . Formalemente
se tiene que si:
_
c
N A y E= N
(complemento de N con respecto a A)
c
3 i e N, j e N arc(j,i) e U5 y
3 i,j e
arc(i,j) d U, arc (j,i)
d U.
DE LOS Bgggt.182 gg .
E
El nucleo N contiene el subconjunto de alternativas que
`dominaron'
al
evaluación
empleados .
resto
de acuerdo a
Los
los criterios
par&metros
p
y
de
q,
denominados
de
'concordancia'
y
`discordancia"
respectivamente, permiten establecer condiciones
globales de acuerdo y nivel de desacuerdo deseado en la
selección de las alternativas .
REFERENCIAS.
Benayoun, R ., B . Roy and B . Sussman, 1966 . "ELECTRE : Une
methode pour guider le choix en presence de points de vue
multiples", Direction Scientifique, Note de Travail No 49, SEMA,
Paris .
Charpentier, A . R . and E . Jacquet-Lagreze, 1975 .
promotion
de
l'electricite et 1'utilization
de
" La
methodes
multicriteres", METRA, v . XIV, No . 3, Paris.
Cohon,
J.
L .,
1978 .
Multiobjetive programming and
Planning . Academic Press, N .Y.
David, L . and L . Duckstein, 1976 . "Multi-criterion ranking
of alternative long-range water resources systems" . Water
resources Bulletin . Vol 12 . No 4 . pp . 731-754.
Diaz-Pemax E ., L . Duckstein and G . Resnick, 1978 . "Water
management in the Sonoita Creek Bastin, Arizona : a
multicriterion approach", Working paper #78-26, Department of
Systems & Industrial Engineering,
University of Arizona, Tucson
Arizona 85721.
Jacquet-Lagreze, E ., 1973 . "Le probleme de l"aggregation
des preferences : une classe de procedures a seuil", Mathematiques
et Sciences Humaines, 43 .
Roy, B . 1968 . " Classment et Choix en presence de criteres
multiples ", RIRO, 2 anee, No 8, pp . 57-75 .
6 . SISTEMA DE EXPERTOS
Un experto en una Area determinada conoce y emplea una serie de
reglas, aserciones e hipótesis de trabajo mediante las cuales
hace frente a las situaciones que se le presentan dentro de su
campo de especialidad.
Un sistema de expertos es una serie de programas que hacen uso
efectivo de un conjunto de reglas codificadas por un experto o
grupo de expertos de una manera entendible por los programas y
que producen decisiones y/o recomendaciones con una calidad
similar a la producida por expertos humanos.
Los sistemas de expertos tienen caracterlsticas especificas,
algunas de las principales son:
1 - El conocimiento codificado por el experto o grupo de
expertos puede consistir de:
a) Reglas estrictas, o sin incertidumbre.
b) Reglas que consideran incertidumbre.
La 61tima clase de reglas son aquellas que no pueden ser
exactamente probadas, pero que son utilizadas por los
expertos como una herramienta muy efectiva en muchos
problemas prActicos . El conjunto de reglas generadas por el
experto se denomina la "base de conocimientos" . La base de
conocimientos puede contener reglas redundantes, asl coma
reglas contradictorias .
2 - Al
interactuar
el sistema de expertos con un caso en
particular, la base de conocimientos, la cual constituye el
modelo inicial, cambia, a medida que se proporciona
información
adicional . Esto significa que las medidas de
validez de algunas aserciones en la base de conocimientos
son
recalculadas por fórmulas implementadas en el software
del sistema de expertos . A este software se le llama
"m&quina de inferencias".
Dado que es dificil o costoso obtener toda la
in+ormación
para el caso en mano, al sistema se le provee solo con la
información obtenida, en la forma de un diAlogp
entre el
sistema de expertos y el usuario . E1 diálogo es un ana1ogia
entre la consulta de un usuario a un experto . Las preguntas
son hechas del sistema al usuario mediante una
microcomputadora
y el usuario responde o utiliza la base de
conocimientos general, con la informaci6n
modelo actual es
reconfigurado,
suministrada, el
hasta que una o varias
conclusiones son +armadas.
3 - El sistema de expertos debe explicar las decisiones o
el proceso de razonamiento en cada momento de la consulta.
4 -
El sistema de expertos debe trabajar con dos tipos de
incertidumbre:
a) La incertidumbre contenida en la base de conocimientos.
b) La incertidumbre contenida en la base de datos
(respuestas del usuario) .
La base de conocimiento utiliza tres formas de representación del
conocimiento:
A)
Reglas
de producción . Son reglas de la forma E -> H
que
significa "si" hay una evidencia "E" entonces la hipótesis
"H" es verdad . Ambas "E" y "H" se consideran como aserciones
elementales (proposiciones).
La hipótesis "H" puede servir como la evidencia en otra
regla de producción, la aserción "E" pudiera ser la
hipótesis con respecto a alguna otra regla de producción, de
tal manera que la base de conocimientos representada por
reglas
de
producción puede ser gráficamente expresada como
un grafo dirigido, usualmente llamado red de inferencias.
Los nodos de la red corresponden a las aserciones, las
implicaciones entre pares de nodos son representados por los
arcos que los unen . Los nodos superiores de los cuales no
salen arcos se denominan hipótesis superiores . Los nodos a
los cuales no llega ningun arco se llaman nodos hojas . Los
nodos o espacios las cuales no son ni nodos
hojas ni
nodos
superiores se llaman nodos internos .. La tarea de una
consulta en particular es probar o negar una hipótesis meta.
Las hipótesis meta son los nodos superiores de la red de
inferencias, aunque tambi6n pueden ser nodos internos.
Cada aserción puede ser preguntable o no-preguntable . Es nopreguntable si
no
tiene sentido preguntar por ella
(el
usuario nunca sabe la respuesta) o si ya fue respondida por
el
usuario durante la consulta .
Las otras aserciones
son
todas preguntables . Por supuesto, las hipótesis metas son
siempre no-preguntables, todas las hojas son preguntables al
inicio de la consulta.
cada uno
A
de los nachos se le
asigna una probabilidad
inicial de ocurrencia P(S), para cada arco (implicación) dos
netmeros se le asignan ; lambda y lambda testada . Los valores
de
P(S) son siempre dadas por el experto,
lambda y lambda
testada expresan la incertidumbre subjetiva del experto para
cada implicación.
B)
unciones
aserciones
16gicas .
Estas hacen posible
compuestas .
la
expresi6n de
Los tres tipos de funciones lógicas
consideradas son : AND, OR, NOT.
C)
Arcos de Contexto . Estos arcos se utilizan cuando, antes de
que una aserción pueda ser investigada,
se
requiere una
verificación completa de otra . A cada arco de contexto se le
asocian dos nameros ; alfal y alfa2 los cuales representan el
rango
de
en el cual debe estar la probabilidad de que el
contexto debe
aserción .
tener,
antes de
investigar
la
nodo
otra
Los arcos de contexto son una herramienta muy efectiva para
mejorar la representaci6n del conocimiento de Ios expertos.
ESTRATEGIA OE OPERACION DEL SISTEMA DE EXPERTOS
1)
Se investiga la hipótesis meta seleccionadav ya sea porque
es la que tiene el valor mayor de probabilidad y no ha sido
completamente probada o es la hipótesis meta seleccionada
por el usuario.
2)
Hay dos etapas de operación que se van alternando:
a) Preguntar al usuario . Se pregunta al usuario la aserción
que mAs significativamente apoye la hipótesis meta
b)
y
que
Propagar la informaci6n . La informacibn dada por el
usuario al responder una pregunta se propaga a travbs de la
red de inferencias hasta la hip6tesis superior con respecto
a las rutas del grafo orientado . Las probabilidades de las
aserciones son recalculadas de acuerdo a ciertas reglas.
3)
La consulta se termina si:
a)
No
hay
inferencias,
más espacios preguntables en la red
esto
es,
de
todas las preguntas han sido
respondidas en la consulta.
b) El usuario desea terminar la consulta .
REFERENCIAS .
.)
(1).
Duda
R .O .
et
Al .,
"Systems in pattern-directed
inference .systems", Roth Eds ., Academic Press, 1978.
(2).
Holling C .S ., "Adaptive environmental assessment and
management", I .I .A .S .A ., John Wiley and Sons, 1978.
(3).
Zdrahal
systems :MEXEXP
1984 .
Z.
1 .0",
et
Al . ,
Informe
"An
eskeleton
for expert
tecnico AHR-84-29, CINESTAV,
7 . MODULO CONVERSACIONAL 0 DE INTERFASE.
La estructura modular del SIRIA le confiere la capacidad de
intercambiar informacion de un modulo a otro, sin necesidad de
requerirse una intervencion manual, ni de recapturar la
informacion ya disponible o generada por los modulos.
Esta comunicacion implica un nivel de eficiencia mayor en el
uso de los recursos,
y
se traduce en evaluaciones
sistematicas, agiles y reproducibles.
El manejo de los diversos modulos y opciones disponibles en el
SIRIA se lleva a cabo a traves de una interfase, que
proporciona todos los elementos para facilitar la tarea del
usuario.
El ambiente de trabajo del SIRIA se conformo de tal forma que
se adapta a las necesidades de usuarios no especializados en
el area de computacion . Para esto, se cuenta con entradas a
todos los modulos
y
procesos mediante comandos simples y
menus, pudiendose en cualquier momento solicitar ayuda al
sistema en si .
TERCERA PARTE
-------------
I MPLEMENTAC I ON OPERATIVA
S . SUMS DEL USUARIO
A
continuación se presentan las gulas del usuario para los
siguientes programas:
- Modelos de Dispersión dd Contaminantes.
- Modelo KSIM
- Modelo ELECTRE I
o Sistema de Expertos .
MANUAL
DEL USUARIO
< MODELOS >
Al entrar al modulo MODELOS se despliega el menu
principal
de esta fase, en la cual hay 8 opciones, 3 para modelos de aire 2
para modelos de agua 2 para ayudas .y una para terminar y salir de
MODELOS .
MODELOS DE DISPERSION DE CONTAMINANTES
aire
A ) GAUSSIANO : PUFF
B ) GAUSSIANO : ISOCONCENTRACION Y POSICION X,Y,Z
C ) GAUSSIANO : FUGAS Y DERRAMES
agua
D ) STREETER Y PHELPS : DBO-OD
E )
I .A .E .A .
: DESCARGAS TERMICAS
ayuda
1 ) ESCALAS GRAFICAS
(Modelos Aire)
2 ) CONSULTAS
T ) TERMINAR
OPCION ---->
DESCRIPCION:
OPCION A = PUFF
Al
teclear
primeramente
A entrara al modulo
PUFF
el cual
pide
el nombre del contaminante , luego tiene varias
opciones .
A) Correr el modelo
S) Salir
Al teclear la opcion A) el programa pide los datos
necesarios para ejecutarse . El programa ira desplegando los datos
tecleados en la parte superior de la pantalla . Alterminar de
capturar todos los datos se da la opcion de modificar los datos
dados anteriormente, al entrar a modificar, si no se requiere
modificar alguno solo teclee return .
Cuando no sea necesario
modificar ningun data teclear 'N' o 'RET' a la pregunta :
Modificar Datos (s/n) -->
En este momento se ejecuta el modelo con los datos
proporcionados, obteniendo la grafica y desplegando los datos en
la parte inferior de la pantalla.
Al dar return se despliega de nuevo las opciones A) y S)
si
se selecciona S) se saldra al Nivel General de Modelos anteriormente descr
e
g gHHH
2 gg gg g N g E ggggggg N
gg N g gggg ggg N X&YAl
En esta opcion existen 3 alternativas :
A: Concentracion Posicion X,Y,Z
B: Isoconcentracion
S: SAlir
La alternativa A pedira para medir la concentracion las
coordenadas X,Y,Z
. Y desplegara las desviaciones Sigma Y y Sigma
Z ademas de la Concentracion en el punto dado, las unidades de
la concentracion van desde miligramos/m3 hasta nanogramos/m3 que
se ajustan automaticamente dependiendo de la magnitud de la
concentracion en ese punto.Para esta alternativa es recomendable
seleccionarla despues de ejecutar la alternativa B ,si no es asi
se pedira ademas de las coordenadas las datos' que pide la
alternativa B.
El programa localiza en la cuadricula las coordenadas X,Y
proporcionales a la escala seleccionada en ayudas 1 ).
Al teclear la alternativa B se pediran todos los datos
necesarios para correr el modelo Gaussiano de Isoconcentracion.
Tambien pueden modificarse los datos.
Para este modelo es necesario esperar el resultado de la
distancia inicial y final dentro de las cuales se encuentra una
concentracion mayor o igual a la proporcionada en los datos.
Si la grafica es muy pequena o muy grande a la escala en la
pantalla, se puede seleccionar otra escala para X y Y saliendo
del modelo y seleccionar Escalas Graf i cas con la opcion 1 ).
Regresando al modelo y dar returns a todos los datos pedidos por
el programa,
ya que son almacenados en memoria siempre y cuando
no se seleccione otro modelo.
OPCION C = FUGAS Y DERRAMES
Con esta opcion se selecciona el modelo Gaussiano para Fugas
y Derrames, al igual que las opciones anteriores el modelo da las
alternativas de correr el modelo o salir de este.
MODELOS PARA AGUA OPCIONES "D" Y "E"
STREETER Y PHELPS
r
La opcion "D" ejecutara el modelo Streeter y Phelps.
Proporciona las siguientes alternativas :
A ) Correr el modelo.
B ) Calcular el DBO y OD en Posicion X.
C ) Escalas X.
S ) Salir.
La
alternativa
A ejecuta el modelo pidiendo primero los
datos necesarios y al terminar de capturarlos, el programa
muestra
la
grafica
automaticamente
en la pantalla del DBO y la OD
escala
la
Y de mg/litro para que
ajustando
grafica
la
aparezca completa en la pantalla .
La
alternativa
B despues de tener la grafica en
pidela coordenada X en Kms .
pantalla
y da coma resultado el valor del DBO
y la DO en ese punto, localizandolo en la grafica encerrandolo en
un circulo rojo.
La alternativa C proporciona varias escalas para el eje X y
al
seleccionarse una, si ya se tiene la grafica en pantalla
el
programa vuelve a hacer la grafica con la escala seleccionada.
a
L DESCARGAS
.g sti.g.g
La opcion E ejecutara el modelo de Descargas Termicas.
Proporciona las siguientes alternativas:
A ) Correr el modelo.
B ) Calcular la Temperatura en Posicion X.
C ) Escalas X.
S ) Salir.
La
alternativa
necesarios.
A
ejecuta el modelo pidiendo los datos
El
programa ajusta la escala Y de temperatura
automaticamente, igual que el modelo anterior.
La alternativa B despees de seleccionar la A pide la
Coordenada X en Kms . Y da como resultado la temperatura en esa
coordenada desplegando su valor numerico y la localiza en la
grafica encerrando el punto en un circulo rojo.
La alternativa C es semejante al del modelo anteriormente
descrito.
Para salir de este modelo teclear la alternativa S.
En la opcion 1)
OPCIONES
AYUDA
se encuentra la ayuda para modificar las
escalas en el eje Y y en eje X para los modelos Gaussianos de
Aire .
La opcion 2 ) selecciona a la rutina de Consultas la cual
muestra en pantalla las siguientes alternativas:
A ) Estandares de calidad de aire.
B ) Niveles maximos de concentracion Permisibles.
C ) Datos sobre sustancias peligrosas .
1 ) Descripcion de los Modelos.
2 ) Bibliografía.
S ) Salir .
Opcion ---->
La opcion A despliega Estandares de calidad de aire en el
siguiente fprmato:
Pais
mi1igr/m3
PPM
Ti amoe Ecemad i2
Para los contaminantes siguientes:
Bioxido de Carbono.
Bioxido de Nitrogeno.
Monoxido de Carbono.
Particulas Suspendidas.
La opcion B despliega Niveles Maximos de Concentracion
Permisibles con el formato que sigue:
Nombre del Contaminante
__ 1 Cantidad Max Perm_.
La
opcion C despliega un listado de Materiales
Unidades
Peligrosos
con el formato siguiente:
M _ tat ___ Ealioteae I I_a_a_4_4 _EEM
Y2_at ___4 _ 0 i
La opcion 1 ) Descripcion De Modelos Despliega el menu de
los
modelos mencionados anteriormente y en cada uno describe la
parte teorica.
El Menu que muestra es el siguiente :
D E S C R I P C I O N !
MODELOS
g
aire
A ) Gaussiano : PUFF
B ) Gaussiano : Isoconcentracion
C ) Gaussiano :
Fugas y Derrames.
agua
D ) Streeter y Phelps : DEBO y DO.
E ) I .A .E .A . : Descargas Termitas.
Opcion
y concentracion X,Y,Z.
E g
im
Al entrar al modelo KSIM el programa despliega el siguiente
menu :
K S I M
===========
A ) Capturar Datos Desde el Teclado.
B ) Capturar Datos De un Archivo.
C ) Desplegar los Datos.
D ) Correr el Modelo.
S ) Salir.
La opcion A pedira desde el teclado primeramente el numero
de competidores , que sera el orden de la matriz de Incidencia
que se tecleara dato por dato a la peticion desplegada en
pantalla alfaCi, j] = ? .
Luego pedira los pesos de cada competidor, y al final el
numero de periodos en que se va a correr el modelo . Esto tambien
sirve para el limite maximo en el eje X de la grafica.
La opcion B toma los mismos datos pero desde un archivo
tipo texto.
La opcion C desplegara la matriz de incidencia, capturada
anteriormente, asi como los pesos indicados.
La opcion D se encarga de ejecutar el modelo y despliega
las graficas de cada competidor con diferentes colores o
combinaciones de colores . Al dar return se pasa al menu descrio
anteriormente.
Para salir del modelo teclear "S" en el menu .
gula
DE
u g ua
BB
DE gLgni B
I.
Al entrar al Sistema ELECTRE, se muestra un menor donde se da
la posibilidad de hacer varias acciones entre las cuales se
encuentras
I) LECTURA EN FORMA INTERACTIVA.
2) LECTURA DE ARCHIVO.
3) GRABAR DATOS ACTUALES.
4) EJECUTAR EL MODELO.
5) MODIFICACION DE DATOS.
6) SALIR.
1 . Lgg
loe
EPA EPBMO
Imlm
BB 1 B y B
Al entrar con el Aumero uno, inmediatamente se cambia la
pantalla pidiendo al usuario el NUMERO DE ALTERNATIVAS que se
evaluarAn . El n&mero maje imo de alternativas es 15, cuando se
escribe un valor, pasa inmediatamente a la lectura de los NOMBRES
DE LAS ALETERNATIVAS, en caso de haber insertado un
primero
erróneo, la pantalla emite un sonido indicando error , debiendose
presionar cualquier tecla para inicializar a el campo a cero
luego poder reesrribir el n&mero .
Y
Al pasar a escribir los
Nombres de las Alternativas, el indicador en azul se posiciona
inmediatamente en el primer elemento (ALTERNATIVA 1) estando
listo
para que se pueda escribir el identificador de la
Alternativa 1 .
Se escribe normalente y en caso de error, se usa
la tecla de <BACKSPACE> que se encuentra en la parte superior
derecha
(normalmente est& dibujada una flecha en
inverso) .
sentido
Una vez que se ha escrito el nombre se puede avanzar
presionando la tecla <RETURN> o las flechas hacia arriba y hacia
abajo . No se avanzara a la siguiente sección hasta estar en la
61tima Alternativa y se presiona < RETURN>, lo cual significa que
puede haber correciones antes de salir, moví endose Anicamente con
las flechas .
El n4mero minima de Alternativas es 2.
Al pasar a la pantalla de E untg5 de
%%% t. 5
igualmente pide
el numero de Puntos de Vista a seleccionar (siendo entre 2 y 15),
posteriormente pide el NOMBRE DEL PUNTO DE VISTA, luego el PESO
del Punto de Vista, despues la Polaridad (+/-) dependiendo de si
el punto de vista entre mas crezca, resulte conveniente o
inconveniente para la evaluación ; el VALOR MAXIMO EN LA ESCALA a
aceptarse en la matriz de calificaciones y en los calificadores.
Luego el NUMERO DE CALIFICADORES EN LA ESCALA, O (cero) si no se
usan calificadores, al llegar a este campo mientras no se termine
con <RETURN> se pueden modificar algunos valores subiéndose con
las flechas, pero si se presiona <RETURN> y el valor del numero
de calificadores es cero, pasa al siguiente Punto de Vista, si
no, muestra en la pantalla los CALIFICADORES, se permite un
mAximo de 10, el primer campo es el NOMBRE DEL CALIFICADOR
(m&ximo 10 caracteres), y luego sigue el VALOR para este
calificador .
Al terminar de llenar la Sección de Puntos de Vistas se pasa
hacia la MATRIZ DE CALIFICACIONES entre las Alternativas
y
los
Puntos de Vista, mostrando en la parte inferior las opciones a
llenar en cada columna, si es numérica la entrada, se indica el
rango de valores en los cuales se puede llenar la casilla
correspondiente, si son Calificadores se mostrarán los posibles
nombres que se pueden elegir, no se aceptan nombres diferentes a
los seleccionados en la sección de Puntos de Vista .
Cuando se
escriba algun dato en una celda, al presionar <RETURN>
simplemente se acepta el valor y se queda en la misma celda, pero
cambiando el color a negro (indicador de celda llena)s si se
mueve con las flechas (arriba, abajo, derecha, izquierda) se pasa
a la localidad seleccionada, si se est& en algan limite la celda
no se moverá . Si el ntmero de Puntos de Vista sobrepasa el
námero de 6, al llegar a la parte derecha de la pantalla y
dar
una flecha hacia la derecha automáticamente estaremos en la
séptima colmma recorriendo la pantalla de visualización,
y
asi
sucesivamente en caso de tener mas valores hacia la derecha,
cuando se desee volver a la izquierda, simplemente se mueve la
flecha izquierda hasta llegar a la otra orilla de la pantalla y
hacer los recorridos automáticos . Para salirse, la matriz tiene
que estar llena (todos los valores en negro), y estar en la
dltima posición de Alternativas y
Puntos de Vista (esquina
derecha inferior).
Luego se leerAn los valores de 'p
"p" es el
es el indice de discordancia
indice de concordancia,
cual
es el valor con el
se
va
a
comparar
el
y
indice
de
discordancia siendo el s- sima oponente mas fuerte (normalemente
es con el primero (1)).
2. LECTURA DE ARCHIVO.
Al presionar el numero dos,
la pantalla pide el nombre
un archivo el cual fue anteriormente grabado .
de
Se pide el nombre
y en caso de no existir, manda un aviso de que el archivo llamado
no
existe .
Si todo es correcto inmediatamente lee las datos y
muestra el menu principal.
3. GRADAR DATOS ACTUALES.
Rara
la grabación de los datos actuales de una corrida
ELECTRE, simplemente
NOMBRE
DEL
ARCHIVO
se
presiona la opción tres,
a grabar,
se
y al finalizar regresa
pide
de
el
al menu
principal.
En caso de uno existir datos, manda un mensaje de error.
4. EJECUTAR EL MODELO.
Al presionar el numero 4, se ejecuta el modelo con los datos
actuales . En la pantalla se muestran las Alternativas Originales,
en el lado derecho, y en el lado izquierdo las Alternativas
Seleccionadas . En la parte superior derecha se muestran los
valores de P y Q que son los indices de concordancia y
discordancia respectivamente . Estos valores son normalmente
cambiados (en la Sección de Modificación de Datos), y volviendo
a correr el modelo,
los Pesos
de
los
también se cambian otros atributos como son
Puntos de Vista, y las Calificaciones entre las
Alternativas y los Puntos de Vista .
Para volver al mend
principal, oprimir <RETURN>.
5 . P~ODIEICBCION 2g DATOS.
Se pueden cambiar los Nombres de las Alternativas, los
Puntas de Vista y sus Atributos, las Calificaciones y los valores
de P, Q y S . Se muestra un menos para seleccionar . Si se elige el
numero 1 se pueden cambiar los Nombres de las Alternativas como
en la sección de la Lectura en Forma Interactiva . Al escoger el
numero 2 se elige un Punto de Vista y se muestran los valores de
los atributos respectivos a este Punta de Vista, pudiéndose hacer
los cambios requeridos . Con el punto 3 se pueden cambiar las
calificaciones en forma similar a la sección de lectura . El punto
4 modifica las valores de P, y los valores de P, Q estAn
entre O y 1 .
b.
06IDA.
Salir del modelo ELECTRE .
ELECTRE I
_________________________________________________________________________
IUMERO
---- DE ALTERNATIVAS:
-
1
~_
2 ._
_____________________________________________________________________
5 .-
___________________________ __________ __________________ ______________
3
4
6
7 .-
_____________________________________________
8
9
_______________________
{)~_ _____________________________________________________________________
1
2 ~_
3
_____________________________________________________________________
4 .- _____________________________________________________________________
5 .- _____________________________________________________________________
gmgsg pg
egmg gg
:
UNIQE Pg SagTA :
eggg:
^~_
_____________________________
_____________________________
______
__________
______
__________
_______________
_____________________________
______
__________
_______________
4-- _____________________________
______
__________
_______________
______
__________
_______________
______
__________
_______________
__________
_______________
__________
_______________
5-- _____________________________
6-- _____________________________
7 ._ _____________________________
8-- _____________________________
9-- _____________________________
0-- _____________________________
~=
._._ _____________________________
_____________________________
._~_ _____________________________
_____________________________
_____________________________
______
______
______
______
______
______
______
______
______
__________
__________
__________
__________
__________
__________
__________
_______________
_______________
_______________
_______________
_______________
_______________
_______________
_______________
I
I
.4
O,o
44tt
I-°
M
+~
ü_
1
CJ
*-~
O..
1 1 1
I 1 I
I-- I I I
1 I I
iI
l
I
t
1
I
l
I
I
i
I
f
I
I
iI
1
I
I
I
I
I
I
I
I
°
eel
+-+
+-+
OI
0-
JI
OI
0.
1
I
i
I
1
U1
►-+I
0.81I
JI
dl
UI
~
.0
0
hl
ü.
COI
WI
01
Cl
Ulee
I
QI
JI
I
I
o-4 CI
JI UI
QIU1I
UI LW
AI
I
I
Í Í
I 1
I-°
CO
0.
1
C]1
al
WI
I
1
0+
0_
eel
~I
LLI
1
1
I
I-I I
QI
i
I
Cl
JI
I
I
o
i
l
I
l
I
i
I
~-"
t
l
I
i
1
L~t
I
a
I
l
l
i
l
l
t
i
1
o e a
-+ C' I Nl
I
i
i
l
i
1
I
l
l
i
i
1
a
t\ CO Q` {}
I
l
l
l
l
I
i
l
l
l
t
e e e
1
l
i
l
l
1
I
i
l
l
l
1
o
.ri
I
l
l
i
i
1
I
l
i
l
l
o e
N t .) d-
I
l
i
i
l
I
I
l
i
i
l
a e
I
f
d'
l
I
e
it7
F+I
t'1
tti
0.
UI
Cd
MÍ
0.
~
I
1
I
I
I
I
° -°
°
•
I
I
I
I
I
I
I
I
1
I
1
l
1
1
1
1
1
1
1
1
i
I
-° -- -° -- -°
I
I
I
I
1
I
iI
°
I
I
1 I
i1 l1 1
1
° -- - °
1 1 1
I i I
t i l
1 I i
iI II II
I I I
I I I
1 1 1
I 1 I
t 1 1
1 I I
I
I
I
I
I
I
I
1
1
1
1
1
1
1
1
1
1
1
1
I
1
I
I
I
I
ilI Iii
1
1
1
I
1
I
1
1
l
1
t
1
1
1
1
I
I
°
I 1
I I I
1 1 1
1 1 1
- ° -- -- .
1 1 1 1
i Il II i
i1 1 I 1I
°
°
I I 1I
I 1 I I
I I I I
I I I I
I1 I I
i I1 I1 I
1
1
I I I 1
I
I
i
1
1
1
1
1
1
1
I
I
1
I
I
I
°
I
1
°
1
l
I
I
1
f
I
II
I I
I I
I 1 I
° -- -I I I I
I I 1 I
I I 1 1
I 1 I 1
I
I
I
I
I
I
I
I
I
I
I
I
I
I
Í
I
Í
I
Í
I
Í
I
Í
I
Í
I
Í
I
Í
I
Í
I
Í
I
Í
1
I
1
I
I
Í
1
I
I
I
I
I
I
1
I
I
I
I
I
I
I
I
I
i
1
I
I
-° -- -° -- -°
I I
I I
l
I I
°
I I
I I
°
I
I
l
1
I
I
-I
I
l
I
I
i
-- °
I 1
I 1
l l
I I
1 I
I I
°
1 I I I
I I I 1
l l i l
I I I I
° -°
1 I II
I I I I
I
I
l
I
1
I
I I I
I 1 I
i1 lI tI
°
I I
I I I
i i l t1 l l l l l l i i l l l i
i --I -°I -° 1 I I 1 I I I I I 1
I
I 1 I I I I I I I I I I I
i I 1 I I I I I I I I I I I I I
I I f I 1 1 I l I I l i 1 1
I I I I I I I I 1 I I I I I I I
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 t
I I I I I I I 1 I I I I I I I I
1 1 I I I i i i i I I I i I I I
I I I 1 I I 1 I I I 1 I I I I I
I
°
1 1 I I I 1 I I I I I I I I I I
1 I 1 I I I I I I I I I I I I I
I 1 I I I I 1 I I 1 I I I I I
I 1 I I I I I I I 1 I I I I I I
°
° -I i I I I I I I I I 1 1 I I 1
I I I 1 I I I I 1 1 1 1 I I 1
I I I I I I I I I i l I I I I
I I 1 I 1 1 1 I I I I 1 I I I
._-°
°-I I I 1 I I 1 1 I I 1 I 1 I I
I I i 1 I 1 I I I I I I I 1 I
1 I I 1 1 1 1 I I I I I I 1 I
I I I I I I 1 1 I I 1 1 I I I
- -- -- -- -- °
° -i I I 1 I I I 1 1 1 1 I I I I
I I I 1 1 I 1 1 1 I I 1 I 1 I
1 1 I I I I I I I I 1 1 1 I I
I I I I I I I 1 I I I I I 1 I
- -- -- -- -- -- -- -- -- -- -- -- - -I i 1 I I 1 I I I I 1 1 1 1 I
I I I I I I 1 1 I I I 1 1 I I
I I I I I I I I 1 1 I 1 1 I I
I 1 I I I I I I I I I 1 I I I
F+ Cd PI et It1 d) E` CO CP . 0 *+ C4 MI et 0
~ .=s .-a +y .-o .4
Ca
1
I
I
I
i
1
I
I
1
1
I
I
1
I
I
I
I
I
I
I
i l
i I
I I
I I
11 II 11
gula
DEL
USUARIO DEL SISTEMA DE EXPERTOS
Al seleccionar la
opción del
sistema de expertos en el SIRIA, el
sistema despliega un heraldo y pregunta par los siguientes tres
archivos de trabajo:
Knowledge base = siria .dat
Record knowledge base = a .a
Record of the consultation = b .a
Al desplegar el sistema "Knowledge base" indica que requiere el
archivo donde se encuentra la base de conocimientos . En este caso
es "siria .dat" . "Record knowledge base" se refiere al nombre del
archivo donde se copia la base de conocimientos aqui puede ir
cualquier nombre de archivo si el archivo existe, su contenido
es borrado antes de copiar . En este ejemplo el archivo es "a .a".
Al desplegar el sistema "Record of the consultation" se solicita
el nombre del archivo donde se guardarA un registro de la
consulta al sistema de expertos . En el ejemplo el archivo es
"b .a" . Cada uno de estos archivos se puede desplegar o imprimir
posteriormente . Para
desplegar un archivo teclear "type arch"
donde "arch" debe sustituirse por el nombre correspondiente.
Ejemplo : "type b .a" . Para
imprimir teclear "copy arch pro ;",
donde "arch" se sustituye por el archivo requerido . Ejemplo:
"copy b .a prn :" .
Despu&s de suministrar los nombres de los archivos, el sistema
efectúa una serie de preguntas, las cuales forman la consulta a
la base de conocimientos.
De acuerdo con el tipo de preguntas la respuesta esperada es:
1)
Una
medida de certidumbre de la aserción, esto es un numero
entero entre -5 a
+5 que significa lo siguiente:
"+5" significa "La aserción es completamente cierta".
"-5" significa "La aserción es seguramente falsa".
"O H
significa "No se sabe si la aserción es cierta o
falsa"
"2" significa "No hay una seguridad completa de que la
aserción sea cierta"
"4" significa "Hay una seguridad casi completa de que la
aserción es cierta"
etc.
2)
Un valor de la cantidad requeridas esto es un número simple.
3)
Número de intervalos de la cantidad
de la cual se
dar&n los
factores de certidumbre seguido por los correspondientes
n6meros de tripletas . Cada tripleta consta
<valor inferior
valor superior
medida de certidumbre>
Si la respuesta no esta dentro de los
pregunta,
de:
el sistema despliega un mensaje de
lineamientos
de la
error . El usuario
puede teclear una serie de comandos para modificar o investigar
sobre la consulta . El comando de solicitud de ayuda "$H"
despliega en la pantalla todos los comandos del sistema, los
cuales son:
$C
Se despliega el status de u: nodn seleccionado.
$E
Se da
una explicación de la
aserción
seleccionada
desplegando las evidencias que apoyan o refutan la aserción.
$D
La investigación de la meta actual se termina y se inicia la
investigación de la meta con mayores posibilidades de
ocurrenci a.
$F El sistema es forzado a aceptar una nueva meta.
SG
Se despliega la meta actual del sistema.
$l Información general del sistema se despliega acerca de las
metas, nodos, reglas, reglas de contexto de la red de
inferencias.
$M El rango de pesos considerado para la aserción actual es
modificado.
$V
Se permite la entrada de información voluntaria.
$P Los resultados de la consulta se imprimen y el sistema se
reinicializa.
$S
Los resultados de la consulta se imprimen y la consulta
termina.
$T
Se despliega la linea de razonamiento actual.
$H Comando de ayuda del sistema, se despliega los comandos del
sistema e indicaciones para responder las preguntas del
sistema.
$$
Se despliega la versión del sistema .
A
ANEXOS
ANEXO 1.
PROGRAMAS FUENTE MODULO DE INFORMACION
procedure LeeEscribeReg6ral(CHtbd :char);
var NueR :stringti0];
begin
Reg ral .tbd := CNtbd;
if swBajas then
begin
textcolor (4) ;
textbackground(i4);
write(apf8 + l,");
textcolor(il);
textbackground(0);
end;
case Reg6ral .tbd of
'A' :begin
read(archtbd,Regórall ;
with Reg6ral .edgaV do
( biro de Actividad }
begin
write(Clave:2 ," :3);
write(RangoI,' ' :(7-length(Rangol)));
write(RangoF," :(8-length(RangoF)));
write(Noesiro);
end;
end;
'B' :begin
read{archTbd,Reg6ral) ;
with Reg6ral .edcaV do
( Clase de Actividad }
begin
write{Clave
,' ' :7-length(Clave));
write(Claveóa :2,' ' :1);
write(bomAcct);
end;
end;
'C' :begin
read(archTbd,Reg6ral) ;
( Eeision de Contaminante }
with Reg6ral .edecV do
begin
write{'
',ClaveCa,' ' :(15-length{ClaveCa)));
write(ClaveCont :2," :11);
str{CantEa :6 :3,Nu0Rl;
write(NuiR,' ' :6);
write(Unidad);
end;
end;
'J' :begin
read{archTbd,Reg6rall ;
I Lista de Contaminante I
with Regóral .edlcV do
begin
write(' ' :5,NumCont :2,' ' :51;
write(NomCont,' ' :(45-length(((onCont)I);
write{EdoFisCont);
end;
end;
'F' :begin
i
read(archTbd,Reg6ral) ;
with Reg6ral .edsgv do
begin
( Efectos en la Salud 3
write(NusCont :3,' ');
wrrite(NoeCont,' ' :(43-length(NomCont)));
write(CantPPN :4 :3,' ');
write(Cant19g :4 :3,' ');
writeln(4lbserv);
textcolor(14);
gotoxy(1,whereY+11 ;
write(EfectSal);
textcolor(11);
end;
3
end;
'5' :begin
read(archTbd,Reg6ral) ;
( Sustancias Peligrosas ]
with RegGral .edspV do
begin
write("asNum :4,' '1;
write(NomProdPel," :(40-IengthiNomProdPel))l;
write(CantlinN :4 :3,'
writetCant(linN:4 :3);
end;
end;
'I' :begin
read(archTbd,Regsral) ;
with Reg6ral .edctrV do
'l;
( Controladores 3
begin
writetNum :3,' ');
write(Nombre," :440-length(Nombrel)1;
if Numpje[1100 then write(Rumpje[1] :4 :3,'
if Numpie[2100 then write(Numpjel2] :413,'
if Nunpie[3100 then write(Numpje[3] :4 :3,'
if liuepje[4]{>0 then write(Nuepje[41 :4 :3,'
end;
end;
end ; í case 3
end ; t LeeEscribeReg 3
(
PRíOCEDIIRE SCRGLICHtbd:char) ;
var reng :integer;
'1;
'l;
');
'l;
3
4 Procedimiento Para Nacer Scroles 3
procedure PANTA ; ( Despliega Registros desde 'api' hasta 'apf' 3
begin
textbackground40);
clrscr;
gotoxytl,1);
textcolorill);
i :=api;
repeat
seekiarchTbd,i);
apfB :=i ;
LeeEscribeRegSral(CHtbd);
gotoxy(l,nhereY+1);
is=i+1;
until ti >= apf);
end;
procedure DESPTEXTOS;
var dato :stringtl5];
x,err :integer;
repet :boolean;
procedure NUEVE;
begin
textcolortll);
nindon(1,RENI,8O,RENF);
gotoxytl,l);
case corre of
'B' : if swBajas then
begin
sindon(1,20,80,22);
if (Mb < MaxB-1) then
begin
Nb := Nb + 1;
repeat
al;
gotoxy(1,2);
textBackground(0);
cireol;
let(5,3,15,4,' (Retl para Salir ');
let(1,2,15,4,' Borrar Registro I ---) ');
readln(dato);
if lengthtdato) ) 0 then
begin
repet : :false ;
( Valida Num . de Begs. Repetidos }
val(dato,x,err);
if err=0 then
for i :=1 to Mb-1 do
if x = Borrtil then
repet :=true;
if (Not repetí and (x ) 0) and ix (= lief + 1) then
BorrtMbl := x
else err : : 1 ;
end
else Nb : : Nb - í;
textbackground(0);
until (err = 0) or (lengthtdato) = 0);
end
else lett5,3,15,4,"S^S+' Maximo 1 de Bajas alcanzado, Seleccione 1 ESC l ');
end;
'B' : if Calif + (rent)) (= lief) then
begin
apf :=apf+(reng);
api :=api+(reng);
PUNTA;
end
el se
begin
if apf<>linf then
begin
apf :=lief;
if (1i®f-(reng)) >= 0 then api :=linf-(reng)
else api :=0;
PUNTA;
end;
end;
'E' : if apf<>li®f then
begin
if reng ( lief then api :=lief-(reng)
else api :=0;
apf :=lief;
PUNTA;
end;
'H' : if api<>0 then
begin
api :=0;
if reng < liaf then apf :=reng
else apf :=linf;
PUNTA;
end;
'U' : if (api - (reng) >= 0) then
begin
api :=api-(reng);
apf :=apf-(reng);
PUNTA;
and
else
begin
if apiO 0 then
begin
api :=0;
if (li®f) > (reng) then apf :=(reng)
else apf :=li®f;
PUNTA;
end;
end;
'd' : if (apf ( lief) then
begin
apf :=apf+1;
api :=api+i;
del ti ne;
if op='F' then
begin
delLine;
delLine;
delLine;
end;
if op='F' then
gotoxy(1,15)
else gotoxy(1,reng+l);
seek(archTbd,apf);
apfe :=apf;
LeeEscribeReg6ral(CHtbdi;
end;
'u' : if (api > 0) then
begin
api :=api-l;
apf :=apf-1;
insLine;
if op='F' then
begin
insLine;
insLine;
insLine;
end;
seek(archTbd,api);
apfB :=api;
LeeEscribeReg6ral(CHtbd);
end;
end ; ( del case )
end ;
( llueve 3
begin
( DESP TEXTOS l
corre :='u';
window(1,23,80,25)}
let(01,1,4,15,chr(2411;
let(15,1,4,15,chr(25));
let(29,1,4,15,'PgUp');
let(49,I,4,15,'PgDn');
let(69,1 1 4,15,'ESC');
let(10,30,15 5 'Hoee');
let(38 5 3 9 4,15,'End');
if suBajas then
let(02,1,6,0,'[ 1 linea l');
let(16,1,6,0,'[ I linea
1et(33,1,6,O,'[ 1 Pagina '+chr(24)+' 1'1;
let(53,1,6,0,'I 1 Pagina '+chr(25)+' 3');
let172,1,6,0,'ISalir
let(14,3,6,0,'[ Inicio
let(33,3,6,0,'[ Fin 1'1;
begin
let(50,3,4,15,'Del');
let(530,6,0,'I Borrar 3'1;
end;
while corre()chr(27) do
begin
corre :='u';
window(1,23,80 5 25);
( Lectura de Option )
gotoxyt79,3);
read(K8D,corre);
if ord(corre1=27 then
if keypressed then
begin
read(KBD,corre);
if ord(corre) in [71,72,13,79,80,81,831 then
begin
case ord(corre) of
71 : corre :='H' ;
72
corre :='u' ;
73
corre :='U' ;
79
corre :='E' ;
80 : corre :='d' ;
81 : corre :='D' ;
( Hone
}
f Flecha arriba }
( Pgilp
}
( End
}
( Flecha abajo
( PgDn
( Del
}
}
83 : corre :='B' ;
}
end;
NIEVE ;
( proc para hater scroles }
end;
end ;
end;
end ; ( Proc . DESP TEXTOS }
begin
( proc SCROL }
Reg8ral .tbd := CHtbd;
limf :=FileSize(archTbd) -l;
if op='F' then reng := 4
else reng := RENF - RENI;
if (swBajas) and (op='F') then reng
3;
api :=0;
if liof t reng then apf :=lief else apf : : reng;
window(1,RENI,80,RERF1;
gotoxy(i,1);
PANTA;
OESPTEXTOS;
if Not swBajas then close(archTbd);
windowt1,1,80,25);
textbackground(0);
clrscr;
end ;
(
i
SCROL }
}
{SB-}
PROGRAII
const
Slanco80='
NaxB = 101;
}
{
{
Estructura de Datos de las Tablas
}
Type
edga = record
{ A ESTRUCTURA DE GIROS DE ACTIVIDADES }
Clave
: integer;
RangoI : string15l;
RangoF : stringl5l;
NosGiro : stringE601;
end;
edca = record
{ D ESTRUCTURA DE CLASE DE ACTIVIDADES }
Clave
: stringl51;
Clave6a : integer;
NoiAct : stringl70];
end;
edec = record
ClaveCa
t C ESTRUCTURA EMISION DE CORTAN . }
: stringl51;
ClaveCont : integer;
CantEe
: real;
Unidad
: stringilll;
end ;
edlc = record
NueCont
NoeCont
{ D
ESTRUCTURA LISTA DE CONTAM . }
: integer;
: stringl401;
EdoFisCont : stringl51;
end ;
{ E ESTRUCTURA'S DE REGLAMENTOS }
edtab = record
Clase : stringl51;
ph
Teap
od
be
ag
sd
end;
ed3r = record
nua
:
:
:
;
:
:
real;
real;
real;
real;
real;
real;
: integer;
PesoProc : real;
IndNueva : real;
IndExist : real;
end;
edagua = record
Nue
: integer;
Noebre : string[501;
DA
: real ;
Tex =
DI
D11
DIII
end;
record
real;
: real;
: real;
lineaN : string(BO];
end;
edreg = record
case reg : char of
'1' :
'2' :
'3' :
'4' :
(PolGas : ed3r);
(Linea : Tex);
(Agua
: edagua);
(Tabla : edtab);
end;
edsq = record
NueCont
NaCont
CantPPN
( F
ESTRUCTURA
DE SUSTANCIAS DATOS ]
: integer;
: string(40);
: real;
CantNg
: real;
Obsery
: string(15];
EfectSal : string12401;
end;
edsp = record
{ 6
integer;
string(40I;
real;
Noe
NoaProdPel
Cantl(inN
CantNinN
end ;
ESTRUCTURA DE SUSTANCIAS PELIGROSAS ]
: real;
(H ESTRUCTURA DE EVA). PROYECTOS }
edctr = record
Hue
Noebre
NuePje
( I ESTRUCTURA DE CONTROLADORES }
: integer;
string(301;
arrayll . .41 of real;
end;
(
1
TipoBaseDatos = record
{ REGISTRO HAAESTRO ]
case tbd : char of
'A'
( edgaV
edga );
'B' : ( edcaV
edca );
'C' : ( edecV
edec );
'D' : ( edlcV : edlc );
'E'
( edregV : edreg );
'6' : ( edspV : edsp );
'F'
( edsqV : edsq
'H' : ( edepY : edep ) ;
'I'
( edctrV : edctr ) ;
(
}
end;
{
]
RegCpx = record case ripo :char of
(NueEnt,Rangolent,RangoFent : integer);
'R' : (RuiRea,Rangolrea,RangoFrea : real );
'S's (Sir : string124o3 ; long : integer ;);
end;
lin = stringlBOl;
var dir,arch,cocando,lec,linea,non,nooT,noaD,linT : lin;
letctr6,letctr2,letctr3,letctr4,letctr5 : lin;
Caopo,i,j,k,apf,apfD,api,liaf,RENI,REI(F : integer;
RCaopos,Rb : integer;
Burr : array[l . .MaxBl of integer;
claveE,clavel,io,op,ch,corre : char;
VarCpx : RegCpx;
suBajas,CaobiaR,CaebiaC : boolean;
Regeral : TipoBaseDatos;
archTbd : file of TipoBaseDatos;
archcop : File of TipoBaseDatos;
PROCEDURE LET(x,y,color,fondo :integer ; osg :lin);
begin
gotoxy (x, y) ;
textcolor(color);
textbackground(fondo);
write(®sg);
end;
PROCEDURE LIB;
begin
textbackground(0);
clreol;
end;
PROCEDURE AL;
begin
erite("6);
end;
PROCEDURE AbreArch(archi :char ;var io :char);
begin
Reg6ral .tbd :=archi;
case archi of
'A' :begin
arch .='6IROACT .DAT';
noo:='biro de Actividades';
end;
'B' :begin
arch :='CLASACT .DAT' ;
noo :='Clasificacion de Actividades';
end;
'C' :begin
arch :='LISTCDH .DAT';
non :='Lista de Contaminantes';
end;
'D' :begin
arch :='EHISCDH .DAT';
nom :='Envision de Contaoinantes';
end;
'E' :begin
end;
'F' :begin
arch :='EFECSAL .DAT';
noes='Efectos de Sustancias en la Salud y el Aabiente';
end;
'S' :begin
arch :='FACRIES .DAT';
non :='Factores de Riesgo de Sustancias Peligrosas';
end;
'H' :begin
noa:='Evaluacion de Proyectos';
end;
'I' :case clavel of
'A' :begin
arch :='CTRAID.DAT';
non:='A : Controlador Contaninacion : Proceso de Intercanbio Ionico';
end;
'8' :begin
arch :='CTRAFR.DAT';
noo:='8 : Controlador Contaninacion :
end;
'C' :begin
arch :='CTRACF.DAT';
noa :='C : Controlador Contaninacion :
end;
'D' :begin
arch :='CTRALF .DAT';
non :='D : Controlador Contaninacion :
end;
'E' :begin
arch:='CTRALF .DAT';
noo :='E : Controlador Contaninacion :
end;
'F' :begin
arch :='CTRATP .DAT';
noa :='F : Controlador Contaninacion :
Par Filtros Rociadores';
Por Absorcion de Carbon Activado';
Por radio de Lagunas Facultativas';
En Planta Piloto Intercambio Ionico';
Tratamiento Primario';
end;
'S' :begin
arch :='CTRATF .DAT';
noa :='6 : Controlador Contaninacion : Tratamiento Secundario';
end;
'H' :begin
arch :='CTRAPF .DAT' ;
nom:='H : Controlador Contamination : Proceso Lodos Activados';
end;
'I' :begin
arch :='CTRAFPT .DAT';
nom :='I : Controlador Contamination : Filtration como Proceso Terciario';
end;
'J' :begin
arch :='CTRAFCC .DAT';
nom:='J : Controlador Contamination : Filtration seguida de Coagulation de Cal';
end;
'K' :begin
arch :='CTRAPP .DAT';
noo:='K : Controlador Contaminacion : Por Procesos Ouimicos';
end;
'1' :begin
arch :='CTRATSP .DAT';
nom :='L : Controlador Contamination : En Tanque de Sedimentation Primaria';
end;
'R' :begin
arch :='CTRAAC.DAT';
nom :='R : Controlador Contamination : Remotion Metales Pesados por Adsorcion';
end;
'H' :begin
arch :='CTRAHR .DAT';
noma='ti : Compuestos Organicos Posibles Carcinogenicos NO Reducisos por Lodos Activ .';
end;
'O' :begin
arch :='CTRPTP.DAT';
noma='0 : Controlador Contaminacion-Das : Por Diversos Procesos';
end;
'P' :begin
archa='CTRPTP .DAT';
nom :='P : Controlador Contaminacion-Particulas : Branulometria';
end;
'9' :begin
arch :='CTRPTP.DAT';
nom :='Q : Controlador Contaminacion-Particulas : Diferentes Tratamientos';
end;
'R' :begin
arch :='CTRTPC .DAT';
non :='R : Controlador Contaminacion-Particulas : De Calderas de Carbon';
end;
end ; { case 'I' }
end ; { case archi }
getdiri3,dir);
if idir='C :\sedue\dbase') or (dir = 'C :\SEDUE\DBASE') then
begin
assigniarchTbd,'C :\SEDUE\ARCHIVOS\'+arch);
{EI-I resetiarchTbd) ; {3I+)
end
else
begin
assign tarchTbd,'8 :\ARCHIVOS\'+arch);
0I4 resetiarchTbd) ; (11+)
end;
if iioresult{>0) then
begin
if liof>'A') then
begin
io•='1'•
leti1,24,4,0,1"6+'E1 archivo '+arch+' No se encontro (RET>');
read In;
end
else
begin
io : = 0';
rewriteiarchTbd);
end;
end
else io:='O';
end ; d PROC . AbreArch )
PROCEDURE LiepiaRegóral(CHtbd :char);
begin
RegOral .tbd :=CHtbd;
with RegOral do
case tbd of
'A': with edgaV do
begin
Clove : : 0 ;
NoaGi ro : _";
RangoI := '
';
RangoF := '
for is=l to 60 do NooOiro :=Noa6iro + ";
end;
'B': with edcaY do
begin
clave : : " ;
clave6a :=0 ;
NoaAct :=" ;
end;
'C': with edecY do
begin
ClaveCa := " ; ClaveCont :=0 ; CantEa :=0 .0 ;
end;
Unidad :=" ;
'D': with ed1cV do
begin
NuaCont :=0 ; NoaCont := " ; EdoFisCont := " ;
end;
'F' : with edsgv do
begin
NuaCont := 0 ; NonCont := " ; CantPPN:=0 .0; CantNg :=0 .0 ; Observ :=" ;
EfectSal := Blanco8O + Blanco80 + BlancoBO + '
';
end;
'6' : with edspV do
begin
Noa:=O ; NoaProdPel :=" ; CantNinN :=0 .0 ; CantNinN:=0 .0 ;
end;
'I' : with edctrV do
begin
nun:=0;
Nombre: _";
for i :=l to 30 do Hombre :=Hombre + ' ';
for i :=1 to 4 do NuoPjeli] :=0 .0;
end;
end;
end;
PR CEDURE OpcionesCtr;
begin
textbackground(0);
cirscr;
LET(10,1,4,14,' CONTROLADORES
DE CONTANINANTES');
LET(7, 3,14,0,'
Eficiencia en Controladores de Contaeinantes en aguas residuales');
LETt1, 4,11,0,' A : Por Proceso lonico');
LET(7, 5,11,0,' B : A troves de Filtros Rociadores');
LET(7, 6,11,0,' C : Por Absorcion con Carbon Activado ');
LET17,07,11,0,' D : Por radio de Lagunas Facultativas 'I;
LET (7,08,11,0,' E : En una planta piloto de Intercarbio lonico ');
LET(7,09,11,0,' F : Por Tratamiento Prirario ');
LET(7,10,11,0,' G : Por Tratamiento Secundario ');
LET(7,11,11,0,' N: Por Proceso de Lodos Activados
LET(7,12,ll,0,' I : Por Filtracion coro proceso terciario ');
LET(7,13,11,0,' J : '%etales reoovidos' Por Filtracion seguida de Coagulacion con Cal
LET(7,14,11s0,' K : Por Procesos Ouinicos ');
LETI7,15,11,0,' L : Posibles Cantidades par Sedirentacion Primaria ');
LET(7,16,11,0,' N : Par Absorcion de Carbon ');
LET(7,17 ;11,0,' N : Compuestos NO Reducidos Por Proc . de Lodos Activados');
LET17,18,14,0 '
LET(1,19,11,0,'
LET (7,20,11,0,'
LET(1s21,11,0,'
LET(7,22,11,0,'
Controladores de Contaeinantes Gaseosos y ParticuIas');
0: Gaseoso : Par Diversos Procesos ');
P: Particulas : En Funcion de Granuloretria .');
0 : Particulas : Dispositivos de Tratamiento de Estas .');
R : Particulas : Eficiencia y Costo en Calderas de Carbon');
repeat
LET(16,24,6,0,' Opcion ----> '1;
read(KBD,claveI) ;
clavel :=upcase(claveI);
writetclavell;
until clavel in ['A' . .'R'];
textbackgroundt0);
end ; t opciones Ctr 3
PROCEDURE OPCIONES;
begin
LET(17,03,11,0,' A : Giro de Actividades 'l;
LET(17,05,11,0,' B : Clasificacion de Actividades ');
LET(17,07,11,0,' C : Lista de Contaminantes '1;
LET(17,09,11,0,' D: Eaision de Contaminantes ');
LET (17,11,11,0,' E : Reglarentacion de Cantidades y Concentraciones ') ;
LETI17,13,11,0,' F : Efectos de Sustancias en la Salud y el Ambiente
LETI17,15,11,0,' S : Factores de Riesgos de Sustancias Peligrosas ');
LETI17,17,11,0,' H : Datos Basicos sobre Proyectos ');
LET(17,19,11,05 ' 1 : Dispositivos de Control '1;
LET{17,21,15,01 3 ' S1 Salir ');
repeat
LET{20 1 23,6,0,' Opcion ----> ');
readiKBD,op) ;
op :=upcase{op);
write(op);
until op in ['A' . .']','S'];
if op='1' then OpcionesCtr;
end;
PROCEDURE Capta{X,Y :integer ;Tipo :char ; var ValRet :RegCpx);
var Valstr :string{2401;
err :integer;
ch :char;
Procedure EscLee;
begin
Ca©biaR :=true;
write{archTbd,Reg6ral);
seek{archTbd,apf);
read{arcbTbd,Regóral);
seeklarchTbd,apf);
Campo :=1;
end;
begin
ValRet .Tipo :=Tipo ;
{ Se declara el tipo al Registro }
Valstr :=";
gotoxy{X,Y);
textbackground(0);
ch :='t';
corre : : 'i';
repeat
caabiaC: :false;
caibiaR: : false;
read(kbd,ch);
if ord{ch)=27 then
begin
{ ESC }
if keypressed then
begin
read{KBD,ch);
case ord{chl of
71 : if apf > 0 then
begin
apf : : O ;
{ Home }
EscLee;
end
else al;
72 : If Caspo > I then
begin
caehiaC :=true;
{ Flecha arriba )
Carpo :=Caspo-1;
end
else al;
73 : if (apf ) 0) then
( PgUp
)
begin
apf :=apf-l;
EscLee;
end
else al ;
75 : if twhereX-1 >= X) then { Flecha lzq .
begin
gotoxy(wherex-1,wherey);
writel");
)
gotoxy(wherex-10herey);
delete(Valstr,length(Yalstr),I);
end
else if twhereY-I >= Y) then
begin
gotoxy(80,whereY-1);
write(");
gotoxy(80,whereY-l);
delete(Valstr,length(Valstr),1);
end;
77 : corre :='I' ;
79 : if apf ( lief then
( Flecha Derecha )
t End
)
begin
apf :=lief;
EscLee;
end
else al;
80 : If Capo < Rasps then ( Flecha abajo )
begin
caebiaC :=true;
Caspo:=Carpo+1;
end
else al;
81 : if tap ( lief) then
begin
apf :=apf+1;
EscLee;
end
else
{ PgDn
)
begin
caebiaR :=true;
Campo :=l;
apf := apf + 1;
lief :=lief + l;
write(archTbd 5 Reg6ral);
LiepiaReg6ral(op);
end;
83 : begin
gotoxy(X,Y);
Valstr :=";
clreol;
( Del
}
end;
end ; C case }
end ;
{ if keypressed }
{ Si es Esc }
end
else
if ord(ch)=8 then
{ Flecha Para
begin
if (whereX-1 >= X) then
Borrar }
begin
gotoxy(wherex-1,wherey);
write(' ');
gotoxydwherex-1,wherey);
delete(Valstr,length(Valstr),I);
end
else if (whereY-1 >= Y) then
begin
gotoxy(80,whereY-1);
write(' ');
gotoxy(80,uhereY-1);
delete(Valstr,length(Valstr),1);
end;
end
else
if Tipo = '1' then
begin
if (ch in 1'0' . .'9','-','+'1) and (length(Valstr) ( 6) then
begin
write(ch);
Valstr :=Valstr + ch;
end
else al;
end
else if
Tipo = 'R' then
begin
if (ch in
begin
write(ch);
Valstr :=Valstr + ch ;
and (length(Valstr) ( 15) then
)
end
else al;
end
else if Tipo='S' then
begin
if Not (ord(ch) in C0 . .31]) then
begin
write(ch);
Valstr :=Valstr + ch;
end;
end;
if ( ord(ch) in (13,27] ) or CambiaC or Cambia)) then
begin
err := 0;
if length(valstr) > 0 then
with ValRet do
if Tipo: 'I' then val(Valstr,NueEnt,err)
else if Tipo='R' then val(Valstr,NueRea,err)
else if Tipo ='S' then
begin
if ord(Valstr[length(Valstr)]) in (0 . .33J then
delete(Valstr,length(Valstr),1);
Str :=Valstr;
err :=0;
end;
if ord(ch)=27 ( ESC solo }
then corre:='S'
else
t Return )
if (ord(ch) : 13) and (err=0) then
begin
if (Cagro < NCaepos) then
Campo :=Campo + 1;
cambiaC: :true;
end;
if err<>0 then al;
end ;
until icorre='S') or cambiaC or cambian;
end;
t
>
(
SCRBL(CNtbd :char) ;
(
LeeEscRegóral(CNtbd :char) ;
}
{SI RUTINAS.PAS}
}
e
PROCEDURE BAJAS ;
( Procedimiento para dar de Bajas }
procedure BorraRegArch;
var FinArch :integer;
begin
getdir(3,dir);
if (di g _ 'C :\sedue\dbase') or (dir = 'C :\SEDUE\DBASE') then
assign(archcop,'C:\SEDUE\ARCHIVOSIIUTRCIOH .DAT')
else assign(archcop,'B :IARCHIVOS\IUTRCIOH .DAT');
reurite(archcop);
flush(archcop);
seek(archcop,01;
. ,
j .-l.
FinArcb :=FileSize(archtbdl-1;
for is O to FinArch do
begin
seek(archtbd,il;
if (01 =
j ; =j+(
else
begin
Borrtjll
then
read(archtbd,Reg6rall;
write(archcop,Reg6ral);
end;
end;
gotoxy(3,22);
write(' E1 Archivo Modificado Tiene ',FileSize(archcop),' Registros
readin;
close(archcopl;
close(archtbd);
erase(archtbd);
if (dir = 'C :\sedue\dbase') or (dir = 'C :ISEDUE\DBASE') then
rename(archcop,'C :\SEDUEIARCHIVOSI'+arch)
else renaoe(archcop,'B :\ARCHlVOS1'+arch);
end;
PROCEDURE bajaReg6ral(CHtbd :char);
var salva :integer;
borrar :char;
begin
RENT :=4;
RENF :=19;
Scrol(op);
if Nb > 0 then
begin
for i :=l to Nb do
for j :=i+1 to Nb do
if florrtil > Borrtjl then
begin
salva:=Borrtil ;
Borrlil :=Borr[jl;
Borrij) :=salva;
end;
PBerrINb + 1l :_ -1 ;
Registros a dar de Baja ');
letti,105 15,4,'
uritein;
nriteln;
for i :=1 to Nb do urite(Borr1il :3,' '1;
repeat
lett3,17 5 15 5 4,' Desea Borrar todos estos
read(Khd,borrar);
Registros
(sin) --> ');
Barrar :=upcasetBorrar);
aritetBorrar);
until Borrar in I'N','S'l;
if Borrar = '5' then BorraRegArth;
end;
end;
begin
repeat
Nb :=0;
swBajas:=true;
windoat1,1 5 80,25);
texthackground(0);
clrscr;
LET(4 1 1,4,14,' B AJA S
opciones ;
t
AL
A R C H I V O ');
TODAS LAS OPCIONES A . .I,S }
if op() 'S' then
begin
io :='B';
AbreArchtop,io);
if io='0' then
begin
textbackgroundlO);
clrscr;
BajaRegSralfop);
ClosetarchTbd);
end;
end;
until op = 'S';
windoull,1,30,25);
textbackgroundlO);
clrscr;
end;
~---^
PROCEDURE ALTHOD ;
°
t
Altas
y tiodificaciones á La Base de Datos }
}
Procedure Despliega;
begin
window(1,4,84,22);
case Reg6ral .tbd of
'A' : with Reg6ral,edgaV do
( Giro de Actividades >
begin
NCaepos :=4;
repeat
let(13,2,15,1,' Registro 4') ; write(apf+1 :3,' de ',Lieftl :3);
let(2, 5,15,1,' Clave Giro -> ') ; lie;
let(18,5,15,2,''1 ;write(Clave);
let(2, 7,15,1,' Rango Ini -> ') ; lie;
let(18,7,15,2, ") ;write(Rangoll;
let(2, 9,15,1,' Rango Fin -> ') ; lie;
let(18,9,15,2, ") ;write(RangoF);
let( 2,11,15,1,' Nod . Biro -) ') ; lie;
let(18,11,15,2,'') ;write(Noe6irol;
with VarCpx do
case caepo of
1 : begin
Tipo:='I' ;
NusEnt :=Clave;
Capta(18,5,'I',VarCpx);
if Not CasbiaR Then Clave :=NueEnt;
end;
2 : begin
Tipo:='S' ;
Str :=Rangol;
Capta(18,7,'5',VarCpx);
if Not CasbiaR Then RangoI :=Str;
end;
3 : begin
Tipo:='S' ; Str :=RangoF;
Capta(18,9,'S',VarCpx);
if Not CambiaR Then RangoF :=Str;
end;
4 : begin
Tipo:='S' ; Str :=Noe6iro;
Capta(18,11,'S',VarCpx);
if Not CasbiaR Then Noe6iro :=Str;
end;
end ; ( case >
until corre='S';
end;
'8' : with Reg6ral,edcaV do
begin
NCanpos :=3;
repeat
let(13,2,15,l,' Registro #'1 ;write(apf+1 :3, ' de ',lief+) :3);
let(2,5,15,1,' Clave Giro -> ') ; lie;
let(18,5,15,2, ') ; write(Clave);
let(2,7,15,1,' Flue Giro
-) ') ; lie;
let (18,7,15, 2,") ; write(Clavefial;
let(2,9,15,1,' Noe Activ -) ') ; lie;
let(18,9,15,2,'') ;
write(NoeAct);
with VarCpx do
case Campo of
1: begin
Tipo :='S' ; Str :=Clave;
Capta(18,5,'S',VarCpx);
if Not CaebiaR then Clave :=Str;
end;
2: begin
Tipo :='I' ; NueEnt :=ClaveCa;
Capta(18,7,'I',VarCpx);
if Not CanbiaR then C1ave g a :=NueEnt;
end;
3: begin
Tipo:='S' ; Str :=NoeAct;
Capta(18,9,'S',VarCpx);
if Not CaebiaR then No®Act :=Str;
end;
end ;
( case )
until corre='S';
end;
'C' : with Reg6ral,edecV do
begin
hCaepos :=4;
repeat
let(13,2,15,1,' Registro 1!'1;
write(apf+1 :3,' de ',Lief+1 :3);
let(2, 5,15,1,' Clave de Activ -> '1 ; lie;
let(22,5,15,2,'') ;write(C1aveCa);
let(2, 7,15,1,' Clave Contaa -> ') ; lie;
let(24,7,15,2, " ) ;writelClaveCont);
let(2, 9,15,1,' Cantidad Emitida -> ') ; lie;
let(24,9,15,2,'') ;write(CantE® :4 :3);
let(2,11,15,1,' Unidades -> ') ; lie;
let116,11,15,2, ') ;write(Unidad);
with VarCpx do
case campo of
I : begin
Tipo :='S' ; Str :=ClaveCa;
Capta(22,5,'S',VarCpx);
if Not CanbiaR Then ClaveCa :=Str ;
end;
2 : begin
Tipo :='I' ; Nu®Ent :=ClaveCont;
Capta(20,7,'I',VarCpa);
if Not Cambian Then ClaveCont :=NumEnt;
end;
3 : begin
Tipo :='R' ; NuaRea :=CantEm;
Capta(24,9,'R',VarCpx);
if Not Cambian Then CantEm :=NusRea;
end;
4 : begin
Tipo :='S' ; Str :=Unidad;
Capta(I6,11,'S',VarCpx);
if Not Cambian Then Unidad :=Str;
end;
end ; C case }
until corre='S';
end;
with Reg&ral,edlcV do
begin
NCaspos :=3;
repeat
let(13,2,15,1,' Registro
' de ',Lief+1 :31;
write(apf+1 :3 ,
letC2, 5,15,1,' Numero de Contam -> ') ; lie;
let(24,5,15,2, ') ;write{NumCont);
let(2, 7,15,1,' Noebre del Cantata -) ') ; lie;
let(25,7,15,2, ') ;write(NoeCont);
let(2, 9,15,1,' Receptor -> ') ; lie;
let(16,9,15,2, " ) ;write(EdoFisCont);
with VarCpx do
case caspo of
1: begin
Tipo :='1' ; NueEnt :=NuaCont;
Capta(24,5,'I',VarCpx);
if Not CaebiaR Then NueCont :=NueEnt;
end;
2: begin
Tipo :='S' ; Str :=NoeCont;
Capta{25,7,'5',VarCpx);
if Not CaebiaR Then NoeCont :=Str;
end;
3: begin
Tipo :='S' ; Str :=EdoFisCont;
Capta{16,9,'S',VarCpxl;
if Not CaebiaR Then EdoFisCont :=Sta;
end;
end ; ( case )
until corre='S' ;
end;
'F' : with Regóral,edsgV do
begin
NCaepos :=6;
repeat
let(13,2,15,1,' Registro I');
writelapf+1 :3 ,
' de ',Lief+1 :3);
let(2, 5,15,1,' Nueero de Contae -> '1 ; lie;
let(24,5,15,2, " f ;write(NUeCont);
let(2, 7,15,1,' Noabre del Cantu -> ') ; lie;
let(25,7,15,2, ') ;writeiNoeCont);
let(2, 9,15,1,' Cantidad PPN's -> ') ; lie;
let(22,9,15,2, ') ;write(CantPPN :3 :3);
let(2, 11,15,1,' Cantidad Ngr -> ') ; lie;
let(20,11,15,2,") ;write{CantNg :3 :3);
let(2, 13,15,1,' Observaciones -> 1 ; lie;
leti21,13,15,2, ') ;write(Observl;
let(2, 15,15,1,' Efectos en La Salud : ');
gotoxy{1,161 ; lie;
gotoxy(1,17) ; lie;
gotoxy{1,181 ; lie;
let{1,16,15,2, ') ;write{Efectsal);
with VarCpx do
case caepo of
1 : begin
Tipo :='I' ; Nu®Ent :=NueCont;
Capta(24,5,'I',VarCpx);
if Not CaebiaR Then NuaCont :=NuaEnt;
end;
2 : begin
Tipo :='S' ; Str :=NoaCont;
Capte(25,7,'S',VarCpx);
if Not CaebiaR Then NoaCont :=Str;
end;
3 : begin
Tipo :='R' ; NuaRea :=CantPPN;
Capta(22,9,'R',VarCpx);
if Not CaebiaR Then CantPPN:=NuaRea;
end;
4: begin
Tipo :='R' ; NuaRea :=Cantllg;
Capta(20,11,'R',VarCpx);
if Not CaebiaR Then CantNg :=NuaRea;
end;
5: begin
Tipo :='S' ; Str :=Observ;
Capte(21,13,'S',VarCpx);
if Not CaebiaR Then Observ :=Str ;
end;
6: begin
Tipo :='S' ; Stye=EfectSal;
Capta(1,16,'S',VarCpx);
if Not CaebiaR Then
begin
EfectSal :=Str;
while length(EfectSal) < 240 do
EfectSal :=Efectsal + '
end;
';
end;
end ; { case >
until corre='S';
end;
'G' :
with Reg6ral,edspY do
begin
HCaepos :=4;
repeat
let(13,2,15,1,' Registro 0'1 ; writetapf+1 :3,' de ',lief+1e3);
let(2, 5,15,1,' Nun . Prod .Peligroso -) '1 ; lie;
let (27,5,15,2, ') ;write (Nue);
let(2, 7,15,1,' timbre Prod .Peligroso -) '1 ; lie;
let (29,7,15,2,") ;write(floeProdPell;
let(2, 9,15,1,' Cant . Ninina Notif . -) '1 ; lie;
let (27,9,15,2, ') ;write(CantNinN :3 :3);
let( 2,11,15,1,' Cant . Nin .Nonitoreada -) ') ; lie;
let(29,11,15,2,'') ;write(CantHinN:3 :31;
with VarCpx do
case caopo of
1 : begin
Tipo :='I' ; NueEnt :=Nun;
Capta(27,5,'1',VarCp1);
if Not CaebiaR Then Nue :=NueEnt;
end;
2 : begin
Tipo :='S' ; Str :=NoeProdPel;
Capta(29,7,'S',VarCpx);
if Not CaebiaR Then NoeProdPel :=Str;
end;
3 : begin
Tipo :='R' ; NueRea :=CantNinN;
Capta(27,9,'R',VarCpxl;
if Not CaebiaR Then CantNinN : = NuaRea;
end;
4 : begin
Tipo :='R' ; NueRea :=CantNinN;
Captat29,11,'R',VarCpx1;
if Not CaebiaR Then CantNinN :=NueRea;
end;
end ; ( , case 6 >
until corre='S';
end;
'I' : with Reg8ral,edctrV do
begin
I Aqui la Var NCaepos se Asigna Antes de llaaar a Despliega }
repeat
lett13,2,15,1,' Registro t# ') ; write(apf+1 :3,' de ',limf+1 :3);
let(2, 5,15,1,' Numero Controlador -} ') ; lie;
let(27,5,15,2,'') ;write(Nua);
let(2, 7,15,1,letctr2) ; Hai
let(27,7,15,2, ") ;writel(locbre);
let(2, 9,15,1,letctr3) ; lie;
let(27,9 5 15,2, " l ;write(NunPje[1] :3:31;
let( 2,11,15,1,letctr4l ; lie;
let(27,11,15,2,'') ;write(NunPje[21 :3 :3);
let( 2,13,15,1,letctr5) ; lie;
let(27,13,15,2,'') ;write(NunPjet31 :3 :31;
if Ncanpos = 6 then
begin
let( 2,15,15,1,letctr6) ; lie;
let(273 15,15,2,") ;write(NuePje[4] :3:3);
end;
with VarCpx do
case campo of
1 : begin
Tipo :='I' ; NuaEnt :=Nue;
Capta(27,5,'!',VarCpx);
if Not Cambian Then Nue :=NueEnt;
end;
2 : begin
Tipo :='S' ; Str :=Noebre;
Captat27,7,'8',VarCpx);
if Not CanbiaR Then Noabre :$tr;
end;
3 : begin
Tipo :='R' ; Nu ea :=Nuapje[1l;
Capta(27,9,'R',VarCpx);
if Not Cambian Then Nunpje[1l :=NueRea;
end;
4 : begin
Tipo :='R' ; NueRea :=Nuepje[2l;
Capta (27,11,'R',VarCpx);
if Not CanbiaR Then Nuapje[2] :=NuaRea;
end;
5 ; begin
Tipo :='R' ; NunRea :=Nuapje[31;
Capta(27,13,'R',VarCpx);
if Not CanbiaR Then Nunpje[3] :=NueRea ;
end;
6: if Nca®pos=6 then
begin
Tipo :='R' ; NueRea :=Nuopje[41;
Capte(27,15,'R',YarCpx);
if Not CaebiaR Then Nuepje[4l :=NuaRea;
end;
end; [ case 6 }
until corre='S';
end;
end ; ( case }
end ; ( Despliega )
PROCEDURE NodifReg6ral(CHtbd :char);
begin
[ proc MODIFICA Regóral }
Reg6raletbd := CNtbd;
1i®f :=FileSize(archTbdl-1;
if lief<O then lief :=0;
apF :=0;
Caepo:=1;
if lief ) 0 then
begin
seek(archTbd,apF);
read(archTbd,Reg6ral);
seek(archTbd,apf);
end;
uindow(1,23,80,25);
let(01 1 1,4,15,chr(24)) ;
let(15,1,4,15,chr(25)) ;
1et(29,1,4,15,'PgUp') ;
let(49,1,4,15,'PgDn') ;
let(69,1,4,15,'ESC') ;
let(20,3,4,15,'Hoae') ;
let(40,3,4,15,'End') ;
let(02,1,6,0,'[ 1 Caepo ]'1;
let(16,1,6,0,'I 1 Caapa ]');
let(33,1,6,0,'[ 1 Regist .'+chr(24)+' ]');
let(53,1,6,0,'[ 1 Regist .'+chr(25)+' ]');
let(72,1,6,0,'[Salir l');
let(24,3,6,0,'[ Inicio
let(43,3,6,0,'I Fin ]');
nindoe(1,I,80,3);
let(13,1,4,14,' A L T A S
Y I 0
N 0 0 I F I CAC I ONES');
let(40-length(noa) div 2, 3,4,14,noe);
Despliega;
end;
PROCEDURE CONTROLES;
begin
textbackground(0);
clrscr;
LET(4,1,4,14,' ALTAS Yl0 MODIF . A C 0 N T R 0 L A D 0 R E S
NCaopos := 5;
LiapiaReg6ral(op);
letctr2:=' Noobre Cantaainante -) ';
letctr3 :=' taje Pron . Reeovido-) ' ;
letctr4 : =' Taje Minima Renovido-> ';
letctr5 :=' Taje Maxim Resovido-> ';
case clavel of
'F' : begin
MCampos := 6;
letctr6 :=' Con Adicion de Cal
end;
'C' :begin
-> ';
letctr2 :=' Moobre del Metal -> ';
letctr3:=' Baje Clarific Aria -) ' ;
letctr4 :=' Taje Filtro Rociador-) ';
letctr5 :=' Taje Lodos Activados-) ';
end;
'J','M' : letctr2 :=' Nombre del Metal -> ';
'L' :begin
Mcaepos := 6;
letctr2 :=' Tipo Lodo Kg/lOe6Gal-> ';
letttr3:=' Sin Prod . Ouimicos -> ';
letctr4 :=' Con Adicion de Cal -> ';
letctr5:=' Con adicion de Al
letctr6 :=' Con adicion de Fe
end;
-> ';
-> ';
'M' : letctr2 :=' Nombre del Compuesto-> ';
'0' : letctr2 :=' Tecnologia
-> ';
'P' :begin
letctr2 :=' Tipo de Tratamiento -> ';
letctr3 :=' Taje 5 Micrometros
letctr4 :=' Taje 2 Micrometros
letctr5 :=' Taje 1 Microeetro
-> ';
-> ';
-> ';
end;
'O' :begin
HCampos := 6;
letctr2 :=' Tipo de Tratamiento ->
letctr3 :=' Perdida Carga Desde->
letctr4 :='
Hasta-)
letctr5 :=' Velocidad Gas Desde->
letctr6 :='
Hasta->
end;
';
';
';
';
';
'R' :begin
19Campos := 6;
letctr2 :=' Tipo Tratara . y Taje -> ';
letctr3 :=' Inversion base /100-> ';
letctr4 :=' Energía base /100 -> ';
letctr5 :=' Mantenimiento /100 -> ';
letctr6 :='
end ;
Costo Anual
end ; t case clavel >
end ;
/100 -> ';
begin
( Proc . Nodifica }
repeat
uindou(1,1 0 80,251;
textbackground(01;
clrscr;
A L T A S
LET(4,1,4,14,'
Y J 0
MODIF .
ARCHIVO
OPCIONES;
if op='I' then
CONTROLES;
if op() 'S' then
begin
io :='A' 9;
AbreArch(op,io);
if io='O' then
begin
textbackground(0);
clrscr;
ModifReg6rallop);
Close(archTbd);
end;
end;
until op = '5';
uindou(l,1,80,25);
textbackground(0);
clrscr
end ;
( ALTAS
Y/O
MODIFICACIONES }
(
}
PROCEDURE CONSULTA;
BEGIN
textoode(c801;
repeat
uindow(1,1,80,25);
textbackground(01;
clrscr;
RENI :=4;
RENF :=22;
LET(13,1,4,14,' CONSULTAR
OPCIONES;
io='C';
if op() 'S' then
begin
textbackground(0l;
cirscr;
AbreArch(op,iol;
if io='O' then
begin
ARCHIVO ');
window(l,1,80,31;
let(l,1,0 1 0,81ancoRO);
let(I,2,0,0,Blanco80);
case op of
'A' : begin
let(15,1,4,14,' Giro de Actividades ');
Rango de
');
let(1,2,4,0,'Nua .
let(1,3,4,0,'Oiro Activodades Nombre de los Giros');
end;
'B' :begin
let(i5 1 1,4,14,' Clase de Actividades ');
let(1,3,4,0,'Clase Num Nombre de la Actividad');
end;
'C' :begin
lettt5,í,4,14,' Envision de Contaoinantes ');
let(1 9 2,4,0,'
Clave
Clave Del
let{1,3,4,0,'De Actividad Contaminante
Cantidad');
Emitida
Unidades');
end;
'D' :begin
lettí5,1,4,14,' Lista de Contaminantes ');
Nuo .');
let(1,2,4,0,'
Receptor');
let(1,30,0,'
Contam.
Contaminante
end;
'F' :begin
let(5,1,4,14,' Efectos de Sustancias en la Salud y en el Ambiente ');
Ngrs Ubrervaciones 'l;
let(1 0 2,11,0,'Num Nombre Contaminante PPN`s
let(18,3,14,0,' I Efectos en la Salud I ');
end;
'6' :begin
let(10,1 1 4,14,' Factores de Riesgo en Sustancias Peligrosas ');
Iettt,2,4,0,'
Nombre del
Contaminante
Cantidad Minima
Notificada
Cantidad Minima ');
Monitoreada');
let(1,3 5 4,0,'Num
end;
')' :begin
let(í0,í,4,14,' Controladores de Contaminantes ');
let(l,2,4 5 0,nom);
end;
end; C case I
SCROL(up) ;
C Rutina que despliega los registros en 80 columnas I
end;
end;
until op = '5';
end ;
{ CONSULTA I
{
I
BEGIN
C Base de Datos I
textaode(c80);
repeat
seBajas:=false ;
windostl,1,80,25);
textbackground(0);
clrscr;
LETt10,1,4,14,' BASE
DE
DATOS
LETt20, 5,11,0,' A : Altas yin Modificaciones ');
LETt20, 7,11,0,' B : Bajas ');
1E7120, 9,11,0,' C : Consultas ');
LET120,15,11,0,' T) Terminar ');
repeat
LET125,23,6,0,'Opcion ---} ');
readlKBD,op) ;
op :=upcaselop);
writetop);
until op in I'A' . .'C','T'1;
case op of
'A' : Al tllod;
'B' :Bajas;
'C' :Consulta;
end ; f case }
until op = 'T';
textmodetc80);
window11,1,80,25);
let(1,1,7,0,");
textbackgroundl0);
clrscr;
lett13,13,4,14,' A D I 0 S ');
1et11,1,7,0, " );
END .
SIRIA ');
ANEXO 2.
PROGRAMAS FUENTE MODULO DE PREDICCION
(
MODELO GAUSS PUFF (SIMPLIFICADO)
(
overlay PROCEDURE PUFF;
( /I SRAPH .P }
VAR Xy,Xz,XyY,Xint,Radio : real;
FUNCTION FUNPUFF (EMUNIF,VELOC,ALTURA,radY : real) : real;
var fun,uno,dos,sz,sy : real;
begin
(
FUNPUFF
UNIDADES
en (gr/e3)
EMUNIF (0) en (gr/seg)
o
(curieslseg).
(U) en (ets/seg).
ALTURA (N) en te)
VELOC
DIS1X
Y
II) en (Kos)
(Y) en te)
}
DISTX :=DISTX +' Xz;
sz :=SI6RA1(DISTX,CLASE);
DISTX :=DISTX - Xz + Xy;
sy :=S16MAY(DISTX,CLASE);
DISTI :=DISTX-Xy;
if (sz 0 0 .0) and (sy 0 0.0) then
begin
C SDRT(8t Pi 1 Pi $ Pi) }
fun := 2 f EMUNIF / 15 .74961 ;
fun :=fun/ (5y t 5y t sz );
uno :=-0.5 $ ( radY t radY / (sy i sy) + ALTURA t ALTURA / (sz t sz) l;
if uno(-80 then uno :=-80;
fun :=fun E exp ( uno ) ;
FUNPUFF :=fun;
end
else begin
FUNPUFF :=99 .9e19;
MUESTRA('A' 1 1,1,'Err FUNPUFF=',99 .9e19, " );
end;
end;
PROCEDURE Calclylz;
var sigeYZ,a,b,c,expon,logna : real;
coon : integer;
begin
sigaYZ :=Radio / 2 .15;
CLASE := upcase(CLASE);
coorX :=ord(CLASE) - ord('A') + 1 ;
}
}
a :=tsy(coorX,ll;
b :=tsytcoorX,2l;
c : : 0;
logna :=isigmYl-c) / a;
if logna ( le-30 then logna :=le-30;
expon :=( 1 / b ) t In( logna );
if expon < -80 then expon :=-80;
Xy :=exp(expon)/1000 ;
I Xy en Kas }
a :=tsztcoorX,1];
b :=tsztcoorX,2];
c :=tszlcoorX,31;
logna :=tsigmYZ - c) / a;
if logna ( le-30 then logna :=le-30;
expon :=( 1 / b) t in t logna );
if expon < -80 then expon:=-80;
Xz :=exp( expon ) / 1000 ;
( Xz en Kos }
end;
PROCEDURE DATPOSICION;
var dato : string(l5l;
err : integer;
begin
TEXTOI(true);
textcolor(2);
gotoxy(l,4) ;write('Posicion a medir la concentracion (Kell');
gotoxy(1,6) ;write(BLANC040);
textcolor(3);
repeat
gotoxy(10,6) ;write('Xint => ') ;read(dato);
valtdato,Xint,err);
if err<>0 then begin gotoxy(6,6) ;write(BLANCOIO) ;end;
until (err=0) and ()lint > 0) and Clint ( 1000);
end;
PROCEDURE CAPTURA(CLAVE :CHAR);
var ND : char;
Procedure AYUDA;
begin
repeat
CAPTA(ENUNIF,'Nasa Contaminante Emitida 1gr)','O ----> ');
until (ENUNIF ) 01;
NUESTRA('B',105 3,'D= ',ENUNIF,'gr');
repeat
CAPTA(VELOC,' Velocidad promedio del Viento (m/sg)','U ----> ');
until (VELOC > 0) and (VELOC ( 50) ;;
NUESTRA('B',10,4 1 'U= ',VELOC,'m/s') ;
repeat
CAPTA(ALTURA,'Altura efectiva de la Fuente
until (ALTURA>O) and (ALTURA(10001;
tats) ','Be ---> ');
NUESTRAt'B',10,5,'H : ',ALTURA,'ats');
repeat
CAPTA(Radio,'Radio aprox . del Recipiente
(ml ','R ---> ');
until (Radio)O) and (Radio(1000);
NUESTRA('B' 5 )0,7 5 'Radio= ',Radio,'mts');
end;
begin
(
CAPTURA )
repeat
TEXTOI(true);
repeat
CAPTA(JI,'Concentracion de Interes . (cgr/m3)','Conc .----> ');
until (JI ) 0) and (JI (5000);
NUESTRA ('B',)4,2,'JI=',JI,'mgr/m3'1;
AYUDA;
ESTABILIDAD;
DATPOSICION;
CalcXyXz;
TEXT01(tr ue );
gotoxy(3,4);
write('Ouieres modificar datos? (sin)
p);
readfKBD,NO);
until (upcase(NO)(>'S');
if SMORA then putpic(CUAD A,0,1401;
end;
PROCEDURE CUADRO;
begin
ORAFI(true);
for i :=0 to 10 do
drawtl5,it13+5,314,i$13+5,11 ;
for i :=0 to 11 do
drawtit30+15,5,i$30+15,135,11 ;
dra®(5,69,314,69,1);
draw(14,5,14,135,1);
circle(15,70,4,2) ;
fi) lshapet15,70,2,2);
TEXT02;
gotoxytl,11) ;write('Fuente');
getpic(CUADBRA,0,0,319,140);
nuevo: : false;
end;
t
t
(
FUENTE
horizontales
verticales
>
l
>
PROCEDURE 6RAFPUFF;
var Delta,LM,xa,xf,ya,yf,ax,ya : real;
prieer4 : boolean;
radio,xx : integer;
begin
DISTX : =DISTX / 2;
XyY : =O;
repeat
XyY:=XyY+100;
until Jl >= FUNPUFF ( ENUNIF, VELOC, ALTURA, XyY) ;
repeat
XyY :=XyY -10;
until (XyY: O) or (JI (= FUNPUFF ( ENUNIF, VELOC, ALTURA, lyY)) ;
repeat
XyY: : XyY +1;
until JI 3= FUNPUFF ( EMUNIF, VELOC, ALTURA, XyY) ;
TEXTO2;
gotoxy(1,2);
write(lyY :4 :1,' Mts');
LN:=XyY+iO;
DISTX :=DISTX t 2;
if DISTX < Xint then ax :=Xint
else ax :=DISTX;
str(ax :3:2,let);
j :=lengtb(let);
for is :l to j do
begin
gotoxy(40-j+i,17);
urite(let(il);
end;
gotoxy(37,18);
arite('Kes');
Delta :-ax 111;
DISTX :=Delta;
6RAF1 (f al se) ;
for i :=1 to 11 do
begin
XyY :=O;
(
Oruga 3
repeat
XyY :=XyY+100;
until JI >: FUNPUFF ( EMUNIF, VELOC,
repeat
XyY :=XyY-10;
until (XyY:O) or
ALTURA, XyY) ;
(JI (= FUNPUFF ( ENUNIF, VELOC, ALTURA, XyY)) ;
repeat
XyY: : XyY+1;
until JI >: FUNPUFF ( ENUNIF, VELOC,
ALTURA, XyY) ;
radio : : Rownd{b0 t (XyY / LM)) ;
xx :=Round(315 t DISTX / ex );
circle(xx,70, radio, 2);
if {i eod 2) () 1 then fillshape(xx + radio - 1, 70, 3, 2);
circle(xx,70,2,2);
DISTX := DISTX + Delta ;
end ;
( for 1 . .11 )
TEXT01(false);
gotoxy(35,b);
write('IRETI');
readln ;
( Grafica de Concentracion vs Distancia )
gotoxy{20,7);
write('');
6RAFI(true);
for i :=0 to 10 do
draw(15,it13+5,314,ií13+5,1) ;
( horizontales )
for i :=0 to 11 do
draw(i$30+15,5,ií30+15,135,11 ;
( verticales
draw{14,5,14,135,1);
draw(15,135,315,135,1);
draw{15,5,15,135,1);
draw(15,13b,315,136,1);
draw(14,5,14,135,1);
xa :=0;
TEXTO2;
textcolor(3);
for is=1 .to j do
begin
gotoxy(39-j+i,17);
write(lettil);
end;
gotoxy{37,18);
write{'Kos');
gotoxy(2,17);
write('O');
Delta :=sx t 0 .05;
DISTX :=Delta;
ya := FU UFF(EMUNIF,VEL0C,ALTURA,0);
gotoxyll,l);
write(ya :2 :1,'gr/0');
textcolor(2);
gotoxy(12,1) ;write('Concentracion vs Distancia');
yE:=ya;
repeat
DISTX := DISTX + Delta ; .
yf := FUNPUFF( EMUNIF, VELOC, ALTURA, 0) ;
draw{Round{310i(xa/ax))+15,Round(135-135t(ya/y .)),
)
Round(3101(DISTX/ax))+15,Round(135-1351(yflyn)),21;
xa :=DISTX;
ya : =yf;
until DISTX >: ax ;
end ;
( SRAFPUFF }
PROCEDURE AREAAFEC;
var Nora,Min,Seg :real;
begin
TEXTOI(true);
textcolor(2);
gotoxy(13,1);
write('MODELO PUFF'l;
textcolor(3);
JI : =JI/1000 ; ( Se convierte de oiligr/a3 a grlat3 >
DISTX :=Xint;
gotoxy(10,2) ;write('Para X =',Xint :3:3,'Kas');
gotoxy(1,3) ; write('Conc=',FUEM'UFF(EMUMIF,VELOC,ALTURA,01 :3 :4,'gr/o3');
Hora:=DISTX * 1000 / VELOC / 3600;
Min := (Hora-Trunc(Hora))#60;
Seg :=(ain-Trunc(Min))t60;
write(' Y Tieapo=',Trunc(Hora),' :',Trunc(Min), " " ,Seg :2:2, " " " 1;
DISTX :=0 .0;
repeat
DISTX :=DISTX + 10;
until JI >= FUNPUFF ( ENUNIF, VELOC, ALTURA, 0) ;
repeat
DISTX :=DISTX - 1;
until (DISTX=1) or (JI (= FUNPUFF ( EMUNIF, VELOC, ALTURA, 01) ;
if DISTX=1 then
repeat
DISTX :=DISTX - 0 .1;
until (DISTX(=0 .1) or (JI ( FUNPUFF ( ENUNIF, VELOC, ALTURA, 0)) I
repeat
DISTX :=DISTX + 0 .1;
until JI >= FUNPUFF ( ENUNIF, VELOC, ALTURA, 0) ;
Hora :=DISTX s 1000 I VELOC / 3600;
Min :=(Nora-Trunc(Hora))#60;
Seg :=(ein-Trunc(Hin))$60;
gotoxy(9,5);
write('Para Concentration=',JI :3 :4,'gr/o3');
gotoxy(1,6) ;write('Dist: ',DISTX :3 :2,'Kos');
write(' Y Tieopo: ',Trunc(Hora),' :',Trunc(Min)," " ,Seg :2 :2," " "1;
6RAFPUFF;
J1 : :J1t1000 ; ( Se convierte a oiligr/ot3 >
end;
PROCEDURE MODPUFF;
begin
TEXTO1(true);
MUESTRAt'A',2,3,'Q=',EMUNIF,'gls');
MUESTRA('A',2 1 4 1 'Ú=',VELOC,'e/s');
MIJESTRA('A',2,5,'H z ',ALTURA,'its');
MUESTRA('A',20,3,'Radio=',Radio,'ets');
if J1>0 .00001 then
begin
NUESTRA('A',50,'CONCENTRACION: ',J1,'Miligr/e3');
end
else
begin
MUESTRA('A',5,1,'CONCENTRACION= ',JI$1000,'Nicrogr/e3'1;
end;
MUESTRAI'A',20,4,'ESTAB= 'tCLASE,0 .0," );
if nuevo then CUADRO
else putpic(CUADGRA,0,1401;
gotoxy(35,6);
arite('IRETI'1;
readln;
gotoxyt20,11;
urite(")l
AREAAFEC;
end;
PROCEDURE MODELO?;
begin
TEXT011true);
CAPTURA ('P');
MODPUFF;
TEXTOI (fal se);
gotoxy(35,61 ;urite('IRETI');
readln;
end;
BEGIN
OP :_ '7' ;
YMAX :=10;
t Procedure principal I
DF := 50;
POSY : : 0 .0;
ESCALA := 10 ;
POST := 0 .0;
clrscr ;
ESCALAY :=10;
graphcolornode;
Sil A :=false;
repeat
CUADRO ;
TEXT02;
textcolur(21;
gotoxyti2,)) ;writel'MODELO 'PUFF");
TEXT01(true);
gotoxy(5,2) ;write('A ) Correr Modelo .');
gotoxy(5,41 ;write('S 1 Salir .');
repeat
gotoxy(5,6) ;write('Opcion ---> ');
read(KDD,OP);
OP : upcasetOP1 ; write(OP1;
until OP in I'A','S'l;
if OP = 'A' then NODELOP;
until OP='S';
texteode(cOO);
window(1,1,80,25);
clrscr;
END;
t
]
(
}
overlay PROCEDURE GAUSS;
var opg :char;
salva:LETRERO;
PROCEDURE DATPOSICIOR;
var dato : string(l5l;
err : integer;
begin
TEITO!(true);
textcolor(2);
letl(1,4,'Posicion a medir la concentracion (Kas)');
let!(l,6,BLAMCO40);
textcolor(3);
repeat
letl(1,6,'I=> ') ;read(dato);
val(dato,DISTI,err);
if err<>0 then begin letl(6,6,8LAHC010) ;end;
until (err=0) and (DISTI > 0);
repeat
letl(14,6,'Y=) ') ;read(dato);
val(dato,POSY,err);
if err<>O then begin letl(18,6,SLANCO10) ;end;
until (err=0);
repeat
letl(28,6,'1=) ') ;read(dato);
val(dato,POSZ,err);
if err<>0 then begin letI(29,6,BLAHCOIO) ;end;
until err=0;
end;
PROCEDURE CalcAlt;
var alch, velga,diam,presat,tempga,tempair : real;
dato : stringI20l;
err : integer;
begin
repeat
CAPTAIalch,'Altura de la Chimenea (mts)','Hch ----> ');
until alch > 0 ;
HUESTRA('B',10,7,'Hch: ',alch,'ate');
repeat
CAPTA(velga,'Velocidad de envision del Gas (m/seg)','Vg ----> '1;
until (velga > 01;
MUESTRA('B',10,8,'Vg: ',velga,'a/seg');
repeat
CAPTAtdiam,'Diametro interno (mts)','Di ----> ') ;
until (diam > O);
MUESTRA('B',10,9,'Di= ',diam,'mts');
repeat
CAPTA(presat,'Presion Atmosferica (Atmosferas)','Pa ----> ');
until presat > 0;
MUESTRA('B',10,10,'Pa= ',presat,'Atms');
CAPTA(tempga,'Temperatura del Gas (Grad .Centig)','Tg ----> ');
MUESTRA ('B',10,11,'Tg= ',tempga,'gC');
repeat
CAPTA(teapair,'Temperatura del Aire (Grad .Centig)','Ta ----> ');
until (tempair ( tempga);
MUESTRA ('D',10,12,'Ta= ',tempair,'gC');
tempga := tempga + 273 ;
tenpair := tempair + 273 ;
( Se convierte a grad .Kelvin )
( Se convierte a grad .Kelvin }
ALTURA := aich + (velga t diam / VELOC ) t (1 .5 + 2 .72 t presat t
( (tempga - tempair) / tempga) t diam);
end ;
( procedimiento CalcAlt )
PROCEDURE CAPTURA(CLAVE :CHAR);
var salva,dato : LETRERO;
err : integer;
MD : char;
PROCEDURE AYUDA;
begin
repeat
CAPTA(EHUMIF,'Gasto Contaminante en la Fuente (g/sg)','G ----> ');
until (EMUMIF ) O);
MUESTRA ('B',10,3,'0= ',EMUMIF,'g/sg');
repeat
CAPTA(VELOC,'Velocidad promedio del Viento (m/sg)','U ----> ');
until (VELOC ) O) and (VELOC ( 50) ;;
MUESTRA ('B',10,4,'U= ',VELOC,'m/s');
textcolor(2);
letl(4,2,'Altura efectiva de la Fuente (m) ');
textcolor(3);
repeat
letl(2,4,'Conocida o Desconocida (cid) --) ');
read(KBD,CH) ; CH:=upcase (CH);
if ord(CH) <> 13 then Alcon :=CH;
until Alcon in ['C','D'l;
let 1(1,4,BLAHCO40);
if Alton = 'D' then CalcAlt
else
repeat
CAPTA(ALTURA,",'H ----> ') ;
until (ALTURA>=0) and (ALTURA(10001;
NUESTRA ('B'510,5,'H= ',ALTURA,'s');
let!(l,2,BLANCO401;
end;
begin
( CAPTURA l
repeat
TEXT02;
textcolor(2l;
if CLAVE: 'P' then
write(' CONCENTRACION EN POSICION (X ,Y
if CLAVE : 'I' then
) ');
begin
letl(9,1,'CURVA DE 1S000NCENTRACION');
TEXTOI(true);
repeat
CAPTA(JI,'Isoconcentracion (oiligr/et3)','Conc . ---> '1;
until (JI ) 0) and (JI ( 5000);
NUESTRA ('B',10,2,'Conc:',JI5'eg/o3');
end;
if ((CLAVE:'P') and (not SNSRA)) or (CLAVE='I') then
begin
TEXTOI(true);
AYUDA;
ESTABILIDAD;
end;
if CLAVE='P' then DATPOSICION;
TEXTOI(true);
if CLAVE : 'P' then MO :_ 'N'
else
begin
letl(3,4,'Ouieres modificar datos? (sin) ');
read(KBD,MO);
end;
until (upcase(MO)<>'S');
if MORA then putpic(CUADSRA,0,140);
end ;
( Procedioiento Captura l
PROCEDURE ELIPSE;
var ycentro,xa,ya,xf,yf,xmax,yeaxg :integer;
delta :real;
begin
if DI < DF then
begin
ycentro: :70; xoax :=300 ;
ORAFI(false);
circle(15,ycentro,4,2) ;
fillshape(15,ycentro-1,2,2) ;
yeaxg : : 130;
( FUENTE 3
xa:=round(xmaxtDI/ESCALA)+15;
Ya ' =O ;
circle(xa,ya+70,2,2);
fillshape(xf,ycentro-1,2,2);
TEXT02;
gotoxyi13,2);
if Jl>le-4 then writet'IsoConc=',(JI) :1 :4,'mg/m3')
else if JI > le-b then write('IsoConc=',(JI11000) :1 :4,'ug/m3')
else write('IsoConc=',(Jl$le6) :1 :4,'ng/m3');
letl(15,3,let);
gotoxy(5,16);
writet'Area afec .= ',(PIt((DF-DI)/2)t(YNAX)/1000) :4 :1,'Kes2');
DISTX :=DI;
if DISTX = 0 .0 then DISTX :=Ie-b;
delta :=ESCALA t 0 .02;
repeat
xf :=round(xeaxtDISTX /ESCALA) +15;
yf :=round(ymaxg*Y/ESCALAY/1000);
draw(xa,ycentro+ya,xf,ycentro+yf,2);
draw(xa,ycentro-ya,xf,ycentro-yf,2);
xa:=xf;
ya: =yf;
DISTI :=DISTX + delta;
until (DISTX )= DF) or lxf ) xmax+20);
if xft=xaax then
begin
circle(xf,ycentro,2,2);
fillshape(xf,ycentro+1,2,2);
end;
end;
end;
PROCEDURE POSXYI;
var coor : integer;
f : real;
su : boolean;
begin
sw :=false;
if not SYGRA then CUADRO;
f :=FUNCNItcoor,ENUNIF,VELOC,ALTURA);
if (fí1000 > le-3) then
NUESTRA ('A',b,1,'CONCENTRACION= ',fí1000,' Niligr/m3')
else if itftleb) ) le-S) then
NUESTRA ('A',6,1,'CONCENTRACION= ',ft1e6,'Nicrogr/m3')
else NUESTRA
('A',6,1,'CONCENTRACION= ',f$1e9,'Nanogr/m3');
circletround(300tDISTX /ESCALA) +15,70+round(130#POSY/ESCALAY),3,2);
circletround(3001DISTI/ ESCALA )+15,70-roundt130tPOSY/ESCALAY),3,2);
end ;
PROCEDURE NODCAUSS(OP :char);
begin
if OP='B' then 6RAFI(true);
TEXTOI(true);
NUESTRA ('A',1,3,'O='5ENUNIF,' g/s');
NUESTRA ('A'01,4,'U=',VELOC,' sls');
MUESTRA ('A',1,5,'1P',ALTURA,' ats');
if OP='A' then
begin
NUESTRA ('A',29,3,'X= ',DISTX,' Kas');
NUESTRA I'A',29,4,'Y= ',POSY,' Kas');
NUESTRA ('A',29,5,'I= ',POS1,' Kas');
NUESTRA ('A',15,3,'ESTAB= '+CLASE,0 .0,');
NUESTRA ('A',15,4,'SY=',S16NAY(DISTX,CLASE),' Nts');
NUESTRA ('A',15,5,'SZ=',SISNAZ(DISTX,CLASE),' Nts');
POSXY1;
end
else
begin
textcolor(2);
let1(7,1,'CURVA DE ISOCONCENTRACION'1;
textcolor(3);
if nuevo then CUADRO
else putpic(CUADGRA,0,140);
NUESTRA ('A',2Q,3,'ESTAB= '+CLASE,0 .0,'1;
AREAAFECI'A');
if (DI(DF) then
begin
DISTX :=IDF-DI)/2;
YNAX :=Y;
if YNAI ( 9000 then
NUESTRA I'A',20 1 4,'YNax=',YNAX,' Nts')
else
NUESTRA ('A',20,4,'YNax=',YNAX / 1000,' Kas');
ELIPSE;
getpic(CUADSRA,0,0,319,140);
Sa6RA:=true;
end;
end;
end;
BEGIN C Procedure Gauss Isoconcentracion y Pos X,Y,t 3
OP := '?' ;
DF :=50 ;
POSY :=0 .0;
POSZ
YNAX : =10 ;
: =0 .0;
clrscr;
graphcoloraode•,
CUADRO;
SV6RA :=false ;
textolltrue);
let1(3,4,'Nombre del Contaminante');
letlil,b,' --> ') ;readlsalval;
if salvat>chri131 then NomCon :=salva;
letill,4,BLANCO4O);
let lll,b,BLANCO40);
Repeat
TEXTO1(true);
OPCIONES');
letl12,1,'
letll2,3,'A) Concentration Posicion(X, Y, 1)');
letl12,4,'8) Isoconcentracion Area Afectada');
letl12,5,'C) Escalas X , Y');
letl12,6,'S) Salir');
repeat
let1120,7,'Opcion ---> ') ;read(KBD,opgl ;writeiopg);
opg :=upcasetopg);
until opg in I'A' . .'C','S'l;
case opg of
'A':
CAPTURAI'P');
'B' : begin
POSY:=0 .0;
POSZ :f .O;
if not nuevo then CUADRO
else
begin
putpic(CUAD A,0,140);
SMSRA :=false;
end;
CAPTURA('I'l;
end;
'C': begin
ESCALAS;
graphcolormode;
6RAF11false);
if SNSRA then putpic(CUADSRA,0,140)
else CUADRO;
end;
end;
if opg in I'A','B'l then
begin
NODBAUSSiopg);
texto2;
textcolor(2);
letll2O-lengthiNoaCon) div 2 , 1,NoaCon);
textcolorl3);
TEXTO! ifal se);
let!(35,6,'IRETI');
readln;
end ;
Until opg='S';
textoode íc80);
oindoni1,1,80,25);
clrscr;
END ;
t Gauss Isoconc .
t
Pos
X,Y,I )
D
}
(
overlay PROCEDURE DERRAMES;
var long,pvc,pp,pe,lo,eo,ro : real;
CH,MO,OPpuff : char;
PROCEDURE TRIAMSULO;
var ycentro,xa,ya,xf,yf,xaax,yaaxg :integer;
Hora,Min,Seg :real;
begin
ycentro :=70; xaax :=300 ;
6RAF1(false);
if DF=0 .0 then DF:=1e-9;
yaaxg :=130;
MUESTRA ('B',5,16,'Area Afec .=',DF 1 (4 .3 1 SI6MAYtDF,(S .ASE) / 1000),' K®s2');
TEXT02;
Hora:=OF 1 1000 / VELOC / 3600;
Min :=(Nora-trunc(Hora))I60;
Seg :=(hin-trunc(hin))*60;
gotoxy(5,15) ;urite('Tieapo= ',trunc(Hora),' :',trunc(Min), " " ,Seg:2 :1, --- );
TEXT02;
let i( 15, 3, let);
xa :=roundlxaax 1 DI / ESCALA) + 15;
ya•=0;
circle(xa,ya+70,2,2);
DISTX :=DI;
repeat
DISTX :=DISTX+0 .2;
xf :=round(xaax 1 DISTX / ESCALA) + 15;
yf :=round(yeaxg = 4 .3 !
SIRMAY(DISTX,CLASE) / ESCALAY / 1000);
draa(xa,ycentro+ya,xf,ycentro+yf,2);
drau(xa,ycentro-ya,xf,ycentro-yf,2);
xa:=xf;
ya :=yf;
until (DISTX >= DF) or (If > xaax+20);
if xf<=xeax then drau(xf,ycentro+ya,xf,ycentro-ya,2);
SUSRA :=true;
end;
PROCEDURE CalcPe(pp :real ;var pe:real);
PROCEDURE LECTURA;
var dir :stringl40l;
begin
getdir(3,dir);
if (dir = 'C:\sedue\sodelos')or(dir = 'C :\SEDUE\MODELOS') then
begin
assign(TI,'C :\ARCHIYOS\DATEOU .PAS');
(iI-} reset(Tl) ; {Sl+}
end
else
begin
assign(TI,'B:IARCNIVOS1DATEQU .PAS');
(fl-> reset(Tl) ; 010
end;
if ioresult = 0 then
begin
for i :=1 to 40 do read(T1,Tab[l,0,Tab[2,i1);
leidoD:=true;
end
else
begin
leidoD:=false;
textcolor(2);
ariteln(111,'El Archivo DATEQU .PAS no existe');
ariteln('Favor de verificar . [RET]') ;readln;
textcolor(3);
end;
end ;
( proc . lectura )
begin t prat . CaltPe >
if (not leidod) then LECTURA;
if leidoD then
begin
i :=0;
repeat
is : i+l;
until tTabIl,il >= pp)or(i>=40);
if i=1 then pe :=0 .01
else
pe:=Tab[2,i-17+(Tab[2,il-Tab[2,i-1])t(pp-TabIl,i-1l)l
(Tab[l,i]-Tab[l,i-l]);
end;
end ;
( proc . CalcPe >
PROCEDURE ODescoLiq;
begin
pvc :=-1;
repeat
CAPTAtpvc,'Presion Vapor del Contaminante (ea/Ng)','Pvc ----> ');
until (pvc >= Oland (pvc (= 760);
pp:=pvc/7604100;
CalcPe(pp,pe);
NUESTRA (' B ' ,10,8, ' PresVap=' , pp , ' 7.') ;
NUESTRA ('11',10,9,'FuenVap=',pe,' t');
l o: 0;
repeat
C TA(lo,'8asto liquido derraaado (Ltslseg)','Lo ----> 'l;
until (lo > 0);
NUESTRA ('B',10,10,'lo=',lo,' Lt/s'1 ;
ro := 0 .0;
repeat
CAPTA(ro,'Peso Especifico del Contaminante (Kg/Lt)','Ro ----> '1;
until (ro > 0);
Do : : ro S lo t 1000 ;
EMUHIF:= Do 1 pe / 100 ;
end ;
( Procedimiento QDescoLiq }
PROCEDURE CalcXy;
var a,b,c,expon,logna,sigeYo :real;
coorl :integer;
begin
repeat
CAPTA(long,'Longitud del derrame (mts)','S ----> 'l;
until {long ) 0);
MUESTRA ('B',10,11,'S=',long,'mts');
sigmYo :=long / 4 .3;
tLASE :=upcase(CLASE);
coon := ord(CLASE) - ord('A') + 1;
a :=tsy[coorX,il;
b :=tsy[coorX,21;
c=0.0•
.
,
lcqna :=(sigoYo - c) / a;
if (logna ( le-30) then logna := le-30;
expon :=( 1/b ) ! In( logna );
if expon(-80 then expon :=-80;
Xy :=exp( expon 1/1000;
( Xy en Kilometros }
end;
( Procedimiento Cady )
PROCEDURE AYUDA;
var CH:char;
( AYUDA DERRAMES )
begin
textcolor (2);
letl(2,2,'6asto Contaminante en la Fuente (g/sg)');
textcolor(3);
repeat
letl(2,4,'Derrame Contaminante Liquido o Gas?');
leti(15,6,' (1/g) ---) ') ;read(KBD,CH);
CH:=upcase(CH) ;Mrite(CH);
if ord(CH) <> 13 then LID := CH;
until LID in I'L','S'l;
letl(1,4,BLARC840);
let 1(1,6,BLAHCO40);
if LI0='L' then
begin
ALTURA : 0;
repeat
let1(2,4,'6asto '0' Conocido o Desconocido ?');
letl(15,6,' (c/d) --) ') ;read(KBD,CH);
CH:=upcase(CH) ;ariteECH) ;
if ord(CH) <> 13 then NO :=CH;
until KO in I'C','0'];
letl(1,4,BLANCO40);
letl(1,b,BLANC040);
end
else
begin
repeat
CAPTA(ALTURA,'Altura de la fuga (m)','H ---->');
until (ALTURA>=0) and (ALTURA(1000);
NUESTRA ('B',10,5,'H: ',ALTURA,'m');
end;
if NOr-'D' then ODescoLiq
else
repeat
CAPTA(ENUNIF,",'O ----> ');
until (ENUNIF ) O);
NUESTRA (1'00,3,'0= ',ENUNIF,'g/s');
letitl,2,BLANC040);
repeat
CAPTA(VELOC,' Velocidad promedio del Viento (m/sg)','U ----> '1;
until IVELOC > 0) and (VELOC ( 50) ;;
NUESTRA ('B',10,4,'Ú= ',VELOC,'m/s');
end ; (
AYUDA DERRAMES ]
PROCEDURE NODELODe;
begin
repeat
TEXTOI(true);
repeat
CAPTA(J1,'Isoconcentracion a localizar (ciligr/c3)','Conc . --->'1;
until (JI > 0) ;
NUESTRA t'B',10 0 2,'Conc=',JI,'sg/s3');
TEXT01(true);
AYUDA;
ESTABILIDAD;
if LIO='L' then CalcXy;
TEXTOI(true);
letl(3,4,'Ouieres codificar datos? (sin) ');
read(KBD,NO);
let 1(1,4,BLANC040);
until (upcase(NOX(>'S');
putpic(CUADGRA,0,140);
TEXT02;
textcolor(2);
let](20-lengthtNo.Con) Div 2 ,2,NomCon);
TEXTOI(true);
textcolor(2);
letl(2,1,'NODELO 6AUSSIANO PARA FUGAS Y DERRAMES');
textcolor(3) ;
MUESTRA ('A',2,3,'O=',EMUNIF,' gls');
MUESTRA
s/s');
MUESTRA ('A',19,3,'Conc=',JI,'Miligr/s3');
if LID='L' then NUESTRA ('A',2,5,'S=',long,'sts');
if LIB 'L'then NUESTRA t'A',19,4,'Z Evapor= ',pe," )
else NUESTRA ('A',19,4,'N=',ALTURA,'sts');
POSY : =0 .0;
P051 :=0 .0;
AREAAFECt'B');
TRIANGULD;
TEXTOI tfalse);
gotoxyt34,6);
writet'[RETI'1;
readln;
end ; ( Proc . NodeloDe )
BEGIN
( FUGAS Y DERRAMES }
SNBRA:=false;
cirscr ; .
raphcolorsode;
if not SYSRA then CUADRO;
TEXT02;
gotoxy(l,1);
textcolor(2);
write(' MODELO 6AUSSIANO PARA FUGAS Y DERRAMES ');
TEXTOI(true);
letl(5,3,'Noebre del Contasinante');
letl(2,5,'--) ');
readln(NosCon);
let115,3,BLANCO40);
letl(2,5,BLANC040);
repeat
if not SMBRA then CUADRO;
TEXT02;
gotoxy(1,l);
textcolor(2);
write(' MODELO 6AUSSIANO PARA FUGAS Y DERRAMES ');
TEXTOI(TRUE);
letl(3,3,'A) Correr el Modelo '1;
letl(3,4,'B) Escalas X , Y');
letl(3,5,'S) Salir ');
repeat
letl(5,6,'Opcion ----> ');
read(KBD,OPpuff);
OPpuff :=upcase(OPpuff);
write(OPpuff);
until OPpuff in ['A','B','S'll
case OPpuff of
'A' : begin
CUADRO;
NODELODe;
end ;
'B' :begin
ESCALAS;
graphcoloriode;
SRAFI(false);
if SUSRA then putpic(CUAD6RA,0,140)
else CUADRO;
TEXTOI(true);
end;
end;
until OPpuff='S';
END ;
t fugas Y Derrames }
{
}
{
MODELO --> Desanda Dioloquieica de Oxigeno - Oxigeno Disuelto
overlay PROCEDURE DROP;
€ $ I GRAPH, P3
var DboDesc,OdDesc,VolDesc,CoefDesOx,CoefAerea : real;
DboR,OdR,ConcOxSat,VallnOx,ConcDo : real;
Or,Oe,Lr,Le,Cr,Ce,odReg : real;
yl,y2,ex1,ex2 : real;
procedure LET(X,Y:integer ;osg :LETRER01;
begin
gotoxy (X, Y);
urite(esg);
end;
PROCEDURE DESPOATOS;
begin
HUESTRAI'A' 1 2,3,'Lo =',DboDesc,' eg/l'1;
HUESTRAI'A',2,4 2 'Co =',VallnOx,' eg/l');
HUESTRA('A',2 1 5 5 'Cs =',ConcOxSat,' eg/l');
HUESTRAI'A',23,31 'K1 =',CoefDesDx,' lldía');
HUESTRA('A',23,4,'K2 =',CoefAerea,' 1/dia'l;
HUESTRA('A',23,59 'U =',VelocR,' e/s'1;
textcolor(2);
gotoxy(11,l) ;urite('STREETER Y PHELPS');
gotoxy(17,21 ;aritel'Datos :');
end;
PROCEDURE CUADRO;
begin
6RAFI(true);
for i :=0 to 12 do
dras(l5,i$12,315,it12,l) ;
for i :=O to 10 do
dras(it30+15,0,ií30+15,132,1) ;
( horizontales l
{ verticales >
TEXT02;
gotoxy(35,17);
if ESCALAR >=1 then arite(ESCALAX :2,'Kes')
else write((ESCALAX11000) :3,'ets');
gotoxy(3,16) ;arite(LI :2,' mg/l');
gotoxy(3,11 ;urite(LS :2,' eg/l');
getpic(CUADSRA,0,0,319,140);
end;
PROCEDURE GRAFICA;
var xa,xf,dis :integer;
yal,ya2,yfl,yf2,delta,exponl,expon2 :real;
begin
>
CoefDesox :=CoefDesox/86 .4;
CoefAerea :=CoefAerea/86 .4;
S1ORA : =f al se;
TEXT02;
GRAF1(false);
putpic(CUAD6RA,0,140);
xa:=15;
gotoxy(35,11) ;write(ESCALAX :2,'Kes');
gotoxy(3,16) ;write(LI :2,' mg/l');
gotoxy(3,1) ;write(LS :2,' eg/i');
draw(252,10,262,10,2);
draw(252,18,262,18,3);
draw(256,18,258,18,0);
draw(252,26,257,26,2);
if odReg <> 0 then
( Reglasento de OD )
fwr i :=0 to 29 do
begin
draw(15+i410,Round(
20+it10,Round(
draw(20+it10,Round(
24+id10,Round(
120-120
120-120
120-120
120-120
t
t
!
E
odReg
odReg
odReg
odReg
l
I
1
I
LS
LS
LS
LS
) ,
),2);
) ,
),0);
end;
TEXT02;
let(34,2,'D90');
let(34,3,'OD');
let(34,4,'0D reg');
ya1 := DboDesc ;
( ya1 => Inicio del DUO X = 0 }
ya2t= Vailnox ;
I ya2 =) Inicio del OD X = 0 )
DistDesc := 0 .0 ;
delta : ESCALAX i 0.02 ;
repeat
DistDesc := DistDesc + delta;
xf :=Round(300 $ DistDesc / ESCALAR) + 15;
exponi :=-CoefDesBx t DistDesc / VelocR;
if exponi < -80 then exponl :_ -80;
yfi :=DboDesc 4 exp ( exponi ) ;
draw(xa ,Round( 120-120 t yal/LS )
xf ,Round( 120-120 t yfi/LS ) , 2);
yal :=yfl;
(}
expan2:=-CoefAerea t DistDesc / VelocR;
if expon2 ( -80 then expon2 := -80;
yf2 :=CoefDeSox # DboDesc l ICoefAerea-CoefDesox) t (exp{exponl)-exp(expon2));
yf2 := yf2 + {Conc0z5at-VallnDx) t exp 1 expon2 ) ;
yf2 := ConcOxSat - yf2 ;
if yf2 ( 0 then yf2 := 0;
drawl xa
,Round( 120-120tiya2-LI)/(LS-LI) )
(xf+xaldiv 2,Round( 120-1201((ya2+yf2)/2-LI)l(LS-LI) ) , 3);
draw((xa+xf)div 2,Round( 120-120t((ya2+yf2)/2-LI)/tLS-LI1 ) ,
xf
,Round( 120-120t(yf2-LI)/(LS-LI) ) , 0);
xa :=xf;
ya2 :=yf2;
until (DistDesc >= E5CALAX) or ixf>=315);
textcolor(1);
if odReg=4 then
let(12,17,'Clase Uso DA,DI y DII')
else if odReg=3.2 then
let(12,17,'Clase Uso DI11 y DIV');
textcolor(3);
getpic(CUAD6RA,0,0,314,140);
CoefDesox :=CoefDesox t 86 .4;
CoefAerea:=CoefAerea t 86 .4;
end ;
( órafica )
PROCEDURE ESCALAS;
var opcion :char;
begin
texteode(c40);
clrscr;
tex tcolor (2);
gotoxyi5,1) ;writet'LINITE NAXINO (Distancia) :');
textcolor{3);
let{3,3,'A) 1 ats');
let(3,4,'B) 3 Km');
let13,5,'C1 5 Kes');
let(13,3,'D) 10 Km');
let113,4,'E) 15 Kos));
let(13,5,'F) 25 Kes');
let{25,3,'6) 50 Kes');
lett25,4,'H) 75 Kes'l;
let(255 5,'I) 100 Kes');
repeat
let(12,7,'Opcion ----> ');
read(KBD,opcian) ;+:rite(opcion);
opcion :=upcase(opcion);
until opcion in i'A' . .'I'];
case opcion of
'A' :ESCALAI :=1;
'8' :ESCALAR : =3 ;
'C' : ESCALAI : 5;
'0' :ESCALAX :=10;
'E' :ESCALAX :=15;
'F' :ESCALAX :=25;
'6' :ESCALAX :=50;
'H' :ESCALAX :=75;
'I' :ESCALAX :=100;
end;
graphcoloreode;
if not S116RA then CUADRO;
if dat then
begin
DESPDATOS;
6RAFICA;
TEXTO! (false);
gotoxy(20 1 7);
write('(RET)');
readln;
end;
end;
( Escalas }
PROCEDURE DATOS;
var opl,op :char;
begin
repeat
if dat then CUADRO;
TEXTOI(true);
dat :=true;
opl := C';
let(1,2,'Concent . DBO Despues de Descarga (og/))');
repeat
gotoxy(5,4) ;write('Conocida o Desconocida (c/d) --) ');
read(KBD,CH) ;CH:=upcase(CH) ;write(CH);
if ord(CH)(>13 then opt :=CH;
until op! in I'C','D'l;
gotoxy(l,4) ;urite(BLAHC040);
if upcase(opl) _ 'D' then
begin
repeat
capta(Or,'6asto del rio (e3/s)','Or ----> ');
until (Or ) 0);
repeat
capta(Lr,'DBD del Rio antes de la descarga(eg/l)','Lr ----> ');
until fir ) 0);
repeat
captal0e,'Gasto de la descarga (s3/s)','Oe ----> 'l;
until (9e ) O);
repeat
capta(Le,'DBO de la descarga (vg/l)','Le ----> ');
until ILe > 0) ;
DboDesc :=(Qrilr + Oe*Le)/(Or+Oe);
end
else
repeat
capta(DboDesc, " ,'lo ----> '1;
until DboDesc ) 0;
HIIESTRAt'B',10,2,'Lo =',DboDesc,' ag/l');
let{1,2,BLAHC040+");
op :='C';
let(1,2,'Concentracion Oxigeno Saturacion(ag/1)'l;
repeat
gotox05,4) ;write{'Conocida o Desconocida {c/d) --> 'l;
read(KBD,CH) ;CH :=upcase{CH) ;write(CH);
if ord(CH)013 then op :=CH;
until op in 1'C','D'1;
let(l,4,BLAHCO40);
if upcase(op) _ 'D' then
begin
repeat
capta(TespR,'Teaperatura del Rio (grad .Centig)','T ----> ');
until (TeapR ) -20)and(TeepR ( 50);
ConcOxSat := 475 / ( 33 .5 + TeapR l;
end
else
repeat
capta(ConcOxSat,','Cs ----> '1;
until ConcOxSat > 0;
HI)ESTRA('B',10,35 'Cs =',ConcOzSat,' ag/1'1;
gotoxy(l,2) ;writelBLANCO40);
let(l,2,'OD-Rio Despues de Descarga (ag/l) ( Cs');
repeat
gotoxy(5,4) ;write('Conocida o Desconocida (c/d) --> 'l;
read(KBD,CH) ;CH : :upcase(CH) ;write(CH);
if ord(CH)(>13 then op :=CH;
until op in ('C','D');
let(I,4,BLAHC040);
if upcaselop) = 'D' then
Repeat
if opt='C' then
repeat
capta(Qr,'6asto del Rio . (a3/s)','Or ----> '1;
until (Or > 0);
repeat
capta(Cr,'OD del Rio antes de la Descarga . (ag/l)','Cr ----> ');
until (Cr ) 0);
if opl = 'C' ' then
repeat
°
capta(Qe,'Basto de la Descarga . (a3ls)','Oe ----> 'l;
until (Qe > 0) ;
repeat
capta(Ce,'OD de la Descarga . (sg/l)','Ce ----> ');
until (Ce ) 0);
ValInOx :=(Br*Cr + DetCe)ltOr+Del;
if VallnOx > ConcOxSat then
begin
let(3,5,"6"6+'Valores Inapropiados . Co ) Cs IRETI');
readln;
let ll,5,BLANCO40);
end;
Until VallnOx < ConcOxSat
else
repeat
capta(VallnOx,'','Co ----> ');
until tVallnOx > 0) and (VallnOx ( ConcOxSat) ;
let(l,2,BLANC040);
NUESTRA('B',10,4,'Co =',ValInOx,' sg/1');
repeat
capta(CoefDesOx,'Coeficiente de Desoxigenacion .
until ( Coeffes0x >= 0);
NUESTRA('B',10,5,'K1 =',CoefDesOx,' 1/dia');
');
repeat
capta(CoefAerea,'Coeficiente de Aereacion . ) K1','K2 ----> ');
until ( CoefAerea > 01and(CoefAerea > CoefDesOx);
NUESTRA('B',l0,b,'K2 =',CoefAerea,' 1/dia');
repeat
capta(VelocR,'Velocidad del Rio (s/seg)','U ----> •);
until (VelocR ) 0)and(VelocR ( 20);
NUESTRA('B',10,7,'U =',VelocR,' s/s');
textcolor(2);
Iet(7,1,'Sraficar Reglasento de OD (sg/1)');
textcolor(3);
let(1,3,'A) Potable y uso Recreativo .OD sin 4 .0');
let(1,4,'B) Para uso Indust . y Agric .OD sin 3 .2');
let(1,5,'C) No Braficar Reglasento');
op•='C';
repeat
let(4,7,'0pcion ----> 'l;
read(KBD,CN) ;CN :=upcase(CN) ;write(CB);
if ord(CH)(>13 then op :=CH;
until op in
case op of
'A' :odReg :=4.0;
'B' :odReg :=3 .2;
'C' :odReg :=O;
end;
TEXTO!(true);
let(2,4,'Ouieres codificar datos (sin) ---) ');
read(KBD,op);
let(1,4,BLANC040);
until upcase(o)()'S' ;
DespDatos;
if DboDesc > ConcOxSat then LS :=RoundtDboDesc + 1)
else LS :=Round(ConcOxSat+1);
end ;
(
Datos }
PROCEDURE ModeloDbo;
begin
TEXTOI(true);
DATOS;
SRAFICA;
TEXTOI tfal se);
gotoxyt20,7) ;urite('(RET)');
readin;
end;
PROCEDURE CalcPos;
var x :integer;
y1,y2,exponi,expon2,tep :real;
begin
if NOT dat then ModeloDbo;
CoefDesox :=CnefDesox / 86 .4;
CoefAerea :=CoefAerea / 86 .4;
TEXT01ttrue);
repeat
CAPTA(DistDesc,'Distancia a Medir DBO-OD tKss)','DistX ----> '1;
until (DistDesc >= 0 );
x :=Roundt300 t DistDesc / ESCALAR) + 15;
exponl : = -CoefDesOx t DistDesc / VeloCR;
if exponl ( -80 then exponl :_ -801
yl : :DboOesc t exp t exponi ) ;
circletx ,Roundt 120-120ttyl-LI1/tLS-LI) ) ,3 , 2);
}
(
expon2 : = -CoefAerea t DistDesc / VelocR;
if expon2 ( -80 then expon2 :_ -80;
y2 : =CoefDesox t DboDesc / tCoefAerea-CoefDesox) tl exptexponll-exptexpon2));
y2 : : y2 + tConcDxSat-ValInOx) t exp t expon2 ) ;
y2:= COncOxSat - y2 ;
if y2(0 then y2:=0;
circlets ,Round( 120- 120t(y2-L1) /(LS-LI) ) ,3 , 2);
textcolor(3);
gotoxyt5,2) ;aritet'En X = ' 0 DistDesc :3:3,' Kos') ;
gotoxytl,4) ;writet'El DB0 es =',yl :3 :2,' y El 0D es =',y2 :3 :2,' mg/PI;
gotoxyt20,6) ;writet'(RET>');
readln;
CoefDesox :=CoefDesox $ 86 .4;
CoefAerea :=CoefAerea i 86 .4;
end;
BEGIN
VelocR :=-1 ; ESCALAX :=20 ; SYGRA :=true;
LI :=O ;
dat :=false;
LS:=30 ;
DboDesc :=- l ; ValInOx :=-1 ;
ContDxSat :=-1;
CoefDes0x :=-l ; CoefAerea :=-l;
text®ode(c40);
windou(l,l,40,25);
clrscr;
repeat
graphcolor®ode;
if SHGRA then CUADRO
else putpic(CUAD8RA,O,140);
TEXT02;
textcolor(2);
gotoxy113,1) ;writet'STREETER Y PHELPS');
TEXTOittrue);
textcolor t3);
gotoxy110,1) ;writet'A :Correr el Itodelo');
gotoxytl0,2) ;write('B :Calcular DBO y OD en Post))');
gotoxy(10,31 ;writet'C :Escala X Kos');
gotoxyt10,4) ;writet'S :Salir');
repeat
gotoxytl3,6) ;writei'Opcion --> ');
read(KBD,ch);
ch:=upcase(ch) ;writetch);
until ch in I'A' . .'C','S'];
case ch of
'A' :NodeloDbo;
'B' :CalcPos;
'C' :ESCALAS;
end;
until ch = 'S';
clrscr;
END;
(
?
)
(
overlay PROCEDURE TERNICO;
( $I 6RAPH .P)
var
6astoR,AnchR,ProfR,DistRelaj,reg : real;
6astoDesc,TespDesc,TespFin$ez,VelocV : real;
PROCEDURE LETIX,Y :ItTEGER ;NS6 :LETREROI;
begin
gotoxy(X,Y);
write(ssg1;
end;
PROCEDURE DESPDATOS;
begin
NUESTRAt'A',6,3,'R =',6astoR,'s3ls');
NUESTRAI'A' 9 6,4,'T =',TespR,'gC'1;
NUESTRA('A',6,5,'B =',AnchR,'s');
NUESTRAI'B',17,16,'DistRelai =' 1 DistRelaj,'Kss'1;
NUESTRAt'A',26,3,'R " =',6astoDesc,'s3/s');
RUESTRA('A',26,4 9 'T" =',TespDesc,'gC'1;
NUESTRAt'A',26,5,'U =',VelocV,'s/s');
AUESTRA('A',26,6,'To =',TespFinNez,'gC');
textcolor(21;
letill,l,'DESCARGAS TERNICAS');
let(17,2,'Datos :'1;
end;
PROCEDURE CUADRO;
begin
6RAF1(true);
for i :=0 to 12 do
draw(l5,i$12,315,i112,11 ;
t
for i :=0 to 10 do
drawti$30+15,0,i$30+15,132,1) ;
TEXT02;
gotoxy(35,17) ;write(ESCALAX :3,'Kss');
gotoxy(3,16) ;write(LI :2,' gC');
gotoxy(3,1) ;write(LS :2,' gC');
getpictCUAD6RA,0,0,319,140);
end;
PROCEDURE 6RAFICA;
var xa,xf,dis:integer;
ya,yf,delta,expon,FAC :real;
begin
SUSRA :=false;
TEXT02;
6RAFI (false) ;
horizontales
(
verticales
I
l
xa :=15;
ya :=Teopfinl(el ;
j :=0;
t Linea Teaperatura Reglamentaria
dis :=Round!120-1201(TeapR-LI+reg)J(LS-LI));
for i :=1 to 30 do
begin
draw(15+j,dis,
18+i,dis,2);
drawll9+j,dis,
22+j,dis,3);
draw{23+j,dis,
25+j,dis,0);
j•=j+10;
end ;
1 Linea Teaperatura del Rió )
draw115 ,Round!120-120t(TeapR-LI)I(LS-LI)),
315 ,Roundt120-1201(TeapR-LI)/(LS-LI)), 3);
draw{138,10,148,10 9 2);
drawl138,18,148,18,3);
drawl138,26,141,26,2);
draw(141,26,145,26,3);
TEXT02;
let120,2,'Teap .Rio+Descarga');
let(20,3,'Teap .Rio');
let(20,4,'Teop .Reglaa .=T+2 .5');
gotoxy(35,17) ;write(ESCALAX :3,'Kas');
gotoxyt3,16) ;write(LI :2,' gC');
gotoxy(3,1) ;write(LS :2,' gC');
DistDesc := 0 .0 ;
delta:=ESCALAX t 0 .01 ;
repeat
DistDesc := DistDesc + delta;
xf :=Round(300 t DistDesc I ESCALAR) + 15;
expon :=-DistDesc / DistRelaj;
if expon ( -80 then expon := -80;
yf :=TeapR + (TeapfinMez - TeapR) t exp t expon ) ;
draw(xa ,Round( 120-120tlya-LI)/(LS-LI) ) ,
xf ,Round( 120-120(yf-LI)/lLS-LI) ) , 2);
xa :=xf;
ya :=yf;
until (DistDesc >= ESCALAR) or (xf >=315);
getpic(CUADSRA,0,0,319,140);
end;
PROCEDURE ESCALAS;
var opcion : char;
begin
textaodetc40) ;
clrscr;
texttolort2l;
lett5,1,'LIMITE MAIM (Distancial :');
textcolort3);
lett3,3,'A) 1 Ko'1;
let(3,4,'8) 10 Kas'l;
let(3,5,'C) 20 Kos');
lett13,3,'D) 30 Ka'1;
lett13,4,'E) 50 Kos');
let(13,5,'F) 80 Kas'1;
let(25,3,'61 100 Kos'l;
let125,4,'H) 200 Kas'l;
lett25,5,'l) 300 Kas'l;
repeat
lett12,1,'Opcion ----> '1;
readtKBD,opcion) ;writetopcion);
opcion :=upcasetopcion);
until (Ipciao in t'A' . .'I'];
case opcion of
'A' :ESCALAX :=1;
'8' :ESCALAX :=10;
'C' :ESCALAX:=20;
'D' :ESCALAX :=30;
'E' :ESCALAX :=50;
'F' :ESCALAX :=80;
'6' :ESCALAX :=100;
'H' :ESCALAX :=200;
'I' :ESCALAX :=300;
end;
graphcoloroode;
if not SVGRA then CUADRO;
if dat then
begin
DESPDATOS;
6RAFICA;
TEXT01(f al sel;
let(20,7,'1RET]');
readln;
end;
end;
PROCEDURE CalcToDyV;
begin
TeapfinNez := 1 6astoR t TeapR + 6astoDesc t TeapDesc ) I ( óastoR + 6astoDesc ) ;
DistRelaj
DistRelaj
f VelocR
end ;
:= tóastoR t 864 )/anchR;
:= DistRelaj / 10 .01 t TeapFinNez + 0 .95 +
10 .62 + 0 .37 t VelocV) t 11 + 0 .87 t exp 10.05 t TeapFinMez) 1 1;
:= Basta / t AnchR t ProfR l ; ?
PROCEDURE DATOS;
var mo : char;
begin
CUADRO;
TEXTO!(false);
dat :=true;
repeat
repeat
CAPTA(óastoR,'Oasto del rio (e3/segl','R ----> ');
until BastoR > 0;
MUESTRA('B',9,2 5 'R =',GastoR,'a3/s');
repeat
CAPTAtleepR,'Teeperatura del Rio (grad .Centig)','T ----> ');
until (TempR > -5) and (TeepR ( 100);
MUESTRA('B',9,3,'T =',TespR,'gC');
6RAF1(false);
TEXT011false);
repeat
CAPTA(AnchR,'Anchura del rio (mts)','B ----> ');
until AnchR > 0;
MUESTRA('8',9,4,'8 =',AnchR,'a');
repeat
CAPTA(SastoDesc,'Basto de la Descarga (e3lseg)','R" ----> '1;
until óastoDesc > 0;
M(R:STRA('8',26,2,'R" =', GastoDesc,'o31s');
repeat
CAPTA(Tempfesc,'Teep . de la Descarga (grad .Centig)','T" ----> ');
until (TeepDesc > -273) and (TeopOesc ( 300 );
NUESTRA('B',26,3,'T" =',TeepDesc,'gC');
repeat
CAPTA(VelocV,'Velocidad media del Viento lets/seg)','U ----> ');
until (VelocV > 0) and (VelocV (= 300);
MUESTRA('D',26,4,'Ú" =',VelocV,'e/s');
CalcToDyV;
MUESTRA('B',26,5 1 'To=',TeopFinlez,'gC');
MUESTRA('B',22,6 1 'DisRel =',DistRelai,'Kms'l;
let(5,3,'Ouieres modificar datos (s/n) ');
let(13,5,'----> ');
read(KDD,eo);
mo :=upcaseteo);
let (5, 3,'
' );
let(13,5,'
until eo<>'S';
putpic(CUADSRA,0,140);
TEXTOI(true);
DESPDATOS ;
');
if tempR ( tespDesc then
begin
reg:=2 .5 ;
i Temp . Max . Reg l
:=Trunc(
(TespFinMez+5)/10+1
) $ 10;
LS
LI :=Trunc( (TespR-5));
end
else
begin
reg :=-2.5 ;
( Temp . Max . Reg >
LS: :Trunc( (TespR+5)110+1 ) t 10;
LI :=Trunc( (TempFinMez-5));
end;
end ;
t Proc
Datos
l
PROCEDURE,ModeloDT;
begin
TEXTOI(true);
DATOS;
ORAFICA;
TEXT01(false);
let(20,7,'(RETI');
readln;
end;
PROCEDURE TEMP;
var x,y : integer;
expon,temp : real;
begin
if NOT dat then DATOS;
TEXTOI(true);
repeat
CAPTA(DistDesc,'Distancia a Medir Temperatura (Kss)','DistX ----> '1;
until (DistDesc )= 0 1;
x :=Round(300 # DistDesc / ESCALAR) + 15;
expon :=-DistDesc / DistRelaj;
temp := TespR + (TespFinMez - TempR) t exp(expon);
if expon < -80 then expon :_ -80;
y :=Round(120-120t(tesp-LI)/(LS-L111;
circle(x,y,3,2);
gotoxy(3,2) ;write('En X = ',DistDesc :3 :3,' Kos');
gotoxy(3,4) ; ::rite('La Tesp . es = ',tesp :3:2,' grad .Centigrados');
let (20,6,' (RETI' );
readln;
end;
BEGIN
AnchR :=O;
SastoR :=O; TespR :=-300 ;
ProfR :=0;
SastoDesc :=0 ; TespDesc : :-300;
VelocV:=-1 ; ESCALAX :=300 ; SUBRA:=true;
LS: =30 ;
LI : =10;
dat : =false;
text®odetc40);
window(l,1,40,25);
clrscr;
repeat
graphcolor®ode;
if SBSRA then CUADRO
else putpic(CUADBRA,0,140);
TEXTD2;
textcolor (2);
let(13,1,'DESCARSAS TERNICAS');
TEXTDiltrue);
textcolor(3);
lett1O,1,'A :Correr el Nodelo');
letllO,2,'B :Calcular Temp . en Pos(X)');
let{10,3,'C :Escala X Kos');
let(10,4 5 'S :Salir');
repeat
let(13,6,'Dpcion --> ');
read(KBD,ch);
ch :=upcaselch) ;writelch);
until ch in I'A' . .'C','S'];
case ch of
'A' :HodeloDT;
'B' :TENP;
'C' :ESCALAS;
end;
until ch = 'S';
clrscr;
END;
(
I
)
(
overlay PROCEDURE CONSULTA;
coast B30 = '
type lin = string 1801;
cocando ,lec,linea,noa,nouT,no;D,linT : lin;
var dir t
apf,api,linf,RENI,RENF : integer;
i,j,k,
ch,op,ops,
corre : char;
r : real;
archDat : file of lin;
T1 :text;
PROCEDURE LET(x,y,color,fondo :integer ; ssg :lin);
begin
gotoxy(x,y);
textcolor(color);
textbackground (fondo);
write(esg);
end;
}
(
PROCEDURE
SCROL;
procedure PANTA;
begin
clrscr;
j ' 4);
for i :=api to
apf
do
begin
`i
;2+1;
seek(archDat,il;
read(archDat,linT);
let(1,j,I1,0,linT);
end;
end;
procedure DESCTEXTOS;
var e :integer;
procedure NUEVE;
begin
window(i,RENI,80,RENF) ; C 3, 22}
gotoxy(1,1);
case corre of
'd' : if (apf ( lief) then
begin
tl;
apf :=apf
api :=api+í;
delLine;
seek(archDat,apf);
read(archDat,línT);
let(1,RENF-RENI+1,11,0,linT);
end;
'u' : if (api > 0) then
begin
api :api-1;
apf :=apf -l;
insline;
seek(archDat,apil;
read(archDat,linT);
let(1,1,11,O,linT);
end;
'D' : if (apf + (RENF-RENI) (= lief) then
begin
apf :=apf+(RENF-REND ;
api :=api+(RENF-RENI);
PANTA;
end
else
begin
if apf<>li .f then
begin
apf :=lief;
if (lief-(RENF-RENI)) >= 0 then api :=lief-(RENF-RENI)
else api :=0;
PANTO;
end;
end;
'U' : if (api - (RENF-REND >= O) then
( 19 >
begin
api :=api-(RENF-RENI);
apf :=apf-(RENF-RENII;
PANTA;
end
else
begin
if api<> 0 then
begin
api :=O;
if (lief) > (RENF-RENII then apf :=(RENF-RENII
else apf :=lief;
PANTA;
end;
end;
'H' : if apiCO then
begin
api :0;
if (RENF-RENI) ( lief then apf :=RENF-RENI
else apf :=lief;
PANTO;
end;
'E' : if apf<>lisf then
begin
if (RENF-REND ( lief then api :=lief-(RENF-RENI)
else api :=0;
apf :=1ief;
PARTA;
end;
end; ( del case }
end;
begin
{ DESCTEXTOS }
corte :='u';
window(1,23,80,25);
let(01,1,4,15,chr(241);
let(02,1,6,0,'I 1 linea ]');
let(15,1,4,15,chr(251);
let(29,1,4,15,'PgUp');
let(49,1,4,15,'PgDn');
let(16,1,6,0,'I 1 linea 1'1;
let(33,1,6,0,'I I Pagina '+chr(24)+' 1'1;
let(53,1,6,0,'( 1 Pagina '+chr(25)+' ]');
1et(69,1,4,15,'ESC');
let(72,1,6,0,'ISalir ]');
let(30,3,4,15,'HoOe');
let(50,3,4,15,'End'1 ;
let(34,3,6,0,'(Inicio ]');
lett53,3,6,0,'(Fin 1'1;
while corre(}chr(27) do
begin
. window(1,23,80,25);
gotoxy(80,21;
read(KBD,corre);
if ord(corre)=27 then
if keypressed then
begin
read(KBD,correl;
if ord(corre) in (71,72,73,79,80,81] then
begin
case ord(corre) of
71 : corre :='H' ; ( Hose
]
72 : corre : : 'u' ; ( Flecha arriba }
73 : corre : : 'U' ; ( PgUp
}
}
79 : corre :='E' ; ( End
80 : corre :='d' ; ( Flecha abajo }
}
81 : corre :='D' ; ( PgDn
end;
nueve ;
( proc para hacer scroles }
end;
end;
end;
end ; ( Proc . DESCTEXTOS }
begin
( proc SCROL }
liof :=FileSize(archDat)-1;
api :=0;
if lief ( RENF-RENT then apf :=lief else apf :=RENF-RENI;
window(1,RENI,80,RERF1;
gotoxy(1,1);
PANTA;
deScTextos;
close(archDat);
window(1,1,80,24);
end ;
-------------------------------------------------------------------------
PROCEDURE BIBLIO;
begin
getdir(3,dir);
if (dir = 'C:\sedue\oodelos')or(dir = 'C :\SEDUE\MODELOS') then
begin
assign(archDat,'C :tARCNIVOS\BIBLIO .DAT');
{SI-1 reset(archDat) ; {SI+)
end
else
begin
if (dir{1 K >'C') or (dirlll(>'c') then
begin
assign(archDat,'B :\ARCHIVOS\BI IO .DAT');
($I-} reset(archDatl ; {$I+}
end;
end;
if ioresult z 0 then
begin
clrscr;
LET(12,1,4,0,'BIBLIOSRAFIA DE MODELOS DE DISPERSION ATMOSFERICA'1;
LET(12,2,14,0,'
AIRE
Y ASUA'l;
SCROL;
end
else
begin
LET(1,24,4,0,'El archivo BIBLIO .DAT no existe, favor de verificar .
writel1,"6,"61 ; readln;
end;
(RET>'l;
window(1,1,80,24);
clrscr;
end ; { PROC . BIBLIO }
(
>
PROCEDURE SUSPEL;
begin
getdir(3,dir);
if (dir = 'C :\sedue\oodelos'lorldir = 'C :\SEDUE\MODELOS') then
begin
assign(archDat,'C :\ARCHIVOS\SUSPEL .DAT');
{SI-) reset(archDatl ; ($I+}
end
else
begin
assign(archDat,'B :\ARCHIYDS\SUSPEL .DAT');
{SI-) reset(archDat) ; (11+}
end;
if ioresult = 0 then
begin
clrscr;
LET(6,1,4,0,'DATOS SOBRE SUSTANCIAS PELIGROSAS');
');
LET(1,3,9,0,'
9,0,'1
Toxicidad
1
Volatilidad,
Presion
1');
LET11,4 1
LET(1,5,9,0,'1 Material Peligroso 1 1ITLV(ppa)1 TLV(mg/m3)1 de vapor a 20 grad .centig.(');
gotoxy(l,7);
textcolor(11);
RENI :=6;
RENF :=22;
SCROL;
end ( del if }
else
begin
LET(1 1 24,4,0,'El archivo B :SUSPEL .PAS no existe, favor de verificar . <RET>');
write("6,"6,1) ; readln;
end;
end ;
( PROC . SUSPEL }
}
(
PROCEDURE NIVELES;
begin
getdir(3,dir);
if (dir = 'C :\sedue\modelos'lor(dir = 'C8\SEDUE\NODELOS') then
begin
assign(arch0at,'C :\ARCHIVOS\NIVELES .DAT');
($1-} resettarch0at) ; (1I+}
end
else
begin
if (dirlilo'C') or (dirE171)'c') then
begin
assign(archDat,'B:\ARCHIVOSINIVELES .DAT');
($1-} reset(archDat) ; (fl+l
end;
end;
if ioresult = 0 then
begin
clrscr;
LET(17,1,4,0,'NIVELES MAXIMUS PERMISIBLES DE CONTAMINANTES');
LET11 , 30, 0 1 ,I
LET(1,4,9,0,'1
LET(1,5,9,0,'1 Producto Riesgoso
1
Cantidad Minima
1
Cantidad Minima
1 Para Ser Notificada 1 Para ser Nonitoreada
textcolor(11);
RENT :=6;
RENF :=22;
SCROL;
end
else
begin
LET(1,24,4,0,'El archivo NIVELES .DAT no existe, favor de verificar . <RET>');
readln;
write("6,'6,"6) ;
end ;
);
window(1,1,80,24);
clrscr;
end;
)
(
PROCEDURE ESTANDARES;
var nusl,nue2,nus3 : real;
NO : char;
nus4 : integer;
begin
ch :='?';
getdir(3,dir);
if (dir = 'C :\sedue\sodelos'1or(dir = 'C :\SEDUE\NODELOS') then
begin
assign(Ti,'C :\ARCHIVOS\SUSTANCI .PAS');
(SI-1 reset(TI) ; (SI+I
end
else
begin
assign(T1,'B :\ARCHIVOS\SUSTANCI .PAS');
($1-) reset(T11 ; (11+I
end;
if ioresult = 0 then
while (not eof(T1)) and (ord(ch1027) do
begin
clrscr;
LET(4,1,4,0,'ESTANDARES DE
CALIDAD
textcolor(61;
readln(T1,nos) ;LET((60-length(nos)) div 2,3,14,0,noel;
readln(T1,lec1;
LET(1,4,9,0,'
LET(1,5,9,0,' :
Pais
Niligrsls3 1
writeln;
writeln;
repeat
textcolor(11);
if lec='Mexico' then
begin
textcolor(14);
lec : ='N'+chr(130)+'xico';
end;
write(lecl ;write(copy(830,1,20-length(lecll1;
read(Tl,nusl);
read(TI,nus21;
PPN
DEL
1 Tieepo Promedio
read(Tl,nue3);
write(nuol :8 :3,"1;
if nus2(-0 then write(" :141 else write(nus2 :11 :3,' '1;
write(nue3 :7 :0 I ");
readln(Tl,nue4);
case nus4 of
1 :if nue3=1 then writeln('Nora')
else writeln('Horas'} ;
AIRE');
1'1;
{
2 :if nue3=1 then writelnt'D'+chrt161)+'a')
else writelnt'Dias');
3 :if nue3=1 then writelnl'A'+chrt164)+'o')
else writelnl'A'+chr(164)+'os');
dia }
( ano y anos }
end;
readln(Ti,lec);
until (lec='OO') or eof(T1);
writeln ;LET11,24,6,0,'(ESC) Salir, (RET) Continuar ') ;readtOD,ch);
end
{ while y el if }
else
begin
LET11,24,4,0,'El Archivo SUSTANCIAS .PAS no existe, favor de verificar . tRET>');
srite("6, 46,"6);
readln;
end;
end;
(
}
PROCEDURE DESCRIPCIOII;
var ops :char;
procedure DESCMDDELOSteodelo :char);
var noe,arch : lin;
begin
( DESCNODELOS }
ch•='?';
case nodelo of.
'A' :begin noe :='GAUSSIANO : PUFF' ;
arch :='ARPUFF .DAT' ; end;
'D' :begin noe :='6AUSSIANO : ISOCONCENTRACION Y POSICIONtX,Y,11' ;arch :='ARISO .DAT' ; end;
'C' :begin noe:='6AUSSIANO : FUGAS Y DERRAMES' ;
arch :='ARFUGA .DAT' ; end;
arch :='ARSTREET .DAT'end;
'D' :begin non :='STREETER Y PHELPS : ODO-DO' ;
'E' :begin noa:='I .A.E .A : DESCARGAS TERMICAS' ;
arch :='ARTERMO .DAT' end;
end;
getdirt3,dir);
if (dir='C:tsedueloodelos') or tdir : 'C :iSEDUEUMODELOS') then
begin
assigntarchDat,'C:\ARCHIVOS\'+arch);
{4I-} resettarchDat) ; (11+}
end
else
begin
assigntarchDat,'8 :1ARCHIVOSI'+arch);
{8I-} resettarchDat) ; (11+)
end;
if ioresult=O then
begin
clrscr;
lett18,1,4,0,'DESCR I PCI ON DEL MODELO :');
lett4O-lengthtnos) div 2 ,2,14,0,noe);
SCR;
end (if >----> while )
else
begin
lettl,24,4,0, 46"61+'E1 archivo '+arch+' No se encontro (RET>') ;
readin;
end;
clrscr;
end ; ( PROC. DESCNDDELOS >
begin ( DESCRIPCION }
repeat
texteode (c80) ;
uindou(l,l,80 0 24);
clrscr;
LET14,1,4,14,' DESCRIPCION
LET(10,35 14,0,'
A I R E');
LET(10 5 5,11,0,'A ) 6AUSSIANO : PUFF');
DE
MODELOS ');
LET(10,6,11,0,'B ) GAUSSIANO : ISOCONCENTRACION Y POSICION (X,Y,I)');
LET(10,1,11 1 0,'C ) GAUSSIANO : FUGAS Y DERRAMES');
LET(10,9,14,0,'
A G U A');
LETi10,1l,1l,0,'D ) STREETER Y PHELPS : D80-OD');
LET(10,12,1I,0,'E ) I .A.E .A . : DESCARGAS TERMICAS');
LET(10,11,11,0,'S ) SALIR');
repeat
LET(40,22,6,O,'Opcion ----) ');
read(KBD,ops) ;ops :=upcase(ups);
urite(ops);
until ops in I'A' . .'E','S'l;
if ops(> '5' then DESCMODELOS(ops);
until ops = 'S';
end ;
( proc . DESCRIPCION >
(
}
BEGIN
texteode(c80);
repeat
clrscr;
RENI :=3;
RENF :=22;
LET(8,3,4,0,' C 0 N S U L T A R ');
LET(7,5,11,0,'A : Estandares De Calidad De Aire');
LET(7 0 7,11,0,'B : Niveles N'+chr(16O)+'xiuos De Concentraci'+chr(1b2)+'n Peruisibles');
LET(7,9,11,0,'C : Datos sobre Sustancias Peligrosas');
LETt1 5 13,11,0,'i : Descripci'+chr(162)+'n De Modelos');
LET(7,15,11,0,'2 : Blbliograf'+chr(1b1)+'a');
LET(7,21,11 1 0,'S : Salir');
repeat
LET(30,23,6,0,'Opcion ----> ');
read(KBD,op) ;
op : :upcase(op);
write top);
until op in
tase op of
'A': ESTANDARES;
'B':
NIVELES;
'C': SUSPEL;
'1': DESCRIPCION;
'2': BIBLIO;
end;
until op='S';
cl nu;
END;
{
)
PRO6iRAM
[SI
MODELOS;
BRAPH .P }
COMST
PI = 3.141592;
BLAMCOIO = '
BLAMC040 = '
TYPE LETRERO = string[40]1
LET40 = string[39I;
= string[80];
Lift
VAR
VelocR,nue,DISTX,EMUMIF,JI,POSY,POSZ,TIEMPO : real;
TeepR,DístDesc,VELOC,ALTURA,YMAX,DI,DF,Xy real;
Alcon,LIO,ch,CLASE,OP,DIAONOCHE,HUBOSIDAD,RADSOL char;
1,J,K,LS,LI,ESCALA,ESCALAX,ESCALAY : integer;
HooCCon,LISTESTAB,let,dir,noe,lec : LETRERO;
dat,silecd,leidod,nuevo,SMBRA boolean;
CUADBRA : array [1 . .5700]
of integer;
Tab
: array [1 . .2,1 . .40] of real;
tsy,tsz : array [1 . .8,1 . .3 I of real;
Ti : text;
}
[
i
Procedimientos Globales Para Los Includes
PROCEDURE GRAFI(liepia :boolean);
begin
graphwindowt0,0,319,140);
if limpia then filiscreenlO);
end;
PROCEDURE TEXTO!(limpia :boolean);
begin
uindowt1,19,40,25);
textbackground(3);
textcolor(3);
gotoxy(1,1);
if limpia then for i1=1 to 279 do write("I;
gotoxy(1,l);
end;
PROCEDURE TEXT02;
begin
windowt1,1,80,19);
textcolort3);
gotozytl,i);
end ;
}
PROCEDURE NUESTRA(VE :char ;PX,PY :integer ;LETI :LETRERO ;NUH:real ;uni :LETRERO);
begin
if VE='A' then TEXT01(false)
else TEXT02;
gotoxy(PX,PY1;
write(LETI);
or (LET1 = 'Conc=') then uritetNUN :3 :5,uni)
if (LET1 = 'CONCE
ENTRACION=
else
if NUN<10 .O then write(NI1M:4 :2,uni);
TEXTOItfalse);
end;
PROCEDURE CAPTA(var valret :real ;letl,let2 :LET401;
var dato :LETRERO;
err :integer;
begin
gotoxy(20-length(letl) div 2 , 31;
write(letl);
repeat
gotoxy(15,51;
write(let2l;
readidato);
val(dato,valret,errl;
until err = O;
gotoxy(1,3) ; vrite(BLANC040);
gotoxy(1,51 ; write(BLANC0401;
end;
PROCEDURE CARSA;
begin
getdir(3,dir);
if (dir = 'C:lsedue1oodelos')or(dir = 'C :ISEDUEINODELOS') then
begin
assign(Ti,'C :\ARCHIVOSIARCHI .PAS');
(*1-1 reset(T1) ; 01+1
end
else
begin
assign(Ti,'B :IARCHIVDSIARCHI .PAS');
($I-1 reset(Tl) ; ($I+1
end;
if ioresult=0 then
begin
for il=l to 6 do
for j :=1 to 3 do
read(TI,tsy(i,jl);
for iv-1 to 0 do
for j :=1 to 3 do
read(TI,tsz(i,jl);
close(t11 ;
end
else
begin
gotoxy(1,24);
textcolor (4);
write( ASAr6,'El archivo ARCHI .PAS no existe, favor de salir de MODELOS .');
READLN;
end;
{ proc . carga >
end ;
{
FUNCIONES
<SINIAY> Y <SINNAI>
Funciones para calcular la sigeaY y la signal
en base al sueario:
LES MIYENS D'ESTINATIDN DE LA DISPERSION
DES POLLUANTS A L'AVAL DES CHEIINEES INDUSTRIELLES
<FUNCHI>
Obtiene la concentracion Isoconcentrica
{
}
FUNCTION SISNAY(DISTX :real ;CLASE :char) :real;
var a,b,c,d :real;
coorX :integer;
begin
{
UNIDADES
DISTX en (Ka) .
> 0 .0
SI6IIAY en tMtsl .
) 0 .0
).
CLASE de t °A' . .
>
coorX :=ordtCLASEI-ordt'A')+1;
a :=tsylcoorX,1];
b:=tsylcoorX,2];
c :=0 .0;
( Para el caso de derrames liquides I Xy en Kms )
if (LID = 'L') then DISTX :=DISTX + Xy;
if DISTX > 0 .0 then
( CONVERSION a Mts . )
SIGNAY := (a f exp ( b t In ( DISTX ) + c ) ) $ 1000
else
begin
writelnt'ERROR (SIGNAY) 'DISTX' negativo o cero');
SISNAY := 0 .0;
end;
if (LI6 = 'L') then DISTX :=DISTX - Xy;
end;
FUNCTION SINAI( DISTX : real ; CLASE : char ) : real;
var a,b,csreal;
coorX :integer;
begin
C
UNIDADES
SISNAZ en (Nts) . > 0 .0
DISTX en Ike) . > 0 .0
CLASE de ( °A° . . 'F° )
}
coorX:=ord(CLASE)-ord('A')+1;
if (DISTX ) 1) and (CLASE ) 'D') then coorX :=coorX+2;
a : : tszlcoorX,1I;
b := tszlcoorX,21;
c : : t5zlcoorX,37;
{ CONVERSION a Nts . 1
if DISTX ) 0 .0 then
SI6NA1 : : I a t exp 1 b t 1n ( DISTX ) ) + c) * 1000
else
begin
writeln('ERROR (SIMNA1) 'DISTX° negativo o cero');
SISNA1 := 0.0;
end;
end;
FUNCTION FUNCHI(COOR:integer ;ENUNIF,VELOC,ALTURA :real) :real;
var fun,uno,dos,sz,sy :real;
begin
{
UNIDADES
ENUNIF (0) en (grlseg) o (curies/seg).
VELOC (U) en tots/seg).
ALTURA IN) en lets)
POSY
(Y) en lets)
POST
IX) en lots)
I
sz :=SI6NAZtDISTX,CLASEI;
sy :=SI6NAYtDISTX,CLASEI;
if (sz t> 0 .0) and (sy <> 0 .01 then
begin
POSY :=POSYt1000;
.POSZ :=POSZt1000;
fan :=ENUNIF /( 2 * P1 t sy * sz $ VELOC
uno:=(-0.5 t sgrl POSY I sy ));
if uno(-80 then uno := -80;
fun :=fun t exp ( uno ) ;
uno :=(-0 .5 t sqr( (POS1 - ALTURA) / sz 1);
dos :=(-0 .5 $ sqr( (POS1 + ALTURA) I sz I);
if uno(- :, then uno :=-80;
if dos(-80 then dos :=-80;
fan :=fun t t expluno) + exp(dos) );
POSY :4OSY/1000;
POSZ :1OSZ/1000;
FUNCHI :=fun;
end
else begin
FIRICHI :=99 .9e19;
HUESTRAI'A' 1 1,7,'Err ISOCONC=',99 .9e19, " );
end;
end;
FUNCTION Y : REAL;
VAR R,S :REAL;
begin
JI :=JI/1000 ; { Se convierte a gr/et3 >
R :=2 $ In(FUNCHI(I,ENUNIF,VELOC,ALTURA) / JI);
if R(0 then R :=0;
S :=sgrt( R );
JI : =JIt1000 ; { Se convierte a siligr/et3 >
Y := S t SIBNAY(DISTX,CLASE);
end;
PROCEDURE LET!(X,Y :INTE6ER ;NS6 :LIN);
begin
gotoxy(X,Y);
arite(esg);
end;
PROCEDURE ESTABILIDAD;
var X,Y :integer;
CH :char;
begin
textcolor(2);
let!(8,2,'lnforeacion Ateosferica :');
textcolor(3);
repeat
lett(7,5,'Dia o Noche (din) ----> ');
read(KBD,CH);
CH:=upcase(CH) ;writetCH);
if ord(CH) (> 13 then DIAONOCHE :=CH;
until IDIAONOCHE
'D') or iDIAONOCHE 'N') ;
let!(l,5,BLANC040);
if (DIADNOCHE _ 'N') then
begin
repeat
'4/8 y 7/8' , '3/8' 'l;
letl(5,7,'
let!{4,6,'Nubosidad 1 A)lta, Baja I ----> ');
read(KBD,CH);
CH :=upcase(CH) ;write(CHI;
if ard(CH) <> 13 then NUBOSIDAD :=CH;
until(NUBOSIDAD = 'A') or (NUDOSIDAD = 'B');
let 1(1,6,BLANCO40);
end
else
begin
repeat
Radiation Solar :');
letl(10,4,'
letl(1,7,' <300 N/s2 300y600
>600 N/®2');
letl(1,6,'I L)igera , N)oderada , Fluerte I --> 'l;
read(KBD,CH);
CH:=upcase(CH) ;write(CH);
if ord{ch) (> 13 then RADSOL
CH;
until (RADSOL = 'F') or (RADSOL = 'N') or (RADSOL = 'L');
let!(1,2,BLANC040);
letl{1,4,BLANC040);
let!(1,6 5 BLANCO40);
let!(1,7,BLANCO40);
end;
let :=";
LISTESTAB:=' AABFFABEFBBCDECCDDDCDDDD';
if VELOC ( 2 then I :=l
else if VELOC ( 3 then X :=2
else if VELOC < 5 then X :=3
else if VELOC < 6 then X := 4
else X :=5;
if DIAONOCHE 'D' then
case RADSOL OF
'F' :Y :=1;
'N' :Y : 2;
'L' :Y :=3;
end
else
case NUBOSIDAD of
'A' : Y:=4;
'B' :Y :=5;
end;
CLASE :=LISTESTABI(X-1IS5+YI;
let :='Estab .'+CLASE;
case CLASE of
'A' :let :=let+' Nuy Inestable';
'B' :let :=let+' Inestable';
'C' :let :=let+' Lgrste Inestable';
'D' :let :=let+' Neutro' ;
'E' :let :=let+' Estable';
'F' :let :=let+' Muy Estable';
end;
CIUESTRA(' 8',10, 6, let,0 .0," 1;
end;
PROCEDURE CUADRO;
begin
6RAF1(true);
for i :=0 to 10 do
draw(15,ií13+5,314,ií13+5,1) ;
( horizontales 3
for i :=0 to 11 do
draw(ií30+15,5,ií30+15,135,1) ;
( verticales ?
drawt5,69,314,69,1);
draw(14,5,14,135,1);
circle(15,70,4,2) ;
( FUENTE }
fillshape(15',70,2,21;
TEXT02;
leti(1,11,'Fuente');
leti(40,9,'X'l;
gotoxyt39,10) ;write(ESCALA:2);
letl(38,11,'K .s');
letl(3,2,'Y'1;
gotoxy(2,1) ; write((ESCALAY/2) :1 :1,'Kes');
gotoxy(1,17) ; write((-ESCALAY/21 :1 :1,'Kas');
getpic(CUADSRA,0,0,319,140);
nuevo :=false;
end;
PROCEDURE ESCALAS;
var opcion :char;
begin
nuevo : =true;
text®ode(c401;
cirscr;
textcolor (2);
letl(9,3,'LIMITES MAXIMOS (Norizontal) :'1;
textcolor(3);
leti(1,6,'A) 1 KA'1;
letl(1,7,'B) 2 Kos');
letl(1,8,'C) 5 Kos');
1et1(13,6,'D) 10 Ki'l;
letl(13,7,'E) 20 Kos');
letl(13,8,'F1 30 Kas');
letl(26,6,'8) 40 Kos');
letl(26,7,'N) 50 K E ');
leti(26,8,'1) 60 Kes'1;
repeat
letl(13,10,'Opcion ----> ');
read(opcion);
opcion:=upcase(opcion) ;
(
until opcion in I'A' . .'I'];
case opcion of
'A' :ESCALA:=1;
'B' :ESCALA :=2;
'C' :ESCALA : 5;
'O' :ESCALA :=10;
'E' :ESCALA:=20;
'F' :ESCALA : =30;
'0' :ESCALA :=40;
H' :ESCALA :=50;
I' :ESCALA :=60;
end;
textcolor (2);
letl0,16,'LIMITES MAXIMOS (Vertical) :');
textcolor(3);
letl(1,18,'A1 +0 .5 Kas');
letl(1,19,'B1 +1 .0 Kas');
letlti,24,'C) +2 .5 Kas');
letl(13,18,'D) +5 Kas');
let1(13,19,'E) +7 .5 Kas'l;
letl(13,20,'F) +10 Kes');
letl(26,18,'6) +15 Kas'1;
letl(26,19,'H) +20 Kas');
letl(2b,20,'I1 +25 Kas');
repeat
letl(13,22,'Oprion ----) ');
read(opcion);
opcion :=upcase(opcionl;
until opcion in I'A' . .'I'];
case option of
'A' :ESCALAY:=1;
'B' :ESCALAY :=2;
' C' :ESCALAY : =5;
'D' :ESCALAY :=10;
'E' :ESCALAY:=15;
'F' :ESCALAY :=20;
'6' :ESCALAY:=30;
H' :ESCALAY :=40;
I' :ESCALAY:=50;
.end;
end;
PROCEDURE AREAAFEC(UP :char);
var sale :boolean;
begin
YHAX :=0 .0;
DISTX :=0 .O ;
sale:=false;
TEXTOItfalsel ;
DI := 0 .0;
textcolor(21 ;
Ji :=J111000 ; ( Se convierte a gr/at3 ]
letl(22,1,'Procesando . . .');
if OP = 'A' then
begin
repeat
DISTX :=DISTX + 0.3 ;
until (JI
repeat
(
FUNCHI(1,ENUNIF,VELOC,ALTURA) ) or ( DISTX > 100 );
DISTX :=DISTX - 0.1;
if DISTX > 0 then
begin
if JI > FUNCHI(I,ENUNIF,VELOC,ALTURA) then
sale :=true;
end
else begin
sale := true;
DISTX :=0 .0;
end;
until (sale) or (DISTX ( 0);
if DISTX()O then
repeat
DISTX :=DISTX + 0 .01;
until (JI < FUNCHI(1,EHUNIF,VELOC,ALTtRtA)) or ( DISTX > 100);
if (DISTX > 0) then
DI :=DISTX
else begin
DI : 0 .O;
DISTX :=0 .0;
end;
textcolor (2);
gotoxy(1,7) ;write('Dist .Ini=',DI :3 :3,'Kes');
end ;
( del if OP='A' }
if DI ( 100 then
begin
repeat
DISTX :=DISTX + 0 .5;
until
(JI
> FUNCHI(1,ENUNIF,VELOC,ALTURA)) or (DISTX > 100);
if DISTX < 100 then
begin
repeat
DISTX :=DISTX - 0 .1;
if DISTX ) 0 then
begin
if JI
( FUNCHI(1,01UNIF,VELOC,ALTURA) then
sale :=true;
end
else begin
sale := true;
DISTX :=0.0;
end;
until (sale);
repeat
DISTX :=DISTX + 0 .01;
until
end;
(JI
> FUNCHI(1,0UNIF,VELOC,ALTURA)) or (DISTX > 100);
DF :=DISTX;
if DF=0 .0 then DF :=1e-9 ;
TEXTO!(false);
textcolor(2);
gotoxy(20,7);
if 0P='A' then
begin
if OF ( 100 then
writet'Dist .Fin=',DF :3 :2,' Kas ')
else write('Dist . ) a ',DF :3 :2,' Kes');
end
else if DF(100 then write{'Distancia=',DF :4 :3,'Kas')
else write('Dist . ) a ',DF:3 :2,' K®s');
textcoloril);
end
{ del if DI<100 }
else
begin
gotoxytl,7);
write( A6"6,'La Conc: ',(JIt1000) :3 :3,' ag No se Encontro.
OF : :0 .0;
end;
if (OP='B')and(DF>le-4) then
NUESTRA t'A',14,5,'Yoax=',4 .3 t SI6NAY(DF,CLASE),' Mts');
t Se convierte a eiligrlet3 }
JI :4111000;
end ;
{ Area Afectada }
(
{
t
AREA
DE
Procedimiento consulta
OVERLAY
)
}
}
t Arch .Incluido )
(4I CONSULTAS .PAS)
}
{
t
(
(
(
{
Modelo--> DESCAR6AS TERNICAS (Arch .Incluidol
ill TERNICO .PAS}
}
}
Modelo--) GAUSS : DBO-OD tArch .lncluido)
(f2 DBO .PASI
}
}
}
Modelo--> GAUSS : PUFF (Arch .Incluido)
{3I PUFFI .PAS}
(
{
}
Nucleic—) GAUSS: CURVA DE ISOCONCENTRACION
}
($1 ISOCPDS .PAS}
{
(
}
Modelo--) Gauss: FUGAS Y DERRAMES
{4i DERRAME .PAS}
BEGIN
{ MODELOS, PROGRAMA PRINCIPAL }
hirescolor (0);
OP :_ '?' ;
DF :=50 ;
POSY :=0 .0;
}
YNAX :=10 ;
ESCALA:=10 ;
ESCALAY :=10; CARGA ;
leidoD :=false;
texteode(c40);
POSI :=0 .0;
nueva :=false;
clrscr;
textcoloril).;
let(15,7,'SEDUE');
let0l,17 1 'DINAMICA HEURISTICA, S .C .');
delay(13);
repeat
textoodelc80);
window(1,1,80,25);
clrscr;
textcolor (4);
letl(16,1,'NODELOS
DE
DISPERSION');
letl(20,2,'DE
CONTAMINANTES');
textcolor (14);
letl(18,4,'Aire');
textcolor(11);
letl(14,06,'A) GAUSSIANO :
letl(14,07,'B) GAUSSIANO :
letl(14,08,'C) GAUSSIANO :
textcolor(14);
letl(1801,'Agua');
textcolor(1i1;
letl(14,13,'D) STREETER Y
PUFF 'l;
CURVA ISOCONCENTRACION Y EN POSICION (X,Y,I)');
FUGAS Y DERRAMES');
PHELPS: DBO Y OD');
letl(14,14,'E) DESCARGAS TERMICAS');
textcolor(14);
letl(18,16,'Ayuda');
textcolor(11);
letl(14,1B,'ll CONSULTAS');
letlti4,21,'T) TERMINAR');
repeat
letl(25,24,'Opcion ----> ');
read(KBD,OP) ;erite(OP);
OP :=upcase(OP);
until OP in t'A' . .'E','T','l'l;
graphcoloroode;
case OP of
'A' :PUFF;
'8' :GAUSS;
'C' :DERRANES;
'D' :DBOP;
'E' :TERNICO;
'1' :CONSULTA;
end;
until 0P-' T' ;
clrscr;
END.
(
}
PROAN KSIM;
(iI 6RAPR .P}
cost max = 15;
type let40 = stringt403;
let80 = string(8O];
var
i,j,k,n : integer;
Xp,Yp : integer;
xa,xf,nT: real;
sumal,suma2,expon,tf,ti :real;
alfa,beta : array (1 . .max,l . .max] of real;
y,p,ya,yf : array I1 . .max]
of real;
HomComp : array (l . .maxl
of string t5];
CUADERA: array (1 . .5725]
of integer;
datleidos : Boolean;
op: char;
T: text;
PROCEDURE LETix,y,color :integer ;msg :let40);
begin
gotoxy(x,y);
textcolor(color);
write(osg);
end;
PROCEDURE C TA(var valret :real ;X,Y :integerl;
VAR dato:let4O;
err :integer;
begin
repeat
gotoxy(X,Y);
read (dato);
val(dato,valret,errl;
if err(}0 then
urite(^6"6,'
until (err = Ol;
end ;
( Capta }
PROCEDURE ñODELO;
var sumal,suma2,delta,ti,tf,expon :real;
Xag,Xfg,Yag,Yfg :integer;
caad:boolean;
procedure VenTex;
begin
window(1,19,40,25);
gotoxy(1,11;
for I :=1 to 279 do write(' '1;
end;
procedure CALCULOS ;
begin
for i :=1 to n do
begin
sueal :=0;
suea2 : 0;
for j :=1 to n do
begin
sum! := su®al + tabs(alfaii,jl) - alfaEi,j]) 1
suea2 := suea2 + tabsialfa(i,jl) + alfati,jl) t ytjl;
end;
sumal : = 1 + 0 .5 1 tf $ sueal;
suea2 := 1 + 0 .5 1 tf 1 suma2;
sumai / suea2;
expon : =pti] 1 ln(ytil) ;
if expon < -80 then expon :=-80;
yfti] :=expt expon );
end;
end;
procedure DESPtIDRBRES;
var Xg,Yg,Colorl,Color2 :integer;
begin
for is=l to n do
begin
graphwindowt4,145,310,1991;
Xg :=(1i-1) mod 3) 1 103 ;
Yg :=11i-1) div 3) 1 8 + 10 ;
if i (4 then
drawlXg + 10,Yg,Xg + 20,Yg, i)
else
begin
case i of
4,5 :begin
colorl :=i-3;
color2:=i-2;
end;
6:begin
Colorl :=3;
CoI
or2:=1;
end;
7,8,9 :begin
Colorl :=i-6;
Color2 :=0;
end;
end ; ( case )
drawlXg + 10 0 'g s
Xg + 15,Yg, Colorí);
drawlXg + 15,Yg 0
Xg + 20,Yg, Color2);
end ; ( del if )
window(1,20,40,25);
lett( 1i-1) mod 3) 1 13 + 4, ((i-1)
write1nomcoepti1 :5) ;
div 3) +
Is 3,");
end ;
{ For }
readin;
end ;
{ DespNoobres
}
procedure 6RAFICA;
Var Color l,Color2 :integer;
begin
for i :=1 to n do
begin
Xág:=Round(290txa/nT) +10;
Xfg :=Round(290txflnT) +10;
Yag :=Round(120-120 t yali]);
Yfg :=Round(120-120 $ yf[i]);
ifi(4then
draw(Xag,Yag,Xfg,Yfg, i)
else
case i of
4,5 :begin
Colorí :=i-3;
Color2 :=i-2;
end;
6 :begin
Colorí :=3;
Color2 :=1;
end;
7,8,9 :begin
Colorí :=i-6;
Color2 :=0;
end;
end ; { Case }
draw(Xaq,Yag,Round(1458(xa+xf)/nT)+10,Round(120-60 t dyali]+yf{i])),Color));
draw(Round(1451(xa+xf)/nT)+10,Round(120-60 t (ya{i]+yf(i])),Xfg,Yfg,Color2);
yafi] :=yf{i7;
end;
xa :=xf;
end ;
t 6rafica }
procedure OPCIONES;
var opO :char;
begin
VenTex;
repeat
let(10,1,3,'Opciones');
let(5,3,3,'a) Calcular valores en t=X
if cuad then let(5,4,3,'b) Poner Cuadricula
else
let(5,4,3,'b) guitar Cuadricula
let{5,5,3,'c) Nuoero de Periodos');
let(5,6,3,'s) Salir');
repeat
let(7,7,3,'Opcion ---> ');
read(kbd,op0) ;
op0 :=upcaselop0);
urite(ap0);
until op0 in ['A' . .'C','5'l;
case op0 of
'A' :begin
Ventex;
let(10,4,3,'Para X = '1;
Xp :=uhereX;
Yp :=whereY;
repeat
write("6);
captaltf,Xp,Yp);
let(Xp,Yp,3,'
until (tf)=0) and (tf(=nT);
') 9
let(10,4,3,'
graphwindow(10,11,310,131);
{
') :
graphwindow(10,11,310,131);
draw(Round(2901tflnT)+10,
0,
Round(290ttf/nT)+10, 120,2);
CALCUL05;
window(1,18,40,25);
let(12,1 5 2,'Para
= ');
write(tf :2 :1);
textcolor(3);
for is=1 to n do
begin
gotoxp(( (i-1) nod 3) t 13 + 1, ((i-11 div 3) + 3);
write(noncoop[i1 :5);
write('= ',Yf[i1 :1 :3);
end;
readin;
putpic(CUADSRA,0,120);
let(12,1,2,'
'l;
VenTex;
cuad :=true;
end;
'8' :begin
graphwindow(10,11,310,131);
if cuad then
begin
for i :=1 to trunc(nTl do
draw(Round(290ti/nT)+10, 0,
Round(290$i/nT)+10, 120,1);
for i :=0 to 10 do
draw(10,it12,320,i*12,1);
end
else putpic(CUADSRA,0,120);
cuad :=not cuad;
end;
'C' :begin
Ventex;
let(10,4,3,'Uuoero de Periodos = ');
Xp :=where:;
Yp :=whereY;
repeat
write("6);
capta(nT,Xp,Yp);
let(Xp,Yp,3,'
until (nT>=4);
let(10,4,3,'
graphwindow(10,11,310,131);
fillscreen(0);
draw(10,0,10,310,2);
for i :=O to 10 do
draw(l,it12,12,it12,2);
xa : =0;
tf :=0;
ti :=4;
for i :=1 to n do ya(il :=y(il;
delta : : nT t 0 .05;
repeat
tf := tf + delta;
CALCULDS;
xf := tf;
6RAFICA;
until tf > nT;
getpic(CUADSRA,0,0,310,131);
DESPNDNDRES;
Ventex;
cuad :=true;
end;
end; { case >
until op0='S';
end ;
( opciones )
begin
( Nadel :: 3
cuad :=true;
clrscr;
let(4,1,6,'Wueero De Periodos --> 'I;
Xp :=wherel;
Yp :=ahereY;
repeat
capta(nT,Xp,Yp);
until nT > 0;
graphcoloreode;
draw(9, 10,311, 10,3);
draw(9, 132,311,132,3);
draw(9, 10, 9,132,3);
draw(311,10,311,132,3);
window(1, 1,40,25) ;
let{1 1 1,2,'aax');
letl1,2,2,'1'1;
iet(I,18,2,'®in');
let(1,17,2,'0');
let(14,1,2,'K S I N'1;
let(34,18 9 2 1 'Tieapo'1;
graphwindow(10,11,310,131);
draw(10,0,10,310 5 21;
for i :=0 to 10 do
draw(7,it12,12,iE12,2);
tf :=0;
ti : 41;
for i :=1 to n do yatil :=ytil;
delta := nT t 0 .05;
repeat
tf := tf + delta;
CALCULUS;
xf := tf;
SRAFICA;
until tf > nT;
getpic(CUADSRA,0 1 0,310,131);
DESPHOS;
OPCIONES;
end ;
( Hodelo )
PROCEDURE LEEARCH;
var noaarch :stringt401;
procedure DATOS;
begin
( Datos
textaode(c801;
window(1,1,80,241;
clrscr;
let(2,2,4,'Orden de la
readln(T,n );
textcolor(11);
write(o);
writeln; writeln;
for i :=1 to n do
)
Matriz
--> '1;
begin
readln(T,noecoaptil);
textcolor(14) ; write(i :3,' '1;
textcolor(11) ; writeln(noacoaptill;
end;
let(1,24,4, A6A G+'tRET>');
readin;
clrscr;
let(5,3,4,'Captura de la 1{atriz de
textcolor(11);
writeln ; writeln ;
Trabajo');
for i :=1 to n do
begin
us-Rein;
for j :=1 to n do
begin
{ Captura la Natrix }
read(T,alfatisil);
write(' ',alfati,jl :2 :2);
end;
end;
let(1,24,4,"S"S+'(RET)');
readln;
clrscr;
let(6,3,4,'Captura de los valores de impacto para cada competidor');
writeln ;
writeln;
for i :=1 to n do
begin
read(T,y(i1);
textcolor(14);
write('
X[',i,'l = ') s
textcolor(11);
writeln(ytil :l :3);
writeln;
end;
let(1,24,4,"6"6+'<RET>');
readln;
{ DATOS }
end ;
begin t Leearch }
clrscr;
let(4,7,6,'Noebre del Archivo ');
let14,9,14,'--> 'l;
read(noearch);
assign(T,nowarch+' .pas');
{5I-} reset {T) ; ($I+}
if ioresult=0 then
begin
DATOS;
datleidos:=true;
end
else
begin
let11,24,4,"6"8"6+'El archivo '+nooarch+' .pas No existe (RET>');
readln;
end;
end;
PROCEDURE LEETEC;
var dato:let40;
err,Xg,Yg :integer;
begin
datleidos :=true;
clrscr;
repeat
gotoxy(25,3) ;write('
') D
gotoxy(2,3);
writet'Orden de la Matriz --> ');
read(dato);
val(dato,n,err);
until (err = 0) and (n > O) and ( n <= eax );
textsode(c80);
window(1 1 1,80,25);
clrscr;
writeln('Moabre de los coapetidores :');
ariteln;
for i :=1 ton do
begin
write(i :2,' ' );
readln(noecoapli]);
end;
clrscr;
gotoxy(5 1 3) ;writelnt'Captura de la Matriz de Trabajo');
for i :=1 to n do
t Captura la Matriz }
begin
ariteln;
for j :=1 to n do
begin
'1;
CAPTAtalfali,jl,wherex,wherey);
end;
end;
clrscr;
gotoxyt6,3);
write('Captura de los valores de iapacto para cada coapetidor');
writeln;
writeln;
for i :=1 to n do
begin
write(' X(',i,'l = ');
Xg :=whereX ; Yg : whereY;
repeat
capta(yti],Xg,Yg);
until (yli] > 0) and (y[i] < 1);
yatil :=y1il;
wri tel n;
end;
end ;
( LEETEC }
PROCEDURE MUESTRA;
begin
textaode(c80);
window(1,1,80,25);
clrscr;
let(2,2,4,'Orden de la Matriz --> ');
textcolor(il);
writelntn);
writeln ;
textcolor(4);
writelnt'Nombre de los Competidores');
writeln;
for i :=1 to n do
begin
textcolortl4) ; write(i :3s' ');
textcolor(l1) ; writeln(noacoep[i]);
end;
let(1,24,45 "6A 6+'<RET>');
readln;
clrscr;
let(5,3,4,'Natriz de Trabajo');
textcolor(]1);
writeln ; writeln;
for i :=1 to n do
begin
t Captura la Matriz >
writeln;
for j :=1 to n do
write(' ',alfa[i,j] :2 :2);
end;
lett1,24,4,"6"6+'<RET>');
readln;
clrscr;
lett6,3,4,'Valores de inpatto de cada competidor');
writeln ;
writeln;
for i :=1 to n do
begin
textcolor(14);
write('
R ,i,'] _ '1;
textcolor(11);
writeln(y[i]tI :3);
writeln;
end;
let(l,24,4,^6"6+'(RET>'1;
readln;
end;
PROCEDURE PRESENTACION;
begin
repeat
textaode (c80) ;
clrscr;
xa :=0;
window(1,1,80,25);
textbackground(7);
let(11,2,4 1 ' K S I N ');
textbackground(0);
let(O7,5,11,'A) CAPTURAR DATOS DE ARCHIVO');
let(07,7,11,'B1 CAPTURAR DATOS INTERACTIVO');
let(070,11,'C) DESPLEGAR DATOS');
let(07,11,11,'D) CORRER MODELA') ;
LETt07,14,11,'S) SALIR');
repeat
LET0,17,6,'Opcion ----> ');
readlKBD,op);
op :=upcasetop);
uritelop);
until op in t'A' . .'D','S'l;
case op of
'A' :LEEARCN;
'B' :LEETEC;
'C' :if datleidos then MUESTRA
else
begin
lettl,24,4, A8 6+'Datos Inexistentes . . <RET)'I;
readln;
let(1,24,0,'
end;
'D' :if datleidos then MODELO
else
begin
lett1,24,4,"6"6+'Datos Inexistentes . . (RET)');
readln;
let (1,24,0,'
end;
end;
until op='S';
end ;
{ Presentation )
BEGIN
datleidos :=false;
hirescolor(0);
graphcoloreode;
PRESENTACION;
textoodetcRO);
windoull,100,24);
clrscr;
END .
ANEXO 3.
PROGRAMAS FUENTE MODULO DE APOYO DECISIONAL
procedure scuadro(x1,y1,x2,y2 :integer) ; ( CUADRO SENCILLO }
var i,j :integer;
begin
(
179 barra vertical
196 barra horizontal
218 esquina superior izquierda
191 esquina superior derecha
192 esquina inferior izquierda
217 esquina inferior derecha
}
gotoxy(yl,x1) ;writeíchr(218));
gotoxy(y202) ;write(chr(217));
gotoxy(yl,x2) ;srite(chr(192));
gotoxy(y2,x1) ;write(chr(191));
for i :=1 to y2-yl-1 do begin gotoxy(yl+i,xl) ; write(chr(196)) ; end;
for i :=1 to y2-yl-1 do begin gotoxy(y1+i,x2) ; writetchr(196)) ; end;
for i :=1 to x2-xl-1 do begin gotoxy(yl,xl+i) ; write(chr(1791) ; end;
for is=1 to x2-xl-1 do begin gotoxy(y2,x1+i) ; writedchr(179)) ; end;
end;
procedure dcuadro(xl,yl,x2,y2 :integer) ;
t CUADRO DOBLE }
var i,j :integer;
begin
t
186 barra vertical
205 barra horizontal
201 esquina superior izquierda
187 esquina superior derecha
200 esquina inferior izquierda
138 esquina inferior derecha
gotoxy{y1, ;1) ;write(chr(201));
gotoxyty2,x2l ;write(chr(1
gatoxy(yi,x2) ;write(chr(200));
gotoxyty2,xl) ;write(chr(187)1;
far is=1 to y2-yi-1 do begin gotoxy(y1+i,x1l ; writetchr(2051) ; end;
for i :=1 to y2-y1-1 do begin gotoxy(yi+i,x2) ; writetchr(205)) ; end;
for is=! to x2-xi-1 do begin gotoxy(y101+i) ; urite(chr(186)) ; end;
for i :=1 to x2-xl-1 do begin gotoxy(y2,x1+i) ; write(chr(186D) ; end;
end;
procedure s2hcuadro(x1,yl0203,y3:integer) ; (2 CUADROS HORIZONTALES }
var i :integer;
begin
t 195 CONECTOR IZQUIERDO
180 CONECTOR DERECHO
}
scuadro(xi,yI,x3,y3);
gotoxytyl,x2) ;write(chr(195));
gotoxyty3,x2) ;wite(chr(I80)) ;
for il=l to y3-yl-1 do begin gotoxy(yl+i,x2) ;write(chr(196)) ; end;
end;
procedure d2hcuadrotxl,yl,x2,%3,y3 :integer) ; { 2 CUADROS HORIZONTALES I
var i :integer;
begin
t 204 COHECTOR IZQUIERDO
181 CONECTOR DERECHO
I
dcuadro(xl,y1,x3,y3);
gotoxy(y1,x2) ;writetchr(204)l;
gotoxy(y3,x2) ;write1chr(185));
for i :=1 to y3-yl-1 do begin gotoxy(yl+i,x2) ;write(chr(205)) ; end;
end;
procedure d2vcuadro(xl,yl,y2,x3,y3:integer) ; { 2 CUADROS HORIZONTALES >
var i :integer;
begin
t 203 CONECTOR SUPERIOR
202 CONECTOR INFERIOR
>
dcuadro(xl,yl,x3,y3);
gotoxy(y2,x1) ;write(chr(203));
gotoxy(y2,x3) ;write(chr(202));
for i :=1 to x3-xl-1 do begin gotoxy(y2,i+xi) ;write(chrí1861) ; end;
end;
procedure fespeciall;
begin
d2hcuadrotl,10,24,8O);
dcoadro(5,41,24,80);
dcuadro(3,63,5,80);
gotoxy(41,24) ;urite(chr(202));
gotoxy(41,5 ) ;urite(chr(203));
gotoxy(80,5 ) ;write(chr(185));
gotoxy(80,3 ) ;write(chr(185));
gotoxy(63,5 ) ;writetchrt202));
end;
(t COLORES PARA LA PANTALLA Y TEXTOS t)
procedure color_texto(colorl,color2 :pintura);
(t color! es el color del texto t)
(t color2 es el color del fondo del texto t)
begin
if color! t> no then
textcolorlord(color1));
if color2 4> no then
1t SI ES 'no' NO PINTA SU FONDO t)
textbackgroundlord(color2));
end ;
procedure color_f textodcolor :pintura ; taoiinteger);
var i :integer;
begin
textbackground(ord(color));
for is l to tan do write(' '1;
end;
procedure color_pantallatcolor :pintura);
begin
textbackground(ord(color));
clrscr;
end;
function letra(var status :char) :char;
var chl,ch2 :char;
begin
read(KBD,chl);
if ord(chl)=27 then
begin
if keypressed then (t SI FUE TECLA QUE DEVUELVE DOS VALORES ENTONCES t)
begin
(t 'KEYFRESSED' ES VERDADERO t)
read(KBD,ch2);
if orddch2l in [72,75 9 77,80] then
begin
case ord(ch2) of
72: status :='u' ; ( flecha arriba [ESCI[72] ]
75 : status :='l' ; ( flecha izquierda [E5C][75] ]
77: status :='r' ; ( flecha derecha [ESC]I771 ]
80 : status :='d' ; ( flecha abajo (ESC][80] )
end ; (case)
Ietra :=chr(13);
end
else
status :='t' ; (t ERROR t)
end;
end
else ( CUALQUIER OTRA LETRA }
begin
letra : =chl;
status : = ";
end;
end;
procedure bell;
begin
urite(chr(7));
end;
procedure val entero(var vint :integer ; y,x,num esp,ini,fin :integer;
coll,col2:pintura);
It
t val entero(var,y,x,espacio,inicio de rango, fin de rango);
t 'vint' allí se regresa el valor de la variable
t 'nu®esp' nunero oaxiao de espacios para leer
t)
var i,j,code:integer;
ch :char;
cadena :string(255);
ceros,error :boo)ean;
begin
error :=false;
repeat
i :=0;
if col l Ono then
texttolor(ord(coll));
if col20no then
textbactground(ord(col2));
gotoxy(y,x);
for j :=1 to nue_esp do write(' ');
if error then vint :=O;
error :=false;
str(vint :num_esp,cadena);
cadena :=copy(cadena,l,nu®esp);
5otoxy(y,x) ;write(cadena);
while (ch () chr(13)) and (i3=O) do
begin
i :=i+1;
if i3num esp then i : =nuk esp+l;
repeat
gotoxy(y+i -1,x) ;ch :=letra(status) ; (t . read(((BD,ch) ; t)
until status()'t' ; it NO ACEPTA FLECHAS 8UE HO SEAN U,D,R,L t)
if (i=1) and (ord(ch)<313) then cadena := " ;
it REINICIA STRING
SI NO FUE FLECHA t)
if tiC=nu®esp) then
write(ch) ;
it para no seguir escribiendo hasta 'HET' t)
if ch = chr(8) then
begin
cadena :=copy(cadena,l,length(cadena)-1);
i :=i-2;
if i CO then i :=0;
gotoxy(y+i,x) ;write(' ") ;gotoxyly+i,x);
end
else
if (ch0chr(13)) and (i (=num_esp) then
cadena :=cadena +ch;
end ; it while t)
if cadena :" then
code: :-1
else
begin
zeros :=false ; j :=1;
while not ceros do
begin
if copy(cadena,j,1)
" then
begin
delete(cadena, j,1) ;insert('O',cadena,j);
end
else ceros :=true;
j :=j+1;
end;
val(cadena,vint,code);
end;
if (code <> 0) or not(dvint)=ini) and (vint(=fin)) then
begin
bell;
gotoxy(y,x);
read(KBD,ch);
error
true;
end;
until (code = 0) and (vint>=ini) and (vínt<=fin);
end;
procedure val real(var vint :real ;y,x,nua esp :integer ;ini,fin :real;
coll,col2:pintura);
(S
! val rael(var,y,x,espacio,inicio de rango, fin de rango);
# `vint' allí se regresa el valor de la variable
# `nue esp' nunero maxima de espacios para leer
t)
var i,j,code :integer;
ch :char;
cadena :stringl255l;
ceros, error :boolean;
begin
error :=false;
repeat
i :=0;
if col l Ono then
textcolortordtcoli));
if col20no then
textbackground(ord(col2));
gotoxy(y,x);
for j :=1 to nué esp do write(");
if error then vint :=0;
error :=false;
str(vint :nuo esp :2,cadena);
cadena :=copy(cadena,d,nue esp);
gotoxy(y,x) ;arite(cadena);
chile (ch <} chr(13)) and (i>=0) do
begin
is =i+1;
if i>nue esp then i :=nun_esp+1 ;
repeat
gotoxy(y+i -1,x) ;ch :=letra(status) ; (read(KBD,cb) ;)
until status< 't' ; ( SOLAIENTE ACEPTAR U,D,R,L ?
if (i=1) and (ord(ch)<>13) then cadena :_ ";
if (i(=num esp) then
write(ch) ;
(t para no seguir escribiendo hasta 'RET' t)
if ch = chr(8) then
begin
cadena;=copytcadena,1,1ength(cadena)-1);
i :=i-2;
if i <O then i :=0;
gotoxy(y+i,x) ;write(' ') ;gotoxy(y+i,x);
end
else
if (ch(>chr(13)) and (i<=nu®esp) then
cadena :=cadena+ch;
end ; (t while t)
if cadena=" then
code :=-1
else
begin
ceros:=false ; j ;=1;
while not ceros do
begin
if copy(cadena,j,1) = ' ' then
begin
delete(cadena, j,l) ;insert('0',cadena,j);
end
else ceros :=true;
j : = j+1;
end;
val( cadena,vint,code);
end;
if (code <> 0) or not((vint>=ini) and (vint(=fin)) then
begin
bell;
gotoxy (y, x);
read(KBD,ch);
error :=true;
end;
until (code = O) and (vint>=ini) and (vint(=fin);
end;
procedure val_string(var cadena :string255 ; y,x,num_esp ;integer;
col l,col2 :pintura);
(t
t val string(var,y,x,espacio);
t `cadena' alli se regresa el valor de la variable
t `nun esp' numero maniac, de espacios para leer
1)
var i,j,code :integer;
ch:char;
begin
i :=0;
if coll<>no then
textcolor(ord(coll));
if colt<)no then
textbackgroundtord(col2));
gotoxy(y,x);
for i :=1 to nua esp do write");
cadena :=" ; )
cadena : =copy(cadena,1,nua_esp);
<
gotoxy(y,x) ;write(cadena);
while (ch <> chr(13)) and
(i ») do
begin
i :=i+1;
if i>nue_esp then i :=nub esp+l;
repeat
gotoxyty+i -1,x) ;ch :=letra(status) ; (t read(KBD,chl ; t)
until status()'!' ; (t NO ACEPTA FLECHAS BUE NO SEAN U,D,R,L t)
if ti=l) and tord(ch1013) then cadena :=" ;
(t REINICIA STRING SI
NO FUE ALGUNA FLECHA t)
if (i (=nua_esp) then
write(ch) ;
(t para no seguir escribiendo hasta 'RET' E)
if ch = chrt8) then
begin
cadena :=ropy(cedena,l,length(cadena)-11;
i•=i-2
if i <0 then i :=0;
gotoxy(y+i,x) ;write("I ;gotoxy(y+i,xl;
end
else
if (ch0chr(13}) and (i<=nu® esp) then
cadena : =cadena+ch;
end ; (â while #)
end;
procedure Baja_tex(cadena :string255;y,x,tae :integer ;coli,col2 :pintura);
var isinteger;
begin
if colt<>no then textcolortord(coll));
if toll<>no then textbackground(ord(col2));
gotoxy(y,x) ;write(cadena);
for i :=1 to too-length(cadenal do
write("1;
end ;
p!acedure baja_ent(entero,y,x,tao :integer ;coli,col2 :pintura);
var i :integer;
begin
if cola >no then textcolor(ord(coll));
if coll<>no then textbackgroundtordtcol2D);
gotoxy(y,xl ;eritetentero :tan);
end;
procedure baja_realtnu®real :real ;y,x,taol,taa2 :integer ;coli,col2 :pintura);
var i :integer;
begin
if colt >no then textcolor(ord(coll));
if collOno then textbackgroundtordtcol2)i;
gotoxyty,x) ;write(nua real :tael :ta®2);
end ;
program electre_ll
const
NAX ALT = 15 ;
( NAXINO NUMERO DE ALTERNATIVAS U OBJETIVOS )
NAX PV = 15 ;
t MARINO NUMERO DE PUNTOS DE VISTA I
NAX PV2 = 225; { CUADRADO DEL MAXIMO DE PV }
MAX VECR = 3375 ; t (N x N x N) TANANO NAXIMO DE 'vet R' )
MAX_CAL ' = 10;
TAN NOMALT = 35 ; { TAN . DEL STRING DE LAS
TAN_NON_CAL : 10;
ALTERNATIVAS
y P .V. }
type pintura = (neJro,azul, verde ,cyan,rojo,aagenta,cafe,gris claro,
gris_oscuro,azul claro,verdeclaro,cyan claro,rojo_claro,
nagenta_claro,aoarillo,blanco,no);
string255 = stringt2551 ;
( PARA LECTURA DE VARIABLES STRING )
var
noá arch : stringt15l ; { PARA LEER EL-ARCHIVO LO USA ' assign ' }
i, j, k,
aux :integer;
nun _alt : integer ; { NUMERO DE ALTERNATIVAS U OBJETIVOS }
nua_pv :irteger ;
( NUMERO DE PUNTOS DE VISTA O ATRIBUTOS }
n nua_alt : integer ; t NUEVO NUN . DE ALTERMAT . DESPUES DE REDUCIR CICLOS }
sig, recorre : integer;
encontrado, hay_circuito : Boolean;
ai9 nodo, long ciclo, inic ciclo : integer;
tih : char;
peso_tot : real ;
{ ALMACENA EL PESO TOTAL PARA LA MATRIZ DE CONCORDANCIA }
max _rang : real ;
( NAXINO
RANGO
ENTRE TODAS LAS ESCALAS }
s : integer ;
6 INDICE DE FUERZA }
p : real ;
6 ORADO DE ACUERDO NECESARIO PARA DECLARAR HUE 'I' ES
PREFERIDO A 'J' )
puayor,peenor,paedie :real;
s : real ;
{ ? }
gaayor,quenor,gaedia :real;
no;nit :arrayti . .NAXALTI of stringiSO] ; { NOMBRES DE LAS ALTERNATIVAS }
noa_pv:arrayll . .NAX )Vl of stringl80l ;
I NOMBRE DE LOS PUNTOS DE VISTA I
peso_pv :arrayll . .NAXPVI of real ;
t PESO DE LOS PUNTOS DE VISTA }
puntos escala calif :arraytl . .NAX PV] of integer ;
C NUMERO DE PUNTOS EN ESA ESCALA }
noo califdor escala :arrayll . .NAXPV,I . .NAX_CALI of string[TAN_NON_CALI;
{ HOMBRE DEL CALIFIC . DE ESA ESCALA ]
escal ne9eax :arrayll . .eax_pv] of real ; ( GUARDAR VAL . MAX . PARA
DESINVERT,IR LA EIATRIZ 3
noo_califdor escala :arraytl . .MAXPVI of string[TAN_tlOMCAL] ; 3
val califdorescala :arraytl . .NAXPV3 of real ;] ( VALOR DEL CALIFIC . DE ESA ESCALA 3
valcalifdor escala :arraytl . .NAX PV,1 . .MAX CALI of real ; ( VALOR DEL CALIFIC . DE ESA ESCALA 3
moo__califdor_actual :arraytl . .NAY PV] of string(TAN_NON_CALI;
( CALIFICADOR LEIDO EN ESE NONENTO 3
val calif :arrayii . .NAX_ALT,I . .NAX_PV] of real ; ( VALORES DE CALIFICACIONES 3
cc : array["., .MAXALT, 1 . .NAXALT] of real ;
( MATRIZ DE CONCORDANCIA 3
dc : arraytl . .NAX_ALT, 1 . .MAXALTI of real ;
t NATRII DE DISCORDANCIA 3
rango : array(l . .NAX )V] of real ; í RANGO DE LA ESCALA DEL PTO . DE VISTA 3
grafica : array[i . .NAX ALT,I . .MAX ALT] of integer;
siguiente : array[1 . .NAX ALT] of integer;
marcado : arrayEl . .NAX_ALT] of integer;
trayectoria : arraytl . .NAX_ALT] of integer;
verdirR : array I1 . .MAX PV21 of integer;
vec R : array E1 . .MAX_VECR] of real;
reg_ciclos : arraytl . .MAx ALT] of
record
nom :stringl5];
inic : integer;
fin : integer;
end;
stack_ciclos : arrayll . .NAX_ALT] of stringlBO];
n noo á1t : arraytl . .MAXALT] of string[BO3;
nuevo_identif, nue_stac
stl : string[80];
ciclos : integer;
escalneg : arrayii . .NAX_PV] of char ;
( PARA PUNTOS DE VISTA INVERSOS 3
vauxgl : integer ; ( VAR . AUX . GLOBAL 1 PARA IMPRIMIR EL NUCLEO ER PANT. 3
hay datos : boolean; ( SI ES VERDADERA, PUEDE GRABAR UN ARCHIVO 3
hubo_ejecucion : boolean ; ( CHECA SI YA EJECUTO AL MENOS UNA VEZ 3
hobo oodifeatriz : boolean ; ( CHECA SI SE CAMBIO LA MATRIZ DE VALORES 3
canbio_de_polaridad : boolean ; ( SI CANBIA LA POLARIDAD DE CUALQUIER ALTERN . 3
arch_lec :text;
status:char ; ( VAR. GLOBAL PARA STATUS EH LA LECTURA 3
flecha:integer ; ( INDICADOR DE RENSLON EN LA LECTURA I
prie vez_iepr matr : boolean;
($I RUT BRAL .PAS3
( RUTINAS AUXILIARES I
procedure invierte_estala ; forward;
procedure ppeso_tot ; forward;
procedure concordancia ; forward;
procedure discordancia; forward;
procedure desinvierte_escala ; forward ;
procedure ventana_®atriz(inic,fin :integer);
var i,j :integer;
procedure escribe_e]eeento(i,j :integer);
var k : integer;
found : boolean;
begin
if puntos_escala calif[j] > 0 then
begin
if val calif[i,jJ = -1 then
begin
color texto(blanco,cyan);
write('
');
end
else
begin
k :=l ; found :=false;
while (k(=puntos_escala_califIi]) and (not found) do
begin
if val calif[i,j) = val califdorescala[j,k] then
found :=true;
k
k+l;
end;
if found then
begin
color texto(negro,cyan);
write (nos_califdor escala[j,k-1]1;
end
else
write ('ERROR');
end ; (else val calif)
end (if puntos)
else
begin
if val calif(i,j] _ -1 then
color„texto(blanco,cyan)
else
color texto(negro,cyan);
write (val_calif[i,i] :10 :2);
end;
end;
begin
color texto(blanco,azul);
for j :=inic to fin do
begin
gotoxy(16+(j-inic)$11,6);
writeij :2);
end;
color_texto(blanco,cyan);
for i :=l to nu®alt do ( ESPACIOS COLOR CYAR )
for j :=inic to fin do
begin
gotoxy(O+(j-inic)iil,6+i) ;
write('
');
end;
for i :=l to nuo alt do
for j :=inic to fin do
begin
gotoxy(8+(j-inic)#11,6+i);
escribe_eleeento(i,j);
end;
end;
( ___=========================== === ===== °=
)
procedure lectura_interact;
var str_aux : stringl2551;
i,
j,
k, flecha, flecha2, wax, val nay ,npe : integer;
abase,ybase,xfactor,yfactor,xflecha,yflecha,xftope,yftope,y,x,ysub :integer;
stl :stringf2551;
found : hoolean;
(
)
procedure lee_alternativas;
begin
hirescoloriard(gris_claro));
color_pantalla(gris_claro);
color texto(negro,no);
d2hcuadro(1,1,5,24,80);
color texto(gris claro,negro);
gotoxy(26,3) ;write('
A L TERNA T I V A S
');
color texto(negro,gris clara);
gotoxy(5,6) ; write ('NIINERO DE ALTERNATIVAS : ');
color texto(cyan claro,azul);
nuo_alt :=0;
val entero(num alt,30,6,5,2,NA1 ALT,cyan_claro,azul) ; I NIN. 2 ALTERNAT . ]
baja_ent(oua_alt,30,6,5 3 negro,gris_claro);
for i :=1 to nua_ait do
begin
gotoxy(5,7+i);
write('ALTERNATIVA
: ');
end;
for i :=l to nus alt do no®altli] :=";
flecha := 1;
repeat
str_aux :=copy(noe alt[flechal,1,TAN N0N ALT);
val string(str aux,23,7+flecha,TAN N0N_ALT,cyan claro,azu));
baja_tex(str aun;,23,7+flecha,TAN_N0N_ALT,negro,gris claro);
noo altlflecha] :=copy(str aux,1,TAN NON_ALT);
if {flecha(>)) and (flecha< nuo_a1t) then
begin
if status in I'u','l'l then flecha :=flecha-1;
if status in
end
else
tegin
then flecha :=flecha+l;
if flecha=l then
begin
if status in
then
flecha := flecha+l;
end
else
if flecha=nue alt then
if status in
then flecha :=flecha-1
else if status=' ' then flecha :=flecha+) ; (status="(ret))
end;
until flecha = nue a1t +i;
for jr :) to nun_alt do
( ASREGARLE 0- A LOS NONBRES DE ALTERNATIVAS )
begin
str(i :2 5 str aux);
str_aux := str_aux + '-' + no®alt[il;
no&_alt(il := str_aux;
end;
( BORRAR DATOS ANTERIORES
color_texto(no,gris claro);
');
gotoxy(26,3) ; g rite('
gotoxy(5,6) ; *rite ('
'1;
for i :=1 to nu®_alt do
begin
gotoxy(5,7 +i);
write('
' );
write('
');
end;
end ;
(PROCEDURE ALTERNATIVAS)
(
)
procedure lee_puntos de vista;
begin
" ( PUNTOS DE VISTA )
tt
color_pantalla(grisclaro);
color texto(negro,no);
d2hcuadro(1,1,5,24,80);
I)
color texto(gris claro,negro);
gotoxy(22 5 3) ;write(' P U N T 0 S D E V I S T A ');
colortexto(negro,grisclaro);
gotoxy(5,7) ; write('NUNERO DE PUNTOS DE VISTA :
num_pv := 0;
val entero(nue_pv,33,7,5,l,NAX PV,cyan claro,azul) ; ( Nlll 1 P .V . )
baja_ent(nuo_pv,33,7 5 5,negro,gris -claro);
color texto(negro,cyan);
gotoxy(7,9) ; *rite(' PUNTO DE VISTA');
gotoxyt7,11) ;*rite(' NONBRE : ');
gotoxy(7,)2) ;*rite(' PESO : ');
gotoxyt7,l3) ; :srite(' POLARIDAD DEL PUNTO DE VISTA (+/-) : ');
gotoxy(7,14) ;write(' VALOR NAXINO EN LA ESCALA : ');
gotoxy(7,15) ;*rite(' NUN . DE CALIFICADORES EN LA ESCALA : ');
for i :=l to num_pv do
begin
noe_pv[il := " ;
peso_pvti] : =0 .00;
escal neg[il : = ";
rango[i1 :=0;
pnntos_escala_calif[i1 :=0;
end;
for i :=1 to
begin
nu®_pv do
colortextolblanco,azull;
gotoxy(23,9) ;urite(i :2);
(8
LINPIA LOCALIDADES
A
ESCRIBIR 11
gotoxy( 17 , 11 ) ;color_f_textolgris_claro,40);
gotoxy( 15,12) ;color_f_textolgrisclaro,6);
gotoxy .145,13) ;color_f texto(gris clarosl);
gotoxy(36,14) ;color_f texto(gris claro,B);
gotoxy(45,15) ;color_f texto(grisclaro,31;
flecha :=1;
repeat
case flecha of
1 :begin
str_aux :=copy(noo_pv[i],I,TAN_NON_ALT);
vaI string(str aux,17,11,TAN NOM ALT,blanco,azul);
baja_tex(str_aux,17,11,TANNON ALT,negro,gris_claro);
noo_pv[i] :=copy(str aux,1,TAMNOMALT);
( NOMBRE DEL PUNTO DE VISTA }
if status in
then flecba : =flecha +l;
end;
2 :begin
val real(peso_pv[i1, 15,12,6,0, 100,blanco,azul);
baja_reai(peso_pvli],15,12,6,2,negro,gris_clarol;
( PESO DEL PUNTO DE VISTA }
if status in t'd','r',' '] then flecha :=flecha+l;
if status in
then flecha :=flecha-1;
end;
3 : begin
str aux := " ;escal negtil :='+'l
str_aux :=str_aux + escal negtil;
repeat
val_ string(str_aux,45,13,1,blanco,azul);
if str_aux s " then str aux : = ";
escalneg[il :=copy(str_aux,1,1);
if not (escalneg[i] in t'-','+']) then bell;
until escal negtil in ['-','+'l;
baja _tex(str_aux,45,13,1,negro,gris claro);
if status in ['d','r',"I then flecha :=flecha+l;
if status in L'u','l'] then flecha :=flecha-1;
end;
4 : begin
val_ real( rango [i1,36,14,6,0,995999 .0,blanco,azul);
baja_real(rangoti],36,14,6,2,negro,gris_clarol;
( VALOR MAXIMO DELA CALIF DEL PUNTO DE VISTA }
if status in
then flecha :=flecha+l;
if status in t'u','l'l then flecha :=flecha-1;
end;
5 : begin
valenterotpuntos_escala_calif[il,45,15,2,0,TA
NOD_CAL,blanco,azull;
baja enttpuntos_escala calif[i7,45,i5,2,negro,gris_clarol;
{
DE CALIFICADORES EN LA ESCALA DEL P.V . }
NUMERO
if status in ['u','1'} then flecha : :flecha-1;
if status in t" l then flecha :=flecha+l;
if status = " then
begin
if pantos_es a)a calif[i] } 0 then
begin
{ CALIFICADORES }
color_textotnegro,cyan) ;gotoxyt7,171 ;write('
CALIFICADORES
');
color textotnegro,grisclarc);
max : : 4;
for j :=1 to puntos escala_calif[i] do { INICIALIZACION }
begin
noá califdor escala[i,jl :=" ;
valcalifdor escalati,j] :=0;
end;
j :=1;
npe := puntas_escala_calif[i] ; {VA A NOD1F .}
while j (= puntos escala_calif[i] do
begin
flecha2 :=1;
if npet=flax then
begin
k :=1;
while k{=npe do
begin
gotoxy(8,17+k) ;writetj+k-1 :2 1 '
NOMBRE
gotoxy(40,17+k1 ;writei'VALOR
');
: ');
k := k+1;
end;
val may
k-1;
end
else
begin
for k :=l to max do
begin
gotoxyt8,17+k) ;writetj+k-1 :2,' NOMBRE : ');
gotoxyt40,17+k) ;writet'VALOR : '1;
end;
npe := npe-max;
val _may := max;
end;
repeat
str aux : :copytnon_califdor escala[i,flecha2+j-1],
1 5 TAM_NOt_CAL.1;
val stringistr_aux,23,17+flecha2,TAM_NOM CAL,blanco,azul);
baja tex(str_aux,23,17+flecha2,TAM NOA CAL,negro,gris_claro);
nom califdor escala[i,flecha2+j-11 :=copytstr aux,l,TAM NON_CAL1;
val realtvalcalifdor escala[i,flecha2+j-[],48,17+flecha2,6,
0,rangotil,blanco,axul);
baja_realtvalcalifdor escalali,flecha2+j-1],48,17+flecha2,
6,2,negro,gris_claro);
if (flecha201) and (flecha2(>val nay) then
begin
if status in
then flecha2 :=flecha2-1;
if status in I'd','r',") then flecha2 :=flecha2+1;
end
else
begin
if flecha2=1 then
begin
if status in
flecha2 := flecha2+l;
end
then
else
if flecha2 val_nay then
if status in
then flecha2 :=flecha2-1
else if status= " then flecha2 : :flecha2+1 ; «ret>)
end;
until flecha2 = val may+i;
j := jinn;
gotoxy(7,17) ;write('
for k :=1 to nax do
begin
gotoxy(8,17+k) ;write('
write('
end;
end ; (while j)
');
') ; (
60 espacios )
end ; (if puntos)
end;
end ; (5)
end ; (case)
until flecha=6;
end; {for i)
end ; (PROCEDURE LEE)UNTüS DE VISTA)
( .
)
procedure lee_calificaciones;
var sl :string(l4];
pi : integer;
ch : char;
matrix 11ena : Boolean;
nceldash, inic, fin : integer;
begin
fax il=l to nun alt do ( IMICIALIZACION DE MATRIZ )
for j :=l to nue_pv do
val calif{i,j] :=-l;
clrscr ;
sh e ALTERNATIVAS ';
(
LETREROS }
d2hcuadro(1,10,24,80);
color_texto(gris_claro,negro);
gotoxy(25,2) ;write('
MATRIZ DE CALIFICACIONES
'I;
gotoxy(300) ;write(' PUNTOS DE VISTA ');
for i :=l to 14 do begin gotoxyi2,4+i) ;write(sl(i],") ;end ;
color textoiblanco,azul);
for i :=1 to nue alt do begin gotoxyt5,&+i) ; write(i :2) ; end;
nceldash := 6;
inic := 1;
if eu®_pv > nceldash then
fin := inic + nceldash - 1
else
fin := nuo_pv;
ventana_oatriz (inic,fin) ;
t MUESTRA PRIMERA PANTALLA }
xbase:=6 ; ybase := 8;
xfactor :=1 ; yfactor :=11;
xflecha :=1 ; yflecha :=1;
xftope:=nu® alt ; yftope:=nuD_pv;
color texto(azul,gris_claro);
for i :=1 to NAX PV do
nod califdoractual[il :=";
repeat ( HASTA QUE LA MATRIZ ESTE LLENA (> -fl )
repeat
npe :=puntos escala_calif[yflechal ; (PUNTOS DE VISTA)
if fin - inic + 1 = nceldash then
y :=ybase + (yflecha-inic) t yfactor
else
y :=ybase + (yflecha-1) t yfactor;
x :=xbase + xflecha $ xfactor;
( HOMBRE DE LA ALTERNATIVA y PUNT() DE VISTA ABAJO }
color textotno,azul);
gotoxy(1,25);
write('
gotoxy(40,25);
write('
');
color texto(amarillo,azul);
gotoxy(1,251 ;write(noa_alt[xflecha));
gotoxy(40,25) ;urite(nom_pv[yflechal);
if npe>0 then ( LEER STRING }
begin
for i :=1 to npe do
( LETRERO DE CALIFICADORES )
begin
( ABAJO )
if i (= 7 then
baia_tex(nom califdor escala[yflecha,il,3+(i-1)#11,22,
TAN_MOM_CA1,blanco,®agenta)
else
baja texinoocalifdor_escala[yflecha,il,3+(i-7-1)#11,23,
TAN NON_CAL,blanco,magenta)
end;
repeat
( STRING )
i :=1;
while (val califdor escalatyflecha,il(>val calif[xflecha,yflechall
and (i(npe ( NAX_PV) 1 do
i :=i+1 ;
if i=npe+1 {MAIM) then
stis= ::
else
stl :=copytnots_califdor escalatyflecha,i],1,TAM_1101t_CAL);
val stringtstl,y,x,TAM M0R_CAL,blanco,azul);
baja_textstl,y,x,TAl4NONCA1,negro,cyan) ; {negro,gris_claro}
no®califdor actual(xflecha] :=copytst1 l,TAR_ROM_CAL);
found : =false;
for i :=1 to npe do
if non_califdoractual(xflecha] = nom califdorescala(yflecha,il
then
begin
found :=true;
ysub : =i;
end;
if not found then
bell;
until found;
val_ aliftxflecha,yflecha] := val califdor escala(yflecha,ysub];
end
else
begin
{ REAL )
color textotblanco,e:agenta);
gotoxyt3,22);
writet' 0 : ',rangolyflecha] :5 :2,' ');
val realtval califfxflecha,yflecha],y,x,TAR MOM_CAL,O,rango(yflecha],
blanco,azul);
baja_realtvat calif(xflecha,yflecha],y,x,TAMNOM_CAL,2,
negro,cyan) ; tnegro,gris_claro)
end;
if status='r' then
begin
if yflecha < nun_pv then
begin
yflecha := yflecha + 1;
if yflecha = fin + 1 then
begin
inic := inic + 1;
fin := fin + 1;
yflecha := fin;
ventana_eatriztinic,fin);
end;
end;
end;
if status='l' then
begin
if yflecha } I then
begin
yflecha := yflecha - 1;
if yflecha = inic - 1 then
begin
inic := inic - 1;
fin := fin -
t RIGHT )
t LEFT )
yflecha := inic;
ventana aatrix(inic,fin);
end;
end;
end;
if status='d' then
if xflecha t xftope then xflecha
:= xflecha + 1;
if status='u' then
if xflecha > 1 then xflecha := xflecha - 1;
6OTOXY(3,24) ;NRITE('STATUS = ',STATUS,',)(FLECHA=',XFLECHA,'YFLECHA=',
YFLECHA,' VAL CALIFI',xflecha,',',yflecha,']=',
val calif(XFLECHA,YFLECHAI);
color texto(no,gris_claro) ; (LIMPIA LETREROS FONDO (CALIFICADORES)}
gotoxy(3,22);
write('
');
write('
');
gotoxy(3,23);
write('
');
');
write('
until (status") and (xflecha=xftope) and (yflecha=yftope);
matriz _llena
true ;
( CHECA MATRIZ DUE ESTE LLENA )
for i :=1 to nun_alt do
for j :=1 to nuo_pv do
if val calif(i,j] _ -1 then
matriz llena := false;
if not matriz llena then bell;
until matriz I1ena;
end ; (PROCEDURE LEE_CALIFICACIONESI
(
}
procedure lee_p_q_s;
begin
clrscr;
dcuadro(â,1,24,90);
flecha :=1;
p :=1 .000 ;q :=O,010 ;s :=i;
dcuadro(5,5,7,17);
dcuadro(9,5,1107);
dcuadro(13,5,15,17);
color texto(blanco,aagenta);
gotoxy(6,6) ; write(' P = ',p :5 :3,'');
gotoxy16,10) ;write(' O =
gotoxy(6,14) ;write(' S = ',s ;5,");
color texto(azul claro,gris_claro);
gotoxy(20,5) ; write('6RADO DE ACUERDO NECESARIO PARA ESTABLECER DUE LA');
gotoxy(20,6) ; write('ALTERNATIVA Eí] ES PREFERIDA A LA ALTERNATIVA (j]'1;
gotoxy(20,9) ; write('GRADO DE ACUERDO NECESARIO PARA ESTABLECER OUE LA' ► ;
gotoxy(20,101 ;write('ALTERNATIVA ti] NO ES PREFERIDA A LA ALTERNATIVA Iil');
gotoxy(20,11) ;write('CONTRA EL S-ESIHD OPONENTE HAS FUERTE');
gotoxy(20,13) ;write('S-ESIHD OPONENTE HAS FUERTE A COMPARAR PARA °a");
repeat
case flecha of
1 :begin
val real(p,11,6,6,0,1,blanco,azul);
baja _real(p,11,6,6,3,cyan,oagenta);
if status in ('d','r',"] then flecha :=flecha+l;
end;
2 :begin
valreal(q,11,10,6,0,1,blanco,azul);
baja real(q,11,10,6,3,cyan,eagental;
if status in ('d','r',' ') then flecha :=flecha+l;
if status in ('u','l'l then flecha :=flecha-1;
end;
3 :begin
val entero (s,11,14,6,0,l,blanco,azul);
baja_ent(s,11,14,6,cyan,eagenta);
if status in ('u','1'} then flecha :=flecha-I;
if status in ("I then flecha :=flecha+l;
end;
end ; tcase}
until flecha=4;
end
(LEE_P_ S}
}
begin (LECTURA)
pria_vez_iapr_oatr := true;
{
lee_alternativas;
PROCEDIMIENTOS INTERNOS }
lee_puntos_de_vista;
lee_calificaciones;
1ee_p_q_s;
hay_datos := true;
end;
procedure lee_de_arch ;
var ok :boolean;
option :char;
str_aux :string255;
(1 LEE
DE ARCHIVO 1)
function la_entero(var e :integerl : boolean;
begin
($1-)
readln(arch_lec,e);
if ioresult = 0 then
ia_entero := true
else
la_entero := false;
(S1+)
end ;
function la_real(var r :real) : boolean;
begin
(3I-1
readln(arch_lec,r);
if ioresult = 0 then
la_real := true
else
la_real := false;
{3I+}
end;
procedure mensaje ; -
var ch :char;
begin
gotoxy(3 0 23);
color texto(eagenta,cyan);
write(' ERROR, DATOS EH ARCHIVO
HO CORRESPONDEN, HO PUEDE LEERSE ');
read(KBD,ch);
end;
begin
hay_datos := false;
repeat
color texto(blanco,azul);
textcolor(ord(gris claro)) ; }
clrscr;
dcuadro(1,1,24,80);
ootoxy(10,5) ; write ('HOMBRE DEL ARCHIVO :'l;
str aux :=";
valctring(str_aux,31,5,8,aoarillo,verde);
nom_arch :=copy(str_aux,l,length(str aux));
nom_arch :=noe_arch+' .ELE';
assign(arch_iec,noe_arch);
01-I ;
( ELIHIHA I/O CHECKING }
reset (arch_lec);
(3I+};
ok :_ (ioresult = 0);
if not ok then
begin
gotoxy(3,23);
color texto(eagenta,cyan);
write ('ERROR :
ARCHIVO °',noe_arch,'° HO
ENCONTRADO');
read(KDD,opcion);
gotoxy(3,23);
write ('
gotoxy(3,23);
(C)ONTINUAR, (R)EGRESAR --->');
read(KDD,opcion);
write ('DESEA
if upcase(opcion) _ 'R' then
exit ;
{ SALIR }
end;
until ok;
{ HUH. DE ALTERNATIVAS }
not ilaentero(nua_altl) then begin oensaje ; exit end;
for is l to nu®alt do
readln(arch_lec,nom_alttil) ;
t STRINGS SE LEEN NORMAL }
i;
t NUN. DE PLINTOS DE VISTA }
if not (laenterotnue_pv)) then begin mensaje ; exit end;
for i :=l to nue_pv do
begin
readln(arch_lec,noo_pvti]) ; { NOMBRE DEL PUNTO DE VISTA }
t PESO DEL PUNTO DE VISTA }
if not (lareal(peso_pvtill) then begin aensaje ; exit end;
readln(arch_lec,escal negtill ; t ES EL PUNTO DE VISTA NEB .-/+ }
( VALOR MAXIMO DEL P .V . }
if not ila_realirangoli])) then begin aensaje ; exit end;
t NUN . DE CALIFIC . EN LA ESCALA }
if not (la_entero(puntos_escala_calif(i])) then begin nensaje ;exit ;end;
if puntos_escala_califtil > 0 then
for j :=1 to puntos escala_califIi] do { NOMBRE DEL CALIFICADOR }
begin
( Y SU VALOR }
readln(arch_lec,nom_califdor escalati,j]);
if not O a real(val califdor escalati,jlll then
begin aensaje ; exit end;
end;
( MATRIX DE CALIFICACIONES }
for i :l to nud alt do
for j :=1 to nua_pv do
readln(arch_lec,val califti,jl);
{P,9,S}
readlntarch_lec,p);
readln(arch lec,q);
readlntarch lec,$);
close larch
hay
datos
lec);
:= true;
end;
(=============================== == ==================================
procedure grabacion;
label SALTO;
var ch,opcion :char;
ok :boolean;
arch_esc :text;
noe_arch :stringl15];
str aux :string255;
begin
repeat
}
color texto(blanco,azul);
clrscr;
dcuadro(1,1,24,80);
gotoxy(10,5);
write ('NOMBRE DEL ARCHIVO :');
str aux :=";
val_string(str_aux,31,5,8,aearillo,verde);
noa_arch :=copy(str aux,l,length(str aux));
noa_arch : =noa_arch+' .ELE';
assign(archesc,nc.arch);
($1-> ;
( ELIMINA I/O CHECKING >
reset (arch esc);
1I0;
ok :_ (ioresult = 0);
if ok then
begin
gotoxy(3,23);
color texto(aagenta,cyan);
write('ERROR : ARCHIVO " ,noa_arch, " YA EXISTE, PRESIONAR (RET>'l;
read(KBD,ch);
gotoxy(3,23);
write('
');
gotoxy(3,23);
write('DESEA SOBREESCRIBIR EL ARCHIVO (SIN) --->');
read(KBD,ch);
write(ch);
if upcase(ch) = 'S' then
goto SALTO;
gotoxy(3,23);
write ('
');
gotoxy(3,23);
write ('DESEA (C)OUTINUAR, (R)EGRESAR --->');
readln(opcion);
if (option = 'R') or (option = 'r') then
exit;
end;
until not ok;
SALTO:
rewrite(arcfi esc) ;
( ARCHIVO A ESCRIBIR NO EXISTENTE >
writeln(arch esc,nua_alt);
for i :=1 to nu®alt do
writeln(arch esc,noa_altlil);
writeln(arch esc,nua_pv);
for i :=1 to nus_pv do
begin
writeln(arch esc,noa_pv(il) ; ( NOMBRE DEL PUNTO DE VISTA )
writeln(arch esc,peso_pv[il) ; ( PESO DEL PUNTO DE VISTA >
writeln(arch_esc,escal neglil) ; (ES EL PUNTO DE VISTA NEB . )
writeln(arch esc,rangolil) ; ( VALOR MAXIMO DEL P.V . >
writeln(arch_esc,puntos_escala_califfil) ; ( NUM . DE CALIF . EN LA ESCALA >
if puntosescala_calif[il > 0 then
for j :=1 to puntos escala_califtil do
begin
writeln(arch esc,noe califdor escalati,j]);
writeln{arch_esc,val_califdor escalali,j]);
{ NOMBRE DEL CALIFICADOR Y SU VALOR, EN CASO DE
end;
QUE HAYA )
end;
for i :=1 to nu®alt do
for j :=1 to nuo_pv do
uriteln(arch esc,val califti,jl);
writeln(arch esc,p);
writeln(arch esc,q);
writeln(arch esc,$);
close (arch_eec);
end;
)
{
procedure codification;
var ch,cht,ch2,opcion :char ; sl :stringtl5l;
i,na,np :integer;
begin
hubo oodif catriz := false ; (t TODAVIA NO SE MODIFICA LA HATRII DE VAL . t)
repeat
textbackground{ord(negro));
textcolorlord(grisclaro));
clrscr;
d2hcuadro(1,1,5,24,80);
texxtbackgroundCord( gris_claro)) ;textcolortordtnegro));
gotoxy(23,3) ;write(' M 0 D I F 1 C A C I 0 N E S
');
textbackground(ord(negro)) ; textcolor(ord{grisclaro));
gotoxy(30,10) ;write('1) ALTERNATIVAS');
gotoxy(30,11) ;write('2) PUNTOS DE VISTA');
gotoxy(30,12) ;write('3) CALIFICACIONES');
gotoxy(30,13) ;writei'4) VALORES DE P, 0, S');
gotoxy(3O,14) ;write('5) SALIR');
repeat
uotoxy(3R,181 ;write{'OPCION ---)') ; read(KBD,chi);
if chi in t'l' . .'S'I then
write(chi) else bell;
until (chi in ('1' . .'5']);
case chl of
'1' : begin
clrscr;
repeat
textcolor(ord(eagenta_claro));
s2hcuadro(1,1,3,24,801;
gotoxy(29,2) ;write('A L T E R g A T I Y A S'1;
gotoxy(8,4) ; write('NUMERO DE ALTERNATIVAS : ');
textcolor(ord(cagenta)) ;w-ite(nu® alt);
for i :=1 to nus_alt do
begin
textcolor(ord(oagentaclaro)) ;gotoxy(4,5+il ;write(i :2,' : '1 ;
textcoloriardioagenta)) ;write(noe_altUil);
end;
textcolor(ord(aearillo));
gotoxy(3,23) ;writet'DESEA MODIFICAR ALGUNA ALTERNATIVA --4'1;
read(KBD,ch);
if tch='S') or (ch='s') then
begin
gotoxy13,23) ;write('
gotoxy(3,23) ;write('NUNERD DE ALTERNATIVA --->') ;readlnlna);
gotoxy18,5+na) ;writei'
'1;
gotoxy(0,5+na) ;readin(not aluna));
end;
until t ch<>'S') and (ch<>'s');
end;
'2' : begin
{ PUNT05 DE VISTA >
repeat
clrscr;
textcolor(ord(oagenta_claro));
s2hcuadro(I,1,3,24,80);
gotoxy125,2) ;writet'P U N T 0 S D E V 1 S T A');
gotoxy(8,4) ; write('NUNERO DE PUNTOS DE VISTA : ');
textcolor(ord(oagenta)) ;writelnuu_pv);
for i :=1 to num_pv do
begin
textcolor(ord(sagenta claro)) ;gotoxyt4,5+i) ;writeti :2,' : ');
textcolor(ord(magenta)) ;write1noe_pv(i1);
end;
textcolor(ord(aoarillo));
gotoxy(3,23) ;write('
'1;
gotoxy(3,23) ;writet'DESEA MODIFICAR ALBUN PUNTO DE VISTA --->');
readIKBD,ch);
if (ch='S') or (ch='s') then
begin
gotoxy(3,23) ;write('
');
gotoxy(3,23) ;write('NUMERO DE PUNTO DE VISTA --->') ;readln(np);
if np <= nus pv then
begin
clrscr;
textcolor(ord(cyanclaro));
s2hcuadro(1,1,5,24,80);
a2hcuadrot1,1,22,24,80);
textcolcr(ord(magenta));
gotoxy(32,3) ; write('PUNTOS DE VISTA');
gotoxy13,71 ; textcolor(ord(sagenta)) ; write(')) NOMBRE : ');
textcolor(ord(eagenta_claro)) ;write(noe_pvinpl);
gotoxy(3,9) ; textcolor(ord(aagental) ; urite('2) PESO : ');
textcolor(ord(®agenta_claro)) ;writetpeso_pvtnp) :5 :2);
gotoxy(3,11 : ;teftcolor(crd(sagenta)) ; write('3) POLARIDAD : ');
textco1cr(3rd(aagenta_claro)) ;write(escal_negdnpl);
gotoxy0,131 ;textcolorlerdfusgenta)) ; write('4) VALOR MAXIMO : ');
textcolor(ardtsagenta_claro)) ;write(rangotnp) :8:2);
goto7y(3,15) ;textco)or(ordtsagenta));
write('5) NUMERO DE PUNTOS EN ESCALA DE CALIF . : ');
testcolor(ord(®agenta_claro)) ;write(punto5 escala_califtnp1 :21 ;
textcolor(ord(acarillo)3;
gotoxy(3,23) ;write('
') D
gotoxy(3,23) ;write('DESEA MODIFICAR AL6UN DATO ---)'l;
read{KBD,ch);
if (ch='s') or (ch='S') then
begin
gotoxy(3,23) ;write('
gotoxyt3,23) ;write('PUNTO A MODIFICAR ---)'1;
read{KBD,ch2);
case ch2 of
')' : begin gotoxy{15,71 ;write('
') i
gotoxy(15,7) ;readlnlnon_pv(npl);
end;
'2' : begin goto;:y(13,9) ;write('
'1;
gotoxy(13,9) ;readln(peso_pvinp]);
end;
'3' : begin gotoxy(18,1l) ;write('
');
gotoxy(18,11) ;readlnlescal neglnp]);
end;
'4' : begin gotoxy(21,13) ;writet'
gotoxy(21,13) ;readln(rangolnp]);
end;
begin gotoxy148,15) ;writet'
'1;
gotoxy(48,15) ;readln(puntos escala calif[npl);
end;
end ; ($case*)
end;
end;
end;
until { ch()'S') and (chO's'l;
end;
(1
if puntos_escala califli] ) 0 then
for j :=1 to puntosescala_califti] do
begin
writeln(' ',noe califdor escalali,j]);
writeln(" t val_califdor escalali,j]);
)IDMBRE DEL CALIFICADOR Y SU VALOR, EN CASO DE ODE HAYA }
end;
1)
'3' : begin t CALIFICACIONES )
sl : : 'ALTERNATIVAS';
repeat
clrscr;
textcolorlordlaoarilloll;
s2hcuadrol1,1,3,24,80);
gotoxyI20,210ritel'MATRIZ DE CALIFICACIONES');
gotoxy(32,4) ;write('PUNTOS DE VISTA');
for i :=1 to 12 do begin gotoxy(3,4+i) ;write{s1lil) ; end;
for i : :1 to nue_alt do
begin
if i(=10 then' gut)Nyl5,4+it2)
else gotoxy{S,502) ;
write( : : :);
End;
for hz I to nuw_pv do
be,in
if i<=10 then gotoxy(i$7,5)
else gotoxytit7+4gá1;
write(i :2);
end;
textcolor(ord(azul clar3));
for i :=1 to nu g alt do
for j :=1 to nua_pv do
begin
if i <= 10 then
gotoxy(j$7,4+02)
else
gotoxy(j17+4,5+i$2);
write(val calif[i,j] :5 :2);
end;
aotoxyt3,23) ;write('DESEA NODIFICAR AL6UN VALOR -4'1;
read(KBD,chl;
if (ch='S') or (ch='s') then
begin
gotoxy(3,23) ;write('
gotoxy13,231 ; write('NUM . ALTERNATIVA --->'l ;readln(na);
gotoxy(27,231 ;write('NUM . DE PUNTO DE VISTA --->');
readln(np);
for is=1 to 2 do
begin
if np <= 10 then
gotoxy(npt7,4+nat2l
else
gotoxy(npt7+4,4+nat2);
if i=1 then write ('
'1
else readln(val calif(na,npl);
hubo_eodif .atriz := true;
end;
end;
until ( ch<>'S') and (ch(>'s');
end;
'4' : begin
if not hubo_ejecucion or hubo wodif eatriz then
begin
(t inicializa valores de peax, pain, . . t)
invierte escala ; ( INVIERTE LOS VALORES EN CASO DE QUE LA ESCALA SEA NEB . )
caabio_de_pclaridad :=false ; ( PARA DUE NO VUELVA A INVERTIR >
ppeso_tet ;
( OBTENER EL PESO TOTAL )
concordancia ; ( OBTENER LA MATRII DE CONCORDANCIA CC
Cl peax rang ; YA NO SE USA, QUITARLA POSTERIORMENTE t)
disccrdancia ; ( OBTENER LA MATRIZ DE DISCORDANCIA D ii I
desinvierte_escala;
end;
textbackgroundtordtazul)) ; clrscr ; textcolortord(blanco));
dcuadro(1,1,24,80) ; textcolor(ord(aagenta_claro));
gotoxy(44,5);
write('P MAI = ',peayor :5 :3,'
O MAI = ',gaayor :5 :31 ;
gotoxy(44,b);
write('P NIN = ',peenor :5 :3,'
gotoxy(44,7);
0 HIN = ',gaenor :5 :31;
write('P NED = ',psedia :5 :3,'
O NED = ',gsedia :5:3);
d2vcuadro(3 1 42,60 5 9,78);
textcolor(ord(blanco));
dcuadro(4,8,l2,321;
gotoxy(10,5) ; write('() VALOR DE P : ',p :5 :3);
gotoxy(10,7) ; write('2) VALOR DE 0 : ',8 :5 :31;
gotoiy(10,9) ; writet'31 VALOR DE S : ',sl;
gotoxy(10,11) ;write('4) REGRESAR');
repeat
repeat
gotoxy(25,14) ;write('OPCION --->') ;read(KBD,opcion);
if option in t'l' . .'4'] then writelopcion) else bell;
until option in I'1' . .'4'1;
case option of
'I' : begin
val reallp,26,5,5,0,l,azul,gris_claro);
baja real(p,26,5,5,3,blanco,azulclarol;
end;
'2': begin
val real(q,26,7,5,0,l,azul,gris_claro);
baja _real(q,26,7,5,3,blanco,azul claro);
end;
'3': begin
Eral_entero(s,26,9,I, 1,5,azul,gris_clarol;
baja_ ent(s,26,9,1,blenco,azu1_claro);
end;
end ; Ucaset);
until (opcion='4'1;
end ; U case de eodif ID
end ; Ucase!)
It pendiente 41
until (ch1 = '5'1;
U
for i :=1 to nu®_alt do
tegin
for j :=1 to nua_pv do
begin
if puntos_escala califlj]=0 then
begin
writeln(arch_esc,val califli,j]);
nom califdor actuallj] := ";
end
else
begin
writeln(arch_esc,nom_califdor_actual[jll;
end;
if ne®califdor actcallj]<>" then
repeat
1 :=1 ; encontradod=false;
while
(
I
in
<= puntos_escala califtj]) and (not encostrado)) do
begin
writeln ('<1=',1,'>') ;
}
if noe_califdor escala[j,l]=nos califdar actualtj]
begin
val califli,jl := val_califdor escalatj,l];
writeln ('nuevo valor = ',valcalifti,ji) ;]
then
encontrado := true;
end;
1 := 1+1;
end ; (while)
if not encontrado then
begin
writeln ('ERROR');
exit ; }
end;
until encontrado;
write (val calif[i,j1 :6 :2) ;}
<
end;
writeln ;)
end,
writeln(arch esc,p);
writeln(arch esc,q};
writeln(arch_esc,$);
t)
end;
)
(
procedure invierte_escala ; ( INVIERTE LOS
VALORES CORRESPONDIENTES
AL P .V.
DUE SEA '-' ; 0 SEA CUE ENTRE NAYOR SEA EL NUN.
PEOR ES LA CONSIDERACION )
var sax : real;
i,j :integer;
begin
for i :=1 to nun_pv do
if (escal negi]='-') then
be g in
max :- -100;
for j :=1 to nu®alt tin
if val califtj,i] > sax then
sax := valcalif[j,i];
escal neg naxti] := sax;
for j :=1 to nuo_alt do
valcaliftj,i] := sax - val califtj,i];
end;
end;
procedure desinvierte_escala;
var i 9 j :integer ;
begin
for i :=1 to nuo_pv do
if {escalnegtil -') then
for j :=l to nue_alt do
valc aliftj,i] := escal neg_maxtil - val califtj,il;
end;
procedure ppeso_tot ; { CALCULA PESO TOTAL }
begin
peso_tot := 0;
for i :=l to nua_pv do
peso_tot := peso_tot + peso_pvti];
if peso_tot = 0 then peso_tot := 1;
{
writeln{'PESO TOTAL =',peso_tot :6 :2) ;}
end;
procedure concordancia ; { CALCULA LA MATRIZ DE CONCORDANCIA }
var sus_c :real ; paux :real;
begin
paayor :=0;paenor :=100;paedia :=0;paux :=0;
for i :=1 to nus_alt do { COMPARA LAS ALTERNATIVAS i, j ENTRE ELLAS MISMAS }
begin
for
{ k LAS VARIA POR CADA PUNTO DE VISTA }
j :=1
to nug alt do
begin
if
then
ccti,j] : : 1
else
begin
sua_c
F.
0;
for k : : l to nue_pv do
begin
if val califti,kl = val califtj,kl then { SUMA 1/2 PESO }
sus_c : : sua_c + 0 .5 t peso_pvtk]
else
if val califti,kl } val califlj,k] then { SUMA PESO COMPLETO }
sus_c := sum + peso_pvtkl;
end ; {k}
ccti,jl := sua_c / peso_tot ; { ELEMENTO DE LA MATRII DE CONCORDANCIA }
if ccti,jl } 'mayor then psayor :=ccti,j];
if ccli,ji { psenor then psenor :=ccli,j];
paux : :paux+cc{i,j];
end ; {else}
end ;
in
end ; {i }
ptedia := paint / {num alt t nua_pvl;
end;
U 1VJ SIRVE POROUE NO SE PUEDEN REVOLVER PERAS CON MANZANAS
procedure peak rang ; { DETERMINAR EL RAN60 MAXIMO ENTRE TODAS LAS ESCALAS }
begin
sax rang := -20000;
for i :=1 to nus_pv do
if rango[il > max_ rang then
sax rang := rangolil;
if oats rang = 0 then sax rang :=1;
{ witeln(LST,'RANGD MAXIMO = ',sax rangl ;}
end;
tl
procedure discordancia ; ( OBTENER LA NATRII DE DISCORDANCIA }
var
ptrvecR, kk :integer;
vec_dirR : array {1 . .HAX PV2l of integer;
vec R :arrayll . .NAX_PV2l of real;
teep :real;
swl : boolean;
qaux : real;
begin
quayer :=0 ; goenor :=100 ; geedia :=0; gaux :=0;
1 :=4
ptrvecR :=1;
swI :=true ; ( SIRVE PARA ASIGNAR EL APUNTADOR DE 'VEC_R' }
for i :=1 to nun _alt do
for j :=1 to nus_alt do
begin
dcli,j] :=0; ( ASIGNAR UN VALOR INICIAL A LA HATRII DE DISCORDANCIA }
if swi then
begin
1 :=]+1;
vec dirRlll :=ptr_vecR;
swl : :false;
end;
if i<>j then
( SI 1=J UNICANENTE DC[I,JI <-- 0 }
begin
for k : : l to nuo_pv do
begin
( HACE LA POSIBLE OPERACION DEL VECTOR 'R' }
if val calif[i,kl < val calif[j,k] then
begin
if rangolklOO then
vecR[ptr vecR3 :=(val calif[j,kl-val calif[i,klllrango[k]
else
vec R[ptrvecR] :=0;
{
write(ptr vecR,' ',vec R(ptr vecRl :6 :2,'l'} ;}
ptr_vecR := ptr_vecR + 1;
swl :=true;
end;
end;
t
-
write('
iS
'10
{ 'BUBBLE SORT' DE MAYOR A MENOR }
for k :=vec dirR[ll to ptr_vecR - 2 do
if vec dirR[i]+i ( ptr_vetR then ( CHECA OUE HAYA POSIBLE CAMBIO }
begin
for kk : : k to ptr_vecR - I do
if vec R[k] < ver R[kk3 then
begin -
tesp
vec_R i;
vecRtk]
vecRlkkl;
vecRlkkl := tesp;
ene;
=NI
f 11EYA LA
MATRIZ 'DC' CON EL S-ESINO VALOR EN EL
VECTOR 'VEC_R'.
SI ND EXISTE NINBLRID,
DEJA EL ELEMENTO CON EL VALOR
DE CERO 'dc=0' ORIGINAL )
if vecdirRlll+1s-11 ( ptr vecR then
begin
dc[i,j] := vec Rlvec dirRlll+ds-1)];
if dcli,j] > gsayor then geayor :=dc[i,il;
if dcli,j] ( qeenor then gaenor :=dcti,jl;
gaux :=gaux + dcii,jl;
ecd;
end ;
of <>)
ead ; .for j)
gsedia := qaux I (nus_alt g nus_pv);
ariteln d'
(
INPRESION DE LOS VECTORES
'vec dirR' Y 'vec_R' ');
for i :=1 to 1-1 do
uritelnd'i=',i,' ',vec dirRlil);
for i :=1 to ptr vecR
do
aritelnd'i=',i,"svec RIi] :6 :2);
writeln d'
'1;
xriteln d'ESCRIDIR LA MATRIZ DE DISCORDAIR;IA ');
)
for i :=1 to nu ... all do
{
begin
for j :=1 to nus_alt do
write('
',dcli,j} :6 :2);
uritein;
end;
end;
(
:
procedure obtener_grafica ;
f BRAFICA (P,Q,S) )
begin
for is=) to nua alt do
t INICIALIZA )
for j :=1 to nus_alt do
grafica[i,,l := 0;
for is=l to nus_alt do
for j :=l to nus_alt do
if i<>j then
if ccli,jl >: p then
if dcli,j] l= q then
graficali,jl : : 1 ;
==__ )
(
writelR('p= ' , p, '
9= ' 09 ) ;
writeln (' writeln ('MATRIZ DE LA URAFICA');
for i :=I to nua_alt do
begin
for j :=1 to num_alt do
write (grafica(i,j]);
writeln;
end;
r eadln;
)
n num_alt := nu®á1t ; ( TRABAJAR EN COPIA PURDUE SE VA A MODIFICAR }
for i :=1 to n_nuu_alt do
begin
n noa_alt(i] := nom alttil;
end;
nuevo_identif := 0;
nue stack ciclos := 0;
end;
procedure nucleo_aparente;
begin
( EL NUCLEO APARENTE ESTA EN ' siguienteti]=0 ' }
for i :=1 to n num alt do
begin
- -
i : = 1 .s
while I( j<=n_num_alt) and (graficatj,i] = 0)) do
j' = j+1;
if j=nnum_a1t+1 then
siguientetil : 0
else
siguienteti] :=j;
end;
end;
procedure buscar circuito;
begin
i :=0;
hay circuito := false ; ( SE SUPONE NO HAY CIRCUITOS INICIALMENTE }
( VA A REVISAR CADA MODO, 0 HASTA QUE ENCUENTRE UN
CIRCUITO }
while ( (i ( n nus_alt) and (not hay_circuito)
do
begin
i
:=
i
+ 1;
for j :=1 to nuo alt do
( LIMPIA LAS MARCAS }
sarcadotjJ := 0;
sig := i ;
( EL SISUIENTE PARA BUSCAR CICLO }
1 : 0;
( BUSCA SI HAY UN CIRCUITO PARA EL NODO 'i' }
while ( (not hay_circuito) and (siguiente[sig] (> 0) ) do
begin
I :=1+1;
trayectoria[1] := sig;
if aarcado[sigl = 0 then
begin
marcado[sig] := 1 ;
( MARCADO, SI NO ESTABA MARCADO >
sig := siguiente[sig];
end
else
begin
hay_circuito
true ; ( HUBO CIRCUITO Y SALE A REDUCIRLO >
end;
end;
end;
t BUSCAR EL INICIO DEL CICLO I
t BUSCA HACIA ATRAS EL INICIO DEL CICLO, PUEDE . HABER ENTRADA
Y LLEGAR A UN CICLO EH UN PUNTO MAS ADELANTE l
inic ciclo := 1 - 1;
while ( (trayectoria[inicciclo] (> sig) and (inic_ciclo >= 0) ) do
inic_ciclo := inic ciclo - 1;
long ciclo := I - inic_ciclo;
( OBTENER EL NODO DE MENOR NUMERO EN EL CICLO >
min _nodo := 100;
for i :=inic ciclo to I-1 do
if min _nodo > trayectoria[i] then
oin_noeo := trayectoria[il;
end;
procedure reeuc ciclo ;
( REDUCE CICLOS, ELIMINANDO RENGLONES Y COLUMNAS >
var su®unos : integer;
i, ii, ji, jor :integer;
jdest, ishft :integer;
begin
nuevo_identif
nuevo_identif + 1;
for i :=1 to NAX_ALT do
begin
reg ciclos[i] .noa :_ '';
reg_ciclos[i] .inic := 0;
reg_ciclos[il .fin := 0;
end;
with reg_ciclos[nuevo_identifl do
begin
str(nuevo identif, sti);
nom
'xx'+ stl ;
inic := nue_stack ciclos + 1;
( REPITE DESDE DONDE EMPIEZA EL CICLO HASTA FIN DE CICLO - I
SUARDA LOS NOMBRES DE LAS ALTERNATIVAS EN UNA LISTA LLAMADA
'stack_ciclos' Y LOS LIMITES SE ENCUENTRAN EN UN REGISTRO
LLAMADO 'regciclos[ l' CON CAMPOS DE NOMBRE, INICIO, FIN
------------EJEM LO
XXI
1
3
XX2
4
5
1
2
3
4
5
stack ciclos -----------casa
xx1
carro
vacaciones
deportivo
xx2
aviacion
}
for i :=inic ciclo to inic ciclo + long_ciclo - I do
begin
nuk stack ciclos
nux♦stackciclas + I;
aux := trayectorialil;
stack ciclostnue stack_ciclosl := n nos altlauxl;
end;
fin := nur_stack ciclos;
str(nuevo_identif, stil;
nno9 altlain_nado} :_ 'xx' + stl ;
end;
( REDUCE LAS COLUMNAS AL COPIAR TODAS A LA MENOR }
for i :=1 to n nu!_alt do
begin
su!_unos := 0;
for j := I to 1-1 do ( RECORRE TODAS LAS COLUMNAS DEL RENGLON
begin
jj :=trayectoria(jl;
sua_unos := su! unos + graficali,jj1;
end;
if su! unos > 0 then
)
( LE PONE UN `1' SI AL MENDS UNA DE LAS )
grafical i, nin codo 1 := 1
else
grafica[ is !in_nodo 1 := 0;
end;
(
COLUMNAS ES '1' )
( REDUCE LOS RENGLONES AL COPIAR TODOS AL MENOR )
for j :=1 to n nue_alt do
begin
su!_unos := 0;
for i := I to
1-1 do ( RECORRE TODOS LOS REMOLONES DE LA COLUMNA `j' )
begin
ii :=trayectoriaEil;
sum unos := sua_unos + graficatii,jl;
erd;
if sue unos 1 0 then
( LE PONE UN `1' SI AL MENOS UNO DE LOS }
(
grafical sin_rodo, j I := 1
RENGLONES ES 'I' )
else
grafica[ oin nodo, j l := 0;
end;
grafica[ !in_nodo, !in nodo 1 := 0 ;
( FRIA A `0'
EL ELEMENTO i,i )
i ELIMINA COLUMNAS DEL CICLO ER LA 6RAFICA ]
recorre := 0;
for jar :_ ®in nodo+1 to n_nus_alt do i ELIMINA
LAS COLUMNAS DE LA DERECHA >
( DEL NODO MINIM )
begin
i :=1;
while t (trayectoria(i] <> jor) and (i C= 1-1 ) ) do
i := 1+1;
if trayectoria(il = jor then
begin
recorre := recorre + I;
end
else
if recorre <> 0 then
begin
jdest := jor - recorre;
n no®alt(jdestl := n_nas_alt(jor];
for i :=1 to n_nue_alt do
begin
grafica(i,jdestl := graficali,jor];
end;
end;
end;
I ELIMINA RENSLOMES DEL CICLO EN LA 6RAFICA ]
recorre := 0;
for jar
:= oin nodo+l to n nus_alt do
begin
i ELIMINA LAS
COLUMNAS
{ DEL HOOD NININO ]
j : = 1;
ttrayectcria(jl <> jar) and tj (= 1-1 ) ) do
while
j := j+1 4
if trayectoria(j) = jor then
recorre := recorre + 1
else
if recorre C> 0 then
begin
jdest := jor - recorre;
for j :=I to n nuo_a1t do
begin
ggrafica(jdest,jl := grafica(jor,jl;
end;
end;
end;
nnun_alt := n_nue_alt - long ciclo + 1;
end;
procedure recursivotinicio, final : integer);
var i,j,codigo:integer;
begin
for i :=inicio to final do
if (copy(stack ciclos(i1,1,2)='xx') then
begin
val (copytstack_ciclos(i1,3,2),j,codigo);
recursivotreg ciclos (jl .inic,regciclos(jl .fin) ;
DE LA DERECHA I
end
else
begin
gotoxy(3,7+vauxgl);
erite(stackciclostii);
vauxgl := vauxgl + 1;
end!
end;
procedure lipri .ir nucleo;
var coligo :integer;
begin
textbackground(ord(negro));
clrscr;
textcolor(ord(gris_claro));
fespeciall ;
( RECUADRO ESPECIAL PARA LA EJECUCION }
textbackground(ord(gris claro)) ;textcolor(ord(negro));
gotoxy(26,2) ;write('
E L E C T R E
1
');
tevtcolor(ord(gris_claro));
textbackground(ord(negro));
rotoxy(1,6) ;write('ALTERNATIVAS SELECCIONADAS');
gotoxy(48,6) ;write('ALTERNATIVAS ORIGINALES');
textcolor(ord(cyan));
gotoxy(64,4) ; writel'P=',p :4 :3,' G-',q :4 :3);
textcolor(ard(magenta_claro));
vauxgl := 1;
for i :=I to n_nu®_alt do
begin
if siguientetil = 0 then
begin
if (copy(n_nos_alttil,l,2)
'xx') then
begin
val(copy(n nom_alttil,3,2) , j, codigol ; t EL J-ESINO xxj }
recursivo(reg ciclostjl .inic, reg ciclostj] .fin);
end
else
begin
gotoxy{3,7+vauxgl);
write(n nos_altli]);
vauxgl := vauxgl + 1;
end;
end;
end; (t for t)
rg
EN LUGAR DE ESCRIBIR, PASAR DATOS A ARREGLO
2 SORTEAR EL ARREGLO
3 ESCRIBIR EL ARREGLO A PANTALLA
}
textcolor(ord(gris claro));
end;
procedure ieprimir_alt brig;
var i :integer ;
begin
textcolor(ord(aaarillo));
for i :=1 to num alt do
begin gotoxy(42,7+i) ;write(nom_alt(il) ; end;
textcolor(ord(grisclaro));
end;
procedure graficas;
begin
obtener_grafica ;
repeat
( OBTIENE LA MATRIZ DE LA ERAFICA )
( REPITE NIENTRAS HAYA CIRCUITOS )
nucleo_aparente;
buscar circuito;
if haycircaito then (SI ENCONTRO CIRCUITO, PROCEDE A REDUCIRLO )
begin
reduc_ciclo;
end;
until not (hay_circu(to );
imprimir nucleo;
( IMPRINIR RESULTADO >
iaprimir_a1t p rig ;
( IMPRIMIR ALTERN . ORIS . )
end;
(
::::__::: :_: ::: : :::: .::::
:: .=_===========_::::_:_: ___ == _: )
procedure menu_princ;
var i : integer;
opcion ch, ch : char;
procedure error(par :integer);
var ch : char;
begin
textbackground(ord(negro));
Clrscr;
textcolor(ord(aoarillo));
s_2hcuadro(1,1,7,24,80);
text :olor(ord(rojo));
gotoxy(3,4);
writet'ERROR, 'l;
derrite (chr (7) );
if par = 0 then
write ('NO EXISTEN AUN DATOS PARA GRABAR');
if par = 1 then
write ('NO PUEDE EJECUTARSE, PORQUE NO EXISTEN DATOS AUN');
if par = 2 then
write ('NO PUEDE HABER MODIFICACIONES, NO EXISTEN DATOS AUN');
gotoxy(3,23);
write('OPRINIR (RETURN>');
read(KBD,ch);
textaode(ord(verde)) ; (t cambio a amarillo ??? t)
end;
begin
repeat
hirescolor (!) ;
color_pantalla(azul);
color texto(blanco,no);
d2hcuadro(1,1,6,24,00);
gotoxy(1,1);
gotoxy(32,2);
writeln('E L E C T R E
1');
gotoxy(27,5);
writeln('SELECCION DE ALTERNATIVAS');
gotoxy(26,8);
writeln('MENU DE EJECUCION DEL MODELO');
gotoxy(25,11) ; write('!) LECTURA EN FORMA INTERACTIVA');
gotoxy(25,121 ; write('2) LECTURA DE ARCHIVO');
gotoxy(25,13) ; write('3) GRABAR DATOS ACTUALES');
gotoxy(25,14) ; write('4) EJECUTAR EL MODELO');
gotoxy(25,15) ; write('S) NODIFICACION DE DATOS');
gotoxy(25,16) ; write('6) SALIR');
option ch := lee option n('ó',47,21);
hirescolor(0);
case opcion_ch of
'I' : begin
{ LECTURA 1NTERACTIVA }
lectura_interact;
end;
'2':
begin { LECTURA DE
lee_de_arch;
'3':
begin { GRABACION .I
ARCHIVO }
end;
if hay datos then
grabacion
else
erro r (0);
end;
'4' : begin
{ EJECUCION }
if hay datos then
begin
clrscr;
invierte escala ; { INVIERTE LOS VALORES EN CASO DE QUE LA
ESCALA SEA NEGATIVA }
ppeso_tot ;
{ OBTENER EL PESO TOTAL )
concordancia ;
{ OBTENER LA MATRIZ DE CONCORDANCIA CC ij }
{ 9 paax rang ; YA NO SE USA, QUITARLA POSTERIORMENTE }
{ OBTENER LA MATRIZ DE DISCORDANCIA
graficas ;
{ OBTENER LA MATRIZ DE GRAFICA Y RESOLVER }
desirvierte_escala ;
{ DESINVIERTE LOS VALORES DE ESCALA NEG . }
hubo_e ;ecucion := true;
gotoxy(3,23) ; write('OFRIMIR <RETURN}');
read(KBD,ch);
end
eú se
error (1);
end;
'S' : begin
D ij }
discordancia ;
{ MODIFICACIONES }
if hay_datas then
eadificacion
else
error (2);
end;
'6' : begin
clrscr;
end;
end ; (case)
until iopcion_ch = '6'1;
end;
procedure inicializa;
begin
hay_datos
false;
hubo_ejecucian := false;
hubo_aodif oatriz := false;
ca bio_de_polasidad :=true;
end;
{
==
begin { PRU8RAfA PRINCIPAL )
textsodetc801;
inicializa;
eenu_princ;
end .
)
ANEXO 4.
PROGRAMAS FUENTE MODULO DE SISTEMA DE EXPERTOS
Los programas fuente del Sistema de Expertos no se
reproducen en este documento, ya que son propiedad del autor, el
SIRIA sólo utiliza los programas objeto código binario .
ANEXO 5.
PROGRAMAS FUENTE MODULO CONVERSACIONAL 0 DE INTERFASE
procedure scuadro(xI,yl02,y2 :integer) ; ( CUADRO SENCILLO }
var i,j :integer;
begin
{
879 barra vertical
196 barra horizontal
218 esquina superior izquierda
191 esquina superior derecha
192 esquina inferior izquierda
217 esquina inferior derecha
}
gotoxy(yl,xl) ;write(chr(218));
gotoxy(y2,x2l ;write(chr(2171);
gotoxy(yl,x2) ;write(chr(1921);
gotoxy(y2,xll ;write(chr(191));
for i :=1 to y2-yl-i do begin gotoxy(y1+i,x1) ; write(chr(196f) ; end;
for i :=1 to y2-y1-1 do begin gatoxy(y1+i,x2) ; write(chr(19611 ; end;
for i :=1 to x2-xl-1 do begin gotoxy(yl,xl+i) ; write(chr(1791) ; end;
for i :=1 to x2-x1-1 do begin gotoxy(y2,xl+i) ; write(chr(179)l ; end;
end;
procedure dcuadro(xâ,yl,x2,y2:integer) ;
( CUADRO DOBLE }
var i,j :integer;
begin
{
186 barra vertical
205 barra horizontal
201 esquina superior izquierda
187 esquina superior derecha
200 esquila inferior izquierda
189 esquina inferior derecha
gotoxy(yâ,x1) ;write(chrí20111;
gotoxyty2,x2) ;write(chr(1));
gotoxy(y1,x2) ;write(chr(200)1;
gotoxy(y2,xl) ;write(chr(187));
for is=1 to y2-y1-1 do begin gotoxy(yl+i,xl) ; write(chr(205)1 ; end;
for i :=1 to y2-yl-1 do begin gotoxy(yl+i,x2) ; write(chr(205)) ; end;
for i :=l to x2-x1-1 do begin gotoxy(yl,xl+i) ; urite(chr(1861) ; end;
for i :=1 to x2-xl-1 do begin gotoxyty2,xl+i) ; writeichr(186)l ; end;
end;
procedure s2hcuadro(x1,y1,x2,x3,y3:integerl ; (2 CUADROS HORIZONTALES }
var izinteger;
begin
( 195
CONECTOR
IZOUIERDO
180 CONECTOR DERECHO
}
scuadro(xl,yl,x3,y3);
gotoxy(yl,x2) ;write(chr(195));
gotoxy(y302) ;write(chr(180)) ;
for is=l to y3-yl-1 do begin gotoxy(y1+i,x2) ;write(chr(1961) ; end;
end;
procedure d2hcuadro(xl,yl,x2,x3,y3 :integer) ; { 2 CUADROS HORIZONTALES }
var i :integer;
begin
{ 204 CONECTOR IIOUIERDO
181 CONECTOR DERECHO
}
dcuadro(x1,yl,x3,y3);
gotoxy(yl,x2) ;write(chr(204)l;
gotoxy(y3,x2) ;write(chr(1851);
for is=1 to y3-y1-1 do begin gotoxy(y1+i,x2) ;write(chr(205)l ; end;
end;
procedure d2vcuadro(x1,y1,y2,x3,y3 :integerl ; { 2 CUADROS HORIZONTALES }
var i :integer;
begin
C 203 CONECTOR SUPERIOR
202 CONECTOR INFERIOR
}
dcuadro(xi,yl,x3,y3);
gotoxy(y2,xl) ;write(chr(203)l;
gotoxy(y2,x3) ;write(chr(202));
for i :=1 to x3-xl-1 do begin gotoxy(y2,i+xl) ;write(chr(186)) ; end;
end;
procedure fespeciall;
begin
d2hcuadro(1,1,5,24,80);
dcuadro(5,41,24,80);
dcuadro(3,63,5,80);
gotoxy(41,24) ;write(chr(202)l;
gatoxy(41,5 l ;write(chr(203)1;
gotoxy(80,5 ) ;write(chr(185)l;
gotoxy(80,3 ) ;write(chr(185));
gotoxy(63,5 l ;write(chr(20211;
end ;
program psedue;
var numero_giro :integer;
clavec :stringt57;
tEI fORNATOS .PAS}
CBI EaECTREI .PAS}
SSI GRAPN .P}
ttt EOS .PAS}
It
t)
(t
BASE DE DATOS DE GIROS
(t
t)
clave_ga N2/ rangoi_ga C5/ rangof_ga C5/ giro_ga C70 / t)
procedure bd_giros;
var ar_giros : text;
Iinea :stringEB27;
i,nua:integer',
begin
assign(ar_giros, ' P6IROACT .TXT');
reset tar_giros);
textcolor (0);
clrscr;
tewtbackground(1);
textcoler(15);
gotoxy(28,11 ;writet'
gotoxy(28,2) ;aritel'
GIRO DE ACTIVIDAD
gotoxy(28,3) ;write('
'l;
'1;
is=I;
while notteof(ar_giros)) do
begin
readin (ar_giros,linea);
gotoxy(3,4+i1 ;write(i :2);
gotoxy(6,4+i) ;writet't',copy(linea,13,701,'7');
i := i+l;
end;
close lar_giros);
repeat
gotoxy(50,23) ;write('OPCION ---)') ;readln(nu®1;
if (nuo(Il or Inum)14) then
begin
gotoxy(60,23) ;writetchr(7),'
'1;
end;
until nua in (1 . .147;
numero_giro := nun;
end;
(t
1t
(t
t1
BASE DE DATOS DE ACTIVIDADES
clave ca C5/ clav_ga_ca N2/ nombre_ca C70
procedure bd_actividades;
tl
t)
var ar activ : text;
linea :string(77];
i,j,sw,indice,ind,nuo :integer;
valor,code :integer;
ch :char;
begin
assign(ar activ,'PCLASACT .TXT');
reset (ar activ);
textbackground(0);
clrscr;
textbackground(5);
textcolor(0);
gotoxy(26,1) ;writet'
gotoxy(26,2) ;write('
'l;
A C T I Y I D A D E S
gotoxy(26,31 ;write('
');
');
is=1 ; j : : 1 ;sw :=0 ;indice :=0;
while (not (eof tar_activl 11
begin
indice :=indice+l;
readln (ar activ,linea);
if (copyllinea,6,1)=' '1 then begin
delete(linea,6 ;1) ;insert('0',linea,6) ;end;
val(copy(1inea,6,2l,valor,codel;
if valor = nu,ero_giro then
begin
if sw<>0 then
begin
textbackground(0);
cirscr;
textbackground(5);
textcolor(0);
gotoxy(26,I) ;write('
gotoxy(26,2) ;write('
A C T I Y I D A D E S
gotoxy(26,31 ;write('
end;
if i=1 then ind := indice;
gotoxy(3,4+j) ;write(i :2);
gotoxy(6,4+j) ;write('I',copy(linea,8,70),']'1;
is=i+1 ;j :=j+1;
if j>18 then begin j :=1 ; gotoxy(70,23);
write('<RETURN>') ;read(KBD,ch);
sw: = 1;
end
else sw : = O;
end ; (Sift)
end ; (*while*)
i :=i-l;
close (ar_activ);
repeat
gotoxy(75,23) ;write('
');
gotoxy(64,23) ;write('OPCION --->') ;readlnlnua);
if (nue(1) or (nus>i ) then
begin
gotoxy(75,23) ;write(chr(7),"I;
end ;
until nus in I1 . .il;
reset(ar_activ);
foT i :=1 to ind+nue-1 do
readln(ar activ,linea);
(1 EN 'linea' ESTA TODO EL REN6LON PARA SACAR LA CLAVE $1
clavec := copy(Iinea,1,5);
close(ar_activl;
end;
tt
t)
10
BASE DE DATOS DE EMISION DE CONTAMINANTES
it PENISCON .TXT : clave_ec C5
I
cve e ec N2
I
t)
fac e ec N8 3/ uni_e_ec C10 #1
11 PLISTCON .TIT: nuo Ic N2 / contae_lc C35 / edo_fis_lc Cl 11
procedure bd eeis_cont;
var steals, ar_lis : text;
linea :stringE25l;
linea2istringE38l;
I+roduccion :real;
clav_prod :stringE23;
linaux :strinql80l;
t :boolean;
nueaux :real;
i,nue,code,ii :integer;
begin
textbackgrmmd (0);
textcolor(â);
clrscr,
textbackground(7);
gotoxy(18,11 ;writel' PRODUCCION EN LA ACTIVIDAD SELECCIONADA ');
textbackground(6) ;textcolorlâ);
gotoxy(31,2) ;write('>
( TONELADAS');
gotoxy(32,2) ;readln(produccion);
textcolor(21;
assign lar eeis,'PENISCON .UT');
reset tar eois);
assign(ar_lis,'PLISTCON .TIT');
reset tar lis);
textcolor(0);
textbackground(i);
testcelor(â5);
gotoxy(24,41 ;write('
');
gotoxy(24,5) ;arite('
EMISION DE CONTAMINANTES ');
gotoxy(24 9 6) ;write('
'1;
i : =1;
writein;
while notteof(ar_eois)) do
begin
readln tar eais,linea);
if clavec = copy (linea,l,51 then
begin
gotoxy(2,7+i) ;writeti :2) ;
(1
23434 .34
1)
linaux :=copy(linea,8,8);
gotoxy(5,7+i) ; write(" 9 1inaux,' ');
for ii :=1 to lengthtlinaux) do (1 inserta ceros por espacios t)
if copy(linaux,ii,1)=' ' then
begin
delete(linaux,ii,ll;
insert('0',linaux,ii);
end;
val(linaux,nusaux,code);
linaux :=copy(linea,16,10);
t9
Kg/t 1)
nrite(copy(linaux,l,pos(' ',linea)));
clav_prod := copy(linea,6,2);
t :=true;
while (not (eof(ar_lis))) and (t) do
begin
readln(ar lis,linea2l;
if copy (linea2,1,2) = clav_prod then
begin
(1
PARTICULAS
1)
linaux :=copy(linea2,3,35);
case copy(linea2,38,1) of
writet'AL AIRE DE ');
'L' : write('AL AGUA DE ');
'S' : write('DE DESECHO SCUM DE '9;
end ; (1 case it
write (linaux,' ',produccionlnuaaux :8 :2,' Tons');
t :=false;
end;
end;
i := i+1;
end;
end;
close tar eei s) ;
close (ar_lis);
readin;
(1
repeat
gotoxyt50,23) ;write('OPCION --->') ;readln(nua);
if (nua(1) or (num>14) then
begin
gotoxy(60,23) ;write(chr(7),'
');
end;
until nua in 11 . .141;
nusero_giro := nu®;
1)
end;
procedure pant_eenu;
var opcion :char ;
termina :boolean;
begin
repeat
termina :=false;
hirescolor(4);
textbackground(0);
clrscr;
textbackground(4);
textcolor(15);
gotoxy(28 1 3) ;write('
gotoxy(28,4) ;write('
NODULOS
gotoxy(28,5) ;write('
'I 1
,).
4
'I 1
gotoxy(1B, 9) ;write('
gotoxy(18,10) ;write('
A: BASE DE DATOS
gotoxy(18,11) ;write('
B: MODELOS DE CONTAMINACION
gotoxy(18 5 12) ;write('
C: ELECTRE 1 (SELECCION DE ALTERNAT)VAS)
gotoxy(IB,13) ;write('
D: KS111 (IMPACTOS CRUZADOS)
gotoxy(18,14) ;write('
E: SISTEMA DE EXPERTOS
gotoxyl1B,15) ;write('
F: SALIR
gotoxy(IB,16) ;write('
repeat
gotoxy(61,22) ;write('
');
gotoxy(50,22) ;write('OPCION ---> ') ;read(KBD,opcion);
opcion :=upcase(opcion);
if (opcion('A') or (opcion)'F') then
write(chr(7));
until (opcion) in I'A' . .'F'l;
hirescolor(0);
textbackground(0);
clrscr;
case option of
'A' : begin
bd_giros;
bd_actividades;
bd emis cent;
end;
'B': begin gauss ; end;
'C'• begin electrel end;
'D': begin end;
'E': begin end;
'F'° termina := true;
end;
until termina;
r lrscr;
end ;
procedure presentacion;
begin
textbackground(2);
clrscr;
textcolor(1);
graphcolormode;
gotoxy(5,3) ; write ('SISTEMA DE IMFORMACION RAPIDA');
gotoxy(10,5) ; write ('DE IMPACTO AMBIENTAL');
gotoxyl13,7) ; write ('( S I R I A 1');
gotoxy(16,18) ; write ('SEDUE');
getoxy( 7,20) ; write ('SUBSECRETARIA DE ECOLOGIA');
(t
graphwindow(50,100,250,150);
draw(O,0,200,50,3);
t)
reading
texteode;
hirescolor(1);
textbackground(1);
clrscr;
textcolor(11);
gotoxy(26,1) ;write('ESTRUCTURA MODULAR DEL SIRIA');
textbackground(4);
gotoxy(1,3) ;textcoior(11);
writelni'
INFORMACION BASICA
');
writeln( '
' l;
writeln(' t PROYECTOS
');
writeln(' t CONTAMINANTES
,);
writeln(' t RIESGOS
writeln(' t NORMAS
writeln(' t EFECTOS
'1;
writeln(' t CARACTERISTICAS ECOLOSICAS ');
writeln(' t CONTROL DE CONTAMINANTES
');
textcolor(11);
textbackground(14);
gotoxy(45, 3) ;write('
SISTEMA DE EXPERTOS
gotoxyt45, 4) ;write('
'1;
'1;
gotoxy(45, 5) ;write(' SISTEMATI2ACION DEL CONOCIMIENTO');
gotoxy(45, 6) ;write(' DE IMPACTO AMBIENTAL PARA EFECTUAR');
gotoxy(45, 7) ;write(' DIASMOSTICOS ECOLOGICOS BASADOS EN');
gotoxy(45, 8) ;write(' EXERTOS EN EL AREA.
gotoxy(45„ 9) ;writel'
');
gotoxy(45,10) ;write('
'I;
gotoxy(45,11) ;write('
');
textcolor(i);
textbackgroundt11);
gotoxy(),15) ;writelnt' MODELOS DE PREDICCIOM
writelnl'
writeln(' t NODELAJE ESTRUCTURAL
');
writeln(' t MODELOS DE DISPERSION
');
writeln('
- ATMOSFERICOS
writeln('
- AGUA SUPERFICIAL
'l;
writeln('
- PRODUCTOS RIESGOSOS EN
');
writeln('
CASO DE ACCIDENTES
writeln(' t OTROS MODELOS
'l;
'l;
tex#color(ll);
textbackground(8);
gotoxyt45,15) ;write('
gotoxy(45,16) ;writet'
APOYO DECISIONAL
gotoxy(45,17) ;write('
gotoxy(45,18) ;write(' t ELECTRE I
'1;
gotoxy(45,19) ;write('
gotoxy(45 9 20) ;write('
SELECCION DE ALTERNATIVAS
gotoxy(45,211 ;write('
BAJO CRITERIOS MULTIPLES.
gotoxy(45,22) ;write('
gotoxy(45,23) ;write('
textbackground(10);
gotoxy(30,11) ;write('
');
7).
gotoxy(30,12) ;write('
gotoxy(30,13) ;writet'
gotoxy(30,14) ;write('
CONVERSACIONAL 0 ');
Df INTERFASE
gotoxy(30,15) ;write('
gotoxy(30,16) ;write('
readin;
end;
begin (t PROSRAMA PRINCIPAL S)
presentacion;
pant menu;
end .
');
,) .
s
');
Descargar