Skip to content

Instantly share code, notes, and snippets.

@niihelium
Created May 20, 2017 13:12
Show Gist options
  • Save niihelium/497c7d82e8218be4824bd72b59f31fef to your computer and use it in GitHub Desktop.
Save niihelium/497c7d82e8218be4824bd72b59f31fef to your computer and use it in GitHub Desktop.
module func !Для того, чтобы где-то содержать функцию - объявим модуль
implicit none !как обычно
contains !модуль содержит, используется один раз за модуль
function deg(number,power) result(product) !обявим функцию
real*8, intent(in) :: number, power !входные данные, intent(in) указывает,
! что эти переменные мы не имеем права
! менять их внутри функции
real*8 product !переменная должна называтсья так же как и в объявлении
product = number**power !дальше пишем что функция делает
!здесь может быть и цикл и что угодно, но лучше избегать вывода инфрмации
!в файл или в консоль, кроме случаев когда функция создана для этого
return !это служебное слово, которое гворит, что мы хотим выйти из функции
!напрмиер если мы прошли в цикли до нуного места, или прошли по условным операторам
!здесь вообще говоря - оно не нужно
end function deg !закрываею фунцию
end module func !закрываем модуль
program DEGR !обявляем начало программы
use func !пишем, что хотим использовать модуль func
implicit none !....
real*8 A, B, C !объявляем нужные для работы переменные
A=5. !задаем
B=6. !задаем
c = deg(a,b) !присваиваем С возвращаемое значение функции
WRITE(*,*) c !выводим с
c = deg(2d0,4d0) !можем сразу подставить значения, не обявляя их сверху
WRITE(*,*) c !выводим с
WRITE(*,*) deg(2d0,2d0) !или вообще не использовать промежуточную переменну.
end program DEGR !закрываем программу
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment