!---------------------------------------------------------------------
!     Copyright (C) GFD Dennou Club, 2004. All rights reserved.
!---------------------------------------------------------------------
                                                                 !=begin
!= Module TimeSet
!
!   * Developer: SUGIYAMA Ko-ichiro (sugiyama@gfd-dennou.org)
!   * Version: $Id$ 
!   * Tag Name: $Name:  $
!   * Change History: 
!
!== Overview 
!
!NAMELIST から時間の設定を行うモジュール
!
!== Error Handling
!
!== Known Bugs
!
!== Note
!
!== Future Plans
!
!エラー処理において gt4f90io を利用
!
                                                                 !=end

module timeset
  implicit none
  save
                                                                 !=begin
  !== Public Interface
  real(8)           :: DelTimeLong   !長いタイムステップ
  real(8)           :: DelTimeShort  !短いタイムステップ
  real(8)           :: TimeInt    !積分時間
  integer           :: TimeDisp   !ファイル出力するステップ数 
  integer           :: NstepLong !長いタイムステップのステップ数
  integer           :: NstepShort!短いタイムステップのステップ数
                                                                 !=end  
contains
                                                                 !=begin
  !== Procedure Interface 
  !
  !=== Initialize module and acquire NAMELIST
  !
  !NAMELIST から必要な情報を読み取り, 変数の設定を行う. 
  !
  subroutine timeset_init(cfgfile)

    !=== Input
    character(*), intent(in) :: cfgfile
    
    !=== NAMELIST
    NAMELIST /timeset/ &
         & DelTimeLong, DelTimeShort, TimeInt, TimeDisp
    
    open (10, FILE=cfgfile)
    read(10, NML=timeset)
    close(10)
                                                                 !=end    
    !--- ループ回数
    NstepLong = TimeInt / DelTimeLong 
    NstepShort = 2 * DelTimeLong / DelTimeShort

    !--- 警告
    if(mod(TimeInt, DelTimeShort) /= 0) then 
       write(*,*) "mod(TimeInt, DelTimeLong) is not zero"
    end if
    
    if(mod(2 * DelTimeLong, DelTimeShort) /= 0) then 
       write(*,*) "mod(2 * DelTl, DelTimeShort) is not zero"
    end if
    
  end subroutine timeset_init
  
end module timeset
