1

大きなプログラムにとって危険なグローバル値を使用したくありません。コードはこんな感じ

subroutine has_key(id)
  if (true) then 
     return 1
  else
     return 0
  end if
end subroutine

subroutine main
   if(has_key(id))
      write(*,*) 'it works!'
end subroutine

サブルーチンを使用してこのようなことを行うにはどうすればよいですか。フラグを返すことを考えていましたが、グローバル値を使用する可能性があります。誰でもアイデアがありますか?

4

2 に答える 2

2

関数でそれを行うこともできます。偶数に対して true を返すとします

logical function has_key(id)
   integer, intent(in):: id
   has_key = mod(id,2) .eq. 0
end function has_key

program main
   do ii = 1, 4
      if(has_key(ii))
         print *, ii, ' has key'
      else
         print *, ii, ' no key'
      end if
   end do
end program
于 2013-11-01T18:53:39.640 に答える