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

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

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

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

Цитата:
!DEC$
!MS$
ну а сам ты как думаешь, насколько они "стандартны"? :)
 
считается, что с 95-версии поддерживаются С-препроцесс. директивы
+
ISO/IEC 1539-3 : 1999(E)
very simple form of conditional compilation, which selects some of the Fortran lines
from the source and omits the rest or converts them to comments. The process is controlled
by ‘coco lines’ in the source that are also omitted or converted to comments. This auxilliary
standard has met with little success.

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 14:36 01-02-2012 | Исправлено: akaGM, 15:08 01-02-2012
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
 
Сам я не думаю, когда есть у кого спросить
 

Цитата:
считается, что с 95-версии поддерживаются С-препроцесс. директивы
 

 
Не понял, что, в фортрановскую программу можно вставлять #-директивы???
 

Цитата:
ISO/IEC 1539-3 : 1999(E)  

За эту ссылку спасибо, почитаю

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 15:22 01-02-2012 | Исправлено: Andrew10, 15:23 01-02-2012
akaGM

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

Цитата:
Не понял, что, в фортрановскую программу можно вставлять #-директивы???  

не буду говорить о стандарте, но в IF -- это нормальная практика:
/Qfpp
/Qcpp
 

Цитата:
All fpp directives start with the number sign (#) as the first character on a line.  White  space (blank or tab characters) can appear after the initial  "#"  for indentation.
...
Supported cpp features:
#define, #undef, #ifdef, #ifndef, #if, #elif, #else, #endif, #include, #error, #warning, #line

 

Код:
#define aaa 1
 
#ifdef aaa
  write(*,*) 'aaa defined'
#endif
end

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 16:03 01-02-2012
Andrew10

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

Цитата:
не буду говорить о стандарте, но в IF -- это нормальная практика:
/Qfpp
/Qcpp  

Кто бы мог подумать! Мораль: Полезно читать листинги команды ifort -help
 
Правда меня интересует реализация условной компиляции именно стандартными средствами. Объясню почему. Из-за своей занудливости установил при компиляции ключ проверки соответствия стандарту Фортрана 2003, в результате чего при компиляции проекта про каждое использование !DEC$ вылезает warning, в целом штук 60 на проект, пока среди них найдешь сообщение про настоящую ошибку, запаришься.  
Боюсь, что про #-директивы IF также будеть зудеть.

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 16:26 01-02-2012 | Исправлено: Andrew10, 16:41 01-02-2012
akaGM

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

Цитата:
Мораль: Полезно читать листинги команды ifort -help
ты ж из себя весь ВизуальноСтудивый :)
 

Цитата:
While CPP is the de-facto standard for preprocessing Fortran code, Part 3 of the Fortran 95 standard (ISO/IEC 1539-3:1998) defines Conditional Compilation, which is not widely used.

 
вот этот текст
ftp://ftp.nag.co.uk/sc22wg5/N1301-N1350/N1306.pdf
 
они хотят использование вот этой самоделки:
http://www.daniellnagle.com/coco.html
 
полный маздай и неудивительно, что
Цитата:
This auxilliary standard has met with little success.

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 17:30 01-02-2012 | Исправлено: akaGM, 17:49 01-02-2012
Andrew10

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

Цитата:
ты ж из себя весь ВизуальноСтудивый  

 
Не на 100 %. Писать люблю в far-e, компилирую из командной строки, но отлаживать, каюсь,
приучился в VS. WRITE-ами пользоваться перестал с момента появления CFV. Разленился.
 

Цитата:
вот этот текст
ftp://ftp.nag.co.uk/sc22wg5/N1301-N1350/N1306.pdf

Да, спасибо, я уже нашел именно там.
 
Все это на самом деле баловство. Пользуюсь с давнишних времен !DEC$ и буду продолжать. Если #-директивы не всеобщий стандарт, какой смысл переходить на них с !DEC$?
 
 
 

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 19:34 01-02-2012
akaGM

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

