Читайте также:
|
|
Дескриптор F используется для управления вещественными (или комплексными) числами, когда требуется нотация с фиксированной десятичной точкой. Она имеет форму Fw.d. Несколько вещественных чисел можно читать(писать), используя повторитель. - aFw.d. Например:
REAL:: itest=123.4567! число для записи
...
WRITE(*,*) itest! 1.2345670E+02 -формат не F
WRITE(*,'(F8.0)') itest! 123
WRITE(*,'(F10.4)') itest! 123.4567
WRITE(*,'(F10.5)') itest! 123.45670
WRITE(*,'(F10.9)') itest! **********
WRITE(*,'(2F8.4)') itest, 7654321! 123.4567765.4321
WRITE(*,'(2F10.4)') itest, 7654321! 123.4567 765.4321
Важно помнить, что десятичная точка помещается в поле вывода ширины w. В верхнем примере, несмотря на то, что они записывали 7 цифр на экран, поле должно быть из 8 символов (или более), чтобы обеспечить место для десятичной точки.
Я
Вещественные - экспотенциальная форма
Дескриптор E используется для управления форматом вещественных (и комплексных) чисел, когда требуется нотация десятичной плавающей точки. Форма Ew.d или Ew.dEe, где e число цифр в экспоненте. Экспонента нужна для показа чисел со значениями ниже 0.001 или выше 1000. Как и прежде несколько чисел могут быть прочитаны (записаны) в одном формате использованием повторителя - aEw.d. Если w слишком велико для представления числа, ведущие пробелы добавляются перед цифрами. Например:
REAL:: itest=123.45*1000000! число для записи (кратность- 1 миллион)
...
WRITE(*,*) itest! 1.2345670E+02
WRITE(*,'(E10.4)') itest! 0.1234E+09
WRITE(*,'(E10.5)') itest!.12345E+09
WRITE(*,'(E10.4E3)') itest!.1234E+009
WRITE(*,'(E10.9)') itest! **********
WRITE(*,'(2E12.4)') itest, 7654321! 0.12345E+090.76543E+04
WRITE(*,'(2E10.4)') itest, 7654321! 0.1234E+090.7654E+04
Допустимы две альтернативные формы дескриптора E:
Обе используются одним и тем же способом как спецификация (дескриптор) Е:
REAL:: itest=123.45*100! Число записать 100 раз
...
WRITE(*,*) itest! 1.2345000E+04
WRITE(*,'(EN13.6)')! 12.345000E+03
WRITE(*,'(ES13.6)')! 1.234500E+04
Я
Символьные
Дескриптор A используется для управления форматом символов и строк в форме A или Aw. Дескриптор A будет писать столько символов, сколько потребуется, чтобы написать (напечатать) строку ширины w. Если w больше чем символьная строка, то добавляются ведущие пробелы перед символам строки. Например:
CHARACTER(LEN=8):: long='Bookshop'
CHARACTER(LEN=1):: short='B'
...
WRITE(*,*) long! Bookshop
WRITE(*,'(A)') long! Bookshop
WRITE(*,'(A8)') long! Bookshop
WRITE(*,'(A5)') long! Books
WRITE(*,'(A10)') long! Bookshop
WRITE(*,'(A)') short! B
WRITE(*,'(2A) short, long! BBookshop
WRITE(*,'(2A3) short, long! BBoo
Когда используется дескриптор A в операторах форматного READ() символьную строку не нужно заключать в кавычки.
Я
Логические
Логические данные форматируются с помощью дескриптора L и имеют форму Lw или aLw для счетчиков повторения. Обычно используются только две формы дескриптора L, L для одиночного символа формат T или F и L7, который позволяет печатать .TRUE. и .FALSE..
LOGICAL:: ltest=.FALSE.
WRITE(*,*) ltest! F
WRITE(*,'(2L1)') ltest,.NOT.ltest! FT
WRITE(*,'(L7)') ltest! F
Я
Заполнение пробелами (пропуск символьных позиций)
Дескриптор X используется для ввода пробелов между выводимыми значениями, чтобы обеспечить читаемось, записывается в форме aX. Дополнительные пробелы имеют смысл только при выводе (то есть в операторах WRITE()), они игнорируются в форматных операторах READ(). Например:
INTEGER:: n=1234! число для вывода
...
WRITE(*,'(I4, 2X, I4)') i, i-1! 1234 1233
WRITE(*,'(I4, 4X, I4)') i, i-1! 1234 1233
Дата добавления: 2015-11-14; просмотров: 62 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Родовые подпрограммы | | | Ввод-вывод без продвижения |