1 | subroutine graphique_L2(kl,ku,nx1,nx2,ny1,ny2,imx,imy) |
---|
2 | |
---|
3 | use remplimat_declar |
---|
4 | |
---|
5 | ! fait une sortie graphique des matrices |
---|
6 | ! imx(n1,n2) masque pour imposer les vitesses ou leur dérivee |
---|
7 | ! imy(n1,n2) masque pour imposer les vitesses ou leur dérivée |
---|
8 | |
---|
9 | implicit none |
---|
10 | integer,intent(in) :: nx1,nx2 ! bornes du domaine traite |
---|
11 | integer,intent(in) :: ny1,ny2 ! bornes du domaine traite |
---|
12 | integer, dimension(nx1:nx2,ny1:ny2),intent(in) :: imx ! masque en entree routine |
---|
13 | integer, dimension(nx1:nx2,ny1:ny2),intent(in) :: imy ! masque en entree routine |
---|
14 | |
---|
15 | integer :: kl ! largeur de bande sous diagonale |
---|
16 | integer :: ku ! largeur de bande sur diagonale |
---|
17 | integer :: lbande ! largeur de bande lbande= kl+ku+1 |
---|
18 | integer :: ligne ! dans L2 |
---|
19 | integer :: colonne ! dans L2 |
---|
20 | |
---|
21 | character (len=8) :: klku |
---|
22 | |
---|
23 | !write(6,*) 'dans graphique, kl, ku', kl,ku |
---|
24 | write(klku,'("-",i0,"-",i0)') kl,ku |
---|
25 | |
---|
26 | !write(6,*) 'graphique',klku |
---|
27 | lbande = kl+ku+1 |
---|
28 | |
---|
29 | !write(6,*)'eps_col=',eps_col |
---|
30 | |
---|
31 | ! matrice L2 : attention, graphiquement ligne est le y et colonne est le x |
---|
32 | |
---|
33 | open(122,file='graph-L2'//trim(klku)) ! fait une sortie graphique de L2 dans un fichier |
---|
34 | |
---|
35 | |
---|
36 | open(123,file='graph-Mat'//trim(klku)) ! fait une sortie graphique de mat dans un fichier |
---|
37 | |
---|
38 | 999 format(i0,1x,i0,1x,es12.2,1x,5(i0,1x),es12.2,1x,a2) |
---|
39 | 998 format(4(i0,1x),es12.5,1x,4(i0,1x),a2) |
---|
40 | |
---|
41 | |
---|
42 | ! write(6,*)'dans graphique' |
---|
43 | do j=ny1,ny2 |
---|
44 | do i=nx1,nx2 |
---|
45 | |
---|
46 | uokmat: if (ok_umat(i,j)) then |
---|
47 | |
---|
48 | ! ilmin et jlmin boucle U |
---|
49 | ilmin=max(-1,nx1+1-i) ! pour avoir i+il entre nx1+1 et nx2 |
---|
50 | ilmax=min(1,nx2-i) |
---|
51 | |
---|
52 | jlmin=max(-1,ny1-j) ! pour avoir j+jl entre ny1 et ny2 |
---|
53 | jlmax=min(1,ny2-j) |
---|
54 | |
---|
55 | |
---|
56 | |
---|
57 | do jl = jlmin , jlmax ! balaye tous les coefficients d'un noeud U de -1 a 1 |
---|
58 | do il = ilmin , ilmax ! de -1 a 1 |
---|
59 | |
---|
60 | ! ecriture des Tu |
---|
61 | colonne = ligu_L2(i+il,j+jl) |
---|
62 | ligne = ligu_L2(i,j) |
---|
63 | ! write(6,*) i,j,il,jl,ligu_L2(i,j),Tu(i,j,il,jl),'Tu' |
---|
64 | |
---|
65 | if (abs(Tu(i,j,il,jl)).gt.eps_col) then |
---|
66 | |
---|
67 | |
---|
68 | |
---|
69 | if (colonne.eq.-9999) then |
---|
70 | write(6,*) 'dans graph colonne non affectee' |
---|
71 | write(6,*) i,j,il,jl,Tu(i,j,il,jl),ok_umat(i+il,j+jl),ligu_L2(i,j),ligu_L2(i+il,j+jl) |
---|
72 | endif |
---|
73 | |
---|
74 | |
---|
75 | write(122,998) i,j,ligne,colonne,Tu(i,j,il,jl), & |
---|
76 | pos_ligu(colonne,1), pos_ligu(colonne,2),il,jl,'Tu' |
---|
77 | |
---|
78 | |
---|
79 | write(123,999) lbande+ligne-colonne,colonne,Tu(i,j,il,jl),i,j,il,jl, & |
---|
80 | imx(i,j),Mu(i+il,j+jl,-il,-jl),'Tu' ! ecriture des Tu |
---|
81 | |
---|
82 | endif |
---|
83 | |
---|
84 | ! ecriture des Tv |
---|
85 | ! write(6,*) i,j,il,jl,ligu_L2(i,j),Tv(i,j,il,jl),'Tv' |
---|
86 | |
---|
87 | if (abs(Tv(i,j,il,jl)).gt.eps_col) then |
---|
88 | colonne = ligv_L2(i+il,j+jl) |
---|
89 | |
---|
90 | |
---|
91 | write(122,998) i,j,ligne,colonne,Tv(i,j,il,jl), & |
---|
92 | pos_ligv(colonne,1), pos_ligv(colonne,2),il,jl,'Tv' |
---|
93 | |
---|
94 | write(123,999) lbande+ligne-colonne,colonne,Tv(i,j,il,jl), i,j,il,jl, & |
---|
95 | imx(i,j),Mv(i+il,j+jl,-il,-jl),'Tv' ! ecriture des Tv |
---|
96 | end if |
---|
97 | |
---|
98 | end do |
---|
99 | end do |
---|
100 | end if uokmat |
---|
101 | |
---|
102 | vokmat: if (ok_vmat(i,j)) then |
---|
103 | |
---|
104 | |
---|
105 | |
---|
106 | ! ilmin et jlmin boucle V |
---|
107 | ilmin=max(-1,nx1-i) ! pour avoir i+il entre nx1 et nx2 |
---|
108 | ilmax=min(1,nx2-i) |
---|
109 | |
---|
110 | jlmin=max(-1,ny1+1-j) ! pour avoir j+jl entre ny1+1 et ny2 |
---|
111 | jlmax=min(1,ny2-j) |
---|
112 | |
---|
113 | do jl = jlmin , jlmax ! balaye tous les coefficients d'un noeud U de -1 a 1 |
---|
114 | do il = ilmin , ilmax ! de -1 a 1 |
---|
115 | |
---|
116 | |
---|
117 | ! ecriture des Su |
---|
118 | ligne = ligv_L2(i,j) |
---|
119 | colonne = ligu_L2(i+il,j+jl) |
---|
120 | |
---|
121 | ! write(6,*) i,j,il,jl,ligv_L2(i,j),Su(i,j,il,jl),'Su' |
---|
122 | |
---|
123 | |
---|
124 | if (abs(Su(i,j,il,jl)).gt.eps_col) then |
---|
125 | |
---|
126 | |
---|
127 | write(122,998) i,j,ligne,colonne,Su(i,j,il,jl), & |
---|
128 | pos_ligu(colonne,1), pos_ligu(colonne,2),il,jl,'Su' |
---|
129 | |
---|
130 | write(123,999) lbande+ligne-colonne,colonne,Su(i,j,il,jl),i,j,il,jl, & |
---|
131 | imy(i,j),Nu(i+il,j+jl,-il,-jl),'Su' ! ecriture des Su |
---|
132 | |
---|
133 | end if |
---|
134 | |
---|
135 | ! ecriture des Sv |
---|
136 | |
---|
137 | ! write(6,*) i,j,il,jl,ligv_L2(i,j),Sv(i,j,il,jl),'Sv' |
---|
138 | |
---|
139 | colonne = ligv_L2(i+il,j+jl) |
---|
140 | |
---|
141 | if (abs(Sv(i,j,il,jl)).gt.eps_col) then |
---|
142 | |
---|
143 | write(122,998) i,j,ligne,colonne,Sv(i,j,il,jl), & |
---|
144 | pos_ligv(colonne,1), pos_ligv(colonne,2),il,jl,'Sv' |
---|
145 | |
---|
146 | write(123,999) lbande+ligne-colonne,colonne,Sv(i,j,il,jl),i,j,il,jl, & |
---|
147 | imy(i,j),Nv(i+il,j+jl,-il,-jl),'Sv' ! ecriture des Sv |
---|
148 | |
---|
149 | end if |
---|
150 | |
---|
151 | end do |
---|
152 | end do |
---|
153 | end if vokmat |
---|
154 | end do |
---|
155 | end do |
---|
156 | |
---|
157 | close(122) |
---|
158 | close(123) |
---|
159 | |
---|
160 | |
---|
161 | return |
---|
162 | end subroutine graphique_L2 |
---|