================================================================================ ================================================================================ ============= INSTRUCCIONES DE INSTALACIÓN DEL PROGRAMA MEF1D ================ ================================================================================ ================================================================================ Archivos que componen el Kit: mef1d.txt --------> Estas instrucciones diccionario.txt --------> Diccionario de variables mef1d.for --------> Código del programa principal mef1d.f --------> Código del programa principal (adaptado a GFortran) lib1d.for --------> Librería de cálculo matricial lib1d.f --------> Librería de cálculo matricial (adaptado a GFortran) ejemplo.dat --------> Codificación de datos de un ejemplo makelib1d.vms --------> Programa de comandos VMS para montar la librería makemef1d.vms --------> Programa de comandos VMS para montar el programa makefile --------> Archivo makefile (Unix) makelib1d.bat --------> Programa de comandos DOS para montar la librería makemef1d.bat --------> Programa de comandos DOS para montar el programa También se requieren las subrutinas SLE$Solver_LDLt_CP() y SRV$Get_CpuTime(). INSTALACIÓN DEL PROGRAMA CON DIGITAL FORTRAN 77 EN OpenVMS ========================================================== Se recomienda a cada estudiante que abra en su cuenta un subdirectorio nuevo (por ejemplo [.MEF1D]) y que copie allí el programa de elementos finitos. Esto es: ... entrar en ZEUS ... $ create/dir [.mef1d] $ set def [.mef1d] $ copy disk$alu:[m_master.soft.mef1d]*.* [] A partir de este momento, para montar la librería y el programa: $ @makelib1d.vms $ @makemef1d.vms Por último, para ejecutar el programa con los datos del archivo ejemplo.dat: $ run dmef1d > Nombre Generico de Archivos : ejemplo Y los resultados se obtendrán en el archivo ejemplo.res Programa de comandos makelib1d.vms ---------------------------------- $ set verify $ for/d_lines lib1d/object=dlib1d.obj $ lib/create dlib1d.olb dlib1d.obj $ delete dlib1d.obj;* $ set noverify Programa de comandos makemef1d.vms ---------------------------------- $ set verify $ for/d_lines mef1d/object=dmef1d.obj $ link dmef1d+dlib1d/lib+'LMNAD $ del dmef1d.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). 2) En ZEUS, el símbolo 'LMNAD apunta a una librería de sistema que ya incluye las subrutinas SLE$Solver_LDLt_CP() y SRV$Get_CpuTime(). En cualquier otro sistema OpenVMS serán necesarios los archivos fuente de estas subrutinas y deberá crearse previamente la librería dlibsys.olb según las instrucciones correspondientes. Finalmente. el programa ejecutable dmef1d.exe se construirá mediante las instrucciones: $ for/d_lines mef1d/object=dmef1d.obj $ for modcpu_openvms/object=modcpu.obj $ link dmef1d+modcpu+dlib1d/lib+dlibsys/lib $ del dmef1d.obj;* INSTALACIÓN DEL PROGRAMA CON COMPAQ FORTRAN 90 EN True64Unix ============================================================ Los archivos deben copiarse desde la página web de la asignatura. También serán necesarios los archivos fuente de las subrutinas SLE$Solver_LDLt_CP() y SRV$Get_CpuTime() y deberá crearse previamente la librería libsys.a según las instrucciones correspondientes. La librería de elementos finitos lib1d.a y el programa ejecutable dmef1d se construyen mediante las instrucciones: > f90 mef1d.for -d_lines -O4 -c -o dmef1d.o > f90 modcpu_true64unix.for -O4 -c -o modcpu.o > f90 lib1d.for -d_lines -O4 -c -o dlib1d.o > ar r lib1d.a dlib1d.o > f90 dmef1d.o modcpu.o L. -l1d -lsys -O4 -o dmef1d Alternativamente puede realizarse un archivo makefile y utilizar la instrucción > make dmef1d Por último, para ejecutar el programa con los datos del archivo ejemplo.dat: > dmef1d > > Nombre Generico de Archivos : ejemplo Y los resultados se obtendrán en el archivo ejemplo.res Archivo makefile ---------------- dmef1d: mef1d.for modcpu.o libsys.a lib1d.a f90 mef1d.for -d_lines -O4 -c -o dmef1d.o f90 dmef1d.o modcpu.o -L. -l1d -lsys -O4 -o dmef1d rm dmef1d.o modcpu.o echo ">>> dmef1d ha sido compilado y linkado con exito" modcpu.o: modcpu_true64unix.for f90 modcpu_true64unix.for -O4 -c -o modcpu.o lib1d.a: lib1d.for f90 lib1d.for -d_lines -O4 -c -o dlib1d.o ar r lib1d.a dlib1d.o rm dlib1d.o 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. INSTALACIÓN DEL PROGRAMA CON GFORTRAN EN WINDOWS O EN LINUX =========================================================== Los archivos deben copiarse desde la página web de la asignatura. También serán necesarios los archivos fuente de las subrutinas SLE$Solver_LDLt_CP() y SRV$Get_CpuTime() y deberá crearse previamente la librería libsys.a según las instrucciones correspondientes. La librería de elementos finitos lib1d.a y el programa ejecutable dmef1d se construyen mediante las instrucciones: > gfortran mef1d.f -fdollar-ok -O2 -c -o dmef1d.o > gfortran modcpu_gfortran.f -fdollar-ok -O2 -c -o modcpu.o > gfortran lib1d.f -fdollar-ok -O2 -c -o dlib1d.o > ar r lib1d.a dlib1d.o > gfortran dmef1d.o modcpu.o -L. -l1d -lsys -O2 -o dmef1d Los programas de comandos DOS makelib1d.bat y makemef1d.bat permiten crear directamente la libería lib1d.a y el programa ejecutable dmef1d.exe en Windows. Por último, para ejecutar el programa con los datos del archivo ejemplo.dat: > dmef1d > > Nombre Generico de Archivos : ejemplo Y los resultados se obtendrán en el archivo ejemplo.res Programa de comandos makelib1d.bat ---------------------------------- gfortran lib1d.f -fdollar-ok -O2 -c -o dlib1d.o ar r lib1d.a dlib1d.o del dlib1d.o Programa de comandos makemef1d.bat ---------------------------------- gfortran mef1d.f -fdollar-ok -O2 -c -o dmef1d.o gfortran modcpu_gfortran.f -fdollar-ok -O2 -c -o modcpu.o gfortran dmef1d.o modcpu.o -L. -l1d -lsys -O2 -o dmef1d del dmef1d.o,modcpu.o