Форум программистов, компьютерный форум, киберфорум
Fortran
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 3
1

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

25.09.2013, 15:29. Показов 3773. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2013, 15:29
Ответы с готовыми решениями:

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

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

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

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

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
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
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
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
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
26.09.2013, 19:23 6
Если бы "припекло", я поступил бы так:

1) разобрал бы интерфейс взаимодействия с Cи (он должен быть);
2) написал бы на Cи программу-запускач, которая принимала бы параметры командной строки и передавала бы их программе на Фортране.
0
26.09.2013, 19:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2013, 19:23
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru