!c Description:
!c   化学反応による化学種の存在をチェック
!c
!c Current Code Owner: 
!c   sugiyama@gfd-dennou.org
!c
!c Histry: 
!c   Version    Date          Comment
!c   -------    ----------    --------
!c   1.0        2003-03-01    作成
!c
!c Copyright (C) SUGIYAMA Ko-ichiro, 2003, All rights reserved

module interface_ChkSpcExist
  interface
     
     subroutine ChkSpcExist(method, name, ssw, sw)
       integer, intent(in)               :: method(:)
       character(*), intent(in)          :: name(:)
       logical, intent(out), allocatable :: ssw(:)
       logical, intent(out)              :: sw
     end subroutine ChkSpcExist
     
  end interface
end module interface_ChkSpcExist




subroutine ChkSpcExist(method, name, ssw, sw)
  use interface_name2num

  implicit none
  integer, intent(in)               :: method(:)
  character(*), intent(in)          :: name(:)
  logical, intent(out), allocatable :: ssw(:)
  logical, intent(out)              :: sw
  
  integer                           :: s, N
  integer                           :: num1, num2
  character(20)                     :: gasname


!!!
!!!初期値作成
!!!
  N = size(name, 1)
  if (allocated(ssw)) deallocate(ssw)
  allocate(ssw(N))
  ssw = .true.; sw = .false. 
  

!!!
!!! NH4SH の存在条件
!!!
  do s = 1, N
     if (method(s) == 5) then 
        !対応する気相が存在するかチェック
        gasname = 'H2S-g'
        call name2num(gasname, name, num1)
        
        !対応する気相が存在するかチェック
        gasname = 'NH3-g'
        call name2num(gasname, name, num2)
        
        !名前に対応する化学種が系に存在しなければ零が入っている
        if (num1 == 0 .OR. num2 == 0) then
           ssw(s) = .false.
           sw = .true.
        end if
     end if
  end do

end subroutine ChkSpcExist
