DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

153
DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE CALIDAD EN CUERPOS DE AGUA POCO PROFUNDOS Ing. JUAN CARLOS LOZANO SIERRA UNIVERSIDAD DE LOS ANDES DEPARTAMENTO DE INGENIERÍA CIVIL Y AMBIENTAL BOGOTÁ 2003

Transcript of DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

Page 1: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE

CALIDAD EN CUERPOS DE AGUA POCO PROFUNDOS

Ing. JUAN CARLOS LOZANO SIERRA

UNIVERSIDAD DE LOS ANDES

DEPARTAMENTO DE INGENIERÍA CIVIL Y AMBIENTAL

BOGOTÁ

2003

Page 2: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE

CALIDAD EN CUERPOS DE AGUA POCO PROFUNDOS

Ing. JUAN CARLOS LOZANO SIERRA

Tesis de grado

M.Sc. Ingeniería Civil

Director

Ph.D. LUIS ALEJANDRO CAMACHO BOTERO

UNIVERSIDAD DE LOS ANDES

DEPARTAMENTO DE INGENIERÍA CIVIL Y AMBIENTAL

BOGOTÁ

2003

Page 3: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 1

CONTENIDO

CONTENIDO...................................................................................................................................................................... 1

LISTA DE TABLAS ......................................................................................................................................................... 4

LISTA DE FIGURAS ....................................................................................................................................................... 5

1 INTRODUCCIÓN................................................................................................................................................... 9

1.1 DEFINICIÓN DEL PROBLEMA.................................................................................................................9

1.2 OBJETIVOS...................................................................................................................................................10

1.3 METODOLOGÍA ..........................................................................................................................................11

1.4 DATOS UTILIZADOS.................................................................................................................................13

1.5 RESULTADOS PRINCIPALES.................................................................................................................17

1.6 RESUMEN DE CONTENIDO....................................................................................................................18

2 ANTECEDENTES DEL MODELO HIDRODINÁMICO BIDIMENS IONAL..................................20

2.1 EL CARÁCTER BIDIMENSIONAL DEL MODELO ...........................................................................22

2.2 EL ESQUEMA DE DIFERENCIAS FINITAS ........................................................................................25

2.3 LA PRECISIÓN DEL ESQUEMA UTILIZADO....................................................................................25

2.4 MODELACIÓN HIDRODINÁMICA EN DOS DIMENSIONES (2D) ..............................................27

2.4.1 Ecuaciones Diferenciales Parciales básicas......................................................................................27

2.4.2 Sistema de ecuaciones en Diferencia Finitas.....................................................................................33

2.4.3 Esquema de solución del sistema de ecuaciones en Diferencias Finitas......................................38

2.5 RESULTADOS DE CALIBRACIÓN, OCTUBRE DE 1989 ................................................................41

2.6 RESULTADOS PARA ESPACIAMIENTO VARIABLE.....................................................................43

2.7 PROBLEMA A RESOLVER ......................................................................................................................46

Page 4: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 2

3 PLANTEAMIENTO DEL MODELO BIDIMENSIONAL DE CALIDAD..........................................47

3.1 ECUACIONES PARA MODELACIÓN DE LA CALIDAD DEL AGUA)........................................48

3.1.1 Oxígeno Disuelto.....................................................................................................................................49

3.1.2 Demanda Bioquímica de Oxígeno........................................................................................................55

3.1.3 Nitrógeno Orgánico................................................................................................................................55

3.1.4 Nitrógeno Amoniacal..............................................................................................................................56

3.1.5 Nitritos.......................................................................................................................................................57

3.1.6 Nitratos......................................................................................................................................................58

3.1.7 Sustancia Conservativa (Salinidad).....................................................................................................58

3.2 ACOPLE DE LOS MODELOS HIDRODINÁMICO Y DE CALIDAD .............................................59

4 IMPLEMENTACIÓN DEL MODELO ..........................................................................................................61

4.1 DESCRIPCIÓN GENERAL DEL PROGRAMA ....................................................................................61

4.1.1 Alcance y Limitaciones...........................................................................................................................61

4.1.2 Equipo.......................................................................................................................................................63

4.1.3 Lenguaje y estructura .............................................................................................................................63

4.2 PROGRAMA PRINCIPAL..........................................................................................................................64

4.3 PROCEDIMIENTOS PRINCIPALES.......................................................................................................66

4.4 MANUAL DEL USUARIO.........................................................................................................................68

4.4.1 Instalación Sugerida...............................................................................................................................68

4.4.2 Arquitectura..............................................................................................................................................69

5 VERIFICACIÓN SINTÉTICA DEL MODELO ACOPLADO) .............................................................76

5.1 RESULTADOS PARA UN PULSO DE CONTAMINACIÓN.............................................................79

5.1.1 Salinidad...................................................................................................................................................83

5.1.2 Demanda Bioquímica de Oxigeno........................................................................................................83

5.1.3 Nitrógeno Orgánico................................................................................................................................85

5.1.4 Nitrógeno Amoniacal..............................................................................................................................86

5.1.5 Nitritos.......................................................................................................................................................87

Page 5: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 3

5.1.6 Nitratos......................................................................................................................................................87

5.2 RESULTADOS PARA UN ESCALÓN DE CONTAMINANTE.........................................................89

5.2.1 Salinidad...................................................................................................................................................92

5.2.2 Demanda Bioquímica de Oxigeno........................................................................................................93

5.2.3 Nitrógeno Orgánico................................................................................................................................93

5.2.4 Nitrógeno Amoniacal..............................................................................................................................93

5.2.5 Nitritos.......................................................................................................................................................94

5.2.6 Nitratos......................................................................................................................................................94

6 APLICACIÓN DEL MODELO A CASOS DE ESTUDIO .......................................................................95

6.1 CONFIGURACIÓN DE CANAL CURVILÍNEO PARA FLUJO EN 2D...........................................95

6.2 CIÉNAGA GRANDE DE SANTA MARTA ......................................................................................... 104

7 CONCLUSIONES Y RECOMENDACIONES ...........................................................................................113

7.1 PLANTEAMIENTO DEL MODELO BIDIMENSIONAL DE CALIDAD..................................... 113

7.2 IMPLEMENTACIÓN DEL MODELO .................................................................................................. 114

7.3 VERIFICACIÓN SINTÉTICA DEL MODELO ACOPLADO (CANAL RECTO) ....................... 114

7.4 APLICACIÓN DEL MODELO A CASOS DE ESTUDIO ................................................................. 115

8 BIBLIOGRAFÍA .................................................................................................................................................118

ANEXO A: CÓDIGO DE COMPUTADOR (ANUBIS.EXE)............................................................................120

ANEXO B: CÓDIGO DE COMPUTADOR (LECDATOS.M ) ..........................................................................148

ANEXO C: CÓDIGO DE COMPUTADOR (MOVIE3D.M) .............................................................................150

Page 6: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 4

LISTA DE TABLAS

Tabla 4.1: Archivos de entrada para calidad del agua ................................................71

Tabla 4.2: Archivos de salida modelo bidimensional...................................................73

Tabla 5.1: Datos de entrada esquema de Flujo a pistón.............................................78

Tabla 5.2: Datos de entrada Pulso de contaminación (mg/L) ....................................79

Tabla 5.3: Datos de entrada Escalón de contaminación (mg/L) ................................89

Tabla 6.1: Datos de entrada esquema 2D.....................................................................96

Tabla 6.2: Datos corriente de entrada Pulso de contaminación (mg/L) ....................98

Tabla 6.3: Datos Ciénaga Grande Octubre 1989 ...................................................... 105

Page 7: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 5

LISTA DE FIGURAS

Figura 1.1: Protocolo para el desarrollo y aplicación de un modelo ..........................11

Figura 1.2: Ciénaga Grande de Santa Marta ................................................................15

Figura 2.1: Esquema Espacial de Diferencias Finitas .................................................34

Figura 2.2: Variación de Niveles Estación Centro – Boca ..........................................42

Figura 2.3: Variación de Niveles Estación Centro – Centro........................................42

Figura 2.4: Variación de Niveles Estación Fundación .................................................43

Figura 2.5: Salinidad Estación Tasajera.........................................................................45

Figura 2.6: Salinidad Estación Cataca ...........................................................................45

Figura 3.1: Acople modelos Hidrodinámico y de Calidad............................................60

Figura 4.1: Estructura General del Programa ...............................................................64

Figura 4.2: Macro-algoritmo Programa principal...........................................................65

Figura 4.3: Archivo de datos Entrada.txt ........................................................................70

Figura 4.4: Estructura de entrada datos de calidad .....................................................71

Figura 4.5: Ejecución programa principal, Anubis.exe.................................................72

Page 8: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 6

Figura 4.6: Modelo de archivo tipo de salida “DBO4” ..................................................73

Figura 4.7: Visualización de resultados mediante Matlab ...........................................74

Figura 5.1 : Vista en planta del esquema para Flujo Pistón ........................................77

Figura 5.2: Detalle esquema para Flujo a pistón ..........................................................77

Figura 5.3: Resultados pulso de contaminación...........................................................80

Figura 5.4: Resultados pulso de contaminación t = 19.8 horas .................................81

Figura 5.5: Perfil transversal de concentración, t = 6.6 horas ....................................82

Figura 5.6: Resultados del modelo Vs la solución analítica para DBO (t=20h) .......84

Figura 5.7: Resultados del modelo Vs la solución analítica para NO (t=20h) .........85

Figura 5.8: Resultados del modelo Vs la solución analítica para NA (t=20h) ..........86

Figura 5.9: Resultados del modelo Vs la solución analítica para NI (t=20h) ...........87

Figura 5.10: Resultados del modelo Vs la solución analítica para NN (t=20h) .......88

Figura 5.11: Resultados escalón de contaminación ....................................................90

Figura 5.12: Resultados escalón de contaminación t = 20.0 horas ...........................91

Figura 5.13: Resultados del modelo Vs la solución analítica para DBO (t=20h).....93

Figura 5.14: Resultados del modelo Vs la solución analítica para NO (t=20h) .......93

Figura 5.15: Resultados del modelo Vs la solución analítica para NA (t=20h)........93

Page 9: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 7

Figura 5.16: Resultados del modelo Vs la solución analítica para NI (t=20h) .........94

Figura 5.17: Resultados del modelo Vs la solución analítica para NN (t=20h) .......94

Figura 6.1: Configuración curvilínea para flujo en 2D..................................................95

Figura 6.2: Resultados Hidrodinámicos 2D ...................................................................97

Figura 6.3: Resultados pulso contaminación 2D (Salinidad) ......................................99

Figura 6.4: Resultados pulso contaminación 2D (Salinidad) t = 19.8 horas ........ 100

Figura 6.5: Resultados pulso contaminación 2D (D.B.O.)........................................ 101

Figura 6.6: Resultados pulso contaminación 2D (D.B.O.) t = 19.8 horas .............. 102

Figura 6.7: Resultados pulso contaminación 2D (Nitrógeno) t = 19.8 horas ........ 103

Figura 6.8: Esquema de Diferencias Finitas Ciénaga Grande ................................ 105

Figura 6.9: Variación de Nivel Estación Centro - Boca............................................. 106

Figura 6.10: Variación de Nivel Estación Centro - Centro........................................ 106

Figura 6.11: Variación de Nivel Estación Fundación ................................................ 106

Figura 6.12: Salinidad Estación Tasajera ................................................................... 107

Figura 6.13: Salinidad Estación Cataca ...................................................................... 107

Figura 6.14: Salinidad Estación Centro - Boca .......................................................... 107

Figura 6.15: Salinidad Ciénaga Grande (Octubre 18/1989, 4:00 P.M.) 2 Ciclos.. 109

Page 10: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 8

Figura 6.16: Salinidad Ciénaga Grande (Octubre 18/1989, 4:00 P.M.) 10 Ciclos 110

Figura 6.17: Salinidad Ciénaga Grande (Octubre 20/1989, 10:00 A.M.) ............... 111

Figura 6.18: D.B.O. Ciénaga Grande (Octubre 20/1989, 10:00 A.M.) ................... 112

Page 11: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 9

1 INTRODUCCIÓN

1.1 DEFINICIÓN DEL PROBLEMA

La modelación hidrodinámica de corrientes y cuerpos de agua es una herramienta

útil en la toma de decisiones. En la actualidad, se ha intensificado el desarrollo de

modelos computacionales que permitan predecir el grado de afectación por

actividad antropogénica, que no solo afecta la calidad del agua, sino la calidad de

vida y la salud de la población. En el caso de fuentes superficiales deterioradas, ya

sea por descarga de aguas residuales domésticas en ríos, o por incremento del

estado trófico en lagunas o embalses, la recuperación de éstas requiere de la

inversión de grandes sumas de dinero.

De la gran variedad de modelos matemáticos disponibles, aquellos que permiten

realizar análisis predictivos confiables, utilizando la menor cantidad de datos, son

los de mayor aceptabilidad. Adicionalmente, se desea que los modelos sean

eficientes tanto numérica como gráficamente, lo cual permite obtener resultados

en un tiempo razonable .

El desarrollo un modelo bidimensional de calidad para cuerpos de agua poco

profundos, es decir, aquellos donde no se presentan variaciones significativas de

concentración, temperatura y velocidad en el eje vertical, no sólo facilita el

entendimiento del problema de ingeniería, sino que ayuda en la toma de

Page 12: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 10

decisiones basadas en el análisis de alternativas, en donde se logre una óptima

relación costo-beneficio.

Este modelo es una herramienta indispensable en el planeamiento de políticas de

descontaminación de ciénagas ó estuarios, y permite decidir sobre la conveniencia

de obras de ingeniería en sistemas de tratamiento de aguas residuales como

lagunas de estabilización ó humedales.

1.2 OBJETIVOS

El presente trabajo de Tesis tiene como propósito desarrollar una herramienta

computacional que mejore la capacidad predictiva de los modelos de transporte de

solutos en cuerpos de agua poco profundos y sea un avance en el estado del arte

en esta rama. Para lograr esta meta, se realiza un acoplamiento entre un modelo

hidrodinámico, cuya confiabilidad ha sido comprobada previamente, y la

componente de calidad en donde se incluyen parámetros como Salinidad,

Demanda Bioquímica de Oxígeno y Nitrógeno. Adicionalmente se plantean los

siguientes objetivos específicos:

• Evaluar el comportamiento hidrodinámico de un cuerpo de agua poco profundo

resolviendo las ecuaciones diferenciales gobernantes para flujo en dos

dimensiones.

• Incorporar el componente conservativo y no conservativo en el modelo

hidrodinámico.

Page 13: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 11

• Aplicar el modelo computacional para el caso de La Cienaga Grande de Santa

Marta y calibrar el modelo a partir de datos de nivel, velocidad y salinidad

observados.

1.3 METODOLOGÍA

Aunque existen diferentes protocolos de modelación, a continuación se describen

los pasos más importantes que se requieren para desarrollar adecuadamente un

modelo y la aplicación del mismo a datos obtenidos en campo. Esta metodología

fue aplicada en el desarrollo del presente trabajo de Tesis.

Figura 1.1: Protocolo para el desarrollo y aplicación de un modelo

Conceptualizacióndel modelo matemático

Formulación numérica

Desarrollo del código de computador

Verificacióndel

Código

Aplicación al casode estudio

Calibración del Modelo

Verificación del Modelo

Simulación

Soluciones analíticas:•Ejemplos sintéticos•Pruebas post-modelación

Datos de Campo

Comparación conuna serie de datos

independientesAnálisis de sensibilidad

Si

No

Conceptualizacióndel modelo matemático

Formulación numérica

Desarrollo del código de computador

Verificacióndel

Código

Aplicación al casode estudio

Calibración del Modelo

Verificación del Modelo

Simulación

Soluciones analíticas:•Ejemplos sintéticos•Pruebas post-modelación

Datos de Campo

Comparación conuna serie de datos

independientesAnálisis de sensibilidad

Si

No

Page 14: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 12

El propósito de definir un modelo conceptual es el de crear un modelo teórico del

sistema ha ser modelado, para lo cual se consideraron los aspectos más

relevantes del fenómeno, las ecuaciones gobernantes y los procesos a simplificar

o despreciar. Características tales como condiciones de frontera y geométricas y

las escalas de tiempo y espacio deben ser descritas por completo a la hora de

utilizar los datos de campo.

En este trabajo, el código de computador que representa los procesos de

transporte de solutos ha sido desarrollado completamente, para lo cual se requiere

de un entendimiento claro y preciso de los procesos y sistemas que se están

modelando y de las diferentes suposiciones realizadas.

Una de los principales inconvenientes encontrados por Camacho (1991) es la

poca capacidad computacional de la época y el tamaño del cuerpo de agua

estudiado. Para solucionar este problema, se utilizó un programa de alta eficiencia

numérica (Fortran), el cual fue ensamblado con un programa grafico que permite

la presentación de los resultados fácilmente (Matlab). Esto programas se ejecutan

sencillamente en computadores personales.

Para la verificación del código y de las rutinas de programación se generaron

escenarios sintéticos, los cuales permiten comparar los resultados obtenidos a

partir del modelo con la solución analítica que represente condiciones semejantes.

Una vez el paso anterior fue superado satisfactoriamente, se procedió a la

aplicación del modelo al caso de estudio, para lo cual se generó la información de

entrada el modelo, así como las condiciones de frontera y condiciones iniciales. En

Page 15: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 13

una primera corrida del modelo se evaluó el tiempo de ejecución el cual depende

de la velocidad del computador, el tamaño del modelo, la eficiencia del compilador

y el tipo de salida de los resultados.

Se hicieron corridas simultáneas reduciendo el tamaño de las celdas de

diferencias finitas y el delta de tiempo de simulación, registrando el tiempo de

ejecución del programa hasta encontrar la combinación óptima entre precisión y

costo computacional.

Con relación a la calibración del modelo, se realizaron nuevas corridas, en las

cuales se modificaron algunos de los parámetros con el fin de minimizar la

diferencia encontrada entre los valores de campo y los resultados del modelo.

Una vez se ha demostrado que los resultados de la calibración reproducen la

realidad, el objetivo último de la modelación es predecir condiciones futuras de las

cuales no se cuenta con información.

1.4 DATOS UTILIZADOS

Una revisión critica de los diferentes modelos de trasporte de solutos, realizada al

comienzo de esta investigación, permitió definir los requerimientos de información

necesaria para una correcta implementación, calibración y verificación del modelo

a desarrollar.

Como conclusión de esto, se estableció que es preciso disponer de datos de

campo de parámetros hidrodinámicos (profundidad y velocidades) y de calidad

(salinidad, demanda bioquímica de oxígeno y nitrógeno) para un cuerpo de agua

Page 16: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 14

con condiciones bidimensionales de flujo . Esta información debe estar dada a nivel

horario, con una duración superior a las 48 horas y distribuidas estratégicamente

en toda la masa de agua.

En este sentido, la Universidad de los Andes participó en el proyecto de la

modelación hidrodinámica de la Cienaga Grande de Santa Marta son el apoyo de

COLCIENCIAS y la colaboración del Instituto de Investigaciones Marítimas de

Punta Betín – INVEMAR (CIFI-COLCIENCIAS, 1991). En dicho proyecto se

implementó un modelo hidrodinámico cuyos requerimientos de información fueron

semejantes a los establecidos previamente.

Uno de los principales objetivos planteados por el proyecto, fue el de planear y

ejecutar un programa adecuado de mediciones de campo, con el fin primordial de

calibrar los modelos matemáticos a desarrollar. La Figura 1.2 muestra la

localización general de los diferentes puntos de medición cuya lectura periódica se

realizó de la siguiente forma:

• Observaciones diarias sobre la Orilla: A partir del mes de Mayo de 1989 se

instalaron lectores diarios para las estaciones 1, 2, 3, 7 y 10 los cuales medían

niveles máximo , mínimo y medio, tres veces por día. A partir de Octubre de

1989 se incorpora un nuevo lector en la Estación 12 y se inició la toma de

datos de salinidad a las 6 am. Adicionalmente se aumentaron las lecturas para

nivel a las 21 y 24 horas en aquellas estaciones donde los operadores lo

pudieron hacer. Estas mediciones se continuaron hasta Mayo de 1990.

Page 17: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 15

Figura 1.2: Ciénaga Grande de Santa Marta

• Mediciones Continuas de 48 horas: El programa original de trabajo incluía la

elaboración periódica (cada 3 meses), de campañas continuas de medición

durante un periodo de 24 horas consecutivas. La primera de estas campañas

se realizó con buen éxito en junio de 1989 y cambió radicalmente el énfasis del

programa de mediciones, particularmente a partir de Agosto de 1989 cuando

se extendió a 48 horas continuas y se desarrollaron estaciones o plataformas

móviles en varios puntos del interior de la Ciénaga.

1

23

7

10

5

9

16

17

198

Tabla de Convenciones

Estaciones Perimetrales1: Barra2: Embarcadero3: Tasajera7: Buenavista10: Cataca

Estaciones dentro de la Cienaga5: Clarin8: Bodega9: Fundación16: Centro Boca17: centro Centro19: Sevilla

Page 18: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 16

• Estaciones Móviles: Durante la primera campaña de mediciones continuas de

24 horas, se llegó a la conclusión de que las estaciones más adecuadas para

medir ciertos parámetros, especialmente niveles, salinidad y velocidad del

agua, debían estar situadas dentro de la laguna y no en la orilla , ya que los

efectos de baja profundidad, la obstrucción de la vegetación y la abundancia

de mosquitos y otras alimañas hacían muy difícil la operación.

Los esfuerzos del grupo de campo dieron finalmente como resultado el diseño

y experimentación exitosa de una estación móvil bautizada con el nombre local

de "Troja", consistente en una plataforma de madera hincada en el fondo

relativamente blando de la Ciénaga. Alrededor de la plataforma se emplazaron

varas marcadas en las 8 direcciones principales de la Rosa de los Vientos (N,

NE, E, SE, S, SW, W, NW), y a 20 m de distancia del centro de la plataforma,

con el fin de medir fácilmente la magnitud y dirección de la velocidad de un

flotador arrojado por el operario y recolectado cada vez por el celador. Frente a

cada estación se dispuso otro paral para la mira limnimétrica.

Dado que la información recolectada en las campañas de medición realizadas en

el proyecto CIFI-COLCIENCIAS (1991) es suficiente para la implementación y

calibración del modelo bidimensional desarrollado en el presente trabajo de Tesis,

no se consideró necesaria la realización de nuevos monitoreos, ya que ésta

representa en forma precisa el comportamiento hidrodinámico y de trasporte de

solutos a lo largo de la Ciénaga Grande de Santa Marta.

Page 19: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 17

1.5 RESULTADOS PRINCIPALES

El modelo computacional desarrollado en este trabajo de Tesis, que integra la

componente hidrodinámica con un modelo de transporte de solutos, puede ser

usado en un amplio rango aplicaciones donde no se presenten variaciones

significativas de concentración, temperatura y velocidad en el eje vertical.

Ésta herramienta incluye el modelamiento de componentes de tipo hidrodinámico

como son la profundidad y la velocidad de la corriente, y de calidad de agua en el

cual se evalúa la concentración de contaminantes como salinidad, demanda

bioquímica de oxigeno y nitrógeno en sus diferentes especies (Orgánico,

Amoniacal, Nitritos y Nitratos).

Adicionalmente, dado que la herramienta es eficiente numéricamente, permite

predecir el efecto a corto, mediano y largo plazo de procesos de contaminación

antropogénicos, y la eficacia de la implementación de sistemas de tratamiento y de

políticas de manejo, sobre la calidad final de cuerpos de agua de gran magnitud

como Ciénagas, Bahías, Lagos y Lagunas.

La combinación de un modelo hidrodinámico con un modelo de transporte de

solutos tiene un gran potencial, ya que con esto se da un paso importante de en el

desarrollo de modelos que permitan predecir la capacidad autodepurativa de

grandes cuerpos de agua, así como la calidad de los efluentes bajo diferentes

escenarios de contaminación.

Page 20: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 18

En cuanto al código de computador, se puede decir que la combinación de los

programas Fortran y Matlab permiten realizar modelación de cuerpos

relativamente grandes, con un alto grado de precisión y con un costo

computacional bajo, requiriendo para su ejecución de periodos de tiempo

inferiores a una (1) hora y necesidad de hardware de fácil consecución, como

computadores de escritorio con procesador Pentium IV o superior y memoria RAM

superior a 124 MHz.

1.6 RESUMEN DE CONTENIDO

En el Capitulo 2 se presentan en forma resumida los antecedentes del modelo

hidrodinámico desarrollado por la Universidad de los Andes (CIFI-COLCIENCIAS,

1991), los casos de estudio donde ha sido aplicado y las ventajas y desventajas

encontradas durante su utilización.

El Capitulo 3 presenta las ecuaciones desarrolladas para el modelo hidrodinámico

y de calidad con un esquema de diferencias finitas con tamaño de celda

constante.

El Capitulo 4 muestra los detalles de la implementación computacional del modelo

tanto en su procesamiento matemático (Fortran), como en la presentación gráfica

de resultados (Matlab).

En el Capitulo 5 se aplica el modelo para el caso de una celda relativamente larga

y los resultados obtenidos se comparan con la solución analítica obtenida para

flujo a pistón.

Page 21: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 19

En el Capitulo 6 se presentan los resultados obtenidos de la modelación para dos

escenarios distintos (Configuración de canal curvilíneo y Ciénaga Grande de

Santa Marta), los cuales permiten evaluar cualitativamente el comportamiento

bidimensional del modelo, el transporte de contaminantes, la presencia de zonas

muertas y el grado de predictividad del mismo.

En los Anexos se adjuntan los datos de entrada utilizados para las diferentes

modelaciones, el Código de Computador del modelo de calidad y de la

herramienta gráfica que permite la visualización de los resultados y el Manual del

Usuario para la ejecución del programa.

Page 22: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 20

2 ANTECEDENTES DEL MODELO HIDRODINÁMICO BIDIMENSIONAL

El desarrollo de un modelo general que permita evaluar el comportamiento

hidrodinámico y de calidad de agua es fundamental. El análisis de alternativas

para la ejecución de obras de mejoramiento de la calidad del agua ayudan a la

selección de aquellas que tengan óptima relación costo beneficio.

En el mercado hay disponibles un gran número de modelos de calidad, los cuales

debido a los elevados requerimientos de información en cuanto a climatología,

hidrología, hidrodinámica, batimétrica y calidad, y en algunos casos altos costos

económicos, no son de gran utilidad para el análisis de las condiciones de nuestro

país. Por lo tanto, un modelo aplicable a diferentes sistemas (Ej.: Ciénagas,

Lagunas, Estuarios) es un herramienta útil que no solo facilita el entendimiento del

problema, sino que ayuda en la toma de decisiones.

El caso de la Ciénaga Grande de Santa Marta ha sido tema estudio por mas de 10

años por parte de la Facultad de Ingeniería de la Universidad de los Andes. La

circulación del agua en la laguna es de especial interés para conocer los

mecanismos de transporte de nutrientes, las zonas de estancamiento o retención

de agua, donde puede ocasionalmente producirse déficit en el abastecimiento de

estas sustancias, y los cambios locales de salinidad.

Page 23: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 21

Las investigaciones realizadas a la fecha (Camacho, 1991), han arrojado buenos

resultados en el caso de comportamiento hidrodinámico, pero debido a

limitaciones de tipo computacional, no ha sido posible incorporar la componente

conservativa y no conservativa.

La selección de un modelo bidimensional, específicamente el modelo de Fisher

(Fisher, 1981), ha demostrado ser una herramienta confiable en el estudio de

cuerpos de agua poco profundos, específicamente para el caso de la Ciénaga

Grande de Santa Marta. En la Universidad de los Andes se tiene experiencia en

las capacidades del modelo, lo cual facilita la incorporación de los nuevos

componentes.

El modelo de Fisher, fue desarrollado en la década de 1970 por Hugo B. Fisher,

profesor de la Universidad de California en Berkeley. Este modelo tiene una serie

