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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
и отключать графические смайлики при размещении фортран-кода

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
Цитата:
пока не понял как организовать доступ на соседние компы и как в этом случае будет работать OpenMP. Кто-нибудь знает?
Вопросы сняты.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 08:30 28-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для тех, кто интересуется возможностью иcпользования coarrays в интеловском фортране - краткий итог проявления к ним интереса (на сегодня):
1) технология coarrays - это обёртка для MPI (примерно как MFC для Win32 API), т.е. все процедуры связанные с передачей-приёмом сообщений, присущие MPI, встроены в фортрановский компилятор;
2) использование coarrays с опцией "shared" не требует дополнительных действий по отношению к ОС;
3) использование coarrays с опцией "distributed" (что наиболее интересно) возможно при конфигурировании компьютеров в кластер и требуется лицензия для Intel® Cluster Toolkit;
4) использование coarrays вместе с MPI (в явном виде) или OpenMP не поддерживается.
 
Если что-то важное упустил или что-то не соответствует сегодняшней действительности, прошу поправить.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 20:06 28-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
+1
 
можешь даже как резюме в шапку вставить под заголовком "параллельное программирование"...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 20:45 28-10-2011
bearjrgm



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akaGM
 
f2c ругается на  
 
      INTEGER ANPAR$,ANRA$,ANIN$,ANIV$
      PARAMETER(ANPAR$=1)
      PARAMETER(ANRA$=2)
      PARAMETER(ANIN$=3)
      PARAMETER(ANIV$=4)

Всего записей: 783 | Зарегистр. 03-07-2005 | Отправлено: 23:06 28-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bearjrgm
а что конкретно-то?
как ты сам понимаешь, это одни из самых примитивных вещей фортрана, проще только  конструкция i = 1
поэтому кроме как посоветовать попробовать убрать $$, я не могу...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 23:41 28-10-2011 | Исправлено: akaGM, 01:31 29-10-2011
bearjrgm



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akaGM
Синтаксическая ошибка
Подробнее...
Сам файл
Подробнее...

Всего записей: 783 | Зарегистр. 03-07-2005 | Отправлено: 01:55 30-10-2011 | Исправлено: bearjrgm, 02:00 30-10-2011
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bearjrgm
Я так понимаю, f2c считает $ символом переноса длинных строк и ему не нравится, что он используется в именах переменных.
Кстати не помню, можно ли в идентификаторах С использовать $.
Может и в этом проблема.
Для решения видимо придётся переименовать все такие переменные.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 06:32 30-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bearjrgm
да, дело в долларе растёт, гад в идентификаторе...
придётся тебе во всех файлах заменить '$', например, на '_' :
     INTEGER H2_, O2_
      PARAMETER(H2_ = 1)
      PARAMETER(O2_ = 1)

 
 
KChernov
в 6-ой позиции (продолжение) может стоять _любой_ символ...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 09:19 30-10-2011 | Исправлено: akaGM, 09:21 30-10-2011
bearjrgm



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akaGM
KChernov
Спасибо, в принципе g95 это все компилит, но f2c не понимает.
Буду пробовать.

Всего записей: 783 | Зарегистр. 03-07-2005 | Отправлено: 18:58 30-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bearjrgm
да всё понятно, просто f2c создавался тогда, когда $ нельзя было использовать в именах...
правда лично для меня пару мегабайт исходников F --> C легче руками конвертнуть, чем получить "неживой" и, вообще говоря, неоптимальный код...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 19:39 30-10-2011
bearjrgm



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akaGM
Согласен на 100 процентов, но это не моя задача, меня попросили помочь решить задачу именно в такой постановке спасибо за помощь, там вообще в коде уже куски не 77 фортрана , так что похоже задача умрет на сталии постановки Еще раз спасибо.

Всего записей: 783 | Зарегистр. 03-07-2005 | Отправлено: 23:33 30-10-2011
KChernov



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

Цитата:
Согласен на 100 процентов, но это не моя задача, меня попросили помочь решить задачу именно в такой постановке

Так что мешает заменить все переменные?
Регэкспами по-идее все меняется на раз.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 00:14 31-10-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сёрч_и_репласе тоже неплохо...
 
