basicfileio.f90

Path: io/basicfileio.f90
Last Update: Sat Feb 28 17:19:09 +0900 2009

Required files

Methods

Included Modules

gtool_history gridset

Public Instance methods

Subroutine :
basicfile :character(*), intent(in)

基本場の値を netCDF ファイルから取得する. netCDF から値を取得するために gtool5 を利用する.

[Source]

  subroutine BasicSet_file_init(basicfile)
    !
    !基本場の値を netCDF ファイルから取得する. 
    !netCDF から値を取得するために gtool5 を利用する. 
    !
    
    !モジュール読み込み
    use gtool_history
    use gridset,    only: DimXMin, DimXMax, DimZMin, DimZMax, 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  :: xza_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), xza_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, xza_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, xza_MixRtBasicZ, xz_EffMolWtBasicZ )


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

  end subroutine BasicEnvFile_Init