显示 Fortran 中意图(out)和意图(inout)之间差异的有效程序

3 fortran

这是我在 SO 上找到的帖子的后续内容:Difference Betweenintent(out) andintent(inout)

链接的问题通过询问无效程序来询问Fortranintent(out)和之间的区别。intent(inout)

任何人都可以想出一个简单有效的程序,通过更改intent(inout)intent(out)或反之亦然来给出不同的结果?

Ste*_*nel 5

干得好...

program intent_test
implicit none
integer, allocatable :: a(:)

a = [1,2,3,4,5]

call intent_inout (a)

call intent_out (a)

contains

subroutine intent_inout (a)
integer, allocatable, intent(inout) :: a(:)

if (allocated(a)) then
  print *, a
else
  print *, "Unallocated"
end if

end subroutine intent_inout

subroutine intent_out (a)
integer, allocatable, intent(out) :: a(:)

if (allocated(a)) then
  print *, a
else
  print *, "Unallocated"
end if

end subroutine intent_out

end program intent_test
Run Code Online (Sandbox Code Playgroud)

1 2 3 4 5 Unallocated