ectrans_lam_benchmark Program

Uses

    • parkind1
    • oml_mod
    • omp_lib
    • yomgstats
    • yomhook
    • mpl_module
  • program~~ectrans_lam_benchmark~~UsesGraph program~ectrans_lam_benchmark ectrans_lam_benchmark mpl_module mpl_module program~ectrans_lam_benchmark->mpl_module oml_mod oml_mod program~ectrans_lam_benchmark->oml_mod omp_lib omp_lib program~ectrans_lam_benchmark->omp_lib parkind1 parkind1 program~ectrans_lam_benchmark->parkind1 yomgstats yomgstats program~ectrans_lam_benchmark->yomgstats yomhook yomhook program~ectrans_lam_benchmark->yomhook

Calls

program~~ectrans_lam_benchmark~~CallsGraph program~ectrans_lam_benchmark ectrans_lam_benchmark abor1 abor1 program~ectrans_lam_benchmark->abor1 dr_hook_init dr_hook_init program~ectrans_lam_benchmark->dr_hook_init ec_meminfo ec_meminfo program~ectrans_lam_benchmark->ec_meminfo edir_trans edir_trans program~ectrans_lam_benchmark->edir_trans einv_trans einv_trans program~ectrans_lam_benchmark->einv_trans esetup_trans esetup_trans program~ectrans_lam_benchmark->esetup_trans especnorm especnorm program~ectrans_lam_benchmark->especnorm etrans_inq etrans_inq program~ectrans_lam_benchmark->etrans_inq gstats gstats program~ectrans_lam_benchmark->gstats gstats_print gstats_print program~ectrans_lam_benchmark->gstats_print gstats_psut gstats_psut program~ectrans_lam_benchmark->gstats_psut gstats_setup gstats_setup program~ectrans_lam_benchmark->gstats_setup mpl_allreduce mpl_allreduce program~ectrans_lam_benchmark->mpl_allreduce mpl_end mpl_end program~ectrans_lam_benchmark->mpl_end mpl_init mpl_init program~ectrans_lam_benchmark->mpl_init mpl_myrank mpl_myrank program~ectrans_lam_benchmark->mpl_myrank mpl_nproc mpl_nproc program~ectrans_lam_benchmark->mpl_nproc mpl_recv mpl_recv program~ectrans_lam_benchmark->mpl_recv mpl_send mpl_send program~ectrans_lam_benchmark->mpl_send oml_max_threads oml_max_threads program~ectrans_lam_benchmark->oml_max_threads omp_get_wtime omp_get_wtime program~ectrans_lam_benchmark->omp_get_wtime proc~detect_mpirun~2 detect_mpirun program~ectrans_lam_benchmark->proc~detect_mpirun~2 proc~dump_gridpoint_field~2 dump_gridpoint_field program~ectrans_lam_benchmark->proc~dump_gridpoint_field~2 proc~dump_spectral_field dump_spectral_field program~ectrans_lam_benchmark->proc~dump_spectral_field proc~get_command_line_arguments~2 get_command_line_arguments program~ectrans_lam_benchmark->proc~get_command_line_arguments~2 proc~gstats_labels~2 gstats_labels program~ectrans_lam_benchmark->proc~gstats_labels~2 proc~initialize_spectral_arrays~2 initialize_spectral_arrays program~ectrans_lam_benchmark->proc~initialize_spectral_arrays~2 proc~sort~2 sort program~ectrans_lam_benchmark->proc~sort~2 setup_trans0 setup_trans0 program~ectrans_lam_benchmark->setup_trans0 proc~dump_gridpoint_field~2->etrans_inq egath_grid egath_grid proc~dump_gridpoint_field~2->egath_grid proc~dump_spectral_field->etrans_inq egath_spec egath_spec proc~dump_spectral_field->egath_spec ellips ellips proc~dump_spectral_field->ellips proc~get_command_line_arguments~2->mpl_end proc~get_command_line_arguments~2->mpl_init ec_mpirank ec_mpirank proc~get_command_line_arguments~2->ec_mpirank proc~get_int_value~2 get_int_value proc~get_command_line_arguments~2->proc~get_int_value~2 proc~parsing_failed~2 parsing_failed proc~get_command_line_arguments~2->proc~parsing_failed~2 proc~print_help~2 print_help proc~get_command_line_arguments~2->proc~print_help~2 gstats_label gstats_label proc~gstats_labels~2->gstats_label proc~initialize_2d_spectral_field~2 initialize_2d_spectral_field proc~initialize_spectral_arrays~2->proc~initialize_2d_spectral_field~2 proc~get_int_value~2->proc~parsing_failed~2 proc~get_str_value~2 get_str_value proc~get_int_value~2->proc~get_str_value~2 proc~str2int~2 str2int proc~get_int_value~2->proc~str2int~2 proc~initialize_2d_spectral_field~2->etrans_inq proc~parsing_failed~2->mpl_end proc~parsing_failed~2->mpl_init proc~parsing_failed~2->ec_mpirank proc~parsing_failed~2->proc~print_help~2 proc~get_str_value~2->proc~parsing_failed~2