de características que lo hacen de particular interés para la modelación de

cuerpos poco profundos:

1. Tiene la estructura general de los modelos matemáticos más modernos,

con los cálculos hidráulicos separados de los cálculos de transporte de

sustancias en el agua (modelo hidrodinámico separado del modelo de

transporte).

2. Contiene sin embargo, una metodología y un algoritmo de cálculo de

transporte de sustancias, que permite una eventual ampliación de la

investigación puramente hidrodinámica a la del transporte de nutrientes y de

contaminantes.

Page 24: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 22

3. El núcleo del cálculo hidrodinámico es el modelo de Lendertsee

(Lendertsee, 1967), un investigador holandés de conocida reputación.

4. El modelo de Fisher está publicado, con lo cual su costo es únicamente el

de su transferencia y adaptación al caso particular de cuerpos poco

profundos.

5. El modelo de Fisher y su algoritmo de transporte fueron desarrollados

directamente para el caso de la laguna de Bolinas de California y por lo

tanto está calibrado para un cuerpo poco profundo, de poca extensión y

complejidad hidrológica.

En este punto es conveniente también, discutir brevemente sobre el carácter

bidimensional del modelo; sobre el esquema de cálculo por diferencias finitas, y

sobre la precisión del modelo.

2.1 EL CARÁCTER BIDIMENSIONAL DEL MODELO

Todos los procesos físicos en la naturaleza ocurren en general en tres

dimensiones de espacio y una de tiempo. La variable tiempo es de especial interés

en problemas de flujo no-permanente como los flujos de estuarios aquí tratados,

de modo que resulta imprescindible incluirla en cualquier modelo que se proponga.

En cuanto hace a las dimensiones espaciales, los problemas pueden tratarse con

modelos de 0, 1, 2, ó 3 dimensiones según el grado de simplificación que se

desee.

Page 25: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 23

Los modelos uni-dimensionales (1D) consideran únicamente la variabilidad de los

parámetros de flujo y del movimiento de las partículas de agua a la largo de una

trayectoria lineal, y no permiten discernir las variaciones que puedan ocurrir en

direcciones normales a la dirección principal de movimiento. Tales modelos son

una aproximación válida en aquellos casos donde existe una sola dirección

principal de movimiento, debido a restricciones físicas del campo de flujo . Se usan

principalmente en el caso de canales, tuberías, y en general de conductos de

sección angosta.

Los modelos bidimensionales (2D), se utilizan donde quiera que resulta imposible

definir una dirección preferencial de movimiento en el plano horizontal XY. Si bien

existe una notable clase de modelos que son bidimensisonales en el plano XZ, en

hidráulica de lagunas, estuarios y conductos de sección ancha, la

bidimensionalidad se establece generalmente como la posibilidad del flujo de

cambiar de dirección en el plano XY. Debe anotarse que los modelos

bidimensionales XZ son en general modelos de flujo paralelo , que no permiten

realmente trayectorias de flujo oblicuas y por lo tanto no pertenecen realmente a

una clase general de modelos bidimensionales.

A su vez, los modelos tridimensionales (3D) son modelos que permiten

variaciones en las tres dimensiones espaciales.

Es frecuente confundir el orden dimensional de los modelos con el orden de

precisión de los mismos. Por esta razón conviene aquí establecer con claridad que

Page 26: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 24

no es cierto que los modelos 3D sean más precisos que los modelos 2D, o que

éstos sean más adecuados que los modelos 1D ó aún 0D.

En general, todos los modelos físicos hasta el presente, adolecen de problemas

de precisión similares, debido a la imposibilidad física y matemática de incluir

todos los posibles efectos e interacciones que están implícitos en la liberación

sucesiva de las diferentes restricciones dimensionales. Es valido anotar que entre

menos dimensiones se incluyan, mayor es el grado de simplificación, más fácil es

la interpretación los resultados obtenidos, y más simple el proceso de calibración y

las mediciones de campo necesarias para comprobación.

Dado que en todos los casos es necesario simplificar las ecuaciones y los

sistemas de cálculo, la precisión del modelo depende de que tan bien se adapta

cada condición al fenómeno real a modelar, y no, qué tantas dimensiones se

incluyen. Es también claro que los modelos más comunes y más conocidos

resultan usualmente más precisos puesto que se han podido verificar para un

mayor rango de condiciones. En este sentido los modelos 0D, 1D y 2D son muy

superiores a los modelos 3D, con los cuales existe en la actualidad poca

experiencia práctica. La mayoría de los investigadores serios están de acuerdo en

que en cuestiones de hidrodinámica del flujo y del transporte es preferible trabajar

con el modelo más simple que pueda dar solución al problema propuesto. Lo más

complejo no es necesariamente lo mejor.

Finalmente, vale la pena mencionar que un simple contraste o diferencia en

concentración en la vertical no implica la inutilidad de un modelo 1D o 2D versus la

Page 27: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 25

necesidad de un modelo 3D. Los contrastes de salinidad o de concentración de

sustancias miscibles en la vertical, en lagunas y sistemas estuarinos de baja

profundidad, están asociados normalmente con fenómenos difusivos debidos a la

turbulencia y no con fenómenos advectivos, debido a corrientes verticales, que

son de muy baja intensidad. Por esta razón, estos contrastes verticales pueden

obtenerse una vez determinado el campo de velocidades mediante un modelo 1D

o 2D, mediante ecuaciones conocidas para la distribución vertical de velocidad y

concentración en flujos turbulentos de tipo friccional.

2.2 EL ESQUEMA DE DIFERENCIAS FINITAS

Como ya se ha dicho, el creciente desarrollo de los computadores ha despertado

un renovado interés en el uso de modelos numéricos y el mejoramiento de los

procedimientos de cálculo. Los esquemas de solución basados en diferencias

finitas tienden a ser reemplazados hoy por esquemas con elementos finitos que

presentan algunas ventajas de cálculo, incluyendo la posibilidad de tener

elementos poligonales no cuadrados, que permiten la mejor definición de ciertos

contornos irregulares.

2.3 LA PRECISIÓN DEL ESQUEMA UTILIZADO

La precisión de un modelo no puede ser evaluada a priori, independientemente de

los datos de campo para cada caso particular, dado que la modelación matemática

es aún un arte más que una ciencia exacta. Cada modelador introduce su propia

Page 28: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 26

síntesis de los procesos físicos y su propio esquema computacional para

reproducir fenómenos en extremo complejos.

En general, sin embargo, se puede prever que la componente bidimensional del

presente modelo está bastante bien comprobada por numerosas aplicaciones en

sistemas estuarinos de baja profundidad con condiciones de mezcla completa en

la vertical, es decir sin estratificación de densidad. Esto quiere decir que en cuanto

hace a niveles, profundidades y posiblemente campos de velocidad en el plano

XY, debe poderse lograr una calibración bastante exacta.

Los aspectos de transporte y mezcla de sustancias miscibles deben ser

examinados con mayor detenimiento para lograr una buena calibración. En

particular, es necesario mejorar la toma de datos en el terreno, y desarrollar una

mayor precisión en la localización de las estaciones dentro del sistema de

coordenadas espaciales del cuerpo.

A nivel teórico no puede esperarse mejoría alguna en los resultados con base en

la extensión del modelo al campo tridimensional, pues es bien sabido que para

ambientes de tan baja profundidad, las componentes verticales de aceleración no

son importantes, ni lo son los efectos de circulación producidos por cambios de

densidad. En estas condiciones, el exceso de costo en dinero y en tiempo de

operación no justificaría la utilización de modelos 3D para cuerpos poco

profundos.

Por otra parte, es también sabido que, si las circulaciones de tipo densimétrico

fuesen importantes, no sería posible separar los cálculos hidrodinámicos de los de

Page 29: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 27

transporte, con lo cual se perdería eficiencia y rapidez de cálculo, la cual también

se vería afectada por la mayor cantidad de elementos necesarios en la red de

diferencias finitas.

Se considera en cambio que el modelo seleccionado puede simular con suficiente

precisión la mayoría de los procesos que causan dispersión y transporte de

sustancias en un cuerpo poco profundo, como son la turbulencia de los flujos

generados por mareas, ríos y oleajes, y los efectos transversales de "Bombeo" o

circulación residual por los flujos de marea, y los de "atrapamiento" del flujo en

zonas muertas o de circulación estable dentro del sistema.

2.4 MODELACIÓN HIDRODINÁMICA EN DOS DIMENSIONES (2D)

2.4.1 Ecuaciones Diferenciales Parciales básicas

En el presente numeral se hace la deducción de las ecuaciones parciales del

movimiento en el estado no estable. Posteriormente se introducen los efectos de

viscosidad de la rugosidad del fondo y del esfuerzo cortante del viento en la

superficie del agua.

Las variables de interés son las velocidades y las presiones en un sistema fijo de

coordenadas. Los ejes cartesianos X, Y se toman en el sentido de las manecillas

del reloj en el plano horizontal no distorsionado de la superficie del agua. El eje Z

se toma verticalmente hacia arriba.

La distancia entre el plano de referencia y el fondo se indica por H y la distancia

entre el mismo plano y la superficie del agua a un tiempo determinado se indica

Page 30: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 28

por ξ , que es el nivel del agua que esta sujeto a oscilación. Las componentes de

velocidad son u, v y w paralelas a los ejes de coordenadas en el punto (x, y, z).

Para flujo no viscoso las ecuaciones dinámicas son:

XxP

zu

wyu

vxu

udtu

=∂∂

+∂∂

+∂∂

+∂∂

+∂

ρ1

(2.1)

YyP

zu

wyu

vxu

udtv

=∂∂

+∂∂

+∂∂

+∂∂

+∂

ρ1

(2.2)

ZzP

zu

wyu

vxu

udtz

=∂∂

+∂∂

+∂∂

+∂∂

+∂

ρ1

(2.3)

Donde: P: Presión

ρ Densidad

X, Y y Z: Componentes de fuerzas externas por unidad de masa

Las fuerzas externas son generadas por la rotación de la tierra (efecto Coriolis),

las fuerzas generadoras de marea causadas por los astros y la fuerza

gravitacional en la dirección z. Estas fuerzas se pueden expresar como:

xKfvX += (2.4)

yKfuY +−= (2.5)

Donde: f : Parámetro de Coriolis, función de la latitud ΘΩ= Sinf 2

Ω Velocidad angular de la tierra

Θ Latitud ([+] al norte del Ecuador)

yx KK , : Fuerza generadora de marea

En la dirección vertical la fuerza más importante es la gravitacional. Se desprecian

los efectos de las demás fuerzas en esta dirección en el caso de aguas poco

profundas en las que la profundidad es una fracción de la longitud de onda.

Page 31: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 29

La ecuación de continuidad para flujo incompresible utilizada es:

0=∂∂

+∂∂

+∂∂

zw

yv

xu

(2.6)

En el análisis en dos dimensiones se introducen componentes de velocidad

promediadas en la vertical:

∫−+

ξ h

udzh

U1

(2.7)

∫−+

ξ h

vdzh

V1

(2.8)

Las distribuciones verticales de velocidad de las componentes u y v en un lugar

determinado pueden expresarse como una función de la velocidad promedio

mediante la introducción de unos coeficientes de distribución de la siguiente forma:

( ) ( )[ ]zuUzu '1+= (2.9)

( ) ( )[ ]zvVzv '1+= (2.10)

Para estos coeficientes se cumplen las siguientes relaciones:

( ) 0' =∫−

ξ

h

dzzu

(2.11)

( ) 0' =∫−

ξ

h

dzzv (2.12)

En la teoría clásica de ondas largas, la aceleración vertical de las partículas del

fluido se desprecia por su pequeño valor en comparación a la aceleración del

Page 32: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 30

campo gravitacional. La velocidad vertical w del fluido también se considera

despreciable. Debido a lo anterior la Ecuación (2.3) se reduce a:

ZzP

=∂∂

ρ1

(2.13)

Al integrar la última ecuación, asumiendo que la densidad es uniforme en la

profundidad, se obtiene que la presión es hidrostática y una función lineal de la

profundidad:

( ) ( ) 0PzgzP +−= ξ (2.14)

Donde P0 es la presión atmosférica.

Las derivadas de la presión en las direcciones horizontales pueden expresarse

entonces como función del nivel de agua y de la presión atmosférica:

xP

xg

xP

∂∂

+∂∂

=∂∂ 0ξ

ρ

(2.15)

yP

yg

yP

∂∂

+∂∂

=∂∂ 0ξ

ρ (2.16)

Al integrar las Ecuaciones (2.1) y (2.2) en la región z=-h(x,y) hasta z= ?(x,y) e

introducir las Ecuaciones (2.4), (2.5), (2.7), (2.8), (2.9), (2.10), (2.11), (2.12), (2.15)

y (2.16) se obtiene:

AxxP

xgfV

yU

VxU

UdtU

+∂∂

−=∂∂

+−∂∂

+∂∂

+∂ 01

ρξ

(2.17)

AyyP

ygfU

yV

VxV

UdtV

+∂∂

−=∂∂

+−∂∂

+∂∂

+∂ 01

ρξ

(2.18)

Page 33: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 31

Los términos Ax y Ay contienen los efectos de las fuerzas generadoras de marea y

de derivadas introducidas al promediar verticalmente la velocidad. Cálculos

numéricos y estimativos basados en consideraciones teóricas han demostrado

que estos términos pueden omitirse. Sin embargo es necesario que las

distribuciones de velocidad sobre la vertical sean constantes.

Si se tiene en cuenta la viscosidad, se pueden derivar términos de esfuerzo

cortante de la viscosidad vertical de Hedí en la ecuación de movimiento. Estos

términos pueden representar el efecto del viento en la superficie y de la fricción en

el fondo.

El esfuerzo del fondo (tb) es proporcional al cuadrado de la velocidad. El factor de

fricción depende de la rugosidad del fondo, del material del fondo y de la

profundidad. De acuerdo a Dronkers (Dronkers, 1969) la relación para flujo en una

dirección se puede expresar como:

VVgCtb2−=

(2.19)

Donde C: Coeficiente de Chezy

La introducción del término de esfuerzo del fondo en el sistema bidimensional

resulta en:

( )( ) xFhC

VUUg

xgfV

yU

VxU

UdtU

=+

++

∂∂

+−∂∂

+∂∂

+∂

ξξ

2

21

22

(2.20)

( )( ) yFhC

VUVg

ygfU

yV

VxV

UdtV

=+

++

∂∂

+−∂∂

+∂∂

+∂

ξξ

2

2122

(2.21)

Page 34: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 32

Donde: Fx y Fy son las funciones del esfuerzo cortante del viento y de

presiones barométricas en las direcciones x e y.

Fx y Fy pueden expresarse como:

hT

F xx ρ

=

(2.22)

h

TF y

y ρ=

(2.23)

Donde Tx y Ty son las funciones del esfuerzo cortante del viento sobre la

superficie:

2vadx UcT ρ=

(2.24)

2vady VcT ρ=

(2.25)

Donde aρ : Densidad del aire

cd: Coeficiente de arrastre del aire

Uv,Vv: Velocidad del viento en la dirección x e y respectivamente.

La ecuación de continuidad puede integrarse también en la vertical. La condición

de frontera para la superficie libre es:

( )y

vx

ut

w∂∂

+∂∂

+∂∂

=ξξξ

ξ

(2.26)

y en el fondo es:

( ) 0=∂∂

+∂∂

+−yh

vxh

uhw (2.27)

Page 35: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 33

Con estas fronteras, la integración vertical de la ecuación de continuidad resulta

en:

( )[ ] ( )[ ]0=

∂+∂

+∂+∂

+∂∂

yVh

xUh

tξξξ

(2.28)

En resumen, el problema de determinar las variables de interés ξ , U y V en

determinado campo de flujo es dos dimensiones se resuelve al solucionar el

sistema de ecuaciones diferenciales (2.20), (2.21) y (2.28). Dado que este sistema

no tiene solución analítica posible, deben emplearse métodos numéricos de

diferencias finitas o elementos finitos.

2.4.2 Sistema de ecuaciones en Diferencia Finitas

Para la solución del sistema de ecuaciones diferenciales (2.20), (2.21) y (2.28) en

las variables de interés ξ , U y V, se utilizará un esquema de diferencias finitas. En

el esquema espacial utilizado las velocidades, el nivel del agua y la profundidad se

describen en puntos diferentes de la malla, de acuerdo a la Figura 2.1.

El método de diferencias finitas utilizado es el “método multioperacional implícito-

explícito (Lendertsee, 1967)”. El proceso de cálculo consiste en la aplicación de

dos operaciones sucesivas en el tiempo. Mediante una operación que es implícita

para el nivel y la velocidad en la dirección x y explícita en la dirección y, se

calculan valores de 'ξ , U’ y V’ a partir de los valores de ξ , U y V de una iteración

anterior. Posteriormente, mediante una operación implícita para el nivel y la

velocidad en la dirección y y explícita en la velocidad en la dirección x, se calculan

valores de ''ξ , U’’ y V’’ a partir de los valores de 'ξ , U’ y V’.

Page 36: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 34

Figura 2.1: Esquema Espacial de Diferencias Finitas

nn-1 n+1

m+1

m

m-1

dx

dy

l

Dato de Profundidad h

Cálculo de Nivel ?

Cálculo de Velocidad V

Cálculo de Velocidad U

Cálculo de Sustancia Conservativa

Cálculo de Sustancia No Conservativa

TABLA DE CONVENCIONES

Page 37: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46 35

Leendertsee verificó analíticamente, mediante algunas simplificaciones, la

estabilidad, convergencia y conservación de masa y momentum del esquema. Así

mismo analizó la influencia de los términos no lineales y el efecto del esfuerzo

cortante del fondo. La conclusión del estudio es que el método es “robusto”,

siendo muy estable y de correcto funcionamiento.

A continuación se escriben las dos series de ecuaciones de diferencias finitas del

método multioperacional para las Ecuaciones (2.20), (2.21) y (2.28). La Ecuación

de continuidad (2.28) es la segunda ecuación de cada serie. Por comodidad se

mantienen los gradientes de velocidad en los términos inerciales en forma

diferencial, entre paréntesis angulares “ ”. Los efectos de la rugosidad del viento

se indican por una función R y la influencia del viento y la presión atmosférica por

una función F. Adicionalmente se han marcado los términos no lineales con un

asterisco “*” ya que éstos tiene un tratamiento especial. En todas las ecuaciones

se ha usado el siguiente sistema de promedios y diferencias expresado para la

variable ξ , las cuales son evaluadas en (m,n).

( )nmnmxnm ,1,, 2

1−

− += ξξξ

(2.29)

( )1,,, 21

−− += nmnm

ynm ξξξ

(2.30)

( )nmnmx ,1, −+= ξξξ (2.31)

( )1,, −+= nmnmy ξξξ (2.32)

( )nmnmnmnmnm ,1,,11,1, 41

ξξξξξ +++= −−−− (2.33)

Page 38: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

36

Primera Operación:

xxx FRgdxdt

dydU

VdtdxdU

UdtVdtfUU ′+−′−−′−+=′ ξ12

121

21

21

(2.34)

( )[ ] ( )[ ]yyx

xxy Vh

dydt

Uhdxdt −−−− +−′+−=′ ξξξξ

1

*

1 21

21

(2.35)

yyy FRgdydt

dydV

dtVdxdV

UdtUdtfVV +′

−′−′−′

−′

−=′ *

121

21

21

21

ξ

(2.36)

Segunda Operación:

″+″

−′′−′″

−′′−″

+′=′′ xxx FRgdxdt

dyUd

VdtdxdU

UdtVdtfUU *

121

21

21

21

ξ

(2.37)

( )[ ] ( )[ ] ″+−′+−′=′′ −−−−y

yxx

xy Vhdydt

Uhdxdt *

11 21

21

ξξξξ

(2.38)

yyy FRgdydt

dydV

VdtdxdV

UdtUdtfVV ′+′−′′−″

−′

−′

−′=′′ ξ12

121

21

21

(2.39)

Donde dt: Intervalo de tiempo en segundos

dxm-1 Espaciamiento de la malla en la fila m-1 en metros

dym-1 Espaciamiento de la malla en la Columna n-1 en metros

Page 39: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

37

Los términos correspondientes a los gradientes de velocidad en los términos

inerciales están dados por:

( )( ) mm

nmmnmmnm

nm dxr

UrUrU

dxdU

1

1 ,12

,2

,1

, +

−−+= −+

(2.40)

( )( ) nn

nmnnmnnm

nm dyr

UrUrU

dydU

1

1 1,2

,2

1,

, +

−−+= −+

(2.41)

( )( ) mm

nmmnmmnm

nm dxr

VrVrV

dxdV

1

1 ,12

,2

,1

, +

−−+= −+

(2.42)

( )( ) nn

nmnnmnnm

nm dyr

VrVrV

dydV

1

1 1,2

,2

1,

, +

−−+= −+

(2.43)

Donde 1−= mmm dxdxr y 1−= mmn dydyr

La función R que contiene los efectos de la rugosidad del fondo esta dada por:

( ) [ ]( ) ( )2*

2122*

21

xxy Ch

VUdtgUxR

−−− +

+=

ξ

(2.44)

( ) [ ]( ) ( )2*

2122**

21

yyx Ch

VUdtgVyR

−−− +

+′=

ξ

(2.45)

( ) [ ]( )2

*

2122**

21

xxy Ch

VUdtgUxR

−−−

+

+″=

ξ

(2.46)

( ) [ ]( ) ( )2*

2122*

21

yyx Ch

VUdtgVyR

−−− +

+′=′

ξ

(2.47)

La función F esta dada a su vez por:

Page 40: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

38

( )xyvad

x hUC

F−− +

ρ 2

(2.48)

( )yxvad

y hVC

F−− +

ρ 2

(2.49)

2.4.3 Esquema de solución del sistema de ecuaciones en Diferencias Finitas

A continuación se presenta la forma esquemática de solución del sistema de

ecuaciones en diferencias finitas (2.34), (2.35) y (2.36)en las variables ξ ′ , U’ y V’

de la primera operación. Realizando un proceso matemático simple de reescritura

de las ecuaciones (2.34) y (2.35) en términos de las incógnitas ξ ′ , U’ en función

de variables calculables, Am, y Bm, se obtiene para una columna n:

( )[ ] ( )[ ] AUhdxdt

Uhdxdt

mxy

mxy =

′+−

′++′ −

−−−−1

*

2

*

1 21

21

ξξξ (2.50)

mmm

mm

Bgdxdt

gdxdt

dxdU

UdtU =′−′+′+′ + ξξ21

21

21

1 (2.51)

Donde: ( )[ ]yyx

m Vhdydt

A −− +−= ξξ12

1

(2.52)

′+−−+= xxm FRdydU

VdtVdtfUB21

21

(2.53)

Nótese que Am, y Bm son calculables por depender únicamente de valores de U, V

y ξ de una iteración anterior. Haciendo:

( )*

12

1 21

−−−− +=mxym h

dxdt

r ξ 22 −= mdxdx (2.54)

( )*

121

mxy

m hdxdt

r −− += ξ (2.55)

gdxdt

tm

m 21

1 =+ gdxdt

tm12

1=

(2.56)

Page 41: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

39

mm dx

dUdtw 21= o escrito en forma completa:

( )( )( )( )mm

nmmnmmnmm dxr

UrUrUdtw

1

,12

,2

,1

2

1

+

−+ −−+=

(2.57)

Es posible escribir las ecuaciones (2.50) y (2.51) en forma matricial para todos los

nodos de una columna n en la forma siguiente:

+=

×

−−

+

+

+

+

+

+

ii

jj

i

i

m

m

j

j

j

j

i

i

m

m

j

j

j

j

i

jj

jj

j

Ur

Ur

AB

BA

BABA

U

U

U

U

r

rrtt

r

0.00.000

.

.

.

.

1.000..............................0.....0.100.010.001 11

1

1

1

1

1

1

1

1

1

ξ

ξ

ξ

ξ

Donde el subíndice j indica la fila correspondiente al campo de agua a la izquierda

y el subíndice i , la fila correspondiente al campo de agua a la derecha. Obsérvese

que tanto 1−jU como iU son velocidades conocidas por corresponder a las

velocidades de las fronteras. Si la frontera es un río que llega a la laguna se

conoce la velocidad de entrada o el caudal; si es tierra la velocidad en la dirección

perpendicular es cero y si es una frontera de nivel o marea la velocidad se puede

calcular.

Se puede demostrar fácilmente (Lendertsee, 1967) que, mediante un proceso de

eliminación de incógnitas y un número finito de pasos, la solución del sistema

consiste en la aplicación alterna de las siguientes fórmulas recursivas:

Page 42: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

40

mmmm QUP +′×−=′ξ (2.58)

111 −−− +′×−=′ mmmm SRU ξ (2.59)

Donde el subíndice m corresponde a una determinada columna en la fila n de la

malla de diferencias finitas, y varía desde la frontera izquierda del campo de agua

(fila J) hasta la frontera derecha (fila I).

( )111 −− ×+=

mm

mm Rr

rP

(2.60)

( )( )11

111 −−

−−×+

×+=mm

mmmm Rr

SrAQ (2.61)

( )( )mmm

mm wPt

tR +×+= +1

1 (2.62)

( )mmm

mmmm wPt

QtBS +×+×+= 1

(2.63)

Los factores recursivos Pm, Qm, Rm y Sm se pueden calcular en sucesiones

desde la frontera de la izquierda hasta la frontera de la derecha, almacenando los

respectivos valores en vectores.

En la frontera derecha se conoce mξ ′ si se trata de una frontera de marea o se

conoce mU ′ si se trata de otro tipo de frontera. Al calcular mU ′ en el primer caso es

posible devolverse desde la frontera derecha hasta la frontera izquierda aplicando

alternativamente las formulas recursivas (2.58) y (2.59).

Se obtiene así los valores de mξ ′ y mU ′ en todos los nodos de una columna n de la

malla de diferencias finitas. El proceso se repite para cada columna del esquema

(n=1 hasta el número total de columnas).

Page 43: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

41

Con los valores de mξ ′ y mU ′ en toda la malla se calcula explícitamente el valor de

mV ′ de la Ecuación (2.36) al recorrer todos los nodos.

Se ha presentado la primera operación implícita para mξ ′ y mU ′ y explícita para mV ′ .

El esquema de solución para la segunda operación es casi idéntico al de la

primera, la diferencia corresponde a recorrer fila por fila la malla calculando

implícitamente ″nξ y ″

nV para posteriormente calcular explícitamente ″nU .

2.5 RESULTADOS DE CALIBRACIÓN, OCTUBRE DE 1989

En el proceso de modelación hidrodinámica de la Ciénaga Grande de Santa Marta

realizado por la Universidad de los Andes (CIFI-COLCIENCIAS, 1991), se verificó

el correcto funcionamiento del programa y se encontró que el método numérico de

solución era muy estable y eficiente. Se logró adicionalmente una buena

calibración del modelo, utilizando los datos obtenidos en las campañas de

medición. Sin embargo, a pesar de lo anterior, no se pudo representar

correctamente el campo de velocidad de la Ciénaga medido en campo.

En la Figura 1.2 se observa un esquema de la Ciénaga Grande de Santa Marta,

en el cual se han localizado las estaciones de medición utilizadas en el proyecto

CIFI-COLCIENCIAS. En estas estaciones se midió la superficie del nivel del agua

con miras, la velocidad de la corriente mediante flotadores, la salinidad de

muestras superficiales y en algunos casos la velocidad del viento con

anemómetros. Los parámetros se tomaron cada hora durante periodos de 48

horas en varios meses del año.

Page 44: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

42

La Figura 2.2, la Figura 2.3 y la Figura 2.4 representan los resultados obtenidos en

la calibración final del modelo junto con los datos de las campañas de medición de

Octubre de 1989 para las estaciones Centro-Boca, Centro-Centro y Fundación.

Con relación a los niveles medidos y los valores obtenidos con el modelo se

observa una buena correlación. Para el caso de la velocidad, los valores

