Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книга Фортран Павловец 2008

.pdf
Скачиваний:
128
Добавлен:
31.05.2015
Размер:
1.55 Mб
Скачать

B = (Bx1 + Bx2 )2 +(By1 + By2 )2

Выделим прямоугольную плоскость, которую перпендикулярно пересекают два бесконечных проводника. В каждой точке выделенной плоскости вычислим значение магнитной индукции и сохраним его в двухмерном массиве. Если координаты расчетных точек совпадают с координатами самих проводников, то в двухмерный массив вместо числа будем заносить символ «пробел».

DIMENSION B(60,70)

WRITE(*,*)’Введите координаты трех точек плоскости X1,Y1,X2,Y3’ READ(*,*)X1,Y1,X2,Y3

WRITE(*,*)X1,Y1,X2,Y3

WRITE(*,*)’Введите координаты проводников и их токов

*XP1,YP1,TOK1,XP2,YP2,TOK2’

READ(*,*)XP1,YP1,TOK1,XP2,YP2,TOK2

WRITE(*,*)XP1,YP1,TOK1

WRITE(*,*)XP2,YP2,TOK2

OPEN(UNIT=3,FILE='POLE.REZ') DX=(X2-X1)/69.

DY=(Y3-Y1)/59. Y=Y1

DO 1 I=1,60 X=X1

DO 2 J=1,70 IF(ABS(X-XP1).LT.0.001.AND.ABS(Y-YP1).LT.0.001) GO TO 22 IF(ABS(X-XP2).LT.0.001.AND.ABS(Y-YP2).LT.0.001) GO TO 22 CALL POLPR(XP1,YP1,X,Y,TOK1,BX1,BY1)

CALL POLPR(XP2,YP2,X,Y,TOK2,BX2,BY2)

B(I,J)=SQRT((BX1+BX2)**2+(BY1+BY2)**2) GO TO 2

22B(I,J)='_' При совпадении координат проводников и координат расчетной точки в двухмерный массив вместо числа заносится пробел

2

X=X+DX

1

Y=Y+DY

CALL POLE(B,60,70)

PAUSE

STOP

END

Двухмерный массив со значениями индукции магнитного поля в каждой точке выделенной плоскости направляем в подпрограмму вывода полевой картинки. Поскольку в дальнейшем картинка будет выводиться на принтер или в файл, то необходимо учесть ту особенность, что при печати расстояние между двумя символами по вертикали в 1,75 раза больше, чем расстояние между двумя символами по горизонтали. Поэтому в расчетной программе желательно подобрать параметры исходных данных таким образом, чтобы dy было больше dx в 1,75 раза.

121

c Павловец В.В. SUBROUTINE POLE(X,M,N)

DIMENSION S(125),X(M,N),RS(21) CHARACTER*1 R(21),S

DATA R/'.','0',',','L',':','2',';','3','^','4','>','5','<','6','+','7','О','8','*','9','M'/ DATA TEXT/' '/

XM=-1.E30

XI=1.E30

c определение максимума, минимума

DO 2 I=1,M

DO 2 J=1,N

c текстовые пробелы в исходном массиве не обрабатываются

IF (X(I,J).EQ.TEXT) GOTO 2 XM=AMAX1(XM,X(I,J)) XI=AMIN1(XI,X(I,J))

2 CONTINUE

A=XM-XI

IF (A.EQ.0.)GOTO 22

WRITE(3,15)XI,XM

15 FORMAT(5X,' Minimum=',G10.4,' Maximum=',G10.4) RS(1)=XI

DO 13 I=2,21 RS(I)=RS(I-1)+0.05*A J=I-1

13WRITE(3,14)R(J),RS(J),RS(I)

14FORMAT(5x,'символ ',A1,' имеет значение от ',G10.4,' до ',G10.4)

c определение количества этапов вывода рисунка на экран или в файл

K1=N/79

T1=FLOAT(N)/79.

IF(K1.LT.T1)K1=K1+1 NN=-78 WRITE(3,'(//)')

NK=0

ID=79

DO 11 KI=1,K1 IF(KI.EQ.K1)ID=N-NK

c определение номеров столбцов выводимой строки

