Este script fue creado para resolver un sistema mecánico mediante métodos numéricos exactos siguiendo el algoritmo de solución estudiado en cursos de dinámica vectorial clásica.
Se debe tener primero el archivo pyplot_module.f90,
este no se proporciona pues es del proyecto pyplot-fortran
, una vez se haya generado este archivo se debe colocar
en /src y se tendrá lo necesario para proceder a compilar.
El proceso de compilación se pensó para usar
GFortran y se incluyen
archivos batch para facilitar la compilación make.bat
y el uso del programa run_gnuplot.bat, run_python.bat
es un script muy simple por lo que adaptar las instrucciones
de GFortran incluídas en los .bat no será difícil de
requerir usarlo desde un sistema UNIX.
En el archivo main.f90 se encuentra la definición
de los engranes y el motor.
! ================= DEFINIENDO SISTEMA ==================
motor = t_engine(5.0_wp,0.0_wp,0.01_wp)
motor%ang_vel = 100.0_wp * (4.0_wp + motor%time)
engrane_a = t_gear(40.0_wp)
engrane_b = t_gear(225.0_wp)
engrane_c = t_gear(30.0_wp)
. . .
call coax_engine(engrane_a,motor)
call ncoax(engrane_a,engrane_b)
call coax(engrane_b,engrane_c)
. . .Estos tipos derivados, funciones y subrutinas se
encuentran definidos en el archivo mechlib.f90
pero la sintaxis no es muy complicada de entender
sienddo las subrutinas coax y coax_engine para
poner dos componentes de manera coaxial y los
ncoax para colocarlos de manera tangencial.
Se encarga de inicializar el tipo derviado t_engine y generar el array time(:) para simulación transitoria.
De querer resolver otros casos se deberá escribir
la implimentación en mechlib.f90 pues originalmente
no se llegó a necesitar más que esto.
Existen dos maneras de solicitar la generación de un plot, sin embargo ninguna es nativa y ambas tienen dependencias
Este módulo fue escrito para comunicar Fortran con GNUPLot y se debe llamar a la subrutina de mismo nombre ezplot(x_axe,y_axe,"11caractere") y se generará la gráfica de tener el programa de graficación correctamente instalado.
Utilizando la interfaz creada por pyplot-fortran se grafica con el popular matplotlib por lo que no se cubrirán las dependencias ni proceso de uso, ya que esto es opcional si se quiere aprender a usar este módulo.
Si bien nunca se implementó porque no se necesitó y porque yo no tengo el conocimiento suficiente para hacerlo rápido, también es posible generar gráficas de forma nativa sin dependencias al escribir toda la funcionalidad con gtk-fortran, fortran-sdl2 o bien F03GL pero esto requiere de mucho más tiempo y justificar la necesidad.