!== Kind type parameter value
!
! Authors::   Yasuhiro MORIKAWA, Eizi TOYODA
! Version::   $Id: dc_types.f90,v 1.7 2006/06/09 05:28:40 morikawa Exp $
! Tag Name::  $Name: gt4f90io-20060618 $
! Copyright:: Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.
! License::   See COPYRIGHT[link:../../COPYRIGHT]
!
! This file provides dc_types
!

module dc_types
  !
  !== Overview
  !
  ! 種別型パラメタを提供します。
  !
  !
  implicit none
  private
  public :: DP
  public :: TOKEN
  public :: STRING
  public :: NF_KIND_INT1
  public :: NF_KIND_INT2

  integer, parameter:: DP  = kind(0.0d0) ! Double Precision.
                                         ! 倍精度実数型変数の種別型パラメタ
                                         ! として用います。

  integer, parameter:: TOKEN  = 32       ! Token.
                                         ! 単語やキーワードを保持する
                                         ! 文字型変数の種別型パラメタ
                                         ! として用います。

  integer, parameter:: STRING = 255      ! String.
                                         ! 文字列を保持する
                                         ! 文字型変数の種別型パラメタ
                                         ! として用います。
                                         !
                                         !--
                                         !開発者向け情報
                                         !
                                         ! 255 という値に深い理由はありません.
                                         ! 必要ならばより大きな値を設定
                                         ! しても構いません.
                                         !
                                         ! ただし, SR11000 の最適化
                                         ! FORTRAN90 を使用する場合に
                                         ! は 255 以下に指定する必要が
                                         ! あります.
                                         !
                                         !++

  ! netCDF Fortran インターフェイスの型パラメタ
  ! (netcdf.inc には存在しない)
  !
  integer, parameter:: NF_KIND_INT1 = selected_int_kind(2)
  integer, parameter:: NF_KIND_INT2 = selected_int_kind(4)
end module
