initialize_communications Subroutine

public subroutine initialize_communications(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(inout) :: params

Calls

proc~~initialize_communications~~CallsGraph proc~initialize_communications initialize_communications omp_get_num_procs omp_get_num_procs proc~initialize_communications->omp_get_num_procs proc~initialize_mpi initialize_mpi proc~initialize_communications->proc~initialize_mpi omp_get_num_threads omp_get_num_threads proc~initialize_communications->omp_get_num_threads mpi_abort mpi_abort proc~initialize_mpi->mpi_abort mpi_bcast mpi_bcast proc~initialize_mpi->mpi_bcast mpi_initialized mpi_initialized proc~initialize_mpi->mpi_initialized mpi_reduce mpi_reduce proc~initialize_mpi->mpi_reduce mpi_barrier mpi_barrier proc~initialize_mpi->mpi_barrier mpi_comm_rank mpi_comm_rank proc~initialize_mpi->mpi_comm_rank mpi_cart_create mpi_cart_create proc~initialize_mpi->mpi_cart_create mpi_init mpi_init proc~initialize_mpi->mpi_init mpi_comm_size mpi_comm_size proc~initialize_mpi->mpi_comm_size proc~set_paths set_paths proc~initialize_mpi->proc~set_paths proc~korc_abort korc_abort proc~set_paths->proc~korc_abort proc~korc_abort->mpi_abort

Called by

proc~~initialize_communications~~CalledByGraph proc~initialize_communications initialize_communications program~main main program~main->proc~initialize_communications

Contents


Source Code

  subroutine initialize_communications(params)
    TYPE(KORC_PARAMS), INTENT(INOUT) 	:: params
    CHARACTER(MAX_STRING_LENGTH) 		:: string

    call initialize_mpi(params)

    !$OMP PARALLEL SHARED(params)
    params%num_omp_threads = OMP_GET_NUM_THREADS()
    !$OMP END PARALLEL

    if (params%mpi_params%rank.EQ.0) then
       write(output_unit_write,'(/,"* * * * * * * OMP SET-UP * * * * * * *")')
       !$OMP PARALLEL
       !$OMP MASTER
       write(output_unit_write,'(/,"OMP threads per MPI process: ",I3)') OMP_GET_NUM_THREADS()
       write(output_unit_write,'(/,"Cores available per MPI process: ",I3)') OMP_GET_NUM_PROCS()
       !$OMP END MASTER
       !$OMP END PARALLEL
#ifdef GNU
       call GET_ENVIRONMENT_VARIABLE("OMP_PLACES",string)
       write(output_unit_write,'(/,"OMP places: ",A30)') TRIM(string)
       call GET_ENVIRONMENT_VARIABLE("GOMP_CPU_AFFINITY",string)
       write(output_unit_write,'(/,"OMP CPU affinity: ",A30)') TRIM(string)
#endif
       write(output_unit_write,'("* * * * * * * * * * * *  * * * * * * *",/)')
    end if
  end subroutine initialize_communications