¿MINLOC funciona para matrices que comienzan en el índice 0? (Fortran 90/95)
Después de usar C por un tiempo, volví a Fortran y asigné las matrices en mi código del índice 0 a N:
real(kind=dp), dimension(:), allocatable :: a
allocate(a(0:50))
Necesitaba encontrar el índice del valor absoluto mínimo de la matriz, así que usé MINLOC, y para verificar esto lo comparé con MINVAL:
minloc(abs(a(:)))
minval(abs(a))
El resultado de MINLOC fue el índice42
pero el resultado de MINVAL correspondió a41
. Aquí está la sección relevante de la salida:
Index i a(i)
39 0.04667
40 0.02222
41 0.00222 !This was clearly the minimum value
42 0.02667
MINLOC = 42
MINVAL = 0.00222
Supongo que esto tiene algo que ver con el intrínseco de Fortran que no maneja matrices con índice 0 correctamente, ya que no es el estilo estándar de Fortran declarar matrices de esta manera (¡pero todavía está permitido!).
¿Alguien puede confirmar esto u ofrecer una solución?