diff --git a/mpi_info/mpi_info.c b/mpi_info/mpi_info.c
index 2df42b6a36ebf8947651913e181cc591b5313383..1ec46deb705616595d894788826c4381a6e1e0cf 100644
--- a/mpi_info/mpi_info.c
+++ b/mpi_info/mpi_info.c
@@ -1,14 +1,24 @@
 #include "mpi.h"
 #include <stdio.h>
+#include <stdlib.h>
 
 int main(int argc, char *argv[]) {
-    int numtasks, rank, length;
-    char hostname[MPI_MAX_PROCESSOR_NAME];
+    char* local_rank_str = NULL;
+    int local_rank = 0;
+    local_rank_str = getenv("SLURM_LOCALID");
+    if (local_rank_str != NULL) {
+        local_rank = atoi(local_rank_str);
+        printf("slurm local rank = %d\n", local_rank);
+    } else {
+        printf("slurm local rank not defined\n");
+    }
 
+    int n_tasks, rank, length;
+    char host_name[MPI_MAX_PROCESSOR_NAME];
     MPI_Init(&argc, &argv);
-    MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
+    MPI_Comm_size(MPI_COMM_WORLD, &n_tasks);
     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    MPI_Get_processor_name(hostname, &length);
-    printf("Number of tasks = %d, rank = %d, running on %s\n", numtasks, rank, hostname);
+    MPI_Get_processor_name(host_name, &length);
+    printf("Number of tasks = %d, rank = %d, running on %s\n", n_tasks, rank, host_name);
     MPI_Finalize();
 }