Fortran

Solo disponible en BuenasTareas
  • Páginas : 9 (2049 palabras )
  • Descarga(s) : 0
  • Publicado : 19 de enero de 2011
Leer documento completo
Vista previa del texto
PROGRAMA 2D_Burgers_Equation
Implicit none Implícita ninguna
Integer Nbt,Nbx,Nby,n,i,j,m,p Entero NBT, NBX, NBY, n, i, j m, p
Real dt,dx,dy,Re,T,Pi,u(0:1100,0:1100),k,v(0:1100,0:1100) dt Real, dx, dy, Re, T, Pi, u (0:1100,0:1100), k, v (0:1100,0:1100)
Character*80 F440 Personaje * 80 F440
     F440='(210(F10.4,1X))' F440 = '(210 (F10.4, 1X))
dx=0.001 !pas d,espace suivant x dx = 0,001!pas d, suivant espace x
dy=0.001 !pas d'espace suivant y dy = 0,001! pas d'espace y suivant
dt=0.005 !pas de temps dt = 0,005! pas de temps
Re=1000 !nombre de Reynolds Re = 1000! Nombre de Reynolds
k=5 !taux de decroissance du sinus k = 5! taux de Décroissance du seno
p=5 !pas de sortie des resultats (spatial) p = 5! pas de sortie des resultats (espacial)
write(*,*)'Donner la duree de lasimulation: ' escribir (*,*)' Donner la durée de la simulación: '
Read(*,*) T  !duree de la simulation Leer (*,*) T! Durée de la simulación
Nbt=int(T/dt) !nombre de pas temporel NBT = int (T / dt)! Nombre de pas temporel
Nbx=int(1/dx)+1 !nombre de pas spatial en x NBX = int (1/dx) 1! Nombre de pas espaciales en x
Nby=int(1/dy)+1 !nombre de pas spatial en y NBY = int (1/dy) 1! Nombre depas espacial y en
Pi=4*atan(1.) ! Pi = 4 * atan (1.)! nom bre Pi nom bre Pi
write(*,*)'Nb pas d''espace en x=',Nbx escribir (*,*)' Núm. pas d''espace en x = ', NBX
write(*,*)'Nb pas d''espace en y=',Nby escribir (*,*)' Núm. pas d''espace es y = ', NBY
write(*,*)'Nb pas de temps=',Nbt escribir (*,*)' Núm. pas de temps = ', NBT
write(*,*)'n=0' escribir (*,*)' n = 0 '
CallInitialiser_vitesses_u_v(u,v,dx,dy,Nbx,Nby,Pi,k) !routine d'initialisation (CI) de u et v Llame Initialiser_vitesses_u_v (u, v, dx, dy, NBX, NBY, Pi, k)! Rutina d'inicialización (IC) de u et v
Open(1,file='vit2Du.dat') Abra (1, archivo = 'vit2Du.dat')
Open(2,file='vit2Dv.dat') Open (2, archivo = 'vit2Dv.dat')
do j=0,(Nby/p) hacer j = 0, (NBY / p)
Write(1,F440) (u(p*i,p*j),i=0,(Nbx/p)) !ecriture de lasolution initiale pour u Escribir (1, F440) (u (p * i, p * j), i = 0, (NBx / p))! Écriture de initiale solución pour la u
Write(2,F440) (v(p*i,p*j),i=0,(Nbx/p)) !ecriture de la soution initiale pour v Write (2, F440) (v (p * i, p * j), i = 0, (NBx / p))! Écriture de initiale soution pour la v
end do fin hacer
Close(1) Cierre (1)
Close(2) Cerrar (2)
     write(*,*) 'Tracer les courbes ...' !tracedes courbes (solutions initiales) sous MatLab escribir '(*,*)' trazador les Courbes ...! traza des Courbes (Initiales soluciones)-sous-MatLab
pause pausa
m=10    !pas de sortie des resultats (temporel) m = 10! paso de salida resultats des (temporel)
     do n=1,Nbt n hacer Nbt = 1,
Call Calculer_vitesse(u,v,Nbx,Nby,dx,dy,dt,Re,Pi,k,n) !routine calculant la vitesse u Llame Calculer_vitesse(u, v, NBX, NBY, dx, dy, dt, Re, Pi, k, n)! Calculant rutina de la vitesse u
Call Calculer_v(u,v,dx,dy,Nbx,Nby) !routine calculant la vitesse v Llame Calculer_v (u, v, dx, dy, NBX, NBY)! Calculant rutina de la vitesse v
if (n.eq.m)  then if (n.eq.m), entonces
Open(1,file='vit2Du.dat') Abra (1, archivo = 'vit2Du.dat')
Open(2,file='vit2Dv.dat') Open (2, archivo = 'vit2Dv.dat')
doj=0,(Nby/p) hacer j = 0, (NBY / p)
Write(1,F440) (u(p*i,p*j),i=0,(Nbx/p)) !ecriture de la vitesse u Escribir (1, F440) (u (p * i, p * j), i = 0, (NBx / p))! Écriture de la U vitesse
Write(2,F440) (v(p*i,p*j),i=0,(Nbx/p)) !ecriture de la vitesse v Write (2, F440) (v (p * i, p * j), i = 0, (NBx / p))! Écriture de la v Vitesse
end do fin hacer
Close(1) Cierre (1)
Close(2) Cerrar (2)
m=m+10 m = 10 mwrite(*,*) 'Tracer les courbes ...' !trace des courbes u et v sous MatLab a l'instant n*dt escribir (*,*) 'trazador les Courbes ...! traza des Courbes u otros v-sous-MatLab un instante n l'* dt
pause pausa
end if final si
end do fin hacer
END FIN
c************************************************************** c ************************************************* *************
SUBROUTINE...
tracking img