modelados son inferiores en algunos casos hasta en un orden de magnitud.

0

2

4

6

8

10

12

11 14 17 20 23 2 5 8 11 14 17 20 23 2 5 8

Hora del Día

cm

Medido Oct/89 Modelo CIFI

Figura 2.2: Variación de Niveles Estación Centro – Boca

0

2

4

6

8

10

12

12 15 18 21 0 3 6 9 12 15 18 21 0 3 6 9

Hora del Día

cm

Medido Oct/89 Modelo CIFI

Figura 2.3: Variación de Niveles Estación Centro – Centro

Page 45: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

43

0

2

4

6

8

10

12

14

16

18

14 17 20 23 2 5 8 11 14 17 20 23 2 5 8

Hora del Día

cm

Medido Oct/89 Modelo CIFI

Figura 2.4: Variación de Niveles Estación Fundación

2.6 RESULTADOS PARA ESPACIAMIENTO VARIABLE

Teniendo en cuenta las limitaciones en la reproducción de la velocidad observada,

investigaciones posteriores (Camacho, 1991) analizaron la influencia del tamaño

de la malla y la exactitud en las condiciones de frontera sobre el comportamiento

de la velocidad. Dicho estudio arrojó entre otras las siguientes conclusiones:

• Se cuenta con un modelo hidrodinámico capaz de simular correctamente zonas

de concentración de flujo mediante el uso de una malla de espaciamiento

variable. Las ecuaciones del modelo han sido probadas y son correctas y el

esquema de malla variable es el apropiado.

• Sin embargo, reducir la malla tiene un costo computacional alto, pues el tiempo

de simulación puede aumentar considerablemente para mantener la estabilidad

numérica y la confiabilidad de los resultados.

• Se considera que la calibración obtenida mediante el modelo hidrodinámico

modificado para la Ciénaga Grande de Santa Marta no es óptima y se puede

Page 46: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

44

mejorar aún más. No se hizo esto por los tiempos de modelación tan largos (15

horas cada corrida).

• El modelo de transporte de contaminantes de Hugo Fisher (Fisher, 1981)

implementado está funcionando correctamente en forma general y las

modificaciones realizadas al modelo original están operando bien.

• Se considera que no se ha logrado una calibración satisfactoria para el caso

específico de intrusión salina en la Ciénaga Grande. Sin embargo se ha hecho

el primer esfuerzo en simular el transporte de contaminantes en este cuerpo de

agua, así como de colgar del modelo hidrodinámico un procedimiento de

transporte.

• Se recomienda en el futuro analizar y estudiar más el modelo de transporte

antes de dar un juicio positivo o negativo de sus ventajas y desventajas.

Aunque es un modelo sencillo y empírico, conceptualmente basado, se

considera que puede dar resultados muy buenos después de un proceso largo

y cuidadoso de calibración.

• Se piensa que se ha abierto un campo de investigación en este proyecto en la

Universidad de los Andes. Se ha dado el primer paso en desarrollar un modelo

bidimensional de transporte de contaminantes aplicable al caso de bahías,

lagos y ciénagas de escasa profundidad, donde no haya considerable

estratificación.

Page 47: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

45

Adicionalmente, en esta investigación se implementó un modelo de transporte con

el fin de determinar el comportamiento de la intrusión salina. La Figura 2.5 y la

Figura 2.6, muestran los resultados obtenidos durante el proceso de calibración

para la Ciénaga Grande de Santa Marta, comparando los resultados con los

obtenidos durante una compaña de medición realizada entre los días 18 y 20 de

Octubre de 1989.

0

5

10

15

20

25

10 13 16 19 22 1 4 7 10 13 16 19 22 1 4 7 10

Hora del Día

Sal

inid

ad (P

/Mil)

Medida C.31 C.33

Figura 2.5: Salinidad Estación Tasajera

0

2

4

6

8

10

12

14

10 13 16 19 22 1 4 7 10 13 16 19 22 1 4 7 10

Hora del Día

Sal

inid

ad (P

/Mil)

Medida C.31 C,33

Figura 2.6: Salinidad Estación Cataca

Page 48: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

46

2.7 PROBLEMA A RESOLVER

Las investigaciones realizadas a la fecha (CIFI-COLCIENCIAS, 1991 y Camacho,

1991), han arrojado buenos resultados en el caso de comportamiento

hidrodinámico, pero debido a limitaciones de tipo computacional, no fue posible

incorporar la componente de calidad del agua.

El propósito de esta investigación es retomar el trabajo realizado hasta ahora, y

aprovechando el avance en la velocidad de procesamiento de los computadores,

desarrollar un modelo completo de calidad de agua, con la precisión suficiente

requerida para el análisis de cuerpos de agua extensos y poco profundos, como lo

es la Ciénaga Grande de Santa Marta. En la modelación de la calidad del agua es

útil incluir sustancias no conservativas tales como Demanda Bioquímica de

Oxígeno y Nitrógeno en sus diferentes formas (Nitrógeno Orgánico, Nitrógeno

Amoniacal, Nitratos y Nitritos) y la Salinidad como sustancia de tipo conservativo .

En este trabajo, las ecuaciones diferenciales que rigen el comportamiento de estas

sustancias se incorporan en el modelo. La verificación de la modelación de estas

sustancias se realiza mediante pruebas analíticas y criterios de conservación de

masa únicamente, ya que no se dispone de datos de campo apropiados, y se sale

del alcance del proyecto la obtención de los mismos.

El modelo se aplica al caso de la Ciénaga Grande de Santa Marta, se hace una

evaluación del transporte de sustancias conservativas, y se comparan los

resultados con datos obtenidos en campo en campañas de muestreo realizadas

durante 1989.

Page 49: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

47

3 PLANTEAMIENTO DEL MODELO BIDIMENSIONAL DE CALIDAD

Para lograr la implementación del modelo en forma adecuada se obtuvieron copias

de los listados de las diversas subrutinas y programas del modelo original (CIFI-

COLCIENCIAS, 1991 y Camacho, 1991), las cuales fueron adaptadas del código

en el que fue elaborado inicialmente (lenguaje PASCAL).

Una de los principales inconvenientes encontrados por Camacho (1991) es la

poca capacidad computacional de la época y el tamaño del cuerpo de agua

estudiado. Para solucionar este problema, se decidió utilizar un programa de alta

eficiencia (Fortran), el cual fue ensamblado con un programa gráfico que permita

la presentación de los resultados fácilmente (Matlab). Estos programas se

ejecutan fácilmente en computadores personales.

Se decidió conservar el esquema original de diferencias finitas, en el cual fue

ensamblado el modelo de calidad del agua (ver Figura 2.1). La modelación se

realiza de manera simultánea, obteniendo inicialmente las condiciones

hidrodinámicas del cuerpo de agua y posteriormente lo relacionado con la

concentraciones de cada uno de los contaminantes. Este procedimiento se realiza

para cada intervalo de tiempo durante la simulación.

El programa se hizo general, de manera que puede ser utilizado para cualquier

cuerpo de agua donde sea válida la aproximación bidimensional, y los contornos

Page 50: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

48

físicos se especifican directamente en el archivo de datos. No hay limitación

alguna en las fronteras bien sea de marea, (mar), o de caudal (ríos), y el cambio

en las fronteras es de muy simple realización por el usuario.

El modelo está adaptado para reproducir también el efecto del viento en la

hidrodinámica de los cuerpos de agua, y permite la utilización de coeficientes de

arrastre variables en el tiempo para toda la malla de diferencias finitas. Otra

característica de importancia en el programa es el coeficiente de rugosidad del

fondo de la laguna, el cual puede variarse espacialmente para cada celda de la

malla de diferencias finitas.

3.1 ECUACIONES PARA MODELACIÓN DE LA CALIDAD DEL AGUA)

Alcanzar una meta de calidad de agua, generalmente requiere la inversión de

grandes sumas de dinero y un cambio de actitud con respecto a la inversión de los

recursos. Los impactos económicos pueden representar desde el costo de

construcción y mantenimiento de instalaciones para reducción de descargas de

contaminantes en corrientes naturales o para mejoramiento de la calidad de los

cuerpos receptores, hasta las limitaciones en el desarrollo económico en una

región o cuenca en particular.

Los responsables de la formulación y aprobación de las políticas y planes de

manejo en el área de la calidad del agua requieren de mecanismos para estimar y

evaluar temporal y espacialmente los impactos económicos, ambientales o

ecológicos de dichas políticas y planes. Ésta necesidad ha estimulado el

desarrollo y aplicación de un amplio rango de técnicas de modelación matemática

Page 51: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

49

que permiten predecir el impacto producido por las diferentes alternativas de

control de contaminación.

3.1.1 Oxígeno Disuelto

En relación con el estudio del Río Ohio, Streeter y Phelps (1925) desarrollaron el

primer modelo de calidad de agua, el cual describe la relación DBO-OD en una

corriente. En su trabajo, se consideró el sistema más simple en el cual el material

biodegradable es descargado a una corriente generando un consumo de oxígeno.

En este caso, se considera la reaireación atmosférica como única fuente de

oxígeno. La velocidad de cambio en el déficit de Oxígeno Disuelto, dD/dt, se

asume que es directamente proporcional a la Demanda de Oxígeno y al déficit de

oxígeno en la corriente. Por lo tanto, la ecuación diferencial para este proceso

puede ser escrita de la siguiente forma:

DKLKdtdD

ad −= (3.1)

Donde:

D Déficit en el Oxígeno de Saturación [M L-3] o la diferencia entre la

concentración de saturación de OD y la concentración para un tiempo t [T],

L Demanda Bioquímica de Oxígeno (Carbonacea) DBOc [M L-3],

Kd Coeficiente de Descomposición o Tasa de decaimiento [T-1],

Ka Coeficiente de reaireación o Tasa de reaireación [T-1].

En el modelo de Streeter – Phelps se asume que las reacciones de

desoxigenación y reaireación son de primer orden, que las velocidades de

reacción son constantes y que el cambio neto en el déficit de oxígeno es función

únicamente de la desoxigenación y de la reaireación atmosférica a través de la

Page 52: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

50

interfase líquido – gas. Mientras que en muchos casos la cinética de la reacción de

DBO se describe mejor por medio de un modelo de segundo orden, la suposición

de una cinética de primer orden es razonablemente exacta para muchas

corrientes.

Junto a la oxidación bacteriana de la materia orgánica y la reaireación atmosférica

consideradas en el modelo de Streeter – Phelps, numerosos procesos se llevan a

cabo en corrientes naturales. Dobbins (1964) resumió algunos de estos procesos:

1. La reducción de DBO por sedimentación y adsorción.

2. El incremento de DBO debido a la resuspensión de los sedimentos del lecho o

a la difusión de compuestos orgánicos parcialmente descompuestos desde la

capa béntica hacia el cuerpo de agua.

3. El incremento de DBO a lo largo de la corriente debido a la escorrentía

superficial.

4. La remoción de oxígeno del agua por la difusión dentro de la capa béntica para

satisfacer la demanda de oxígeno en la zona aerobia de ésta.

5. La remoción de oxígeno del agua por la acción de los gases que ascienden

desde la capa béntica.

6. La adición de oxígeno por la acción fotosintética del plankton y plantas fijas.

7. La remoción de oxígeno debida a la respiración del plankton y plantas fijas.

Page 53: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

51

8. La continua redistribución de la DBO y el OD debida a la dispersión

longitudinal.

Frankel y Hansen (1968) establecieron los siguientes factores a ser considerados:

9. La variación de Kd con el tiempo, específicamente durante la aparición de

procesos de nitrificación, en los cuales no es correcto asumir Kd constante

durante largos valores de tiempo de viaje.

10. Cambios en la configuración del canal, que altera las características

turbulentas de la superficie y consecuentemente la velocidad de transferencia

de oxígeno desde la atmósfera.

11. El efecto de sustancias suspendidas y disueltas sobre la velocidad de difusión

de oxigeno desde la superficie hacia el cuerpo principal de la corriente.

12. Variación diaria en el contenido de oxígeno, DBO, temperatura y velocidad de

flujo en las descargas.

Varias modificaciones al modelo de Streeter – Phelps han sido propuestas para

tener en cuenta algunos de estos procesos. Para los propósitos de la presentan

investigación se tendrán en cuenta los efectos debidos a reaireación y las

demandas tanto Béntica como debida a procesos de nitrificación. La ecuación

diferencial que tiene en cuenta estos factores es (Chapra, 1997):

( ) iinoiaaioabdsa NKrNKrAOKLKOOKdtdO

−−−−−= (3.2)

Donde:

Page 54: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

52

Os es la Concentración de saturación de OD [M L-3],

O Concentración de Oxígeno Disuelto [M L-3],

Kb Coeficiente de demanda béntica de oxígeno [L-2 T-1],

A Área de la sección transversal [L-2]

roa Relación Nitrógeno a Oxígeno para la reacción de Nitrógeno Amoniacal a

Nitrito (3.43 gO/gNa)

Kai Coeficiente de decaimiento de Nitrógeno Amoniacal a Nitritos [T-1]

Na Concentración de Nitrógeno Amoniacal [M L-3]

roi Relación Nitrógeno a Oxígeno para la reacción de Nitrito a Nitrato (1.14

gO/gN)

Kin Coeficiente de decaimiento de Nitrito a Nitrato [T-1]

Ni Concentración de Nitritos [M L-3]

En estuarios, lagunas y ciénagas, la variación en la concentración de oxígeno

disuelto debe incluir el efecto de advección y dispersión. Teniendo en cuenta esto,

la siguiente ecuación describe la distribución espacial del OD en el cuerpo de

agua.

( ) iinoiaaioabdsayx NKrNKrAOKLKOOKdy

OdE

dxOd

EdydO

VdxdO

UdtdO

−−−−−+++−−=22

22

Donde:

U y V Velocidad neta de la corriente en las direcciones x e y [L-1 T],

E Coeficiente de Dispersión (Mezcla Longitudinal) [L2 T-1]

Mediante la discretización por diferencias finitas, la ecuación anterior puede ser

resuelta apropiadamente para cada elemento (m,n) del sistema. A continuación se

(3.3)

Page 55: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

53

realiza la discretización numérica de cada una de sus componentes multiplicando

previamente por su volumen ( ∀ ).

Comenzando con el término de la izquierda de la ecuación, la derivada con

respecto al tiempo es estimada usando una aproximación de diferencia centrada

evaluada entre el tiempo anterior k-1 y el tiempo k,

( ) ( )t

OO

dtOd k

nmk

nm

∀−∀≈

∀ −1,,

(3.4)

El proceso de discretización del término de la derecha de la Ecuación (3.3) se

realiza utilizando un método explicito, es decir, utilizando los valores de

concentración para el tiempo k-1.

La solución implícita de este término no es viable, ya que en el proceso de

evaluación de la concentración para un nodo (m,n) en el tiempo k, es preciso

conocer las concentraciones de los nodos adyacentes para el mismo tiempo, lo

cual genera un sistema de ecuaciones de difícil solución. Adicionalmente, se

genera un costo computacional muy grande, sin generar un incremento

significativo en la calidad de los resultados, ya que se considera que para los

intervalos de tiempo utilizados, los valores de concentración no varían

significativamente.

Adoptando la misma notación presentada en la Figura 2.1 y resolviendo

explícitamente, la Ecuación (3.3) puede ser escrita tal como se presenta en la

Ecuación (3.5). Las Ecuaciones (3.6) a (3.10) presentan las equivalencias de cada

uno de los términos genéricos que se encuentran en la Ecuación (3.5).

Page 56: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

54

( ) ( ) ( ) ∑∑∑ −−−−−−−−

∀−−∀−−∀+∆+=∆

∀−∀ 11111111

,, kkno

kb

kkd

kks

ka

kk

kkk

nmk

nm NKrAOKLKOOKOl

EAOQ

tOO

(3.5)

Donde para cualquier sustancia de análisis C, los anteriores términos genéricos están dados por:

14

,1,,

13

,11,1,1

12

,,1,

11

1,1,11,

1

2222−−−−−−

−−−−−−−

−− +

∆−+

∆++

∆−+

∆=∑ kk

nmk

nmknm

kk

nmk

nmknm

kk

nmk

nmknm

kk

nmk

nmknm

kk Chh

xUChh

xUChh

yVChh

yVCQ

(3.6)

( ) ( ) ( ) ( )

−+

∆−−+

∆+−+

∆−−+

∆=∆ −−+

−−−−

−−−−−+

−−−−

−−−−∑ 1,

1,1

,1,1,

1,1

,11,11,

11,

,,11,

11,

1,1,11

2222k

nmk

nm

knm

knmk

nmk

nm

knm

knmk

nmk

nm

knm

knmk

nmk

nm

knm

knmk

k

CChh

xCChh

xCChh

yCChh

ylD

Cl

EA

(3.7)

111 −−− ∀+∀=∀∑ ki

kinoi

ka

kaioa

kkno NKrNKrNKr

(3.8)

+

+++∆∆=∀ −−−−

nm

knm

knm

knm

knmk hyx ,

1,1,11,,

4

ξξξξ

(3.9)

Para nmnm

nmnm

CCV

CCV

,11,

1,11,

,0

,0

=<

=≥

−− , 1,2,

,2,

,0

,0

+=<

=≥

nmnm

nmnm

CCV

CCV,

nmnm

nmnm

CCU

CCU

,3,1

,13,1

,0

,0

=<

=≥

−− y nmnm

nmnm

CCU

CCU

,14,

,4,

,0

,0

+=<

=≥

(3.10)

Despejando la Ecuación (3.5) para kO se tiene:

( ) ( )k

nm

knm

kkno

kb

kkd

kks

ka

kk

kk

knm

OtNKrAOKLKOOKOl

EAOQ

O,

1,

1111111

, ∀

∀+∆

∀−−∀−−∀+∆+

=

−−−−−−−− ∑∑∑

(3.11)

Page 57: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

55

Mediante la Ecuación (3.11) es posible determinar la concentración de Oxígeno

Disuelto para el tiempo k, en función de concentraciones establecidas para el

tiempo k-1 y condiciones hidrodinámicas para el tiempo k, las cuales han sido

determinadas previamente para la totalidad de los elementos de la malla.

3.1.2 Demanda Bioquímica de Oxígeno

Para el caso de la D.B.O., un análisis semejante al realizado para Oxígeno

Disuelto, en el que únicamente se considerando la reducción en la concentración

debido a la oxidación bacteriana y a procesos de sedimentación, permite deducir

la Ecuación (3.12), la cual describe la distribución espacial en el cuerpo de agua.

LKLKdy

LdE

dxLd

EdydL

VdxdL

UdtdL

sdyx −−++−−= 22

22

(3.12)

La cual se puede expresar como:

( ) ( ) 11111

,, −−−−−

−∀−∆+=∆

∀−∀∑∑ k

skk

dk

kkk

knm

knm AOKLKL

lEA

LQt

LL (3.13)

Despejando para kL se tiene:

( )k

nm

knm

ks

kkd

kk

kk

knm

LtAOKLKLl

EALQ

L,

1,

1111

, ∀

∀+∆

−∀−∆+

=

−−−−− ∑∑

(3.14)

3.1.3 Nitrógeno Orgánico

Al igual que la D.B.O. Carbonacea, los compuestos nitrogenados afectan la

disponibilidad de oxígeno en los cuerpos de agua. El contenido de nitrógeno en las

aguas residuales (Proteínas y Urea) puede ser hidrolizado hasta amonio mediante

Page 58: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

56

procesos de amonificación, los cuales se presentan naturalmente. Considerando

una cinética de primer orden para la transformación de Nitrógeno orgánico (No) a

Nitrógeno Amoniacal (Na), la siguiente expresión describe la distribución espacial

del Nitrógeno Orgánico en el cuerpo de agua.

ooao

yo

xooo NK

dyNd

Edx

NdE

dydN

Vdx

dNU

dtdN

−++−−= 22

22

(3.15)

La cual se puede expresar como:

( ) ( )111

1,, −−−−

∀−∆+=∆

∀−∀∑∑ k

ok

oak

o

kk

ok

knmo

knmo NKN

lEA

NQt

NN

(3.16)

Despejando para koN se tiene:

( )k

nm

knmo

ko

koa

ko

kk

ok

knmo

NtNKNl

EANQ

N,

1,

111

, ∀

∀+∆

∀−∆+

=

−−−− ∑∑

(3.17)

3.1.4 Nitrógeno Amoniacal

Bacterias autotróficas son capaces de asimilar el amonio disponible en el agua y

convertirlo a Nitrito ( −2NO ) y Nitrato ( −

3NO ). El proceso de transformación de amonio

a nitrato se denomina nitrificación. Esta puede ser representada por una serie de

reacciones, la primera de ellas, llevada a cabo por una bacteria del genero

Nitrosomona la cual convierte el ión amonio a nitrito,

−+− ++⇒+ 2224 25.1 NOOHHONH (3.18)

Posteriormente, una bacteria del genero Nitrobacter convierte el nitrito a nitrato,

Page 59: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

57

−− ⇒+ 322 5.0 NOONO (3.19)

El proceso completo requiere de 4,57 g de oxígeno para llevarse a cabo. La

siguiente es la ecuación diferencial que representa el comportamiento del

contenido de Nitrógeno Amoniacal en un cuerpo de agua:

aaiooaa

ya

xaaa NKNK

dyNd

Edx

NdE

dydN

Vdx

dNU

dtdN

−+++−−= 22

22

(3.20)

La cual se puede expresar como:

( ) ( )1111

1,, −−−−−

∀−∀+∆+=∆

∀−∀∑∑ k

ak

aik

ok

oak

a

kk

ak

knma

knma NKNKN

lEA

NQt

NN

(3.21)

Despejando para kaN se tiene:

( )k

nm

knma

ka

kai

ko

koa

ka

kk

ak

knma

NtNKNKNl

EANQ

N,

1,

1111

, ∀

∀+∆

∀−∀+∆+

=

−−−−− ∑∑

(3.22)

3.1.5 Nitritos

La ecuación diferencial que representa el contenido de Nitritos es:

iinaaii

yi

xiii NKNK

dyNd

Edx

NdE

dydN

VdxdN

Udt

dN−+++−−= 22

22

(3.23)

Realizando el mismo procedimiento se obtiene:

( ) ( )1111

1,, −−−−−

∀−∀+∆+=∆

∀−∀∑∑ k

ik

ink

ak

aik

i

kk

ik

knmi

knmi NKNKN

lEA

NQt

NN

(3.24)

Despejando para kiN se tiene:

Page 60: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

58

( )k

nm

knmi

ki

kin

ka

kai

ki

kk

ik

knmi

NtNKNKNl

EANQ

N,

1,

1111

, ∀

∀+∆

∀−∀+∆+

=

−−−−− ∑∑

(3.25)

3.1.6 Nitratos

La ecuación diferencial que representa el contenido de Nitratos es:

iinn

yn

xnnn NK

dyNdE

dxNdE

dydNV

dxdNU

dtdN +++−−= 22

22

(3.26)

De igual forma para el caso de nitritos se obtiene:

( ) ( )111

1,, −−−−

∀+∆+=∆

∀−∀∑∑ k

ik

ink

n

kk

nk

knmn

knmn NKN

lEA

NQt

NN

(3.27)

Despejando para kiN se tiene:

( )k

nm

knmi

ki

kin

ki

kk

ik

knmi

NtNKNl

EANQ

N,

1,

111

, ∀

∀+∆

∀+∆+

=

−−−− ∑∑

(3.28)

Donde los subíndices o, a, i y n representan las diferentes especies del nitrógeno,

a saber Orgánico, Amoniacal, Nitrito y Nitrato respectivamente.

3.1.7 Sustancia Conservativa (Salinidad)

Utilizando el mismo planteamiento realizado para sustancias no conservativas,

pero eliminando los componentes de decaimiento y formación se obtienen

expresiones semejantes para el caso de la salinidad (S):

22

22

dySd

Edx

SdE

dydS

VdxdS

UdtdS

yx ++−−=

(3.29)

La cual se puede expresar como:

Page 61: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

59

( ) ( ) 111

,, −−−

∆+=∆

∀−∀∑∑ k

kkk

knm

knm S

lEA

SQt

SS (3.30)

Despejando para kS se tiene:

( )k

nm

knm

kk

kk

knm

StSl

EASQ

S,

1,

11

, ∀

∀+∆

∆+

=

−−− ∑∑

(3.31)

3.2 ACOPLE DE LOS MODELOS HIDRODINÁMICO Y DE CALIDAD

Generalmente, las variaciones en las condiciones de flujo del agua tienen un

impacto muy grande en la calidad de ésta. Por el contrario, para la mayoría de

los casos la calidad del agua no afecta significativamente las condiciones de

flujo. Por ejemplo, la variación en la densidad causada por cambios en la

calidad del agua generalmente son insignificantes en comparación con otros

términos en la ecuación de momentum.

Esta condición permite separar las predicciones del comportamiento

hidrodinámico y de calidad de agua. Para la mayoría de los casos es posible

simular inicialmente la hidráulica o la hidrodinámica y luego los resultados

obtenidos utilizarlos en las simulaciones de calidad del agua.

El acople de los modelos hidrodinámico y de calidad se puede ilustrar

reescribiendo la ecuación que representa la concentración de la D.B.O. en el

cuerpo de agua

( )k

nm

knm

ks

kkd

kk

kk

knm

LtAOKLKLl

EALQ

L,

1,

1111

, ∀

∀+∆

−∀−∆+

=

−−−−− ∑∑

(3.14)

Page 62: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

60

Para resolver esta ecuación, es preciso conocer las condiciones

hidrodinámicas del nodo (n,m) en el tiempo k y la concentración de éste y los

nodos adyacentes en el tiempo (k-1). La Figura 3.1 ilustra el procedimiento de

cálculo para la determinación de las variables hidrodinámicas (profundidad y

velocidades) y de calidad (Demanda Bioquímica de Oxigeno, Nitrógeno y

Salinidad).

Figura 3.1: Acople modelos Hidrodinámico y de Calidad

Dato de Profundidad h

Cálculo de Nivel ?

Cálculo de Velocidad V

Cálculo de Velocidad U

Cálculo de Calidad

TABLA DE CONVENCIONES

k

k+1

k-1

Evaluación Hidrodinámica

Evaluación Calida de Agua

t

Page 63: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

61

4 IMPLEMENTACIÓN DEL MODELO

En el presente capítulo se presentan el alcance y las limitaciones del modelo

hidrodinámico y de calidad implementado en el computador. Se hace una

descripción general del programa, de los procedimientos y variables principales y

de los archivos de entrada y salida requeridos para la operación del mismo. El

Numeral 4.4 contiene el manual de usuario del programa y en el Anexo A se

presenta el código de computador.

4.1 DESCRIPCIÓN GENERAL DEL PROGRAMA

4.1.1 Alcance y Limitaciones

El programa de computador implementado es una versión adaptada y en parte

transformada del programa hidrodinámico y de transporte de contaminantes

desarrollado por Hugo Fischer (1981) con el modelo matemático de Leendertsee

(1967).

El programa es aplicable para cualquier estuario de poca profundidad en donde es

válido el modelo matemático presentado en los capítulos anteriores. La geometría

del estuario y las fronteras se describen en el archivo de datos mediante códigos,

por lo cual, no se requiere modificar el programa para ser aplicado a otras

ciénagas.

Page 64: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

62

Se ha verificado el correcto funcionamiento del programa. Se considera que el

método numérico de solución es muy estable y el proceso de cálculo es eficiente.

No se ha limitado el número y localización de fronteras de marea y fronteras de

caudal. El usuario puede cambiar rápidamente la geometría del estuario, agregar o

quitar fronteras de marea y/o caudal fácilmente y hacer el tipo de simulación que

desee.

El modelo sirve para modelar el efecto del viento en la hidrodinámica de las

corrientes. Se puede considerar un coeficiente de arrastre de viento variable en el

tiempo en toda la malla de diferencias finitas. En algunos casos de estuarios

grandes se requiere variar espacialmente este coeficiente en la malla ya que el

