0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 3
1

Параметры командной строки

25.09.2013, 15:29. Показов 3941. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, уважаемые Фортран-программисты! Столкнулся со следующей задачей: необходимо автоматизировать запуск программы на фортране (f90) с помощью скрипта, изменяя параметры вызова с помощью аргументов командной строки. Сама фортрановская программа должна была быть чёрным ящиком, в код которой не нужно заглядывать, т.к. автор давно уже неизвестно где. Но, как оказалось, программа устроена так, что требуется:
1. Запуск программы из консоли
2. Нажатие Enter
3. Ввод параметров (4 штуки через пробел)
4. Нажатие Enter

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


Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module param
    real*8 hr,hz,hr2,hrinv,hzinv,hrsq,hzsq,ht,ht2,r1,zl,eps,j0,d,rst,sigd0,siga0,hd,h,my
    real*8 zsig,rsig,betsr,betsz,tend,phi0,rs,betc,cf,sum0,sum1
    real*8,allocatable :: rstfl(:),zfl(:),zstfl(:),j0fl(:),gam(:),bet(:)
            integer nr,nz,nr1,nz1,itend,npr,nrzmax,nst,nq
        
            contains 
            subroutine rnd()
    character  (50) filename
    open(99,file='param.dat')
    open(101,file='param1.dat')
 
          read(99,*,iostat=ios)eps,r1,nr,zl,nz,ht,tend,siga0,hd,h,my,zsig,rsig,betsr, &
        betsz,cf,nq,phi0,rs,betc
            close(99)
                allocate (rstfl(nq),zfl(nq),zstfl(nq),j0fl(nq),gam(nq),bet(nq)) 
            
    
    do il=1,nq
  read(101,*,iostat=ios)rstfl(il),j0fl(il),gam(il),bet(il)
  enddo
  
 
    
  
  close(101)
 
! Как я понимаю, это именно оно и это именно те параметры
    read *,sigd0,zstfl(1),zfl(1),filename   
    
    
    open(77,file=filename)
            hr=r1/float(nr)
            hz=zl/float(nz)
            hrinv=1.d0/(hr)
            hzinv=1.d0/(hz)
        ht2=ht*0.5d0
            nr1=nr+1
            nz1=nz+1
            
    
 
             endsubroutine rnd
                 endmodule
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2013, 15:29
Ответы с готовыми решениями:

"Hello World" не компилируется из командной строки (ifort)
поставил себе ifort 12 на винду без визуал студии. нужна качественная оптимизация. программа...

Параметры командной строки
Есть программа project1.exe Мне нужно чтобы если её зпускаешь просто клипом ничего не происходило...

Параметры командной строки
Подскажите пожалуйста, какие у лазаруса параметры командной строки и в какую папку складываются...

Параметры командной строки
Доброго времени. Необходимо для начала вывести все аргументы командной строки. Программа -...

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
37443 / 20814 / 4281
Регистрация: 12.02.2012
Сообщений: 34,232
Записей в блоге: 14
25.09.2013, 17:09 2
Цитата Сообщение от vklim Посмотреть сообщение
Для автоматического скрипта это неприемлемо, да и неудобно.
- конечно. Но есть альтернативный путь: делаешь cmd-файл и в него пишешь примерно следующее:

Код
echo Первый_пар Второй_пар Третий_пар Четвертый_пар | имя_exe_файла
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 3
26.09.2013, 15:08  [ТС] 3
Цитата Сообщение от Catstail Посмотреть сообщение
Но есть альтернативный путь:
Код
echo Первый_пар Второй_пар Третий_пар Четвертый_пар | имя_exe_файла
Да, спасибо, это, конечно же, простое и, самое главное, работающее решение в данном случае. Но это именно альтернативный путь А как вот бороться с командной строкой...
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37443 / 20814 / 4281
Регистрация: 12.02.2012
Сообщений: 34,232
Записей в блоге: 14
26.09.2013, 15:21 4
Загляни сюда, вдруг поможет.
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 3
26.09.2013, 15:44  [ТС] 5
Цитата Сообщение от Catstail Посмотреть сообщение
Загляни сюда, вдруг поможет.
Это видел уже. Из мануала ничего не понял, а USING DFLIB ругается. Может, из-за Линукса
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37443 / 20814 / 4281
Регистрация: 12.02.2012
Сообщений: 34,232
Записей в блоге: 14
26.09.2013, 19:23 6
Если бы "припекло", я поступил бы так:

1) разобрал бы интерфейс взаимодействия с Cи (он должен быть);
2) написал бы на Cи программу-запускач, которая принимала бы параметры командной строки и передавала бы их программе на Фортране.
0
26.09.2013, 19:23
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2013, 19:23
Помогаю со студенческими работами здесь

Параметры командной строки
Как можно реализовать в Python если ( script -r ) чтобы он выполнил одно и если ( script -s )...

Параметры командной строки
ребят помогите со следующим вопросом. мне нужно при запуске ехе файла двойным щелчком(не из под...

Параметры командной строки
В VS2008 пытаюсь вывести на печать параметры командной строки: #include <tchar.h> #include...

Параметры командной строки
Вообще не уверен в правильности кода. Выдает две ошибки при трансляции Хотелось бы узнать как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как организовать домашнее хранилище фильмов с общим доступом для всей семьи
InfoMaster 20.01.2025
Преимущества домашнего медиасервера В современном мире, где цифровой контент стал неотъемлемой частью нашей жизни, организация домашнего медиасервера становится все более актуальной задачей. . . .
Перспективы развития жестких дисков: есть ли у них будущее?
InfoMaster 20.01.2025
История и эволюция жестких дисков История развития жестких дисков начинается в 1956 году, когда компания IBM представила первое устройство для хранения данных на магнитных пластинах - IBM 350. . .
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru