response_matrix Module


Uses


Variables

Type Visibility Attributes Name Initial
logical, public :: response_matrix_initialized = .false.
integer, private, parameter :: mat_unit = 70
character(len=100), private :: message_dgdphi
character(len=100), private :: message_QN
character(len=100), private :: message_lu
real, private, dimension(2) :: time_dgdphi
real, private, dimension(2) :: time_QN
real, private, dimension(2) :: time_lu

Subroutines

public subroutine init_response_matrix()

Arguments

None

private subroutine write_response_matrix_message()

Arguments

None

private subroutine setup_response_matrix_timings()

Arguments

None

private subroutine setup_response_matrix_file_io()

Arguments

None

private subroutine setup_shared_memory_window()

Arguments

None

private subroutine construct_response_matrix()

Arguments

None

private subroutine calculate_vspace_integrated_response(iky)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky

private subroutine setup_response_matrix_zloc_idx(iky, ie, nresponse)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky
integer, intent(in) :: ie
integer, intent(in) :: nresponse

set up offset_apar and offset_bpar consistently so that the array slices below are consistent with the size of the response matrix

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky

private subroutine lu_decompose_response_matrix(iky)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky

public subroutine read_response_matrix()

Arguments

None

private subroutine get_dpdf_dphi_matrix_column(iky, ie, idx, nz_ext, nresponse, phi_ext, apar_ext, bpar_ext, pdf_ext)

TOGO-GA: check division rather than multiplication -- kept division for now to be consistent with parallel_streaming phase shift

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky
integer, intent(in) :: ie
integer, intent(in) :: idx
integer, intent(in) :: nz_ext
integer, intent(in) :: nresponse
complex, intent(out), dimension(:) :: phi_ext
complex, intent(out), dimension(:) :: apar_ext
complex, intent(out), dimension(:) :: bpar_ext
complex, intent(out), dimension(:, vmu_lo%llim_proc:) :: pdf_ext

private subroutine get_dpdf_dapar_matrix_column(iky, ie, idx, nz_ext, nresponse, phi_ext, apar_ext, bpar_ext, pdf_ext)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky
integer, intent(in) :: ie
integer, intent(in) :: idx
integer, intent(in) :: nz_ext
integer, intent(in) :: nresponse
complex, intent(out), dimension(:) :: phi_ext
complex, intent(out), dimension(:) :: apar_ext
complex, intent(out), dimension(:) :: bpar_ext
complex, intent(out), dimension(:, vmu_lo%llim_proc:) :: pdf_ext

private subroutine get_dpdf_dbpar_matrix_column(iky, ie, idx, nz_ext, nresponse, phi_ext, apar_ext, bpar_ext, pdf_ext)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky
integer, intent(in) :: ie
integer, intent(in) :: idx
integer, intent(in) :: nz_ext
integer, intent(in) :: nresponse
complex, intent(out), dimension(:) :: phi_ext
complex, intent(out), dimension(:) :: apar_ext
complex, intent(out), dimension(:) :: bpar_ext
complex, intent(out), dimension(:, vmu_lo%llim_proc:) :: pdf_ext

private subroutine integrate_over_velocity(g, phi, apar, bpar, iky, ie)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, vmu_lo%llim_proc:) :: g
complex, intent(out), dimension(:) :: phi
complex, intent(out), dimension(:) :: apar
complex, intent(out), dimension(:) :: bpar
integer, intent(in) :: iky
integer, intent(in) :: ie

private subroutine integrate_over_velocity_phi(g, phi, iky, ie)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, vmu_lo%llim_proc:) :: g
complex, intent(out), dimension(:) :: phi
integer, intent(in) :: iky
integer, intent(in) :: ie

private subroutine integrate_over_velocity_bpar(g, bpar, iky, ie)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, vmu_lo%llim_proc:) :: g
complex, intent(out), dimension(:) :: bpar
integer, intent(in) :: iky
integer, intent(in) :: ie

private subroutine integrate_over_velocity_apar(g, apar, iky, ie)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, vmu_lo%llim_proc:) :: g
complex, intent(out), dimension(:) :: apar
integer, intent(in) :: iky
integer, intent(in) :: ie

private subroutine get_fields_for_response_matrix(phi, apar, bpar, iky, ie, dist)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:) :: phi
complex, intent(inout), dimension(:) :: apar
complex, intent(inout), dimension(:) :: bpar
integer, intent(in) :: iky
integer, intent(in) :: ie
character(len=*), intent(in) :: dist

private subroutine get_phi_for_response_matrix(phi, iky, ie, dist)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:) :: phi
integer, intent(in) :: iky
integer, intent(in) :: ie
character(len=*), intent(in) :: dist

private subroutine get_phi_and_bpar_for_response_matrix(phi, bpar, iky, ie, dist)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:) :: phi
complex, intent(inout), dimension(:) :: bpar
integer, intent(in) :: iky
integer, intent(in) :: ie
character(len=*), intent(in) :: dist

private subroutine get_apar_for_response_matrix(apar, iky, ie, dist)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:) :: apar
integer, intent(in) :: iky
integer, intent(in) :: ie
character(len=*), intent(in) :: dist

public subroutine finish_response_matrix()

Arguments

None

private subroutine parallel_LU_decomposition_global(iky)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iky