【问题标题】:Boolean Function In FortranFortran 中的布尔函数
【发布时间】:2015-03-30 22:15:11
【问题描述】:

我们如何在 Fortran 90 中编写布尔函数。就像我正在创建一个堆栈并想要创建一个布尔函数 isEmpty,它会返回一个真/假。

我试图寻找一个这样的例子,但实际上找不到。有人可以给我举个例子来说明如何做到这一点。

【问题讨论】:

  • 逻辑函数 FUN1(arg1,...)
  • 函数的返回是什么样子的?
  • 执行RETURN时函数名的值作为函数值返回给包含函数引用的程序单元。 `FUN1 = .TRUE。返回

标签: fortran


【解决方案1】:

下面是三个使用不同语法返回逻辑值的函数示例。您可以选择是否定义与函数名称不同的 RESULT 变量。我在我的代码中使用第一种语法。

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

【讨论】:

    猜你喜欢
    • 2015-05-23
    • 2013-05-06
    • 2021-12-06
    • 1970-01-01
    • 2011-10-17
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多