我正在尝试使用g77编译.f文件。 我尝试使用.cmd批处理文件(按照g77 documentation中描述的方法之一)使用以下内容(在.cmd文件中)编译它:
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
答案 0 :(得分:1)
当编译器找不到主程序时会发生此问题。
按如下方式创建主程序
Program Test
Implicit None
Real :: DIF, TMIN, TMAX, TAV, TG(12)
Call GTEMP(DIF,TMIN,TMAX,TAV,TG)
Contains
SUBROUTINE GTEMP(DIF,TMIN,TMAX,TAV,TG)
.....
END SUBROUTINE GTEMP
End Program Test