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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrew10
terminat0r
Именно так и надо сделать. Стыдно, что сам не догадался. Немного только поправлю.  
В самом начале Rho_subra делаю копию nf: nf1=nf. Далее издеваюсь над nf как хочу но перед выходом из Rho_subra возвращаю ей исходное значение: nf=nf1.
Мелочь, но приятно. Спасибо.

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 10:43 13-12-2010 | Исправлено: bubanoid, 10:44 13-12-2010
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bubanoid
Цитата:
 
В самом начале Rho_subra делаю копию nf: nf1=nf. Далее издеваюсь над nf как хочу но перед выходом из Rho_subra возвращаю ей исходное значение: nf=nf1

 
Можно и так, но лучше "издеваться" над nf1. Во-первых, не нужно возвращать исходное значение, а во-вторых, если nf в результате не должна меняться, то и пусть не меняется!

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 10:57 13-12-2010
bubanoid



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

 
Добавлено:
Помогите пожалуйста. Никак не могу разобраться с IMSL-евской функцией PPVAL. Ведёт себя непредсказуемо.
 
Пример:
Хочу аппроксимировать функцию f(x)=dsin(Pi/2.d0*x) на промежутке [0,2] с помощью B-spline 4-го порядка. Для этого использую:
 
BSNAK - Computes the “not-a-knot” spline knot sequence.
BSINT - Computes the spline interpolant, returning the B-spline coefficients.
BSVAL - Evaluates a spline, given its B-spline representation.
В принципе, этого достаточно для построения сплайна. Но так как мне надо будет вычислять сплайн во многих промежуточных точках и важна скорость вычисления, то надо преобразовать сплайн в полином.
 
BSCPP - Converts a spline in B-spline representation to piecewise polynomial representation.
PPVAL - Evaluates a piecewise polynomial.
 
Код.
 
Результат.
 
Вот те жирные нули в первой строке результата выглядят совершенно странно. Должно быть то же самое, что строкой ниже, то-есть второй столбик (рассчитанный по BSVAL) должен практически совпадать с третьим (рассчитанный по PPVAL). У мене IMSL 5.0. Интересно, что покажет IMSL 6.0.
 
Что интересно, при некоторых x функция PPVAL в каждом блоке считает правильно (например x=1.1234d0)! А при некоторых нет.
 
Обратите внимание, первый и третий блоки идентичны, а результат расчёта PPVAL в них разный!
 
Проблема решена!
 
см. http://forums.vni.com/showthread.php?t=5945
и http://forums.vni.com/showthread.php?t=5947

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 12:32 13-12-2010 | Исправлено: bubanoid, 22:52 23-12-2010
akaGM

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

Код:
 
              program iondisk
      IMPLICIT DOUBLE PRECISION (a-h,o-z)
      DIMENSION sad(1000)
      N=1000
                  ...
                  sad(i)=sad(i)+(aah/6.0)*(freqfunc(aa1)+4.0*freqfunc(aa2)+freqfunc(aa3))
      aa1=aa1+aah

одни строчки с 7-ой позиции, другие с самого начала...
+ ещё две непонятки:
F:\77\mc.f90(15)
у тебя с форматом всё в порядке?
 
nonOnix
на Ф сам пишешь? тогда просто пиши
 
open(101, file='file.ext', status='unknown')
do i, n
  write(101,*) Circum(i)
enddo
do i, n
  write(101,*) Arcd(i)
enddo
etc
 
или смотри на файл, что получается...
 
bubanoid

Цитата:
а за пределами цикла

попробуй оптимизацию отмени, а то это
do i=2*ndata-2, 2*NDATA-2
не цикл...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 13:32 13-12-2010 | Исправлено: akaGM, 13:49 13-12-2010
bubanoid



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

Цитата:
попробуй оптимизацию отмени, а то это
do i=2*ndata-2, 2*NDATA-2
не цикл...

Не понимаю. Какую оптимизацию вы имеете ввиду?  
 
Это действительно никакой не цикл. Но там, в не цикле, PPVAL считает правильно. А за пределами - нет. Странно!

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 15:14 13-12-2010
akaGM

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

Цитата:
Не понимаю. Какую оптимизацию вы имеете ввиду?

откомпилируй свою программу с опцией
ifort /Od
 
+
попробуй вызовы местами поменяй "нецикл" <--> "вне"
какая-то ошибка наведённая, как раз оптимизация может глючить...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 16:25 13-12-2010
bubanoid



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Менял местами два блока. Оказалось, что если их поменять местами, то всё равно тот что первый - считает правильно, а тот, что второй - не правильно!

Цитата:
откомпилируй свою программу с опцией
ifort /Od  

