Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran语言中的布尔函数_Fortran - Fatal编程技术网

Fortran语言中的布尔函数

Fortran语言中的布尔函数,fortran,Fortran,我们如何在Fortran 90中编写布尔函数。就像我在做一个堆栈,想让一个布尔函数为空,它将返回真/假 我试图寻找一个这样的例子,但实际上找不到。有人能给我举个例子说明如何实现这一点吗。这里有三个函数使用不同的语法返回逻辑值的例子。您可以选择是否定义与函数名不同的结果变量。我在代码中使用第一个语法 module foo implicit none contains ! function even(i) result(tf) integer, intent(in) :: i logical

我们如何在Fortran 90中编写布尔函数。就像我在做一个堆栈,想让一个布尔函数为空,它将返回真/假


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

这里有三个函数使用不同的语法返回逻辑值的例子。您可以选择是否定义与函数名不同的结果变量。我在代码中使用第一个语法

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。回来