================================================================================ ================================================================================ ======= INSTRUCCIONES DE UTILIZACIÓN DE LA SUBRUTINA SLE$Solver_LDLt_CP() ===== ================================================================================ ================================================================================ Archivos que componen el Kit: modsys_ldlt_cp.txt --------> Estas instrucciones modsys_ldlt_cp.for --------> El código de la subrutina modsys_ldlt_cp.f --------> El código de la subrutina (adaptado a GFortran) makelibsys.vms --------> Programa de comandos VMS para montar la librería makefile --------> Archivo makefile (Unix) makelibsys.bat --------> Programa de comandos DOS para montar la librería UTILIZACIÓN DE LA SUBRUTINA DESDE UN PROGRAMA FORTRAN ===================================================== c------------------------------------------------------------------------------ c------------------------------------------------------------------------------ c MI_PROGRAMA.FOR (TODAS LAS VARIABLES REALES DEBEN SER DEL TIPO REAL*8) c------------------------------------------------------------------------------ c------------------------------------------------------------------------------ implicit real*8 (a-h,o-z) parameter (MXVFIX= ..., MXCASE= ..., MXTOTV= ..., MXRIGI= ...) dimension lpamc(MXTOTV), . ngfix(MXVFIX), . presc(MXVFIX), . treac(MXVFIX*MXCASE), . gload(MXTOTV*MXCASE), . rgmat(MXRIGI) ... ... ... ... ... call SLE$Solver_LDLt_CP(kproc, . ntotv,lpamc,rgmat, . nvfix,ngfix,presc, . ncase,gload,treac) ... ... ... ... ... end COMPILACIÓN Y LINKADO CON DIGITAL FORTRAN 77 EN OpenVMS ======================================================= Se recomienda a cada estudiante que abra en su cuenta un subdirectorio nuevo (por ejemplo [.SYS]) y que copie allí el código de la subrutina y los ficheros adicionales. Esto es: ... entrar en ZEUS ... $ create/dir [.sys.ldlt_cp] $ set def [.sys.ldlt_cp] $ copy disk$alu:[m_master.soft.sys.ldlt_cp]*.* [] A partir de este momento, para montar la librería... $ @makelibsys.vms El programa mi_programa.for que usa esta subrutina, se compila y linka en la forma: $ for mi_programa $ link mi_programa+dlibsys/lib Existe una versión de esta libreria en ZEUS que puede ser utilizada directamente por todos los usuarios, "linkando" en la forma: $ link mi_programa+'LMNAD Programa de comandos makelibsys.vms ----------------------------------- $ set verify $ for/d_lines modsys_ldlt_cp/object=dlibsys.obj $ lib/create dlibsys.olb dlibsys.obj $ delete dlibsys.obj;* $ set noverify Observaciones (OpenVMS) ----------------------- 1) OpenVMS no distingue entre mayúsculas y minúsculas en el nombre de los archivos (en realidad sólo utiliza mayúsculas, pero acepta las minúsculas como equivalentes). COMPILACIÓN Y LINKADO CON COMPAQ FORTRAN 90 EN True64Unix ========================================================= Los archivos deben copiarse desde la página web de la asignatura. La subrutina y el programa mi_programa.for se pueden compilar por separado y linkar conjuntamente en la forma: > f90 mi_programa.for -d_lines -O4 -c -o mi_programa.o > f90 modsys_ldlt_cp.for -d_lines -O4 -c -o dlibsys.o > f90 mi_programa.o dlibsys.o -O4 -o mi_programa La subrutina y el programa mi_programa.for también se pueden compilar y linkar conjuntamente en la forma: > f90 mi_programa.for modsys_ldlt_cp.for -d_lines -O4 -o mi_programa Se recomienda crear la librería libsys.a y linkarla posteriormente con el programa mi_programa.for en la forma: > f90 modsys_ldlt_cp.for -d_lines -O4 -c -o dlibsys.o > ar r libsys.a dlibsys.o > f90 mi_programa.for -d_lines -O4 -c -o mi_programa.o > f90 mi_programa.o -L. -lsys -O4 -o mi_programa Alternativamente puede realizarse un archivo makefile y utilizar la instrucción > make mi_programa Archivo makefile ---------------- mi_programa: mi_programa.for libsys.a f90 mi_programa.for -d_lines -O4 -c -o mi_programa.o f90 mi_programa.o -L. -lsys -O4 -o mi_programa rm mi_programa.o echo ">>> mi_programa ha sido compilado y linkado con exito" libsys.a: modsys_ldlt_cp.for f90 modsys_ldlt_cp.for -d_lines -O4 -c -o dlibsys.o ar r libsys.a dlibsys.o rm dlibsys.o Observaciones (True64Unix) -------------------------- 1) El sistema operativo distingue entre mayúsculas y minúsculas en el nombre de los archivos. COMPILACIÓN Y LINKADO CON GFORTRAN EN WINDOWS O EN LINUX ======================================================== Los archivos deben copiarse desde la página web de la asignatura. La subrutina y el programa mi_programa.for se pueden compilar por separado y linkar conjuntamente en la forma: > gfortran mi_programa.f -fdollar-ok -O2 -c -o mi_programa.o > gfortran modsys_ldlt_cp.f -fdollar-ok -O2 -c -o dlibsys.o > gfortran mi_programa.o dlibsys.o -O2 -o mi_programa La subrutina y el programa mi_programa.for también se pueden compilar y linkar conjuntamente en la forma: > gfortran mi_programa.f modsys_ldlt_cp.f -fdollar-ok -O2 -o mi_programa Se recomienda crear la librería libsys.a y linkarla posteriormente con el programa mi_programa.for en la forma: > gfortran modsys_ldlt_cp.f -fdollar-ok -O2 -c -o dlibsys.o > ar r libsys.a dlibsys.o > gfortran mi_programa.f -fdollar-ok -O2 -c -o mi_programa.o > gfortran mi_programa.o -L. -lsys -O2 -o mi_programa El programas de comandos DOS makelibsys.bat permite crear directamente la libería libsys.a en Windows. Programa de comandos makelibsys.bat ----------------------------------- gfortran modsys_ldlt_cp.f -fdollar-ok -O2 -c -o dlibsys.o ar r libsys.a dlibsys.o del dlibsys.o Observaciones (WXP o Linux) -------------------------- 1) Es posible que el sistema operativo distinga entre mayúsculas y minúsculas en el nombre de los archivos.