| 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