bubanoid
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Модуль: Код: module mod implicit none real(8), parameter :: Pi = 3.1415926535897932384d0 contains abstract interface real(8) function func(x) real(8), intent (in) :: x end function func end interface real(8) function f1(x) real(8), intent (in) :: x f1 = dsin(x) end function f1 real(8) function f2(x) real(8), intent (in) :: x f2 = dcos(x) end function f2 procedure (func), pointer :: f_ptr => null() ! Вместо последней строки достаточно писать ! procedure (f1), pointer :: f_ptr => null() ! в таком случае можно обойтись без определения абстрактного интерфейса func(x). real(8) function f0(x) real(8), intent (in) :: x f0 = dexp(-x**2)*f_ptr(x) end function f real(8) function integration(f, x1, x2) real(8), intent (in) :: x1, x2 real(8), external :: f real(8) d, s integer i integer, parameter :: n = 100000 d = (x2 - x1)/dfloat(n) s = 0.0d0 do i = 1, n s = s + f(x1 + d*dfloat(i) - d*0.5d0) enddo integration = s*d end function integration end module mod | Программа: Код: | Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 21:33 10-12-2012 | Исправлено: bubanoid, 22:06 11-12-2012 |
|