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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vaulin
2n**3/3 - это для полнозаполненных матриц. А для трехдиагональных - как у Вас и получалось, разница по скорости должна быть не более, чем в два раза. Что касается библиотечной функции метода прогонки, то для комплексных неэрмитовых матриц вряд ли Вы ее найдете в известных библиотеках. Поскольку в этом случае устойчивость при использовании метода прогонки не гарантирована, то создатели библиотек предпочитают устойчивость скорости .  
 
Для собственных нужд я бы посоветовал использовать собственную программу, если она протестирована и Вы ей доверяете. Если неустойчивость проявится в какой нибудь задаче, это сразу будет видно. Другой дело, если программа пишется для посторонних людей. Здесь я бы выбрал надежность, а не скорость.

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 09:46 21-10-2008
vaulin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrew10
Спасибо большое за ответ! Есть над чем подумать. Не совсем понял, что Вы понимаете под устойчивостью. Видимо, имеются в виду ситуации, когда знаменатель прогоночных коэффициентов альфа/бетта обращаются в нуль? Но ведь для этого достаточно проверить определенные соотношения между весовыми коэффициентами! Тем более, что это значительно упрощается, когда весовые коэффицинты во всех уравнениях одинокавые (как в случае для схемы Кранка-Николсон). Да даже если не одинаковые, проверку провести недолго.
У меня еще вопрос, если не затруднит Что-то не могу наладить фортрановский компилятор для консоли, т.е. не получается работать с командой df (у меня установлен CVF 6.5). Раньше работало, а потом почему-то перестало. Хотя даже систему переустанавливал - не помогает.
Например, простенькая программа в файле examples.for:
program examples
 print*,'Hello!!!'
endprogram examples
 
В командной строке задаю: DF examples.for
Выдает следующее:
/subsystem:console  
/entry:mainCRTStartup  
/ignore:505  
/debugtype:cv  
/debug:minimal  
/pdb:none  
C:\DOCUME~1\dfor.lib  
libc.lib  
dfconsol.lib  
dfport.lib  
kernel32.lib  
/out:examples.exe  
LINK : warning LNK4001: no object files specified; libraries used
LINK : warning LNK4068: /MACHINE not specified; defaulting to IX86
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
examples.exe : fatal error LNK1120: 1 unresolved externals
 
Заранее благодарен!

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 11:13 24-10-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vaulin
что-то ты только ошибки линкера приводишь, компилятор-то отрабатывает нормально?
 
и вообще говоря, лучше не df.exe напрямую звать, а скриптами
типа
mydf.bat:

Код:
call ГДЕ_ТАМ_ТВОЙ_CVF_УСТАНОВЛЕН\BIN\dfvars.bat
df %1 %2 %3 %4 %5 %6 %7 %8 %9

и сам dfvars.bat обязательно просмотреть на предмет LIB/INCLUDE...
 

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 11:37 24-10-2008
vaulin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Спасибо большое за ответ!
Цитата:
что-то ты только ошибки линкера приводишь, компилятор-то отрабатывает нормально?

раньше, как я понимаю, и компилятор ошибку выдавал, якобы не может найти библиотеку  

Цитата:
C:\DOCUME~1\dfor.lib  

а сейчас не выдает!? Может это из-за странного такого пути  C:\DOCUME~1\dfor.lib ? Что за DOCUME~1? Хотя в dfvars.bat всё, вроде бы, нормально прописано:
...
set DFDir=C:\Program Files\Microsoft Visual Studio\DF98
set VCDir=C:\Program Files\Microsoft Visual Studio\VC98
...
set INCLUDE=%DFDir%\INCLUDE;%VCDir%\INCLUDE;%INCLUDE%
set LIB=%DFDir%\LIB;%VCDir%\LIB;%LIB%
...

Цитата:
и вообще говоря, лучше не df.exe напрямую звать, а скриптами  
типа  
mydf.bat:

