You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+5-5
Original file line number
Diff line number
Diff line change
@@ -7,10 +7,10 @@
7
7
## Зачем
8
8
9
9
В проекте [CATS’ PDEs](https://github.com/CATSPDEs) часто приходится работать с большими разреженными матрицами — матрицами, большинство элементов которых равно нулю и не хранится.
10
-
Существует, вообще говоря, довольно много<supid="fnb1">[1](#fn1)</sup> форматов хранения для таких матриц.
10
+
Существует, вообще говоря, довольно много<supid="fnb1">[1](#fn1)</sup> форматов хранения для таких матриц.
11
11
12
12
CSC–формат (*Comressed Sparse Column*, разреженно–столбцовый) является наиболее гибким и популярным в МКЭ форматом.
13
-
На нём же и основан не менее популярный стандарт хранения матриц в виде ASCII–текста **Harwell–Boeing**<supid="fnb2">[2](#fn2)</sup> (да-да, те самые боинги).
13
+
На нём же и основан не менее популярный стандарт хранения матриц в виде ASCII–текста **Harwell–Boeing**<supid="fnb2">[2](#fn2)</sup> (да-да, те самые боинги).
14
14
15
15
Матрицы в HB–формате нынешний софт понимает и любит. Например, та же `Mathematica`[умеет](https://reference.wolfram.com/language/ref/format/HarwellBoeing.html) в импорт/экспорт HB–матриц
16
16
в свой [SparseArray](http://reference.wolfram.com/language/ref/SparseArray.html]), который, кстати, [использует](http://reference.wolfram.com/language/LibraryLink/tutorial/InteractionWithMathematica.html#918619650) CSR–формат (*Comressed Sparse Row*, разреженно–строчный) андерхуд.
Вызывать будем подпрограммы `FORTRAN`’а из `C++`–приложения. Точка входа в [`sln/C++ Sources/user.cpp`](sln/C++ Sources/user.cpp), подпрограммы — в [`sln/FORTRAN Static Lib/add.f90`](sln/FORTRAN Static Lib/add.f90) и [`″/square.f90`](sln/FORTRAN Static Lib/square.f90).
65
+
Вызывать будем подпрограммы `FORTRAN`’а из `C++`–приложения. Точка входа в `sln/C++ Sources/user.cpp`, подпрограммы — в `sln/FORTRAN Static Lib/add.f90` и `″/square.f90`.
66
66
67
67
Есть два пути: создать статическую (в Windows обычно имеет расширение **.lib**) или динамическую (shared) библиотеку (″ **.dll**). По своей природе статическая библиотека суть объектный файл (**.o**, **.obj**) и подключается к приложению во время линковки, динамическая — исполняемый файл (**.exe**), подключается в рантайме.
Головной модуль расположен в **C++ Sources**, поэтому необходимо, чтобы компилировался именно этот проект: `Right Click — Set as SrartUp Project`.
110
110
111
-
Для настройки (почти) достаточно прочитать [эту](https://software.intel.com/en-us/node/525352) и [эту](https://software.intel.com/en-us/articles/configuring-visual-studio-for-mixed-language-applications) странички документации и посмотреть примеры проектов, дефолтно расположенных примерно в `C:\Program Files*\IntelSWTools\samples*\en\compiler_f\psxe\MixedLanguage`. Однако имеют место небольшие опечатки и недосказанности, поэтому я лучше здесь об этом напишу.
111
+
Для настройки (почти) достаточно прочитать [эту](https://software.intel.com/en-us/node/525352) и [эту](https://software.intel.com/en-us/articles/configuring-visual-studio-for-mixed-language-applications) странички документации и посмотреть примеры проектов, дефолтно расположенных примерно в `C:\Program Files*\IntelSWTools\samples*\en\compiler_f\psxe\MixedLanguage`. Однако имеют место небольшие опечатки и недосказанности, поэтому я лучше здесь об этом напишу.
112
112
113
113
По какой-то причине Visual Fortran–проекты не переключаются на x64–платформу автоматически (естественно, если вы хотите делать 64-битные приложения, вы скачали эту версию ifort). Чтобы это исправить, нажимаем на селектбокс платформ Win32 / x64: `Configuration Manager… — Platform — (напротив “FORTRAN Static Lib”) <New…> — x64 — Copy settings from: <Empty>`.
0 commit comments