【发布时间】:2015-06-21 03:58:36
【问题描述】:
我正在尝试使用g77 编译一个.f 文件。 我尝试使用具有以下内容(在 .cmd 文件中)的 .cmd 批处理文件(按照 g77 documentation 中描述的一种方式)对其进行编译:
g77 -o gtemp.exe gtemp.f
pause
但是当我运行上面的 .cmd 文件时,我收到以下错误消息: "未定义对'MAIN_'的引用
为什么会这样? gtemp.f 文件与 g77.exe 文件位于同一文件夹中。谢谢。
这是 gtemp.f 文件的代码:
SUBROUTINE GTEMP(DIF,TMIN,TMAX,TAV,TG) GTEMP 2
DIMENSION AMON(12),TG(12) GTEMP 3
DATA AMON / 15.,46.,74.,95.,135.,166.,196.,227.,258.,288., GTEMP 4
1 319.,349. / GTEMP 5
DATA P,PI,PO / 8760.,3.14159265,0.6 / GTEMP 6
C GTEMP 7
BETA = SQRT(PI/(DIF*P))*10. GTEMP 8
X = EXP(-BETA) GTEMP 9
X2 = X*X GTEMP 10
C = COS(BETA) GTEMP 11
S = SIN(BETA) GTEMP 12
Y = X2 - 2.*X*C + 1. GTEMP 13
Y = Y / (2.*BETA*BETA) GTEMP 14
GM = SQRT(Y) GTEMP 15
Z = (1.-X*(C+S)) / (1.-X*(C-S)) GTEMP 16
PHI = ATAN(Z) GTEMP 17
BO = (TMAX-TMIN)*0.5 GTEMP 18
DO 40 I=1,12 GTEMP 19
THETA = AMON(I)*24. GTEMP 20
40 TG(I) = TAV - BO*COS(2.*(PI/P)*THETA-PO-PHI)*GM + 460. GTEMP 21
RETURN GTEMP 22
END GTEMP 23
【问题讨论】:
-
您的代码是子程序,而不是程序。它不能单独运行,您需要一个调用子程序的主程序。如果您想单独编译它并稍后将其与程序链接,请使用编译器的
-c参数。 -
谢谢弗拉基米尔。我将 .cmd 文件中的上部“-o”更改为“-c”。现在我收到一条消息:“gtemp.exe 没有这样的文件或目录”。有什么办法可以将这个子程序作为单独的脚本运行?
-
不,它是一个子程序。你必须有一个调用它的主程序。您不能从中生成 exe,也不能单独运行它。
-
我无法获取该 .exe 文件。不过,感谢您的宝贵时间和有用的回复。
-
谁调用
gtemp并为其赋予值diftmintmaxtav和tg?