2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4
 
 Re: Фортран
Сообщение21.09.2015, 18:41 
Аватара пользователя


13/08/13

4323
Все заработало, надо было убрать implicit none :mrgreen: :facepalm:

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 18:41 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1055574 писал(а):
Почему не работает?
Во время компиляции первой строчки, где встречается вызов f(x), она еще не описана. Возьмите в качестве "шаблона" мой второй пример, в котором есть contains.

-- 21.09.2015, 18:42 --

Pphantom в сообщении #1055580 писал(а):
Все заработало, надо было убрать implicit none
Это самый худший способ решения проблемы.

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 18:42 
Аватара пользователя


13/08/13

4323
Pphantom
Да не, он ее снизу читает.
Там просто implicit none все стирал :mrgreen:

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 18:50 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1055582 писал(а):
Там просто implicit none все стирал
В Фортране есть правило описания переменных "по умолчанию". В общем-то это архаизм, сохраненный для обратной совместимости, implicit none его отключает.

Когда этого отключения нет, при обнаружении вызова f(x) тип возвращаемого значения функции выбирается по умолчанию (и это real(4)). В данном конкретном случае это срабатывает, но если Вам понадобится написать функцию, возвращающую что-либо другое (целое, строку, вещественное число с другой точностью, массив и т.д.), то спасти дело таким образом не получится.

Поэтому запомните правило: ставить implicit none всегда, а затем корректно обрабатывать вылезающие ошибки. Иначе рано или поздно нарветесь на проблемы.

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 19:04 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Sicker в сообщении #1055554 писал(а):
А что круче, Си или Фортран?

На вашем уровне, разница иррелевантна.

-- 21.09.2015 19:09:36 --

Dmitriy40 в сообщении #1055573 писал(а):
Я бы уточнил, Фортран лучше из-за наличия огромного количества готовых математических библиотек, хорошо оптимизированных (неслабыми математиками). Но с появлением новых процессоров с расширенными командами и гетерогенных сред (CPU+GPU) ситуация может и поменяться, не уверен что библиотеки на Фортране будут так же вылизывать под новую аппаратуру как на С.

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

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

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:05 
Заслуженный участник


20/08/14
11177
Россия, Москва
Munin
Не хочется спорить, да и не владею я информацией в достаточной мере.
Просто неоднократно видел сравнения скорости вычислений Интеловских С-ных библиотек под новые процессоры (вплоть до оптимизаций ассемблерного кода библиотек под конкретную модель процессора), а вот про Фортрановские аналоги слышно сильно меньше. Может и тоже есть в сравнимом количестве и качестве и не слышал лишь из-за более редкого использования "широкими слоями народа", но сомневаюсь, хотя бы потому что Фортран не позволит так легко использовать в прикладной программе особенности аппаратуры как С.
Хотя, если библиотеки поставляются в виде obj/lib/dll, то вопрос на каком языке писаны и под какой - неактуален, понятно.
(Это тоже из ЛС с Munin. Посчитали лучше в тему. За некоторую вольность выражений извиняюсь.)

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:08 
Заслуженный участник
Аватара пользователя


30/01/06
72407
(Это реплики из ЛС. Прошу прощения за недостаточную причёсанность.)

Во-первых, для фортрана меряются не процы, а кластеры. Это вопрос параллельной архитектуры, и кучи смежных вопросов (включая компилятор и его оптимизацию, среду исполнения, конкретную вычислительную задачу). На уровне одного проца разница между Си и фортраном иррелевантна.

Конечно, "широкие слои народа" здесь вообще ни при чём. Это узкая область.

Для вычислений, не язык затачивается под особенности аппаратуры, а уже аппаратура затачивается под особенности языка (и здесь всегда - фортрана) и задачи (здесь бывают разные расклады, но в основном берут ДУЧП, кроме специализированных кластеров, например, под квантовые расчёты).

Во-вторых, для вычислительных задач "obj/lib/dll" - это не ответ, потому что сам интерфейс библиотеки заточен под язык: там встречаются передачи туда-сюда больших массивов, например, или ссылок на функции. Портировать такую библиотеку на другой язык всё равно приходится и всё равно это проблема, и часто не удаётся сделать этого идеально - без потерь по скорости или памяти.

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:30 
Аватара пользователя


13/08/13

4323
Код:
program Console19

    implicit none

    real p
    p=6
   
        if (p<10)
        then p=p+1
        else p=p-1
       
   
    end if
   
     

    end program Console19

Что ему не нравится?

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:33 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1055627 писал(а):
Что ему не нравится?
Переносы строк не там, где надо. Фрагмент с условным оператором должен выглядеть так:
Используется синтаксис Fortran
if (p<10) then
  p=p+1
else
  p=p-1
end if

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:42 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Я скажу, что не нравится мне:
- использование тега code вместо тега syntax;
- неправильные отступы.

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:44 
Заслуженный участник


20/08/14
11177
Россия, Москва

(Оффтоп)

Стесняюсь спросить, а строгие правила отступов в Фортране точно отменили? ;-) Не нравится отступ в "end programm". Да и if режет глаза.

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:49 
Заслуженный участник


09/05/12
25179
Dmitriy40 в сообщении #1055634 писал(а):
Стесняюсь спросить, а строгие правила отступов в Фортране точно отменили? ;-) Не нравится отступ в "end programm". Да и if режет глаза.
Да. Опять-таки со стандарта Fortran 90, которым (как минимум) пользуется ТС.

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 20:53 
Аватара пользователя


13/08/13

4323
Pphantom
Спасибо вам большущее :-)
Munin
Исправлюсь:)

-- 21.09.2015, 20:53 --

А как построить график?

-- 21.09.2015, 20:54 --

А кстати, а для метода касательных мы вычисляем приближение вида $f(x)<\varepsilon$ или $x_{i+1}-x_{i}<\varepsilon$?

 Профиль  
                  
 
 Re: Фортран
Сообщение21.09.2015, 21:16 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1055639 писал(а):
А кстати, а для метода касательных мы вычисляем приближение вида $f(x)<\varepsilon$ или $x_{i+1}-x_{i}<\varepsilon$?
А как угодно. Если есть какие-то данные о поведении функции в окрестности корня, то можно осмысленно выбрать один из этих двух вариантов, если нет - берите любой. Только не забудьте про модули (и значения функции, и разности приближений).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2, 3, 4

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Geen


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group