Path: | main/arare_init-data.f90 |
Last Update: | Thu Mar 03 13:31:19 +0900 2011 |
Authors: | SUGIYAMA Ko-ichiro (杉山耕一朗), ODAKA Masatsugu (小高正嗣) |
Version: | $Id: arare_init-data.f90,v 1.2 2011-03-02 13:36:36 sugiyama Exp $ |
Tag Name: | $Name: $ |
Copyright: | Copyright (C) GFD Dennou Club, 2006. All rights reserved. |
License: | See COPYRIGHT |
非静力学モデル deepconv/arare.
* 方程式系は準圧縮系.
Main Program : |
非静力学モデル deepconv/arare.
This procedure input/output NAMELIST#arare_cpu .
program ArareInitData ! !非静力学モデル deepconv/arare. ! !----- モジュール読み込み ------ !----- 型宣言, 文字列処理 ---- use dc_types, only : STRING use dc_string, only : StoA !----- メッセージ出力 ----- use dc_message, only: MessageNotify ! コマンドライン引数解釈 use argset, only : argset_init !----- 管理モジュール ----- ! 化学量計算モジュール use ChemCalc, only: ChemCalc_init use chemdata, only: chemdata_init ! 入出力ファイル名管理モジュール use fileset, only : fileset_init ! デバッグ出力管理モジュール use debugset, only : debugset_init ! 格子点管理モジュール use gridset, only : gridset_init, DimXMin, DimXMax, DimZMin, DimZMax, SpcNum ! 基本場設定モジュール use basicset, only : basicset_init ! 湿潤ルーチン設定モジュール use moistset, only: moistset_init ! 境界条件適用モジュール use boundary, only : BoundaryXCyc_xz, BoundaryZSym_xz, BoundaryXCyc_xza, BoundaryZSym_xza, BoundaryXCyc_pz, BoundaryZSym_pz, BoundaryXCyc_xr, BoundaryZAntiSym_xr !----- 入出力モジュール ----- ! リスタートファイル入出力モジュール use RestartFileIO, only : ReStartFile_Open, ReStartFile_OutPut, ReStartFile_Close !暗黙の型宣言禁止 implicit none !内部変数 character(80) :: cfgfile real(8), allocatable :: pz_VelXBl(:,:) real(8), allocatable :: xr_VelZBl(:,:) real(8), allocatable :: xz_ExnerBl(:,:) real(8), allocatable :: xz_PotTempBl(:,:) real(8), allocatable :: xz_KmBl(:,:) real(8), allocatable :: xz_KhBl(:,:) real(8), allocatable :: xza_MixRtBl(:,:,:) real(8) :: Time integer :: cpu !NAMELIST ファイル名の読み込み call MessageNotify( "M", "main", "Namelist file is '%c'", c1=trim(cfgfile) ) call argset_init(cfgfile) !デバッグ設定 call debugset_init(cfgfile) !物質特性の初期化 call chemdata_init() !格子点情報の初期化 ! NAMELIST から情報を得て, 格子点を計算する call gridset_init(cfgfile) !化学計算ルーチンの初期化 call chemcalc_init() !基本場の情報の初期化 ! NAMELIST から情報を得て, 基本場を設定する. call basicset_init(cfgfile) !I/O ファイル名の初期化 ! NAMELIST ファイル名を指定し, deepconv/arare の ! 出力ファイル名を NAMELIST から得る call fileset_init(cfgfile) !湿潤ルーチンの共有変数の初期化 call moistset_init() !内部変数の初期化. とりあえずゼロを入れて値を確定させておく. call ArareAlloc ! CPU 数の設定 call ArareSetCPU ! デフォルト設定の基本場, 擾乱場を作成する. Time = 0.0d0 do i = 1, cpu ! 基本場の値を計算. 値をモジュールに保管. call BasicSetup(i, cpu, cfgfile) ! 擾乱場の値を計算 call DisturbSetup(i, cpu, cfgfile, xz_PotTempBl, xz_ExnerBl, pz_VelXBl, xr_VelZBl, xza_MixRtBl, xz_KmBl, xz_KhBl ) ! リスタートファイル作成. 基本場と擾乱場を出力. call ReStartFile_Open( ) call ReStartFile_OutPut( Time, xz_PotTempBl, xz_ExnerBl, pz_VelXBl, xr_VelZBl, xza_MixRtBl, xz_KmBl, xz_KhBl ) call ReStartFile_Close end do !---------------------------------------------------------------- ! リスタートファイルの作成 !---------------------------------------------------------------- contains subroutine ArareSetCPU ! 定義 NAMELIST /arare_cpu/ cpu !ファイルオープン. 情報取得. open (10, FILE=cfgfile) read(10, NML=arare_cpu) close(10) end subroutine ArareSetCPU subroutine ArareAlloc ! !初期化として, 配列を定義し, 値としてゼロを代入する. ! !暗黙の型宣言禁止 implicit none !配列割り当て allocate( pz_VelXBl(DimXMin:DimXMax, DimZMin:DimZMax), xr_VelZBl(DimXMin:DimXMax, DimZMin:DimZMax), xz_ExnerBl(DimXMin:DimXMax, DimZMin:DimZMax), xz_PotTempBl(DimXMin:DimXMax, DimZMin:DimZMax), xz_KmBl(DimXMin:DimXMax, DimZMin:DimZMax), xz_KhBl(DimXMin:DimXMax, DimZMin:DimZMax), xza_MixRtBl(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)) pz_VelXBl = 0.0d0 xr_VelZBl = 0.0d0 xz_ExnerBl = 0.0d0 xz_KmBl = 0.0d0 xz_KhBl = 0.0d0 xz_PotTempBl = 0.0d0 xza_MixRtBl = 0.0d0 end subroutine ArareAlloc end program ArareInitData