Если не секрет, чем лучше? Вообще, я на прямую df и не использую, я в Far проассоциировал эту команду с расширением *.for, а в ассоциации прописал df !.for и без всяких call ...\dfvars.bat, и всё работало. Как я понимаю, df сам вызывает dfvars.bat.
Кстати, попробовал написать скрипт, который Вы посоветовали:
Цитата:
mydf.bat:  
 
Код:call ГДЕ_ТАМ_ТВОЙ_CVF_УСТАНОВЛЕН\BIN\dfvars.bat  
df %1 %2 %3 %4 %5 %6 %7 %8 %9

 
но результат был тем же самым Еще раз спасибо!
 
 
Добавлено:
Andrew10

Цитата:
для комплексных неэрмитовых матриц ... устойчивость при использовании метода прогонки не гарантирована
А можно ссылочку?

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 14:00 24-10-2008
akaGM

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

Цитата:
Что за C:\DOCUME~1?

это дос-имя директории
C:\Documents and Settings\твой_юзер_name\.и так далее.\dfor.lib  
посмотри где она там лежит?
 

Цитата:
вроде бы, нормально прописано:
...
set DFDir=C:\Program Files\Microsoft Visual Studio\DF98
set VCDir=C:\Program Files\Microsoft Visual Studio\VC98

нормально-то нормально, а они у тебя есть вообще?
98-ю кто ставил, сам компак или кто?
 

Цитата:
Как я понимаю, df сам вызывает dfvars.bat.  

не, сам он не зовёт...

Цитата:
Если не секрет, чем лучше?

у меня много компиляторов на диске, ну ооочень много... одних фортранов штук...
щас... (IF, LF, g95, gfortran) -- во! аж 4 штуки...
и каждому этому гаду нужны свои установки и пасы, вот я их динамически в батчи и выставляю...
 
короче, вот тебе грубая, но однозначная проверку на работоспособность твоей конфигурации:
 
берёшь и копируешь dfvars.bat в super_test.bat.
и в конец копии вставляешь строку
df.exe example.for
запускаешь этот super_test.bat и...
смотришь на результат...
 

Цитата:
я в Far проассоциировал...

наш человек...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 14:42 24-10-2008
Andrew10

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

Цитата:
Не совсем понял, что Вы понимаете под устойчивостью. Видимо, имеются в виду ситуации, когда знаменатель прогоночных коэффициентов альфа/бетта обращаются в нуль? Но ведь для этого достаточно проверить определенные соотношения между весовыми коэффициентами! Тем более, что это значительно упрощается, когда весовые коэффицинты во всех уравнениях одинокавые (как в случае для схемы Кранка-Николсон). Да даже если не одинаковые, проверку провести недолго.  

 
Неустойчивость возникает, если ведущие коэффициенты малы, что приводит к появлению больших коэффициентов в матрицах L и U, на которые разлагается исходная матрица в методе исключения Гаусса. Для подавления этого эффекта используются перестановки строк и (или) столбцов (в зависимости от разновидности метода), при которых в качестве очередного ведущего элемента выбирается максимальный коэффициент  в текущей строке (частичный выбор ведущего элемента) или во всех оставшейся части матрицы (глобальный выбор ведущего элемента). Если матрица с диагональным преобладанием, то этого можно не делать, так как устойчивость и так обеспечена. Тогда годится прогонка. Но в общем случае для произвольных матриц это не так.  Про это можно почитать в книжках Дж. Уилкинсона или Воеводина. Точные названия не помню, книжки дома, но в Google их легко найти.
Есть еще книжка-справочник по линейной алгебре Ю.А.Кузнецова
 

Цитата:
 Что-то не могу наладить фортрановский компилятор для консоли, т.е. не получается работать с командой df (у меня установлен CVF 6.5). Раньше работало, а потом почему-то перестало. Хотя даже систему переустанавливал - не помогает.  

 
