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

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

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
У меня нет. Пока не было повода проявить интерес к её исходнику, хотя и не помешал бы.

Всего записей: 2003 | Зарегистр. 01-05-2002 | Отправлено: 04:57 18-12-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Граждане, будьте бдительны. Я еще не разобрался до конца (руки кривые или компилятор) но у меня ifort 12.1.0 x86_64 под линуксом  с -O2 дает нормальный код а с -O3 вылетает/чепуху собирает
Никак не могу локализовать место, где он лажает. Какие рецепты посоветуете? Спешно инсталлирую 11.x

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 04:50 20-12-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
-O3 составной параметр, по очереди не пробовал отключаться "на пути" к -О2, или наоборот к -О2 добавлять?
ещё у них есть как раз для таких случаев полезный -Qopt-report
 
а что означает "x86_64" для Л: x86-архитектура для 64-разрядной или виндовский аналог ia32_ia64?

Всего записей: 24103 | Зарегистр. 06-12-2002 | Отправлено: 12:38 20-12-2011 | Исправлено: akaGM, 12:53 20-12-2011
terminat0r



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

Цитата:
а что означает "x86_64" для Л: x86-архитектура для 64-разрядной или виндовский аналог ia32_ia64?

это политически корректное и нейтральное название AMD64 и Intel 64
http://ru.wikipedia.org/wiki/X86-64

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 17:52 20-12-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
а... я и забыл, что у тебя AMD
тогда это интелы в новой версии по-новому политически некорректно гнобят АMD...

Всего записей: 24103 | Зарегистр. 06-12-2002 | Отправлено: 18:07 20-12-2011
knkd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
В GCC под старые процессоры иногда помогает -march=native, типа компилятор умный и сам что надо отключит.
Может что-то такое для ifort есть?

Всего записей: 196 | Зарегистр. 15-01-2008 | Отправлено: 23:41 20-12-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
knkd
Вообщем кажется ложная тревога, прогнал программу под forcheck-ом и  NAGовским компилятором с runtime проверками, они меня отматерили за несколько ошибок инциализации, так что проблема была все-таки в кривых руках.
Теперь хочу NAGовский компилятор себе на комп. Есть свежая инфа по этому поводу?
 
2all
Заморочился я все-таки сохранением и загрузкой состояния вычислений, ибо расчеты показывают что мучить компы придется около месяца...  Одно и многомерных массивов около 4-10 Гб в несжатом виде. Кто-нибудь похожее делал и если да, то каким способом? Собираюсь взять netcdf. Несколько раз в жизни но очень давно ee использовал,  отстал от прогресса, есть сейчас альтернативы?  

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 13:33 21-12-2011
akaGM

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

Цитата:
Теперь хочу NAGовский компилятор себе на комп. Есть свежая инфа по этому поводу?
так эта... в варез...
всегда считал полезным иметь в активе как можно больше фортранов :)
 
а опцию
-Qopt-report
не попробовал?
 

Цитата:
Одно и многомерных массивов около 4-10 Гб в несжатом виде
а если сразу после создания тупо зипарь напускать? раз в 10 сожмёт...
или ты не про дисковые массивы?

Всего записей: 24103 | Зарегистр. 06-12-2002 | Отправлено: 13:43 21-12-2011 | Исправлено: akaGM, 14:21 21-12-2011
terminat0r



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

Цитата:
а если сразу после создания тупо зипарь напускать? раз в 10 сожмёт...
или ты не про дисковые массивы?

о них конечно, вот только тупо пережимать файлы что-то не очень хочется.  
 
В netcdf оказывается до сих пор не сделали нативные комплексные числа.

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 15:46 21-12-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
ну может тогда самому с форматом файлов поиграть?
 
как-никак для одного дабла
0.12345678912е-02
16 символьных байт
или всё-таки 8 в binary-моде

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



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

Цитата:
ну может тогда самому с форматом файлов поиграть?  

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

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 19:45 21-12-2011 | Исправлено: terminat0r, 20:26 21-12-2011
FuzzyLogic



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

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 22:58 21-12-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
Это код с 1996, такой функции в библиотеке нет уже?, вернее может и есть но я не знаю как ncvgt сейчас называется. хотелось бы пример поконкретнее...
 
В принципе проблему я решил, пишу реальную и мнимую части отдельно:
код
 
 
но мне это не нравится, поскольку использую два дополнительные массива с rank=3 внушительного размера
Как прочитать напрямую в phi  с файла непонятно....
Кстати скаляр time_t я правильно пишу? Или есть и другой способ?

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 02:06 22-12-2011 | Исправлено: terminat0r, 02:10 22-12-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
Я сам не работал с комплексными, но как я понял, что это тот самый nc_var_get (раньше он сокращён был до ncvgt), если пойдёте по треду на который ссылка назад то увидите там ещё куски, типа