NN=NN+79

NK=NK+ID

DO 3 K=1,M L1=0

DO 4 1=NN,NK L1=L1+1

IF(X(K,L).NE.TEXT) GOTO 24 S(L1)=TEXT

GO TO 4

24NI=INT(20.*(X(K,L)-XI)/A)+1 S(L1)=R(NI)

122

4 CONTINUE

c вывод строки на печать

3 WRITE(3,5)(S(I),I=1,L1)

5 FORMAT(1X,80A1)

11 WRITE(3,'(////)') RETURN

c обработка сбойной ситуации

22WRITE(3,23)XM

23FORMAT(1X,'массив имеет одинаковые значения =',G10.4) RETURN

END

При выводе картинки магнитного поля двух проводников с токами различного направления получим результат в виде распечатки:

Minimum= .5397E-03 Maximum= .1824E-01

Символ . имеет значение от .5397E-03 до .1425E-02 Символ 0 имеет значение от .1425E-02 до .2310E-02 Символ , имеет значение от .2310E-02 до .3195E-02 Символ l имеет значение от .3195E-02 до .4081E-02 Символ : имеет значение от .4081E-02 до .4966E-02 Символ 2 имеет значение от .4966E-02 до .5851E-02 Символ ; имеет значение от .5851E-02 до .6736E-02 Символ 3 имеет значение от .6736E-02 до .7621E-02 Символ ^ имеет значение от .7621E-02 до .8507E-02 Символ 4 имеет значение от .8507E-02 до .9392E-02 Символ > имеет значение от .9392E-02 до .1028E-01 Символ 5 имеет значение от .1028E-01 до .1116E-01 Символ < имеет значение от .1116E-01 до .1205E-01 Символ 6 имеет значение от .1205E-01 до .1293E-01 Символ + имеет значение от .1293E-01 до .1382E-01 Символ 7 имеет значение от .1382E-01 до .1470E-01 Символ o имеет значение от .1470E-01 до .1559E-01 Символ 8 имеет значение от .1559E-01 до .1647E-01 Символ * имеет значение от .1647E-01 до .1736E-01 Символ 9 имеет значение от .1736E-01 до .1824E-01

и саму картинку:

123

..................................................................... .

......................................................................

......................................................................

......................................................................

......................00000000000000000000000000......................

.................000000000000000000000000000000000000.................

.............0000000000000000,,,,,,,,,,,,0000000000000000.............

..........0000000000000,,,,,,,,,,,,,,,,,,,,,,,,0000000000000..........

........000000000000,,,,,,lllll::::::::lllll,,,,,,000000000000........

......000000000000,,,,,lll:::22;;3333;;22:::lll,,,,,000000000000......

.....00000000000,,,,,lll:::2;3^><+oo+<>^3;2:::lll,,,,,00000000000.....

....00000000000,,,,,,lll::2;3^>+9 9+>^3;2::lll,,,,,,00000000000....

...000000000000,,,,,,lll::22;3^45<66<54^3;22::lll,,,,,,000000000000...

...000000000000,,,,,,llll:::22;;;3333;;;22:::llll,,,,,,000000000000...

...0000000000000,,,,,,,lllll::::::::::::::lllll,,,,,,,0000000000000...

...00000000000000,,,,,,,,,llllllllllllllllll,,,,,,,,,00000000000000...

...0000000000000000,,,,,,,,,,,,,llllll,,,,,,,,,,,,,0000000000000000...

...000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000...

....000000000000000000000,,,,,,,,,,,,,,,,,,,,000000000000000000000....

.....00000000000000000000000000000,,00000000000000000000000000000.....

.....000000000000000000000000000000000000000000000000000000000000.....

......0000000000000000000000000000000000000000000000000000000000......

.......00000000000000000000000000000000000000000000000000000000.......

........000000000000000000000000000000000000000000000000000000........

........000000000000000000000000000000000000000000000000000000........

.........0000000000000000000000000000000000000000000000000000.........

.........0000000000000000000000000000000000000000000000000000.........

.........0000000000000000000000000000000000000000000000000000.........

.........0000000000000000000000000000000000000000000000000000.........

