Глобальное моделирование геофизических процессов на персональной ЭВМ (Комплекс GLOMO) / Э. В. Барболина и др. ; РАН, Кол. науч. центр, Поляр. геофиз. ин-т. - Препр. - Апатиты : [б. и.], 1993. - 28 с. : ил.
текста программы всех неиспользуемых в этом варианте подпрограмм) после такой прямой трансляции требовала более 1 Мбайт памяти. Стандартным путем решения такой проблемы является многократное использование одних и тех же участков памяти для последовательной загрузки различных одновременно не используемых кусков программы. Для кодов команд это обычно достигается оверлеизацией. Для данных сущест вуют различные способы: если сохранение их значений в те периоды, когда они не используются, не требуется (т.е. при новом обращении они будут заново проинициализированы), то в классическом Фортране-IV при менялись операторы EQUIVALENCE или же COMMON-блоки, а в более совре менных языках, например, в Фортране-77, динамическое распределение памяти. Если же значения данных необходимо сохранять, то должна быть организована специальная процедура свопинга на диск, после чего зада ча сведется к первому случаю. При реализации нашей модели значения данных сохранять не требо валось, как уже отмечалось. Казалось бы, наиболее естественно пойти по описанному выше пути. Но на нем возникают новые сложности. Исполь зование EQUIVALENCE и COMMON-блоков приводит к тому, что приходится скрупулезно подсчитывать размеры этих областей в разных модулях и вы равнивать их введением фиктивных переменных. К тому же, для наиболь шей экономии места в каждом блоке в эти области желательно включать все внутренние переменные подпрогоамм различных уровней данного бло ка, имеющие дальнюю адресацию, то есть все, проходящие через списки параметров нижележащих подпрограмм. Учет всего этого крайне трудое мок, и достижение оптимального результата практически невозможно. Применение динамической памяти несколько проще, при этом не требуется тщательно выравнивать размеры областей данных в различных блоках. Од нако, оба этих пути, и особенно второй, приводят к изменениям, хоть и небольшим, практически в каждом модуле программы и нарушают совмести мость о исходной ЕС-версией. Поэтому нами был избран другой путь. 2.3. Декомпозиция программы Многократное использование памяти было перенесено на уровень DOS, через создание нескольких последовательно работающих исполняемых ЕХЕ-модулей - самостоятельных Фортран-программ. Управляет порядком их работы специальная головная программа, вызывающая их на исполнение через обращение к функциям DOS и сама при атом резидентно остающаяся в памяти. Таким образом, вместо единой программ был создан пакет nporpaiei. Успеху этого во многом способствовала описанная выше четкая структура исходной программ)." ее иерархичность, выделенность функцио S
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz