Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Константа в фортране  (Прочитано 4818 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Константа в фортране
« : 21 Мая 2009, 22:17:59 »

     program test
parameter n=10
real a
a=5
print *, a
end
alexey@alexey-laptop:~$ gfortran test.for -o main1 -x fortran
test.for:3.72:

      real a                                                           
                                                                        1
ошибка: Unexpected data declaration statement at (1)

     program test
! parameter n=10
real a
a=5
print *, a
end
alexey@alexey-laptop:~$ gfortran test.for -o main1 -x fortran
alexey@alexey-laptop:~$ ./main1
   5.0000000   
alexey@alexey-laptop:~$

как правильно описать константу, или что я не так делаю( На других компиляторах Фортрана все отлично)

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #1 : 21 Мая 2009, 23:40:42 »

     program test
parameter n=10
real a
a=5
print *, a
end
...
как правильно описать константу, или что я не так делаю( На других компиляторах Фортрана все отлично)
Взять n=10 в скобки.

Пользоваться implicit декларациями — моветон.

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #2 : 22 Мая 2009, 00:23:28 »
Огромнейшее спасибо))

Пользователь решил продолжить мысль 22 Мая 2009, 00:29:42:
REAL XP(DIMM), RP(DIMM), UP(DIMM)
REAL X0(DIMM)
Вот такое описание не работает ругается.(в других компиляторах работает=))
Можно поподробней про:"Пользоваться implicit декларациями — моветон."
« Последнее редактирование: 22 Мая 2009, 00:29:42 от Alexey_aka_Lave »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #3 : 22 Мая 2009, 01:11:13 »
Пожалуйста.

REAL XP(DIMM), RP(DIMM), UP(DIMM)
REAL X0(DIMM)
Вот такое описание не работает ругается.(в других компиляторах работает=))
Что такое DIMM ? В общем, показывай целостные куски кода, в которых упоминаются по крайней мере декларации всего, что есть в проблемных строках и как именно ругается.

Другие компиляторы (интересно какие) думаю можно тоже настроить так, что они будут выдавать ошибки на твоём коде.

Цитировать
Можно поподробней про:"Пользоваться implicit декларациями — моветон."
Если ты в своей программе выше напишешь что-то типа
       program ...
       implicit none
       ...
то опять получишь ошибки. Прикол в том, что по умолчанию за именами переменных, начинающихся с конкретных букв, закреплён тип, implicit none это бредовое поведение по умолчанию отключает. Бредовое, ибо является ещё одинм источником ошибок. Приучайся писать, не опираясь на такие вот фишки.

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #4 : 22 Мая 2009, 01:38:38 »
(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)
на OpenVMS (Не в курсе какой там компилятор))) отлично пашут)

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #5 : 22 Мая 2009, 02:01:35 »
Мдя. Я же написал про IMPLICIT.

По умолчанию DIMM без явного объявления считается вещественным, ибо
Цитировать
IMPLICIT: default IMPLICIT REAL(A-H, O-Z), INTEGER(I-N)

(Нажмите, чтобы показать/скрыть)

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #6 : 22 Мая 2009, 02:17:06 »
Знал я про INTEGER(I-N) тока сразу не понял что про них родимых речь идет))
теперь вообще супер))
ЗЫ а как константу объявить определенного типа, пока добавил IDIMM, так на будущее что бы знать ?(раньше не парился с этим))

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #7 : 22 Мая 2009, 02:19:21 »
Заглянуть под спойлер. Там написано.

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #8 : 22 Мая 2009, 15:59:24 »
не заметил сначала, все супер отлично пашет.
Вот тока осталось с дебагером разобраться). GDB конечно хорошо, но мне бы попроще и по нагляднее.
Хотелось что ни-будь как на OpenVMS
Пол экрана код, указатель показывает выполняемую строку, можно проверить значение всех переменных

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #9 : 24 Мая 2009, 11:38:25 »
К gdb есть несколько граф.интерфейсов.

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #10 : 01 Июня 2009, 22:43:00 »
ddd весьма неплох тока ещё не полностью разобрался.
(Нажмите, чтобы показать/скрыть)

Если раскоментировать !WRITE (6,*)T программа зависает отказывается работать .
Без печати работает вроде нормально. В чем проблема кто подскажет.
« Последнее редактирование: 02 Июня 2009, 01:49:15 от Kwah »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #11 : 02 Июня 2009, 01:52:26 »
Файл-то, которому присвоен нумер 6 открыт? На запись?

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #12 : 02 Июня 2009, 19:35:44 »
Это вывод на экран.
если написать в этом месте print *,T  происходит тоже самое.

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Константа в фортране
« Ответ #13 : 02 Июня 2009, 20:10:59 »
Это вывод на экран.
если написать в этом месте print *,T  происходит тоже самое.
Ну, тебе видней, потому что из приведённого кода этого понять невозможно. В общем, показывай код, или по крайней мере рассказывай где и каким образом открываются файлы на запись... А вообще, кроме этого в данной строке не видно ничего криминального, ошибка скорее всего в другом месте, а здесь она лишь проявляет себя.

ЗЫ. За подобный стиль кодирования нужно руки отрывать.

Оффлайн Alexey_aka_Lave

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Константа в фортране
« Ответ #14 : 02 Июня 2009, 21:20:42 »
Этот же код на ОпенВмс на экран (и в файл) отлично печатает
(Нажмите, чтобы показать/скрыть)


(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль [time]Tue Jun  2 19:24:57 2009[/time]:
В процедурах rkf45,rkfs,fehl ошибок скорее всего нет, это программы из "Форсайтовского" пакета. Проверен как минимум несколько сотнями людей)
ЗЫ что плохого в таком стиле писания кода ??) :idiot2:
« Последнее редактирование: 03 Июня 2009, 00:46:53 от Kwah »

 

Страница сгенерирована за 0.025 секунд. Запросов: 21.