Como interlazar Fortran 90 en el excel? Requiero hacer una optimizacion de unas rutina de calculo
1.- Debes generar una biblioteca dinámica (dll) con las rutinas en fortran. Para ello usa el siguiente comando de compilación (dependiendo de tu compilador modificar el comando, para este caso es con gfortran):
gfortran -fno-underscoring -shared -o nombrebiblioteca.dll nombrearchivocodigo.f90
2.- Para enlazar la biblioteca dinámica desde Excel (desde VBA) debes declararla a nivel de módulo con el siguiente comando:
Private Declare Sub NombreRutinaFortran Lib "Ruta a nombrebiblioteca.dll" Alias "NombreRutinaExcel" (parámetros de entrada-salida declarados según sus tipos).
3.- Para llamarla desde Excel usa el siguiente código:
Call NombreRutinExcel(parámetros de entrada-salida).
Ejemplo:
El archivo integracion.f90 contiene dos rutinas; trapecios y simpson com parámetros de entrada-salida x, y, h, n (x, y reales y h, n enteros)
1.- compilación:
gfortran -fno-underscoring -shared -o integracion.dll integracion.f90
2.- declaración en Excel (desde VBA):
Private Declare Sub trapecios Lib "c:\...\integracion.dll" Alias "subtrapecios" (x As Single, y As Single, h As Integer, n As Integer)
Private Declare Sub simpson Lib "c:\...\integracion.dll" Alias "subsimpson" (x As Single, y As Single, h As Integer, n As Integer)
3.- Llamado desde Excel:
Call subtrapecios(x, y, h, n)
Call subsimpson(x, y, h, n)
Nota: en ocasiones no hay una transferencia transparente de los parámetros de entrada-salida desde VBA hasta fortran por lo que te recomiendo incluir una sentencia que invalide los errores que se pudiera generar al llamar la rutina. Para esto usa la sentencia On Error Resume Next en tu código de la macro en VBA.
Espero te sirva. Saludos.