2012-05-15 1 views
0

FORTRAN-90을 사용하고 있습니다. 문제점이 하나 있습니다.FORTRAN-90에 저장되는 배열

3 차원 배열 (A (900,900,900), B (900,900,900))에 데이터 (예 : X 및 Y 값)를 저장하려면 30X30X30의 각 배열에 30X30X30 요소 만 사용했습니다. X와 Y의 초기 값 그리고 다음 번 단계에서 X와 Y의 값을 변경하기위한 몇 가지 과학적 계산이 있고 다시 30X30X30의 수정 된 값을 (31X31X31) 번째 위치에서 같은 배열에 저장하려고합니다. 두 배열의 다음 단계 단계에서 동일한 절차를 반복합니다. 이 방법으로 배열에 데이터를 채우고 마지막으로 이러한 배열을 인쇄하려고합니다.

당신은 내가

이 제발 도와주세요 내가 코드 포트란이 algorithim를 ... ... 쓸 수있는 방법을 좀 도와 주 시겠어요.

안부 방법이에 대한

Amitavo

+1

배정 밀도의 경우 11GB. 그게 네가 정말로 원하는거야? –

+0

크기 문제 외에도 3x3x3 배열로 시작하여 4x4x4로 진행하는 예제를 게시하여 정확히 무엇을 달성하려고하는지 이해할 수 있습니까? – ja72

+1

크로스 용어'A (1,31,31)'을 절대 사용하지 않으려는 경우, '900x900x900' 요소가 모두 필요하지 않습니다. '30x30x30'의 '30'서브 매트릭스 만 사용되며, 상당히 적은 공간이 필요합니다. – ja72

답변

0

음, 저에게

을 안내하십시오

real*8 :: A(900,900,900),X(30,30,30) 
integer :: offset 

offset=0 

! define X however ... 

A(1:30,1:30,1:30)=X 

do while (offset<900) 
! do stuff to X 
! do more stuff to X 
    offset=offset+30 
    A(1+offset:30+offset,1+offset:30+offset,1+offset:30+offset)=X 
enddo 

은 또한, 나는 ja72 더 나은 아이디어가 생각합니다. 그러나 이것이 당신이 그것을해야하는 방법이라면, 나는 이것이 당신이 원하는 것이라고 생각합니다.