viento puede no actuar uniformemente. El programa está limitado al respecto

actualmente y se requiere de programación adicional para su modificación.

El coeficiente de rugosidad del fondo puede considerarse variable espacialmente

en cada celda de la malla de diferencias finitas. Esto permite considerar al usuario

zonas de diferente rugosidad en el estuario debidas a materiales de fondo

diferentes.

En general el programa es manejable y se ha elaborado un sistema de archivos

flexible, sin formatos especiales complicados. Junto al programa hidrodinámico y

de calidad, se ha elaborado un programa de ayudas gráficas, que permiten

presentar los resultados en tres dimensiones y visualizar el comportamiento

temporal de los diferentes parámetros de análisis.

Page 65: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

63

4.1.2 Equipo

El programa se desarrolló y ejecutó en un Computador Portátil Compaq Presario

720 LA con procesador Mobile AMD Duron de 1.1 GHz y 112 MB de memoria

RAM. El programa puede ser ejecutado fácilmente en computadores de escritorio

con características semejantes, sin embargo, la utilización del modelo se restringe

a mallas de diferencias finitas inferiores a 500 x 500 nodos, debido al alto tiempo

requerido para el procesamiento matemático de la totalidad de los parámetros,

que puede superar las 72 horas de modelación.

Para la presentación de los resultados en forma gráfica, adicionalmente se

requiere tener instalado el programa MATLAB, que es la plataforma bajo la cual se

ejecutan las rutinas de visualización en 3D.

4.1.3 Lenguaje y estructura

El programa está escrito en lenguaje FORTRAN y se ha estructurado por módulos

o subrutinas cortas. El programa no es interactivo, todas las entradas y salidas se

hacen a través de archivos tipo texto ya que se requiere de la ejecución continua

del mismo y el alto volumen de datos tanto de entrada como de salida, dificulta su

manejo e interpretación. La estructura general del programa puede verse en la

Figura 4.1.

Page 66: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

64

Figura 4.1: Estructura General del Programa

4.2 PROGRAMA PRINCIPAL

El funcionamiento del programa principal se puede resumir como sigue:

• inicialización

• lectura de los datos a partir de los archivos creados con anterioridad a la

ejecución del programa

• ciclo de cálculos matemáticos del primer intervalo de tiempo al último intervalo,

e impresión de resultados a archivos en iteraciones específicas determinadas

por el usuario

• finalización

NOMBRE DEL PROGRAMA

DECLARACIÓN DE VARIABLESReal, Entero, Caracter, Doble

DECLARACIÓN DE CONSTANTES

PROGRAMA PRINCIPAL

ARCHIVOS DE DATOSEntrada.txt,, SusCon.txt,DatDBO.txt , DatNO.txt,

DatNA.txt, DatNI.txt, DatNN.txt, DatOD.txt,

SUBRUTINASAberturaarch, Lea,

Codigos, Leacalidad,Imprimadat, Imprimares,

Imprimaest , Datosit,Fronteras, Escriba,

Direccion, Defparameter

ARCHIVOS RESULTADOSDatos4, Velx4,Vely4, Nivel4

Salinidad4.txt, DBO4.txt,NitOrg4.txt, NitNH4.txtNitrito4.txt, Nitrato4.txt,

OxiDis4.txt

Page 67: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

65

El macro-algoritmo del programa principal del modelo hidrodinámico y de calidad

se presenta en la Figura 4.2 en la cual se han incluido los procedimientos

principales.

Figura 4.2: Macro-algoritmo Programa principal

DECLARACIÓN DE VARIABLESReal, Entero, Caracter, Doble

DECLARACIÓN DE CONSTANTES

LECTURA DE DATOS CALIDADSusCon.txt,DatDBO.txt, DatNO.txt,

DatNA.txt, DatNI.txt, DatNN.txt, DatOD.txt

DESEA MODELARCALIDAD?

Calidad =Y/N

LECTURA DE DATOS HIDRODINÁMICO

Entrada.txt

ITERACIÓN = 1

N Y

PROCEDIMIENTO DE CALCULOHIDRODINÁMICO

ITERACIÓN= # MAX

ITERACIONES

CERRAR ARCHIVOSF I N

N Y

Calidad = YPROCEDIMIENTO

DE CALCULO PARA CALIDAD

Y

N

Calidad = YIMPRIMA

Datos4, Velx4, Vely4, NivelN

Y

SE IMPRIMEN RESULTADOS

EN ESTA ITERACIÓN?

N Y

ITERACIÓN = ITERACIÓN + 1

IMPRIMASalinidad4.txt, DBO4.txt,

NitOrg4.txt, NitNH4.txtNitrito4.txt, Nitrato4.txt,

OxiDis4.txt

Page 68: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

66

4.3 PROCEDIMIENTOS PRINCIPALES

A continuación se hace una descripción general de los procedimientos más

importantes del modelo bidimensional hidrodinámico y de calidad.

• Aberturaarch: en este procedimiento se abren el archivo de datos (Entrada.txt,,

SusCon.txt, DatDBO.txt, DatNO.txt, DatNA.txt, DatNI.txt, DatNN.txt, DatOD.txt )

y los archivos de resultados (Datos4, Velx4, Vely4, Nivel4, Salinidad4.txt,

DBO4.txt, NitOrg4.txt, NitNH4.txt , Nitrito4.txt, Nitrato4.txt, OxiDis4.txt) Estos

archivos constituyen la entrada y salida del programa y se describen

detalladamente más adelante.

• Lea: se leen todos los datos requeridos para la ejecución del programa del

archivo de datos tipo texto.

• Inicialicebot: en el procedimiento se inicializan todas las variables y constantes

requeridas por el procedimiento matemático "Botony".

• Datosit: se leen o determinan por interpolación los datos variables de cada

iteración. Estos datos son los valores del nivel de la marea y la velocidad en las

fronteras respectivas y el esfuerzo cortante del viento en toda la malla. El

usuario puede utilizar si lo desea una ecuación para representar la marea. En

este caso mediante los procedimientos Tiempo y Ecuación se determina el

valor del nivel en la iteración correspondiente. Otra opción es especificar

directamente los valores de la marea en el tiempo en el archivo de datos.

Page 69: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

67

• Tiempo: se determina el tiempo de modelación en horas correspondiente a la

n-ésima iteración.

• Ecuación:se determina mediante una ecuación, cuyos parámetros son algunas

constantes y el tiempo en horas, el nivel de la marea correspondiente.

• Fronteras: se asignan los valores de marea y velocidad determinados en el

procedimiento Datosit en las fronteras respectivas.

• Botony: el procedimiento consiste en la solución matemática del sistema de

ecuaciones en diferencias finitas descrito en los numerales 2.4.3 y 3.2. En la

Figura 4.2 puede verse el macro-algoritmo del procedimiento. Como resultado

del procedimiento se obtienen las matrices sep, up y vp que contienen

respectivamente, el nivel y la velocidad en las dos direcciones x e y en todos

los nodos de la malla de diferencias finitas. Con relación a calidad se obtienen

las matrices salp, dbop, nop, namop, nitrip, nitrap y OxiDisp que almacenan la

información de Salinidad, Demanda Bioquímica de Oxígeno, Nitrógeno

Orgánico, Nitrógeno Amoniacal, Nitritos, Nitratos y Oxigeno Disuelto.

• Imprimares: se imprimen en archivos las matrices sep, up y vp a algunas

iteraciones específicas, con el fin de obtener salidas gráficas de curvas de igual

nivel y vectores de velocidad.

• Imprimaest: se imprime a archivos, a nivel horario, el nivel y la velocidad de la

corriente de algunos nodos fijos o estaciones de interés para el usuario.

Page 70: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

68

• Defparameter: calcula variables temporales de los parámetros de

concentración para cada uno de los contaminantes evaluados.

4.4 MANUAL DEL USUARIO

A continuación se describe los procedimientos básicos para la instalación y

operación del Modelo Bidimensional Hidrodinámico y de Calidad para

cuerpos de Agua poco Profundos.

4.4.1 Instalación Sugerida

Como ya se mencionó anteriormente, la instalación y ejecución del programa de

modelación no exige requerimientos especiales de hardware o software, por lo

cual éste puede ser ejecutado desde cualquier computador de escritorio.

Para instalar el programa para modelación hidrodinámica y de calidad de cuerpos

de agua poco profundos, el usuario debe crear una carpeta con el nombre del

cuerpo de agua a modelar. En esta carpeta, se deben crear o copiar los siguientes

archivos, que forman parte integral del programa y son fundamentales para su

ejecución:

1. Anubis.exe

2. Entrada.txt

3. SusCon.txt :

4. DatDBO.txt

5. DatNO.txt

6. DatNA.txt

7. DatNI.txt

8. DatNN.txt

9. DatOD.txt

10. Datos4

11. Velx4

12. Vely4

13. Nivel4

14. Salinidad4.txt

15. DBO4.txt

16. NitOrg4.txt

17. NitNH4.txt

18. Nitrito4.txt

19. Nitrato4.txt

20. OxiDis4.txt .

El programa de visualización de resultados es una rutina elaborado en lenguaje

Matlab, por lo cual el usuario debe instalar previamente este programa. Los

Page 71: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

69

archivos en lenguaje Matlab que permiten la representación gráfica de los

resultados de la modelación son los siguientes, los cuales deben ser copiados en

esta misma carpeta:

21. Mvinit.m 22. Movie3d.m 23. Lecdatos.m

Adicionalmente, el usuario debe iniciar el programa Matlab y establecer la carpeta

que contiene la totalidad de los archivos como directorio actual.

4.4.2 Arquitectura

A continuación se presenta la forma como el usuario debe crear los archivos de

entrada para el modelo, la ejecución del principal y la forma en que éste genera

los archivos de salida.

4.4.2.1 Archivos de entrada

Los archivos de datos son de tipo texto, esto quiere decir que pueden ser creados

y modificados mediante cualquier procesador de palabras o editor de texto. Los

datos se teclean por registros o renglones con un formato preestablecido, el cual

debe ser conservado. En caso contrario, el programa generará errores durante su

ejecución.

El archivo Entrada.txt contiene la totalidad de la información relacionada con la

hidrodinámica del cuerpo de agua, en este archivo se definen el tipo de fronteras y

el número de ellas, las condiciones iniciales y el tiempo de modelación. Para el

diseño de este archivo de datos, se utilizó la misma descripción dada por CIFI-

COLCIENCIAS (1991) a cada una de las variables de entrada. En la Figura 4.3 se

Page 72: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

70

muestra un ejemplo de este archivo y la forma como se alimentan al programa

algunas de las variables.

Figura 4.3: Archivo de datos Entrada.txt

Para el modelamiento de la calidad del cuerpo de agua, se dispone de un archivo

de entrada para cada uno de los contaminantes. En este archivo se especifica la

concentración inicial de la masa de agua, la concentración de las diferentes

fronteras en función del tiempo y los coeficientes de difusión y decaimiento en los

casos que se requiera. En la Tabla 4.1 se indica a que tipo de contaminante

corresponde cada uno de los archivos de entrada, cuya estructura de entrada de

datos es muy semejante. En la Figura 4.4 se presenta el modelo de los archivos

de entrada para calidad del agua.

Page 73: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

71

Tabla 4.1: Archivos de entrada para calidad del agua

PARÁMETRO ARCHIVO

Salinidad SusCon.txt:

Demanda bioquímica de Oxigeno DatDBO.txt

Nitrógeno Orgánico DatNO.txt

Nitrógeno Amoniacal DatNA.txt

Nitritos DatNI.txt

Nitratos DatNN.txt

Oxigeno Disuelto DatOD.txt

Figura 4.4: Estructura de entrada datos de calidad

4.4.2.2 Ejecución del Programa principal “Anubis.exe”

Una el usuario haya generado en forma correcta los archivos de datos de entrada

del modelo, se inicia la ejecución del programa principal Anubis.exe el cual, si no

se encuentran errores, comienza el procesamiento matemático continuando

ininterrumpidamente hasta la última iteración. El usuario ve permanentemente en

pantalla la iteración en que se encuentra la ejecución. En la Figura 4.5 se muestra

en ejecución el programa ANubis.exe, el cual fue desarrollado en lenguaje Fortran.

Page 74: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

72

Figura 4.5: Ejecución programa principal, Anubis.exe

4.4.2.3 Archivos de salida

Una vez se ha finalizado satisfactoriamente la ejecución del programa, en la

carpeta del usuario se encuentran los archivos planos que contienen los

resultados de la modelación. En la Tabla 4.2 se indica que tipo de información

almacena cada uno de estos archivos. Se imprimen datos a intervalos de tiempo

preestablecido por el usuario. Los resultados se presentan en filas de máximo 60

columnas, los cuales van separados por el valor del tiempo, en horas,

transcurridos desde el inicio de la modelación. La Figura 4.6 muestra un archivo

Page 75: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

73

tipo de impresión de resultados, en el cual se muestra el tiempo de impresión de

resultado.

Tabla 4.2: Archivos de salida modelo bidimensional

PARÁMETRO ARCHIVO

Profundidad Nivel4.txt:

Velocidad en la dirección Norte-Sur Vely4.txt

Velocidad en la dirección Occidente-Oriente Velx4.txt

Salinidad Salinidada4.txt

Demanda bioquímica de Oxigeno DBO4.txt

Nitrógeno Orgánico NitOrg4.txt

Nitrógeno Amoniacal NitNHA.txt

Nitritos Nitrito4.txt

Nitratos Nitrato4.txt

Oxigeno Disuelto OxiDis4.txt

Figura 4.6: Modelo de archivo tipo de salida “DBO4”

Page 76: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

74

4.4.2.4 Presentación gráfica de resultados

Para la visualización de los resultados es preciso ejecutar dos rutinas

independientes desde el programa Matlab. La primera de ellas “Lecdatos.m”

recoge la información almacenada en los archivos de salida tipo texto y los

almacena como en forma matricial en un archivo denominado “Datos.mat”. El

programa “Movie3d.m” presenta gráficamente la información almacenada en este

archivo. La Figura 4.7 muestra la presentación de los resultados mediante el

programa Matlab y la forma de establecer el directorio en el cual se realizó la

modelación.

Figura 4.7: Visualización de resultados mediante Matlab

Page 77: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

75

4.4.2.5 Códigos fuentes

En el Anexo A se presentan los códigos del programa principal “Anubis.exe”. Los

Anexos B y C presentan las rutinas de Matlab para la visualización de los

resultados “Lecdatos.m” y “Movie3d.m”

Page 78: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

76

5 VERIFICACIÓN SINTÉTICA DEL MODELO ACOPLADO)

En este capítulo se hace la verificación sintética del modelo acoplado, la cual es

un procedimiento fundamental en el protocolo de desarrollo del modelo (Ver Figura

1.1), que permite comprobar la programación del mismo y decidir si los resultados

obtenidos a partir de éste, son una representación de la realidad que se esta

modelando. En este punto, es fundamental la utilización de soluciones analíticas

del problema.

El primer paso para la verificación del programa, consiste en aplicar el modelo a

un caso en donde las ecuaciones diferenciales que representan el problema sean

fácilmente resueltas matemáticamente y de esta forma, el resultado obtenido se

compara con los resultados arrojados por el modelo. Para las condiciones del

modelo desarrollado, se considera que el mejor caso de estudio es el de un

cuerpo de agua cuyas condiciones de flujo sean muy semejantes a las

condiciones de flujo sin dispersión.

Caso de flujo a Pistón

En condiciones ideales, el flujo a pistón se caracteriza porque el flujo de fluidos a

través de él es ordenado, sin que ningún elemento del mismo sobrepase o se

mezcle con cualquier otro elemento situado antes o después de aquel. En

realidad, en este reactor puede haber mezcla lateral de fluido, pero nunca ha de

Page 79: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

77

existir mezcla o difusión a lo largo de la trayectoria de flujo bajo condiciones de

flujo uniforme. La condición necesaria y suficiente para que exista flujo a pistón es

que el tiempo de residencia en el reactor sea el mismo para todos los elementos

del fluido y el flujo sea uniforme.

Teniendo en cuenta esto y con el fin de simular las condiciones de flujo

establecidas para un reactor de tipo pistón, se alimentó al programa de

computador un esquema tal como se presenta en la Figura 5.1.

Figura 5.1: Vista en planta del esquema para Flujo Pistón

Este esquema esta constituido por una malla de 20 x 200 elementos, con lo que

se pretende evitar la mezcla a lo largo de la trayectoria de flujo. Las dimensiones

de cada una de las celdas se presentan en la Figura 5.2.

Figura 5.2: Detalle esquema para Flujo a pistón

2000 m

20.000 m

A A’

B’

B

100 m

100 m

h = 0.5 m

? ˜ 1.0 m

Page 80: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

78

En la Tabla 5.1 se presentan los datos de entrada para la evaluación de las

condiciones tanto hidrodinámicas como de calidad para el esquema de flujo a

pistón.

Tabla 5.1: Datos de entrada esquema de Flujo a pistón

PARÁMETRO VARIABLE UNIDADES VALOR

Tiempo de cada iteración dt Segundos 1.0

Tamaño de la Celda dx Metros 100.0

Tiempo al que inicia modelación itime Segundos 1.0

Número de iteraciones maxtime 72000

Número de meses durante la modelación nmes Mes 1

Número de impresi ones de los datos numres 100

Número de Columnas de la configuración ncol 200

Número de filas de la Configuración mfil 20

Número de fronteras de marea por columnas nfrmcol 0

Número de fronteras de marea por filas nfrmfil 0

Número de fronteras de caudal por columnas nfrqcol 2

Número de fronteras de caudal por filas nfrqfil 0

Nombre de la Corrida Id Pistón

Tipo de entrada de datos de nivel de la malla nivinicial 0

Nivel inicial de toda la malla SE seinv Metros 1.0

Profundidad H de la malla H Metros 0.5

Coeficiente de Rugosidad C de Chezy C 125

Número de ríos numrios 2

Velocidad Río 1 caud(1) M/s 0.29

Velocidad Río 2 caud(2) M/s 0.31

Número de Estaciones para impresión nest 0

Bajo las condiciones presentadas en la Tabla 5.1 se realizaron dos tipos de

modelación. La primera cuando se aplica una carga contaminante mediante un

pulso, con una duración aproximada de 30 minutos y la última, cuando la

contaminación se incrementa repentinamente y se mantiene constante en el

tiempo (Escalón).

Page 81: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

79

5.1 RESULTADOS PARA UN PULSO DE CONTAMINACIÓN

Se alimentó al programa un pulso de contaminación con una duración de 33

minutos, periodo luego del cual se regresó a las condiciones previas al evento de

contaminación. Los contaminantes incluidos en la corriente fueron Demanda

Bioquímica de Oxígeno, Nitrógeno Orgánico y Salinidad. Durante la modelación se

analizó el comportamiento de éstos contaminantes y se verificó la formación de

sustancias como Nitrógeno Amoniacal, Nitritos y Nitratos.

En la Tabla 5.2 se resumen las condiciones en la corriente de entrada de cada uno

de los contaminantes antes, durante y después de pulso de contaminación.

Tabla 5.2: Datos de entrada Pulso de contaminación (mg/L)

PARÁMETRO INICIAL PULSO FINAL Kd (s-1)

SALINIDAD 1.0 9.0 1.0 0.0

DEMANDA BIOQUÍMICA DE OXÍGENO 2.0 25.0 2.0 2.89x10-5

NITRÓGENO ORGÁNICO 1.0 15.0 1.0 3.30 x10-5

NITRÓGENO AMONIACAL 0.0 0.0 0.0 2.30 x10-5

NITRITOS 0.0 0.0 0.0 5.80 x10-5

NITRATOS 0.0 0.0 0.0 0.0

En la Figura 5.3 se presentan los resultados de la modelación para los diferentes

contaminantes en los tiempos t = 1.0 hora, t = 5.0 horas, t = 10.0 horas y t = 16.0

horas. La Figura 5.4 presenta los resultados para t = 19.8 horas, cuando el pulso

ha superado casi la totalidad del cuerpo de agua. Los resultados mostrados

representan un corte longitudinal en el centro del canal (Corte A-A’, Figura 5.1).

Page 82: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

80

Figura 5.3: Resultados pulso de contaminación

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 1 Horas

0.25

0.3

0.35V

eloc

idad

(m/s

)

0

5

Sal

inid

ad (m

g/L)

0

5

DB

O (m

g/L)

0

5

Nit.

Org

. (m

g/L)

0

1

2

Nit.

NH

4 (m

g/L)

0

0.5

1

Nitr

itos

(mg/

L)

20 40 60 80 100 120 140 160 1800

0.5

1

Nitr

atos

(mg/

L)

Distancia en Metros x 10E+2

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 5 Horas

0.25

0.3

0.35

Vel

ocid

ad (m

/s)

0

5

Sal

inid

ad (m

g/L)

0

5

DB

O (m

g/L)

0

5

Nit.

Org

. (m

g/L)

0

1

2

Nit.

NH

4 (m

g/L)

0

0.5

1

Nitr

itos

(mg/

L)

20 4 0 60 80 100 120 140 160 1800

0.5

1

Nitr

atos

(mg/

L)

Distancia en Metros x 10E+2

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 10 Horas

0.25

0.3

0.35

Vel

ocid

ad (m

/s)

0

5

Sal

inid

ad (m

g/L)

0

5

DB

O (m

g/L)

0

5

Nit.

Org

. (m

g/L)

0

1

2

Nit.

NH

4 (m

g/L)

0

0.5

1

Nitr

itos

(mg/

L)

20 40 60 80 100 120 140 160 1800

0.5

1

Nitr

atos

(mg/

L)

Distancia en Metros x 10E+2

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 16 Horas

0.25

0.3

0.35

Vel

ocid

ad (m

/s)

0

5

Sal

inid

ad (m

g/L)

0

5

DB

O (m

g/L)

0

5

Nit.

Org

. (m

g/L)

0

1

2N

it. N

H4

(mg/

L)

0

0.5

1

Nitr

itos

(mg/

L)

20 4 0 60 80 100 120 140 160 1800

0.5

1

Nitr

atos

(mg/

L)

Distancia en Metros x 10E+2

Page 83: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

81

Figura 5.4: Resultados pulso de contaminación t = 19.8 horas

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 19.8 Horas

0.25

0.3

0.35

Vel

ocid

ad (

m/s

)

0

5S

alin

idad

(mg/

L)

0

5

DB

O (m

g/L)

0

5

Nit.

Org

. (m

g/L)

0

1

2

Nit.

NH

4 (m

g/L)

0

0.5

1

Nitr

itos

(mg/

L)

20 40 60 80 100 120 140 160 1800

0.5

1

Nitr

atos

(mg/

L)

Distancia en Metros x 10E+2

Page 84: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

82

En la Figura 5.3 se observa como el pulso de concentración se amortigua

lentamente a medida que éste transita a lo largo del canal. Una explicación de

esto es la condición de flujo no uniforme (velocidad variable) establecida en el

ejercicio de modelación, lo que genera gradientes longitudinales de velocidad y

por consiguiente dispersión de los contaminantes.

En la Figura 5.5 se presenta el perfil transversal de cada uno de los contaminantes

(Corte B – B’, Figura 5.1) para un tiempo de modelación de 6.6 horas. Como se

puede observar, el modelo predice una leve disminución de los diferentes

parámetros en las paredes del canal. El perfil de velocidad mostrado corresponde

a la dirección del flujo. No se presenta perfil de velocidad en la dirección

perpendicular al flujo, ya que las velocidades en este sentido son iguales a cero

(0.0) para todos los nodos del canal.

0,0

0,5

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5,0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Ancho del Canal (x10E2 m)

Co

nce

ntr

ació

n (

mg

/L)

Nivel (m) Velocidad (m/s) Salinidad DBO Nit, Org Nit NH4 Nitrito Nitrato

Figura 5.5: Perfil transversal de concentración, t = 6.6 horas

Page 85: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

83

A continuación se presentan las ecuaciones diferenciales que representan el

decaimiento para las sustancias no conservativas para un reactor de flujo pistón:

5.1.1 Salinidad

Con relación a este parámetro, a simple vista se puede decir que hay

conservación del mismo, ya que tal como se observa en la Figura 5.3 y en la

Figura 5.4, luego del evento de contaminación la concentración regresa a su valor

inicial, es decir la concentración de la corriente de entrada.

5.1.2 Demanda Bioquímica de Oxigeno

La ecuación diferencial que representa la concentración de este contaminante a lo

largo del canal es:

LKdtdL

d∀−=∀ (5.1)

Si la concentración en la corriente de entrada es L0 y se consideran condiciones

ideales de flujo sin difusión ni mezcla lateral a lo largo del canal, esta ecuación se

puede resolver como:

tKdeLL −= 0 (5.2)

Para los propósitos prácticos de la presente investigación, y dado que lo que se

pretende es determinar el grado de similitud de los resultados obtenidos a partir

del modelo con lo obtenido mediante la solución de las ecuaciones diferenciales

que representan el sistema, se considera que las condiciones del modelo son de

flujo pistón ideal, y por consiguiente el tiempo de residencia se calcula a partir de

los datos de velocidad alimentados al modelo . Esto se realiza entre otras razones

Page 86: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

84

porque la condición hidrodinámica de flujo no uniforme impuesta dificulta en gran

medida la solución analítica completa.

Por lo tanto, según la ecuación vxt = y dado que se consideró una velocidad

promedio de 0.3 m/s (Figura 5.4), el perfil de la D.B.O. a lo largo del cuerpo de

agua se puede representar como:

( ) ( )3.0

1089.20

5

2x

vxK

eeLL d−×−−

×== (5.3)

La Ecuación (5.3) representa el comportamiento ideal para la Demanda

Bioquímica de Oxígeno en un reactor de flujo pistón bajo condiciones semejantes

a las alimentadas al modelo. En la Figura 5.6 se presenta comparativamente los

resultados del modelo junto a los valores obtenidos mediante la Ecuación (5.3)

para un tiempo de modelación de 20 horas desde la aplicación del contaminante.

0,00

0,50

1,00

1,50

2,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

DB

O (m

g/L

)

Modelo Ecuación

Figura 5.6: Resultados del modelo Vs la solución analítica para DBO (t=20h)

Como se puede observar en la Figura 5.6, el modelo para las condiciones de flujo

pistón representa adecuadamente el comportamiento ideal, lo cual indica que el

programa de computador representa este tipo de procesos, tanto en la parte

hidrodinámica, como en calidad, como es el caso de la D.B.O. El incremento en la

Page 87: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

85

concentración en el último sector de la corriente de agua corresponde a la cola

remanente del pulso de contaminación alimentado al modelo.

A continuación se presentan las ecuaciones diferencial que representan el

comportamiento del Nitrógeno es sus diferentes especies a lo largo del canal.

5.1.3 Nitrógeno Orgánico

ooao NK

dtdN

∀−=∀ (5.4)

Si la concentración de entrada es No0, esta ecuación se puede resolver como:

tKoo

oaeNN −= 0 (5.5)

Utilizando la misma metodología que en el numeral anterior se tiene:

( ) ( )3.01030.30

5

1x

vxK

oo eeNN d−×−−

×== (5.6)

En la Figura 5.7 se presenta comparativamente los resultados del modelo junto a

los valores obtenidos mediante la Ecuación (5.6) para un tiempo de modelación de

20 horas desde la aplicación del contaminante.

0,00

0,50

1,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NO

(m

g/L

)

Modelo Ecuación

Figura 5.7: Resultados del modelo Vs la solución analítica para NO (t=20h)

Page 88: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

86

Nuevamente observamos un alto grado de similitud de los resultados obtenidos

por ambos métodos.

5.1.4 Nitrógeno Amoniacal

aaiooaa NKNK

dtdN

∀−∀+=∀ (5.7)

Si la concentración en la corriente de entrada es Na0, esta ecuación se puede

resolver como:

( )tktk

oaai

ooatKaa

a ioaa i eekk

NkeNN −−− −

−+= 0

0 (5.8)

