2009-06-24 4 views
1

을 무엇을 알고 싶습니다 진짜처럼.내가 거기이 수행하는 코드는 다음과 FORTRAN 77 코드는 .F 파일에서

그러면 Bob에 대한 참조가있는 .d 파일이 있습니다. 또한 avar는 보간 된 값을 가지고 있음을 알고 있습니다. 문제는 보간이 항상 올바르지 않다는 것입니다.

Bob John  35 
-17.  -16.  -15.  -14.  -13.  -12.  -11.  -10.  -9.  -8. 
-7.  -6.  -5.  -4.  -3.  -2.  -1.  0.  1.  2.5 
3.  4.  5.  6.5  7.  8.  9.  10.  11.  12. 
13.  14.  15.  16.  17. 
0.001 0.001 0.041 0.098 0.155 0.213 0.27  0.327 0.384 0.441 
0.499 0.556 0.613 0.670 0.728 0.785 0.844 0.904 0.965 1.058 
1.089 1.152 1.216 1.314 1.347 1.413 1.479 1.543 1.609 1.670 
1.733 1.799 1.860 1.925 1.937 

이것은 모두 기존 코드입니다. 나는 그것을 쓰지 않았다. 나는 그것을 고치려고 노력하고있다. 내 질문은 다음과 같이 구성됩니다.

이 작업은 어떻게 수행됩니까? .d 파일이란 무엇입니까?

가 나는 보간하려고 생각하지만 난 당신이 FORTRAN으로 (이런 식으로)이 작업을 수행 할 수 있다고 생각하지 않았다 77. 밥이 기능은 마치

+1

귀하의 질문은 명확하지 않습니다. Bob이 기능입니까? 왜 당신이 그렇게한다고 말하면서,하지만 당신은 그것이 무엇을하는지 모릅니다. 질문 제목에서 실제로 말한 코드는 어디에 있습니까? .d 파일과의 관계는 무엇입니까? –

+1

... 물건없이 실제 코드를 더 게시하십시오. –

+0

그 코드는 모두 관련성이 있습니다. 나머지는 이와 관련이 없습니다. – Paul

답변

0

죄송합니다. 대답은 보간을 수행하는 FORTRAN 프로그램에 독점적 인 매크로 c를 사용한다는 것입니다. 이것은 make 파일에서 발생합니다. 내가 모호한 문서를 보았다. 모두에게 감사드립니다. 그것의 terseness를 위해 다시 미안. 나는 어려워려는 게 아니 었어. 내가 본 것을 혼란스럽게 만들었다. 다른 회사에서 구입 한 30 년 된 레거시 코드로 작업하는 것이 때때로 어렵습니다. 나는 FORTRAN을 처음 사용하므로 익숙하지 않은 언어 기능처럼 보였어 야하는 것을 보지 못하고 있다고 생각했습니다. 나는 어리 석다. 그것은 내가 더 깊게 파고 들도록 이끌었다. 수업은 배웠다.

+1

fortran 프로그램에 몇 가지 호출 인터페이스가 있었습니까? – Rook

+1

남자, 얼마나 야생. 나는 그 물건을 좋아한다. 나는 너를 부러워하기 시작했다. :-) – Nosredna

+0

호출 코드는 C 프로그램을 호출하는 make 파일에 의해 생성됩니다. Bob_() 함수를 만들었습니다. 아직 그것을 찾을 수없는 것 같습니다. :) 코드 자체는 다른 시스템의 일부로 실행됩니다. 알아 내야 할 CRAP이 많이 있습니다. 예 Nosrenda 재미 있습니다 :). – Paul

1

, 그 진정한 가치 8.3을 받고있다 그것을 전달하고, aviar에 저장되어있는 실제를 반환합니다. 하지만 게시 한 코드에서 얻을 수있는 전부입니다.

+0

.d 파일이란 무엇입니까? – Paul

+0

Bob이 실제 함수 bob (something)과 같은 구문을 사용하여 선언되지 않았습니다. – Paul

+0

확장자가 .d 인 파일? 나는 그것이 데이터 파일이라는 짐작이들 것이다. F77은 특정 파일 확장자를 요구하거나 기대하지 않습니다. –

1

.d 파일에는 거의 선형 인 일부 데이터가 들어 있습니다. 실험 데이터와 같습니다. 35 점은 가지고있는 점의 수이고, 그 다음에는 x와 y가 있습니다.

Bob과 John은 문자열 마커 또는 식별자와 같은 것으로 보입니다. 그들은 아마도 코드의 어딘가에서 데이터로 무엇을 할 것인지 또는 어떤 종류의 데이터를 표현할 것인지를 결정하는 데 사용됩니다.

밥은 기능처럼 보입니다. 함수 선언에는 두 가지 방법이 있습니다.

real function foo(a) 
    implicit none 
    real, intent(in) :: a 
    foo = 3.0+a 
end function 

program test 
    implicit none 
    real foo, bar, a, b 
    bar(b) = b+5.0 

    a=foo(5.3) 
    print *, a, bar(2.3) 
end program 

하나는 함수 자체로라는 이름의 변수에 할당하여 값을 반환 명시 경우 (foo는)입니다. 다른 경우는 "암시 적"(공식적인 이름을 알지 못함)입니다 (bar 참조). "배열"로 선언 한 다음 어떻게 동작해야하는지 표현합니다. 매우 드물게 보았지만 매우 작고 작습니다.

+0

코드에없는 것을 제외한 모든 것에 동의합니다. 나는 당황합니다 ...나는 파헤 치고 돌아올 것이다. – Paul

+1

.d 파일이 해당 프로그램을 통해 만들어 졌는지 절대 확신합니까? 사람들은 쓰레기를 많이 버립니다. –

+0

이유를 찾았습니다 ... 고마워요 ... 질문에 대한 제 대답을보십시오. 나는 어리 석다. – Paul

0

.d 파일은 아마도 .dat을 마비시키는 일부 마약 사용 방법 일 것입니다. 그는 두 개의 추가 문자를 입력하기에는 너무 게을 렀다. 예전 프로그래머들은 그렇게했습니다.

"Bob"이 -17에서 +17까지의 X 축인 그래프에 간단한 보간 함수가있는 것처럼 보입니다. "John"은 Bob에 해당하는 Y 방향의 값 집합입니다 전철기. (32 점만 표시되기 때문에 35을 알지 못합니다.)

코드에서 묻는 것은 X 축의 값 8.3에 대해 Y 방향의 보간 값이 무엇인지 묻는 것입니다.선형 형식에서는 1.413에서 1.479 사이의 .3 배를 반환합니다. 상위 인터폴 레이터 일 수도 있지만 코드를 표시하지 않으므로 가장 단순하다고 가정합니다.