Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на ФОРТРАН, как общего так и конкретного характера.
Постарайтесь дать как можно больше информации о возникшей проблеме -- это в конце концов в ваших же интересах чтобы вам помогли...

прежде чем просить помощи в задании
платное решение задач

ресурсы этого топика
ссылка на подборку ресурсов, собранных посетителями этого форума
 
то, чем мы решили поделиться
ссылка на страничку программ etc собственного изготовления, которыми любезно делятся наши форумчане


если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим
 
просьба к пишущим и отвечающим все большие листинги оформлять тегом more
и отключать графические смайлики при размещении фортран-кода

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 18:11 14-01-2007 | Исправлено: akaGM, 09:47 01-03-2020
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
есть ещё один старый способ шарить данные С-ФОР
struct на С <==> COMMON на фортране
но я бы сделал так:
определил данные там где они больше всего востребованы (счёт? -- значит, в фортране), а если в Си они требуются только для отрисовки, то и передавал бы их туда в качестве параметров п/п в вызовах, ничего страшного и никаой потери в скорости...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 13:53 12-03-2012
Vskazka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
На мой взгляд скалярных параметров передача мб сделана как угодно, только не забывайте о сишных и вортрановских проблемах в стеке. Матрица же.... В фортране нет матриц по существу - это просто строка для удобства пользователя , котороя может быть представлена в виде массива нужной размерностим. Ну по типу
real a(1000)  
это может быть  если передать как f(a) в процедуру
real a(10,100)
real a(10,10,10)
 таким образом, просто надо в сишнем модуле разобраться с этим линейным массивом, что как правило не слишком сложно, особливо все это всунешь в структуру
 

Всего записей: 382 | Зарегистр. 24-11-2003 | Отправлено: 14:58 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XPEHOMETP
Про способы хранения массивов знаю, это не проблема. И, кстати, массивы я резервирую по дедовскому методу: фиксированного размера. Компилятор Intel Fortran. Просто, как уже сказал, все объявления массивов в отдельном подключаемом модуле и не хотелось бы кардинально переделывать программу
 
akaGM
Цитата:
есть ещё один старый способ шарить данные С-ФОР  
struct на С <==> COMMON на фортране
Спасибо, вначале у меня были как раз COMMON-блоки, но я отказался от них в пользу модули

Цитата:
но я бы сделал так:  
определил данные там где они больше всего востребованы (счёт? -- значит, в фортране), а если в Си они требуются только для отрисовки, то и передавал бы их туда в качестве параметров п/п в вызовах, ничего страшного и никаой потери в скорости...
В C++ они должны быть инициализированы, насчет скорости я не беспокоюсь, просто не хотелось бы сильно переделывать программу
 
Vskazka
Цитата:
На мой взгляд скалярных параметров передача мб сделана как угодно, только не забывайте о сишных и вортрановских проблемах в стеке
То есть? Имеются в виду соглашения о вызовах? У меня со стеком лишь одна проблема была --- матрицы иногда не помещались, так я компилирую с ключом heap-arrays
 
Вкратце: как мне более-менее изящно объявить свои массивы (фиксированного размера) и переменные в главной C/C++ программе так, чтобы их разделять с FORTRAN-подпрограммами, где они объявлены в модуле. Неужели придется передавать через параметры?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 15:42 12-03-2012 | Исправлено: TeXpert, 15:42 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
Вкратце: как мне более-менее изящно объявить свои массивы (фиксированного размера) и переменные в главной C/C++ программе так, чтобы их разделять с FORTRAN-подпрограммами, где они объявлены в модуле.

 
.lib или .dll ?
 
ну по-простому...
С:
#define DIM 1000
extern double global_array[DIM];
 
ну и в ФОРе через
public :: global_array
или через
 
!DEC$ attributes dllexport :: global_array
для ДЛЛ
 

Цитата:
Компилятор Intel Fortran.

