comm_env_init Subroutine

public subroutine comm_env_init()

Phase 1: Initialise MPI, cache world rank/size Call this before reading config. Idempotent: a second call is a no-op, so multiple entry points / testdrive cases can call it.

Arguments

None

Calls

proc~~comm_env_init~~CallsGraph proc~comm_env_init comm_env_init comm_world comm_world proc~comm_env_init->comm_world pic_mpi_init pic_mpi_init proc~comm_env_init->pic_mpi_init

Called by

proc~~comm_env_init~~CalledByGraph proc~comm_env_init comm_env_init proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~comm_env_init proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~build_pending_handle proc~rdb_ocean_create_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~build_pending_handle

Source Code

   subroutine comm_env_init()
      !! Phase 1: Initialise MPI, cache world rank/size
      !! Call this before reading config.  Idempotent: a second call is a
      !! no-op, so multiple entry points / testdrive cases can call it.
      if (env_initialised) return
      call pic_mpi_init()
      comm_global = comm_world()
      cached_rank = comm_global%rank()
      cached_size = comm_global%size()

      ! Default: all ranks are compute, compute_comm = comm_world
      comm_compute = comm_global
      cached_compute_rank = cached_rank
      cached_compute_size = cached_size
      env_initialised = .true.
   end subroutine comm_env_init