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 :: 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