Aún cuando los procedimientos son componentes fundamentales del programa, un hidrólogo probablemente pensará en el programa de acuerdo a las capacidades para resolver problemas hidrológicos. Para este propósito el programa es dividido en paquetes.
Paquetes
Aún cuando los procedimientos son componentes fundamentales del programa, un hidrólogo probablemente pensará en el programa de acuerdo a las capacidades para resolver problemas hidrológicos. Para este propósito el programa es dividido en paquetes.
El hidrólogo puede naturalmente pensar cómo se construye la ecuación de flujo del agua subterránea. Por consiguiente, varias de las partes del código se ocupan de la definición de la ecuación de flujo de agua subterránea, las cuales se dividen en paquetes llamados paquetes hidrológicos.
Hay dos tipos de paquetes hidrológicos. El primer tipo es el paquete de flujo interno (Internal flow package), el cual simula el flujo entre celdas adyacentes. El segundo tipo es el paquete de requerimiento (Stress package), el cual simula una clase individual de tensión, tal es el caso de ríos, pozos y recarga.
MODFLOW incorpora múltiples métodos de solución y cada uno de ellos se llama paquete solucionador (solver package). Lógicamente, el paquete hidrológico y el paquete solucionador representa todo el trabajo del programa, sin embargo, un componente adicional es necesario para llevar a cabo el control del programa. Este sistema de control es llamado paquete básico (Basic package).
Sub-rutinas Primarias
El enfoque que emplea MODFLOW consiste en dividir el código en piezas que pueden combinarse en ambos procedimientos y paquetes según se desee. Por tanto, una sub-rutina principal se define como el código de procesamiento de un paquete. Un procedimiento puede ser construido agrupando todas las sub-rutinas primarias que comprende el paquete. Un paquete puede ser construido mediante la agrupación de todas las sub-rutinas primarias de las que consiste el paquete.
La mayoría de los paquetes son opcionales, esto depende del problema que se esté simulando. Por consiguiente, las llamadas a las sub-rutinas de paquetes opcionales invocadas a través del operador “IF”, dependerán de la llamada a la sub-rutina principal si es necesaria. De este modo, el programa no realiza todo el trabajo de la simulación, sino que simplemente llama a las diversas sub-rutinas primarias en el orden correcto para hacer el trabajo.
Cómputo de los términos de la ecuación de flujo
Para las celdas que son designadas como siempre confinadas, los términos de la conductancia para el flujo celda a celda (CC, CR, y CV de la ecuación2-7) se calculan al comienzo de la simulación de la subrutina AR del paquete del flujo interno. Estos términos se mantendrían constantes a lo largo de la simulación para celdas confinadas. Para las celdas que son no confinadas, los términos de la conductancia son procesados en el procedimiento FM en cada solución de la iteración, esto se debe a que la conductancia depende del espesor de saturación que puede cambiar en cada iteración.
Los términos de la conductancia, finalmente, pasan al paquete solucionador, donde las ecuaciones [A]{h} ={q} de la matriz son resueltas.
El coeficiente HCOFi, j, k y el termino RHSi, j, k de la ecuación 2-7 son formulados de nuevo en cada iteración para todos los nodos activos en la malla.
Esta formulación se hace progresivamente a medida que la sub-rutina FM calcula cada paquete y añade los términos para el proceso particular hidrológico asociado a ese paquete. Al comienzo de cada iteración, los valores de HCOFi, j, k y RHSi, j, k se ponen a cero en toda la red. En el paquete de flujo interno continuo se le agrega el término:
a HCOFi, j, k en cada nodo, y se le agrega el término:
a RHSi, j, k en cada nodo.
Los paquetes que especifican la entrada de flujo externo (el valor negativo indica el flujo de salida) utilizan expresiones de la forma Pi, j, k+Qi,j,k añadidos al término Pi,j,k al HCOFi, j, k y el término -Qi, j, k HS de RHSi, j, k para las celdas afectadas. Este proceso continua hasta que cada paquete especificado por el usuario haya añadido su contribución a HCOF y RHS en cada celda de la malla. El HCOF y los valores de RHS son transferidos al paquete solucionador, junto con las conductancias (CC, CR y CV) y las cargas hidráulicas en el comienzo del intervalo de tiempo.
El paquete solucionador suma los seis términos de conductancia y el valor de HCOF por cada celda, para crear un solo coeficiente de h i, j, k y lleva a cabo una iteración del procedimiento de solución.
Agregando y modificando paquetes
La estructura de GTW ha sido diseñada de tal manera que los paquetes son tan independientes como sea posible, lo que facilita hacer modificaciones de todo tipo. Nuevos paquetes pueden ser añadidos y las sub-rutinas de los paquetes existentes pueden ser modificadas sin afectar a otros paquetes.
El método de incorporación de los requerimientos a través del HCOF y en términos de RHS permite a los nuevos paquetes de requerimiento ser usados junto con los paquetes de requerimiento originales. El desarrollo de un nuevo paquete incluye la creación de sub-rutinas principales para cada uno de los procedimientos que se encuentren involucrados, también se debe modificar el programa principal para llamar a las sub-rutinas en la secuencia correcta.
Simulaciones en estado estacionarios
La estructura del programa para simular el flujo de agua subterránea que se describió en la figura 3-1 presenta la solución a un problema de estado transitorio, sin embargo, la misma estructura también trabaja para simulaciones en estado estacionario. Una simulación de estado estacionario está representada por un periodo de requerimiento único que tiene un solo intervalo de tiempo y donde el conjunto de términos de almacenamiento tienden a cero.
Así, un único conjunto de ecuaciones serán resueltas simultáneamente. Todos los procedimientos dentro de la estructura del programa son requeridos tanto como lo son para un problema de estado transitorio. El trabajo de establecer el número de periodos de requerimiento y determinar la duración de los intervalos de tiempo es responsabilidad del paquete básico (BAS). La longitud del periodo de tensión e intervalo de tiempo no afectará la solución de la carga hidráulica porque la derivada con respecto al tiempo no es calculada en un problema de estado estacionario.
Unidades de longitud y tiempo
El proceso de GWF formula la ecuación de flujo de agua subterránea sin necesidad de usar una duración predeterminada y unidades de tiempo.
Todas las unidades de longitud y tiempo se pueden establecer al especificar los datos de entrada para la simulación, se debe tener cuidado para evitar que las unidades se combinen, el programa no es capaz de detectar el uso de unidades inconsistentes.