Reemplazando por los valores de la Tabla 5.2 se tiene:

( ) ( )

×−×××

=−− ×−×−

−−

−3.0103.23.0103.3

55

5 55

103.3103.21103.3 xx

a eeN (5.9)

En la Figura 5.8 se presenta comparativamente los resultados del modelo junto a

los valores obtenidos mediante la Ecuación (5.9) para un tiempo de modelación de

20 horas desde la aplicación del contaminante.

0,00

0,50

1,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NA

(m

g/L

)

Modelo Ecuación

Figura 5.8: Resultados del modelo Vs la solución analítica para NA (t=20h)

Page 89: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

87

5.1.5 Nitritos

iinaaii NKNK

dtdN

∀−∀+=∀ (5.10)

La solución para esta ecuación es:

( )

−−

−−−

−+−

−=

−−−−−−

aiin

tktk

oain

tktk

oaai

ooaaitktk

aiin

aaii kk

eekkee

kkNkk

eekk

NkN

ina iinoaina i 00

(5.11)

Reemplazando por los valores de la Tabla 5.2 se tiene:

( ) ( ) ( ) ( )

×−×−

−×−×

−×−×

××××= −−

×−×−

−−

×−×−

−−

−−−−−−

55

3.0108.53.0103.2

55

3.0108.53.0103.3

55

55

103.2108.5103.3108.5103.3103.21103.3103.2

5555 vvvv

ieeee

N (5.12)

En la Figura 5.9 se presenta comparativamente los resultados del modelo junto a

los valores obtenidos mediante la Ecuación (5.12) para un tiempo de modelación

de 20 horas desde la aplicación del contaminante.

0,00

0,25

0,50

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NI (

mg

/L)

Modelo Ecuación

Figura 5.9: Resultados del modelo Vs la solución analítica para NI (t=20h)

5.1.6 Nitratos

iinn NK

dtdN

∀+=∀ (5.13)

Resolviendo se tiene:

Page 90: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

88

( ) ( )

−−

−−−

−−−

−−−

−−−−+=

−−−−−−−−−−

aiin

tktk

oain

tktk

oaai

ooaaitktk

aiin

aaitktk

oaai

ooatka

tkoaon kk

eekkee

kkNkk

eekk

Nkee

kkNk

eNeNNNNinaiinoa

inaiaioaaioa 0000000

Reemplazando por los valores de la Tabla 5.2 se tiene:

( ) ( ) ( ) ( ) ( ) ( ) ( )

×−×−

−×−×

−×−×

××××−

×−×××

−−=−−

×−×−

−−

×−×−

−−

−−×−×−

−−

−×−

−−−−

−−−

55

3.0108.53.0103.2

55

3.0108.53.0103.3

55

553.0103.23.0103.3

55

53.0103.3

103.2108.5103.3108.5103.3103.21103.3103.2

103.3103.21103.3

115555

555vvvv

xxv

a

eeeeeeeN

En la Figura 5.10 se presenta comparativamente los resultados del modelo junto a

los valores obtenidos mediante la Ecuación (5.15) para un tiempo de modelación

de 20 horas desde la aplicación del contaminante.

0,00

0,50

1,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NN

(mg

/L)

Modelo Ecuación

Figura 5.10: Resultados del modelo Vs la solución analítica para NN (t=20h)

Del análisis de la Figura 5.6 hasta la Figura 5.10 se puede concluir que el modelo

representa en forma correcta el comportamiento hidrodinámico y de calidad para

los diferentes contaminantes para una configuración de flujo a pistón cuando en la

corriente de entrada se alimenta un pulso de contaminación. Se observa una leve

desviación en la parte final de las curvas, lo cual puede se explicado por un

remanente del pulso de contaminación, que aún no ha transitado totalmente el

canal.

(5.14)

(5.15)

Page 91: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

89

5.2 RESULTADOS PARA UN ESCALÓN DE CONTAMINANTE

Con el ánimo de verificar aún más el comportamiento del modelo y su capacidad

de representar la realidad se realizó un nuevo análisis, semejante al realizado para

un pulso de contaminación, considerando un escalón de contaminación en la

corriente de entrada del reactor de flujo a pistón. En la Tabla 5.3 se resumen las

condiciones en la corriente de entrada de cada uno de los contaminantes antes, y

después del escalón de contaminación.

Tabla 5.3: Datos de entrada Escalón de contaminación (mg/L)

PARÁMETRO INICIAL FINAL Kd (s-1) SALINIDAD 1.0 4.0 0.0 DEMANDA BIOQUÍMICA DE OXÍGENO 2.0 20.0 2.89x10-5 NITRÓGENO ORGÁNICO 1.0 15.0 3.30 x10-5 NITRÓGENO AMONIACAL 0.0 0.0 2.30 x10-5 NITRITOS 0.0 0.0 5.80 x10-5 NITRATOS 0.0 0.0 0.0

En la Figura 5.11 se presentan los resultados de la modelación para los diferentes

contaminantes en los tiempos t = 1.0 hora, t = 5.0 horas, t = 10.0 horas y t = 16.0

horas. La Figura 5.12 presenta los resultados para t = 20.0 horas, cuando el pulso

ha superado casi la totalidad del cuerpo de agua. Los resultados mostrados, al

igual que para el caso del Pulso de Contaminación, representan un corte

longitudinal en el centro del canal (Corte A-A’, Figura 5.1)

En la Figura 5.11 se observa como el escalón de contaminante se dispersa

lentamente a medida que éste transita a lo largo del canal. La condición de flujo no

uniforme (velocidad variable) establecida en el ejercicio de modelación genera

gradientes longitudinales de velocidad y por consiguiente dispersión de los

contaminantes.

Page 92: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

90

Figura 5.11: Resultados escalón de contaminación

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 1 Horas

0.25

0.3

0.35V

eloc

idad

(m/s

)

0

5

Sal

inid

ad (m

g/L)

0

10

20

DB

O (m

g/L)

05

1015

Nit.

Org

. (m

g/L)

0

5

Nit.

NH

4 (m

g/L)

0123

Nitr

itos

(mg/

L)

20 40 60 80 100 120 140 160 1800

5

Nitr

itos

(mg/

L)

Distancia en Metros x 10E+2

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 5 Horas

0.25

0.3

0.35

Vel

ocid

ad (m

/s)

0

5

Sal

inid

ad (m

g/L)

0

10

20

DB

O (m

g/L)

05

1015

Nit.

Org

. (m

g/L)

0

5

Nit.

NH

4 (m

g/L)

0123

Nitr

itos

(mg/

L)

20 4 0 60 80 100 120 140 160 1800

5

Nitr

itos

(mg/

L)

Distancia en Metros x 10E+2

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 10 Horas

0.25

0.3

0.35

Vel

ocid

ad (m

/s)

0

5

Sal

inid

ad (m

g/L)

0

10

20

DB

O (m

g/L)

05

1015

Nit.

Org

. (m

g/L)

0

5

Nit.

NH

4 (m

g/L)

0123

Nitr

itos

(mg/

L)

20 40 60 80 100 120 140 160 1800

5

Nitr

itos

(mg/

L)

Distancia en Metros x 10E+2

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 16 Horas

0.25

0.3

0.35

Vel

ocid

ad (m

/s)

0

5

Sal

inid

ad (m

g/L)

0

10

20

DB

O (m

g/L)

05

1015

Nit.

Org

. (m

g/L)

0

5N

it. N

H4

(mg/

L)

0123

Nitr

itos

(mg/

L)

20 4 0 60 80 100 120 140 160 1800

5

Nitr

itos

(mg/

L)

Distancia en Metros x 10E+2

Page 93: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

91

Figura 5.12: Resultados escalón de contaminación t = 20.0 horas

0.8

1

1.2

Pro

fund

idad

(m)

Tiempo Modelado = 20 Horas

0.25

0.3

0.35V

eloc

idad

(m

/s)

0

5

Sal

inid

ad (m

g/L)

0

10

20

DB

O (m

g/L)

05

1015

Nit.

Org

. (m

g/L)

0

5

Nit.

NH

4 (m

g/L)

0123

Nitr

itos

(mg/

L)

20 40 60 80 100 120 140 160 1800

5

Nitr

itos

(mg/

L)

Distancia en Metros x 10E+2

Page 94: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

92

La evaluación de los perfiles transversales de los diferentes contaminantes

produce resultados semejantes a los obtenidos para el caso de pulso de

contaminación, observándose valores ligeramente inferiores en las paredes del

canal. El perfil de velocidad en la dirección perpendicular al flujo, es semejante al

caso anterior e igual a cero (0.0) para el ancho del canal.

A continuación se presenta el análisis comparativo entre los resultados arrojados

por el modelo y la solución analítica, equivalente para el caso de pulso de

contaminación.

En las siguientes Figuras se presentan los resultados obtenidos durante la

modelación para los diferentes contaminantes, utilizando los valores de entrada

presentados en la Tabla 5.3, junto a los valores de concentración calculados

mediante las Ecuaciones (5.2), (5.5), (5.8), (5.11) y (5.14), todos estos para un

tiempo de modelación de 20 Horas (72000 Segundos).

5.2.1 Salinidad

Con relación a este parámetro, al igual que en el caso anterior se puede decir que

hay conservación del mismo, ya que tal como se observa en la Figura 5.11 y en la

Figura 5.12, luego del evento de contaminación la concentración incrementa hasta

un valor equivalente a la concentración de la corriente de entrada, manteniéndose

así hasta el final de la modelación.

Page 95: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

93

5.2.2 Demanda Bioquímica de Oxigeno

0,00

5,00

10,00

15,00

20,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

DB

O (m

g/L

)

Modelo Ecuación

Figura 5.13: Resultados del modelo Vs la solución analítica para DBO (t=20h)

5.2.3 Nitrógeno Orgánico

0,00

5,00

10,00

15,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NO

(mg

/L)

Modelo Ecuación

Figura 5.14: Resultados del modelo Vs la solución analítica para NO (t=20h)

5.2.4 Nitrógeno Amoniacal

0,00

2,00

4,00

6,00

8,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NA

(mg

/L)

Modelo Ecuación

Figura 5.15: Resultados del modelo Vs la solución analítica para NA (t=20h)

Page 96: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

94

5.2.5 Nitritos

0,00

1,00

2,00

3,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NI (

mg

/L)

Modelo Ecuación

Figura 5.16: Resultados del modelo Vs la solución analítica para NI (t=20h)

5.2.6 Nitratos

0,00

2,00

4,00

6,00

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000

Distancia (metros)

NN

(m

g/L

)

Modelo Ecuación

Figura 5.17: Resultados del modelo Vs la solución analítica para NN (t=20h)

Para la totalidad de los contaminantes se observa un alto grado de correlación.

Las diferencias observadas en la parte final de esquema, corresponden al frente

de avance del escalón, el cual no ha superado totalmente el cuerpo de agua.

Page 97: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

95

6 APLICACIÓN DEL MODELO A CASOS DE ESTUDIO

Una vez se ha verificado que el código funciona en forma correcta y además se ha

comprobado que los resultados obtenidos a partir de éste, son una representación

de la realidad que se esta modelando, es preciso analizar el comportamiento del

mismo bajo condiciones diferentes que permitan ver efectos bi-dimensionales de

mezcla (por ejemplo solo salinidad).

6.1 CONFIGURACIÓN DE CANAL CURVILÍNEO PARA FLUJO EN 2D

En la Figura 6.1 se presenta la vista en planta de un nuevo esquema de

modelación, el cual permite verificar efectos bidimensionales para los diferentes

contaminantes.

Figura 6.1: Configuración curvilínea para flujo en 2D

Page 98: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

96

En la Tabla 6.1 se presentan algunos de los datos de entrada para la evaluación

de las condiciones tanto hidrodinámicas como de calidad para el esquema de flujo

en dos dimensiones - 2D.

Tabla 6.1: Datos de entrada esquema 2D

PARÁMETRO VARIABLE UNIDADES VALOR

Tiempo de cada iteración dt Segundos 1.0

Tamaño de la Celda dx Metros 100.0

Tiempo al que inicia modelación itime Segundos 1.0

Número de iteraciones maxtime 72000

Número de meses durante la modelación nmes Mes 1

Número de impresi ones de los datos numres 100

Número de Columnas de la configuración ncol 200

Número de filas de la Configuración mfil 60

Número de fronteras de marea por columnas nfrmcol 0

Número de fronteras de marea por filas nfrmfil 0

Número de fronteras de caudal por columnas nfrqcol 2

Número de fronteras de caudal por filas nfrqfil 0

Nombre de la Corrida Id Pistón

Tipo de entrada de datos de nivel de la malla nivinicial 0

Nivel inicial de toda la malla SE seinv Metros 1.0

Profundidad H de la malla H Metros 0.5

Coeficiente de Rugosidad C de Chezy C 125

Número de ríos numrios 2

Velocidad Río 1 caud(1) M/s 0.29

Velocidad Río 2 caud(2) M/s 0.31

Número de Estaciones para impresión nest 0

En la Figura 6.2 se presentan los resultados del modelo en cuanto a la parte

hidrodinámica. En la parte baja de la misma, se muestran las líneas de contorno

para la profundidad a cada 0.01 m. Dado que las condiciones de velocidad en las

corrientes de entrada y salida se mantienen constantes durante toda la

Page 99: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

97

modelación, el nivel del agua a lo largo del cuerpo no varía significativamente,

manteniéndose semejante al mostrado en la Figura 6.2

Figura 6.2: Resultados Hidrodinámicos 2D

Del análisis cualitativo de esta figura, se puede concluir que el modelo representa

adecuadamente este tipo de configuración, ya que se genera un perfil hidráulico

cuyo comportamiento esta de acuerdo con lo esperado. En las zonas rectas del

canal se observa flujo uniforme, el cual se ve afectado por la presencia del

obstáculo, generando así zonas muertas en los puntos más alejados de la

dirección predominante de flujo. Adicionalmente, en la parte interna del canal se

evidencian zonas de remolinos debido a las altas velocidades que predominan en

este sector.

Page 100: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

98

Para este escenario se modeló un pulso de contaminación bajo las condiciones

presentadas en la Tabla 6.2 y una duración aproximada de 33 minutos.

Tabla 6.2: Datos corriente de entrada Pulso de contaminación (mg/L)

PARÁMETRO INICIAL PULSO FINAL Kd (s-1) SALINIDAD 1.0 9.0 1.0 0.0 DEMANDA BIOQUÍMICA DE OXÍGENO 2.0 25.0 2.0 2.89x10-5 NITRÓGENO ORGÁNICO 1.0 15.0 1.0 3.30 x10-5 NITRÓGENO AMONIACAL 0.0 0.0 0.0 2.30 x10-5 NITRITOS 0.0 0.0 0.0 5.80 x10-5 NITRATOS 0.0 0.0 0.0 0.0

En la Figura 6.3 y en la Figura 6.4 se presenta el comportamiento temporal para la

modelación de un pulso de Salinidad. Se hace evidente la dispersión del

contaminante a medida que ésta viaja por el canal, la cual se incrementa

significativamente una vez se alcanza la primera curva. Una vez el frente de la

onda alcanza el segundo cambio de dirección, la masa se desplaza bajo

condiciones semejantes a las observadas para el canal recto.

La presencia de zonas muertas se hace evidente, ya que se encuentran

concentraciones relativamente altas, una vez el pulso ha superado estos sectores

totalmente. Nuevamente, al igual que para el caso de flujo a pistón, las

concentraciones en las paredes son inferiores a las del centro del canal,

pronunciando este efecto en la salida del mismo.

Con relación a la Demanda bioquímica de Oxígeno (Figura 6.5 y Figura 6.6), la

concentración del canal disminuye gradualmente debido al decaimiento natural

que sufre esta sustancia mientras permanece retenida al interior de éste. Análisis

de estas figuras confirma los resultados observados para el pulso de salinidad.

Page 101: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

99

Figura 6.3: Resultados pulso contaminación 2D (Salinidad)

Page 102: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

100

Figura 6.4: Resultados pulso contaminación 2D (Salinidad) t = 19.8 horas

Page 103: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

101

Figura 6.5: Resultados pulso contaminación 2D (D.B.O.)

Page 104: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

102

Figura 6.6: Resultados pulso contaminación 2D (D.B.O.) t = 19.8 horas

Page 105: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

103

Figura 6.7: Resultados pulso contaminación 2D (Nitrógeno) t = 19.8 horas

Page 106: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

104

Una vez el pulso ha superado el primer sector del canal, se genera un perfil de

concentración decreciente, muy semejante al observado en el canal recto, lo que

confirma el flujo uniforme en esta zona. Por otro lado, se evidencia también, una

trayectoria predominante de flujo por la cual transite el frente de la onda. Los

sectores aledaños a las paredes alcanzan tiempos de residencia superiores a los

del centro del canal, ya que las concentraciones en los primeros son mucho

menores a las reportadas para estos últimos.

Con relación a los demás contaminantes, la Figura 6.7 presenta los resultados una

vez el frente de onda ha alcanzado la salida del canal. Una vez más se confirman

las observaciones realizadas para Salinidad y DBO con respecto a las zonas

muertas y trayectorias predominantes de flujo.

Como conclusión general de esta simulación, se puede afirmar que el modelo es

numéricamente estable y el análisis cualitativo de los resultados permite asegurar

que éste es una representación de la realidad que se esta modelando.

6.2 CIÉNAGA GRANDE DE SANTA MARTA

Dado que en el proyecto CIFI-COLCIENCIAS (1991) de la “Modelación

hidrodinámica de la Ciénaga Grande de Santa Marta” se tomaron datos de campo

de salinidad en las orilla y dentro de la ciénaga durante las campañas de medición

de 48 horas, se decidió en este proyecto modelar el comportamiento de la

Salinidad con el fin de verificar los resultados del modelo y determinar sus

bondades y desventajas. En la Figura 6.8 se presenta el esquema de diferencias

finitas utilizado durante la modelación.

Page 107: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

105

Figura 6.8: Esquema de Diferencias Finitas Ciénaga Grande

El tamaño de celda utilizado es de 500 metros y el intervalo de tiempo para cada

iteración es de 180 segundo. En la Tabla 6.3 se presentan las condiciones de

calidad de las diferentes entradas de la Ciénaga utilizadas en la modelación del

comportamiento de la Ciénaga Grande de Santa Marta para el periodo

comprendido entre los días 18 al 20 de Octubre de 1989.

Tabla 6.3: Datos Ciénaga Grande Octubre 1989

PARÁMETRO VALOR Salinidad inicial Global 12.0 Salinidad Constante del Mar 31.0 Salinidad Constante Pajaral 14.0 Salinidad Constante Ríos 0.0

La Figura 6.9, la Figura 6.10 y la Figura 6.11 presentan la variación de profundidad

obtenidos durante la modelación de la calidad Ciénaga Grande de Santa Marta,

junto a los valores medidos durante la campaña de Octubre de 1989 y los

resultados del proyecto CIFI-COLCIENCIAS (1991).

Page 108: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

106

0

2

4

6

8

10

12

11 14 17 20 23 2 5 8 11 14 17 20 23 2 5 8

Hora del Día

cmModelo 2003 Medido Oct/89 Modelo CIFI

Figura 6.9: Variación de Nivel Estación Centro - Boca

0

2

4

6

8

10

12

12 15 18 21 0 3 6 9 12 15 18 21 0 3 6 9

Hora del Día

cm

Modelo 2003 Medido Oct/89 Modelo CIFI

Figura 6.10: Variación de Nivel Estación Centro - Centro

0

2

4

6

8

10

12

14

16

18

14 17 20 23 2 5 8 11 14 17 20 23 2 5 8

Hora del Día

cm

Modelo 2003 Medido Oct/89 Modelo CIFI

Figura 6.11: Variación de Nivel Estación Fundación

Page 109: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

107

La Figura 6.12, la Figura 6.13 y la Figura 6.14 presentan los valores de salinidad

modelados para este mismo caso junto a los resultados obtenidos durante la

modelación de la instrucción salina realizada por Camacho (1991) y los valores

medidos entre los días 18 al 20 de Octubre de 1989.

0

5

10

15

20

25

10 13 16 19 22 1 4 7 10 13 16 19 22 1 4 7 10

Hora del Día

Sal

inid

ad (P

/Mil)

Medida C.31 C.33 Modelo 2003

Figura 6.12: Salinidad Estación Tasajera

0

2

4

6

8

10

12

14

10 13 16 19 22 1 4 7 10 13 16 19 22 1 4 7 10

Hora del Día

Sal

inid

ad (P

/Mil)

Medida C.31 C,33 Modelo 2003

Figura 6.13: Salinidad Estación Cataca

5

5,5

6

6,5

7

7,5

8

8,5

9

11 14 17 20 23 2 5 8 11 14 17 20 23 2 5 8

Hora del Día

Sal

inid

ad (P

/Mil)

Modelo 2003 Medido

Figura 6.14: Salinidad Estación Centro - Boca

Page 110: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

108

Analizando los resultados obtenidos durante la corrida para Ciénaga Grande de

Santa Marta, se hicieron las siguientes observaciones:

• En ningún caso el programa presentó errores lógicos que terminaran la

ejecución,

• Para el sistema tan grande como la Ciénaga Grande de Santa Marta, cada

corrida de simulación de 100 horas en tiempo real e intervalos de tiempo para

cada iteración de 1 segundo, tomó alrededor de 40 minutos.

• Los resultados en cuanto a variación de niveles son similares a los obtenidos

en las simulaciones realizadas por CIFI- COLCIENCIAS (1991) y son muy

semejantes a los obtenidos en la campaña de medición, lo cual permite

confirmar la correcta implementación del modelo y de las ecuaciones

gobernantes en los procesos Hidrodinámicos.

• Con relación a la Salinidad, el modelo es capaz de predecir el comportamiento

temporal del parámetro, y predice concentraciones muy semejantes a los

valores medidos en campo.

En la Figura 6.15 se observa el comportamiento de la Ciénaga durante un periodo

de marea, en el cual la corriente proveniente del mar afecta significativamente las

concentraciones en zona cercana a la Boca de la Barra. 4:00 de la tarde del día 18

de Octubre de 1989, La Figura 6.16 presenta los resultados para las mismas

condiciones, luego que el modelo se ha dejado correr durante 10 ciclos, con el fin

de evaluar las condiciones de estado estable del sistema.

Page 111: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

109

Figura 6.15: Salinidad Ciénaga Grande (Octubre 18/1989, 4:00 P.M.) 2 Ciclos

Page 112: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

110

Figura 6.16: Salinidad Ciénaga Grande (Octubre 18/1989, 4:00 P.M.) 10 Ciclos

Page 113: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

111

Figura 6.17: Salinidad Ciénaga Grande (Octubre 20/1989, 10:00 A.M.)

Page 114: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

112

Del análisis comparativo entre la Figura 6.15 y Figura 6.16, se puede concluir que

la velocidad de respuesta de la masa es baja, ya que se requiere de largos

periodos de modelación de calidad del agua, para obtener condiciones de estado

estable. Adicionalmente, se observa que aunque las velocidades de los ríos de

entrada a la ciénaga son relativamente bajos (0.066 m/s) en comparación con la

Boca Barra que alcanza valores cercanos a 1m/s, la salinidad de casi la totalidad

del cuerpo de agua se ve influenciada por estas corrientes.

En la concentración en la zona centro y nor-occidental de la ciénaga se mantiene

por encima de los 10 g/L, debido a la influencia de las corrientes de agua

provenientes de la Boca Barra.

A modo de ilustración, en la Figura 6.18 se presentan los resultados de la

simulación de la Ciénaga Grande de Santa Marta para el caso de la Demanda

Bioquímica de Oxígeno, obsérvese nuevamente, la influencia de las corrientes de

entrada (Ríos) en el comportamiento general de la misma.

Figura 6.18: D.B.O. Ciénaga Grande (Octubre 20/1989, 10:00 A.M.)

Page 115: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

113

7 CONCLUSIONES Y RECOMENDACIONES

El protocolo de modelación utilizado durante el desarrollo del Modelo

Bidimensional Hidrodinámico y de Calidad para Cuerpos de Agua Poco Profundos

fue una herramienta fundamental, que facilitó la ejecución del proyecto de una

manera eficiente, en la que el desarrollo cronológico del mismo, permitió dar

solución inmediata a las diferentes dificultades que se presentaron a lo largo de

éste. Como conclusiones de cada una de las etapas de dicho protocolo se pueden

mencionar:

7.1 PLANTEAMIENTO DEL MODELO BIDIMENSIONAL DE CALIDAD

• La selección del modelo bidimensional hidrodinámico, específicamente el

modelo de Fisher (Fisher, 1981), demostró ser una herramienta confiable en el

estudio de cuerpos de agua poco profundos.

• El desarrollo de las ecuaciones diferenciales que controlan el transporte de

solutos se realizó de manera explicita, lo que genera una disminución

significativa en el número de operaciones a realizar durante el procesamiento

de datos.

Page 116: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

114

7.2 IMPLEMENTACIÓN DEL MODELO

• La combinación de los programas Fortran y Matlab permiten realizan

modelación de cuerpos relativamente grandes, con un alto grado de precisión y

con un costo computacional bajo. Para un tamaño de celda de 60 x 200, y un

intervalo entre iteraciones de un (1) segundo, la modelación de 20 horas

(72000 segundos) para la totalidad de los contaminantes tarda alrededor de

120 minutos. Para el caso en que no se realiza modelación de la calidad, el

cálculo de las condiciones hidrodinámicas requiere de unos 20 minutos bajo el

mismo escenario planteadas anteriormente.

7.3 VERIFICACIÓN SINTÉTICA DEL MODELO ACOPLADO (CANAL RECTO)

• El modelo representa en forma correcta el comportamiento hidrodinámico y de

calidad para los diferentes contaminantes para una configuración de flujo a

pistón cuando en la corriente de entrada se alimenta un pulso de

contaminación, obteniendo un alto grado de correlación con la solución

analítica para este tipo de configuración. Resultados semejantes se observan

cuando se modela un escalón de contaminación.

• Durante el transito del los diferentes contaminantes a lo largo del canal, se

observan procesos de dispersión longitudinal, los cuales se originan por la

condición de flujo no uniforme (velocidad variable) establecida en el ejercicio

de modelación, lo que genera gradientes longitudinales de velocidad y por

consiguiente dispersión de los contaminantes.

Page 117: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

115

7.4 APLICACIÓN DEL MODELO A CASOS DE ESTUDIO

• Se cuenta con un modelo Hidrodinámico y de Calidad que son capaces de

simular correctamente diferentes configuraciones, obteniendo resultados que

son una representación de la realidad que se esta modelando. El alto grado de

similitud entre los valores arrojados por el modelo y lo predicho mediante las

soluciones analíticas dan prueba de ello.

• Se considera que los resultados obtenidos por el modelo para la Ciénaga

Grande de Santa Marta no son los óptimos, y se pueden mejorar aún más

variando las condiciones de entrada y los diferentes parámetros.

• La limitación más importante encontrada en el proceso de calibración que se

pensó originalmente, fue la falta de datos reales y con una frecuencia

adecuada (cada hora), que permitiera corroborar los resultados obtenidos a

partir del modelo para los parámetros de calidad (DBO, Nitrógeno Orgánico,

Nitrógeno Amoniacal, Nitritos y Nitratos).

• Se piensa que se cuanta con un herramienta valiosa que permite predecir el

transporte de contaminantes en cuerpos de agua poco profundos (Ciénagas,

Bahías, Lagos y Lagunas), la cual, no sólo facilita el entendimiento del

problema de ingeniería, sino que ayuda en la toma de decisiones óptimas

basadas en el análisis de alternativas costo efectivas.

Finalmente, como conclusiones generales del presente trabajo de tesis se pueden

resaltar las siguientes:

Page 118: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

116

• El modelo computacional, que integra la componente hidrodinámica con un

modelo de transporte de solutos, puede ser usado en un amplio rango

aplicaciones donde no se presenten variaciones significativas de

concentración, temperatura y velocidad en el eje vertical.

