У меня есть один код fortran (gmf.f), который отлично работает, и я хочу называть его из c (tropo.c), поэтому я могу использовать выходы подпрограммы fortran в моем c-коде как новые переменные ,Вызов подпрограмм Fortran из кода C
subroutine gmf (dmjd,dlat,dlon,dhgt,zd,gmfh,gmfw)
C This subroutine determines the Global Mapping Functions GMF
C input data
C ----------
C dmjd: modified julian date (real)
C dlat: ellipsoidal latitude in radians (real)
C dlon: longitude in radians (real)
C dhgt: height in m (real)
C zd: zenith distance in radians (real)
C
C output data
C -----------
C gmfh: hydrostatic mapping function (real)
C gmfw: wet mapping function (real)
C
C Johannes Boehm, 2005 August 30
C Rev. Boehm 21 July 2011: latitude -> ellipsoidal latitude
C
implicit double precision (a-h,o-z)
... ... ... ... После некоторых математики и вычислений в результате, я получаю выходы gmfh и gmfw.
Поскольку я плохо разбираюсь в C, я написал один образец после некоторого исследования на WEB. Что я боюсь, я не знаю, как назвать результаты fortran в c и увидеть их на экране ... Я был бы очень признателен, если кто-нибудь поможет мне найти решение ...
#include<stdio.h>
int main(int argc, char **argv) {
double gmf_(double *dmjd, double *dlat, double *dlon, double *dhgt, double *zd, double *gmfh, double *gmfw);
double dmjd=53120;
double dlat=38.25;
double dlon=42.25;
double dhgt=700.25;
double zd=60.0;
??? double result???? = gmf_(&dmjd, &dlat, &dlon, &dhgt, &zd, &gmfh, &gmfw);
return;
}
наконец произведу в Cygwin
gfortran -c gmf.f
GCC -c tropo.c
gfortran -o решить gmf.o tropo.o
./solve
и увидите результаты на экране: gmfh и gmfw.
Это не имеет особого отношения к C++. – molbdnilo
Разве это не тот же вопрос, что и http://stackoverflow.com/questions/37147425/c-returning-fortran-results немного подобрали? –
Вы должны отредактировать и улучшить свой старый вопрос. Не переставляйте то же самое, вы рискуете голосом и даже запретом. Обратите внимание, что удаленные вопросы относятся к вопросу о запрете. –