Я не могу заставить этот код компилировать с использованием компилятора minGW g77 или компилятора g95. Кто-нибудь знает почему?
Я получаю эти ошибки с 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