IGModel-SW 1.0
|
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