IGModel-SW 1.0

src/param_manager.f90

Go to the documentation of this file.
00001 
00012 module param_manager
00013   
00014   ! モジュール引用 ; Use statements 
00015   !
00016 
00017   ! * gtool **
00018   ! *
00019 
00020   ! 種類型パラメータ
00021   ! Kind type parameter
00022   !
00023   use dc_types, only :DP, &    ! 倍精度実数型. Double precision. 
00024     &                 TOKEN, & ! 短い文字列型. 
00025     &                 STRING   ! 文字列型. 
00026 
00027   ! メッセージ出力
00028   ! Message dump
00029   !
00030   use dc_message, only : MessageNotify 
00031 
00032   ! * IGMBaseLib **
00033   ! *
00034 
00035   ! 地球における物理定数
00036   ! Physical constants on the earth
00037   !
00038   use Earth_Constants, only: &
00039     & earth_radius, &
00040     & earth_g,       &
00041     & earth_Omega
00042 
00043   ! 宣言文 ; Declaration statements
00044   !
00045   implicit none
00046   private
00047 
00048   ! 正二十面体格子の生成に関するパラメータ
00049   ! Parameters associated with the generation of icosahedral grid. 
00050   !
00051 
00054   integer, public :: div_level  = 5
00055 
00058   real(DP), public :: ic_radius = earth_radius
00059 
00062   character(STRING), public :: gridData_ncFile = 'SPR-GC-grid_glevel5.nc' 
00063  
00064 
00065   ! 数値シュミレーションに関するパラメータ.  
00066   ! Parameters associated with the numerical simulation. 
00067   !
00068 
00071   real(DP), parameter, public :: Omega = earth_Omega
00072 
00075   real(DP), parameter, public :: Grav = earth_g
00076 
00079   real(DP), public :: output_tick
00080 
00083   logical, public :: data_output_flag
00084 
00087   character(TOKEN), public :: output_data_ncFile
00088 
00091   real(DP), public :: alpha 
00092 
00095   real(DP), public :: DelTime
00096   
00099   real(DP), public :: integration_time
00100 
00103   logical, public :: motionEq_flag
00104 
00105 
00106   ! 公開手続き
00107   ! Public procedure
00108   !
00109   public :: read_namelistFile
00110 
00111 contains
00112 
00113 !
00124 subroutine read_namelistFile(nml_filename)
00125 
00126   ! 宣言文 ; Declaration statements
00127   !
00128   character(*), intent(in) :: nml_filename
00129   integer :: deviceID = 10
00130 
00131   ! 作業変数
00132   ! Work variable
00133   !
00134 
00135   ! 正二十面体格子に関係するネームリスト. 
00136   ! Namelist for icosahedral grid.
00137   namelist /IcGrid_Config/ &
00138     & div_level, &
00139     & gridData_ncFile
00140   
00141   ! 数値シミュレーションに関係するネームリスト. 
00142   ! Namelist for the numerical simulation. 
00143   namelist /NumSim_Param/ &
00144     & alpha, &
00145     & output_tick, output_data_ncFile, data_output_flag, &
00146     & DelTime, integration_time, motionEq_flag
00147 
00148   ! 実行文 ; Executable statements
00149   !
00150 
00151   ! ネームリストファイルから各種パラメータを読み取り, 変数にセットする. 
00152   ! Read each of parameter from namelist file and assign values tp variables. 
00153   !
00154 
00155   call MessageNotify( "M", &
00156     & "IGModel-SW", "Reading namelist file `%c` ..", c1=trim(nml_filename) )
00157  
00158   open(deviceID, file=nml_filename, form='FORMATTED')
00159   read(deviceID, nml=IcGrid_Config)
00160   read(deviceID, nml=NumSim_Param)
00161 
00162 end subroutine read_namelistFile
00163 
00164 end module param_manager
00165  
 All Classes Namespaces Files Functions Variables