SPAC_ Derived Type

type, public :: SPAC_


Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: csv_wave_file
character(len=:), public, allocatable :: json_metadata_file
character(len=:), public, allocatable :: wave_data_format
real(kind=real64), public :: sampling_Hz
real(kind=real64), public :: radius
integer(kind=int32), public :: num_logger

= fint(f

integer(kind=int32), public :: fft_size

= fint(f

real(kind=real64), public :: Maximum_phase_velocity
integer(kind=int32), public :: Maximum_itr

= fint(f

integer(kind=int32), public :: num_smoothing

= fint(f

real(kind=real64), public :: cutoff_sd
integer(kind=int32), public :: taper_percent

= fint(f

real(kind=real32), public :: bandpass_low
real(kind=real32), public :: bandpass_high
real(kind=real64), public, allocatable :: observation(:,:)
logical, public :: initialized = .false.
logical, public :: inversion_is_done = .false.
character(len=:), public, allocatable :: d_unit
character(len=:), public, allocatable :: Rayleigh_Dispersion
character(len=:), public, allocatable :: best_1
character(len=:), public, allocatable :: best_2
character(len=:), public, allocatable :: best_3
character(len=:), public, allocatable :: best_4
character(len=:), public, allocatable :: best_5
character(len=:), public, allocatable :: best_1_HoverV
character(len=:), public, allocatable :: best_2_HoverV
character(len=:), public, allocatable :: best_3_HoverV
character(len=:), public, allocatable :: best_4_HoverV
character(len=:), public, allocatable :: best_5_HoverV
character(len=:), public, allocatable :: best_1_layer_csv
character(len=:), public, allocatable :: best_2_layer_csv
character(len=:), public, allocatable :: best_3_layer_csv
character(len=:), public, allocatable :: best_4_layer_csv
character(len=:), public, allocatable :: best_5_layer_csv
real(kind=real64), public, allocatable :: best_1_Vs(:)
real(kind=real64), public, allocatable :: best_1_Vp(:)
real(kind=real64), public, allocatable :: best_1_Density(:)
real(kind=real64), public, allocatable :: best_1_Thickness(:)
real(kind=real64), public, allocatable :: best_2_Vs(:)
real(kind=real64), public, allocatable :: best_2_Vp(:)
real(kind=real64), public, allocatable :: best_2_Density(:)
real(kind=real64), public, allocatable :: best_2_Thickness(:)
real(kind=real64), public, allocatable :: best_3_Vs(:)
real(kind=real64), public, allocatable :: best_3_Vp(:)
real(kind=real64), public, allocatable :: best_3_Density(:)
real(kind=real64), public, allocatable :: best_3_Thickness(:)
real(kind=real64), public, allocatable :: best_4_Vs(:)
real(kind=real64), public, allocatable :: best_4_Vp(:)
real(kind=real64), public, allocatable :: best_4_Density(:)
real(kind=real64), public, allocatable :: best_4_Thickness(:)
real(kind=real64), public, allocatable :: best_5_Vs(:)
real(kind=real64), public, allocatable :: best_5_Vp(:)
real(kind=real64), public, allocatable :: best_5_Density(:)
real(kind=real64), public, allocatable :: best_5_Thickness(:)

Type-Bound Procedures

procedure, public :: init => init_SPAC

  • public subroutine init_SPAC(this, csv_wave_file, json_metadata_file)

    Arguments

    Type IntentOptional Attributes Name
    class(SPAC_), intent(inout) :: this
    character(len=*), intent(in) :: csv_wave_file
    character(len=*), intent(in) :: json_metadata_file

procedure, public :: run => run_SPAC

  • public subroutine run_SPAC(this, only_FFT, only_summary)

    Arguments

    Type IntentOptional Attributes Name
    class(SPAC_), intent(inout) :: this
    logical, intent(in), optional :: only_FFT
    logical, intent(in), optional :: only_summary

procedure, public :: pdf => pdf_SPAC

  • public subroutine pdf_SPAC(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(SPAC_), intent(in) :: this
    character(len=*), intent(in) :: name

procedure, public :: inversion => inversion_SPAC

  • public subroutine inversion_SPAC(this, db, db_shape, frequency_scope, name)

    $OMP parallel do default(shared) private(buf,line,f,chk,trial_value,id,my_filepath,proc_id) $OMP end parallel do

    Arguments

    Type IntentOptional Attributes Name
    class(SPAC_), intent(inout) :: this
    character(len=*), intent(in) :: db
    integer(kind=int32), intent(in) :: db_shape(1:2)
    real(kind=real64), intent(in) :: frequency_scope(1:2)
    character(len=*), intent(in) :: name