Cómo usar LAPACK y ARPACK en Windows
Necesito un compilador de Fortran que pueda usarse en Windows. No me gusta Compaq Fortran porque los programas que depura y aprueba a menudo no pueden pasar el gfortran de la escuela; y su editor no tiene función de plegado de código, lo cual es muy molesto y demasiado caro; Recomiendo el editor Simply Fortran, que es pequeño y simple, viene con el compilador gfortran (instalador de Simply Fortran: Simplyfortran-1.9-setup.exe) y tiene una tarifa de registro de $25. Después de instalar Simply Fortran, en el directorio de instalación de Simply Fortran encontrará los compiladores GNU gcc y gfortran, así como algunas otras herramientas útiles que se utilizarán en los siguientes capítulos. Por supuesto, si solo desea el compilador, puede instalar gfortran directamente después de instalar el compilador en gfortran\bin (instalador: gfortran-windows-20110214.exe).
Segundo, compila la biblioteca LAPACK
A continuación, quiero instalar LAPACK. Entonces, fui a netlib, descargué la última versión (lapack-3.3.0.tgz) y la descomprimí. Como no tengo una biblioteca BLAS, quiero compilar BLAS y LAPACK en una biblioteca para usarlos juntos más adelante.
1. Abra la carpeta descomprimida y copie todos los archivos *.f en lapack-3.3.0\BLAS\SRC y dlamch.f y slamch.f en lapack-3.3.0\INSTALL. Se copian los archivos. a la carpeta lapack-3.3.0\SRC. Elegí no sobrescribir los dos archivos que se duplicaron al copiar.
1. Elegí no sobrescribirlos y ahora los archivos fuente de BLAS y LAPACK están juntos.
2. Luego use cmd para ingresar a DOS, primero verifique si hay mingw\bin (o gfortran\bin) en la ruta.
E:\lapack-3.3.0>ruta
PATH=D:\Program Files\Simply Fortran\fwin\mingw\bin;......
Si Simply Fortran está instalado correctamente, debería agregar automáticamente mingw\bin a la ruta de búsqueda. De lo contrario, agréguelo manualmente
E:\lapack-3.3.0>path=D:\Program Files\Simply Fortran\fwin\mingw\bin %path%
Simplemente, el directorio de instalación de Fortran debe modificarse según su situación.
El directorio de instalación de Simply Fortran debe modificarse según su situación.
3. Ingrese al directorio lapack-3.3.0\SRC en DOS y use gfortran para iniciar la compilación
E:\lapack-3.3.0>cd SRC
E :\lapack-3.3.0\SRC>gfortran -fimplicit-none -g -c *.f-O2
(Espere unos diez minutos, podrá ver el archivo SRC del archivo . o en la carpeta de Windows)
Luego necesita recompilar los siguientes archivos sin optimización
E:\lapack-3.3.0\SRC>gfortran -fimplicit- none -g -c slaruv .f -O0
E:\lapack-3.3.0\SRC>gfortran -fimplicit-none -g -c dlaruv.f -O0
E:\lapack-3.3 0\SRC>gfortran -fimplicit-none -g -c dlaruv.f -O0
E:\lapack-3.3.0\SRC>gfortran -fimplicit-none -g -c dla_wwaddw.f - O0
E:\lapack-3.3.0\SRC>gfortran -fimplicit-none -g -c dla_wwaddw.f -O0
E:\lapack-3.3.0.0\SRC > gfortran -fimplicit-none -g -c cla_wwaddw.f -O0
E:\lapack-3.3.0\SRC>gfortran -fimplicit-none -g -c zla_wwaddw.f -O0
Estoy ejecutando línea por línea...
4. Utilice ar para vincular a la biblioteca
E:\lapack-3.3.0\SRC>ar rcs liblapack a *.o
De esta manera, puede obtener el archivo de la biblioteca LAPACK en la carpeta SRC liblapack.a.
3. Compile la biblioteca ARPACK
Primero, vaya al sitio web oficial de ARPACK para descargar el paquete del programa. Elegí descargar arpack96.tar.gz y el parche patch.tar. gz.
1. Después de descomprimir los dos archivos comprimidos, el primer paso es aplicar un parche. Copie ARPACK bajo el parche y péguelo en arpack96, sobrescribiendo el archivo con el mismo nombre. En Win7, se le pedirá que combine las carpetas, seleccione Sí, luego se le pedirá que copie y reemplace los archivos, simplemente seleccione "Reemplazar todo".
2. Copie los archivos *.f en arpack96\ARPACK\BLAS, arpack96\ARPACK\LAPACK y arpack96\ARPACK\UTIL a arpack96\ARPACK\SRC. Luego hay tres archivos fuente que deben modificarse. Primero, busque second.f, ábralo y cambie su contenido a:
Subrutina SECOND( T )
REAL T
CALL CPU_TIME( T)
RETORNO
FIN
Guardar. Debido a que el programa original llama a ETIME para devolver la hora, pero ocurre un error al conectarse, diciendo que no se puede encontrar ETIME. Miré a gfortran y parece que usa CPU_TIME para la sincronización, así que lo cambié.
Además, dnrm2.f y snrm2.f usan la instrucción ASSIGN, que se eliminó del estándar Fortran 95, por lo que gfortran no puede compilar estos dos archivos. Por lo tanto, debe descargar versiones actualizadas de dnrm2.f y snrm2.f desde netlib y reemplazar las versiones anteriores.
3. Los principios básicos de compilación de ARPACK y LAPACK son similares. Use DOS para ingresar al directorio arpack96\ARPACK\SRC y luego use gfortran para iniciar la compilación:
E:\arpack96\ARPACK\SRC>gfortran -fimplicit-none -g -c *.f -O2
4. Utilice ar para vincular a la biblioteca
E:\arpack96\ARPACK\SRC>gfortran -fimplicit-none -g -c *.f -O2
5.
E:\arpack96\ARPACK\SRC>ar rcs libarpack.a *.o
De esta manera puede obtener la biblioteca ARPACK libarpack.a en el SRC carpeta. USANDO LAPACK
Si compilas directamente con gfortran, tienes dos opciones. La primera es copiar liblapack.a y libarpack.a al directorio donde se encuentran los archivos fuente del programa y luego compilarlos juntos
gfortran foo.f90 liblapack.a libarpack.a
El segundo El primer método es copiar liblapack.a a \lib en el directorio gfortran y luego agregar el indicador -llapack o -larpack al compilar más tarde
gfortran foo.f90 -llapack -larpack
Este es el mismo método en Linux.
Para Simply Fortran, asegúrese de que liblapack.a y libarpack.a estén copiados en mingw\lib, luego abra las opciones del proyecto desde el menú de opciones y agregue -llapack o -larpack al vinculador en las banderas del proyecto. . Tenga en cuenta que debe utilizar Simply Fortran 1.11 o superior; las versiones anteriores tienen errores en la ubicación de las banderas del proyecto.
==================
Para Mac, los indicadores del proyecto se han copiado a mingw\lib. p>Posdata: usuarios de Mac
Más tarde me cambié a Mac y la ventaja es que no tienes que instalar LAPACK, ya está integrado en vecLib en Mac. Para utilizar el programa LAPACK, simplemente compílelo con -framework vecLib.
Pero Mac no viene con ARPACK, por lo que necesitarás instalarlo, pero es más fácil que Windows. Visite el sitio web de ARPACK y descargue arpack96.tar.Z y patch.tar.Z en un directorio local.
En este directorio, abra una terminal y escriba el siguiente comando para descomprimir el programa de instalación y parchear juntos
zcat arpack96.tar.Z | tar -xvf -
zcat patch.tar. Z | tar -xvf -
En este momento, se generará un directorio ARPACK, ingrese al directorio <
cd ARPACK
y luego abra ARmake. .inc, donde con los siguientes cambios
home =
DIRS = $(UTILdir) $(SRCdir)
FC = gfortran
FFLAGS = - O3 -framework vecLib
MAKE = /usr/bin/make
De lo contrario, no se realizarán cambios. Luego, como se mencionó anteriormente, debe modificar y guardar second.f (en el subdirectorio UTIL). Luego escriba
make lib
en el directorio ARPACK para ver el inicio de la compilación. Pero recibí un error al final con ranlib y no sé por qué Mac no puede usar ranlib. Pero esto no es importante. Puede continuar usando libtool para ensamblar el archivo de la biblioteca en este momento
libtool -o libarpack.a SRC/*.o UTIL/*.o
. De esta manera obtienes libarpack .a este archivo de biblioteca. Luego puede usarlo como se describe arriba.