Skip to content

Commit

Permalink
new source type mt_eikonal
Browse files Browse the repository at this point in the history
  • Loading branch information
Sebastian Heimann committed Aug 20, 2011
1 parent a1854a6 commit 27f9b00
Show file tree
Hide file tree
Showing 3 changed files with 914 additions and 3 deletions.
3 changes: 2 additions & 1 deletion parameterized_source.f90
Expand Up @@ -45,7 +45,8 @@ module parameterized_source
integer, public, parameter :: psm_circular = 2
integer, public, parameter :: psm_point_lp = 3
integer, public, parameter :: psm_eikonal = 4
integer, public, parameter :: psm_moment_tensor = 5
integer, public, parameter :: psm_mt_eikonal = 5
integer, public, parameter :: psm_moment_tensor = 6

type, public :: t_eikonal_grid
real, dimension(2) :: first
Expand Down
41 changes: 39 additions & 2 deletions source_all.f90
Expand Up @@ -36,6 +36,7 @@ module source_all
use source_bilat
use source_point_lp
use source_eikonal
use source_mt_eikonal
use source_moment_tensor

implicit none
Expand All @@ -56,9 +57,9 @@ module source_all
public psm_get_param_limits
public psm_get_param_defaults

integer, public , parameter :: nsourcetypes = 5
integer, public , parameter :: nsourcetypes = 6
integer, public , parameter, dimension(nsourcetypes) :: sourcetypes = &
(/ psm_bilat, psm_circular, psm_point_lp, psm_eikonal, psm_moment_tensor /)
(/ psm_bilat, psm_circular, psm_point_lp, psm_eikonal, psm_mt_eikonal, psm_moment_tensor /)

contains

Expand All @@ -67,6 +68,7 @@ subroutine psm_cleanup()
call psm_cleanup_circular()
call psm_cleanup_point_lp()
call psm_cleanup_eikonal()
call psm_cleanup_mt_eikonal()
call psm_cleanup_moment_tensor()
end subroutine

Expand All @@ -79,6 +81,7 @@ subroutine psm_get_source_name( sourcetype, name )
if (sourcetype .eq. psm_circular) name = "circular"
if (sourcetype .eq. psm_point_lp) name = "point_lp"
if (sourcetype .eq. psm_eikonal) name = "eikonal"
if (sourcetype .eq. psm_mt_eikonal) name = "mt_eikonal"
if (sourcetype .eq. psm_moment_tensor) name = "moment_tensor"
end subroutine

Expand All @@ -90,6 +93,7 @@ subroutine psm_get_source_id( name, sourcetype )
if (name .eq. "circular") sourcetype = psm_circular
if (name .eq. "point_lp") sourcetype = psm_point_lp
if (name .eq. "eikonal") sourcetype = psm_eikonal
if (name .eq. "mt_eikonal") sourcetype = psm_mt_eikonal
if (name .eq. "moment_tensor") sourcetype = psm_moment_tensor
end subroutine

Expand All @@ -111,6 +115,9 @@ integer function psm_get_n_source_params(sourcetype)
case (psm_eikonal)
psm_get_n_source_params = n_source_params_eikonal

case (psm_mt_eikonal)
psm_get_n_source_params = n_source_params_mt_eikonal

case (psm_moment_tensor)
psm_get_n_source_params = n_source_params_moment_tensor

Expand All @@ -137,6 +144,9 @@ subroutine psm_get_param_name( sourcetype, iparam, name )
case (psm_eikonal)
call psm_get_param_name_eikonal( iparam, name )

case (psm_mt_eikonal)
call psm_get_param_name_mt_eikonal( iparam, name )

case (psm_moment_tensor)
call psm_get_param_name_moment_tensor( iparam, name )

Expand All @@ -163,6 +173,9 @@ subroutine psm_get_param_unit( sourcetype, iparam, unit )
case (psm_eikonal)
call psm_get_param_unit_eikonal( iparam, unit )

case (psm_mt_eikonal)
call psm_get_param_unit_mt_eikonal( iparam, unit )