Посоветовал бы установить CVF6.6C. В этой версии устранено много ошибок и, по моему опыту, она работает намного стабильнее, чем предыдущие.  
Я для работы из командной строки запускаю из программного меню Fortran Command Prompt, при этом открывается окно консоли, в которой все пути и переменные среды установлены. В этом окне запускаю Far и работаю.  Никогда не было никаких проблем. Запуск Far можно прописать в конец bat-файла, который запускает консоль, но мне лень.  

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 16:00 24-10-2008
vaulin

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

Цитата:
это дос-имя директории  
C:\Documents and Settings\твой_юзер_name\.и так далее.\dfor.lib  
посмотри где она там лежит?  

Похоже, в ней всё и дело, потому что эта библиотека лижит у меня всего в двух местах:  
C:\Documents and Settings\dfor.lib и C:\Program Files\Microsoft Visual Studio\DF98\LIB\dfor.lib (сижу под "Администратор"). А где прописывается эта самая
Цитата:
это дос-имя директории  
? в dfvars.bat этого нет ... в переменных среды тоже нет
 

Цитата:
у меня много компиляторов на диске, ну ооочень много... одних фортранов штук...  
щас... (IF, LF, g95, gfortran) -- во! аж 4 штуки...  
и каждому этому гаду нужны свои установки и пасы, вот я их динамически в батчи и выставляю...  
прикольно, а каким образом динамически прописываете?

Цитата:
нормально-то нормально, а они у тебя есть вообще?  
98-ю кто ставил, сам компак или кто?  

ну да, есть, на своем месте. DF98 ставил сам Compaq

Цитата:
берёшь и копируешь dfvars.bat в super_test.bat.  
и в конец копии вставляешь строку  
df.exe example.for  
запускаешь этот super_test.bat и...  
смотришь на результат...  

проделал всё, что Вы посоветовали, но ... результат тот же самый
 
Andrew10

Цитата:
Неустойчивость возникает, если ведущие коэффициенты малы, что приводит к появлению больших коэффициентов в матрицах L и U, на которые разлагается исходная матрица в методе исключения Гаусса...
А, Вы про метод Гаусса говорили, я подумал, что про прогонку. Ну с метод Гаусса то понятно, что там за неустойчивость. Дело в том, что я имею дело с трехдиагональными неэрмитовыми матрицами (схема Кранка-Николсон численного решения параболического уравнения) и там устойчивость гарантируется при соблюдении условия |c(j)|<=|a(j)|+|b(j)|, где a(j)y(j-1)-c(j)y(j)+b(j)y(j+1)=f(j) - система ур-ий. Но за ссылочки всё равно спасибо! не будут лишними.
Цитата:
Посоветовал бы установить CVF6.6C
оппа!? у меня имеется только "CV Fortran upgrade from v6.5 to v6.6.exe" и "CVF-66-66B.exe"; и где такое можно взять, если не секрет?
Цитата:
Я для работы из командной строки запускаю из программного меню Fortran Command Prompt

честно говоря, с этим не знаком, но весьма любопытно.  
Еще раз большое спасибо за ответы!
 
 

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 08:15 27-10-2008
Andrew10

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

Цитата:
там устойчивость гарантируется при соблюдении условия |c(j)|<=|a(j)|+|b(j)|

 
Это и есть диагональное преобладание. Только вроде знак неравенства должен быть другой (>=)?
 

Цитата:
" и где такое можно взять, если не секрет?

Посмотри в личный ящик

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 10:19 27-10-2008 | Исправлено: Andrew10, 10:26 27-10-2008
vaulin

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

Цитата:
Это и есть диагональное преобладание. Только вроде знак неравенства должен быть другой (>=)?  

понятно. да, знак там, действительно, другой. Спасибо за Upgrade, скачал, но установлю позже, т.к. программа на счете.
 
Добавлено:

