我无法获得此代码来编译uding g77 minGW编译器或g95编译器。有谁知道为什么?FORTRAN:分配的表单无效
我得到这些错误与G77:
diff5z10.for:在子程序`DIFFRACT':
diff5z10.for:579:
Tropo100 = 20.34 - .077 * Dist
^
的分配形式无效(^)声明
diff5z10.for:581:
IF (Freq .GT. 1000) FreqAdj = 24.5 - 7200/(Freq+3000)
^
无效的形式在赋值语句(^)
,并与G95编译时我得到这些错误:
在文件diff5z10.for:574
CLUTTER = steep*CLUTTER
1
错误:(1) 中的不可分类语句在文件diff5z10.for中:580
FreqAdj = 23.978 - 58026.76/(Freq + 2320)
1
错误:在(1)
这里不可分类的语句是从程序的这部分中的代码: (从线362)
Span = .28 - .144 * (Round - 1.2)
Para = C/Span**2
IF (Ratio .GT. .4) Para = 6.25 * (C - 1)
CLUTTER = Para * (RATIO - .4)**2 - C
IF (CLUTTER .GT. 0.) CLUTTER = 0.
CSlope = SQRT(freq)/350
steep = 1 + CSlope * (dist - Horizon)
IF (steep .LT. 0) steep = 0
IF (steep .GT. 1) steep = 1
CLUTTER = steep*CLUTTER
Tropo100 = 20.34 - .077 * Dist
FreqAdj = 23.978 - 58026.76/(Freq + 2320)
IF (Freq .GT. 1000) FreqAdj = 24.5 - 7200/(Freq+3000)
TropoFd = Tropo100 - FreqAdj
FS_field = 106.9 - 20 * LOG10(Dist)
Scatter = TropoFd - FS_field !loss ref to free space
DiffL = Scatter - DLOSS
Combine = 150/(20 - DiffL) - 5
IF (DiffL .LT. -10) Combine = 0
IF (DiffL .GT. 10) Combine = DiffL
DLOSS = DLOSS + Combine
RETURN
END
你是否在代码中声明了变量(并且你使用'IMPLICIT NONE')?如果是这样,'Tropo100','Dist'等是什么类型?另外,您确定使用g77编译时自由格式源是否已启用? – 2010-05-25 21:32:09
@蒂姆·惠特科姆 - 只要他整洁地干活,他不需要声明变量。好的悲伤,是的,我知道现在推荐它,但是我有大约50mb的fortran代码,没有隐含的痕迹,它们都像瑞士钟。他应该检查类型(并了解它们!) – Rook 2010-05-26 00:31:41