........000000000000000000000000000000000000000000000000000000........

........000000000000000000000000000000000000000000000000000000........

.......00000000000000000000000000000000000000000000000000000000.......

......0000000000000000000000000000000000000000000000000000000000......

.....000000000000000000000000000000000000000000000000000000000000.....

.....00000000000000000000000000000,,00000000000000000000000000000.....

....000000000000000000000,,,,,,,,,,,,,,,,,,,,000000000000000000000....

...000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000...

...0000000000000000,,,,,,,,,,,,,llllll,,,,,,,,,,,,,0000000000000000...

...00000000000000,,,,,,,,,llllllllllllllllll,,,,,,,,,00000000000000...

...0000000000000,,,,,,,lllll::::::::::::::lllll,,,,,,,0000000000000...

...000000000000,,,,,,llll:::22;;;3333;;;22:::llll,,,,,,000000000000...

...000000000000,,,,,,lll::22;3^45<66<54^3;22::lll,,,,,,000000000000...

....00000000000,,,,,,lll::2;3^>+9 M+>^3;2::lll,,,,,,00000000000....

.....00000000000,,,,,lll:::2;3^><+oo+<>^3;2:::lll,,,,,00000000000.....

......000000000000,,,,,lll:::22;;3333;;22:::lll,,,,,000000000000......

........000000000000,,,,,,lllll::::::::lllll,,,,,,000000000000........

..........0000000000000,,,,,,,,,,,,,,,,,,,,,,,,0000000000000..........

.............0000000000000000,,,,,,,,,,,,0000000000000000.............

.................000000000000000000000000000000000000.................

......................00000000000000000000000000......................

......................................................................

......................................................................

......................................................................

......................................................................

......................................................................

......................................................................

......................................................................

Эта картина распределения магнитного поля характерна для всех двойных проводников с током туда-обратно.

124

Если при тех же геометрических параметрах задать токи одного направления, то получим такую картинку (поясняющий текст опускаем)

0000000000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000,,,,,,,,,,,,,,0000000000000000000000000000

000000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000000

00000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000

00000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000

000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000

0000000000,,,,,,,,,,,,,,,,,llllllllllllllll,,,,,,,,,,,,,,,,,0000000000

00000000,,,,,,,,,,,,,,,llllllllllllllllllllllll,,,,,,,,,,,,,,,00000000

0000000,,,,,,,,,,,,,lllllllll::::::::::::lllllllll,,,,,,,,,,,,,0000000

000000,,,,,,,,,,,,,llllll::::::22222222::::::llllll,,,,,,,,,,,,,000000

00000,,,,,,,,,,,,,lllll::::222;;;;;;;;;;222::::lllll,,,,,,,,,,,,,00000

00000,,,,,,,,,,,,lllll::::22;;3^444444^3;;22::::lllll,,,,,,,,,,,,00000

00000,,,,,,,,,,,,lllll:::22;3^4567887654^3;22:::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,lllll:::22;345+9 M+543;22:::lllll,,,,,,,,,,,,00000 000000,,,,,,,,,,,,lllll::22;3^45+ +54^3;22::lllll,,,,,,,,,,,,000000 000000,,,,,,,,,,,,,lllll:::22;33^4444^33;22:::lllll,,,,,,,,,,,,,000000 0000000,,,,,,,,,,,,,,llllll:::2222222222:::llllll,,,,,,,,,,,,,,0000000 000000000,,,,,,,,,,,,,,,,llllllllllllllllllll,,,,,,,,,,,,,,,,000000000 000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000 00000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000..............0000000000000000000000000000 0000000000000000000000000....................0000000000000000000000000 000000000000000000000000......................000000000000000000000000 000000000000000000000000......................000000000000000000000000 0000000000000000000000000....................0000000000000000000000000 0000000000000000000000000000..............0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000000 000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000 000000000,,,,,,,,,,,,,,,,llllllllllllllllllll,,,,,,,,,,,,,,,,000000000 0000000,,,,,,,,,,,,,,llllll:::2222222222:::llllll,,,,,,,,,,,,,,0000000 000000,,,,,,,,,,,,,lllll:::22;33^4444^33;22:::lllll,,,,,,,,,,,,,000000 000000,,,,,,,,,,,,lllll::22;3^45+ +54^3;22::lllll,,,,,,,,,,,,000000 00000,,,,,,,,,,,,lllll:::22;345+9 9+543;22:::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,lllll:::22;3^4567887654^3;22:::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,lllll::::22;;3^444444^3;;22::::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,,lllll::::222;;;;;;;;;;222::::lllll,,,,,,,,,,,,,00000 000000,,,,,,,,,,,,,llllll::::::22222222::::::llllll,,,,,,,,,,,,,000000 0000000,,,,,,,,,,,,,lllllllll::::::::::::lllllllll,,,,,,,,,,,,,0000000 00000000,,,,,,,,,,,,,,,llllllllllllllllllllllll,,,,,,,,,,,,,,,00000000 0000000000,,,,,,,,,,,,,,,,,llllllllllllllll,,,,,,,,,,,,,,,,,0000000000 000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000 00000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000 00000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000 000000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000000 0000000000000000000000000000,,,,,,,,,,,,,,0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000