Надо порыться в GUI настройках в студии, и найти что там отвечает опции /Od. Обязательно попробую скомпилить без оптимизации. спасибо.

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 00:35 14-12-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bubanoid
Цитата:
Надо порыться в GUI настройках в студии, и найти что там отвечает опции /Od. Обязательно попробую скомпилить без оптимизации. спасибо
GUI --- зло в том смысле, что лишает пользователя гибкости и особенно вреден для тех кто сразу начал осваивать компьютеры с Windows. Если бы ты компилировал под Linux, достаточно было бы запустить команду примерно такую (с небольшими вариациями)
ifort file.f -o outfile
Под Windows компилятор Intel тоже наверняка можно вызвать через командную строку, так проще может оказаться, поройся в справке (сам хотя и использую Visual Studio с древних времен, мне с FORTRAN удобнее в Linux)

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 01:05 14-12-2010
Vladik71

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

Цитата:
Вот для избегания таких проблем implicit none и нужен  

 
Действительно, здравая мысль, раньше как-то не пользовался, сенкс! Возьму на заметку...

Всего записей: 81 | Зарегистр. 12-07-2010 | Отправлено: 01:37 14-12-2010
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bubanoid
комманд лайн:
ifort /Od myprog.for
или
ifort /optimize:0 myprog.for
 
в, как ты говоришь, GUI:
project/properties/fortran/optimization
самое верхнее поле /Od (disable)
 
риторически...
интересно, а что сейчас труднее освоить: сам фортран и начать на нём что-то делать или какую-нить монстрообразную IDE?

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 14:11 14-12-2010 | Исправлено: akaGM, 14:18 14-12-2010
pir0texnik2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А чего там страшного по сравнению с консолью? Там же ж как по опциям тыкаесся - все внизу пишут какая опция консоли соответствует и в конце есть отдельный пункт с тем как выглядит окончательная ком. строка... А из ИДЕ там имно 4 копки надо знать, Ф5, Ф7 и Ф10-Ф11. Такое было и в комппаке и павере, а скоко им уже лет... Такой вот дурабл ИДЕ.

Всего записей: 173 | Зарегистр. 27-02-2008 | Отправлено: 17:01 14-12-2010
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по всем оценкам среды типа word/VS и иже используются по назначению с эффективностью ~30% и это при стоимости той же VS под 2500 гринов (и кто её купит на хрен в образовательную/непрофильную контору?)
копирование в эксплорере содержимого диры в другую обходится в ~8-10 кликов + длительный скролл
мои студенты перестают клавиатурить и тянутся к мыше, чтоб клинуть икону для сохранения, они  вообще без мыши винду выключить не умеют...
глянуть на содержимое файла без расширения (что это -- текст или бинарник?) -- полный абзац или жёсткий зависон для нотепада...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 17:45 14-12-2010 | Исправлено: akaGM, 19:47 14-12-2010
pir0texnik2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IFC тоже как бы не бесплатный. Консоль - это хорошо, но как быть с дебагом без ИДЕ...
А в остальном - far наше фсё. но это уже другая сказка...

Всего записей: 173 | Зарегистр. 27-02-2008 | Отправлено: 17:57 14-12-2010
bubanoid



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
TeXpert
Понял. GUI (а с ними MS VS, etc) - зло. Почему зло - ещё не понял, но списываю это на своё ньюбство. Честно пытался скомпилить свою прогу из командной строки но обломался. Я пока не умею из ком. строки подцепить библиотеки IMSL. Так что, сильно не пинайте, пока что буду работать из-под студии.  
 
О результатах.
Проверил, оптимизация отсутствовала. Значит дело не в ней, а чём-то ещё. А не могли бы вы запустить этот код у себя и закинуть сюда результат? Дело то минутное. Было бы хорошо знать, исправлен ли этот глюк в последующих версиях фортрана и ИМСЛя. И вообще следует разобраться, чей глюч: фортрана, ИМСЛя или мой.

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 18:07 14-12-2010
pir0texnik2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bubanoid, посмотри как студия цепляет библиотеки в настройках проекта, там есть полная командная строка.

Всего записей: 173 | Зарегистр. 27-02-2008 | Отправлено: 18:16 14-12-2010
bubanoid



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pir0texnik2
Поздравляю вас с сотой записью! а себя с 25-той.
 
Добавлено:
понял, смотрю.
 
Добавлено:
не нашёл.

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 18:18 14-12-2010
pir0texnik2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bubanoid
хренова....
а так? правый клац по проекту, свойства - фортран - комманд лайн?..
 
Добавлено:
по ПРОЕКТУ клацать не по РЕШЕНИЮ.
или через меню... "ПРОЕКТ". 4-е слева...

Всего записей: 173 | Зарегистр. 27-02-2008 | Отправлено: 18:35 14-12-2010
bubanoid



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

