![]() |
|
|
![]()
|
|
| Mormishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
Не могу понять, вот так?
|
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Сформулируй более четко, чего ты хочешь.
Если хочешь размещать в функции динмассив, то соотв. форм.параметр должен иметь атрибут ALLOCATABLE ( и соотв. аргумент должен быть ALLOCATABLE) Если хочешь возвращать динмассив как рез-т функции, то функция должна быть объявлена как возвращающая массив (:) и иметь атрибут ALLOCATABLE (причем это надо указать в теле функции (до исполняемых инструкций)). Это сообщение отредактировал(а) FCM - 20.12.2010, 21:11 |
|||
|
||||
| Mormishka |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
FCM,
Я хочу чтобы функция принимала динамический массив a и целочисленную переменную n по значению. А возвращала массив a. Я не понимаю стоит ли писать в теле функции
или нет? Я все правильно написал?
|
||||
|
|||||
| Mormishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
Попробовал написать функцию прогонки. Не могу использовать локальные динамические массивы?
------ Построение начато: проект: PVFProject2, Конфигурация: Debug Win32 ------ Compiling Project ... ConsoleApp.f90 1 C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\ConsoleApp.f90(126) : warning W0119 : Redundant specification for progon 2 C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\ConsoleApp.f90(129) : error S0070 : Incorrect sequence of statements 3 C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\ConsoleApp.f90(130) : error S0070 : Incorrect sequence of statements 0 inform, 1 warnings, 2 severes, 0 fatal for progon ConsoleApp.f90 1 C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\ConsoleApp.f90(126) : warning W0119 : Redundant specification for progon 2 C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\ConsoleApp.f90(129) : error S0070 : Incorrect sequence of statements 3 C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\ConsoleApp.f90(130) : error S0070 : Incorrect sequence of statements 0 inform, 1 warnings, 2 severes, 0 fatal for progon PVFProject2 build failed. Build log was saved at "file://C:\Users\Александр\Documents\Visual Studio 2008\Projects\PVFProject2\PVFProject2\Win32\Debug\BuildLog.htm" ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== |
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
5-ая строка - исполняемая инструкция
6,7-ая - инструкции объявления - неправильная последовательность инструкций: Incorrect sequence of statements Локальные массивы al, be не обязательно делать ALLOCATABLE - естесТвеннее сделать их автоматическими т.е. просто определить как REAL(8) :: al(n), be(n) Правда пока не совсем понимаю общий ход мысли. Если массивы, передаваемые, через параметры cf, df, ef, bf, задаются в программной единице вызывающей progon, и размещаются в той же единице, то тогда не нужно, чтобы формальные параметры были allocatable - они могут быть обычными. Формальные прарметры процедуры делают allocatable, если массивы надо размещать именно в процедуре, а до вызова процедуры они неразмещенные. Т.е. если массивы размещаются в вызывающей программной ед-це, то progon может принимать их как обычные статические массивы. Что касается рез-та функции, то поскольку ее размер известен в момент вызова процедуры, ее можно объявить просто как функцию, возвращающую массив размера n
PS/ В Фортране возможно передавать массив, не передавая его размер (размер можно получить с помощью функции SIZE) Это сообщение отредактировал(а) FCM - 22.12.2010, 18:32 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |