Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
современный фортран , Бортеньев.pdf
Скачиваний:
242
Добавлен:
26.03.2015
Размер:
2.34 Mб
Скачать

О. В. Бартеньев. Современный ФОРТРАН

interface assignment(=)

! Задание присваивания для инициализации записи

module procedure assir

 

end interface

 

contains

 

subroutine assir(rec, k)

 

type(icha), intent(out) :: rec

 

integer, intent(in) :: k

 

integer :: stlen

 

stlen = len(rec%fi)

rec = icha(k, k, repeat(char(k), stlen), repeat(char(k), stlen)) end subroutine assir

end module oves

 

program top

! Тип ire доступен посредством use-ассоциирования

use oves

type(icha) :: t

! через модули oves - tic

t = 35

! Выполняется заданное присваивание

print '(2i4, 2(1x,a))', t

! 35 35 ########## ##########

end

 

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

8.12.3. Общий вид оператора INTERFACE

Оператор

INTERFACE применяется для явного задания интерфейса

к внешней

процедуре, родового интерфейса, родовой операции и

присваивания. Его синтаксис:

INTERFACE [родовое описание] [тело интерфейса]

...

[MODULE PROCEDURE список имен процедур]

...

END INTERFACE

где родовое описание - это родовое имя, или OPERATOR(определяемая операция)

или

ASSIGNMENT(=)

252