Цитата:
Я для работы из командной строки запускаю из программного меню Fortran Command Prompt, при этом открывается окно консоли, в которой все пути и переменные среды установлены. В этом окне запускаю Far и работаю
сделал, как Вы посоветовали и ... та же самая история, один в один ... не помогло
 
 
Добавлено:
А вот если оформить файл examples.for  в виде проекта, то все нормально работает!? ... только это уже не командная строка

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 11:41 27-10-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vaulin
тогда дай еще раз полную выдачу df и линкера после исполения
 
df.exe example.for
 
?
 
+
 
вообще для жёсткой проверки скопируй эту несчастную dfor.lib в то место, где лежит example.for

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 15:23 27-10-2008 | Исправлено: akaGM, 15:30 27-10-2008
Andrew10

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

Цитата:
Что-то не могу наладить фортрановский компилятор для консоли, т.е. не получается работать с командой df (у меня установлен CVF 6.5). Раньше работало, а потом почему-то перестало. Хотя даже систему переустанавливал - не помогает.

 
Такое впечатление, что у Вас не создается obj-файл.  
Подайте команду  
>df -c examples.for
 
и посмотрите, создался ли объектный файл.  Если да, то  
подайте
>df examples.obj /exe:examples.exe
и посмотрите, создался ли exe-файл.
 
Отпишите, что система сообщает на каждую из этих команд
 

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 17:50 27-10-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vaulin
 
во! кажись допёр...
 
у тебя действительно не создаётся obj (спасибо Andrew10)...
и происходит это потому, что .for предполагает стандартный формат входного файла,
а ты пишешь в freeform (90-ый синтаксис)...
попробуй просто измени расширение .for на .f90
 
или что там в опциях стоит?
/FR или /free

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 18:16 27-10-2008 | Исправлено: akaGM, 20:09 27-10-2008
vaulin

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

Цитата:
тогда дай еще раз полную выдачу df и линкера после исполения  
 
df.exe example.for  
 
?  
 
+  
 
вообще для жёсткой проверки скопируй эту несчастную dfor.lib в то место, где лежит example.for

 
Выдаю результат df example.for:
Compaq Visual Fortran Optimizing Compiler Version 6.5
Copyright 2000 Compaq Computer Corp. All rights reserved.
 
example.for
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
 
/subsystem:console  
/entry:mainCRTStartup  
/ignore:505  
/debugtype:cv  
/debug:minimal  
/pdb:none  
C:\DOCUME~1\dfor.lib  
libc.lib  
dfconsol.lib  
dfport.lib  
kernel32.lib  
/out:example.exe  
LINK : warning LNK4001: no object files specified; libraries used
LINK : warning LNK4068: /MACHINE not specified; defaulting to IX86
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
example.exe : fatal error LNK1120: 1 unresolved externals
 
Теперь Выдаю результат df example.for ?:
...
/subsystem:console  
/entry:mainCRTStartup  
/ignore:505  
/debugtype:cv  
/debug:minimal  
/pdb:none  
C:\DOCUME~1\.  
dfor.lib  
libc.lib  
dfconsol.lib  
dfport.lib  
kernel32.lib  
/out:example.exe  
LINK : fatal error LNK1104: cannot open file "C:\DOCUME~1\."
 
а с "+" не понял, что это? типа "df example.for +" - этого он не понимает

Цитата:
скопируй ... dfor.lib в то место, где лежит example.for

не помогло, то же самое
Andrew10

Цитата:
Подайте команду  
>df -c examples.for  

объектный файл создался, система ничего не выдала кроме "examples.for"

Цитата:
подайте  
>df examples.obj /exe:examples.exe  

файл создался и работает нормально! при этом система выдала:
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
 
/subsystem:console  
/entry:mainCRTStartup  
/ignore:505  
/debugtype:cv  
/debug:minimal  
/pdb:none  
example.obj  
dfor.lib  
libc.lib  
dfconsol.lib  
dfport.lib  
kernel32.lib  
/out:example.exe  
Compaq Visual Fortran Optimizing Compiler Version 6.5
Copyright 2000 Compaq Computer Corp. All rights reserved.
 