Цитата:
Build log written to  "file://D:\delete2\spline\spline\Debug\BuildLog.htm"

Вот там всё есть. Вот только сразу же попробовал кинуть созданную студией командную строку

Цитата:
ifort /nologo /Zi /Od /module:"Debug/" /object:"Debug/" /traceback /check:bounds /libs:static /threads /dbglibs /c  /Qvc8 /Qlocation,link,"C:\Program Files\Microsoft Visual Studio 8\VC\bin" "D:\delete2\spline\spline\spline.f90"

на выполнение, и не пошло:

Цитата:
ifort: Command line warning: ignoring option '/d'; argument is of wrong type
ifort: error: directory 'Debug\' does not exist

 
 
Добавлено:
и ещё. А есть какой-то способ копировать текст в ком. строку? а то набирая длинную команду обязательно где-то да ошибёшся.

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 18:44 14-12-2010
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bubanoid
да компилируй ты в студии, зачем тебе это...
тока познай её получше...
 
попробуй вызови эту злосчатную PPVAL несколько раз, вряд ли ошибка в библиотеке
сам я imsl не пользуюсь, так что помочь не могу...
 
pir0texnik2

Цитата:
IFC тоже как бы не бесплатный.

и что?
лично у меня -- купленный,
и студия у меня -- Express...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 19:54 14-12-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pir0texnik2
Цитата:
А чего там страшного по сравнению с консолью?
Гибкости мало

Цитата:
Там же ж как по опциям тыкаесся - все внизу пишут какая опция консоли соответствует и в конце есть отдельный пункт с тем как выглядит окончательная ком. строка... А из ИДЕ там имно 4 копки надо знать, Ф5, Ф7 и Ф10-Ф11. Такое было и в комппаке и павере, а скоко им уже лет... Такой вот дурабл ИДЕ
Все это верно, но все равно временами жутко неудобно, особенно когда выдергиваешь отдельные файлы из проекта и включаешь в другой проект (VS я обычно пользую в C/C++ проектах), и тогда приходится руками вписывать (в смысле, выбирать и устанавливать) некоторые опции. Есть, правда, некоторые расширения компилятора, облегчающие жизнь (типа, #pragma comment(lib,"MyLib.lib")), которые можно вставить прямо в исходник и не заморачиваться с подключением соответствующей статической библиотеки через IDE. Но такие расширения --- нестандартны, такой файл не понесешь в другую IDE, да и мало таких удобств
 
А вот команды для консоли впишешь либо в скрипт, либо в makefile, и таскай себе куда хочешь
 
akaGM
Цитата:
...копирование в эксплорере содержимого диры в другую обходится в ~8-10 кликов + длительный скролл
Я своих студентов учил пользоваться Far'ом
Цитата:
...мои студенты перестают клавиатурить и тянутся к мыше, чтоб клинуть икону для сохранения, они  вообще без мыши винду выключить не умеют...
Я поступал проще --- отбирал мыши). Конечно, перед этим давал короткие клавиши, и способы перевода фокуса и все такое
Цитата:
...глянуть на содержимое файла без расширения (что это -- текст или бинарник?) -- полный абзац или жёсткий зависон для нотепада...
Тоже решали через Far
 
Вообще, я заставлял штудировать команды DOS по книге Фигурнова (IBM PC для пользователя, 7-е краткое издание), там хорошее и сжатое изложение. Особенно убеждает многих мощь команд типа xcopy, который может вмиг извлечь все файлы с заданным расширением, сканируя автоматически все подкаталоги, при этом складывая найденные файлы тоже с сохранением структуры каталогов. В GUI-оболочке такое задание они бы делали весь день, или больше)
 
Добавлено:
bubanoid
Цитата:
и ещё. А есть какой-то способ копировать текст в ком. строку? а то набирая длинную команду обязательно где-то да ошибёшся
Лень --- двигатель прогресса. Это просто делается в Far'е. Выделяешь текст, жмешь Ctrl+C (копирование в буфер), и, где надо, вставляешь в командную строку Far'а с помощью Ctrl+V (вставка из буфера). Работает также (обычно, но не во всех программах и не во всех ОС) пара Ctrl+Ins (копирование) и Shift+Ins (вставка)
 
А еще лучше создать командный файл (с расширением bat), скопировать туда строку (только эту команду надо писать в одной строке)

Цитата:
ifort /nologo /Zi /Od /module:"Debug/" /object:"Debug/" /traceback /check:bounds /libs:static /threads /dbglibs /c  /Qvc8 /Qlocation,link,"C:\Program Files\Microsoft Visual Studio 8\VC\bin" "D:\delete2\spline\spline\spline.f90"
затем запустить bat-файл. И, попробуй вручную создать каталог Debug

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 20:46 14-12-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

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