Encontrar índices específicos con matriz de punteros.

Soy relativamente nuevo en Fortran y me rompo la cabeza por una cosa durante horas:

Quiero escribir una subrutina para encontrar los índices de elementos específicos en una matriz 1D real (dada a la rutina como entrada).

He generado una matriz con 100 reales aleatorios, llamadaarr, y ahora queremos determinar los índices de aquellos elementos que son mayores que un valor realmin, que también se pasa a la subrutina.

Además, al final me gustaría tener un puntero que asignaría al final, lo que me dijeron que sería mejor que usar una matrizindices Contiene los índices una vez encontrados.

Simplemente no encontré cómo resolver eso, tenía el siguiente enfoque:

SUBROUTINE COMP(arr, min)
   real, intent(in)                 :: arr(:)
   real, intent(in)                 :: min
   integer, pointer, dimension(:)   :: Indices
   integer                          :: i, j

   ! now here I need a loop which assigns to each element of the pointer 
   ! array the Indices one after another, i don't know how many indices there
   ! are to be pointed at 
   ! And I dont know how to manage that the Indices are pointed at one after another,
   ! like Indices(1) => 4
   !      Indices(2) => 7
   !      Indices(3) => 32
   !      Indices(4) => 69
   !      ...
   ! instead of
   !      Indices(4) => 4
   !      Indices(7) => 7
   !      Indices(32) => 32
   !      Indices(69) => 69
   !      ...


   DO i = 1, size(arr)
      IF (arr(i) > min) THEN
         ???
      ENDIF
   ENDDO
allocate(Indices)
END SUBROUTINE COMP

Respuestas a la pregunta(3)

Su respuesta a la pregunta