Цитата:
Если #-директивы не всеобщий стандарт, какой смысл переходить на них с !DEC$?
не знаю насчёт стандарта, но не IF'ом единым...
 
gfortran:
Цитата:
1.3 Preprocessing and conditional compilation
 
Many Fortran compilers including GNU Fortran allow passing the source code through a C preprocessor (CPP; sometimes also called the Fortran preprocessor, FPP) to allow for conditional compilation. In the case of GNU Fortran, this is the GNU C Preprocessor in the traditional mode. On systems with case-preserving file names, the preprocessor is automatically invoked if the filename extension is .F, .FOR, .FTN, .fpp, .FPP, .F90, .F95, .F03 or .F08. To manually invoke the preprocessor on any file, use -cpp, to disable preprocessing on files where the preprocessor is run automatically, use -nocpp.
 
If a preprocessed file includes another file with the Fortran INCLUDE statement, the included file is not preprocessed. To preprocess included files, use the equivalent preprocessor statement #include.

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 19:49 01-02-2012
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не могу примирить многопоточный fftw3 и openmp
Все нормально если циклы openm отдельно от dfftw_execute_dft
но вот если пробую вот такую конструкцию

Код:
   
 !$omp parallel do private(i,j,ad03) shared(a,planf1d1), default(none)
    do j = 1, n
       do i = 1, m
          call dfftw_execute_dft(planf1d1(i,j),ad03,ad03) !HOTSPOT
          a(i,j,:) = ad03
       end do
    end do
 

 
то вылетает даже на одном потоке как с -lfftw3_threads так и с -lfftw3_omp
 ifort -O3 -openmp openmp04.f90 -lfftw3_threads -lfftw3 -lm -o openmp04.x
 
Вот тестовая программка.
 
UPD Немного напартачил в пред. тестовом примере, с этим уже заработал gfortran и pgi
ifort вылетает и дальше как с mkl так и с lfftw_threads в glibc,  
 
time ./openmp05.x  
 debug 00a
 debug 00b
 debug 01
*** glibc detected *** ./openmp05.x: munmap_chunk(): invalid pointer: 0x00002ba488932f50 ***
 
пробую скомпилировать fftw3 полностью интеловскими компиляторами...

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 03:30 08-02-2012 | Исправлено: terminat0r, 01:51 09-02-2012
firstf90

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...  
как так, если критерий выхода не выполнен, а подпрограмма завершилась ?  
ведь она сама себя вызывает....  
есть вопрос. что ли нельзя вызывать я раза подряд одну и туже подпрограмму ?
тут. выполняется только первый вызов, а второй нет. если поменять местами, то вызываться будет 2-ой вызов а первый нет.
 call SearchTree('1', c_branch, start_pos, m)
 call SearchTree('0', c_branch, m+1, end_pos) [/more]

Всего записей: 3 | Зарегистр. 09-02-2012 | Отправлено: 10:12 09-02-2012 | Исправлено: firstf90, 11:16 09-02-2012
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Э, господа, что это было от firstf90? Одна запись но вопрос  какой то уже снят... Код в стиле пьяного монаха Шаолиня... Я так понимаю студентам начали задавать новые задания?

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 15:09 09-02-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не могу знать, меня вообще тут неделю не было, праздник отмечали...
 
но судя по началу постов с "подробнее", предыдущие вопросы задавались не здесь и совсем под другим именем:
http://forum.ru-board.com/topic.cgi?forum=33&topic=4836#1
 
firstf90
ты сам-то понял что спросил?

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 15:40 09-02-2012 | Исправлено: akaGM, 16:08 09-02-2012
firstf90

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос в следующем.  
как подпрограмма может завершиться, если критерий останова не выполнен ?
критерий выхода не выполняется т.к. строка в коде  !Правая ветка дерева  call SearchTree('0', c_branch, m+1, end_pos). не приделах. доходит только до ! левая ветка дерева  call SearchTree('1', c_branch, start_pos, m). вот и спрашиваю. как 2 раза подряд можно эту подпрограмму вызвать... т.е. call ....; call...

