Читайте также:
|
|
№ п/п | Тема | Использованные операторы и атрибуты |
Взаимодействие подпрограмм через параметры и COMMON-блоки | PROGRAM, CONTINUE, CALL, PRINT, FORMAT, STOP, DO, SUBROUTINE, COMMON, END, DIMENSION, EQUIVALENCE, RETURN, FUNCTION | |
Декларации данных, объектно-ориентированные и атрибутные, указатели и адресаты | Subroutine,!, DATA, integer, real, character, complex, write, end, DO, END DO, DIMENSION, POINTER, TARGET, PARAMETER, logical, write, associated, interface, end interface, call | |
Внутренние подпрограммы, структурный тип | integer, real, type, end type, format, write, call, contains, subroutine, intent, end subroutine, end program | |
Определение и использование модуля, родовые процедуры | Module, end module, contains, real, integer, function, end function, use, module procedure, interface, end interface, write, program, end program | |
Приемы программирования обработки массивов с подпрограммами | INTERFACE, END INTERFACE, SUBROUTINE, END SUBROUTINE, INTEGER, REAL, INTENT, END, OPTIONAL, character, DIMENSION, do,end do, write, do while, read,CALL, if.. then.. else.. end if, present, FUNCTION, RETURN | |
Глобальные данные | PROGRAM, IMPLICIT NONE, REAL, INTEGER, CALL, Write, CONTAINS, SUBROUTINE, INTENT, PRINT, END SUBROUTINE, REAL FUNCTION, END FUNCTION, END PROGRAM | |
Разреженная матрица | Program, TYPE, END TYPE, REAL, INTEGER, TYPE (NONZERO), do, end do, write, end | |
Родовые процедуры | Module, end module, interface, end interface, function, result, end function, real, double precision, program, use, data, write, end program | |
Условная обработка массива | DO, END DO, WHERE | |
Выделение и возвращение памяти для массивов | ALLOCATABLE, ALLOCATE, DO, END DO, IF, ALLOCATE D, DEALLOCATE |
Пример 1. Взаимодействие подпрограмм через параметры и COMMON-блоки
В файле /comm/f90exampl$./fcomm1.f программа,
показывающая взаимодействие программ через параметры, блоки COMMON и оператор EQUIVALENCE.
PROGRAM MAIN
COMMON B(50,50), U(50)
N= 20
DO 1 I=1,N
DO 1 J=1,N
B(I,J)=I+J
1 CONTINUE
DO 20 i= 1,N
20 U(i)=1
CALL MATRIX (N)
C
DO 30 k=1,5
print 31, b(1,k)
30 continue
31 format (' A=', F10.2)
Z = SKALAR (N)
PRINT 3, Z
3 FORMAT (' Z=',F15.5)
STOP
END
c
SUBROUTINE MATRIX (N)
COMMON A(50,50), X(50)
DIMENSION Y(50)
EQUIVALENCE (A(1),Y(1))
DO 2 I =1,N
S= 0.0
DO 1 J = 1,N
1 S = S +A(I,J)*X(J)
2 Y(I) = S
RETURN
END
FUNCTION SKALAR (N)
COMMON Y(50), F(49,49), X(50)
S = 0.0
DO 1 I =1,N
1 S = S+X(I)*Y(I)
SKALAR = S
RETURN
END
В результате трансляции получен абсолютный код в файле /comm/f90exampl$./fcomm1
Вот что видно на экране после запуска
al2:~/ comm/f90exampl$./fcomm1
A= 230.00
A= 3.00
A= 4.00
A= 5.00
A= 6.00
Z= 0.00000
Press any key to continue...
Дата добавления: 2015-11-14; просмотров: 73 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Array Pointers | | | Пример 2. Декларации данных, объектно-ориентированные и атрибутные |