| Class | filesetmpi | 
| In: | 
                
                setup/filesetmpi.f90
                
         | 
        
引数に与えられた NAMELIST ファイルから, I/O ファイル名を取得し, 保管するための変数型モジュール
| Subroutine : | |
| cfgfile : | character(*), intent(in) | 
NAMELIST からファイル名に付けるタグを得て, 出力ファイル名を作成する.
This procedure input/output NAMELIST#fileset .
  subroutine fileset_init(cfgfile)
    !
    !NAMELIST からファイル名に付けるタグを得て, 出力ファイル名を作成する. 
    !
    !モジュール読み込み
    use dc_message,    only: MessageNotify
    !暗黙の型宣言禁止
    implicit none
    !入力変数
    character(*), intent(in) :: cfgfile
    integer                  :: s        !ループ添字
    !NAMELIST から情報を取得
    NAMELIST /fileset/ InitFilePrefix, HistoryFilePrefix, RandomFile, ExpTitle, ExpSrc, ExpInst
    open (10, FILE=cfgfile)
    read(10, NML=fileset)
    close(10)
    !確認
    call MessageNotify( "M", "fileset_init", "InitFilePrefix=%c",    c1=trim(InitFilePrefix))
    call MessageNotify( "M", "fileset_init", "HistoryFilePrefix=%c", c1=trim(HistoryFilePrefix) )
    call MessageNotify( "M", "fileset_init", "RandomFile=%c",  c1=trim(RandomFile) )
    call MessageNotify( "M", "fileset_init", "ExpTitle=%c",    c1=trim(ExpTitle) )
    call MessageNotify( "M", "fileset_init", "ExpSrc=%c",      c1=trim(ExpSrc) )
    call MessageNotify( "M", "fileset_init", "ExpInst=%c",     c1=trim(ExpInst) )
    !ファイル名を格納する配列の割り付け
    !  次元数は
    !    PotTemp, Exner, VelX, VelZ, MixRt(SpcNum), Km, Kh
    !    *BasicZ, *Zprof
    !  の合計 8 + SpcNum
    
    FileNum = 8 + SpcNum
    allocate(HistoryFile(FileNum))
    allocate(gt_hist(FileNum))
    !ノード番号の文字列化
    rank = "000"
    if (myrank < 10) then 
      write(rank(3:3), 100) myrank
100 format(I1)
    else if (myrank < 100 ) then 
      write(rank(2:3), 200) myrank
200 format(I2)
    else if (myrank < 1000 ) then 
      write(rank(1:3), 300) myrank
300 format(I3)
!    else
!      write(rank, 400) myrank
!400 format(I4)
    end if
    if (trim(InitFilePrefix) /= '') then 
      InitFile = trim(InitFilePrefix)//"-node"//trim(rank)//"_restart.nc"     
    else
      InitFile = ''
    end if
    HistoryFile(1) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_Exner.nc" 
    HistoryFile(2) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_PotTemp.nc" 
    HistoryFile(3) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_VelX.nc" 
    HistoryFile(4) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_VelZ.nc" 
    HistoryFile(5) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_Km.nc" 
    HistoryFile(6) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_Kh.nc" 
    HistoryFile(7) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_BasicZ.nc" 
    HistoryFile(8) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_Zprof.nc" 
    do s = 1, SpcNum
      HistoryFile(8+s) = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_"//trim(SpcWetSymbol(s))//".nc"
    end do
    !リスタートファイル
    ReStartFile  = trim(HistoryFilePrefix)//"-node"//trim(rank)//"_restart.nc" 
    !確認
    call MessageNotify( "M", "fileset_init", "InitFile=%c", c1=trim(InitFile) )
    do s = 1, Filenum
      call MessageNotify( "M", "fileset_init", "HistoryFile=%c", c1=trim(HistoryFile(s)) )
    end do
    call MessageNotify( "M", "fileset_init", "ReStartFile=%c", c1=trim(ReStartFile) )
    
  end subroutine fileset_init