Кстати, после команды df examples.obj тоже нормально создается!?
Большое Вам спасибо, в принципе уже можно в Far проассоциировать, но почему он сразу по команде df этого не делает?
 
 
 
 
 
Добавлено:
akaGM

Цитата:
попробуй просто измени расширение .for на .f90  

не помогло: и расширение менял, и оформлял по F77 - результат тот же

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 09:53 28-10-2008
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vaulin
 
Что можно посоветовать?
 
1. Установите все-таки последнее из существующих обновлений CVF 6.6C3
 
Если эффект сохранится, т.е.  прямая команда  
df example.for не приводит к успеху, тогда:
 
2. Подайте команду
>df example.for /keep и посмотрите на результат. В рабочем каталоге должны появиться файлы с расширениями .obj, .rsp и .exe. Если все в порядке, тогда сотрите их, и
 
3. Запустите Fortran Command Prompt и подайте в командной строке команду
>set TMP  
и посмотрите имя каталога, где хранятся временные файлы. Убедитесь, что он существует и под Вашим ником доступен.
Если нет, то установите для переменной среды TMP подходящее имя. По умолчанию он обычно такой
 
c:\Documents and Settings\Имя_пользователя\Local Settings\Temp
 
Если все это не поможет, тогда не знаю...

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 11:20 28-10-2008
vaulin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrew10
Если не затруднит, не могли бы Вы привести output "здоровой" df? (Хотя бы для того же example.for) Мне интересно, что выдаст у Вас команда "df example.for" и, к примеру, "set tmp". У меня на последнюю выдает: "TMP=C:\DOCUME~1\АДМИНИ~1\LOCALS~1\Temp"
Заранее благодарен

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 12:41 28-10-2008
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что выдает:
 
-------------------------------------------------------------------------------------------
 
D:\TMP>df example.for
Compaq Visual Fortran Optimizing Compiler Version 6.6 (Update C)
Copyright 2003 Compaq Computer Corp. All rights reserved.
 
example.for
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
 
/subsystem:console
/entry:mainCRTStartup
/debugtype:cv
/pdb:none
C:\DOCUME~1\Andrew\LOCALS~1\Temp\objA1.tmp
dfor.lib
libc.lib
dfconsol.lib
dfport.lib
kernel32.lib
/out:example.exe
 
----------------------------------------------------------------------------------------------
 
 
В сообщении линкера  файл  
C:\DOCUME~1\Andrew\LOCALS~1\Temp\objA1.tmp - это объектный файл, который временно  создается, а после линкования стирается. В вашем листинге этого файла нет.
 
У меня появилась еще одна идея - может быть компилятор не может записать файл в каталог TMP потому, что в пути к нему есть подкаталог с кириллическим именем: АДМИНИ~
 
Создайте каталог для временных файлов просто в корне, например c:\tmp,  установите (в окне Fortran Command Prompt ДО запуска Far-а, если он запускается)
 
>set TMP=c:\tmp  
 
и попробуйте всю процедуру еще раз

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

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вообще говоря, все операции вроде идут с TEMP, а не с TMP
 
vaulin
не понятно каким боком Компак задействовал директорию С:\DOCUME~1\...
поместив туда свою системную dfor.lib?
ведь она общая, а не твоя локальная...
может действительно надо просто его аккуратно перепоставить...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 14:56 28-10-2008
Andrew10

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

Цитата:
вообще говоря, все операции вроде идут с TEMP, а не с TMP  

 
В документации написано, что c TMP (например, в файле envnotes.txt)
 

Цитата:
не понятно каким боком Компак задействовал директорию С:\DOCUME~1\...
поместив туда свою системную dfor.lib?  

 
Я думаю, чтоvaulin сам скопировал туда dfor.lib после первой неудачной попытки запуска df.
 
 

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 15:16 28-10-2008
akaGM

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

