Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] Разобраться в синтаксисе, Старая программа синтаксис не ясен 
V
    Опции темы
Cr@$h
Дата 3.2.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



artjomp, код этот написан очень дотошно. Построчно, можно сказать. Если вы собираетесь его профессионально использовать, то лучше переписать под современный диалект. Например, смотрите как компактно записываются последние функции:
Код

subroutine D10(KP)
    common /W3/ C(6,20), NP(20)
    KP = 5
    NP(1:KP) = [(i + 1, i = 1, KP)]
    C(:,1:KP) = Reshape([&
        11800., 8083.,  6138.,  4950.,  4150.,&
        11900., 8083.,  6125.,  4926.,  4133.,&
        12090., 8180.,  6170.,  4956.,  4138.,&
        12225., 8260.,  6212.,  4976.,  4150.,&
        12345., 8280.,  6228.,  4992.,  4155.,&
        12400., 8307.,  6238.,  4996.,  4165.],&
        [6, KP], [0, 0], [2, 1])
end subroutine D10

subroutine D12(KP)
    common /W3/ C(6,20), NP(20)
    KP = 8
    NP(1:KP) = [(i + 1, i = 1, KP)]
    C(:,1:KP) = Reshape([&
        ...
        ...],&
        [6, KP], [0, 0], [2, 1])      
end subroutine D12

subroutine D14(KP)
    common /W3/ C(6,20), NP(20)
    KP = 16
    NP(1:KP) = [3, 4, 6, (i + 4, i = 4, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])      
end subroutine D14

subroutine D16(KP)
    common /W3/ C(6,20), NP(20)
    KP = 7
    NP(1:KP) = [(i * 2 + 2, i = 1, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D16

subroutine D18(KP)
    common /W3/ C(6,20), NP(20)
    KP = 9
    NP(1:KP) = [5, 6, (i * 2 + 2, i = 3, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D18

subroutine D20(KP)
    common /W3/ C(6,20), NP(20)
    KP = 10
    NP(1:KP) = [(i * 2 + 4, i = 1, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D20

subroutine D22(KP)
    common /W3/ C(6,20), NP(20)
    KP = 9
    NP(1:KP) = [(i * 2 + 4, i = 1, 4), (i * 2 + 6, i = 5, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D22

subroutine D25(KP)
    common /W3/ C(6,20), NP(20)
    KP = 8
    NP(1:KP) = [10, 12, (i * 4 + 4, i = 3, 6), 30, 32]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D25

subroutine D28(KP)
    common /W3/ C(6,20), NP(20)
    KP = 8
    NP(1:KP) = [(i * 4 + 8, i = 1, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D28

subroutine D32(KP)
    common /W3/ C(6,20), NP(20)
    KP = 9
    NP(1:KP) = [(i * 4 + 12, i = 1, KP)]
    C(2:,1:KP) = Reshape([&
        ...
        ...],&
        [5, KP], [0, 0], [2, 1])
end subroutine D32

subroutine D6(KP)
    common /W3/ C(6,20), NP(20)
    KP = 9
end subroutine D6

subroutine D15(KP)
    common /W3/ C(6,20), NP(20)
    KP = 9
    NP(1:KP) = [(i + 9, i = 1, KP)]
    C(2,1:KP) = [1445., 1174., 990., 857., 756., 677., 613., 560., 515.]
end subroutine D15

Я вовсю использовал конструкторы массивов. Троеточия можете дополнить по образу и подобию. Первую часть программы в переделанном виде тоже показывал. Работать будет на любом современном компиляторе или на компиляторе, поддерживающем Fortran 90.

А теперь по делу.

Цитата(artjomp @  3.2.2009,  16:05 Найти цитируемый пост)
Cr@$h она определена само собой
  • Если честно, похоже на массив OK, но вот только индексы у него через деление определяются.
  • Возможно, эта функция была определена где-то ещё. Посмотрите файлы *.mod, например.
  • Она точно не входит ни в один стандарт, поэтому является пользовательской.
  • Уверен, нужно попробовать ещё раз изучить историю вопроса (возникновения этой программы).


Это сообщение отредактировал(а) Cr@$h - 4.2.2009, 00:12
PM MAIL ICQ   Вверх
artjomp
Дата 4.2.2009, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.2.2009

Репутация: нет
Всего: нет



Прошу прощения smile
Я тормоз действительно воткнул не тот файл, где эта функция была. Добавил. Однако.... Теперь компилятор никаких ошибок не выдал просто повисел чёрным экраном и всё. А что теперь-то делать? Как с ней работать? Или может exe-файл куда-нибудь поместился?

Это сообщение отредактировал(а) artjomp - 4.2.2009, 12:33
PM MAIL   Вверх
artjomp
Дата 4.2.2009, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 1.2.2009

Репутация: нет
Всего: нет



Прошу проигнорировать вопрос: нашёл exe-файл... только назвается он почему-то a.exe :-(
Но в целом послезавтра потащу тестировать на месте результаты!  smile 
Всем, кто участвовал в помощи огромное преогромное спасибо!!!
Я ещё сюда вернусь, когда буду переписывать эту прогу посовременнее  smile  так что, Cr@$h, держитесь! Я Вас замучаю вопросами!

Это сообщение отредактировал(а) artjomp - 4.2.2009, 01:04
PM MAIL   Вверх
Cr@$h
Дата 4.2.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(artjomp @  4.2.2009,  02:01 Найти цитируемый пост)
нашёл exe-файл... только назвается он почему-то a.exe :-(

Ясное дело. Вы используете gfortran. Под Windows вы его запускаете с использованием Cygwin или подобной библиотеки. Они позволяют запускать Linux/Unix-приложения. Вот. А gfortran по умолчанию создаёт исполняемый файл a.out. В Windows они и переделывают её в a.exe, чтобы она стала порядочным виндовским приложением. Имя получаемого исполняемого файла там можно задавать.
Цитата(artjomp @  4.2.2009,  02:01 Найти цитируемый пост)
Но в целом послезавтра потащу тестировать на месте результаты!  smile 

Давайте. Будем переходить от синтаксиса к семантике smile
Цитата(artjomp @  4.2.2009,  02:01 Найти цитируемый пост)
Я ещё сюда вернусь, когда буду переписывать эту прогу посовременнее  smile  так что, Cr@$h, держитесь! Я Вас замучаю вопросами!

 smile Мы все тут держимся. Заходите, будет интересно.
PM MAIL ICQ   Вверх
takedo
Дата 17.3.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: нет
Всего: 3



Друзья, у меня схожая проблема с автором топика, но может быть лучше кто-нибудь даст ссылку на то место, где лежит описание или учебник по фортрану и конечно же желательно на русском языке?
ЗЫ: Быстрый поиск в инете привел к файлу для скачивания которого понадобилось отсылать СМСку, за которую надо платить кучу денежков, а что в книге - непонятно. Так что уж лучше проверенную ссылочку, пожалуйста smile 


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
Cr@$h
Дата 18.3.2009, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Посмотрите в подфоруме Компьютерная литература на Винграде.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.