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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 330

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

akaGM

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

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

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


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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tinna07
Вы не правильно понимаете, как работает эта подпрограмма. Посмотрите примеры, и описание ее
Например, здесь
http://www.boulder.vni.com/products/imsl/documentation/fort06/math/NetHelp/default.htm?turl=qdagi.htm
Но, основное - у вас в Головной программе нет common, а он нужен, дабы передать в функцию параметры. То есть Вам нужен этот  

Цитата:
common/integrand/TD,v,y,z,RR,pi,x,t0,t  

Добавить и в головную программу

Всего записей: 382 | Зарегистр. 24-11-2003 | Отправлено: 13:50 22-07-2010 | Исправлено: Vskazka, 14:01 22-07-2010
tinna07



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
простите, в начале опечатка -  
 
"нужно вычислить значение функции на определенном интервале по х [xs,xf]"
 
((( F - это то, что под знаком интеграла )))
 
Добавлено:
простите, в начале опечатка -  
 
"нужно вычислить значение функции на определенном интервале по х [xs,xf]"
 
((( F - это то, что под знаком интеграла )))
 
Добавлено:
сделала еще один common.  
а все равно при расчете F ни один параметры из основной программы не видны  ...(

Всего записей: 5 | Зарегистр. 22-07-2010 | Отправлено: 16:18 22-07-2010
Vskazka

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

Цитата:
((( F - это то, что под знаком интеграла )))  
 
Я не понял - в чем опечатка. Ваша цель вычислить функцию,  
g(x)=\int_0^\infty (F(t1,x) dt1 (в теховской нотациии) при разных значениях x, как я понял
 
Так вот, сама процедура  DQDAGI обеспечивает Вам вычисление интеграла. Но значение x надо передавать в процедуру-функцию F через common/integrand/TD,v,y,z,RR,pi,x,t0,t   Можно еще через модули, но это сами. Поэтому в головную часть программы должна быть включена сие. Обеспечте только, чтобы эти переменные у Вас были бы везде описаны, как real*8  . У Вас этого нет и внутри тела функции F  

Всего записей: 382 | Зарегистр. 24-11-2003 | Отправлено: 18:37 22-07-2010 | Исправлено: Vskazka, 18:38 22-07-2010
tinna07



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vskazka
спасибо огромное!!!! вы чудо! @->- @->- @->- @->- @->-
вы даже не представляете, как мне помогли !

Всего записей: 5 | Зарегистр. 22-07-2010 | Отправлено: 19:05 22-07-2010
Lapochka ili Chai



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, надо перейти в ФОРТРАНе от фиксированного формата к свободному формату, но вот такая проблема: в свободном формате буква продолжения строки ставится в конце старой строки, а не в 6-й позиции новой строки.  
 
Я попробовал заменить это дело регулярными выражениями:
заменяемое:
Код:
($)(^)(     )(\+)

заменяющее:
Код:
 \&\r\n \2

но это оказалось плохим решением: часто попадаются строки продолжения, идущие после строк комментариев! и не одной-двух строк, а зачастую страниц таких строк!
 
Помогите, пожалуйста, составить регулярное выражение для замены символа продолжения и в таком случае, а?
 
 
Да, строка комментариев ВСЕГДА  
 -- или является пустой строкой;
 -- или начинается с ! в 1-й позиции;
 -- или ! отделено от 1-й позиции только пробелами.
 
 
А что делать, если перед продолжающей строкой стоит рабочая строка, в конце которой внедрён комментарий (начинающийся с !), даже и ума не приложу. Может быть, у меня и нет таких зверств.... пока не знаю, сейчас буду изучать тексты библиотек...
 
 
Замену веду в Multi-Edit, стиль регулярных выражений -- "Unix Regular Expressions".

Всего записей: 847 | Зарегистр. 27-11-2003 | Отправлено: 07:33 26-07-2010 | Исправлено: Lapochka ili Chai, 07:42 26-07-2010
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lapochka ili Chai
 
Есть несколько утилит для конвертации из фиксированного в свободный формат, можно, например, ссылки посмотреть здесь:
 
Ссылка

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 12:05 26-07-2010
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не вижу смысла в _формальной_ конвертации Ф77-->Ф95 стиля исходников...
всё ведь и так работает, правда? а любой компилятор 95-ого отлично компилит старый формат, главное следить за расширением *.f, *.for
если же необходим новый синтаксис, то кроме как ручками никто не сделает это преобразование корректным на 100%...
 
ХО

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 14:20 26-07-2010 | Исправлено: akaGM, 18:14 26-07-2010
Lapochka ili Chai



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Верно ли, что по умолчанию (если нет директив -fixed или -free для компиляции) файл *.f предназначается для ФОРТРАНа-90, а *.for -- для ФОРТРАНА-77?
А ещё встречается расширение f90. К чему оно относится, не спрашиваю, но всё равно, неясно, какие расширения установлены по умолчанию "в большинстве компиляторов", если так можно выразиться.

Всего записей: 847 | Зарегистр. 27-11-2003 | Отправлено: 06:22 27-07-2010 | Исправлено: Lapochka ili Chai, 11:52 27-07-2010
terminat0r



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

Цитата:
Верно ли, что по умолчанию (если нет директив -fixed или -free для компиляции) файл *.f предназначается для ФОРТРАНа-90, а *.for -- для ФОРТРАНА-77?  

оба - для фиксированого формата , но стандарт может быть как 77 так и 90/95
Eще есть ftn.

Цитата:
А ещё встречается расширение f90.

это расширение для free format по умолчанию. Стандарт 90 и выше.
еще есть (или будут) f95 f03 f08
 
А вообще, это зависит от компилятора. Некоторые не понимают например f95

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 13:45 27-07-2010 | Исправлено: terminat0r, 13:53 27-07-2010
Lapochka ili Chai



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
Спасибо Вам большое за чёткую информацию -- а то я перерыл массу литературы, везде отрывочные противоречивые сведения. Теперь буду ориентироваться на то, что Вы сказали.

Всего записей: 847 | Зарегистр. 27-11-2003 | Отправлено: 05:57 28-07-2010
Lapochka ili Chai



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, а есть ли компилятор ФОРТРАНА с MPI для персонального компьютера с многоядерным процессором?
Желательно 64-битный, ведь сейчас все компьютеры такие.
Что посоветуете?

Всего записей: 847 | Зарегистр. 27-11-2003 | Отправлено: 09:55 28-07-2010
plazmon



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

Цитата:
Народ, а есть ли компилятор ФОРТРАНА с MPI для персонального компьютера с многоядерным процессором?

Intel Cluster Tools?
А вообще я себе слабо представляю MPI на одном компьюторе. Работать, конечно будет, но толку - одни накладные расходы.

Всего записей: 107 | Зарегистр. 29-05-2007 | Отправлено: 15:01 28-07-2010 | Исправлено: plazmon, 15:04 28-07-2010
Lapochka ili Chai



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
plazmon
Ну, тут возможны как минимум 2 постановки задачи для MPI на многоядерном IBM-совместимом компе:
1) если MPI там работает эффективно, то можно решать задачи малого или среднего калибра;
2) если MPI там работает неэффективно, то можно отлаживать и тестировать задачи любого калибра перед запуском на мэйнфрейме -- все мы знаем, что постоянный доступ к мэйнфрейму это дорогое удовольствие. Да и в удалённом варианте приятнее работать, чем в душном городе.
 
 
Добавлено:
plazmon
Intel Cluster Tools -- судя по названию (да и по описанию), это относится к кластерам, а кластер -- это несколько компьютеров. Мне же интересней, что же я могу сделать на своём собственном многоядероном компьютере. Если я приду в вычислительный центр МГУ или Академии наук (например), то там уже, конечно, есть какие-то системы распараллеливания, и мне не надо об этом думать. Там всё уже сделано до нас (С).  
 
