!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-02-05    作成
!c
!c Copyright (C) SUGIYAMA Ko-ichiro, 2003, All rights reserved

module prm_type

  type type_tree
     integer                  :: node 
     type(type_tree), pointer :: left
     type(type_tree), pointer :: right     
  end type type_tree
  
  type type_iofile
     integer                  :: unit
     character(40)            :: name
  end type type_iofile
  
  type type_spl
     real(8)                  :: temp
     real(8)                  :: dat
     real(8)                  :: dat_int
     real(8)                  :: dat_dvt_int
     real(8)                  :: C
     real(8)                  :: D
     real(8)                  :: E
  end type type_spl

  type type_refstat
     real(8)                  :: enth
     real(8)                  :: entr
  end type type_refstat

  type type_limit
     real(8)                  :: temp
     real(8)                  :: A
     real(8)                  :: B
     real(8)                  :: C
  end type type_limit

  type type_comps
     integer                  :: atmnum
     real(8)                  :: enum
  end type type_comps

  type type_data
     real(8)                  :: temp
     real(8)                  :: data
  end type type_data

  type list_comps
     type(list_comps), pointer :: next
     type(type_comps)          :: record
  end type list_comps

  type list_data
     type(list_data), pointer :: next
     type(type_data)          :: record
  end type list_data

  type list_spl
     type(list_spl), pointer   :: next
     type(type_spl)            :: record
  end type list_spl

  type list_spl_spc
     type(list_spl_spc), pointer :: next
     type(list_spl)              :: spc
  end type list_spl_spc

  type type_svap
     type(type_limit)        :: low
     type(type_limit)        :: high
     real(8)                 :: A
     real(8)                 :: B
     real(8)                 :: C
     real(8)                 :: D
     real(8)                 :: E
  end type type_svap

  type type_property
     integer                     :: num
     character(20)               :: name
     real(8)                     :: molwt
     type(type_refstat)          :: ref
     logical                     :: solsw
     integer                     :: method
     integer                     :: phase
     type(list_comps), pointer   :: comps
     type(list_data), pointer    :: cp
     type(list_data), pointer    :: svap
     type(list_spl), pointer     :: spl
     type(type_svap)             :: svap_cef
  end type type_property
  
end module prm_type
