DCPAM Reference Manual

GFD Dennou Club

平成 17 年 2 月 18 日

目次

1 Program init 2 1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Future Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.6 Dependency . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.7 NAMELIST . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 Program init

• Developers: Morikawa Yasuhiro

• Version: $Id: init.f90,v 1.12 2005/01/20 16:37:40 morikawa Exp $

• Tag Name: $Name: $

• Change History:

1.1 Overview

Generate Various Initial Data

1.2 Error Handling 1.3 Known Bugs 1.4 Note 1.5 Future Plans 1.6 Dependency

—– 構造体参照モジュール —–

use type_mod, only: STRING, INTKIND, REKIND, DBKIND
use nmlfile_mod, only: nmlfile_init, nmlfile_open, nmlfile_close
use constants_mod, only: constants_init, pi, R0

—– 格子点取得モジュール —–

use grid_3d_mod,         only: grid_3d_init, im, jm, km, grid_3d_end
use grid_wavenumber_mod, only: grid_wavenumber_init, nm, grid_wavenumber_end

—– 座標データ生成モジュール —–

use axis_type_mod, only: AXISINFO
use axis_x_mod, only: axis_x_init, axis_x_weight, axis_x_spectral, axis_x_end
use axis_y_mod, only: axis_y_init, axis_y_weight, axis_y_spectral, axis_y_end
use axis_z_mod, only: axis_z_init, axis_z_sigmahalf_manual, axis_z_end

—– データ I/O モジュール —–

use io_gt4_out_mod, only : io_gt4_out_init   , io_gt4_out_SetDims, &
     &                     io_gt4_out_SetVars, io_gt4_out_Put    , &
     &                     io_gt4_out_end

—– 時刻管理モジュール —–

use time_mod, only: time_init, tvar, ttype, tname, tunit, time_end

—– SPMODEL モジュール —–

use spml_mod,  only: spml_init, xya_wa, wa_Div_xya_xya &
     &              ,wa_LaplaInv_wa, wa_xya, xya_GradLat_wa, xya_GradLon_wa

—– デバッグ・汎用ツール —–

use dc_trace,  only: SetDebug, DbgMessage, BeginSub, EndSub, DataDump
use dc_string, only: toChar, StriEq, LChar, StrHead
use dc_message,only: MessageNotify

1.7 NAMELIST

初期値の種類の設定を行なう。現在 condition に与えて有効なのは以下の値である。

   • rigid body rotation

– 剛体回転流を与える。風速の最大値は VelLonMax rbr に与える。 ∗ これを選択した場合、強制的に VorDiv Priority は .false. に

設定される。

   • convex of surface pressure

– 地表面気圧の「山」を与える。位置とサイズは、度数で与える場合は Lon Center Dig, Lat Center Dig, LonLatRadius Dig を用い、ラジアンで与える場合は Lon Center Rad, Lat Center Rad, LonLatRadius Rad を用いる (ただし、 Rad Priority を .true. にする必要がある)。最大値は PsMax で与える。

   • convex of temperature

– 温度の「山」を与える。位置とサイズは、度数で与える場合は Lon Center Dig, Lat Center Dig, LonLatRadius Dig を用い、ラジアンで与える場合は Lon Center Rad, Lat Center Rad, LonLatRadius Rad を用いる (ただし、 Rad Priority を .true. にする必要がある)。最大値は TempMax で与える。 • その他

– 等温無風の初期値を与える。

VelLonAve, VelLonAve, VelLatAve, VorAve, DivAve, TempAve, QVapAve, PsAve には、それぞれ平均値を与える。

デフォルトでは風速から渦度発散を生成するが、 VorDiv Priority を .true. にする事で、渦度発散から風速を生成する。

character(STRING) :: condition = ''      ! 初期値の種類
real(DBKIND)      :: VelLonAve = 0.0d0   ! 速度経度成分平均値
real(DBKIND)      :: VelLatAve = 0.0d0   ! 速度緯度成分平均値
real(DBKIND)      :: VorAve    = 0.0d0   ! 渦度平均値
real(DBKIND)      :: DivAve    = 0.0d0   ! 発散平均値
real(DBKIND)      :: TempAve   = 273.0d0 ! 温度平均値
real(DBKIND)      :: QVapAve   = 0.0d0   ! 比湿平均値
real(DBKIND)      :: PsAve     = 1.0d5   ! 地表面圧力平均値
logical           :: VorDiv_Priority = .false. ! 渦度発散から風

速を生成

!for 'rigid body rotation'
real(DBKIND)      :: VelLonMax_rbr = 1.0d2    ! Maximum of 'VelLon'
!for 'convex of surface pressure' or 'convex of temperature'
real(DBKIND)      :: LonLat_Radius_Deg  = 20.0   ! 半径 (度数)
real(DBKIND)      :: LonLat_Radius_Rad  = 0.349  ! 半径 (ラジア
ン)
real(DBKIND)      :: Lat_Center_Deg = 45.0  ! 緯度の中心位置 (度
数)
real(DBKIND)      :: Lon_Center_Deg = 100.0 ! 経度の中心位置 (度
数)
real(DBKIND)      :: Lat_Center_Rad = 0.785 ! 緯度の中心位置 (ラ

ジアン)

real(DBKIND)      :: Lon_Center_Rad = 1.745 ! 経度の中心位置 (ラ

ジアン)

logical           :: Rad_Priority   = .false. ! ラジアン表記を優

先

!for 'convex of surface pressure'
real(DBKIND)      :: PsMax   = -200.0d2       ! Maximum of 'Ps'
!for 'convex of temperature'
real(DBKIND)      :: TempMax = 10.0d0         ! Maximum of 'Temp'
namelist /init_nml/ &
& condition           , & ! 初期値の種類
&
& VelLonAve           , & ! 速度経度成分平均値
& VelLatAve           , & ! 速度緯度成分平均値
& VorAve              , & ! 渦度平均値
& DivAve              , & ! 発散平均値
& TempAve             , & ! 温度平均値
& QVapAve             , & ! 比湿平均値
& PsAve               , & ! 地表面圧力平均値
&
& VorDiv_Priority     , & ! 渦度発散から風速を生成
&
& VelLonMax_rbr       , & ! 速度経度成分 (剛体回転流用)
&
& LonLat_Radius_Deg   , & ! 半径 (度数)
& LonLat_Radius_Rad   , & ! 半径 (ラジアン)
&
& Lat_Center_Deg      , & ! 緯度の中心位置 (度数)
& Lon_Center_Deg      , & ! 経度の中心位置 (度数)
& Lat_Center_Rad      , & ! 緯度の中心位置 (ラジアン)
& Lon_Center_Rad      , & ! 経度の中心位置 (ラジアン)
&
& Rad_Priority        , & ! ラジアン表記を優先
&
& PsMax               , & ! Maximum of 'Ps'
&
& TempMax                 ! Maximum of 'Temp'