• Dado que la herramienta es eficiente numéricamente, permite predecir el

efecto a corto, mediano y largo plazo de procesos de contaminación

antropogénicos, y la eficacia de la implementación de sistemas de tratamiento

y de políticas de manejo, sobre la calidad final de cuerpos de agua de gran

magnitud como Ciénagas, Bahías, Lagos y Lagunas.

• La combinación de un modelo hidrodinámico con un modelo de transporte de

solutos tiene un gran potencial, ya que con esto se da un paso importante de

en el desarrollo de modelos que permitan predecir la capacidad autodepurativa

de grandes cuerpos de agua, así como la calidad de los efluentes bajo

diferentes escenarios de contaminación.

• En cuanto al código de computador, se puede decir que la combinación de los

programas Fortran y Matlab permiten realizar modelación de cuerpos

relativamente grandes, con un alto grado de precisión y con un costo

computacional bajo, requiriendo para su ejecución de periodos de tiempo

inferiores a una (1) hora y necesidad de hardware de fácil consecución, como

computadores de escritorio con procesador Pentium IV o superior y memoria

RAM superior a 124 MHz.

Page 119: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

117

Como resultado del presente trabajo de investigación se pueden plantear las

siguientes recomendaciones para futuras investigaciones:

• Se considera necesario estudiar y analizar el modelo antes de dar un juicio

acerca de sus ventajas y desventajas ya que no se dispone de la información

necesarios para sacar conclusiones al respecto. Aunque este es un modelo

sencillo, físicamente basado, se considera que puede dar resultados muy

buenos con la información suficiente y un buen proceso de calibración.

• Una vez verificada la capacidad del modelo de predecir datos reales, es

preciso realizar un trabajo adicional de programación que facilite la interacción

hombre – maquina y permita que cualquier usuario pueda hacer uso de la

herramienta; ya que a la fecha, solo puede hacer uso de ella quien tenga

conocimientos básicos de programación de los lenguajes Fortran y Matlab.

Page 120: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

118

8 BIBLIOGRAFÍA

1.

Camacho, Luis A., “Implementación de un modelo Hidrodinámico y de

trasporte de contaminantes bidimensional y su aplicación al caso de la

Ciénaga Grande de Santa Marta”, Universidad de los Andes, Facultad de

Ingeniería, Departamento de Ingeniería Civil, Tesis de Magíster, Bogotá,

Enero de 1991.

2. Chapra, S. C. “Surface water-quality modelling”, The McGraw Hill Companies,

New York, 1997.

3. Dobbins, W. E., “BOD an oxygen relationship in streams”. Proceedings of

American Society of Civil Engineers, Journal of Environmental Engineering

Division 90(SA3): 53-78, 1964

4 Dronkers, J.J. “Tidal Computations for rivers, coastal areas and seas ”, Journal of the

Hydraulics Division, Hy 1, Enero de 1969.

5. Fisher, Hugo B. (Editor), “Transport models for island and coastal waters”,

Academic Press, New York, 1981.

6. Frankel, R. J. and W. W. Hansen, “Biological and physical responses in a

freshwater dissolved oxygen model”. Advances in water quality improvement,

eds. E. F. Gloyna and W. W. Eckenfelder (Austin, TX and London: University

of Texas Press). Pp. 126-140, 1968.

7. Leendertsee, Jan J. “Aspects of a computational model for long-period water-

wave propagation” , Memorandum RM-5294-PR, The RAND Corporation, Santa

Monica, California, Mayo 1967.

Page 121: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

119

8. Mouthon, Javier A., “Modelación del balance hídrico y calidad de agua de la

ciénaga de la virgen de Cartagena”, Universidad de los Andes, Facultad de

Ingeniería, Departamento de Ingeniería Civil, Tesis de Magíster, Bogotá,

Enero de 1988.

9. Proyecto CIFI-COLCIENCIAS, “Modelación Hidrodinámica de la Ciénaga

Grande de Santa Marta”, Universidad de los Andes. Departamento de

Ingeniería Civil, Bogotá, Marzo de 1991.

10. Saavedra, Tito A., “Modelación hidrodinámica de la Ciénaga Grande de

Santa Marta”, Universidad de los Andes, Facultad de Ingeniería,

Departamento de Ingeniería Civil, Tesis de Magíster, Bogotá, Agosto de

1997.

11. Streeter, H. W., and E. B. Phelps, “A study of the pollution and natural

purification of the Ohio River”, US Public Health Service, Washington DC.,

Bulletin 146, 1925.

12. Thoman, R. V., Muller, J. A., “Principles of surface water quality modeling and

control”, Harper & Row Publishers, New York, 1987.

Page 122: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

120

ANEXO A: CÓDIGO DE COMPUTADOR (Anubis.exe)

! ANUBIS.f90 ! ! FUNCTIONS: ! ANUBIS - Entry point of console application. ! ! Este programa modela la Hidrodinámica y el transporte ! de solutos en cuerpos de agua poco profundos. ! !**************************************************************************** ! ! PROGRAM: ANUBIS ! ! PURPOSE: Tesis de grado MSc Ingeniería Civil y Ambiental. ¡ Universidad de los Andes (Bogotá – Colombia) ! !**************************************************************************** program Main integer i, j, aux Integer nmax, mmax, nresmax, nmaxrios, nmaxviento, nmaxdatrio, dia Real hora Integer nmaxdatmarea, nmaxfrm, nmaxfrq, nmaxest, nmaxmes double precision numvar, gra, c1, c2, c3, c4, f, pi Character *10 corr Character *1 calidad character *50 titulo Integer dx, itime, maxtime, nmes, numres Integer ncol, mfil, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nmfr character *100 id integer dtviento real cd1, cd2 integer nivinicial real dt,anglat, seinv, tmar integer numrios, nest real dtxse (4), datmar(4), coord (20,2) integer dtrio(10) real media (12), sol(6,12), lun(6,12) character*16 nombres(20) Integer contimp, metodo dimension nprint (12001), viento(500,2), xse (1002,4), c(300, 300), h(300, 300) Double precision caud (1002, 4) dimension mbd(540,4),nbd(540,4), nobd(4,4), mobd(4,4), nqbd(4,4), mqbd(4,4) double precision xia (4), velrio (4) Double precision u(300, 300), v(300, 300), se(300, 300) Double precision up(300, 300), vp(300, 300), sep(300, 300) Integer num, msrch, is, ir, n, mf, l, mff, nnn, nn, nsrch Integer mind, nind, k, mm, mmm, lll, ll, nf, nff Real gamma, alpha, temp1, temp2, temp3, temp4, temp9,temp10, temp11, u2 Real term, temp6, saved, beta, delta,v2 Double precision QQQ double precision vi, velco character*2 dirvi, dirco double precision xx, yy

Page 123: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

121

Double precision s(540), r(540), a(540), p(540), q(540), b(540) real sdee, sdee1 integer sdef !Dimensiona las variables para calidad del agua !Sustancias Conservativas integer salinicial Real cinicialsal, sinicial Real dtsal(4), datsal (4), dtsalrio (10), datsalrio (10) Double precision cse (1002,4), caudsal (1002,4) double precision sal (300, 300), salp (300, 300) double precision Dsal, Ksal double precision Stemp1, Stemp2, Stemp3, Stemp4, Stemp5, Stemp6, Stemp7, Stemp8 !DBO integer tipodatdbo Real cinicialdbo, dboinicial Real dtdbo(4), datdbo (4), dtdborio (10), datdborio (10) Double precision dbose (1002,4), cauddbo (1002,4) double precision dbo (300, 300), dbop (300, 300) double precision Ddbo, Kdbo, VSdbo Double precision dbotemp1, dbotemp2, dbotemp3, dbotemp4, dbotemp5, dbotemp6, dbotemp7, dbotemp8 !Nitrogeno Organico NO integer tipodatno Real cinicialno, noinicial Real dtno(4), datno (4), dtnorio (10), datnorio (10) Double precision nose (1002,4), caudno (1002,4) double precision no (300, 300), nop (300, 300) double precision Dno, Kno Double precision notemp1, notemp2, notemp3, notemp4, notemp5, notemp6, notemp7, notemp8 !Nitrogeno Amoniacal NAMO integer tipodatnamo Real cinicialnamo, namoinicial Real dtnamo(4), datnamo (4), dtnamorio (10), datnamorio (10) Double precision namose (1002,4), caudnamo (1002,4) double precision namo (300, 300), namop (300, 300) double precision Dnamo, Knamo Double precision namotemp1, namotemp2, namotemp3, namotemp4, namotemp5, namotemp6, namotemp7, namotemp8 !Nitrito Nitri integer tipodatnitri Real cinicialnitri, nitriinicial Real dtnitri(4), datnitri (4), dtnitririo (10), datnitririo (10) Double precision nitrise (1002,4), caudnitri (1002,4) double precision nitri (300, 300), nitrip (300, 300) double precision Dnitri, Knitri Double precision nitritemp1, nitritemp2, nitritemp3, nitritemp4, nitritemp5, nitritemp6, nitritemp7, nitritemp8 !Nitrato Nitra integer tipodatnitra Real cinicialnitra, nitrainicial Real dtnitra(4), datnitra (4), dtnitrario (10), datnitrario (10) Double precision nitrase (1002,4), caudnitra (1002,4) double precision nitra (300, 300), nitrap (300, 300) double precision Dnitra, Knitra Double precision nitratemp1, nitratemp2, nitratemp3, nitratemp4, nitratemp5, nitratemp6, nitratemp7, nitratemp8 !Oxigeno Disuelto OxiDis integer tipodatOxiDis Real cinicialOxiDis, OxiDisinicial, Kbentica Real dtOxiDis(4), datOxiDis (4), dtOxiDisrio (10), datOxiDisrio (10) Double precision OxiDisse (1002,4), caudOxiDis (1002,4) double precision OxiDis (300, 300), OxiDisp (300, 300) double precision DOxiDis, KOxiDis Double precision OxiDistemp1, OxiDistemp2, OxiDistemp3, OxiDistemp4, OxiDistemp5, OxiDistemp6, OxiDistemp7, OxiDistemp8 !Fin de calidad del agua

Page 124: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

122

!*****Dimensiona las constantes nmax = 1000; mmax = 1000; nresmax = 20; nmaxrios = 4; nmaxviento = 500; nmaxdatrio = 500 nmaxdatmarea = 102; nmaxfrm = 4; nmaxfrq = 4; nmaxest = 8; nmaxmes = 1 numVar = 3.141592654; Pi = 3.141592654; gra = 9.81 QQQ = 1.00000 !********Inicia el programa print *,' ' print *,' ' print *,' ' print *,'Bienvenido a ANUBIS' print *,'Este programa Modela la hidrodinámica y el transporte de' print *,'Solutos en Cuerpos de Agua Poco Profundos' print *,' ' print *,' ' print *,'Como desea identificar su corrida?' read(unit=*,fmt=1)corr print *,'Desea modelar calidad del agua? (Y)/(N)' read(unit=*,fmt=1)calidad 1 format(a) print *,'Los Archivos Generados serán enviados a la Carpeta ',corr print * call aberturaarch (calidad) call valoresini(c,h,nmax,mmax) print *,'Lectura de Datos' !Inicia lectura de datos !Esta subrutina lee los valores de entrada del archivo cienaga.xxx. ! call leadatos(dt, dx, itime, maxtime, nmes, numres, ncol, mfil, nfrmcol, nfrmfil, nfrqcol, nfrqfil, id) read (unit=1, fmt=304) dt read (unit=1, fmt=301) dx read (unit=1, fmt=301) itime read (unit=1, fmt=301) maxtime read (unit=1, fmt=301) nmes read (unit=1, f mt=301) numres !número de impresiones 100 = · de horas read (unit=1, fmt=301) ncol read (unit=1, fmt=301) mfil read (unit=1, fmt=301) nfrmcol read (unit=1, fmt=301) nfrmfil read (unit=1, fmt=301) nfrqcol read (unit=1, fmt=301) nfrqfil read (unit=1, fmt=302) id ! Evalúa las corridas con impresión de datos wer = 0 i = 0 do while (wer.LE.maxtime) i = i + 1 wer = i * maxtime / numres nprint (i) = wer End do read (unit=1, fmt=301) dtviento read (unit=1, fmt=303) cd1 read (unit=1, fmt=303) cd2 aux = maxtime * dt / dtviento call lea2 (aux, 1, viento, cd1, cd2) call lea2 (aux, 2, viento, cd1, cd2) read (unit=1, fmt=301) nivinicial read (unit=1, fmt=304) anglat if (nivinicial .EQ. 0) then !Si nivelinicial <> 0 hay que alimentar matriz de entrada de nivel inicial read (unit=1, fmt=304) seinv Else

Page 125: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

123

call lea41(se, ncol, mfil,1) call lea41(v, ncol, mfil,1) call lea41(u, ncol, mfil,1) endif do 3 i = 1, nfrmcol + nfrmfil read (unit=1, fmt=305) dtxse(i), datmar(i) aux = maxtime * dt / dtxse (i) If (datmar(i) .EQ. 1) then call lea3 (aux, i, xse) else read (unit=1, fmt=901) tmar do 2 j = 1, nmes read (unit=1, fmt=304) media(j) read (unit=1, fmt=306) sol(1,j), sol(2,j), sol(3,j), sol(4,j), sol(5,j), sol(6,j) read (unit=1, fmt=306) lun(1,j), lun(2,j), lun(3,j), lun(4,j), lun(5,j), lun(6,j) 2 continue endif 3 continue call lea4 (h, ncol, mfil,1) call lea4 (c, ncol, mfil,1) read (unit=1, fmt=301) numrios do 4 i = 1, numrios read (unit=1, fmt=301) dtrio (i) print *,'Dt Río N° ',i ,' =', dtrio(i) aux = maxtime * dt / dtrio (i) call lea5 (aux, i, caud, nfrqcol, nfrqfil, nmaxdatrio) 4 continue read (unit=1, fmt=301) nest do 5 i = 1, nest read (unit=1, fmt=307) nombres(i), coord(i,1), coord (i,2) 5 continue call codigos (mbd,nbd, mfil, ncol, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd) ! call imprimadat (numres, ncol, mfil) ! Entrada de datos para modelación de calidad del agua !Analisis para Sustancias Conservativas !Archivo de entrada SusCon.TXT If (calidad.eq."Y") then do 803 lectpar = 1, 7 SELECT CASE (lectpar) CASE (1) !Sustancia conservativa Salinidad call leacalidad (Dsal, Ksal, dtsal, datsal, cse, 51, cinicialsal, dtsalrio, datsalrio, caudsal, salinicial, sal, sinicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) CASE (2) !Demanda Bioquimica de Oxigeno read (unit=52, fmt=308) VSdbo call leacalidad (Ddbo, Kdbo, dtdbo, datdbo, dbose, 52, cinicialdbo, dtdborio, datdborio, cauddbo, tipodatdbo, dbo, dboinicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) CASE (3) !Nitrogeno Organico call leacalidad (Dno, Kno, dtno, datno, nose, 53, cinicialno, dtnorio, datnorio, caudno, tipodatno, no, noinicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) CASE (4) !Nitrogeno Amoniacal call leacalidad (Dnamo, Knamo, dtnamo, datnamo, namose, 54, cinicialnamo, dtnamorio, datnamorio, caudnamo, tipodatnamo, namo, namoinicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) CASE (5) !Nitritos call leacalidad (Dnitri, Knitri, dtnitri, datnitri, nitrise, 55, cinicialnitri, dtnitririo, datnitririo, caudnitri, tipodatnitri, nitri, nitriinicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) CASE (6) !Nitratos

Page 126: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

124

call leacalidad (Dnitra, Knitra, dtnitra, datnitra, nitrase, 56, cinicialnitra, dtnitrario, datnitrario, caudnitra, tipodatnitra, nitra, nitrainicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) CASE (7) !Oxigeno Disuelto read (unit=57, fmt=309) OxiSat read (unit=57, fmt=308) Kbentica read (unit=57, fmt=309) Roa read (unit=57, fmt=309) Roi call leacalidad (DOxiDis, KOxiDis, dtOxiDis, datOxiDis, OxiDisse, 57, cinicialOxiDis, dtOxiDisrio, datOxiDisrio, caudOxiDis, tipodatOxiDis, OxiDis, OxiDisinicial, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) END SELECT 803 continue endif !Fin de entrada de datos para modelación de la calidad del agua close(1) 901 format (F6.0) 902 format (F9.6) 301 format (i6) 302 format (A) 303 format (F8.2) 304 format (F9.7) 305 format (F6.0,F2.0) 306 format (F6.3,F6.3,f6.3,f6.3,f6.3,f6.3) 307 format (a,F7.0,F7.0) 308 format (F12.2) 309 format (F6.4) 310 format (F14.2) !Termina lectura de datos ! call inicialicebot !************************************************************************************************ !Esta subrutina inicializa los valores de las variables empleadas en los cálculos matemáticos. do 401 i = 1, nfrmcol+nfrmfil xia(i) = seinv 401 continue f = pi * sin (anglat* pi /180)/21600 c1 = dt*gra/dx c3 = 1000 * dt / dx C2 = C3/1000 c4 = 8 * dt * gra metodo = 2 if (nivinicial.EQ.0) then do 402 m = 2, mfil nc1 = mbd (m,3) nc2 = mbd (m,4) if (nc1.NE.0) then do 403 n = nc1, nc2 se(n,m) = seinv if (salinicial.eq.0) then !Llenado para salinidad. sal(n,m) = sinicial endif if (tipodatdbo.eq.0) then !Llenado para DBO. dbo(n,m) = dboinicial endif if (tipodatno.eq.0) then !Llenado para Nitrogeno Organico. no(n,m) = noinicial endif if (tipodatnamo.eq.0) then !Llenado para Nitrogeno Amoniacal. namo(n,m) = namoinicial

Page 127: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

125

endif if (tipodatnitri.eq.0) then !Llenado para Nitrito. nitri(n,m) = nitriinicial endif if (tipodatnitra.eq.0) then !Llenado para Nitrato. nitra(n,m) = nitrainicial endif if (tipodatOxiDis.eq.0) then !Llenado para Oxigeno Disuelto. OxiDis(n,m) = OxiDisinicial endif 403 continue endif 402 continue else do 472 m = 2, mfil nc1 = mbd (m,3) nc2 = mbd (m,4) if (nc1.NE.0) then do 473 n = nc1, nc2 if (salinicial.eq.0) then !Llenado para salinidad. sal(n,m) = sinicial endif if (tipodatdbo.eq.0) then !Llenado para DBO. dbo(n,m) = dboinicial endif if (tipodatno.eq.0) then !Llenado para Nitrogeno Organico. no(n,m) = noinicial endif if (tipodatnamo.eq.0) then !Llenado para Nitrogeno Amoniacal. namo(n,m) = namoinicial endif if (tipodatnitri.eq.0) then !Llenado para Nitrito. nitri(n,m) = nitriinicial endif if (tipodatnitra.eq.0) then !Llenado para Nitrato. nitra(n,m) = nitrainicial endif if (tipodatOxiDis.eq.0) then !Llenado para Oxigeno Disuelto. OxiDis(n,m) = OxiDisinicial endif 473 continue endif 472 continue endif do 404 i = 1, nest OPEN (UNIT=i+5, STATUS='old', file=nombres(i)) titulo = "DIA HORA NIVEL V.VIE DIR V.COR DIR" write (unit=i+5,fmt=451) titulo 451 format (A) 404 continue !************************************************************************************************ !****Inicia programa principal print *,'Programa Principal' itime = 0 Call datosit(dtrio, media, sol, lun, tmar, nfrmfil, nfrmcol, itime, dt, datmar, dtxse, xia, xse, xx, yy, dtviento, viento, numrios, velrio, caud, dia, hora) Call fronteras (nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, se, xia, velrio, vp, up) contimp = 1 metodo = 2 do 20 itime = 1, maxtime !************************************************************************************************ !Esta subrutina realiza el calculo de vel y profundidad si metodo = 1 Botony, metodo = 2 metodoalt !********************botony metodo = 3 - metodo

Page 128: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

126

Call datosit(dtrio, media, sol, lun, tmar, nfrmfil, nfrmcol, itime, dt, datmar, dtxse, xia, xse, xx, yy, dtviento, viento, numrios, velrio, caud, dia, hora) Call fronteras (nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, sep, xia, velrio, vp, up) If (metodo.EQ.1) then num= 2 n= 1 nind= ncol-1 Do while (num.LE.nind) !nind, numero de columnas is = nbd(num,1) !Comienza el barrido por columnas ir = nbd(num,2) n = n + 1 mf = nbd(num,3) l = nbd(num,4) mff = mf - 1 nnn = n + 1 nn = n - 1 r(mff)= 0 s(mff)= 0 gamma= 0.5 If(is.EQ.1) Then !Frontera de Marea arriba temp10= u(nnn,mff) if (temp10.EQ.0) Then temp10= u(nn,mff) End If temp11= u(nn,mff) if (temp11.EQ.0) Then temp11= u(nnn,mff) End If alpha= 1 r(mff)= c1/(1 + c2*(u(n,mf)-u(n,mff))) u2= u(n,mff) + xx/(h(n,mff)+h(nn,mff)+se(n,mf)+se(n,mff)) s(mff)= (u2+c1*sep(n,mff) - u(n,mff)*sqrt(u(n,mff)*u(n,mff) + (v(n,mf) + v(nn,mf))*(v(n,mf) + v(nn,mf))/16)*c4/((se(n,mff)+ se(n,mf) + h(n,mff) + h(nn,mff))*((c(n,mff)+c(n,mf))*(c(n,mff)+c(n,mf))))) s(mff)= (s(mff) + (v(n,mf)+v(nn,mf))*0.25*(dt*f - (1-gamma)*c2 *(temp10 - u(n,mff)) - gamma*c2*(u(n,mff) - temp11))) s(mff)= s(mff)/(1 + c2*(u(n,mf) - u(n,mff))*(1 - alpha)) End If k= mf Do 520 m = k, l mm= m -1 mmm= m+1 temp9= se(n,m) temp1= se(nnn,m) If (temp1.EQ.0) then temp1= 2*se(n,m) - se(nn,m) Endif temp2= se(nn,m) if (temp2.EQ.0) then temp2= 2*se(n,m) - se(nnn,m) Endif temp3= se(n,mmm) if (temp3.EQ.0) then temp3= 2*se(n,m) - se(n,mm) Endif temp4= se(n,mm) if (temp4.EQ.0) then temp4= 2*se(n,m) - se(n,mmm) Endif if (k.EQ.l) then temp1= se(n,m) temp2= se(n,m) temp3= se(n,m) temp4= se(n,m) endif term= temp9 + temp3 + h(n,m) + h(nn,m) a(m)= se(n,m) -0.5*c2*(h(n,m)+h(n,mm)+se(n,m)+temp1)*v(n,m) + 0.5* c2*(h(nn,mm) + h(nn,m) + se(n,m) + temp2)*v(nn,m) if (m.EQ.mf) Then !mf es el primer nodo de la columna que se esta evaluando If (is.EQ.2) then !is=2 Frontera de Caudal Arriba a(m)= a(m)+up(n,mm)*0.5*c2*(h(n,mm) + h(nn,mm) + temp4 + temp9)

Page 129: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

127

Endif Endif if (m.EQ.l) Then !l es el ultimo nodo de la columna que se esta evaluando If (ir.EQ.2) then !Frontera de Caudal abajo a(m)= a(m)-up(n,mmm)*0.5*c2*(h(n,mmm)+h(nn,mmm)+temp9 + temp3) Endif Endif p(m)=0.5*c2*(h(n,m)+h(nn,m)+temp9+temp3)/(1+0.5*c2*(h(n,mm)+h(nn,mm)+temp4+ temp9)*r(mm)) q(m)= (a(m)+0.5*c2*(h(n,mm)+h(nn,mm)+temp4+temp9)*s(mm))/(1+0.5* c2*(h(n,mm) + h(nn,mm)+temp4+temp9)*r(mm)) IF (m.NE.l) THEN gamma= 0.5 temp10= u(nnn,m) if (temp10.EQ.0) then temp10= u(nn,m) Endif temp11= u(nn,m) if (temp11.EQ.0) then temp11= u(nnn,m) Endif temp6= dt*f-(1-gamma)*c2*(temp10-u(n,m))-gamma*c2*(u(n,m)-temp11) temp6= 0.25*temp6 b(m)= u(n,m)+temp6*(v(n,m)+v(n,mmm)+v(nn,m)+v(nn,mmm))-u(n,m)*sqrt(u(n,m)* u(n,m) + ((v(n,m)+v(n,mmm) + v(nn,m)+v(nn,mmm))*(v(n,m)+ v(n,mmm)+ v(nn,m)+ v(nn,mmm))/16))/((se(n,m)+ se(n,mmm)+ h(n,m)+ h(nn,m))*((c(n,m)+ c(n,mmm))*(c(n,m)+c(n,mmm))))*c4 b(m)= b(m)+ xx/term alpha= 0.5 temp1= 1+c2*(gra*p(m)+(1-alpha)*(u(n,mmm)-u(n,m))+alpha*(u(n,m)-u(n,mm))) r(m)= c1/temp1 s(m)= (b(m)+c1*q(m))/temp1 Endif 520 Continue IF (ir.NE.2) THEN !La frontera de abajo no es de caudal up(n,l)=0 !Velocidad en el muro es cero (0) IF (ir.NE.0) THEN !Si la frontera de abajo es de marea temp10= u(nnn,l) if (temp10.EQ.0) temp10= u(nn,l) temp11= u(nn,l) if (temp11.EQ.0) temp11= u(nnn,l) lll= l+1 ll= l-1 alpha= 0 u2=u(n,l) +xx/(h(n,l)+h(nn,l)+se(n,l)+se(n,lll)) up(n,l)= (-c1*sep(n,lll)+u2-u(n,l)*(c4*sqrt(u(n,l)*u(n,l) + ((v(n,l)+v(nn,l))*(v(n,l)+ v(nn,l))/16))/((se(n,l)+ se(n,lll)+h(n,l)+ h(nn,l))*((c(n,l)+c(n,lll))*(c(n,l)+c(n,lll))))) + 0.25*(dt*f -gamma* c2*(u(n,l)-temp11)-(1-gamma)*c2*(temp10- u(n,l)))*(v(n,l) + v(nn,l)) + c1*q(l))/(1+c2*(gra*p(l)+(u(n,l)-u(n,ll))* alpha)) Endif Endif saved= up(n,k-1) m= l Do 530 j= k, l !Ojo Calcula la velocidad de arriba en función de la Prof del nodo inmediatamente inferior mm= m-1 sep(n,m)= -p(m)*up(n,m)+q(m) up(n,mm)= -r(mm)*sep(n,m) + s(mm) m= m-1 530 Continue if(is.EQ.2) up(n,k-1)= saved !Frontera de caudal arriba num=num+1 End Do ! COMIENZA CALCULO EXPLICITO DE VP EN LA FILA M num= 2 mind= mfil-1 m=1 Do WHILE (NUM.LE.MIND) m=m+1

Page 130: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

128

