Professional Documents
Culture Documents
TEMA:
INTRODUCCIN
Un escenario ampliamente aceptado para el origen de las atmsferas de los
planetas interiores sostiene que fueron liberados de los interiores planetarios
rpidamente y muy temprano en la historia del sistema solar.
Como cuestin completamente separada tambin es ampliamente cree que la
tierra primitiva careca de extensas plataformas continentales y estables.
La implicacin de estas dos hiptesis para la historia de dixido de carbono en el
ocano y la atmsfera de la tierra previamente no ha sido explorada.
En este trabajo se argumenta que si estos dos escenarios son correctos una gran
presin parcial de dixido de carbono en la temprana atmsfera est implcita.
Se argumenta, adems, que no hay evidencia directa para mostrar que una gran
presin, tales derivadas parciales de dixido de carbono no exista muy temprano
en la tierra historia.
Por ello, el trabajo se presenta un posible escenario para la historia temprana de
la atmsfera de dixido de carbono, un escenario que est implcito en vistas
aceptadas relativas de evolucin terrestre temprana.
Pues cabe mencionar que esto se usa mediante un incremento en la capacidad
computacional que permite hacer clculos y simulaciones que no eran posibles
con anterioridad.
OBJETIVO GENERAL
Se plantea establecer un modelo computacional con el uso de software que simule
la difusin del dixido de carbono en el medio ambiente.
OBJETIVO ESPECIFICO
Haciendo el uso de sistemas de ecuaciones diferenciales que describen la
formacin de modelos fsicos del dixido de carbono en proceso de
difusin.
Mediante el uso de los algoritmos de splines cbicos ligados y el mtodo
Runge Kutta de orden 4 se obtendrn datos de aos vs toneladas de
dixido de carbono y tiempo vs concentracin.
Para los grficos y las tablas de datos se hacen uso del programa de Scilab
que nos ayudara a interpretar las respectivas grficas.
ANTECEDENTES
Segn el profesor J.L. Lions (1990) para el desarrollo de la Ciencias
Computacional permite estudiar el planeta Tierra utilizando la triloga
universal: modelizacin, anlisis y control.
Segn Walker (1991) simula la interaccin del intercambio de dixido de
carbono almacenado en tres medios: la atmsfera, la superficie del ocano
y sus aguas profundas.
UNIVERSIDAD NACIONAL DEL CALLAO |
FUNDAMENTO TEORICO
El dixido de carbono (CO2) es un gas incoloro e inodoro de efecto invernadero
que afecta al clima porque atrapa el calor que de otra forma se disipara en el
espacio, por ello est directamente relacionado con la temperatura en la Tierra. En
otros planetas muertos casi toda la atmsfera est compuesta por CO 2, por
ejemplo, la atmsfera de Venus es un 98 % de dicho gas y la temperatura de la
superficie alcanza los 477C. A principio del siglo XX de cada 10.000 molculas
atmosfricas tres eran de CO2 por lo que se puede decir que aunque no era un
gas muy abundante si era importante porque impeda nuestra congelacin. Si se
llegara a duplicar el porcentaje de CO2 en la atmsfera, algunos cientficos
consideran que la temperatura media del planeta aumentara entre 3 C y 6 C con
las consecuencias que no son difciles de imaginar. El ciclo del dixido de carbono
se puede resumen en el siguiente esquema:
= .
) ,
,
5
,
2
p = 1,00,
s = 2,01,
d = 2,23,
s = 2,20,
d = 2,26.
MATERIALES Y METODOS
MATERIALES
METODOS
METODOLOGIA
Algoritmo de la interpolacin:
PROGRAM SPLINES
paso 1
Paso 2
paso 3
subroutine leer_ptos
paso 1
paso 2
paso 3
n = -1
i=0,1,2,3,.,mptos
n=n+1
xi=xx
ai=yy
salida por pantalla: xi , ai
subroutine resuelve_matriz
paso 1
i=0,1,2,,n-1;hi = xi+1 - xi
paso 2
alfa0=(3(a1-a0)/h0)-3fpo
alfan=3fpn-(3(an-an-1))/hn-1)
paso 3
i=0,1,2,,n-1
alfai =3(ai+1-ai)/hi-3(ai - ai-1)/hi-1)
paso 4
l0 = 2h0
u0 = 0.5
z0=z0/l0
paso 5
i=1,2,3,..,n-1
li = 2( hi-1 + hi ) - hi-1ui-1
ui = hi/li
zi = ( alfai - hi-1zi-1 ) / li
paso 6
ln= hn-1(2-un-1)
zn = (alfan-hn-1zn-1)/ln
c n = zn
paso 7
i=n-1,n-2,n-3,..,0
ci = zi - uici+1
bi = ( ai+1 - ai )/hi-hi( ci+1 + 2ci )/3
di = (ci+1 - ci ) / 3 hi
subroutine result_polinom
mostrar polinomio
s(x) = aj + bj(x-xj) + cj(x-xj)2 + dj(x-xj)3
Paso 1
j=0,1,2,,n-1
rsup = xj+1
rinf = xj
paso 2
rdelta = (rsup-rinf)/0.5
paso 3
i=0,1,2,..,rdelta
r = rinf + 0.5i
if r<rsup
rh=0.5i
g= aj + bj(r-rinf)+cj(r-rinf)2 + dj(r-rinf)3
salida por .txt r,g
Paso 4
insertar :x0,xn
ancho de paso: h
valores iniciales: p0,s0,d0,s0,d0
paso 2
n=(b-a)/h
paso 3
leer datos_interpolados.txt
paso4
i=0,1,2,.,n-1
ti , gi
donde y'0=z0;coeficientes de las ecuaciones
Paso 5
d=8.64
W=0.001
K_1=0.000219
k_4=0.0679
paso 6
i=0,1,2,.,n-1
=
u1=0.0495
Vd=1.23
K_2=0.0000612
u2=0.0495
Vs=0.12
k_3=0.997148
, , )
(
(
,
,
.
.
, )
, )
, )
+ (
)+
(
(
+ (
(
(
.
.
)
,
+ (
(
(
.
.
)
,
,
,
+ (
Paso 8
(
(
(
.
.
)
,
+ (
)+
)+
)/
)/
!E5-alfa_d -------F4(ad,as)
=
=
=
=
)/
)+
)/
)/
10
RESULTADOS
PASO 1: Hallando los puntos interpolados, para cada uno de los casos en
Fortran.
Para la primera parte utilizaremos la codificacin de Splines cbicos ligados,
modificada ligeramente para poder obtener un ancho de avance de 0.5 aos
(equivalente a medio ao), ya que los datos que nos dan no es constante, para
ello tendremos que la derivada en el punto inicial para los 3 casos ( aumenta,
disminuye y se mantiene constante) es de 0, mientras que las derivadas en los
puntos finales ser 1, para cuando la produccin en toneladas por ao aumente, 0
para cuando se mantenga y -1 para cuando esta disminuya.
Codificacin:
program splines
implicit none
! interpolacion de una funcion y(x) con el metodo de splines
! entrada de los datos a ser interpolados: tabla.dat
! salida de datos: splines.txt
open(unit=25,file='datos.txt',status='old')
open(unit=20,file='datos_interpolados.txt',status='unknown')
call leer_ptos
call resuelve_matriz
call result_polinom
stop
end
subroutine leer_ptos
!ingreso de parametros, matrices, dimensiones,etc
parameter (mptos=100)
common/bkinput/x(0:mptos),a(0:mptos),n,fpo,fpn
print*,'ingrese la derivada inferior'
read*, fpo
print*,'ingrese la derivada superior '
read*,fpn
! funcion generadora
n = -1
do i=0,mptos
read(25,*,end=2000) xx,yy
n=n+1
x(i)=xx
a(i)=yy
print*,x(i),a(i)
end do
2000 return
11
do i=0,n-1
h(i) = x(i+1) - x(i)
end do
!e?emtos de la matriz b
alfa(0)=(3*(a(1)-a(0))/h(0))-3*fpo
alfa(n)=3*fpn-(3*(a(n)-a(n-1))/h(n-1))
do i=1,n-1
alfa(i) =3*(a(i+1)-a(i))/(h(i)-3*(a(i) - a(i-1))/h(i-1))
end do
!elementos de matriz a
l(0) = 2*h(0)
u(0) = 0.5
z(0)=z(0)/l(0)
do i=1,n-1
l(i) = 2*( h(i-1) + h(i) ) - h(i-1)*u(i-1)
u(i) = h(i)/l(i)
z(i) = ( alfa(i) - h(i-1)*z(i-1) ) / l(i)
end do
l(n)= h(n-1)*(2-u(n-1))
z(n) = (alfa(n)-h(n-1)*z(n-1))/l(n)
c(n) = z(n)
!sustitucion hacia atras
do i=n-1,0,-1
c(i) = z(i) - u(i)*c(i+1)
b(i) = (( a(i+1) - a(i) )/h(i))-(h(i)*( c(i+1) + 2*c(i) )/3)
d(i) = (c(i+1) - c(i) ) / (3* h(i) )
end do
return
end subroutine resuelve_matriz
!resultados finales
subroutine result_polinom
!c....... mostrar polinomio
! s(x) = a_j + b_j*(x-x_j) + c_j*(x-x_j)^2 + d_j*(x-x_j)^3
parameter (mptos=100)
common/bkinput/x(0:mptos),a(0:mptos),n,fpo,fpn
common/bkspline/b(0:mptos),c(0:mptos),d(0:mptos),h(0:mptos)
!nptos_nodos=1000
do j=0,n-1
rsup = x(j+1)
rinf = x(j)
rdelta = (rsup-rinf)/0.5
Do i=0,rdelta
12
r = rinf + 0.5*i
if (r.lt.rsup) then
rh=0.5*i
G = a(j) + b(j)*(r-rinf)+c(j)*(r-rinf)**2 + d(j)*(r-rinf)**3
write(20,*) r,' ',G
end if
end do
end do
return
end subroutine result_polinom
Esta codificacin se aplica a los tres casos y las grficas son las siguientes:
Caso1
Cuando la produccin de toneladas para el CO 2 aumenta para el ao 2100 (fin de
siglo), triplicando su produccin.
GRAFICA:
13
14
GRAFICA:
15
GRAFICA:
16
17
Codificacin
program RK4
implicit none
real::h,k1,k2,k3,k4,m1,m2,m3,m4,n1,n2,n3,n4,P0,RS0,RD0,AS0,AD0,o1,o2,o3,o4,q1,q2,q3,q4
real::F,F1,F2,F3,F4
real::p(1000000),rs(1000000),rd(1000000),as(1000000),ad(1000000),g(1000000),hs(1000000),ps
(1000000),cs(1000000),t(1000000),x(1000000)
real::u1,u2,w,vd,vs,k_1,k_2,k_3,k_4,d,a,b
integer::n,i
print*,'programam de RK4 para EDOs'
print*,'insertar intervalo de aos a evaluar [t0,tn]'
read*,a,b
print*,''
print*,'ancho de paso a evaluar'
read*,h
print*,''
print*,'insetar valores iniciales deP0 RS0 RD0 AS0 AD0'
print*,''
read*,P0,RS0,RD0,AS0,AD0
!n=contador o numero de interaciones y puntos
n=(b-a)/h
open(20,file='datos_interpolados.txt',status='old',action='read')
do i=0,n-1
read(20,*)t(i),g(i)
end do
print*,'**************************************************'
!donde Y'(0)=Z(0)
! coeficientes de las ecuaciones
d=8.64
u1=0.0495
u2=0.0495
W=0.001
Vd=1.23
Vs=0.12
K_1=0.000219
K_2=0.0000612
k_3=0.997148
k_4=0.0679
open(25,file='caso_1.txt',status='new', action='write')
p(0)=P0
rs(0)=RS0
rd(0)=RD0
as(0)=AS0
ad(0)=AD0
do i=0,n-1
18
!Hs
hs(i)=(rs(i)-SQRT(rs(i)**2+k_3*as(i)*(2*rs(i)-as(i))))/k_3
!Cs
cs(i)=(as(i)-hs(i))*0.5
!Ps
ps(i)=(k_4*(hs(i)**2)/cs(i))
!E1- P ---- F(ps,p,g)
k1=h*f(Ps(i),p(i),g(i))
k2=h*f(Ps(i),p(i)+0.5*k1,g(i))
k3=h*f(Ps(i),p(i)+0.5*k2,g(i))
k4=h*f(Ps(i),p(i)+k3,g(i))
p(i+1)=p(i)+(k1+2*(k2+k3)+k4)/6
!E2-ro_s ------ F1(rd,rs)
m1=h*f1(rd(i),rs(i))
m2=h*f1(rd(i)+0.5*n1,rs(i)+0.5*m1)
m3=h*f1(rd(i)+0.5*n2,rs(i)+0.5*m2)
m4=h*f1(rd(i)+n3,rs(i)+m3)
rs(i+1)=rs(i)+(m1+2*(m2+m3)+m4)/6
!E3-ro_d ------- F2(rd,rs)
n1=h*f2(rd(i),rs(i))
n2=h*f2(rd(i)+0.5*n1,rs(i)+0.5*m1)
n3=h*f2(rd(i)+0.5*n2,rs(i)+0.5*m2)
n4=h*f2(rd(i)+n3,rs(i)+m3)
rd(i+1)=rd(i)+(n1+2*(n2+n3)+n4)/6
!E-alfa_s ------- F3(ad,as)
o1=h*f3(ad(i),as(i))
o2=h*f3(ad(i)+0.5*q1,as(i)+0.5*o1)
o3=h*f3(ad(i)+0.5*q2,as(i)+0.5*o2)
o4=h*f3(ad(i)+q3,as(i)+o3)
as(i+1)=as(i)+(o1+2*(o2+o3)+o4)/6
!E5-alfa_d -------F4(ad,as)
q1=h*f4(ad(i),as(i))
q2=h*f4(ad(i)+0.5*q1,as(i)+0.5*o1)
q3=h*f4(ad(i)+0.5*q2,as(i)+0.5*o2)
q4=h*f4(ad(i)+q3,as(i)+o3)
19
ad(i+1)=ad(i)+(q1+2*(q2+q3)+q4)/6
print 2, t(i),p(i),rs(i),rd(i)
2 format(4(1x,f10.3))
write(25,4)t(i),p(i),rs(i),rd(i)
4 format(4(1x,f10.3))
end do
close(20)
end program caso_1
!----------------------FUNCIONES----------------------!P----------------------------function F(ps,p,g)
real::d,u1,w,k_1,k_2,k_3,k_4
d=8.64
u1=0.0495
W=0.001
K_1=0.000219
K_2=0.0000612
k_3=0.997148
k_4=0.0679
f=0.1*w*((ps-p)/d +g)/u1
return
end function
!RO_S--------------------------function F1(rd,rs)
real::d,u2,vd,k_1,w
d=8.64
u2=0.0495
W=0.001
Vs=0.12
K_1=0.000219
f1=((rd-rs)*w -k_1)/vs
return
end function
!RO_D--------------------------function F2(rd,rs)
real::vd,k_1,w
W=0.001
Vd=1.23
20
K_1=0.000219
f2=(k_1-(rd-rs)*w)/vd
return
end function
!ALFA_S-------------------------function F3(ad,as)
real::vs,k_2,w
W=0.001
Vs=0.12
K_2=0.0000612
f3=((ad-as)*w-k_2)/vs
return
end function
!ALFA_D-------------------------function F4(ad,as)
real::vd,k_2,w
W=0.001
Vd=1.23
K_2=0.0000612
f4=(k_2-(ad-as)*w)/vd
return
end function
Esta codificacin se aplica a los tres casos y las grficas son las siguientes:
Caso1
Cuando la produccin de toneladas para el CO2 aumenta para el ao 2100 (fin de
siglo), triplicando su produccin.
GRFICA:
21
-------------------------------------------------------------------------------
22
-------------------------------------------------------------------------------
23
-------------------------------------------------------------------------------
24
CONCLUSIONES
25
BIBLIOGRAFIA
http://www.mat.ucm.es/~jidiaz/Publicaciones/ARTICULOS_PDF/Ad009
.pdf
http://www.ugr.es/~minpet/pages/docencia/aextinguir/geoquimica12
13.pdf
Carbon Dioxide on the early earth James C. G. Walker
26