|
|
|
Dark Elf |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 26.12.2003 Где: Брисбен Репутация: нет Всего: 10 |
Добрый день
Пишу первую в жизни функцию на Фортран 2003 (если что то в Фортран 90 те же результаты):
При попытке скомпилить (при включении отмеченной строчки компилятор ругается на ошибку: Function 'arcsin' at (1) has no IMPLICIT type Не подскажете ли случайно как это исправить? |
|||
|
||||
Фантом |
|
||||
Вы это прекратите! Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Проблема в том, что на момент компиляции программы функция еще не объявлена и, соответственно, неизвестна. Можно сделать следующее:
1) Описать в программе arcsin как "переменную" типа real. Это очень плохой "костыль", соранившийся ради обратной совместимости с древними стандартами языка, но все же допустимый. 2) Вставить в заголовок основной программы (после описания переменных) интерфейсный блок примерно такого вида:
В терминах, возможно, более знакомых C/C++ это объявление прототипа функции. Это уже нормально, но в данном случае является излишеством. 3) Воспользоваться существующем в современном Фортране механизмом модулей и встроенных функций. В данном случае надо просто перенести строку end program test в конец файла, а на ее место вставить новую строку contains. Это наиболее нормальный способ. Однако при этом действие оператора implicit none в основной программе будет распространяться также и на функцию, поэтому тип аргументов iter и value нужно будет описать. Заодно, кстати, можно немного упростить описание функции. Если оформить ее заголовок как
то переменную s можно будет использовать так же, как и раньше, но вот строчка arcsin=s не понадобится, в качестве значения функции будет возвращено содержимое переменной s в момент окончания работы функции. Это сообщение отредактировал(а) Фантом - 6.4.2014, 12:29 |
||||
|
|||||
Dark Elf |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 26.12.2003 Где: Брисбен Репутация: нет Всего: 10 |
***DEL***
Это сообщение отредактировал(а) Dark Elf - 6.4.2014, 14:56 |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Fortran | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |