par_Barrier Subroutine

public subroutine par_Barrier(Comm, beforeScreenOut, afterScreenOut)

Uses

  • proc~~par_barrier~~UsesGraph proc~par_barrier par_Barrier module~modgvec_globals MODgvec_Globals proc~par_barrier->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env

Barrier for specified communicator, or world-communicator otherwise.

Arguments

Type IntentOptional Attributes Name
real :: Comm
character(len=*), intent(in), optional :: beforeScreenOut
character(len=*), intent(in), optional :: afterScreenOut

Calls

proc~~par_barrier~~CallsGraph proc~par_barrier par_Barrier mpi_barrier mpi_barrier proc~par_barrier->mpi_barrier

Called by

proc~~par_barrier~~CalledByGraph proc~par_barrier par_Barrier proc~evalforce EvalForce proc~evalforce->proc~par_barrier proc~hmap_axisnb_init_params hmap_axisNB_init_params proc~hmap_axisnb_init_params->proc~par_barrier proc~initanalyze InitAnalyze proc~initanalyze->proc~par_barrier proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~par_barrier proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~par_barrier proc~initsolutionmhd3d->proc~evalforce interface~t_hmap_axisnb t_hmap_axisNB interface~t_hmap_axisnb->proc~hmap_axisnb_init_params proc~hmap_axisnb_init hmap_axisNB_init interface~t_hmap_axisnb->proc~hmap_axisnb_init proc~hmap_axisnb_init->proc~hmap_axisnb_init_params proc~minimizemhd3d_descent MinimizeMHD3D_descent proc~minimizemhd3d_descent->proc~evalforce program~gvec_post GVEC_POST program~gvec_post->proc~evalforce proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->proc~minimizemhd3d_descent

Source Code

  SUBROUTINE par_Barrier(Comm,beforeScreenOut,afterScreenOut)
  ! MODULES
    USE MODgvec_Globals, ONLY : MPIRoot,UNIT_Stdout
    IMPLICIT NONE
  !--------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
    MPI_comm_TYPE, INTENT(IN), OPTIONAL :: Comm
    CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: beforeScreenOut,afterScreenOut
  !--------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
    INTEGER :: ierr
    MPI_comm_TYPE :: Communicator
  !================================================================================================================================
  ! BODY
#   if MPI
    IF (PRESENT(Comm)) THEN
      Communicator=Comm
    ELSE
      Communicator=worldComm
    END IF
    IF(PRESENT(beforeScreenOut).AND.MPIroot) WRITE(UNIT_StdOut,'(A)') beforeScreenOut
    CALL MPI_BARRIER(Communicator, ierr)
    IF(PRESENT(afterScreenOut) .AND.MPIroot) WRITE(UNIT_StdOut,'(A)') afterScreenOut
#   else
    IF(PRESENT(beforeScreenOut).AND.MPIroot) WRITE(UNIT_StdOut,'(A)') beforeScreenOut
    IF(PRESENT(afterScreenOut) .AND.MPIroot) WRITE(UNIT_StdOut,'(A)') afterScreenOut
#   endif
  END SUBROUTINE par_Barrier