1 | PROGRAM mprofils
2 | IMPLICIT NONE
3 |
4 | REAL*8 tmax,tmin,tiu,tfu,demix
5 | real*8 n
6 | INTEGER i, choix
7 | REAL tl,dtl,tu,dtu
8 | real*8 r, dr, x,xcentre,x2,rmin,rmax
9 | real*8 temp,cte,tbord
10 | real*8 a, b,c, perturb
11 | real*8 titi, toto
12 | dimension r(0:200),x(0:200),temp(0:200)
13 | PRINT *,'Rayon min(paroi)'
14 | READ *,rmin
15 | PRINT *,'Rayon max(paroi)? '
16 | READ *,rmax
17 | PRINT *,'nombre de volume (PAIR ou IMPAIR)? '
18 | READ *,n
19 | r(0) = rmin
20 | r(n+1) = rmax
21 | r(n) = rmax
22 | demix=(rmax-rmin)/2.d+0
23 | demix = demix + rmin
24 | !dimension de chaque volume
25 | dr = (rmax-rmin)/n
26 | do i=1,n
27 | !rayon ext de chaque volume
28 | r(i)=r(0)+i*dr
29 | enddo
30 | open(50,file='rayons.in', status='unknown')
31 | do i=0,n+1
32 | write(50,*) r(i)
33 | enddo
34 | close(50)
35 | print *, 'FIN RAYON'
36 | !_________________________________________________________
37 | !recherche des n+1 valeurs ou j'ai les donnees
38 | ! pour les paroirs c'est inchange r(0), r(n+1)
39 | x(0)=r(0)
40 | x(n+1)=r(n+1)
41 | ! pour les rayons: bord ext des mailles prendre centre de maille
42 | do i=1,n
43 | x(i)= (r(i)+r(i-1))/2.d+0
44 | enddo
45 | !__________________________________________________________
46 | print *,'profil para temp N+2'
47 | PRINT *,'T milieu? '
48 | READ *,tmin
49 | print *,'ou xmilieu: ',(rmax-rmin)/2.d+0
50 | !read *,xcentre
51 | xcentre = (rmax-rmin)/2.d+0
52 | PRINT *,'T bord? '
53 | READ *,tmax
54 | print *,'ou xmax:', rmax
55 | !read *,x2
56 | x2 = rmax
57 | !profils en parabole
58 | ! avec une pertubaton par dessus (perturb)
59 | a=(tmin-tmax)/(xcentre*(xcentre-x2))
60 | c=tmax
61 | temp(0)=tmax
62 | temp(n+1)=tmax
63 | print *, 'variations sur profil de temp ?'
64 | print *, '0: non'
65 | print *, '1: oui'
66 | read (*,*) choix
67 | do i=1,n
68 | perturb = 0.d+0
69 | if (choix.eq.1) perturb = sin(10.*n * x(i)) * 20.d+0
70 | temp(i) = a*x(i)*(x(i)-x2) + c + perturb
71 | temp(i) = dabs(temp(i))
72 | enddo
73 |
74 | OPEN(10,file='temperat.in',status='unknown')
75 | DO i=0,n+1
76 | write(10,*) temp(i)
77 | ENDDO
78 | CLOSE(10)
79 | !_____________________________________________________________________
80 | !profil parabol
81 | !! y=Ax(x-1)+B
82 | titi = 0.d+0 !0.155d+0
83 | PRINT *,'cte fmh2o? '
84 | read (*,*) titi
85 | print *,'fm_h2o = ',titi
86 | OPEN(10,file='fmh2o.in',status='unknown')
87 | DO i=1,n
88 | write(10,*) titi
89 | ENDDO
90 | CLOSE(10)
91 | !..............
92 | toto = 0.116d+0
93 | PRINT *,'cte fmco2? '
94 | !read (*,*) toto
95 | toto = 0.d+0
96 | print *,'fm_co2 = ',toto
97 | OPEN(10,file='fmco2.in',status='unknown')
98 | DO i=1,n
99 | write(10,*) toto
100 | ENDDO
101 | CLOSE(10)
102 |
103 | !.............
104 |
105 | !profil constant
106 | cte = 0.d+0
107 | !PRINT *,'cte fmco? '
108 | !read (*,*) cte
109 |
110 | OPEN(10,file='fmco.in',status='unknown')
111 | DO i=1,n
112 | write(10,*) cte
113 | ENDDO
114 | CLOSE(10)
115 | !________________________________________________________________________
116 | !profil constant
117 | !PRINT *,'cte fmco? '
118 | !read (*,*) cte
119 | OPEN(10,file='n_tirage.in',status='unknown')
120 | DO i=0,n+1
121 | write(10,*) 10000 !!!0
122 | ENDDO
123 | CLOSE(10)
124 | print *, '//!\\ METTRE ', n, ' DANS CECILE.IN'
125 | END