125

Такое распределение магнитного поля характерно для параллельных проводников с одинаковыми токами, например, фазных проводов линий электропередач 300 кВ.

Программа вывода картинки поля создана четверть века назад. Анализ результатов расчетов различных физических процессов с ее помощью позволил сделать несколько изобретений по способам и устройствам поиска повреждений в шахтных кабелях, изобретений по конструкции трансформаторов. А анализ картины распределения магнитного поля установки типа ТОКОМАК еще в 80-е годы прошлого века позволил дать заключение о неработоспособности такой установки и принципиальной невозможности удержать плазму в такой конструкции. Не исключено, что новая международная термоядерная установка ИТЭР имеет те же недостатки.

С появлением версии Фортрана Power Station уже подготовлена версия подпрограммы вывода полевой картинки не в цифровой, а в цветовой гамме на экран дисплея или в файл.

56. Рекомендации по составлению программ

В основе алгоритма любой задачи лежит математическая модель. Не нужно жалеть времени на изучение свойств этой модели и разработку эффективного алгоритма. Желательно любую задачу решать в общем виде, не склоняясь к частным и временным решениям. Но при записи алгоритма следует придерживаться основного принципа: программа должна быть простой и понятной не только разработчику, но и любому, сведущему в программировании. Приступая к решению даже не очень сложной задачи целесообразно составить блок-схему алгоритма. А при решении сложных задач без блок-схемы просто не обойтись. Это же касается и таблицы идентификаторов. Игнорирование этих простейших истин приводит к потере дорогого рабочего времени на поиски ошибок. Приступая к составлению программы, будьте уверены, что ошибку в ней вы сделаете. И заранее предусмотрите способ, которым вы эту ошибку найдете. Опыт показывает, что программа, которую автор не видел полгода, воспринимается им как совершенно незнакомое творение. Поэтому важную роль в программе играют комментарии. В грамотно составленной программе комментарии занимают ¼ ее объема. Любая программа должна обладать следующими основными качествами:

универсальность;

самодокументирование;

использование минимума времени на выполнение;

использование минимума бумаги на распечатки;

использование минимума оперативной памяти;

разбиение на подпрограммы.

Помните об отладке с самого начала создания программы. Для этой цели следует широко использовать отладочную печать, вставляя необходимые операторы еще при написании программы. При многочисленных ветвлениях в алгоритме целесообразно при отладке печатать признаки прохождения программы по отдельным ветвям.

При написании программы желательно придерживаться следующих рекомендаций:

1.Не использовать имена переменных и массивов более 5 символов;

2.Не использовать имена переменных, совпадающих с именами встроенных функций AMAX, SIN, TAN …;

3.В идентификаторах цифры использовать в конце имени, осторожно использовать буквы О,I,Z,З,Ч,S. Желательно не использовать русские буквы вообще.

4.Проверять имена на соответствие типам данных;

5.При описании массивов большее измерение ставить на первое место;

126

6.После ввода исходных данных распечатать их значения для контроля правильности ввода;

7.Проверять, все ли переменные, входящие в выражение, определены;