msrch= mbd(num,1)*10+mbd(num,2) nf= mbd(num,3) l= mbd(num,4) ll= l-1 nff= nf -1 mmm= m+1 mm= m-1 IF (NF.NE.L) THEN !Si la columna no tiene un solo nodo Do 540 N = NF, LL nn= n-1 nnn= n+1 beta= 0.5 temp4= c2*((1-beta)*(v(nnn,m)-v(n,m))+beta*(v(n,m)-v(nn,m))) temp1=v(n,m)*v(n,m)+((up(n,m)+up(nnn,m)+up(n,mm)+up(nnn,mm))*(up(n,m)+ up(nnn,m)+ up(n,mm)+up(nnn,mm))/16) temp2=(sep(n,m) + sep(nnn,m) + h(n,mm) + h(n,m))*(c(n,m) + c(nnn,m))*(c(n,m) + c(nnn,m)) temp3= 1+ c4*sqrt(temp1)/temp2 + temp4 temp3= 1/temp3 delta=0.5 temp10= v(n,mmm) if (temp10.EQ.0) temp10= v(n,mm) temp11= v(n,mm) if (temp11.EQ.0) temp11= v(n,mmm) temp1= (dt*f+(1-delta)*c2*(temp10-v(n,m)) + delta*c2*(v(n,m)- temp11))*0.25 v2= v(n,m) +yy/(h(n,m)+h(n,mm)+sep(n,m)+sep(nnn,m)) vp(n,m)= temp3*(v2-temp1*(up(n,m)+up(nnn,m)+up(n,mm)+up(nnn,mm)) - c1*(se(nnn,m)-se(n,m))) 540 Continue Endif IF (MBD(NUM,2).EQ.1) THEN !Frontera de Marea en la parte derecha temp10= v(l,mmm) if(temp10.EQ.0) temp10=v(l,mm) temp11= v(l,mm) if(temp11.EQ.0) temp11=v(l,mmm) lll= l+1 beta=0 ll= l-1 temp4= c2*beta*(v(l,m)-v(ll,m)) temp1= v(l,m)*v(l,m)+((up(l,m)+up(l,mm))*(up(l,m)+up(l,mm))/16) temp2= (sep(l,m)+ sep(lll,m) + h(l,mm)+ h(l,m))*(c(l,m)+c(lll,m))*(c(l,m)+c(lll,m)) temp3= 1+c4*sqrt(temp1)/temp2+temp4 temp3= 1/temp3 delta= 0.5 temp1= 0.25*(dt*f+(1-delta)*c2*(temp10-v(l,m)) +delta*c2*(v(l,m)-temp11)) v2= v(l,m) + yy/(h(l,m)+h(l,mm)+sep(l,m)+sep(lll,m)) vp(l,m)= temp3*(v2-temp1*(up(l,m)+up(l,mm))-c1*(se(lll,m)-se(l,m))) Endif IF (MBD(NUM,1).EQ.1) THEN !Frontera de Marea en la parte izquierda temp10= v(nff,mmm) if (temp10.EQ.0) temp10= v(nff,mm) temp11= v(nff,mm) if (temp11.EQ.0) temp11= v(nff,mmm) beta=1 temp4= c2*(1-beta)*(v(nf,m)-v(nff,m)) temp1=v(nff,m)*v(nff,m)+((up(nf,m)+up(nf,mm))*(up(nf,m)+up(nf,mm))/16) temp2=(sep(nff,m)+sep(nf,m)+h(nff,m)+h(nff,mm))*(c(nf,m)+c(nff,m))*(c(nf,m)+c(nff,m)) temp3= 1+c4*sqrt(temp1)/temp2 + temp4 temp3= 1/temp3 delta= 0.5 temp1= 0.25*(dt*f+(1-delta)*c2*(temp10-v(nff,m)) +delta*c2*(v(nff,m)-temp11)) v2= v(nff,m) + yy/(h(nff,m)+h(nff,mm)+sep(nff,m)+sep(nf,m)) vp(nff,m)= temp3*(v2-temp1*(up(nf,m)+up(nf,mm))-c1*(se(nf,m)-se(nff,m))) Endif num= num+1 End Do ! Fin del METODO = 1, es decir Botony ELSE !METODO ALTERNO num= 2 mind= mfil-1

Page 131: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

129

m=1 Do While (NUM.LE.MIND) is= mbd(num,1) ir= mbd(num,2) m= m+1 nf= mbd(num,3) l= mbd(num,4) nff= nf -1 mmm= m+1 mm= m -1 r(nff)= 0 s(nff)= 0 IF (IS.EQ.1) THEN !Frontera de marea en la parte izquierda temp10= v(nff,mmm) if (temp10.EQ.0) temp10= u(nff,mm) temp11= v(nff,mm) if (temp11.EQ.0) temp11= v(nff,mmm) delta= 0.5 beta= 1 r(nff)= c1/(1 + c2*(v(nf,m)-v(nff,m))*(1-beta)) v2= v(nff,m) + yy/(h(nff,m)+h(nff,mm)+se(nff,m)+se(nf,m)) s(nff)= v2+c1*sep(nff,m) - v(nff,m)*sqrt(v(nff,m)*v(nff,m) + (u(nf,m) + u (nf,mm))*(u(nf,m) + u(nf,mm))/16)*c4/((se(nff,m)+ se(nf,m) + h(nff,m) + h(nff,mm))*((c(nff,m)+c(nf,m))*(c(nff,m)+c(nf,m)))) s(nff)= (s(nff) -0.25*(dt*f + (1-delta)*c2 *(temp10 - v(nff,m)) + delta*c2*(v(nff,m) - temp11))*(u(nf,m)+u(nf,mm))) s(nff)= s(nff)/(1 + c2*(v(nf,m) - v(nff,m))*(1 - beta)) Endif k= nf Do 550 N= K, L nn= n -1 nnn= n+1 temp9= se(n,m) temp1= se(n,mmm) if (temp1.EQ.0) temp1= 2*se(n,m) - se(n,mm) temp2= se(n,mm) if (temp2.EQ.0) temp2= 2*se(n,m) - se(n,mmm) temp3= se(nnn,m) if (temp3.EQ.0) temp3= 2*se(n,m) - se(nn,m) temp4= se(nn,m) if (temp4.EQ.0) temp4= 2*se(n,m) - se(nnn,m) if (k.EQ.l) then temp1= se(n,m) temp2= se(n,m) temp3= se(n,m) temp4= se(n,m) Endif term= temp9 + temp3 + h(n,m) + h(n,mm) a(n)= se(n,m) -0.5*c2*(h(n,m)+h(nn,m)+se(n,m)+temp1)*u(n,m) + 0.5*c2*(h(n,mm) + h(nn,mm) + se(n,m) + temp2)*u(n,mm) if (n.EQ.nf) Then If (is.EQ.2) then !Frontera de caudal en la parte izquierda a(n)= a(n)+vp(nn,m)*0.5*c2*(h(nn,mm) + h(nn,m) + temp4 + temp9) Endif Endif if (n.EQ.l) Then If (ir.EQ.2) then !Frontera de caudal en la parte derecha a(n)= a(n)-vp(nnn,m)*0.5*c2*(h(nnn,m)+h(nnn,mm)+temp9 + temp3) Endif Endif p(n)= 0.5*c2*(h(n,m)+h(n,mm)+temp9+temp3)/(1+0.5*c2*(h(nn,m)+h(nn,mm)+ temp4+temp9)* r(nn)) q(n)= (a(n)+0.5*c2*(h(nn,m)+h(nn,mm)+temp4+temp9)*s(nn))/(1+0.5* c2*(h(nn,m) + h(nn,mm) + temp4+ temp9)*r(nn)) IF (N.NE.L) THEN delta= 0.5 temp10= v(n,mmm) if (temp10.EQ.0) temp10= v(n,mm) temp11= v(n,mm) if (temp11.EQ.0) temp11= v(n,mmm)

Page 132: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

130

temp6= dt*f+(1-delta)*c2*(temp10-v(n,m))+delta*c2*(v(n,m)-temp11) temp6= 0.25*temp6 b(n)= v(n,m)-temp6*(u(n,m)+u(nnn,m) + u(nnn,mm) + u(n,mm))-v(n,m) * sqrt(v(n,m)* v(n,m) + ((u(n,m)+u(nnn,m)+ u(n,mm)+u(nnn,mm))*(u(n,m)+u(nnn,m)+ u(n,mm)+u(nnn,mm))/16))/((se(n,m)+ se(nnn,m)+ h(n,m)+ h(n,mm))*((c(n,m)+c(nnn,m))*(c(n,m)+c(nnn,m))))*c4 b(n)= b(n)+ yy/term beta= 0.5 temp1= 1+c2*(gra*p(n)+(1-beta)*(v(nnn,m)-v(n,m))+beta*(v(n,m)-v(nn,m))) r(n)= c1/temp1 s(n)= (b(n)+c1*q(n))/temp1 Endif 550 Continue lll= l+1 IF (IR.NE.2) THEN !No es frontera de caudal a la derecha vp(l,m)=0 IF (IR.NE.0) THEN !Es frontera de marea a la derecha temp10= v(l,mmm) if (temp10.EQ.0) temp10= v(l,mm) temp11= v(l,mm) if (temp11.EQ.0) temp11= v(l,mmm) lll= l+1 ll= l-1 beta= 0 v2=v(l,m) +yy/term vp(l,m)= (-c1*sep(lll,m)+v2-v(l,m)*(c4*sqrt(v(l,m)*v(l,m)+((u(l,m)+u(l,mm))*(u(l,m)+ u(l,mm))/16))/((se(l,m)+se(lll,m)+h(l,m)+h(l,mm))*((c(l,m)+c(lll,m))*(c(l,m)+c(lll,m))))) + 0.25*(dt*f+(1-delta)*c2*(temp10- v(l,m))+ delta*c2*(v(l,m)-temp11))*(u(l,m)+ u(l,mm)) + c1*q(l))/(1+c2*(gra*p(l)+(v(l,m)-v(ll,m))*beta)) Endif Endif saved= vp(k-1,m) n= l Do 560 j= k, l nn= n-1 sep(n,m)= -p(n)*vp(n,m)+q(n) vp(nn,m)= -r(nn)*sep(n,m) + s(nn) n= n-1 560 Continue if(is.EQ.2) vp(k-1,m)= saved num=num+1 End Do ! COMIENZA CALCULO EXPLICITO DE UP EN LA COLUMNA N num= 2 nind= ncol-1 n=1 Do WHILE (NUM.LE.NIND) nsrch= nbd(num,1)*10+nbd(num,2) n= n+1 mf= nbd(num,3) l= nbd(num,4) ll= l-1 lll=l+1 mff= mf - 1 nnn= n+1 nn= n-1 IF (MF.NE.L) THEN Do 570 M = MF, LL mm= m-1 mmm= m+1 alpha= 0.5 temp4= c2*((1-alpha)*(u(n,mmm)-u(n,m))+alpha*(u(n,m)-u(n,mm))) temp1=u(n,m)*u(n,m) + ((v(n,m) + v(n,mmm) + v(nn,m)+v(nn,mmm)) * (v(n,m)+ v(n,mmm) + v(nn,m)+v(nn,mmm))/16) temp2=(sep(n,m) + sep(n,mmm) + h(n,m)+h(nn,m))*(c(n,m)+ c(n,mmm))* (c(n,m)+ c(n,mmm)) temp3= 1+ c4*sqrt(temp1)/temp2 + temp4 temp3= 1/temp3 gamma=0.5 temp10= u(nnn,m) if (temp10.EQ.0) temp10= u(nn,m)

Page 133: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

131

temp11= u(nn,m) if (temp11.EQ.0) temp11= u(nnn,m) temp1= (dt*f-(1-gamma)*c2*(temp10-u(n,m)) - gamma*c2*(u(n,m)- temp11))*0.25 u2= u(n,m) +xx/(h(n,m)+h(nn,m)+sep(n,m)+sep(n,mmm)) up(n,m)= temp3*(u2+temp1*(vp(n,m) + vp(n,mmm) + vp(nn,m)+vp(nn,mmm)) - c1* (se(n,mmm)- se(n,m))) 570 Continue Endif IF (NBD(NUM,2).EQ.1) THEN temp10= u(nnn,l) if(temp10.EQ.0) temp10=u(nn,l) temp11= u(nn,l) if(temp11.EQ.0) temp11=u(nnn,l) alpha=0 temp4= c2*alpha*(u(n,l)-u(n,ll)) temp1= u(n,l)*u(n,l)+((v(n,l)+v(nn,l))*(v(n,l)+v(nn,l))/16) temp2= (sep(n,l)+ sep(n,lll) + h(n,l)+ h(nn,l))*(c(n,l)+c(n,lll))*(c(n,l)+c(n,lll)) temp3= 1+c4*sqrt(temp1)/temp2+temp4 temp3= 1/temp3 gamma= 0.5 temp1= 0.25*(dt*f-(1-gamma)*c2*(temp10-u(n,l)) -gamma*c2*(u(n,l)-temp11)) u2= u(n,l) + xx/(h(n,l)+h(nn,l)+sep(n,l)+sep(n,lll)) up(n,l)= temp3*(u2+temp1*(vp(n,l)+vp(nn,l))-c1*(se(n,lll)-se(n,l))) Endif IF (NBD(NUM,1).EQ.1) THEN temp10= u(nnn,mff) if (temp10.EQ.0) temp10= u(nn,mff) temp11= u(nn,mff) if (temp11.EQ.0) temp11= u(nnn,mff) alpha=1 temp4= c2*(1-alpha)*(u(n,mf)-u(n,mff)) temp1=u(n,mff)*u(n,mff)+((v(n,mf)+v(nn,mf))*(v(n,mf)+v(nn,mf))/16) temp2=(sep(n,mff)+sep(n,mf)+h(n,mff)+h(nn,mff))*(c(n,mf)+c(n,mff))*(c(n,mf)+c(n,mff)) temp3= 1+c4*sqrt(temp1)/temp2 + temp4 temp3= 1/temp3 gamma= 0.5 temp1= 0.25*(dt*f-(1-gamma)*c2*(temp10-u(n,mff)) -gamma*c2*(u(n,mff)-temp11)) u2= u(n,mff) + xx/(h(n,mff)+h(nn,mff)+sep(n,mff)+sep(n,mf)) up(n,mff)= temp3*(u2+temp1*(vp(n,mf)+vp(nn,mf))-c1*(se(n,mf)-se(n,mff))) Endif num= num+1 End Do Endif !Fin METODO = 2, Metodo alterno !*********************************************************************** ¡*****************Inicio programa de calculo de calidad del agua if (calidad.eq."Y") then do 804 nfrontcal = 1, 7 SELECT CASE (nfrontcal) CASE (1) !Sustancia conservativa Salinidad Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, cse, caudsal, salp, dtsal, dtsalrio) CASE (2) !Demanda Bioquimica de Oxigeno Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, dbose, cauddbo, dbop, dtdbo, dtdborio) CASE (3) !Nitrogeno Organico Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, nose, caudno, nop, dtno, dtnorio) CASE (4) !Nitrogeno Amoniacal Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, namose, caudnamo, namop, dtnamo, dtnamorio) CASE (5) !Nitritos Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, nitrise, caudnitri, nitrip, dtnitri, dtnitririo) CASE (6) !Nitratos Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, nitrase, caudnitra, nitrap, dtnitra, dtnitrario)

Page 134: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

132

CASE (7) !Oxigeno Disuelto Call fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, OxiDisse, caudOxiDis, OxiDisp, dtOxiDis, dtOxiDisrio) END SELECT 804 continue num= 2; n= 1; nind= ncol-1 Do while (num.LE.nind) n = n + 1; mf = nbd(num,3); l = nbd(num,4); mff = mf - 1 nnn = n + 1; nn = n - 1; k= mf Do 581 m = k, l mm= m -1; mmm= m+1 if (nbd(num,2).eq.2.and.m.eq.l) then xyz = 2 else prof1 = sep(n,m) prof5 = se(n,m) if (sep(n,mm).EQ.0) then prof2 = sep(n,m) else prof2 = sep(n,mm) endif if (sep(nn,mm).EQ.0) then If (sep(nn,m).EQ.0) then prof3 = sep (n,m) else prof3 = sep(nn,m) endif else prof3 = sep(nn,mm) endif if (sep(nn,m).EQ.0) then prof4 = sep(n,m) else prof4 = sep(nn,m) endif if (se(n,mm).EQ.0) then prof6 = se(n,m) else prof6 = se(n,mm) endif if (se(nn,mm).EQ.0) then If (se(nn,m).EQ.0) then prof7 = se (n,m) else prof7 = se(nn,m) endif else prof7 = se(nn,mm) endif if (se(nn,m).EQ.0) then prof8 = se(n,m) else prof8 = se(nn,m) endif hmedant = (prof8 + prof7 + prof6 + prof5)/4 + h(n,m) hprom1 = (prof3 + prof4)/2 + (h(n,m) + h(nn,m))/2 hprom2 = (prof1 + prof2)/2 + (h(n,m) + h(nnn,m))/2 hprom3 = (prof3 + prof2)/2 + (h(n,m) + h(n,mm))/2 hprom4 = (prof4 + prof1)/2 + (h(n,m) + h(n,mmm))/2 hmedact = hmedant + (vp(nn,m) * hprom1 - vp(n,m) * hprom2 + up(n,mm) * hprom3 - up(n,m) * hprom4)* dt/500 ¡********************************************************************************** ¡****************Evalua calidad en la malla completa

Page 135: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

133

do 805 ncalcpar = 1, 7 SELECT CASE (ncalcpar) CASE (1) !Sustancia conservativa Salinidad call defparameter (sal, Stemp1, Stemp2, Stemp3, Stemp4, Stemp5, Stemp6, Stemp7, Stemp8, up, vp, n, nn, nnn, m, mm, mmm) salp (n,m) = Stemp1 * hprom1 - Stemp2 * hprom2 + Stemp3 * hprom3 - Stemp4 * hprom4 salp (n,m) = salp (n,m) + Dsal/dx * (hprom1*Stemp5 + hprom2*Stemp6 + hprom3*Stemp7 + hprom4*Stemp8) salp (n,m) = sal(n,m) * hmedant / hmedact + dt*salp(n,m)/(dx*hmedact) CASE (2) !Demanda Bioquimica de Oxigeno call defparameter (dbo, DBOtemp1, DBOtemp2, DBOtemp3, DBOtemp4, DBOtemp5, DBOtemp6, DBOtemp7, DBOtemp8, up, vp, n, nn, nnn, m, mm, mmm) dbop (n,m) = DBOtemp1 * hprom1 - DBOtemp2 * hprom2 + DBOtemp3 * hprom3 - DBOtemp4 * hprom4 !Advección dbop (n,m) = dbop (n,m) + Ddbo/dx * (hprom1*DBOtemp5 + hprom2*DBOtemp6 + hprom3*DBOtemp7 + hprom4*DBOtemp8) !Dispersión dbop (n,m) = dbop (n,m) - Kdbo*dx*hmedact*dbo(n,m) !Decaimiento primer orden dbop (n,m) = dbop (n,m) - VSdbo*dx*dbo(n,m) !Sedimentación dbop (n,m) = dbo(n,m) * hmedant / hmedact + dt*dbop(n,m)/(dx*hmedact) CASE (3) !Nitrogeno Organico call defparameter (no, notemp1, notemp2, notemp3, notemp4, notemp5, notemp6, notemp7, notemp8, up, vp, n, nn, nnn, m, mm, mmm) nop (n,m) = notemp1 * hprom1 - notemp2 * hprom2 + notemp3 * hprom3 - notemp4 * hprom4 !Advección nop (n,m) = nop (n,m) + Dno/dx * (hprom1*notemp5 + hprom2*notemp6 + hprom3*notemp7 + hprom4*notemp8) !Dispersión nop (n,m) = nop (n,m) - Kno*dx*hmedact*no(n,m) !Decaimiento primer orden nop (n,m) = no(n,m) * hmedant / hmedact + dt*nop(n,m)/(dx*hmedact) CASE (4) !Nitrogeno Amoniacal call defparameter (namo, namotemp1, namotemp2, namotemp3, namotemp4, namotemp5, namotemp6, namotemp7, namotemp8, up, vp, n, nn, nnn, m, mm, mmm) namop (n,m) = namotemp1 * hprom1 - namotemp2 * hprom2 + namotemp3 * hprom3 - namotemp4 * hprom4 !Advección namop (n,m) = namop (n,m) + Dnamo/dx * (hprom1*namotemp5 + hprom2*namotemp6 + hprom3*namotemp7 + hprom4*namotemp8) !Dispersión namop (n,m) = namop (n,m) + Kno*dx*hmedact*no(n,m) - Knamo*dx*hmedact*namo(n,m) !Decaimiento primer orden namop (n,m) = namo(n,m) * hmedant / hmedact + dt*namop(n,m)/(dx*hmedact) CASE (5) !Nitritos call defparameter (nitri, nitritemp1, nitritemp2, nitritemp3, nitritemp4, nitritemp5, nitritemp6, nitritemp7, nitritemp8, up, vp, n, nn, nnn, m, mm, mmm) nitrip (n,m) = nitritemp1 * hprom1 - nitritemp2 * hprom2 + nitritemp3 * hprom3 - nitritemp4 * hprom4 !Advección nitrip (n,m) = nitrip (n,m) + Dnitri/dx * (hprom1*nitritemp5 + hprom2*nitritemp6 + hprom3*nitritemp7 + hprom4*nitritemp8) !Dispersión nitrip (n,m) = nitrip (n,m) + Knamo*dx*hmedact*namo(n,m) - Knitri*dx*hmedact*nitri(n,m) !Decaimiento primer orden nitrip (n,m) = nitri(n,m) * hmedant / hmedact + dt*nitrip(n,m)/(dx*hmedact) CASE (6) !Nitratos call defparameter (nitra, nitratemp1, nitratemp2, nitratemp3, nitratemp4, nitratemp5, nitratemp6, nitratemp7, nitratemp8, up, vp, n, nn, nnn, m, mm, mmm) nitrap (n,m) = nitratemp1 * hprom1 - nitratemp2 * hprom2 + nitratemp3 * hprom3 - nitratemp4 * hprom4 !Advección nitrap (n,m) = nitrap (n,m) + Dnitra/dx * (hprom1*nitratemp5 + hprom2*nitratemp6 + hprom3*nitratemp7 + hprom4*nitratemp8) !Dispersión nitrap (n,m) = nitrap (n,m) + Knitri*dx*hmedact*nitri(n,m) !Decaimiento primer orden nitrap (n,m) = nitra(n,m) * hmedant / hmedact + dt*nitrap(n,m)/(dx*hmedact) CASE (7) !Oxigeno Disuelto call defparameter (OxiDis, OxiDistemp1, OxiDistemp2, OxiDistemp3, OxiDistemp4, OxiDistemp5, OxiDistemp6, OxiDistemp7, OxiDistemp8, up, vp, n, nn, nnn, m, mm, mmm) !Incertar lo relacionado con el calculo del coeficiente de eaireación OxiDisp (n,m) = OxiDistemp1 * hprom1 - OxiDistemp2 * hprom2 + OxiDistemp3 * hprom3 - OxiDistemp4 * hprom4 !Advección

Page 136: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

134

OxiDisp (n,m) = OxiDisp (n,m) + DOxiDis/dx * (hprom1*OxiDistemp5 + hprom2*OxiDistemp6 + hprom3*OxiDistemp7 + hprom4*OxiDistemp8) !Dispersión OxiDisp (n,m) = OxiDisp (n,m) + KOxiDis*dx*hmedact*(OxiSat-OxiDis(n,m)) ! Reaireación OxiDisp (n,m) = OxiDisp (n,m) - Kdbo*dx*hmedact*dbo(n,m) !Demanda Bioquimica de oxigeno OxiDisp (n,m) = OxiDisp (n,m) - Kbentica*dx*OxiDis(n,m) !Demanda Bentica OxiDisp (n,m) = OxiDisp (n,m) - Roa*Knamo*dx*hmedact*namo(n,m) !Paso de Amoniacal a Nitrito OxiDisp (n,m) = OxiDisp (n,m) - Roi*Knitri*dx*hmedact*nitri(n,m) !Paso de Nitrito a Nitrato OxiDisp (n,m) = OxiDis(n,m) * hmedant / hmedact + dt*OxiDisp(n,m)/(dx*hmedact) END SELECT 805 continue endif 581 continue num=num+1 end do endif ! Fin del programa de cálculo de calidad del agua ¡******************************************************************************************************************++ ¡****************************Cambio de la matriz anterior por la matriz actual Do 580 n= 1, ncol Do 590 m= 1, mfil u(n,m)= up(n,m) v(n,m)= vp(n,m) se(n,m)= sep(n,m) if (sep(247,1).gt.10) then maxtime = itime endif if (calidad.eq."Y") then sal(n,m)= salp(n,m) dbo(n,m) = dbop(n,m) no(n,m) = nop(n,m) namo(n,m) = namop(n,m) nitri(n,m) = nitrip(n,m) nitra(n,m) = nitrap(n,m) OxiDis(n,m) = OxiDisp(n,m) Temperatura (n,m) = Temperp (n,m) ENDIF 590 Continue 580 Continue !**************fin Botony If (contimp.LE.numres) Then If (itime.EQ.nprint(contimp)) Then print *,'Itime: ', itime !print *,'Profundidad Barra=',se(247,5),'Velocidad',u(247,5) contimp = contimp + 1 call imprimares (itime, dt, u, v, se, sal, dbo, no, namo, nitri, nitra, OxiDis, ncol, mfil, Temperatura, calidad) Endif EndIf !print *,'Tiempo (Horas)', itime*dt sdee = itime*dt sdee1 = sdee / 3600 sdef = itime*dt/3600 If (sdee1.EQ.sdef) Then print *,'Tiempo (Horas)', itime*dt/3600 call imprimaest (xx, yy, cd1, cd2, dt, nest, u, v, coord, dirco, velco, se, dia, hora, vi, dirvi) Endif 20 continue !*****************************************Fin del programa de calculo call imprimadat (numres, ncol, mfil) !Datos de entrada que utiliza matlab provisional

Page 137: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

135

close (2) end !************************************************************************************************ !Termina el programa principal !************************************************************************************************ !Esta subrutina abre los archivos de datos de profundidad, velocidades y datos de entrada. subroutine aberturaarch(calidad) Character *1 calidad OPEN (UNIT=1, STATUS='old', file='cienaga.txt') OPEN (UNIT=2, STATUS='old', file='datos4.txt') OPEN (UNIT=3, STATUS='old', file='velx4.txt') OPEN (UNIT=4, STATUS='old', file='vely4.txt') OPEN (UNIT=5, STATUS='old', file='nivel4.txt') if (calidad.eq."Y") then OPEN (UNIT=30, STATUS='old', file='Temperatura4.txt') OPEN (UNIT=31, STATUS='old', file='salinidad4.txt') OPEN (UNIT=32, STATUS='old', file='DBO4.txt') OPEN (UNIT=33, STATUS='old', file='NitOrg4.txt') OPEN (UNIT=34, STATUS='old', file='NitNH4.txt') OPEN (UNIT=35, STATUS='old', file='Nitrito4.txt') OPEN (UNIT=36, STATUS='old', file='Nitrato4.txt') OPEN (UNIT=37, STATUS='old', file='OxiDis4.txt') OPEN (UNIT=50, STATUS='old', file='DatTemp.txt') OPEN (UNIT=51, STATUS='old', file='SusNoCon.txt') OPEN (UNIT=52, STATUS='old', file='DatDBO.txt') OPEN (UNIT=53, STATUS='old', file='DatNO.txt') OPEN (UNIT=54, STATUS='old', file='DatNA.txt') OPEN (UNIT=55, STATUS='old', file='DatNI.txt') OPEN (UNIT=56, STATUS='old', file='DatNN.txt') OPEN (UNIT=57, STATUS='old', file='DatOD.txt') ENDIF end subroutine !************************************************************************************************ !Esta subrutina lee los valores de entrada del archivo cienaga.xxx. subroutine lea1(aux,nprint) Integer aux, cont, cont2 Real reg(20) dimension nprint (3000) cont = 0 do while (cont.LT.aux) read (unit=1, fmt=307) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20) j = 1 cont2 = cont + j do while (cont2.LE.aux.and.j.LE.20) nprint (cont2) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 20 Enddo 307 format (F6.0,F6.0,f6.0,f6.0,f6.0,F6.0,F6.0,f6.0,f6.0,f6.0,F6.0,F6.0,f6.0,f6.0,f6.0,F6.0,F6.0,f6.0,f6.0,f6.0) end subroutine !********** subroutine lea2(aux, l, viento, cd1, cd2)

Page 138: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

136

