基本場の値を netCDF ファイルから取得する. netCDF から値を取得するために
gtool5 を利用する.
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