Введение

MODFLOW – это модульная конечно-разностная модель потока, разработанная Геологической службой США, представляющая собой компьютерную программу для решения уравнения потока подземных вод. Программа используется гидрогеологами для моделирования движения подземных вод в водоносных горизонтах. Исходный код является бесплатным программным обеспечением, находящимся в общественном достоянии, написанным преимущественно на Фортране, и может компилироваться и выполняться в операционных системах Microsoft Windows или Unix-подобных системах. С момента первоначальной разработки в начале 1980-х годов USGS выпустила шесть основных версий, и сейчас она считается де-факто стандартным кодом для моделирования водоносных горизонтов. Существует несколько активно разрабатываемых коммерческих и некоммерческих графических пользовательских интерфейсов для MODFLOW. MODFLOW был разработан в 1980-х годах с использованием модульной архитектуры. Это означает, что он обладает многими характеристиками, которые впоследствии стали известны как объектно-ориентированное программирование. Например, функциональные возможности (называемые «пакетами»), имитирующие оседание, озера или реки, могут быть легко включены или отключены, при этом время выполнения и требования к памяти для этих пакетов полностью исключаются. Если программист захочет внести изменения в MODFLOW, четкая организация кода упрощает этот процесс. Фактически, именно такие инновации и предполагались при разработке MODFLOW. Важно отметить, что модульность MODFLOW позволяет создавать различные пакеты, предназначенные для решения одной и той же задачи моделирования разными способами. Это позволяет проверить различные точки зрения на функционирование системных процессов. Такое тестирование является важной частью мультимодельного подхода или проверки альтернативных гипотез. Модели, такие как MODFLOW, делают этот вид тестирования более точным и контролируемым, поскольку остальные части программы остаются неизменными. Тесты становятся более надежными, поскольку они меньше подвержены неосознанному влиянию других численных и программных различий.

Версии