case (psm_moment_tensor)
call psm_get_param_unit_moment_tensor( iparam, unit )

Expand Down Expand Up @@ -190,6 +203,9 @@ subroutine psm_get_param_id( sourcetype, name, iparam )
case (psm_eikonal)
call psm_get_param_id_eikonal( name, iparam )

case (psm_mt_eikonal)
call psm_get_param_id_mt_eikonal( name, iparam )

case (psm_moment_tensor)
call psm_get_param_id_moment_tensor( name, iparam )

Expand Down Expand Up @@ -223,6 +239,8 @@ subroutine psm_set( psm, sourcetype, params, normalized_, only_moment_changed_)
call psm_set_point_lp( psm, params, normalized, only_moment_changed )
case (psm_eikonal)
call psm_set_eikonal( psm, params, normalized, only_moment_changed )
case (psm_mt_eikonal)
call psm_set_mt_eikonal( psm, params, normalized, only_moment_changed )
case (psm_moment_tensor)
call psm_set_moment_tensor( psm, params, normalized, only_moment_changed )

Expand Down Expand Up @@ -298,6 +316,15 @@ subroutine psm_get_param_limits( sourcetype, limits_min, limits_max, hard_ )
limits_max(:) = psm_params_max_soft_eikonal(:)
end if

case (psm_mt_eikonal)
if (hard) then
limits_min(:) = psm_params_min_hard_mt_eikonal(:)
limits_max(:) = psm_params_max_hard_mt_eikonal(:)
else
limits_min(:) = psm_params_min_soft_mt_eikonal(:)
limits_max(:) = psm_params_max_soft_mt_eikonal(:)
end if

case (psm_moment_tensor)
if (hard) then
limits_min(:) = psm_params_min_hard_moment_tensor(:)
Expand Down Expand Up @@ -335,6 +362,9 @@ subroutine psm_get_param_defaults( sourcetype, defaults )
case (psm_eikonal)
defaults(:) = psm_params_default_eikonal(:)

case (psm_mt_eikonal)
defaults(:) = psm_params_default_mt_eikonal(:)

case (psm_moment_tensor)
defaults(:) = psm_params_default_moment_tensor(:)

Expand Down Expand Up @@ -385,6 +415,8 @@ subroutine psm_set_subparams( psm, subparams, normalized_, only_moment_changed_
call psm_set_point_lp( psm, paramscopy, normalized, only_moment_changed )
case (psm_eikonal)
call psm_set_eikonal( psm, paramscopy, normalized, only_moment_changed )
case (psm_mt_eikonal)
call psm_set_mt_eikonal( psm, paramscopy, normalized, only_moment_changed )
case (psm_moment_tensor)
call psm_set_moment_tensor( psm, paramscopy, normalized, only_moment_changed )

Expand Down Expand Up @@ -421,6 +453,8 @@ subroutine psm_to_tdsm( psm, tdsm, shortest_doi, ok )
call psm_to_tdsm_point_lp( psm, tdsm, shortest_doi, ok )
case (psm_eikonal)
call psm_to_tdsm_eikonal( psm, tdsm, shortest_doi, ok )
case (psm_mt_eikonal)
call psm_to_tdsm_mt_eikonal( psm, tdsm, shortest_doi, ok )
case (psm_moment_tensor)
call psm_to_tdsm_moment_tensor( psm, tdsm, shortest_doi, ok )

Expand Down Expand Up @@ -449,6 +483,8 @@ subroutine psm_write_info_file( psm, fn )
call psm_write_info_file_point_lp( psm, fn )
case (psm_eikonal)
call psm_write_info_file_eikonal( psm, fn )
case (psm_mt_eikonal)
call psm_write_info_file_mt_eikonal( psm, fn )
case (psm_moment_tensor)
call psm_write_info_file_moment_tensor( psm, fn )

Expand All @@ -457,3 +493,4 @@ subroutine psm_write_info_file( psm, fn )
end subroutine

end module

0 comments on commit 27f9b00

Please sign in to comment.