  subroutine BasicSet_file_init(basicfile)
    !
    !基本場の値を netCDF ファイルから取得する. 
    !netCDF から値を取得するために gt4f90io を利用する. 
    !
    
    !モジュール読み込み
    use gt4_history
    use gridset,    only: DimXMin,  &! 配列の X 方向の下限
      &                   DimXMax,  &! 配列の X 方向の上限
      &                   DimZMin,  &! 配列の Z 方向の下限
      &                   DimZMax,  &! 配列の Z 方向の上限
      &                   SpcNum     ! 化学種の数
    
    !入力変数
    character(*), intent(in) :: basicfile
   
    !内部変数
    character(20)  :: name            !変数名
    
    !変数の定義. save 属性は必要ない
    real(8), allocatable  :: xz_DensBasicZ(:,:)    !密度
    real(8), allocatable  :: xz_PressBasicZ(:,:)   !無次元圧力
    real(8), allocatable  :: xz_ExnerBasicZ(:,:)   !無次元圧力
    real(8), allocatable  :: xz_TempBasicZ(:,:)    !温度
    real(8), allocatable  :: xz_PotTempBasicZ(:,:) !温位
    real(8), allocatable  :: xz_VelSoundBasicZ(:,:)!音速
    real(8), allocatable  :: xz_MixRtBasicZ(:,:,:)!凝縮成分混合比
    real(8), allocatable  :: xz_EffMolWtBasicZ(:,:)!分子量効果

    !配列の割り当て
    allocate(  &
      & xz_PressBasicZ(DimXMin:DimXMax, DimZMin:DimZMax),    &
      & xz_ExnerBasicZ(DimXMin:DimXMax, DimZMin:DimZMax),    &
      & xz_TempBasicZ(DimXMin:DimXMax, DimZMin:DimZMax),     &
      & xz_PotTempBasicZ(DimXMin:DimXMax, DimZMin:DimZMax),  &
      & xz_DensBasicZ(DimXMin:DimXMax, DimZMin:DimZMax),     &
      & xz_VelSoundBasicZ(DimXMin:DimXMax, DimZMin:DimZMax), &
      & xz_MixRtBasicZ(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), & 
      & xz_EffMolWtBasicZ(DimXMin:DimXMax, DimZMin:DimZMax) )
    
    !netCDF File から基本場の情報を取得する. 
    name = "PressBasicZ"
    call HistoryGet( basicfile, name, xz_PressBasicZ )
    
    name = "ExnerBasicZ"
    call HistoryGet( basicfile, name, xz_ExnerBasicZ )

    name = "TempBasicZ"
    call HistoryGet( basicfile, name, xz_TempBasicZ )

    name = "PotTempBasicZ"
    call HistoryGet( basicfile, name, xz_PotTempBasicZ )

    name = "DensBasicZ"
    call HistoryGet( basicfile, name, xz_DensBasicZ )

    name = "VelSoundBasicZ"
    call HistoryGet( basicfile, name, xz_VelSoundBasicZ ) 

    name = "MixRtBasicZ"
    call HistoryGet( basicfile, name, xz_MixRtBasicZ ) 

    name = "EffMolWtBasicZ"
    call HistoryGet( basicfile, name, xz_EffMolWtBasicZ ) 


    !----------------------------------------------------------
    ! BasicSet モジュールに値を設定
    !----------------------------------------------------------
    call BasicSet_Init(                                       &
      & xz_PressBasicZ,    xz_ExnerBasicZ, xz_TempBasicZ,     &
      & xz_PotTempBasicZ,  xz_DensBasicZ,  xz_VelSoundBasicZ, &
      & xz_MixRtBasicZ, xz_EffMolWtBasicZ )


    !----------------------------------------------------------
    ! 配列の開放
    !----------------------------------------------------------
    deallocate(                                               &
      & xz_PressBasicZ,    xz_ExnerBasicZ, xz_TempBasicZ,     &
      & xz_PotTempBasicZ,  xz_DensBasicZ,  xz_VelSoundBasicZ, &
      & xz_MixRtBasicZ, xz_EffMolWtBasicZ )

  end subroutine BasicEnvFile_Init