bearjrgm
кстати, не бойся менять целиком по всему файлу, т.к. если '_' заменит "доллары продолжения" в
Код:
INTEGER TIM$,TIP$,TIH$,TIE$,TIW$,TIQ$,TIT$,TIV$,TIS$,TIX$,TIU$,
     $     TIY$,
     $     TIX_J$,TIZC$,TIN$,TIZA$,TIY_J$,TIZD$,TIM1$,TIM2$,TIU1$,TIU2$
     $     ,TIT1$,TIT2$,TIH1$,TIH2$ ,TIS1$,TIS2$,TIX1$,TIX2$,TIP1$,TIP2$
     $     ,TIUS$,TITS$,TIDZDDT$ ,TIDM1DT$,TIDM2DT$,TIDU1DT$,TIDU2DT$
     $     ,TIDUSDT$
      PARAMETER(TIM$=1)
      PARAMETER(TIP$=2)
      PARAMETER(TIH$=3)
то ничего страшного не произойдёт...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 00:22 31-10-2011
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати да, можно попробовать, может и действительно получится.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 08:36 31-10-2011
Igorr

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по MPI (Intel MPI Library 4.0).
 
Есть кластер из двух компов (оба 4-х ядерные, соединены через роутер): Head Node (Comp1, OS: WS2008R2, ) и Workstation Node (Comp2, OS: W7x64).
С MPI библиотекой идёт тестовый пример test.f90:
Код:
        program main
        use mpi
        implicit none
 
        integer i, size, rank, namelen, ierr
        character (len=MPI_MAX_PROCESSOR_NAME) :: name
        integer stat(MPI_STATUS_SIZE)
 
        call MPI_INIT (ierr)
 
        call MPI_COMM_SIZE (MPI_COMM_WORLD, size, ierr)
        call MPI_COMM_RANK (MPI_COMM_WORLD, rank, ierr)
        call MPI_GET_PROCESSOR_NAME (name, namelen, ierr)
 
        if (rank.eq.0) then
 
            print *, 'Hello world: rank ', rank, ' of ', size, ' running on ', name
 
            do i = 1, size - 1
                call MPI_RECV (rank, 1, MPI_INTEGER, i, 1, MPI_COMM_WORLD, stat, ierr)
                call MPI_RECV (size, 1, MPI_INTEGER, i, 1, MPI_COMM_WORLD, stat, ierr)
                call MPI_RECV (namelen, 1, MPI_INTEGER, i, 1, MPI_COMM_WORLD, stat, ierr)
                call MPI_RECV (name, namelen, MPI_CHARACTER, i, 1, MPI_COMM_WORLD, stat, ierr)
                print *, 'Hello world: rank ', rank, ' of ', size, ' running on ', name
            enddo
 
        else
 
            call MPI_SEND (rank, 1, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, ierr)
            call MPI_SEND (size, 1, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, ierr)
            call MPI_SEND (namelen, 1, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, ierr)
            call MPI_SEND (name, namelen, MPI_CHARACTER, 0, 1, MPI_COMM_WORLD, ierr)
 
        endif
 
        call MPI_FINALIZE (ierr)
 
        end

Получил из него test.exe.
1) Запускаю в командной строке
Код:
mpiexec -hosts 1 Comp1 4 \\Comp1\CcpSpoolDir\Test\Test\x64\Debug\test.exe
Получаю Output1:
Код:
Hello word: rank  0  of  4  running on Comp1.domain.my  
Hello word: rank  1  of  4  running on Comp1.domain.my  
Hello word: rank  2  of  4  running on Comp1.domain.my  
Hello word: rank  3  of  4  running on Comp1.domain.my
 
2) Запускаю команду
Код:
mpiexec -hosts 1 Comp2 4 \\Comp1\CcpSpoolDir\Test\Test\x64\Debug\test.exe
Получаю Output2:
Код:
Hello word: rank  0  of  4  running on Comp2.domain.my  
Hello word: rank  1  of  4  running on Comp2.domain.my  
Hello word: rank  2  of  4  running on Comp2.domain.my  
Hello word: rank  3  of  4  running on Comp2.domain.my
 
3) Запускаю команду
Код:
mpiexec -hosts 2 Comp1 4 Comp2 4 \\Comp1\CcpSpoolDir\Test\Test\x64\Debug\test.exe
Ничего не получаю - процессы (по ~20% CPU) виснут как на Comp1 (4 процесса) так и на Comp2 (4 процесса).
Опции: "-machinefile \\Comp1\CcpSpoolDir\machines.Windows" (machines.Windows с соответствующим содержанием /Comp1 и Comp2/), "-[g]env I_MPI_FABRICS shm:tcp" и "-wdir \\Comp1\CcpSpoolDir\Test\Test\x64\Debug" не помогают.
Опция -verbose показывет в прокрутке много строк, но потом останавливается на
Код:
......\SMPDU_Sock_wait
и ни с места. При нажатии Ctrl^C  или закрытии окна командной строки процессы вырубаются.
 