8.Очередность вычислений задавать неоднозначно с помощью круглых скобок. Выражения внутри скобок выполняются в первую очередь;

9.Арифметические операции одного ранга выполняются поочередно слева направо. Но операции возведения в степень выполняются справа налево. A=B**C**2 выполняется как A=B**(C**2);

10.В арифметическом выражении нежелательно смешание типов переменных.

При вычислении выражения целого типа арифметические операции производятся с отбрасыванием дробной части в промежуточных вычислениях. Результатом деления целых чисел является целое число! Например, если K и N – целые переменные и N=2*(K/2), то K=N только тогда, когда K – четное число.

11.Тип результата арифметической операции зависит от типов переменных, участвующих в операции. Тип соответствует типу старшего из типов переменных. По возрастанию: I,R,C,D (соответственно типа целого, вещественного, комплексного, удвоенной значности);

12.Операции возведения в целую степень осуществляются перемножением взводимого на самого себя. Поэтому точку у показателя степени ставить не следует;

13.Отрицательное число возводить в вещественную степень нельзя;

14.В арифметическом выражении операции более высокого ранга ставить раньше;

15.По возможности использовать стандартные функции SQRT, AMAX1, и т.д.;

16.Отслеживать возможность деления но ноль или вычисление корня квадратного из отрицательного числа;

17.В операторах присваивания выделять общие части и присваивать их промежуточным переменным. Вместо T=(A+B)*Q+(A+B)**2 лучше записать

R=A+B и T=R*Q+R*R;

18.Часто встречающийся элемент массива заменять переменной и использовать ее в выражениях. Это сокращает время счета;

19.По возможности вместо IF арифметического использовать IF логический;

20.Меньше использовать оператор GO TO;

21. Не использовать конструкцию IF-THEN-ELSE там, где можно обойтись обычным IF;

22.Объединять циклы. Выражения, не изменяющиеся внутри цикла, выносить за его пределы;

23.Соблюдать вложенность циклов. Внутренний цикл желательно иметь с большим измерением;

24.Избегать выражений с индексами или присваивать их переменным;

25.Проверять, не превысит ли значение индекса размерности массива;

26.Проверять возможность затирания памяти программы в случаях типа

REAL X(10)

M=-3

N=17

X(M)=X(N);

27.Проверять соответствие списков формальных и фактических параметров подпрограмм по количеству параметров, очередности следование, типам данных, размерности массивов;

127

28.Проверять соответствие списков оператора COMMON по очередности следования и по типам данных;

29.В операторе FORMAT ширину поля задавать несколько большего размера, чем имеющиеся данные.

Никогда не начинайте создание программы, усевшись за дисплей компьютера. Искусство создания качественного программного продукта не терпит суеты над клавиатурой. Создайте программу сначала на бумаге. Затем мысленно прогоните ее многократно с анализом всевозможных ситуаций. И только после того, как многократно программа «прокрутится» у Вас в голове, ее исполнение можно доверить машине.

57. Командные файлы

Командные файлы используются для автоматизации обработки информации ЭВМ. Они имеют расширение .bat.

имя.bat

Командные файлы содержат последовательность команд системы DOS, в которых задаются определённые управляющие команды в системе математического обеспечения ЭВМ. Например, можно использовать командный файл для процесса трансляции и компоновки программ, созданных на ФОРТРАНе, содержащий следующую информацию:

ECHO OFF

ECHO*Компилятор языка ФОРТРАН

FL /C /4Yb /Ox /AH /FPc /Fs%1 /Tf%1.for /Fo% 1.OBJ

IF ERRORLEVEL 1 GO TO EXIT

При обнаружении ошибок во время трансляции происходит

переход на метку EXIT. Метки в bat-файлах начинаются с символа “ : ”.

LINK %1 %2 %3 %4 %5 %6 %7, , ,LLIBFORE /E;

IF ERRORLEVEL 1 GO TO DONE GO TO NORM

: EXIT

ECHO* При трансляции обнаружены ошибки. Исправьте файл .FOR GO TO END

:DONE

ECHO* При компиляции обнаружены ошибки

ECHO* Проанализируйте файл .LST и исправьте ошибки в файле .FOR GO TO END

