Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Вид семейства

Материал взят из проекта Lahey: http://www.lahey.com/index.html, http://www.lahey.com/other.htm). | Выражения для массивов | Секция (вырезка) массива | Модули и процедуры | Более подробная информация | Спецификации или объявления | Тип Character | Логические выражения | Массивы и производные типы | Оператор и конструкция IF |


Читайте также:
  1. Глава(о членах семейства Эшу).
  2. Назначение и основные особенности семейства программ
  3. Технические характеристики моделей семейства Suprasetter

Тип семейства дает возможность пользователю запросить, какой встроеннный тип использован базовым для точности и диапазона значений. Это средства среду вычислений. Программисты, которые адресуют свои программы разным машинам, должны иметь дело с различным числом точных цифр. Используя семейство (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 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Возможности расширения языка| Управление программой

mybiblioteka.su - 2015-2024 год. (0.006 сек.)