[[Изображение: modflow original. png|thumb|right|Обложка из книги McDonald & Harbaugh (1983). Программа была переписана на FORTRAN 77 и впервые выпущена 24 июля 1987 года. Текущая версия MODFLOW 88 – 2.6, выпущенная 20 сентября 1996 года. MODPATH был первоначально разработан в 1989 году для обработки результатов моделирования MODFLOW 88 в установившемся режиме с целью определения трехмерных траекторий движения частиц. Это нововведение оказалось незаменимым в области гидрогеологии загрязнения. Он по-прежнему используется в качестве постпроцессора в современных версиях MODFLOW. Отдельная программа MODFLOWP была разработана в 1992 году для оценки различных параметров, используемых в MODFLOW. Впоследствии эта программа была интегрирована в MODFLOW 2000.

MODFLOW-96 (включает в себя:

MODFLOW 96 (версия 3.0) была первоначально выпущена 3 декабря 1996 года и представляет собой доработанное и пересмотренное продолжение MODFLOW 88. Существует три финальных выпуска MODFLOW 96:
MODFLOW 96 (версия 3.3, 2 мая 2000 года)
MODFLOW 96h (версия 3.3h, 10 июля 2000 года) с пакетом HYDMOD
MODFLOWP (версия 3.2, 9 октября 1997 года), MODFLOW 96 с возможностью оценки параметров.

Несколько графических интерфейсов были впервые разработаны на основе кода MODFLOW 96.

MODFLOW-2000 - это

MODFLOW 2000 (версия 1.0; нумерация версий была перезапущена) была выпущена 20 июля 2000 года и объединила коды MODFLOWP и HYDMOD в основную программу, а также интегрировала возможности наблюдения, анализа чувствительности, оценки параметров и анализа неопределенности. Было включено множество новых пакетов и улучшений, включая новые решатели, пакеты для моделирования потока в руслах рек и насыщенного потока. Концепция внутренней структуры также изменилась по сравнению с предыдущими версиями, что позволило четко разграничить пакеты, процессы и модули. Эта версия была написана на смеси FORTRAN 77, Fortran 90, а один решатель – на языке C. MODFLOW 2000 также может быть скомпилирован для параллельных вычислений, что позволяет использовать несколько процессоров для повышения сложности модели и/или сокращения времени расчетов. Возможность параллелизации разработана для поддержки функций анализа чувствительности, оценки параметров и анализа неопределенности в MODFLOW 2000. Окончательная версия MODFLOW 2000 (или MF2K) – версия 1.19.01, выпущенная 25 марта 2010 года. Существует четыре связанных или ответвленных кода, основанных на MODFLOW 2000:
MF2K GWM или GWM 2000 (версия 1.1.4, 31 мая 2011 года, ответвление от mf2k 1.17.2) с возможностью управления подземными водами с использованием оптимизации;
MF2K FMP (версия 1.00, 19 мая 2006 года, основана на mf2k 1.15.03) с модулем моделирования сельскохозяйственных процессов;
MF2K GWT (версия 1.9.8, 28 октября 2008 года, основана на MF2K 1.17.02) – модель потока подземных вод и переноса растворенных веществ;
SEAWAT (версия 4.00.05, 19 октября 2012 года) – моделирование потока и переноса веществ при переменной плотности;
VSF (версия 1.01, 5 июля 2006 года) – моделирование потока в переменных насыщенных условиях.

MODFLOW-2005 (вводится в действие с 1 января 2005 года)

MODFLOW 2005 отличается от MODFLOW 2000 тем, что функции анализа чувствительности, оценки параметров и оценки неопределенности были исключены. Таким образом, поддержка этих функций теперь осуществляется с помощью отдельных программных модулей, разрабатываемых и поддерживаемых вне основной группы поддержки MODFLOW. Кроме того, код был реорганизован для поддержки нескольких моделей в рамках одного запуска MODFLOW, что необходимо для реализации функции LGR (Local Grid Refinement). MODFLOW 2005 написан преимущественно на Fortran 90 и C, при этом C используется для одного решателя. Текущая версия MODFLOW 2005 – версия 1.12.00, выпущенная 3 февраля 2017 года. К связанным или ответвленным кодам относятся:
MODFLOW CFP (версия 1.8.00, 23 февраля 2011 года) – модуль для моделирования потока в каналах, предназначенный для моделирования турбулентных или ламинарных условий потока грунтовых вод.
MODFLOW LGR (версия 2.0, 19 сентября 2013 года) – локальное уточнение сетки.
GWM 2005 (версия 1.4.2, 25 марта 2013 года) – модуль для управления грунтовыми водами с использованием оптимизации.
MF2005 FMP2 (версия 1.0.00, 28 октября 2009 года) – оценка динамически интегрированных компонентов спроса и предложения в орошаемом сельском хозяйстве в рамках моделирования потока поверхностных и грунтовых вод.
MODFLOW NWT (версия 1.1.3, 1 августа 2017 года) – метод Ньютона для решения задач, связанных с высыханием и повторным увлажнением при нелинейностях уравнения потока грунтовых вод в неупоренном слое.
MODFLOW OWHM (версия 1.00.12, 1 октября 2016 года) – комплексная гидрологическая модель One Water Hydrologic Flow Model (MODFLOW OWHM, MF OWHM или One Water), разработанная совместно USGS и Бюро мелиорации США, представляет собой объединение нескольких версий MODFLOW 2005 (NWT, LGR, FMP, SWR, SWI) в единую версию, содержит обновления и новые функции и позволяет моделировать потоки, зависящие от напора, потоки, зависящие от расхода, и потоки, зависящие от деформации, которые в совокупности влияют на комплексное использование водных ресурсов.
MODFLOW USG. Все перечисленные выше версии MODFLOW построены на так называемой структурированной сетке, то есть сетка состоит из прямоугольных блоков. Единственным исключением является функция LGR, которая позволяет встраивать локально уточненные сетки в структуру "родительской" сетки. Локальная область также состоит из прямоугольных блоков, но меньшего размера. Эксперименты с более гибкой структурой сетки привели к выпуску MODFLOW USG (версия 1.3.00, 1 декабря 2015 года), предназначенной для адаптации к широкому спектру вариаций сетки с использованием неструктурированных сеток. MODFLOW USG обладает схожими возможностями с MODFLOW 6, который обеспечивает возможности работы с сетями с промежуточным уровнем гибкости.

MODFLOW 6 (поток моды)

MODFLOW 6 (MF6), впервые выпущенный в 2017 году, является шестой основной версией MODFLOW, разработанной USGS. Этот релиз представляет собой переработку MODFLOW с использованием парадигмы объектно-ориентированного программирования на Fortran и предоставляет платформу, объединяющую возможности нескольких предыдущих версий MODFLOW 2005, включая MODFLOW NWT, MODFLOW USG и MODFLOW LGR. MODFLOW 6 поддерживает структурированные и неструктурированные сетки, обеспечивает полную поддержку формулировки Ньютона-Рафсона и включает в себя уникальный пакет Water Mover, позволяющий направлять потоки между продвинутыми пакетами, такими как пакеты маршрутизации потока, озеро, многоводоносные скважины и поток в ненасыщенной зоне. MODFLOW 6 также содержит модель переноса грунтовых вод (GWT), которая моделирует нестационарный трехмерный перенос растворенных веществ в структурированных и неструктурированных сетях, а также через расширенные пакеты потока и пакет Water Mover. Для MODFLOW 6 также доступен программный интерфейс прикладного программирования (API), позволяющий связывать программу с другими моделями или управлять ею с помощью популярных языков скриптов, таких как Python. Несмотря на то, что в текущей версии отсутствуют некоторые функции, поддерживаемые в MODFLOW 2005, большинство популярных возможностей предыдущих версий MODFLOW реализованы в MODFLOW 6. Текущая версия – 6.2.2, выпущенная 30 июля 2021 года.

Пакеты

Названия в этой таблице – это метки, используемые для включения и выключения функциональных возможностей MODFLOW через ключевой входной файл. Большинство возможностей имеют множество альтернатив или могут быть опущены, но те, что связаны с Базовым пакетом и его компонентами, всегда обязательны. Многие из представленных возможностей поддерживаются в более поздних версиях, хотя изменение сетки, реализованное в MODFLOW USG и MODFLOW 6, привело к тому, что обратная совместимость была скорее выборочной.

Название Полное название Версия внедрения Базовый пакет и его компоненты
BAS Базовый пакет оригинальная
OC Управление выводом оригинальная
DIS Дискретизация MODFLOW 2000 (1.0)
DISU Неструктурированная дискретизация MODFLOW USG (1.0)
DISV Дискретизация по вершинам MODFLOW 6 (1.00)
IC Начальные условия MODFLOW 6 (1.00)

Пакеты для моделирования потока грунтовых вод
BCF Пакет потока, центрированный в блоках оригинальная
CLN Процесс связанной линейной сети MODFLOW USG (1.0)
GNC Пакет коррекции призрачных узлов MODFLOW USG (1.0)
HFB Пакет горизонтального барьера потока
HUF Пакет потока гидрогеологического блока MODFLOW 2000 (1.1)
LPF Пакет потока по свойствам слоя MODFLOW 2000 (1.0)
NPF Потокопроводящие свойства узлов MODFLOW 6 (1.00)
SWI2 Пакет проникновения морской воды MODFLOW 2005 (1.11)
UPW Пакет взвешивания по восходящему потоку MODFLOW NWT (1.0)
UZF Пакет потока в ненасыщенной зоне MODFLOW 2005 (1.2)

Моделирование совместного использования и землепользования
FMP Процесс фермерского хозяйства MODFLOW FMP
SWO Операции с поверхностными водами MODFLOW OWHM (2.0)

Пакеты граничных условий с заданным напором
CHD Граничное условие с постоянным напором / Заданный напор, изменяющийся во времени MODFLOW 88
FHB Пакет граничных условий потока и напора MODFLOW 96 (3.2)

Пакеты граничных условий с заданным потоком
FHB Пакет граничных условий потока и напора MODFLOW 96 (3.2)
RCH Пакет подпитки оригинальная
WEL Пакет скважин оригинальная

Пакеты граничных условий с напором, зависящим от потока
DAF DAFLOW MODFLOW 96
DRN Пакет дренажа оригинальная
DRT Пакет возврата дренажа MODFLOW 2000 (1.1)
ETS Пакет сегментов эвапотранспирации MODFLOW 2000 (1.1)
EVT Пакет эвапотранспирации оригинальная
GHB Пакет общего напора оригинальная
LAK Пакет озера MODFLOW 2000 (1.1)
MAW Многоаквиферная скважина MODFLOW 6 (1.00)
MNW Многоузловая скважина с ограничением по депрессии MODFLOW 2000 (1.11)
RES Пакет водохранилища MODFLOW 88 (2.6)
RIP Пакет эвапотранспирации прибрежной зоны MODFLOW OWHM (1.0)
RIV Пакет реки оригинальная
SFR Пакет маршрутизации стока потока MODFLOW 2000 (1.14.00)
STR Пакет ручья MODFLOW 88
SWR Процесс маршрутизации поверхностных вод MODFLOW NWT 1.08
UZF Пакет потока в ненасыщенной зоне MODFLOW 2005 (1.2)

Решатели
DE4 Пакет прямого решателя MODFLOW 88 (2.5)
GMG Геометрический многосеточный решатель MODFLOW 2000 (1.15.00)
LMG Пакет связи AMG MODFLOW 2000 (1.4)
NWT Метод Ньютона-Рафсона MODFLOW NWT (1.0)
PCG Пакет сопряженного градиента с предварительной обработкой MODFLOW 88
PCGN Решатель сопряженного градиента с предварительной обработкой и улучшенным нелинейным контролем MODFLOW 2005 (1.9.0)
SIP Пакет явно неявной процедуры оригинальная
SMS Пакет разреженного матричного решателя MODFLOW USG (1.0)
SOR Пакет последовательной верхней релаксации по слоям оригинальная

Разные пакеты
GAG Гейдж MODFLOW 2000
HYD HYDMOD MODFLOW 2000 (1.1)
IBS Межпластовое хранение MODFLOW 88
KDEP Возможность зависимости гидравлической проводимости от глубины MODFLOW 2000 (1.12)
LMT Связь с MT3DMS MODFLOW 2000 (1.5)
LVDA Возможность переменной горизонтальной анизотропии по слоям модели MODFLOW 2000 (1.12)
MVR Водный переносчик MODFLOW 6 (1.00)
STO Хранение MODFLOW 6 (1.00)
SUB Оседание и уплотнение аквиферической системы MODFLOW 2000 (1.12)
SWT Пакет осадков и уплотнения аквиферической системы для водоносных горизонтов с уровнем воды MODFLOW 2000 (1.18)
CSUB Скелетное хранение, уплотнение и оседание MODFLOW 6 (6.1.0)
UTL Утилита оригинальная

Входные файлы процесса наблюдений
OBS Входной файл для всех наблюдений MODFLOW 2000
HOB Наблюдение за напором MODFLOW 2000
DROB Наблюдение за дренажем MODFLOW 2000
DTOB Наблюдение за возвратом дренажа MODFLOW 2000
RVOB Наблюдение за рекой MODFLOW 2000
GBOB Наблюдение за общим напором MODFLOW 2000
CHOB Наблюдение за постоянным потоком MODFLOW 2000
ADV Наблюдение за адвективным переносом MODFLOW 2000 (1.0)
STOB Наблюдение за потоком MODFLOW 2000

Устаревшие пакеты
GFD Общая конечно-разностная схема MODFLOW 88 to 96
TLK Переходная утечка MODFLOW 88 to 96

Графические пользовательские интерфейсы

Существует несколько графических интерфейсов для MODFLOW, которые часто включают скомпилированный код MODFLOW с изменениями. Эти программы облегчают ввод данных для создания моделей MODFLOW.

Некоммерческие интерфейсы

Некоммерческие версии MODFLOW бесплатны, однако их лицензирование обычно ограничивает использование в некоммерческих образовательных или исследовательских целях. ModelMuse – это графический пользовательский интерфейс, не зависящий от сетки, разработанный USGS для MODFLOW 6, MODPATH, SUTRA и PHAST версии 1.51. Ограничений по лицензированию нет. Исходный код включен. FloPy – это пакет Python для создания, запуска и постобработки моделей на основе MODFLOW. MODFLOW GUI – разработан USGS: он часто обновляется в соответствии с текущей разработкой MODFLOW в USGS. Поддерживает MODFLOW 96, MODFLOW 2000, MODFLOW 2005, MODPATH, ZONEBUDGET, GWT, MT3DMS, SEAWAT и GWM. Исходный код для MODFLOW GUI включен. Он зависит от Argus ONE: коммерческого интерфейса для построения универсальных моделей. Лицензионных ограничений, помимо ограничений Argus ONE, нет. PMWIN – "Processing MODFLOW" (для Windows) – мощное бесплатное программное обеспечение для обработки и визуализации MODFLOW, поставляемое вместе с учебным пособием; также доступно на традиционном китайском языке. Лицензия на эту версию ограничена некоммерческим использованием. mflab – mflab является интерфейсом MATLAB для MODFLOW. Пользователь создает и анализирует модели, составляя набор скриптов MATLAB. Это обеспечивает гибкие и эффективные рабочие процессы, позволяющие проводить значительную автоматизацию. iMOD – бесплатный интерфейс с открытым исходным кодом, разработанный Deltares. iMOD содержит ускоренную версию MODFLOW с быстрыми, гибкими и согласованными методами моделирования поддоменов. Облегчает крупномасштабное высокоточное моделирование MODFLOW и георедактирование недр. FREEWAT – это бесплатная платформа моделирования с открытым исходным кодом, интегрированная с QGIS, объединяющая MODFLOW (интегрированные версии MODFLOW – MODFLOW 2005 и MODFLOW OWHM) и следующие коды моделирования, связанные с MODFLOW: MT3DMS, MT3D USGS, SEAWAT, ZONE BUDGET, MODPATH, UCODE 2014. FREEWAT был разработан в рамках проекта H2020 FREEWAT (бесплатные и открытые программные инструменты для управления водными ресурсами), финансируемого Европейской комиссией в рамках конкурса WATER INNOVATION: BOOSTING ITS VALUE FOR EUROPE. Исходный код распространяется под лицензией GNU GENERAL PUBLIC LICENSE, версия 2, июнь 1991, вместе с полным набором руководств пользователя и учебных пособий.