Код:
 
>        iddim(1)=id2
>        iddim(2)=idncomp
>        idcxrfr=ncvdef(idnc,'cxrfr',ncfloat,2,iddim, ierr)
 

Т.е. объявив таким образом массив (размером 2 на сколько надо) можно просто писать и читать одной командой так как комплексный тип это в принципе и есть 2 реальных и располагаются они в памяти фортраном также как и объявленный выше массив в NetCDF и потому можно не заморачиваться с делением на части, просто при чтении/писании комплексных указывать длину массива у nc_var_get/put в два раза больше чем он есть.

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 07:02 22-12-2011 | Исправлено: FuzzyLogic, 07:02 22-12-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а можно узнать в чём же преимущество использования этого формата?
 
то, что это стандарт для обмена науч.данными, для распространения, для дальнейшей обработки в др. программах, унифицированность доступа -- это всё понятно (сам сталкивался с pdb)...
а вот в размере конечного файла как (и какой?) выгрыш получается?
то что я должен знать его АПИ и предпринимать массу телождвижений -- я уже вижу...
а чем это лучше моих 1600 байт?
 

  complex*16 ca(100)
    do i = 1, 100
      write(10) ca(i)
    enddo


Всего записей: 24103 | Зарегистр. 06-12-2002 | Отправлено: 11:17 22-12-2011 | Исправлено: akaGM, 12:23 22-12-2011
XPEHOMETP

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

Цитата:
а можно узнать в чём же преимущество использования этого формата?  

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

Всего записей: 2485 | Зарегистр. 21-06-2005 | Отправлено: 13:56 22-12-2011
terminat0r



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

Цитата:
а вот в размере конечного файла как (и какой?) выигрыш получается?  

В принципе формат netcdf бинарный и в последних версиях ввели доп прозрачную компрессию к этому.
Можно выборочно сжимать некоторые массивы. Внутренне netcdf4 использует HDF5, если ставить флаг NF90_HDF5. В принципе можно бы уже взять напрямую HDF5, но там апи более заморочен. Хотя там разработчики божились ввести комплексный тип по пожеланиям юзеров. Но выигрыша по размеру сверхбольшого нет ибо zlib сжимает плохо, комплексний массив (128,128,128) ~32Mb сжимает до 14 при  максимальном deflate_level=9 если массивов больше то не сжимает почему-то... Еще надо разбираться...

Цитата:
то что я должен знать его АПИ и предпринимать массу телождвижений -- я уже вижу...
а чем это лучше моих 1600 байт?

Почти ничем но есть несколько важных исключений. Файл netcdf самодостаточен и в нем можно хранить много разных массивов. При чтении не надо заморачиваться где что лежит, просто говоришь,  дай мне массив с таким-то ID. А это как бы удобно, т.е. состояние программы для какого-то момента времени пишу в один файл.  
 

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 14:27 22-12-2011
FuzzyLogic



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

Цитата:
а можно узнать в чём же преимущество использования этого формата?  

Тут всё очень лично.
 
Основные плюсы (для себя):
- платформонезависимость: все моменты типа big endian/small endian, где-какие по умолчанию real, итд - уходят)
- Начиная с NetCDF4 (вроде бы) - компрессия данных. Просто при создании файла говорите что хотите чтоб он был "пожатым" (можно и указывать отдельные переменные).
- Скорость доступа - легко и быстро вытаскиваются "куски" переменных из огромных файлов
- метаданные: к каждой переменной можно привязать кучку атрибутов, а в них описать что их себя представляют ваши данные. В комбинации с конвенциями это есть довольно приятная штука если вы работаете не в глухом лесу, а вашими данными пользуется кто-то ещё. Вот например из "моей" области: CF, ну и вот список разных. При умелом использовании - очень приятная вещь. Например я записывая данные в таком формате получаю в своё распоряжение кучу софта, включая скажем ArcGIS, который напрямую может манипулировать моими данными.
- Из примеров "очень" полезного софта - THREDDS, OpenDAP, веб серверы для данных позволяющие делать такие вещи как subsetting на лету. Т.е. пользователь может сказать что ему нужен не весь массив данных на 50TB, а только эл-ты с n1 по n2 и скачать кусочек на пару мегабайт
- NCO (NetCDF Operators) - вообще чума

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 14:31 22-12-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FuzzyLogic
А это сработает если у меня комплексные массивы с размерностями>3?

Цитата:
NCO (NetCDF Operators) - вообще чума

Ого, я и не слышал что такие есть. Я помню когда-то и обыкновенному ncdump радовался когда с этим форматом впервые столкнулся

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 14:31 22-12-2011 | Исправлено: terminat0r, 14:35 22-12-2011
akaGM

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

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