Цитата:
LINK : warning LNK4001: no object files specified; libraries used

 
можно ещё сделать так:
запустить такой батник

Код:
@set lib=
@set lib=[здесь самому руками прописать все библиотеки CVF, например из dfvars.bat]
df example.for

 
кстати, а у компака нет такой возможности как у IF читать файл установок,
что-то типа df.cfg (у интела он называется ifort.cfg)?

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 15:27 28-10-2008
vaulin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrew10
Спасибо большое, что не полинились проделать это!
Цитата:
Создайте каталог для временных файлов просто в корне, например c:\tmp,  установите (в окне Fortran Command Prompt ДО запуска Far-а, если он запускается)  
>set TMP=c:\tmp  
Far запускается нормально из Prompt. Сделал как Вы посоветовали: в Prompt до запуска Far выполнил set TMP=c:\tmp, проверил set TMP, установилась, запустил Far и в нем df ...; вот результат ) :
Compaq Visual Fortran Optimizing Compiler Version 6.5
Copyright 2000 Compaq Computer Corp. All rights reserved.
 
example.for
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
 
/subsystem:console  
/entry:mainCRTStartup  
/ignore:505  
/debugtype:cv  
/debug:minimal  
/pdb:none  
obj2462.tmp  
dfor.lib  
libc.lib  
dfconsol.lib  
dfport.lib  
kernel32.lib  
/out:example.exe  
LINK : fatal error LNK1104: cannot open file "TEMPFILE"
 
akaGM
 

Цитата:
не понятно каким боком Компак задействовал директорию С:\DOCUME~1\...  
поместив туда свою системную dfor.lib?  
ведь она общая, а не твоя локальная...  
может действительно надо просто его аккуратно перепоставить...

да кто бы знал. Переставлял, и не раз. Может, действительно, при установке я где-то забываю указть кириллицу или что-то в этом роде, не знаю ...

Цитата:
думаю, чтоvaulin сам скопировал туда dfor.lib после первой неудачной попытки запуска df

возможно, точно не помню, хотя ... да, точно, сейчас убрал оттуда dfor.lib и он выдал ошибку, кот. выдавал давным давно сразу после установки
/subsystem:console  
/entry:mainCRTStartup  
/ignore:505  
/debugtype:cv  
/debug:minimal  
/pdb:none  
C:\DOCUME~1\dfor.lib  
libc.lib  
dfconsol.lib  
dfport.lib  
kernel32.lib  
/out:example.exe  
LINK : fatal error LNK1181: cannot open input file "C:\DOCUME~1\dfor.lib"
 
ерунда какая-то
 
Добавлено:
Andrew10
* полЕнились
 
Добавлено:
Хм, ... поменял в Пуск->Настройка ... ->Переменные среды пользователя Администратор с "c:\Docum...\Админ..." на "c:\WINNT\Temp" (без кириллицы) под Fortran Command Promt всё заработало! Пишешь df example.for и всё работает! а вот в Windows по-прежнему не работает
 
Добавлено:
Ура!!!
Andrew10 и akaGM
всё, сделал! Действительно, Andrew10, Вы были правы, дело оказалось в том, что переменная TMP содержала кириллицу. Когда менял эти переменные в Windows через Настройки - Панель управления - ..., то, по какой-то причине, они не обновлялись. Пришлось вручную прописать в командной строке: set TMP=c:\WINNT\TEMP. Видимо, команда df хранит эти системные переменные где-то в оперативке, или кэше, наверное ... не знаю ... в общем они не обновлялись, пока не прописал вручную. Слава Богу! Большое Вам спасибо за помощь и содействие! да благословит вас Господь!

Всего записей: 80 | Зарегистр. 16-10-2008 | Отправлено: 07:41 29-10-2008
Открыть новую тему     Написать ответ в эту тему

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