а С какой?
всё равно намучаешься...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 16:01 12-03-2012 | Исправлено: akaGM, 16:13 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Пока lib, но и про dll не помешает
Цитата:
ну и в ФОРе через  
public :: global_array
Вот тут небольшой вопрос: у меня FORTRAN-подпрограмма старого формата (в качестве болванки был взят исходник из примеров NAG), прокатит такой синтаксис? Смешивание старых и новых синтаксисов компилятор проглотит?  
Это объявление, я, естественно, загоню в модуль
 
Спасибо

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 16:20 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IF съест и не поморщится...
если что, надо будет только расширение сорса .f / .for <--> .f90 поменять...
 
Си-то у тебя какой?!

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 16:27 12-03-2012 | Исправлено: akaGM, 16:28 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
а С какой?  
 
Пока Microsoft C/C++, потом, когда времени побольше будет --- есть задумка переписать интерфейс на Qt (ведь счет можно вести как для Linux, так и для Windows), а как известно, FORTRAN и C/C++ в одной коробке у нас поставляется (и, кстати, тесно интегрируются с точки зрения межязыкового взаимодействия) практически одним поставщиком --- Intel. Правда, для этого придется еще и библиотеку Qt пересобрать с этим компилятором. Зато, потом удобств масса
Цитата:
...всё равно намучаешься...
Прошу раскрыть тему
 
Добавлено:
akaGM
Цитата:
IF съест и не поморщится...
Кстати, такое немного и пугает. По-хорошему, уж лучше компилятор ругнется, чем потом ошибки искать неизвестно где.  
Но что тут делать, это язык FORTRAN такой)
 
Кстати, насчет C: ничто мне не помешает собирать и на Intel C/C++: у меня Parallel Studio XE последний стоит, интегрированный в VS

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 16:28 12-03-2012 | Исправлено: TeXpert, 16:30 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
всё равно намучаешься...
Прошу раскрыть тему

 
собирать межъязыковые штуки на уровне obj/lib под виндой -- это сплошной и мучительный геморрой...
если ты это ни разу не делал, то попробуй соединить два hello world c возовом какого-нибудь синуса на фортране на своём VC и IF, -- занимательный квест с подключением нужных библиотек тебе гарантирован...
поэтому большинство останавливаются на уровне dll, что проще, "кроссязыковее" и менее трудозатратно...
единственной вменяемой спаркой в винде является IF & IC (а они отнюдь небесплатны) и то только после курения родных манов...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 17:06 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Цитата:
собирать межъязыковые штуки на уровне obj/lib под виндой -- это сплошной и мучительный геморрой...  
если ты это ни разу не делал, то попробуй соединить два hello world c возовом какого-нибудь синуса на фортране на своём VC и IF, -- занимательный квест с подключением нужных библиотек тебе гарантирован...
Ну почему так пессимистично?)
Как-то делал такое: пользовал матричные функции из Intel MKL на Fortran'е из программы, написанной на Intel C. Проекут тестировал как для Linux, так и для Windows. Правда, пришлось немного повозиться с подключением необходимых Lib'ов, но в документации все описано, да я и сам не новичок в системном программировании.
И, кстати, на сайте Intel есть страничка (автор, если не путаю, их сотрудник некто Кукушкин)) Intel® Math Kernel Library Link Line Advisor, весьма удобная
Цитата:
единственной вменяемой спаркой в винде является IF & IC
Ну да, об этом я и писал выше
Цитата:
а они отнюдь небесплатны
Для Linux вроде бесплатны, но и потом, мы с вами знаем выход)
Цитата:
...и то только после курения родных манов...
Ну, без этого, я считаю, никак...

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 17:28 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всё равно не вижу никакого преимущества .lib по сравнению с .dll под виндой, тем более что Qt -- существенно длл-ориетированное хозяйство...
 

Цитата:
Intel® Math Kernel Library Link Line Advisor, весьма удобная
для С надо использовать
mkl_intel_c.lib mkl_core.lib
а для фортрана
mkl_intel_c.lib mkl_core.lib
 