Integer aux, cont, cont2, l Real reg(20) dimension viento (500,2) cont = 0 do while (cont.LT.aux) read (unit=1, fmt=308) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20) j = 1 cont2 = cont + j do while (cont2.LE.aux.and.j.LE.20) if (abs(reg(j)).LE.3) then viento (cont2,l)= reg(j)*reg(j)*cd1 else viento (cont2,l)= reg(j)*reg(j)*cd2 endif if (reg(j).LT.0) then viento (cont2,l)= - viento (cont2,l) endif j = j + 1 cont2 = cont + j Enddo cont = cont + 20 Enddo do 351 i = cont2, 500 !nmaxviento viento(i,l)= viento (1,l) 351 continue 308 format (F6.4,F6.4,f6.4,f6.4,f6.4,F6.4,F6.4,f6.4,f6.4,f6.4,F6.4,F6.4,f6.4,f6.4,f6.4,F6.4,F6.4,f6.4,f6.4,f6.4) end subroutine !********** subroutine lea3(aux, mar, xse) Integer aux, cont, cont2 Real reg(20) dimension xse (1002,4) cont = 0 do while (cont.LT.aux) read (unit=1, fmt=309) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20) j = 1 cont2 = cont + j do while (cont2.LE.aux.and.j.LE.20) xse (cont2,mar) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 20 Enddo do 352 i = cont2, 500 !nmaxdatmarea xse(i,mar)= xse (1,mar) 352 continue 309 format (F5.3,F5.3,f5.3,f5.3,f5.3,F5.3,F5.3,f5.3,f5.3,f5.3,F5.3,F5.3,f5.3,f5.3,f5.3,F5.3,F5.3,f5.3,f5.3,f5.3) end subroutine !********** subroutine lea4(a, ncol, mfil, archivo) Integer cont, cont2, archivo Real reg(60) dimension a (300, 300) do 353 w = 1, mfil cont = 0 do while (cont.LT.ncol)

Page 139: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

137

read (unit=archivo, fmt=310) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) j = 1 cont2 = cont + j do while (cont2.LE.ncol.and.j.LE.60) a (cont2,w) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 60 Enddo 353 continue 310format(F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f 5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4,F5.4,F5.4,f5.4,f5.4,f5.4) end subroutine !********** subroutine lea5(aux, l, caud, nfrqcol, nfrqfil, nmaxdatrio) Integer aux, cont, cont2 !, nmaxdatrio Real reg(20), aux2, aux3 Double precision caud (1002, 4) cont = 0 aux2 = aux aux3 = aux2 / 20 do while (cont.LT.aux2) read (unit=1, fmt=311) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20) j = 1 cont2 = cont + j do while (cont2.LE.aux.and.j.LE.20) caud (cont2,l) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 20 Enddo do 354 i = cont2, nmaxdatrio caud(i,l)= caud (1,l) 354 continue 311 format (F7.4,F7.4,f7.4,f7.4,f7.4,F7.4,F7.4,f7.4,f7.4,f7.4,F7.4,F7.4,f7.4,f7.4,f7.4,F7.4,F7.4,f7.4,f7.4,f7.4) end subroutine !********** subroutine codigos(mbd,nbd, mfil, ncol, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd) Integer cont, cont2, z dimension mbd(540,4),nbd(540,4), nobd(4,4), mobd(4,4), nqbd(4,4), mqbd(4,4) i = 1 do while (i.LE.mfil) read (unit=1, fmt=312) mbd (i,1), mbd (i,2), mbd (i,3), mbd (i,4), z do 355 l = 1, z do 356 j = 1, 4 mbd (i+l,j) = mbd (i,j) 356 continue 355 continue If (z.NE.0) then i = i + z +1 else i = i + 1

Page 140: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

138

endif enddo i = 1 do w hile (i.LE.ncol) read (unit=1, fmt=312) nbd (i,1), nbd (i,2), nbd (i,3), nbd (i,4), z do 357 l = 1, z do 358 j = 1, 4 nbd (i+l,j) = nbd (i,j) 358 continue 357 continue If (z.NE.0) then i = i + z +1 else i = i + 1 endif enddo do 359 i = 1, nfrmcol read (unit=1, fmt=313) nobd (i,1), nobd (i,2), nobd (i,3), nobd (i,4) 359 continue do 360 i = 1, nfrmfil read (unit=1, fmt=313) mobd (i,1), mobd (i,2), mobd (i,3), mobd (i,4) 360 continue do 361 i = 1, nfrqcol read (unit=1, f mt=313) nqbd (i,1), nqbd (i,2), nqbd (i,3), nqbd (i,4) 361 continue do 362 i = 1, nfrqfil read (unit=1, fmt=313) mqbd (i,1), mqbd (i,2), mqbd (i,3), mqbd (i,4) 362 continue 312 format (i7,i7,i7,i7,i7) 313 format (i7,i7,i7,i7) end subroutine ¡******************************************************************************************************* !Rutinas de lectura de datos para calidad del agua subroutine leacalidad (var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, nfrmcol, nfrmfil, maxtime, dt, numrios, nfrqcol, nfrqfil, nmaxdatrio, nobd, mobd, nqbd, mqbd, ncol, mfil) double precision var1, var2 integer var6, var11, aux Real var7, var13, dt Real var3(4), var4 (4), var8 (10), var9 (10) Double precision var5 (1002,4), var10 (1002,4) double precision var12 (300, 300) read (unit=var6, fmt=903) var1 read (unit=var6, fmt=903) var2 do 801 i = 1, nfrmcol + nfrmfil read (unit=var6, fmt=905) var3(i), var4(i) aux = maxtime * dt / var3 (i) If (var4(i) .EQ. 1) then call lea31 (aux, i, var5, var6) else read (unit=var6, fmt=907) var7 Call lea40 (aux, i, var5, var7) endif 801 continue do 802 i = 1, numrios read (unit=var6, fmt=905) var8 (i), var9 (i) aux = maxtime * dt / var8 (i) If (var9(i) .EQ. 1) then call lea51 (aux, i, var10, nfrqcol, nfrqfil, nmaxdatrio, var6)

Page 141: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

139

else read (unit=var6, fmt=907) var7 Call lea40 (aux, i, var10, var7) endif 802 continue read (unit=var6, fmt=906) var11 if (var11 .EQ. 0) then read (unit=var6, fmt=907) var13 Call fronteras2(dt, 0, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, var5, var10, var12, var3, var8) Else call lea41 (var12, ncol, mfil, var6) endif close(var6) 903 format (F10.2) 905 format (F6.0,F2.0) 906 format (i6) 907 format (F9.7) end subroutine !*******************************************Fin de entrada de datos para modelación de la calidad del agua !********** si la entrada de datos es Vs Tiempo subroutine lea31(aux, mar, mse, archivo) Integer aux, cont, cont2, archivo Real reg(20) double precision mse (1002,4) cont = 0 do while (cont.LT.aux) read (unit=archivo, fmt=314) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20) j = 1 cont2 = cont + j do while (cont2.LE.aux.and.j.LE.20) mse (cont2,mar) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 20 Enddo do 363 i = cont2, 500 !nmaxdatmarea mse(i,mar)= mse (1,mar) 363 continue 314 format (F6.4,F6.4,f6.4,f6.4,f6.4,F6.4,F6.4,f6.4,f6.4,f6.4,F6.4,F6.4,f6.4,f6.4,f6.4,F6.4,F6.4,f6.4,f6.4,f6.4) end subroutine !**********Lectura de datos de calidad del agua en toda la malla, con doble precision OJO LEA 41 = LEA 42 subroutine lea41(a, ncol, mfil, archivo) Integer cont, cont2, archivo Real reg(60) double precision a (300, 300) do 353 w = 1, mfil cont = 0 do while (cont.LT.ncol) read (unit=archivo, fmt=310) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) j = 1

Page 142: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

140

cont2 = cont + j do while (cont2.LE.ncol.and.j.LE.60) a (cont2,w) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 60 Enddo 353 continue 310format(F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4,F8.4) end subroutine !********** Si se alimenta un dato constante para todo T subroutine lea40 (aux, mar, mse, cinicial) Integer aux, cont, cont2 real cinicial double precision mse (1002,4) cont = 0 do 364 cont = 1, aux mse (cont,mar) = cinicial 364 continue do 365 i = aux+1, 500 !nmaxdatmarea mse(i,mar)= mse (1,mar) 365 continue end subroutine !********** subroutine lea51(aux, l, concent , nfrqcol, nfrqfil, nmaxdatrio, archivo) Integer aux, cont, cont2, archivo !, nmaxdatrio Real reg(20), aux2, aux3 double precision concent (1002, 4) cont = 0 aux2 = aux aux3 = aux2 / 20 do while (cont.LT.aux2) read (unit=archivo, fmt=311) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20) j = 1 cont2 = cont + j do while (cont2.LE.aux.and.j.LE.20) concent (cont2,l) = reg (j) j = j + 1 cont2 = cont + j Enddo cont = cont + 20 Enddo do 354 i = cont2, nmaxdatrio concent (i,l)= concent (1,l) 354 continue 311 format (F7.4,F7.4,f7.4,f7.4,f 7.4,F7.4,F7.4,f7.4,f7.4,f7.4,F7.4,F7.4,f7.4,f7.4,f7.4,F7.4,F7.4,f7.4,f7.4,f7.4) end subroutine !********** subroutine imprimadat(numres, ncol, mfil) If (ncol.LT.60) then numcol = 60 else numcol = ncol endif write (unit=2,fmt=469) numres

Page 143: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

141

write (unit=2,fmt=469) numcol write (unit=2,fmt=469) mfil-1 469 format (i6) end subroutine !************************************************************************************************ !Procedimiento de escritura de resultados de velocidad y niveles a los archivos correspondientes subroutine imprimares(itime, dt, u, v, se, sal, dbo, no, namo, nitri, nitra, OxiDis, ncol, mfil, Temperatura,calidad) real aux, aux1, dt Character *1 calidad !nteger double precision u (300, 300), v (300, 300), se (300, 300), sal (300, 300), dbo (300, 300) double precision no (300, 300), namo (300, 300), nitri (300, 300), nitra (300, 300), OxiDis (300, 300), Temperatura(300, 300) print *,'Impresión de Archivos Resultados ' aux = itime * dt aux1 = aux / 3600 write (unit=3,fmt=461) aux1 write (unit=4,fmt=461) aux1 write (unit=5,fmt=461) aux1 do 355 i = 30, 37 write (unit=I,fmt=461) aux1 355 continue 461 format (f8.4) call Escriba4 (u,2, ncol, mfil) call Escriba4 (v,3, ncol, mfil) call Escriba4 (se,4, nc ol, mfil) if (calidad.eq."Y") then call Escriba4 (sal,5, ncol, mfil) call Escriba4 (dbo,6, ncol, mfil) call Escriba4 (no,7, ncol, mfil) call Escriba4 (namo,8, ncol, mfil) call Escriba4 (nitri,9, ncol, mfil) call Escriba4 (nitra,10, ncol, mfil) call Escriba4 (OxiDis,11, ncol, mfil) call Escriba4 (Temperatura,12, ncol, mfil) ENDIF !Falta incluir los demas parametros end subroutine !************************************************************************************************ !Imprime los resultados de estaciones puntuales en forma de tabla. subroutine imprimaest(xx, yy, cd1, cd2, dt, nest, u, v, coord, dirco, velco, se, dia, hora, vi, dirvi) integer dia double precision u(300, 300), v(300, 300), se(300, 300) real coord (20,2), hora, dt double precision vix, viy, vi, velco character*2 dirvi, dirco double precision xx, yy vix = sqrt(abs(xx)/cd1/dt) IF (vix.GE.2.9) then vix = sqrt(abs(xx)/cd2/dt) endif if (xx.LT.0) then vix = -vix endif viy = sqrt(abs(yy)/cd1/dt) if (viy.GE.2.9) then viy = sqrt(abs(yy)/cd2/dt) endif

Page 144: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

142

if (yy.LT.0) then viy = -viy endif call direccion(vix,viy,dirvi,vi) do 701 i = 1, nest call direccion(u(coord(i,2),coord(i,1)),v(coord(i,2),coord(i,1)),dirco,velco) write (unit=i+5,fmt=710) dia, hora, se(coord(i,2),coord(i,1)), vi, dirvi, velco, dirco 701 continue 710 format (i3, f7.2, f6.2, f8.2,2x, A, f8.4,2x, A) end subroutine !************************************************************************************************ !Lee o interpola los datos variables en cada iteración subroutine datosit(dtrio, media, sol, lun, tmar, nfrmfil, nfrmcol, itime, dt, datmar, dtxse, xia, xse, xx, yy, dtviento, viento, numrios, velrio, caud, dia, hora) integer aux1, aux2, i, dia, mes, dtviento real z , tmar, tmar1, hora, aux3 ,dt dimension datmar(4), dtxse(4), xse(1002,4), viento(500,2) Double precision caud(1002,4) double precision xia(4), velrio(4) integer dtrio (10) real media (12), sol (6,12), lun (6,12) double precision xx, yy pi = 3.141592654 aux1= itime*dt do 901 i = 1, nfrmfil+nfrmcol if (datmar (i).EQ.1) then aux2 = aux1 / dtxse(i) aux3 = aux1 - aux2 * dtxse(i) if (aux3.EQ.0) then xia(i)= xse(aux2+1,i) else z = aux3/dtxse (i) xia(i)= z*xse(aux2+2,i) + (1-z)*xse(aux2+1,i) endif else tmar1 = dt*1000000 /3600 tmar = tmar + tmar1/1000000 dia = tmar / 24 hora = tmar - dia * 24 mes = dia / 30+1 xia(i) = media(mes) + sol(1,mes)*cos((15*tmar - sol(4,mes))*pi/180)+ sol(2,mes)*cos((30*tmar - sol(5,mes))*pi/180) + sol(3,mes)*cos((60*tmar - sol(6,mes))*pi/180) + lun(1,mes)*cos((14.5*tmar - lun(4,mes))*pi/180) + lun(2,mes)*cos((29.0*tmar - lun(5,mes))*pi/180) + lun(3,mes)*cos((58.0*tmar - lun(6,mes))*pi/180) endif 901 continue aux2 = aux1 / dtviento aux3 = aux1 - aux2 * dtviento if (aux3.EQ.0) then xx = viento (aux2+1,1)*dt yy = viento (aux2+1,2)*dt else z = aux3/dtviento xx = (z*viento(aux2+2,1) + (1-z)*viento(aux2+1,1))*dt yy = (z*viento(aux2+2,2) + (1-z)*viento(aux2+1,2))*dt endif do 902 i = 1, numrios aux2 = aux1 / dtrio(i) aux3 = aux1 - aux2 * dtrio(i) if (aux3.EQ.0) then velrio(i) = caud(aux2+1,i) else

Page 145: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

143

z = aux3/dtrio(i) velrio(i) = caud(aux2+1,i)*(1-z) + z*caud(aux2+2,i) endif 902 continue end subroutine !************************************************************************************************ !Asigna los valores de nivel y velocidad en las respectivas fronteras de marea o caudal subroutine fronteras(nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, sep, xia, velrio, vp, up) Double precision sep(300, 300), up(300, 300), vp(300, 300) dimension nobd(4,4), mobd(4,4), nqbd(4,4), mqbd(4,4) double precision xia(4), velrio(4) do 902 i= 1, nfrmcol do 903 j= nobd(i,2), nobd(i,3) sep (nobd(i,1), j) = xia(i) 903 continue 902 continue do 904 i= 1, nfrmfil do 905 j= mobd(i,2), mobd(i,3) sep (j, mobd(i,1)) = xia(nfrmcol+i) 905 continue 904 continue do 906 i = 1, nfrqcol do 907 j = nqbd(i,2), nqbd(i,3) vp (nqbd(i,1),j) = velrio(i) 907 continue 906 continue do 908 i = 1, nfrqfil do 909 j = mqbd(i,2), mqbd(i,3) up (j, mqbd(i,1)) = velrio(nfrqcol + i) 909 continue 908 continue end subroutine !************************************************************************************************ !Escritura de datos en cada nodo de la malla de diferencia !Se escriben 60 datos por fila subroutine escriba4 (a,nom, ncol, mfil) Integer aux, cont, cont2 Real reg(60), aux2, aux3 double precision a (300, 300) cont = 1 aux2 = ncol do while (cont.LE.mfil) !Ojo Cambie LT por LE cont2 = 0 do while (cont2.LT.aux2) !Ojo Cambie LE por LT j = 1 do while (j.LE.60) reg (j) = a (cont2+j,cont) j = j + 1 enddo cont2 = cont2 + 60 SELECT CASE (nom) CASE (1) write (unit=2, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (2)

Page 146: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

144

write (unit=3, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (3) write (unit=4, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (4) write (unit=5, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (5) write (unit=31, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (6) write (unit=32, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (7) write (unit=33, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (8) write (unit=34, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (9) write (unit=35, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (10) write (unit=36, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (11) write (unit=37, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) CASE (12) write (unit=30, fmt=331) reg(1), reg(2), reg(3), reg(4), reg(5), reg(6), reg(7), reg(8), reg(9), reg(10), reg(11), reg(12), reg(13), reg(14), reg(15), reg(16), reg(17), reg(18), reg(19), reg(20), reg(21), reg(22), reg(23), reg(24), reg(25), reg(26), reg(27), reg(28), reg(29), reg(30), reg(31), reg(32), reg(33), reg(34), reg(35), reg(36), reg(37), reg(38), reg(39), reg(40), reg(41), reg(42), reg(43), reg(44), reg(45), reg(46), reg(47), reg(48), reg(49), reg(50), reg(51), reg(52), reg(53), reg(54), reg(55), reg(56), reg(57), reg(58), reg(59), reg(60) END SELECT Enddo cont = cont + 1

Page 147: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

145

Enddo 331format(F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4,F8.4,F8.4,f8.4,f8.4,f8.4) end subroutine !************************************************************************************************ !Se determina la magnitud y dirección del vector de velocidad de viento y corriente !formado por los componentes X y Y, se aprox a N, NE, E, SE, S, SO, O, NO subroutine direccion (u, v, dir, mag) character*2 dir double precision mag, pi, u, v pi = 3.141592654 ! double precision u, v mag = sqrt(v*v+u*u); if (v.NE.0) then a = atan(abs(u)/abs(v))*180/pi endif if (v.LT.0) then if (u.LT.0) then if ((a.GT.22.5).and.(a.LT.67.5)) then dir = 'NW' else if (a.LT.22.5) then dir = 'W ' else dir = 'N ' endif endif Else if ((a.GT.22.5).and.(a.LT.67.5)) then dir = 'SW' else if (a.LT.22.5) then dir = 'W ' else dir = 'S ' endif endif endif else if (v.GT.0) then if (u.LT.0) then if ((a.GT.22.5).and.(a.LT.67.5)) then dir = 'NE' else if (a.LT.22.5) then dir = 'E ' else dir = 'N ' endif endif else if ((a.GT.22.5).and.(a.LT.67.5)) then dir = 'SE' else if (a.LT.22.5) then dir = 'E ' else dir = 'S ' endif endif endif else if (u.LT.0) then dir = 'N '

Page 148: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

146

else dir = 'S ' endif endif endif end subroutine !************************************************************************************************ !Asigna los valores concentración en las respectivas fronteras de marea o caudal subroutine fronteras2(dt, itime, nfrmcol, nfrmfil, nfrqcol, nfrqfil, nobd, mobd, nqbd, mqbd, marea, riocaudal, concant, deltatiempo, dtdatorio) double precision concant(300, 300) dimension nobd(4,4), mobd(4,4), nqbd(4,4), mqbd(4,4) double precision marea(1002,4), riocaudal(1002,4) integer aux1, aux2, i real z , aux3, dt dimension deltatiempo (4) !, cse(1002,4), viento(500,2), caud(100,4) double precision tempmarea(4), tempcaudal(4) real dtdatorio (10) aux1= itime*dt do 931 i = 1, nfrmfil+nfrmcol aux2 = aux1 / deltatiempo (i) aux3 = aux1 - aux2 * deltatiempo(i) if (aux3.EQ.0) then tempmarea(i)= marea (aux2+1,i) else z = aux3/deltatiempo (i) tempmarea(i)= z* marea(aux2+2,i) + (1-z)*marea(aux2+1,i) endif 931 continue do 932 i = 1, nfrqcol+nfrqfil aux2 = aux1 / dtdatorio(i) aux3 = aux1 - aux2 * dtdatorio(i) if (aux3.EQ.0) then tempcaudal(i) = riocaudal(aux2+1,i) else z = aux3/dtdatorio(i) tempcaudal(i) = riocaudal(aux2+1,i)*(1-z) + z*riocaudal(aux2+2,i) endif 932 continue do 933 i= 1, nfrmcol do 934 j= nobd(i,2), nobd(i,3) concant (nobd(i,1), j) = tempmarea(i) 934 continue 933 continue do 935 i= 1, nfrmfil do 936 j= mobd(i,2), mobd(i,3) concant (j, mobd(i,1)) = tempmarea(nfrmcol+i) 936 continue 935 continue do 937 i = 1, nfrqcol do 938 j = nqbd(i,2), nqbd(i,3) concant (nqbd(i,1),j) = tempcaudal(i) 938 continue 937 continue do 939 i = 1, nfrqfil do 940 j = mqbd(i,2), mqbd(i,3) concant (j, mqbd(i,1)) = tempcaudal(nfrqcol + i) 940 continue

Page 149: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

147

939 continue end subroutine !********************************************************************************************************** !Calcula las variables temporales 1 a 8, las cuales equivalen a las diferencia de concentración !en los factores de aspersión y disperción. subroutine defparameter (matriz, Ctemp1, Ctemp2, Ctemp3, Ctemp4, Ctemp5, Ctemp6, Ctemp7, Ctemp8, up, vp, n, nn, nnn, m, mm, mmm ) double precision Ctemp1, Ctemp2, Ctemp3, Ctemp4, Ctemp5, Ctemp6, Ctemp7, Ctemp8 double precision up(300, 300), vp (300, 300), matriz (300, 300) if (vp(nn,m).GE.0) then Ctemp1 = matriz (nn,m) * vp(nn,m) else Ctemp1 = matriz (n,m) * vp(nn,m) endif if (vp(n,m).GE.0) then Ctemp2 = matriz (n,m) * vp(n,m) else Ctemp2 = matriz (nnn,m) * vp(n,m) endif if (up(n,mm).GE.0) then Ctemp3 = matriz (n,mm) * up(n,mm) else Ctemp3 = matriz (n,m) * up(n,mm) endif if (up(n,m).GE.0) then Ctemp4 = matriz (n,m) * up(n,m) else Ctemp4 = matriz (n,mmm) * up(n,m) endif If (matriz(nn,m).EQ.0) then Ctemp5 = 0 else Ctemp5 = matriz(nn,m) - matriz(n,m) endif If (matriz(nnn,m).EQ.0) then Ctemp6 = 0 else Ctemp6 = matriz(nnn,m) - matriz(n,m) endif If (matriz(n,mm).EQ.0) then Ctemp7 = 0 else Ctemp7 = matriz(n,mm) - matriz(n,m) endif If (matriz(n,mmm).EQ.0) then Ctemp8 = 0 else Ctemp8 = matriz(n,mmm) - matriz(n,m) endif end subroutine

Page 150: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

148

ANEXO B: CÓDIGO DE COMPUTADOR (LecDatos.m)

%LecDatos.m Lectura de archivos planos tipo txt a archivo de memoria de Matlab % Juan Carlos Lozano Sierra % Tesis de Grado, MSc Ingenieria Civil y Ambiental % Universidad de los Andes (Bogotá-Colombia) % Revision: 5.0 $ $Fecha: 24/07/2003 1:55:00 A.M. $ clear if ~exist('MovieGUIFlag'), figNumber=0; end; hlpStr= ... [' Este programa lee los datos de modelo bidimensional ' hidrodinámico y de calidad para cuerpos ' ' de agua poco profundos. ']; mvinit(figNumber,hlpStr); %Este programa lee los resultados del modelo bidimensional hidrodinámico y %de calidad para cuerpos de agua poco profundos, los cuales son obtenidos mediante %una rutina elaborada en Fortran, generando un archivo de datos cuyos %valores son leidos directamente por Matlab para su graficación fid = fopen('datos4.txt'); times = fscanf(fid,'%fg',[1]); %numero de iteraciones impresas m = fscanf(fid,'%fg',[1]); %numero de columnas n = fscanf(fid,'%fg',[1]); %numero de filas fclose (fid) fid = fopen('DBO4.txt'); fid2 = fopen('Salinidad4.txt'); fid3 = fopen('Nivel4.txt'); for k =1:times %lectura de datos desde archivo tiempo(k)=fscanf(fid,'%f5.3',1); tiempo(k)=fscanf(fid2,'%f5.3',[1]); tiempo(k)=fscanf(fid3,'%f5.3',[1]); if k == 1 b = fscanf(fid,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[m n]); % It has two rows now. e = fscanf(fid2,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[m n]); % It has two rows now. f = fscanf(fid3,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[m n]); % It has two rows now. else b(:,:,k) = fscanf(fid,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[m n]); % It has two rows now. e(:,:,k) = fscanf(fid2,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[m n]); % It has two rows now. f(:,:,k) = fscanf(fid3,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[m n]); % It has two rows now. end end

Page 151: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

149

fclose(fid) fclose(fid2) fclose(fid3) for j= 1: n for i = 1:m if f(i,j,1) == 0 c(i,j) = NaN; t(i,j) = 0; else c(i,j) = 1; t(i,j) = NaN; end end end save DBOC b c m n times tiempo hlpStr figNumber t save SALC e c m n times tiempo hlpStr figNumber t save NIVELC f c m n times tiempo hlpStr figNumber t clear

Page 152: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

150

ANEXO C: CÓDIGO DE COMPUTADOR (Movie3d.m)

clear R=1; while R < 4, if ~exist('MovieGUIFlag'), figNumber=0; end; hlpStr= ... [' Que parámetro desea observar? ' ' 1. Nivel ' ' 2. Salinidad ' ' 3. Demanda Bioquímica de Oxígeno ' ' 9. Para finalizar la visualización ']; mvinit(figNumber,hlpStr); R = input ('Cual es su elección ?'); if R==9 break end load NIVELC load DBOC load SALC [n,m,l] = size(f); x = (1:n); y = (1:m); colormap(hsv(128)); if R==1 hold on; zlabel (['Nivel (m)']); grid on; end if R==2 hold on; zlabel (['SALINIDAD (g/L)']); grid on; end if R==3 hold on; zlabel (['B.D.O (mg/L)']); grid on; end view(135, 25); % Generate the movie. nframes = l; M = moviein(nframes); for k = 1:nframes, cla if R==1 %NIVEL axis([1 m 1 n 0.0 0.6]); L = f(:,:,k).*c; surfc(y,x,t); surfc(y,x,L); caxis([0.4 0.6]); title(['Tiempo Modelado = ',num2str(tiempo(k)),' Horas']); %plot (X,Velx11(k,:),'r-',X,Velx12(k,:),'b+',X,Velx13(k,:),'yo','LineWidth',1,'MarkerSize',2); axis([1 199 0.25 0.35]); set(gca,'xtick',0); set(gca,'fontsize',8);ylabel('Velocidad (m/s)') caxis([0 0.6]) end if R==2 %SALINIDAD axis([1 m 1 n 0 35]); L = e(:,:,k).*c; surfc(y,x,t); surfc(y,x,L); caxis([0 35]); title(['Tiempo Modelado = ',num2str(tiempo(k)),' Horas']); caxis([0 15]) end if R==3 %DBO axis([1 m 1 n 0 15]);

Page 153: DESARROLLO DE UN MODELO BIDIMENSIONAL HIDRODINÁMICO Y DE …

MIC 2003-II-46

151

L = b(:,:,k).*c; surfc(y,x,t); surfc(y,x,L); caxis([0 15]); title(['Tiempo Modelado = ',num2str(tiempo(k)),' Horas']); caxis([0 15]) end % Capture the frame M(:,k) = mvframe(figNumber,nframes); end; hold off end