Интерфейс между csh и fortran кодом - PullRequest
4 голосов
/ 07 марта 2011

У меня есть скрипт (csh), который вызывает исполняемый файл fortran.Каждый раз, когда скрипт вызывает код Фортрана, счетчик должен увеличиваться, и с помощью этого счетчика мне нужно создать новый выходной файл.

Могу ли я передать переменную в свой код Фортрана или есть простой способ сделатьТо же самое.

Я пробовал этот код:

 program callsave  
c  
 implicit none  
       integer i,j  
c  
do j = 1, 10  
  call trysave(i)  
  print *, i  
end do  
stop  
end  
c  
subroutine trysave(i)  
       integer k  
       data k /1/  
       save k  
       i = k  
       k = k + 1  
           end subroutine  
c  

Это прекрасно работает индивидуально.Но когда я вызываю эту подпрограмму отдельно в моем коде на языке fortran через сценарий, она не увеличивается.Он просто имеет начальное значение «1», а выходные файлы были перезаписаны.

Любая помощь / предложение будут очень благодарны.

Спасибо
Правин.

1 Ответ

3 голосов
/ 07 марта 2011

Это то, что вы ищете способ передачи целочисленного значения из сценария оболочки в код Fortran? В этом случае одним из способов будет использование аргументов командной строки, см., Например, здесь: http://gcc.gnu.org/onlinedocs/gfortran/GETARG.html

Я не уверен, каков официальный статус подпрограммы getarg(), но по опыту она прекрасно работает в компиляторах gfortran, intel и PGI.

...