Как заставить прогу правильно работать на двух компьютерах одновременно?
 
Добавление
При использовании опции "-genv I_MPI_DYNAMIC_CONNECTION 1" получаю только Output1, с компа Comp2 - ничего. Процессы висят на обоих компах.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 06:50 13-11-2011 | Исправлено: Igorr, 21:16 14-11-2011
warever

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток. Заранее прошу прощения, если обратился не в тот топик, но не   могли бы вы ответить на пару вопросов. Дело в том, что возникла необходимость в изучении данного языка для решения численной задачи, а я, так сказать, в программировании только начинаю делать свои первые шаги. Правильно ли я понимаю, что FTN95 Express, который бесплатный от Silverfrost, для начала мне хватит за глаза и за уши? Из литературы нашёл следующее:
1) Рыжиков Ю.И. "Современный Фортран. Учебник"
2) Сергей Немнюгин, Ольга Стесик "Современный Фортран. Самоучитель"
3) Артемов И.Л.  "Fortran: основы программирования"
Программист из меня пока никакой, до этого для решения задач пользовался математическими пакетами, в верном ли направлении я двигаюсь, или есть какая-то более дружелюбная к новичкам литература и среда программирования?

Всего записей: 3 | Зарегистр. 16-11-2011 | Отправлено: 21:15 16-11-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я бы посоветовал упор сделать на сам язык, а не на среды...
как можно быстрее перейти от "hello world" к практическим задачам
а среды сейчас, имхо, переусложены, так что на их изучение потратишь не меньше времени чем на сам язык...
наверняка Сильверфростовый пакет тебя удовлетворит, всё равно потом перейдёшь на интел в связке с Виз.Студией, ну а отсюда уже и до консоли с внешним редактором недалеко :)
 
а книги ты можешь посмотреть в нашей шапке:
http://forum.ru-board.com/topic.cgi?forum=33&topic=7860&start=0&limit=1&m=2#1

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 21:27 16-11-2011
KChernov



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

Цитата:
возникла необходимость в изучении данного языка для решения численной задачи

Цитата:
до этого для решения задач пользовался математическими пакетами

Цитата:
Программист из меня пока никакой

А так ли оно вообще надо?
На какие задачи не хватает матпакетов (какие кстати знакомы?)?

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 21:52 16-11-2011 | Исправлено: KChernov, 21:53 16-11-2011
warever

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
Ну во-первых, присутствует неподдельное желание научиться программировать, а во-вторых, это мне нужно для диплома. Раньше для решения задач использовал Mapple, теперь им не обойтись, задача там непростая, и для того, чтобы алгоритм написать, мне посоветовали "пересесть" на фортран :)  
 
akaGM
Спасибо за совет :)

Всего записей: 3 | Зарегистр. 16-11-2011 | Отправлено: 22:49 16-11-2011 | Исправлено: warever, 22:54 16-11-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorr
SMPDU_Sock_wait()
 
NOTES:
For fatal errors, the state of the connection progresses directly to the
failed state and the connection is marked inactive in
the poll array.  Under normal conditions, the fatal error should result in
the termination of the process; but, if that
doesn't happen, we try to leave the implementation in a somewhat sane state.
 
Похоже что-то с самой impi не так и судя по гуглу это специфика виндовса. А у интела обновления нету или спросить их на этот счет?
 

Цитата:
Как заставить прогу правильно работать на двух компьютерах одновременно?  

Я конечно не знаю, но я бы взял дистро линукса с последним mpich2 или openmpi  и с помощью "какой-то матери" (C)  все это настроил за 2-3 часа( ну или за ночь)
 
2all
добавил в шапку gtk-fortran интерфейс к кросс-платформенным GTK2 и GTK3  библиотекам. Выглядит очень даже ничего.
 
 
warever

Цитата:
задача там непростая, и для того, чтобы алгоритм написать, мне посоветовали "пересесть" на фортран

Для написания прототипа алгоритма я бы сначала использовал как раз  мэпл, математику или матлаб. Обнаружатся все подводные камни реализации, узнаете, какие дополнительные мат библиотеки надо достать и т.д. А тогда уже при работающей мат модели переписать на фортран не проблема - за выходные справитесь. А, ну да, если есть желание программировать то запрещать конечно не буду, но вы можете работать паралельно и на фортране. Но если проблема очень математическая то лучше всего взять Математику, возможно что там эту проблему можно решить с пом всего нескольких строчек  (у меня так уже было)

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 23:39 16-11-2011 | Исправлено: terminat0r, 23:55 16-11-2011
Открыть новую тему     Написать ответ в эту тему

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