1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
! Test while's test statement and how we handle any expression
! inside that needs a temporary
program while_05
integer :: x = 2
integer :: hit = 0
! Predicate with some array operations in it
do while(boo(foo(x) == ["Hello","World"]))
print *, "Hi"
x = 1
hit = hit + 1
end do
if(hit /= 1) error stop
contains
function foo(i) result (r)
integer :: I
character(5):: r(2)
if(i == 1) then
r = ["bla","bla"]
else
r = ["Hello","World"]
end if
end function
function boo(arr) result (r_logical)
logical ::r_logical
logical :: arr(2)
if(all(arr.eqv. [.true.,.true.])) then
r_logical = .true.
else
r_logical = .false.
end if
end function
end program
|