IMSL - Metodos computacionais
Por: Jefferson David • 6/6/2016 • Trabalho acadêmico • 531 Palavras (3 Páginas) • 246 Visualizações
! Este programa calcula a solução de uma EDP
! usando o método das linhas com aplicação das diferenças
! finitas apenas na coordenada espacial. O sistema de EDOs
! resultante é resolvido com a subrotina IVMRK da biblioteca
! IMSL.
program IMSL4
include 'link_fnl_shared.h'
use ivmrk_int
implicit none
! declaração de variáveis
integer n, i, j, ido, npontos
real*8 t, tend, tf, dt
real*8, allocatable :: y(:), yprime(:)
external fcn
! definindo valores
n = 201
allocate(y(n), yprime(n))
t = 0.0
tf = 360.0
npontos = 360
dt = (tf - t)/dble(npontos)
y = 25.0
y(1) = 200.0
tend = t + dt
open(10, file="resultado.dat",status="unknown")
write(10,10) t, (y(i), i=1,n)
ido = 1
! loop de resolução
do i=1,npontos,1
call ivmrk(ido,fcn,t,tend,y,yprime)
write(10,10) tend, (y(j), j=1,n)
t = tend
tend = t + dt
enddo
ido = 3
call ivmrk(ido,fcn,t,tend,y,yprime)
write(*,*) "fim!"
10 format(
pause
end program
subroutine fcn(n,t,y,yprime)
implicit none
! declarando as variáveis
integer i, n
real*8 t, y(n), yprime(n)
real*8 K, m, Cp, h, Al, Tamb, L, deltax, Vol, dens
K = 52.9 !W/m2 *°C
Vol = 0.1*0.003*0.01
dens = 7860.0
m = dens*Vol ! kg
Cp = 486.0 ! J/kg
h = 100.0
Al = 2.0*0.1*0.01
Tamb = 25.0
L = 0.1
deltax = (L - 0.0)/dble(n-1)
yprime(1) = 0.0
do i=2,n-1,1
...