Variables

Type Attributes Name Initial
integer(kind=jpim) :: istack
integer(kind=jpim) :: getstackusage
real(kind=jprb), dimension(1) :: zmaxerr(5)
real(kind=jprb), dimension(1) :: zerr(5)
real(kind=jprb) :: zmaxerrg
integer(kind=jpim), parameter :: nerr = 0
integer(kind=jpim), parameter :: nout = 6
integer(kind=jpim), parameter :: noutdump = 7
integer(kind=jpim) :: nlon = 128
integer(kind=jpim) :: nlat = 128
integer(kind=jpim) :: nsmax = 0
integer(kind=jpim) :: nmsmax = 0
integer(kind=jpim) :: iters = 10
integer(kind=jpim) :: nfld = 1
integer(kind=jpim) :: nlev = 1
integer(kind=jpim) :: nloen(1)
integer(kind=jpim) :: nflevg
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 :: nprcids(:)
integer(kind=jpim) :: myproc
integer(kind=jpim) :: jj
integer :: jstep
real(kind=jprd) :: ztinit
real(kind=jprd) :: ztloop
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 :: znormsp0(:)
real(kind=jprb), allocatable :: znormdiv(:)
real(kind=jprb), allocatable :: znormdiv0(:)
real(kind=jprb), allocatable :: znormvor(:)
real(kind=jprb), allocatable :: znormvor0(:)
real(kind=jprb), allocatable :: znormt(:)
real(kind=jprb), allocatable :: znormt0(:)
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(:,:)
real(kind=jprb), allocatable :: zmeanu(:)
real(kind=jprb), allocatable :: zmeanv(:)
logical :: lstack = .false.
logical :: luserpnm = .false.
logical :: lkeeprpnm = .false.
logical :: ltrace_stats = .false.
logical :: lstats_omp = .false.
logical :: lstats_comms = .false.
logical :: lstats_mpl = .false.
logical :: lstats = .false.
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 :: lfftw = .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
integer(kind=jpim) :: nmax_resol = 37
integer(kind=jpim) :: npromatr = 0
integer(kind=jpim) :: nproc
integer(kind=jpim) :: nthread
integer(kind=jpim) :: nprgpns = 0
integer(kind=jpim) :: nprgpew = 0
integer(kind=jpim) :: nprtrv = 0
integer(kind=jpim) :: nprtrw = 0
integer(kind=jpim) :: nspecresmin = 80
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 = .false.
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.
real(kind=jprb) :: zexwn
real(kind=jprb) :: zeywn

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 detect_mpirun() result(lmpi_required)

Arguments

None

Return Value logical


Subroutines

subroutine parsing_failed(message)

Arguments

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

subroutine get_command_line_arguments(nlon, nlat, nsmax, nmsmax, iters, nfld, nlev, lvordiv, lscders, luvders, nproma, verbosity, ldump_values, lprint_norms, lmeminfo, nprgpns, nprgpew, nprtrv, nprtrw, ncheck)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: nlon
integer, intent(inout) :: nlat
integer, intent(inout) :: nsmax
integer, intent(inout) :: nmsmax
integer, intent(inout) :: iters
integer, intent(inout) :: nfld
integer, intent(inout) :: nlev
logical, intent(inout) :: lvordiv
logical, intent(inout) :: lscders
logical, intent(inout) :: luvders
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) :: nprgpns
integer, intent(inout) :: nprgpew
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 sort(a, n)

Arguments

Type IntentOptional Attributes Name
real(kind=jprd), intent(inout) :: a(n)
integer(kind=jpim), intent(in) :: n

subroutine print_help(unit)

Arguments

Type IntentOptional Attributes Name
integer, optional :: unit

subroutine initialize_spectral_arrays(nsmax, nmsmax, zsp, sp3d)

Arguments

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

subroutine initialize_2d_spectral_field(nsmax, nmsmax, field)

Arguments

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

subroutine dump_gridpoint_field(jstep, myproc, nlat, 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) :: nlat
integer(kind=jpim), intent(in) :: nproma
integer(kind=jpim), intent(in) :: ngpblks
real(kind=jprb), intent(in) :: fld(nproma,1,ngpblks)
character(len=1), intent(in) :: fldchar
integer(kind=jpim), intent(in) :: noutdump

subroutine dump_spectral_field(jstep, myproc, nspec2, nsmax, nmsmax, fld, kvset, fldchar, noutdump)

Arguments

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

subroutine gstats_labels()

Arguments

None