А что бы такого мне сделать на своём компе, вот что я хотел бы понять.
 
Да, кстати, вот ещё интересный вопрос:
 -- а что насчёт автоматического распараллеливания? Существует такое в компиляторах ФОРТРАНа?
 
Это уже совсем другой вопрос, относящийся к совершенно другим программам. Но вопрос тоже не праздный.

Всего записей: 847 | Зарегистр. 27-11-2003 | Отправлено: 06:36 29-07-2010
karakurt2



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

Цитата:
а что насчёт автоматического распараллеливания? Существует такое в компиляторах ФОРТРАНа?  
 

openmp?

Всего записей: 733 | Зарегистр. 06-12-2003 | Отправлено: 14:13 29-07-2010
plazmon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lapochka ili Chai
MPI как раз и используется на кластерах (MPI - message passing interface), где много компьютеров решают одну задачу, обмениваясь друг с другом сообщениями. Большинство современых высокопроизводительных компьютеров построено как кластер и использует тот или иной MPI. Так что если ты прийдешь в ВЦ МГУ или Академии тебе надо писать программу под MPI, и ничего та до нас не зделано (если не считаь уже готовые пакеты, которые запускаются по MPI)
 
Если же ты хочешь считать паралельно на сввоем компьютере, то тебе необходимо самому заниматься распаралеливанием (под Windows - multithreading, под Linux'ом - fork?)
И как правильно заметил товарищь karakurt2, openMP может помочь в распаралеивании кода.
 

Всего записей: 107 | Зарегистр. 29-05-2007 | Отправлено: 15:39 29-07-2010
FuzzyLogic



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

Цитата:
 А вообще я себе слабо представляю MPI на одном компьюторе. Работать, конечно будет, но толку - одни накладные расходы.  

При довольно интенсивных вычислениях накладные расходы -ерунда. Есть случаи в которых MPI код работает быстрее чем OpenMP на одном пк.
 
Lapochka ili Chai

Цитата:
 -- а что насчёт автоматического распараллеливания? Существует такое в компиляторах ФОРТРАНа?

ifort -parallel

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 21:28 29-07-2010
pir0texnik2



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

Цитата:
При довольно интенсивных вычислениях накладные расходы -ерунда. Есть случаи в которых MPI код работает быстрее чем OpenMP на одном пк.

а что это за случаи?

Всего записей: 173 | Зарегистр. 27-02-2008 | Отправлено: 03:08 30-07-2010
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pir0texnik2
http://www.hpccommunity.org/f55/multi-core-strategies-mpi-openmp-702/
(смотреть таблицу  )
+
http://fuzzeh.com/Files/ompi.pdf
(по сути вывод статьи что на одном компьютере практически идентичны)

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 08:01 30-07-2010
Lapochka ili Chai



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

Цитата:
MPI как раз и используется на кластерах (MPI - message passing interface), где много компьютеров решают одну задачу, обмениваясь друг с другом сообщениями. Большинство современых высокопроизводительных компьютеров построено как кластер и использует тот или иной MPI. Так что если ты прийдешь в ВЦ МГУ или Академии тебе надо писать программу под MPI, и ничего та до нас не зделано (если не считаь уже готовые пакеты, которые запускаются по MPI)  

 
Ну, с написанием программы на MPI у меня как раз всё нормально.  
 
Хотелось бы ещё иметь компилятор, который я мог бы запустить на моей собственной однопроцессорной, но многоядерной машине, чтобы протестировать свою MPI-программу. Причём даже не требуется каких-то особо больших скоростей или "наваров" с многопроцессорности. Нужно просто протестировать -- идёт? не идёт? результаты корректные?
 
Вот и всё.
 
Добавлено:
OpenMP не предлагать.
MPI уже выбрано и зафиксировано как основной инструмент распараллеливания.
 
Добавлено:
FuzzyLogic

Цитата:
ifort -parallel  

это автоматическое распараллеливание циклов -- так написано в инструкции к Intel Fortran'у. Не знаю, но может за этим уточнением скрывается какой-то подвох? Может, распараллеливание бывает не только в циклах? Или, что не во всех циклах оно нужно? И что будет, если циклы вложенные -- параллельщик запутается?
 
Ну, то есть хотелось бы услышать голоса тех, кто пробовал эту опцию, и знает, что она действительно работает (а не просто присутствует в списке опций). Я почему так спрашиваю: я-то сам никогда ею не пользовался.

Всего записей: 847 | Зарегистр. 27-11-2003 | Отправлено: 15:20 30-07-2010
plazmon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lapochka ili Chai
 
Тогда тебе  нужна реализация MPI (например OpenMPI). Т.к. MPI это по сути библиотека и мнекая оболочка для запуска программ

Всего записей: 107 | Зарегистр. 29-05-2007 | Отправлено: 15:59 30-07-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 330

Компьютерный форум 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