2016-10-04 5 views
-1

Я пишу код в Fortran90. У меня есть следующий код:Unclassifiable statement at 1 Error

subroutine QualModel(CCS, TI, AIdex,t_max) 
use Global 
implicit none 
DOUBLE PRECISION :: CCS, TI, AIdex 
DOUBLE PRECISION,DIMENSION(10) :: t_max 

CCS = 0.0 
TI = 0.0 
AIdex = 0.0 

CCS = & 
24.36597157615 + & 
(-6.56894015990892) * (ustrand * 60.0) 

Когда я пытаюсь скомпилировать это я получаю сообщение об ошибке на линии CCS = &Unclassifiable statement at 1. из

Может кто-нибудь сказать мне, как я могу решить эту проблему? Я столкнулся с другими вопросами, но большинство из них предлагает проблему с паратетом, но здесь нет такой проблемы.

+0

Ваш суффикс файла? Используете ли вы свободную форму или источник фиксированной формы? Есть много (много!) Похожих вопросов, вы посмотрели на них? Как выглядит ваша точная командная строка для компиляции? –

ответ

1

Как указывает Владимир Ф, комментарии к файлам суффикса файла важны в коде Fortran, чтобы сообщить компилятору, как интерпретировать код.

Код, который вы отправили, пропускает некоторые объявления переменных (ustrand), использует модуль (Global), который у меня отсутствует и пропускает end. Однако, если я использую следующий код, который очень похож на ваш

subroutine QualModel(CCS, TI, AIdex,t_max) 
implicit none 
DOUBLE PRECISION :: CCS, TI, AIdex,ustrand 
DOUBLE PRECISION,DIMENSION(10) :: t_max 

CCS = 0.0 
TI = 0.0 
AIdex = 0.0 

CCS = & 
24.36597157615 + & 
(-6.56894015990892) * (ustrand * 60.0) 
end 

Компиляция отличается при использовании .f/.f90 суффиксов, как показано ниже. Обратите внимание, что если вы должны придерживаться суффикса .f в своих файлах, вы можете использовать опцию -ffree-form для компилятора gfortran, чтобы сообщить ему принять этот вход.

$ gfortran --version | head -n 2 
GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) 
Copyright (C) 2015 Free Software Foundation, Inc. 

$ gfortran -c test.f90 
$ gfortran -c test.f 
test.f:1.1: 
subroutine QualModel(CCS, TI, AIdex,t_max) 
1 
Error: Non-numeric character in statement label at (1) 
test.f:1.1: 

subroutine QualModel(CCS, TI, AIdex,t_max) 
1 
Error: Unclassifiable statement at (1) 
test.f:2.1: 
<... omitted remaining errors ...> 

$ gfortran -c -ffree-form test.f 
+1

Проблема в том, что сообщение об ошибке отличается. Вы просто догадываетесь. ~ Это зависит от вас, но я обычно пытаюсь получить некоторую информацию от OP, которая дает понять, откуда эта проблема. –

+0

Проблема с первым символом, на первой строке, кажется, указывает на то, что @Harald прибил его. – Holmz

+0

Сообщение об ошибке появляется перед ошибкой <... omitted оставшиеся ошибки ...> (хотя в другой строке ошибка в строке, на которую указывает OP, была несколько строк ниже), но я согласен с вами в том, что я должен был запросить Дополнительная информация к OP. – Harald

Смежные вопросы