다음과 같은 문제가 있습니다.가 또한 ./program.x <main.in> main.out
"main.out"(이름이 프로그램을 호출 할 때 내가 설정할 수), 보조 출력해야 : 나는 이런 식으로 호출 할 수 있도록하려면 Fortran90에서 프로그램을 작성하려면 서면으로 "main.in"또는 "main.out"과 비슷한 이름을 갖기를 원했습니다 (실
program x
character(len=1024) :: foo
integer:: ret
foo = 'ls'
call system(foo, ret)
end program
이 프로그램은 ifort에서 SIGSEGV와 충돌합니다. forrtl: severe (174): SIGSEGV, segmentation faul
안녕 나는 지금 내 테스트 프로그램의 목표는 시작에 불과 다른 하나 개의 프로세서에서 10 개 번호를 전송하는 것입니다이 type some
u ! actual code will have 17 such scalars
end type some
TYPE(some),ALLOCATABLE,DIMENSION(:) :: metvars,newmetvar
다음 구성이 진화하는 시스템의 평형 상태를 특성화하는 시스템의 여러 변수의 2 차원 및 1 차원 배열이 있습니다. 이제 특정 상황에서 이러한 배열의 데이터를 저장하고 진행해야합니다. 그래서 주 프로그램의 선언 (구문)과이 배열을 사용하는 서브 루틴에서 가변 길이 코드에 의해 어떻게 전달되어야합니까? 배열을 전달하는 크기 배열 방법?
실제 값 (ε) 반환 코드의 작은 조각 : 나는 if (1.0+eps==1.0) then
하여 경우 조건을 대체 지금 program epstest
real :: eps=1.0, d
do
d=1.0+eps
if (d==1.0) then
eps=eps*2
exit
else
eps=eps/2
fortran 90에서 어떻게이 목표를 달성 할 수 있습니까? mysub는 if (present(var)) then
l_var = var
else
l_var = <default value>
endif
같은 표준 변수 var 내가 할 수있는 일이라면 나는 subroutine foo(bar, mysub)
integer, int
Fortran 90에서 가정 된 모양의 배열을 사용하여 연속적인 서브 루틴을 호출하는 데 문제가있었습니다.보다 구체적으로 가정 된 모양 배열을 다음과 같이 두 가지 수준의 서브 루틴을 호출합니다. 매개 변수가 있지만 결국에는 배열이 손실됩니다. 이를 증명하기 위해 아래 코드를 따를 수 있습니다. program main
INTERFACE
나는 fortran에게 cuda 라이브러리를 이식하는 것을보고있다. PGI 및 EM Photonics은 현재 존재하는 두 개의 라이브러리 인 것 같습니다. 그러나 나는 단지 내가 그래서 제 질문은, 위에서 언급 한 코드 샘플과 같은 사용자 정의 배열을 만들 수있는 방법이있다 real, device, allocatable :: adev(:), bdev(:)