저는 FORTRAN 90에 3D 배열을 조각으로 초기화하는 작은 테스트 케이스 프로그램을 작성했습니다. 이 동일한 동작을 C에서 쉽게 복제 할 수 있습니까?다차원 배열을 Fortran과 비슷한 C로 초기화합니다.
program fortranEngine
real(4) , dimension(10,10) :: tmp
real(4) , dimension(10,10,3) :: p
tmp = RESHAPE([ 0.973, 1.053, 0, 0, 0, 0, 0, 0, 0, 0, &
1.053, 1.080, 0, 0, 0, 0, 0, 0, 0, 0, &
1.010, 0.408, 0.442, 0, 0, 0, 0, 0, 0, 0, &
1.119, 0.900, 0.399, 0.762, 0, 0, 0, 0, 0, 0, &
1.211, 0.975, 0.845, 0.952, 1.105, 0, 0, 0, 0, 0, &
1.248, 1.016, 0.485, 0.000, 0.000, 1.110, 0, 0, 0, 0, &
1.225, 1.123, 1.056, 0.000, 0.000, 0.949, 0.832, 0, 0, 0, &
1.138, 1.232, 1.089, 1.050, 0.930, 0.402, 0.789, 0.774, 0, 0, &
1.149, 1.406, 1.201, 1.052, 0.416, 0.878, 0.896, 0.431, 1.144, 0, &
1.351, 1.255, 1.290, 1.358, 1.240, 1.228, 1.257, 1.140, 1.123, 1.228] &
, [10,10])
p(:,:,1) = tmp
...
end program fortranEngine
왜 C에서 이것을 복제해야합니까? C 프로그램에서 Fortran 루틴을 호출하면됩니다. –
[이] [1]을 시도해보십시오. [1] : http://stackoverflow.com/questions/2178909/how-to-initialize-3d-array-in-c –
언제나처럼, 실제 (4) 어쩌면 일을 당신을합니까하지 않을 수 있습니다 그것이라고 생각합니다. 특히 그것은 실제와 동등하지 않습니다 * 4 –