#ifdef _OPENACC subroutine initialisation_openacc USE openacc character(len=6) :: local_rank_env integer :: local_rank_env_status, local_rank ! Initialisation d'OpenACC !$acc init ! Récupération du rang local du processus via la variable d'environnement ! positionnée par Slurm, l'utilisation de MPI_Comm_rank n'étant pas encore ! possible puisque cette routine est utilisée AVANT l'initialisation de MPI call get_environment_variable(name="SLURM_LOCALID", value=local_rank_env, status=local_rank_env_status) if (local_rank_env_status == 0) then read(local_rank_env, *) local_rank ! Définition du GPU à utiliser via OpenACC call acc_set_device_num(local_rank, acc_get_device_type()) else print *, "Erreur : impossible de déterminer le rang local du processus" stop 1 end if end subroutine initialisation_openacc #endif