Всего записей: 3 | Зарегистр. 09-02-2012 | Отправлено: 16:34 09-02-2012 | Исправлено: firstf90, 16:38 09-02-2012
akaGM

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

Цитата:
если критерий останова не выполнен

ты в этом уверен? чудес не бывает...
и если что-то не работает, то это, значит, не работает...
а причины... вот причины и ищи, причём, "после того не означает вследствии того"
 
например, вот это что?
 
c_branch= c_branch
 
или почему stop, а не return?

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 16:52 09-02-2012 | Исправлено: akaGM, 17:06 09-02-2012
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
я понял, это буквальный перевод паскаля
http://habrahabr.ru/blogs/algorithm/137766
поэтому и такие "лаконичные" процедурки и стиль

Код:
 
Subroutine INC(X)
Integer :: X
        X=X+1.
END  

 
firstf90
а что обязательно на фортране? а то там код рабочий

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 17:22 09-02-2012 | Исправлено: terminat0r, 17:26 09-02-2012
firstf90

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

Цитата:
например, вот это что?
 
c_branch= c_branch

это заскоки, которые помогают мне не забыть про переменную... в принципе это можно и убрать ...
 

Цитата:
или почему stop, а не return?

так потому, что принудительный останов.  
но он даже не происходит т.е. данный критерий не может выполнится т.к. иду всё время по левой ветки т.к. правая ветка не идет. вот и спрашиваю как можно вызвать подпрограмму в самой подпрограмме чтоб выполнился call и далее выполнился ещё один call <- до этого момента не доходит программа, не знаю как исправить. вот и прошу совета.

Цитата:
 
я понял, это буквальный перевод паскаля
http://habrahabr.ru/blogs/algorithm/137766

ага

Цитата:
 
а что обязательно на фортране? а то там код рабочий
 

не обязательно, но язык то хочется выучить. а так тренируюсь ...

Всего записей: 3 | Зарегистр. 09-02-2012 | Отправлено: 17:25 09-02-2012 | Исправлено: firstf90, 17:28 09-02-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
да пусть переводит...
хотя именно этот inc() умиляет...
 

Цитата:
а то там код рабочий

а ты его компилировал?
:)
 
firstf90
ну так если паскаль знаешь, переведи 1:1

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 17:32 09-02-2012 | Исправлено: akaGM, 17:40 09-02-2012
terminat0r



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

Цитата:
а ты его компилировал?  

ага, у меня fpc нашелся  да и шенон-фано заинтриговал
 
Добавлено:
firstf90

Цитата:
не обязательно, но язык то хочется выучить. а так тренируюсь ...

судя по всему надо подтягивать сначала паскаль

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 17:50 09-02-2012
akaGM

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

Цитата:
не обязательно, но язык то хочется выучить. а так тренируюсь ...

фиговую область для обучения ты выбрал -- строки на фортране...
хуже может быть только... чарактеры на фортране :)
 
лучше б из своей предметной области что-нибудь выбрал...
а так всё равно придётся искать какие-нибудь лазейки, делать разные трюки, а потом вс равно плюнуть и отдать это Си или ещё куда подальше...

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 19:07 09-02-2012
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firstf90
Я в паскале не очень поэтому  вот этот код мне больше нравится
http://github.com/Ignotus/shannon-fano
Хотя конечно переписать это на фортран будет еще сложнее :)
 
akaGM
По моей проблеме (выше) нет идей? И что за праздник?

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 19:52 09-02-2012 | Исправлено: terminat0r, 20:01 09-02-2012
akaGM

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

Цитата:
По моей проблеме (выше) нет идей?

не, я совсем не параллельный...

Цитата:
И что за праздник?

праздник бичей и всех нищих:
День Науки...

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 04:22 10-02-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