  subroutine BasicSet_file_init(basicfile)
    !
    !$B4pK\>l$NCM$r(B netCDF $B%U%!%$%k$+$i<hF@$9$k(B. 
    !netCDF $B$+$iCM$r<hF@$9$k$?$a$K(B gt4f90io $B$rMxMQ$9$k(B. 
    !
    
    !$B%b%8%e!<%kFI$_9~$_(B
    use gt4_history
    use gridset,    only: DimXMin,  &! $BG[Ns$N(B X $BJ}8~$N2<8B(B
      &                   DimXMax,  &! $BG[Ns$N(B X $BJ}8~$N>e8B(B
      &                   DimZMin,  &! $BG[Ns$N(B Z $BJ}8~$N2<8B(B
      &                   DimZMax,  &! $BG[Ns$N(B Z $BJ}8~$N>e8B(B
      &                   SpcNum     ! $B2=3X<o$N?t(B
    
    !$BF~NOJQ?t(B
    character(*), intent(in) :: basicfile
   
    !$BFbItJQ?t(B
    character(20)  :: name            !$BJQ?tL>(B
    
    !$BJQ?t$NDj5A(B. save $BB0@-$OI,MW$J$$(B
    real(8), allocatable  :: xz_DensBasicZ(:,:)    !$BL)EY(B
    real(8), allocatable  :: xz_PressBasicZ(:,:)   !$BL5<!8505NO(B
    real(8), allocatable  :: xz_ExnerBasicZ(:,:)   !$BL5<!8505NO(B
    real(8), allocatable  :: xz_TempBasicZ(:,:)    !$B29EY(B
    real(8), allocatable  :: xz_PotTempBasicZ(:,:) !$B290L(B
    real(8), allocatable  :: xz_VelSoundBasicZ(:,:)!$B2;B.(B
    real(8), allocatable  :: xza_MixRtBasicZ(:,:,:)!$B6E=L@.J,:.9gHf(B
    real(8), allocatable  :: xz_EffMolWtBasicZ(:,:)!$BJ,;RNL8z2L(B

    !$BG[Ns$N3d$jEv$F(B
    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), &
      & xza_MixRtBasicZ(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), & 
      & xz_EffMolWtBasicZ(DimXMin:DimXMax, DimZMin:DimZMax) )
    
    !netCDF File $B$+$i4pK\>l$N>pJs$r<hF@$9$k(B. 
    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, xza_MixRtBasicZ ) 

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


    !----------------------------------------------------------
    ! BasicSet $B%b%8%e!<%k$KCM$r@_Dj(B
    !----------------------------------------------------------
    call BasicSet_Init(                                       &
      & xz_PressBasicZ,    xz_ExnerBasicZ, xz_TempBasicZ,     &
      & xz_PotTempBasicZ,  xz_DensBasicZ,  xz_VelSoundBasicZ, &
      & xza_MixRtBasicZ, xz_EffMolWtBasicZ )


    !----------------------------------------------------------
    ! $BG[Ns$N3+J|(B
    !----------------------------------------------------------
    deallocate(                                               &
      & xz_PressBasicZ,    xz_ExnerBasicZ, xz_TempBasicZ,     &
      & xz_PotTempBasicZ,  xz_DensBasicZ,  xz_VelSoundBasicZ, &
      & xza_MixRtBasicZ, xz_EffMolWtBasicZ )

  end subroutine BasicEnvFile_Init

