Читайте также: |
|
Тип семейства дает возможность пользователю запросить, какой встроеннный тип использован базовым для точности и диапазона значений. Это средства среду вычислений. Программисты, которые адресуют свои программы разным машинам, должны иметь дело с различным числом точных цифр. Используя семейство (kind), программист может специфицировать требуемую числовую точность.
! Пример, использующий атрибут KIND и функцию KIND.
! Этот пример потребует от компилятора символьный тип данных kind(2)
! Это допустимо в F90, но не обязательно.
program main
integer, parameter:: kanji_char_kind = 2
! Используем атрибут kind, чтобы определить известный kind.
character(kind = kanji_char_kind, len=20), dimension(20):: name
! Используем функцию kind, чтобы определить kind из объекта известного kind.
real(kind = kind(0.0d0)):: pi=3.14159265359d0
open(unit=1, file='names', form='formatted', access='sequential')
read(1,10) (name(i), i=1,20)
write(*,20) name
write(*,30) pi
close(unit=1)
10 format(a20)
20 format(1x,t7,a20,t30,a20,t55,a20)
30 format(1x,1p,d18.11)
end program
з
Объявления (декларации, спецификации)
Объекты данных могут иметь комбинацию 12 различных атрибутов, таких как POINTER, SAVE, и т.д. Fortran 90 вводит "объектно-ориентированные " объявления, в которых объекты с одинаковыми комбинациями атрибутов могли быть декларированы со всеми их атрибутами в одном операторе. В одной строке могут теперь быть записаны:
REAL, DIMENSION (3), PARAMETER:: & a = (/ 0.0, 0.0, 0.0 /), b = (/ 1.0, 1.0, 1.0 /) COMPLEX, DIMENSION(10):: johnТогда как переменные a и b задают константный вектор из 3 элементов и значения с плавающей точкой 0.0 и 1.0, соответственно, в то время как john задается как вектор типа complex из 10 элементов типа complex, все еще не присвоены значения ни одной переменной.
Двойная точность может быть реализована более общим методом, чтобы дать настраиваемую точность, даваемую параметром KIND, для которого точность мы определим полностью для всех типов переменных.
INTEGER, PARAMETER:: LP = SELECTED_REAL_KIND(20) REAL (KIND = LP):: X, Y, ZВыше приведенные операторы объявляют переменные X, Y и Z как REAL с плавающей точкой с числом десятичных цифр, меньшим 20 с типом данных, называемым LP (где LP стандартное сокращение для LONG PRECISION).
з
Конструкторы
Массив и объекты производных типов данных могут быть инициализированы в операторе объявления. Конструктор может быть использован как константа там, где ожидается массив или производный тип.
IMPLICIT NONE *
Если Вы хотите использовать алгол-принцип спецификации всех переменных, это достигается командой IMPLICIT NONE с явными описаниями типа.
Эта стандартизация популярного расширения F77 делает обязательным для всех объектов данных явное объявление.
з
Дата добавления: 2015-11-14; просмотров: 52 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Возможности расширения языка | | | Управление программой |