Fortran语言中的布尔函数
我们如何在Fortran 90中编写布尔函数。就像我在做一个堆栈,想让一个布尔函数为空,它将返回真/假Fortran语言中的布尔函数,fortran,Fortran,我们如何在Fortran 90中编写布尔函数。就像我在做一个堆栈,想让一个布尔函数为空,它将返回真/假 我试图寻找一个这样的例子,但实际上找不到。有人能给我举个例子说明如何实现这一点吗。这里有三个函数使用不同的语法返回逻辑值的例子。您可以选择是否定义与函数名不同的结果变量。我在代码中使用第一个语法 module foo implicit none contains ! function even(i) result(tf) integer, intent(in) :: i logical
我试图寻找一个这样的例子,但实际上找不到。有人能给我举个例子说明如何实现这一点吗。这里有三个函数使用不同的语法返回逻辑值的例子。您可以选择是否定义与函数名不同的结果变量。我在代码中使用第一个语法
module foo
implicit none
contains
!
function even(i) result(tf)
integer, intent(in) :: i
logical :: tf
tf = modulo(i,2) == 0
end function even
!
logical function odd(i) result(tf)
integer, intent(in) :: i
tf = modulo(i,2) == 1
end function odd
!
logical function triplet(i)
integer, intent(in) :: i
triplet = modulo(i,3) == 0
end function triplet
!
end module foo
!
program main
use foo, only: even,odd,triplet
implicit none
print*,even(2),even(3),even(5),even(0) ! output: T F F T
print*,odd(2),odd(3),odd(5),odd(0) ! output: F T T F
print*,triplet(2),triplet(3),triplet(5),triplet(0) ! output: F T F T
end program main
逻辑函数FUN1(arg1,…)函数的返回是什么样子的?执行返回时函数名的值作为函数值返回给包含函数引用的程序单元`FUN1=.TRUE。回来