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
11058
Россия, Москва
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
11058
Россия, Москва

(Оффтоп)

Стесняюсь спросить, а строгие правила отступов в Фортране точно отменили? ;-) Не нравится отступ в "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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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