фигня какая-то...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 17:59 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Ну так ведь это удобно)
 
А насчет преимуществ --- не хочется таскать огроменные (например, NAG'овские) dll ради пары используемых функций

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 18:16 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
не хочется таскать огроменные (например, NAG'овские) dll ради пары используемых функций
а ты возьми сорсы НАГа сам_знаешь_где и выкуси то что тебе нужно...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 18:35 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Цитата:
а ты возьми сорсы НАГа сам_знаешь_где и выкуси то что тебе нужно...
Но ты сам знаешь, что с тех пор немало воды утекло --- есть как изменения/дополнения, так и добавления. Потом, эта "пара небольших программ" каждый раз может быть разной, так что возня с выковыриванием уже надоедает
 
Кстати, предлагаю тебе как хозяину топика вышеприведенную ссылку прибить куда-нибудь в шапку. Жалко, что такой подсказчик появился только относительно недавно

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 18:42 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
я ничего не узурпировал, сам прибивай...
 
тем более она там уже давно висит:
 
"основные опции компиляции для INTEL MKL"

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 18:45 12-03-2012 | Исправлено: akaGM, 18:47 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Цитата:
я ничего не узурпировал, сам прибивай...
Ну зачем так, я имел в виду, что кто ведет тему тот и лучше разбирается, а то иной раз так переделают, что концов не найдёшь. Да и в хтмл я не силён...
 
 
Добавлено:
akaGM
Цитата:
тем более она там уже давно висит
Точно. А шапка на вид у нас скромно выглядит (хотя богат при раскрытии), что со временем и забываешь об этом(
Виноват


----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 18:48 12-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
она свёрнута по просьбам коллег, что, наверное, есть правильно...
щас "поболдее" ссылку на ресурсы сделаю...
-----
нет, с {more} это не проходит...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 18:53 12-03-2012 | Исправлено: akaGM, 19:01 12-03-2012
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
Пока Microsoft C/C++, потом, когда времени побольше будет --- есть задумка переписать интерфейс на Qt

Для проверки кластерной работы фортрана из Intel Cluster Studio в Linux, тоже хотел это сделать пару месяцев назад - что-то не быстро оказалось - отложил это дело до свободности. Так и пользую Visual C++ из Microsoft Visual Studio (интерфейс, exe) в связке с фортраном из Intel Cluster Studio  (иногда Compaq) для Windows (расчет, dll): из VC++ в dll и обратно передаю скаляры, двумерные массивы (фиксированной размерности и динамические) и разнообразные структуры с динамическими двумерными массивами  - ноль проблем и очень удобно. Передача параметров через глобальные переменные как-то не очень нравится.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 19:19 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
То есть хотел использовать Qt?
Я считаю, это лучший выбор. Правда, как уже писал, придётся эту библиотеку пересобирать с компилятором Intel, причем под каждую платформу. Дело это небыстрое, уж пару часов как минимум займет, но дело того стоит, я думаю. Просто, как мы уже обсуждали, лучший вариант, когда связка Intel Fortran + Intel C/C++, и с компилятором Intel можно и Windows GUI проекты собирать
 
А чем тебя не устроил Parallel Studio XE + кластерные библиотеки, вроде же были жалобы на "неокончательность" Intel Cluster Studio?


----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 19:27 12-03-2012
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
То есть хотел использовать Qt?
Да, именно хотел "модифицировать" код интерфеса из VC++ в Qt - оказалось много надо редактировать.

Цитата:
А чем тебя не устроил Parallel Studio XE + кластерные библиотеки
Такого не пробовал. Но это, похоже, и есть кластерная студия? Меня интересовала работа coarrays на кластере.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 19:39 12-03-2012
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
Цитата:
Но это, похоже, и есть кластерная студия? Меня интересовала работа coarrays на кластере
Если честно, не в курсе. Просто, обычно отдельные компоненты можно доставлять


----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 19:44 12-03-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru