ectrans_benchmark Program

Uses

    • mpl_module
    • parkind1
    • yomgstats
    • oml_mod
    • yomhook
  • program~~ectrans_benchmark~~UsesGraph program~ectrans_benchmark ectrans_benchmark mpl_module mpl_module program~ectrans_benchmark->mpl_module oml_mod oml_mod program~ectrans_benchmark->oml_mod parkind1 parkind1 program~ectrans_benchmark->parkind1 yomgstats yomgstats program~ectrans_benchmark->yomgstats yomhook yomhook program~ectrans_benchmark->yomhook

Calls

program~~ectrans_benchmark~~CallsGraph program~ectrans_benchmark ectrans_benchmark abor1 abor1 program~ectrans_benchmark->abor1 dir_trans dir_trans program~ectrans_benchmark->dir_trans dr_hook_init dr_hook_init program~ectrans_benchmark->dr_hook_init ec_meminfo ec_meminfo program~ectrans_benchmark->ec_meminfo gstats gstats program~ectrans_benchmark->gstats gstats_print gstats_print program~ectrans_benchmark->gstats_print gstats_psut gstats_psut program~ectrans_benchmark->gstats_psut gstats_setup gstats_setup program~ectrans_benchmark->gstats_setup inv_trans inv_trans program~ectrans_benchmark->inv_trans mpl_allreduce mpl_allreduce program~ectrans_benchmark->mpl_allreduce mpl_broadcast mpl_broadcast program~ectrans_benchmark->mpl_broadcast mpl_buffer_method mpl_buffer_method program~ectrans_benchmark->mpl_buffer_method mpl_cart_coords mpl_cart_coords program~ectrans_benchmark->mpl_cart_coords mpl_end mpl_end program~ectrans_benchmark->mpl_end mpl_groups_create mpl_groups_create program~ectrans_benchmark->mpl_groups_create mpl_init mpl_init program~ectrans_benchmark->mpl_init mpl_myrank mpl_myrank program~ectrans_benchmark->mpl_myrank mpl_nproc mpl_nproc program~ectrans_benchmark->mpl_nproc mpl_recv mpl_recv program~ectrans_benchmark->mpl_recv mpl_send mpl_send program~ectrans_benchmark->mpl_send oml_max_threads oml_max_threads program~ectrans_benchmark->oml_max_threads proc~cubic_octahedral_gaussian_grid cubic_octahedral_gaussian_grid program~ectrans_benchmark->proc~cubic_octahedral_gaussian_grid proc~detect_mpirun detect_mpirun program~ectrans_benchmark->proc~detect_mpirun proc~dump_gridpoint_field dump_gridpoint_field program~ectrans_benchmark->proc~dump_gridpoint_field proc~get_command_line_arguments get_command_line_arguments program~ectrans_benchmark->proc~get_command_line_arguments proc~get_median get_median program~ectrans_benchmark->proc~get_median proc~gstats_labels gstats_labels program~ectrans_benchmark->proc~gstats_labels proc~initialize_spectral_arrays initialize_spectral_arrays program~ectrans_benchmark->proc~initialize_spectral_arrays proc~parse_grid parse_grid program~ectrans_benchmark->proc~parse_grid proc~set_ectrans_gpu_nflev set_ectrans_gpu_nflev program~ectrans_benchmark->proc~set_ectrans_gpu_nflev setup_trans setup_trans program~ectrans_benchmark->setup_trans setup_trans0 setup_trans0 program~ectrans_benchmark->setup_trans0 specnorm specnorm program~ectrans_benchmark->specnorm trans_inq trans_inq program~ectrans_benchmark->trans_inq ec_putenv ec_putenv proc~detect_mpirun->ec_putenv proc~get_command_line_arguments->mpl_end proc~get_command_line_arguments->mpl_init ec_mpirank ec_mpirank proc~get_command_line_arguments->ec_mpirank proc~get_int_value get_int_value proc~get_command_line_arguments->proc~get_int_value proc~get_str_value get_str_value proc~get_command_line_arguments->proc~get_str_value proc~parsing_failed parsing_failed proc~get_command_line_arguments->proc~parsing_failed proc~print_help print_help proc~get_command_line_arguments->proc~print_help gstats_label gstats_label proc~gstats_labels->gstats_label proc~initialize_2d_spectral_field initialize_2d_spectral_field proc~initialize_spectral_arrays->proc~initialize_2d_spectral_field proc~parse_grid->proc~parsing_failed proc~set_ectrans_gpu_nflev->ec_putenv proc~get_int_value->proc~get_str_value proc~get_int_value->proc~parsing_failed proc~str2int str2int proc~get_int_value->proc~str2int proc~get_str_value->proc~parsing_failed proc~initialize_2d_spectral_field->trans_inq proc~parsing_failed->mpl_end proc~parsing_failed->mpl_init proc~parsing_failed->ec_mpirank proc~parsing_failed->proc~print_help

Variables

Type Attributes Name Initial
integer(kind=jpim), parameter :: min_octa_points = 20
integer(kind=jpim) :: istack
integer(kind=jpim) :: getstackusage
real(kind=jprd), dimension(1) :: zmaxerr(5)
real(kind=jprd), dimension(1) :: zerr(5)
real(kind=jprd) :: zmaxerrg
integer(kind=jpim), parameter :: nerr = 0
integer(kind=jpim), parameter :: nout = 6
integer(kind=jpim), parameter :: noutdump = 7
integer(kind=jpim) :: nsmax = 79
integer(kind=jpim) :: iters = 10
integer(kind=jpim) :: nfld = 1
integer(kind=jpim) :: nlev = 1
integer(kind=jpim) :: nflevg
integer(kind=jpim) :: ndgl
integer(kind=jpim) :: nspec2
integer(kind=jpim) :: ngptot
integer(kind=jpim) :: ngptotg
integer(kind=jpim) :: ifld
integer(kind=jpim) :: jroc
integer(kind=jpim) :: jb
integer(kind=jpim) :: nspec2g
integer(kind=jpim) :: i
integer(kind=jpim) :: ja
integer(kind=jpim) :: ib
integer(kind=jpim) :: jprtrv
integer(kind=jpim), allocatable :: nloen(:)
integer(kind=jpim), allocatable :: nprcids(:)
integer(kind=jpim) :: myproc
integer(kind=jpim) :: jj
integer :: jstep
real(kind=jprd) :: ztinit
real(kind=jprd) :: ztloop
real(kind=jprd) :: timef
real(kind=jprd) :: ztstepmax
real(kind=jprd) :: ztstepmin
real(kind=jprd) :: ztstepavg
real(kind=jprd) :: ztstepmed
real(kind=jprd) :: ztstepmax1
real(kind=jprd) :: ztstepmin1
real(kind=jprd) :: ztstepavg1
real(kind=jprd) :: ztstepmed1
real(kind=jprd) :: ztstepmax2
real(kind=jprd) :: ztstepmin2
real(kind=jprd) :: ztstepavg2
real(kind=jprd) :: ztstepmed2
real(kind=jprd), allocatable :: ztstep(:)
real(kind=jprd), allocatable :: ztstep1(:)
real(kind=jprd), allocatable :: ztstep2(:)
real(kind=jprb), allocatable :: znormsp(:)
real(kind=jprb), allocatable :: znormsp1(:)
real(kind=jprb), allocatable :: znormdiv(:)
real(kind=jprb), allocatable :: znormdiv1(:)
real(kind=jprb), allocatable :: znormvor(:)
real(kind=jprb), allocatable :: znormvor1(:)
real(kind=jprb), allocatable :: znormt(:)
real(kind=jprb), allocatable :: znormt1(:)
real(kind=jprd) :: zaveave(0:jpmaxstat)
real(kind=jprb), allocatable, target :: zgmv(:,:,:,:)
real(kind=jprb), allocatable, target :: zgmvs(:,:,:)
real(kind=jprb), pointer :: zgp3a(:,:,:,:)
real(kind=jprb), pointer :: zgpuv(:,:,:,:)
real(kind=jprb), pointer :: zgp2(:,:,:)
real(kind=jprb), allocatable, target :: sp3d(:,:,:)
real(kind=jprb), pointer :: zspvor(:,:) => null()
real(kind=jprb), pointer :: zspdiv(:,:) => null()
real(kind=jprb), pointer :: zspsc3a(:,:,:) => null()
real(kind=jprb), allocatable :: zspsc2(:,:)
logical :: lstack = .false.
logical :: luserpnm = .false.
logical :: lkeeprpnm = .false.
logical :: luseflt = .false.
logical :: ltrace_stats = .false.
logical :: lstats_omp = .false.
logical :: lstats_comms = .false.
logical :: lstats_mpl = .false.
logical :: lstats = .true.
logical :: lbarrier_stats = .false.
logical :: lbarrier_stats2 = .false.
logical :: ldetailed_stats = .false.
logical :: lstats_alloc = .false.
logical :: lsyncstats = .false.
logical :: lstatscpu = .false.
logical :: lstats_mem = .false.
logical :: lxml_stats = .false.
logical :: lvordiv = .false.
logical :: lscders = .false.
logical :: luvders = .false.
logical :: lprint_norms = .false.
logical :: lmeminfo = .false.
integer(kind=jpim) :: nstats_mem = 0
integer(kind=jpim) :: ntrace_stats = 0
integer(kind=jpim) :: nprnt_stats = 1
integer(kind=jpim) :: ncheck = 0
logical :: lmpoff = .false.
integer :: verbosity = 0
real(kind=jprd) :: zra = 6371229._jprd
integer(kind=jpim) :: nmax_resol = 37
integer(kind=jpim) :: npromatr = 0
integer(kind=jpim) :: nproc
integer(kind=jpim) :: nthread
integer(kind=jpim) :: nprgpns
integer(kind=jpim) :: nprgpew
integer(kind=jpim) :: nprtrv = 0
integer(kind=jpim) :: nprtrw = 0
integer(kind=jpim) :: mysetv
integer(kind=jpim) :: mysetw
integer(kind=jpim) :: mp_type = 2
integer(kind=jpim) :: mbx_size = 150000000
integer(kind=jpim), allocatable :: numll(:)
integer(kind=jpim), allocatable :: ivset(:)
integer(kind=jpim) :: ivsetsc(1)
integer(kind=jpim) :: nflevl
integer(kind=jpim) :: isqr
logical :: lsync_trans = .true.
logical :: leq_regions = .true.
integer(kind=jpim) :: nproma = 0
integer(kind=jpim) :: ngpblks
integer(kind=jpim) :: iprtrv
integer(kind=jpim) :: iprtrw
integer(kind=jpim) :: iprused
integer(kind=jpim) :: ilevpp
integer(kind=jpim) :: irest
integer(kind=jpim) :: ilev
integer(kind=jpim) :: jlev
integer(kind=jpim) :: ndimgmv = 0
integer(kind=jpim) :: ndimgmvs = 0
integer(kind=jpim) :: jbegin_uv = 0
integer(kind=jpim) :: jend_uv = 0
integer(kind=jpim) :: jbegin_sc = 0
integer(kind=jpim) :: jend_sc = 0
integer(kind=jpim) :: jbegin_scder_NS = 0
integer(kind=jpim) :: jend_scder_NS = 0
integer(kind=jpim) :: jbegin_scder_EW = 0
integer(kind=jpim) :: jend_scder_EW = 0
integer(kind=jpim) :: jbegin_uder_EW = 0
integer(kind=jpim) :: jend_uder_EW = 0
integer(kind=jpim) :: jbegin_vder_EW = 0
integer(kind=jpim) :: jend_vder_EW = 0
logical :: ldump_values = .false.
logical :: luse_mpi = .true.
character(len=16) :: cgrid = ''
integer(kind=jpim) :: ierr

