1 | double precision function proftemp_index(num,rayon,boolinterieur)
2 |
3 | c*******************************************************************
4 | c cette function renvoie la valeur de la luminance
5 | c pour une abscisse donne dans un volume.
6 | c Elle utilise un profil sous maille
7 | c
8 | c in: num: le numero de la maille 0 ou n+1 une paroi
9 | c rayons: position sur l'horizontale a aprtir du mur du centre
10 | c pivots du profil (si interpolation)
11 | c (tempinterf temperature à l'interface)
12 | c boolinterieur: .False. == le profils est plat
13 | c == tout prends la valeur du centre du vol.
14 | c .True. == interpolation lineaire (INDEXATION)
15 | c
16 | c out: la temperature sous maille = proftemp_index
17 | c*******************************************************************
18 | implicit none
19 | include 'cecile.inc'
20 | include 'propradia.inc'
21 | include 'entre.inc'
22 | double precision rayon
23 | double precision tmp1, tmp2, tmp3
24 | double precision a,b
25 | integer num
26 | logical boolinterieur
27 |
28 |
29 |
30 |
31 | if (num .eq. 0) then
32 | proftemp_index= temp(0)
33 | else if (num .eq. (n+1)) then
34 | proftemp_index= temp(n+1)
35 | else
36 | !...................................................
37 | if (rayon.lt.rc(num))then
38 | b=(rayon-r(num-1))/(rc(num)-r(num-1))
39 | a=1-b
40 | proftemp_index=a*tempinterf(num-1)+b*temp(num)
41 | if (.not.boolinterieur) proftemp_index= temp(num)
42 | !...................................................
43 | else
44 | b=(rayon-rc(num))/(r(num)-rc(num))
45 | a=1-b
46 | proftemp_index=a*temp(num)+b*tempinterf(num)
47 | if (.not.boolinterieur) proftemp_index= temp(num)
48 | endif
49 | !...................................................
50 | endif
51 |
52 | !!print *, '0',num,n,' rayon:',rayon, ' temperat:',proftemp_index
53 | return
54 |
55 | end
56 |
proftemp_index.f could be called by: