fgmax メモ †fg は fixed grid monitoring のこと. v5.7.0 †v5.7.0より,ファイルによる定義がなくなり,setrun.py 上で設定用のモジュールを呼び出して使うようになった. from clawpack.geoclaw import fgmax_tools # Domain 1 fg = fgmax_tools.FGmaxGrid() fg.point_style = 2 # uniform rectangular x-y grid fg.x1 = -20790.0 fg.x2 = 28710.0 fg.y1 = -82690.0 fg.y2 = -19690.0 fg.dx = 90.0 # desired resolution of fgmax grid fg.min_level_check = 1 # which levels to monitor max on fg.tstart_max = 0.0 # just before wave arrives fg.tend_max = 1.e10 # when to stop monitoring max values fg.dt_check = 60.0 # how often to update max values fg.interp_method = 0 # 0 ==> pw const in cells, recommended rundata.fgmax_data.fgmax_grids.append(fg) # written to fgmax_grids.data # Domain 2 fg = fgmax_tools.FGmaxGrid() fg.point_style = 2 # uniform rectangular x-y grid fg.x1 = -11730.0 fg.x2 = 7770.0 fg.y1 = -49630.0 fg.y2 = -19930.0 fg.dx = 30.0 # desired resolution of fgmax grid fg.min_level_check = 1 # which levels to monitor max on fg.tstart_max = 0.0 # just before wave arrives fg.tend_max = 1.e10 # when to stop monitoring max values fg.dt_check = 60.0 # how often to update max values fg.interp_method = 0 # 0 ==> pw const in cells, recommended rundata.fgmax_data.fgmax_grids.append(fg) # written to fgmax_grids.data # num_fgmax_val rundata.fgmax_data.num_fgmax_val = 5
# Domain 4 topo_file = topotools.Topography(os.path.join('topofile.asc'), topo_type=3) fg = fgmax_tools.FGmaxGrid() fg.point_style = 2 # uniform rectangular x-y grid fg.dx = topo_file.delta[0] # desired resolution of fgmax grid fg.x1 = topo_file.x[0] fg.x2 = topo_file.x[-1] fg.y1 = topo_file.y[0] fg.y2 = topo_file.y[-1] fg.min_level_check = 1 # which levels to monitor max on fg.arrival_tol = 1.0e-1 fg.tstart_max = 0.0 # just before wave arrives fg.tend_max = 1.e10 # when to stop monitoring max values fg.dt_check = 1.0 # how often to update max values fg.interp_method = 0 # 0 ==> pw const in cells, recommended rundata.fgmax_data.fgmax_grids.append(fg) # written to fgmax_grids.data v5.6.1 †読み取りのカラムについては,GEOLIB の fgmax_finalize.f90 の format 文を参考に. do k=1,fg%npts do mv=1,FG_NUM_VAL if (abs(fg%valuemax(mv,k)) .lt. 1.d-90) then fg%valuemax(mv,k) = 0.d0 endif enddo write(FG_UNIT,111) fg%x(k),fg%y(k), fg%levelmax(k), & (fg%valuemax(mv,k), mv=1,FG_NUM_VAL), & (fg%tmax(mv,k), mv=1,FG_NUM_VAL), fg%arrival_time(k) 111 format(2e17.8,i4,21e17.8) enddo fort.FGX.aux1 には,1, 2 列目は x, y, 3列目以降に各 AMR level レベルでの水深 (bathymetry) が入っている??? do ma=1,FG_NUM_AUX cma = char(ichar('0') + ma) fname = 'fort.FG' // cfg // '.aux' // cma print *, 'Writing to file ', fname open(unit=FG_UNIT,file=trim(fname),status='unknown',form='formatted') do k=1,fg%npts write(FG_UNIT,112) fg%x(k),fg%y(k), & (fg%aux(level,ma,k), level=1,mxnest) 112 format(2e17.8,20e17.8) enddo close(FG_UNIT) enddo chile2010 の topo ファイルを例に,fgmax を全体に定義し,fort.FG1.valuemax の AMElevel と fort.FG1.aux1 の 水深をそれぞれを書き出してみた.
|