next up previous print clean
Next: Examples of operator-definition modules Up: Examples of parameter handling Previous: Examples of parameter handling

Parameter handling routine for 3-D DMO

 
subroutine param_dmo (dmo3d_param,gen_param,out_geom)

use dmo3d_types use seis3d_types use genkir3d_types

implicit none

integer, intrinsic :: mp_numthreads

type(dmo3d_param_type) :: dmo3d_param type(genkir3d_param_type), intent (inout) :: gen_param type(seis3d_geom_type), intent (inout) :: out_geom

logical reg_out integer getch,auxpar,esize,ione,izero,ierr integer n_threads_env real rzero,rone,maxreal

izero=0 ione=1 rzero=0. rone=1. maxreal=huge(maxreal)

! Getting specific Test parameters for param from par: logical reg_out=.true.

! Getting specific dmo3d parameters for param from par: character trace_interp_type:dmo3d_param%trace_interp_type='linear' from par: character chain_maps:dmo3d_param%chain_maps='none' from par: real max_slow:dmo3d_param%max_slow=maxreal from par: real slow_nmo:dmo3d_param%slow_nmo=0.

! Getting parameters for param from par: logical inv_map:gen_param%inv_map=gen_param%inv_map from par: logical inv_amp:gen_param%inv_amp=gen_param%inv_amp from par: logical adj:gen_param%adj=gen_param%adj from par: logical add:gen_param%add=gen_param%add from par: logical verb:gen_param%verb=gen_param%verb from par: logical debug1:gen_param%debug1=gen_param%debug1 from par: logical debug2:gen_param%debug2=gen_param%debug2 from par: logical pipe_inp:gen_param%pipe_inp=gen_param%pipe_inp from par: logical pipe_out:gen_param%pipe_out=gen_param%pipe_out from par: logical seq_inp_acc:gen_param%seq_inp_acc=gen_param%seq_inp_acc from par: logical seq_out_acc:gen_param%seq_out_acc=gen_param%seq_out_acc from par: logical out_in_lines:gen_param%out_in_lines=gen_param%out_in_lines

from par: character tag_inp:gen_param%tag_inp=trim(gen_param%tag_inp)

from par: character tag_out:gen_param%tag_out=trim(gen_param%tag_out)

from par: character inp_type:gen_param%inp_type=trim(gen_param%inp_type) from par: character out_type:gen_param%out_type=trim(gen_param%out_type)

from par: integer n_threads:gen_param%n_threads=mp_numthreads() from par: integer max_memory:gen_param%max_memory=gen_param%max_memory

! Getting parameters for res from par: integer n_t:gen_param%n_t=gen_param%n_t from par: real t_0:gen_param%t_0=gen_param%t_0 from par: real d_t:gen_param%d_t=gen_param%d_t

if(reg_out) then allocate(out_geom%reg,stat=ierr) if(ierr .ne. 0) call seperr('Troubles in allocating out_geom%reg')

from par: character tz_unit:out_geom%reg%tz_unit='s' from par: character geom_unit:out_geom%reg%geom_unit='m' from par: character label_tz:out_geom%reg%label_tz='Time('//trim(out_geom%reg%tz_unit)//')'

from par: integer n_tz:out_geom%reg%n_tz=gen_param%n_t from par: real tz_0:out_geom%reg%tz_0=gen_param%t_0 from par: real d_tz:out_geom%reg%d_tz=gen_param%d_t

from par: character label_cmpx:out_geom%reg%label_cmpx='Cmpx('//trim(out_geom%reg%geom_unit)//')' from par: character label_cmpy:out_geom%reg%label_cmpy='Cmpy('//trim(out_geom%reg%geom_unit)//')' from par: character label_aoff:out_geom%reg%label_aoff='Offset('//trim(out_geom%reg%geom_unit)//')' from par: character label_azim:out_geom%reg%label_azim='Azimuth(deg)' from par: integer n_cmpx:out_geom%reg%n_cmpx from par: integer n_cmpy:out_geom%reg%n_cmpy from par: integer n_aoff:out_geom%reg%n_aoff=ione from par: integer n_azim:out_geom%reg%n_azim=ione from par: real cmpx_0:out_geom%reg%cmpx_0 from par: real cmpy_0:out_geom%reg%cmpy_0 from par: real aoff_0:out_geom%reg%aoff_0=rzero from par: real azim_0:out_geom%reg%azim_0=rzero from par: real d_cmpx:out_geom%reg%d_cmpx from par: real d_cmpy:out_geom%reg%d_cmpy from par: real d_aoff:out_geom%reg%d_aoff=maxreal from par: real d_azim:out_geom%reg%d_azim=360

end if

! checking parameters n_threads_env=mp_numthreads() if(n_threads_env /= gen_param%n_threads) then write(0,*)'Reset number of threads' write(0,*)'because default threads',n_threads_env, & 'different from requested = ',gen_param%n_threads gen_param%n_threads=n_threads_env end if

return end


next up previous print clean
Next: Examples of operator-definition modules Up: Examples of parameter handling Previous: Examples of parameter handling
Stanford Exploration Project
7/5/1998