Я свежий в программировании, и я хочу назвать общий блок Fortran 77 в моем коде на C++. На самом деле я прочитал некоторые Q & Подобно моему, но я был не очень ясным ....Как C++ вызывать общие блоки Fortran 77
Этот общий блок определяется другой подпрограммой Fortran 77.
Пример кода:
common.inc:
!test common block:
real delta(5,5)
common /test/ delta
!save /test/ delta ! any differences if I comment this line?
tstfunc.f
subroutine tstfunc()
implicit none
include 'common.inc'
integer i,j
do i = 1, 5
do j = 1, 5
delta(i,j)=2
if(i.ne.j) delta(i,j)=0
write (*,*) delta(i,j)
end do
end do
end
tst01.cpp
#include <iostream>
extern "C"
{
void tstfunc_();
};
void printmtrx(float (&a)[5][5]){
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
std::cout<<a[j][i]<<'\t';
a[j][i]+=2;
}
std::cout<<std::endl;
}
}
int main()
{
//start...
tstfunc_();
printmtrx(delta);//here i want to call delta and manipulate it.
return 0;
}
Если я хочу передать delta
(от общего. inc) к функции C++ printmtrx()
, что мне делать?
Это зависит от компилятора. Какие компиляторы вы используете? – MSalters
Уважаемый @MSalters, я использую gfortran и g ++ – Kylxyz
Вы не называете общие блоки. Они содержат данные, а не код. «Что я должен делать?» не является понятным вопросом, и здесь нет никаких доказательств реальной проблемы. То, что вы просите, остается неясным. – EJP