¿Cómo puedo evitar un desbordamiento de pila cuando Fortran produce una matriz grande, interna y temporal?
Tengo un código Fortran que llamaRESHAPE
reordenar una matriz de modo que la dimensión que ahora estoy a punto de recorrer se convierta en la primera dimensión variable (orden de columna mayor en Fortran).
Esto no tiene nada que ver con la interoperabilidad de C / Fortran.
Ahora la matriz es bastante grande y cuando llamo alRESHAPE
La función me da un error seg que estoy muy seguro es un desbordamiento de pila. Lo sé porque puedo compilar mi código en ifort con-heap-arrays
Y el problema desaparece.
No quiero modificar el tamaño de la pila. Este código debe ser portátil para cualquier computadora sin que el usuario tenga que preocuparse por el tamaño de la pila.
¿Hay alguna manera de que pueda recibir esta llamada delRESHAPE
función para usar el montón y no la pila para su uso de memoria interna.
En el peor de los casos, tendré que 'rodar el mío'RESHAPE
funcionar para esta instancia, pero desearía que hubiera una mejor manera.