Functions

function get_int_value(cname, iarg) result(value)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: cname
integer, intent(inout) :: iarg

Return Value integer

function get_str_value(cname, iarg) result(value)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: cname
integer, intent(inout) :: iarg

Return Value character(len=128)

function cubic_octahedral_gaussian_grid(nsmax) result(cgrid)

Arguments

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

Return Value character(len=16)

function get_median(vec) result(median)

Arguments

Type IntentOptional Attributes Name
real(kind=jprd), intent(in) :: vec(:)

Return Value real(kind=jprd)

function detect_mpirun() result(lmpi_required)

Arguments

None

Return Value logical


Subroutines

subroutine parse_grid(cgrid, ndgl, nloen)

Arguments

Type IntentOptional Attributes Name
character(len=*) :: cgrid
integer, intent(inout) :: ndgl
integer, intent(inout), allocatable :: nloen(:)

subroutine parsing_failed(message)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: message

subroutine get_command_line_arguments(nsmax, cgrid, iters, nfld, nlev, lvordiv, lscders, luvders, luseflt, nproma, verbosity, ldump_values, lprint_norms, lmeminfo, nprtrv, nprtrw, ncheck)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: nsmax
character(len=16), intent(inout) :: cgrid
integer, intent(inout) :: iters
integer, intent(inout) :: nfld
integer, intent(inout) :: nlev
logical, intent(inout) :: lvordiv
logical, intent(inout) :: lscders
logical, intent(inout) :: luvders
logical, intent(inout) :: luseflt
integer, intent(inout) :: nproma
integer, intent(inout) :: verbosity
logical, intent(inout) :: ldump_values
logical, intent(inout) :: lprint_norms
logical, intent(inout) :: lmeminfo
integer, intent(inout) :: nprtrv
integer, intent(inout) :: nprtrw
integer, intent(inout) :: ncheck

subroutine str2int(str, int, stat)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str
integer, intent(out) :: int
integer, intent(out) :: stat

subroutine print_help(unit)

Arguments

Type IntentOptional Attributes Name
integer, optional :: unit

subroutine initialize_spectral_arrays(nsmax, zsp, sp3d)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nsmax
real(kind=jprb), intent(inout) :: zsp(:,:)
real(kind=jprb), intent(inout) :: sp3d(:,:,:)

subroutine initialize_2d_spectral_field(nsmax, field)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nsmax
real(kind=jprb), intent(inout) :: field(:)

subroutine dump_gridpoint_field(jstep, myproc, nproma, ngpblks, fld, fldchar, noutdump)

Arguments

Type IntentOptional Attributes Name
integer(kind=jpim), intent(in) :: jstep
integer(kind=jpim), intent(in) :: myproc
integer(kind=jpim), intent(in) :: nproma
integer(kind=jpim), intent(in) :: ngpblks
real(kind=jprb), intent(in) :: fld(nproma,ngpblks)
character(len=1), intent(in) :: fldchar
integer(kind=jpim), intent(in) :: noutdump

subroutine gstats_labels()

Arguments

None

subroutine set_ectrans_gpu_nflev(kflev)

Arguments

Type IntentOptional Attributes Name
integer(kind=jpim), intent(in) :: kflev