일부 포트란 90 코드를 읽었으며 익숙하지 않은 개념을 접하게됩니다. 두 벡터의 내적을 계산하기 위해 정의 된 코드의 일부로 실제 값이 dmf_dotp
이고 복소수 값이 zmf_dotp
입니다.포트란 인터페이스, 프로 시저 및 함수 관계
mesh.F90
: 그런 일이 함수를 호출 할 수 있습니다
R_TYPE function X(mf_dotp_1)(mesh, f1, f2, reduce, dotu) result(dotp)
R_TYPE function X(mf_dotp_2)(mesh, dim, f1, f2, reduce, dotu) result(dotp)
(또는 인터페이스?) zmf_dotp
또는 dmf_dotp
와 :
#include mesh_inc.F90
interface dmf_dotp
module procedure dmf_dotp_1, dmf_dotp_2
end interface dmf_dotp
interface zmf_dotp
module procedure zmf_dotp_1, zmf_dotp_2
end interface zmf_dotp
다른 파일에서 같은 기능이 있습니다. 그럼 여기서 정말로 무슨 일이 일어나고있는 걸까요?
덕분에 Vladimir F에게 감사드립니다.
#define X(x) z ## x
#define R_TYPE CMPLX
'R_TYPE'과'X'는 아마 전처리 기 매크로입니다. 어떻게 정의됩니까? 이 두 파일은 어떻게 연결되어 있습니까? 'include' 문이 있습니까? –
@VladimirF 고마워! 조심스럽게 코드를 읽고 포함 파일을 찾았습니다. 또한 다른 질문에 귀하의 의견에, 나는 '##'문자열 연결에 사용되는 배웠습니다. – dofine
예 : http://stackoverflow.com/questions/2257248/how-to-write-wrapper-for-allocate –