:NORM DEL %1.obj DEL %1.map DEL %1.lst :NORM

ECHO* Компоновка завершена успешно. Запустите на выполнение файл .EXE :END

Командные файлы используют специальные операторы и команды.

128

Операторы: ECHO, GO TO, IF. Команды: FL, LINK, DEL.

ECHO OFF – очищает экран компьютера.

FL – команда на трансляцию программы. DEL – удаление файла.

FS%1 – запоминает имя обрабатываемого файла и далее %1 соответствует имени этого файла.

TF%.for – транслятор языка Фортран.

Fo%1.obj – создаёт объектный файл в виде: имя.obj.

В результате трансляции программы создаётся 3 файла:

имя.obj, имя.map, имя.lst.

После команды FL с помощью оператора IF анализируется уровень ошибки ERRORLEVEL. Он может содержать 0 или 1. Обычно результат ноль. Но, если в результате обработки текста программы транслятор обнаружил ошибки, то ERRORLEVEL устанавливается в 1.

LINK – компоновщик или компилятор – осуществляет оформление программы в единый модуль и к файлу типа .obj подключается модули стандартных программ языка ФОРТРАН и модули из библиотеки математического обеспечения. LINK собирает все файлы и формирует файл %.exe. Файл .exe является загрузочным модулем и может быть запущен на выполнение.

Этот модуль может работать и на компьютерах, на которых не установлена система программирования Фортрана.

129

Приложение 1. Сообщения транслятора фортран-95 об ошибках

Не только начинающему, но и умудренному опытом программисту не так часто удается написать программу, которая сразу прошла бы этап трансляции и компановки без ошибок. При обнаружении ошибок в программе, транслятор в файле типа .LST помещает сообщения или сразу после строки, в которой обнаружена ошибка, или в конце файла указывается номер строки, в которой обнаружена ошибка и текстовое сообщение о ней на английском языке. Учитывая, что далеко не все имеют глубокие познания в английском языке, приводим тексты возможных сообщений и их перевод.

Однако следует иметь ввиду, что далеко не все ошибки могут быть опознаны транслятором.

$ DEBUG:'<debug-list>' illegal with

Список DEBUG не соответствует

$FREEFORM

свободному формату

$DEBUG:'<debug-list>' : string expected

Список $DEBUG: ожидается строковая

 

(обозначение)

$DECMATH not supported

не поддерживается

$INCLUDE:'<filename>' : string expected

имя файла: ожидается строковое

$ : integer constant out of range

целая контстанта превышает размер (32767)

$<integer constant> : integer constant expected

ожидается константа целого типа

$LARGE already set

режим LARGE уже установлен

$% LARGE illegal in executable statements

режим LARGE неверен для управляющего

 

оператора

$MESSAGE:'<message>' : string expected

в команде MESSAGE:'<message>' : ожидается

 

строковая

$STORAGE:<number> : 2 or 4 expected

в команде STORAGE:<number> : ожидается 2

 

или 4

$SUBTITLE:'<subtitle>' : string expected

в команде SUBTITLE:'<subtitle>' : ожидается

 

строковая

$TITLE:'<title>' : string expected

в команде TITLE:'<title>' : ожидается

 

строковая

$IF : no matching $ENDIF

в конструкции IF : нет ЕNDIF

$DEFINE : %s : already defined

в команде DEFINE : %s : уже определено

$UNDEFINE : %s : not defined

не определено

$ illegal in C name

неправильное имя в С

%s only legal on formal arguments

правильно только для формальных

 

аргументов

%fs : illegal use of active DO-loop variable

неправильное использование переменной

 

явного цикла DO

%s : attributes on items illegal

атрибуты элемента данных неверны

%s name illegal

имя неверное

%s variable cannot be AUTOMATIC

идентификатор не может быть AUTOMATIC

%c or $ : nonstandard edit descriptor in format

нестандартный разделитель в format

%s : unrecognized value in option

незарезервированная величина в опции

'.' : expected in format

символ . ожидается в format

'%c' : unexpected character in format

неожиданная строковая в format

* : not last array bound

не последнее ограничение массива

130