Fortran 프로그램 내에서 export $VAR=3
명령을 실행하고 싶습니다. 불행하게도 서브 루틴 system
은 처리 할 수 없습니다. VAR
의 초기화를 수행하는 방법을 알려주십시오. ifort 버전 11.1을 사용하고 있습니다.Fortran 프로그램에서 bash 명령 "export"를 실행하는 방법은 무엇입니까?
1
A
답변
0
인텔 포트란에서 비표준 확장자 SETNVQQ
을 사용하거나 적절한 운영 체제 기능 (Win API 또는 POSIX)을 호출 할 수 있습니다.
포트란 표준 방법은 없습니다.
현재 프로세스와 하위 프로세스에만 영향을 미칩니다.
character(20) :: val
call setenvqq("x=5")
call get_environment_variable(name="x",value=val)
print *, val
call execute_command_line("echo $x")
end
및
> ifort setenvqq.f90
> ./a.out
5
5
2
하나의 가능한 해결책은 iso_c_binding
내장 모듈 포트란에서 C 루틴을 사용하는 것이다. C를 통해 환경 변수를 설정할 수 있으며,이 변수는 Fortran 프로그램에 의해 시작된 모든 프로그램에 액세스 할 수 있습니다. 이것은 대부분의 플랫폼 및 컴파일러에서 작동합니다.
C 루틴
#include <stdio.h>
#include <stdlib.h> /* putenv, getenv */
void c_setgetenv()
{
char* p;
putenv("x=100");
p = getenv("x");
if (p!=NULL)
printf (" The variable is: %s\n",p);
}
포트란 프로그램이 예에서
program main
use, intrinsic :: iso_c_binding
implicit none
! The interface for the C routine
interface
subroutine c_setgetenv() bind(c)
import ! use declarations from host (implicit none, iso_c_binding)
end subroutine c_setgetenv
end interface
character(len=20) :: val
!! begin
call c_setgetenv()
call get_environment_variable(name="x",value=val)
print *, "Fortran: ", val
end program main
, 나는 포트란에서 C 루틴에 대한 인수를 통과하지 않은,하지만 당신은 사용자 정의하고 처리 할 수 있습니다 필요한 경우. C 오브젝트 코드를 컴파일하고 Fortran 프로그램에 링크해야합니다.
관련 문제
- 1. 파스칼 프로그램에서 명령 프롬프트를 실행하는 방법은 무엇입니까?
- 2. Bash 스크립트와 명령 행에서 수동으로 실행하는 명령
- 3. Mac에서 .bash 파일을 실행하는 방법은 무엇입니까?
- 4. Google 크롬 확장 프로그램에서 명령 줄을 실행하는 방법은 무엇입니까?
- 5. Java 프로그램에서 "javac 및 java 명령"을 실행하는 방법은 무엇입니까?
- 6. org-export를 사용하여 색인을 생성하는 방법은 무엇입니까?
- 7. Java 응용 프로그램에서 명령을 실행하는 방법은 무엇입니까?
- 8. Java 프로그램에서 mvn 명령을 실행하는 방법은 무엇입니까?
- 9. Python 프로그램에서 Windows의 경로를 실행하는 방법은 무엇입니까?
- 10. Jelly에서 bash 스크립트를 실행하는 방법은 무엇입니까?
- 11. 루핑 Bash 스크립트를 서비스로 실행하는 방법은 무엇입니까?
- 12. bash 스크립트에서 파일을 찾고 실행하는 방법은 무엇입니까?
- 13. 덤프에서 bash 명령을 실행하는 방법은 무엇입니까?
- 14. 브라우저에서 bash 스크립트를 실행하는 방법은 무엇입니까?
- 15. 요리사에서 bash 스크립트 파일을 실행하는 방법은 무엇입니까?
- 16. bash 스크립트에서 PHP 파일을 실행하는 방법은 무엇입니까?
- 17. bash 스크립트에서 git 명령을 실행하는 방법은 무엇입니까?
- 18. Raspbian의 Crontab에서 Bash 스크립트를 실행하는 방법은 무엇입니까?
- 19. 매크로 쉘에서 bash 스크립트를 실행하는 방법은 무엇입니까?
- 20. bash 명령을 다른 사용자로 실행하는 방법은 무엇입니까?
- 21. 파이썬 스크립트에서 bash 명령을 실행하는 방법은 무엇입니까?
- 22. bash 쉘에서 명령 출력을 리디렉션하는 방법은 무엇입니까?
- 23. bash 명령 인수를 올바르게 작성하는 방법은 무엇입니까?
- 24. Fortran 명령 줄 인수
- 25. bash 스크립트에서 외부에 정의 된 bash 함수를 실행하는 방법은 무엇입니까?
- 26. Fortran exe를 Fortran DLL과 연결하는 방법은 무엇입니까?
- 27. 새 명령 행 창에서 프로그램을 실행하는 bash 명령
- 28. 프로그램을 실행하는 올바른 Fortran 컴파일러
- 29. GUI없이 여러 개의 동시 bash 쉘을 실행하는 방법은 무엇입니까?
- 30. C++ 프로그램에서 명령 행 명령을 실행하는 방법
어떤 포트란을 사용하고 계십니까? '90' 또는'95' 또는 인텔의 것? – SteveFest
포트란 95를 사용하고 있습니다. – Roloka
답변을 알고 있습니까? – Roloka