source: trunk/SOURCES/printdebug.f90 @ 23

Last change on this file since 23 was 4, checked in by dumas, 10 years ago

initial import GRISLI trunk

File size: 6.9 KB
Line 
1!> \file printdebug.f90
2!! Impressions formatee autour d'un point a plusieur pas de temps successifs
3!<
4
5!> SUBROUTINE: printdebug()
6!! \author ...
7!! \date ...
8!! @note Subroutine qui fait des impressions formatee autour d'un point idebug,jdebug
9!! a plusieurs pas de temps successifs
10!! @note Used modules:
11!! @note    - use module3D_phy
12!! \param id position du centre de la sortie
13!! \param jd position du centre de la sortie
14!<
15
16subroutine printdebug(id,jd)
17
18! Subroutine qui fait des impresions formatee autour d'un point idebug,jdebug
19! a plusieurs pas de temps successifs
20
21
22       USE module3D_phy
23  implicit none
24
25INTEGER  :: id      ! Position du centre de la sortie
26INTEGER  :: jd      !
27INTEGER  :: ii 
28INTEGER  :: jj
29INTEGER,dimension(nx,ny) :: posx,posy
30CHARACTER (len=3)   :: numdebug
31CHARACTER (len=12)  :: filedebug   ! nom du fichier sortie
32
33! nom du fichier de sortie
34   write(numdebug,FMT='(i3)') ndebug 
35   
36   numdebug=ADJUSTL(numdebug)   ! calage à gauche
37   filedebug='debug'//TRIM(numdebug)
38
39
40   open(num_debug,file=filedebug)
41   write(num_debug,*) 'ndebug=',ndebug,' time=',time,'  dt=',dt, runname
42   write(num_debug,*)'-----------------------------------------------------------'
43   write(num_debug,*) id,jd,H(id,jd)
44
45!  impression des indices (noeuds majeurs)
46!_____________________________
47
48     write(num_debug,*)'(i,j)  noeuds majeurs, centre i,j',id,jd
49     jj=jd
50     ii=id
51
52     
53        write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj-2,ii-1,jj-2,ii,jj-2, &
54          ii+1,jj-2,ii+2,jj-2 
55
56        write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj-1,ii-1,jj-1,ii,jj-1, &
57          ii+1,jj-1,ii+2,jj-1 
58
59        write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj,ii-1,jj,ii,jj, &
60          ii+1,jj,ii+2,jj
61
62         write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj+1,ii-1,jj+1,ii,jj+1, &
63          ii+1,jj+1,ii+2,jj+1 
64 
65        write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj+2,ii-1,jj+2,ii,jj+2, &
66          ii+1,jj+2,ii+2,jj+2 
67
68   write(num_debug,*) 'apres ij', id,jd
69   write(num_debug,*) id+2,jd+2,H(id+2,jd+2),S(id+2,jd+2),Sdx(id+2,jd+2),Sdy(id+2,jd+2)
70
71
72!  impression des épaisseurs (noeuds majeurs)
73!_____________________________
74
75     write(num_debug,*)'H' 
76     write(num_debug,fmt='(5(f7.1,8x))') H(ii-2:ii+2,jj+2:jj-2:-1)
77     write(num_debug,*)'-----------------------------------------------------------'
78!     write(num_debug,*) 'apres H', id,jd
79
80!  impression des surfaces (noeuds majeurs)
81!_____________________________
82     write(num_debug,*)'S' 
83     write(num_debug,fmt='(5(f7.1,8x))') S(ii-2:ii+2,jj+2:jj-2:-1)
84     write(num_debug,*)'-----------------------------------------------------------'
85!     write(num_debug,*) 'apres S', ii,jj
86
87
88!  impression des socles (noeuds majeurs)
89!_____________________________
90     write(num_debug,*)'bsoc' 
91     write(num_debug,fmt='(5(f7.1,8x))') BSOC(ii-2:ii+2,jj+2:jj-2:-1)
92     write(num_debug,*)'-----------------------------------------------------------'
93!     write(num_debug,*) 'apres S', ii,jj
94
95
96!  impression des Hdot (noeuds majeurs)
97!_____________________________
98     write(num_debug,*)'Hdot' 
99     write(num_debug,fmt='(5(f9.3,6x))') hdot(ii-2:ii+2,jj+2:jj-2:-1)
100     write(num_debug,*)'-----------------------------------------------------------'
101!     write(num_debug,*) 'apres S', ii,jj
102
103
104!  impression des flot (noeuds majeurs)
105!_____________________________
106     write(num_debug,*)'flot' 
107!     write(num_debug,fmt='(5(a9,6x))') hdot(ii-2:ii+2,jj+2:jj-2:-1)
108    write(num_debug,fmt='(5(L6,6x))') hdot(ii-2:ii+2,jj+2:jj-2:-1)
109     write(num_debug,*)'-----------------------------------------------------------'
110!     write(num_debug,*) 'apres S', ii,jj
111
112
113! selon x ----------------------------------------------------------------------
114!  impression des pentes en surfaces (noeuds mineurs)
115!______________________________________
116
117     write(num_debug,*)'pente x * 1e3'
118     write(num_debug,fmt='(4(f9.3,6x))') Sdx(ii-1:ii+2,jj+2:jj-2:-1)*1e3
119     write(num_debug,*)'-----------------------------------------------------------'
120!     write(num_debug,*) 'apres Sdx', ii,jj
121
122
123
124
125!  impression des vitesses (noeuds mineurs)
126!______________________________________
127
128     write(num_debug,*)'Ux'
129     write(num_debug,fmt='(4(f8.1,7x))') Uxbar(ii-1:ii+2,jj+2:jj-2:-1)
130     write(num_debug,*)'-----------------------------------------------------------'
131!     write(num_debug,*) 'apres Sdx', ii,jj
132
133
134
135!  impression des posx (noeuds mineurs)
136!______________________________________
137
138!      grounded -> 0, , grzone ->1  ilemx->2   flot->3
139
140       do j=jj-2,jj+2
141          do i=ii-1,ii+2
142
143         if (gzmx(i,j)) then     
144            if (ilemx(i,j)) then     ! ile
145              posx(i,j)=2
146            else                 
147              posx(i,j)=1        ! grounded zone
148            endif
149         else if (flotmx(i,j)) then ! flottant
150            if (HMX(i,j).gt.1.) then
151              posx(i,j)=3
152            else
153             posx(i,j)=4
154            endif
155         else                     ! pose
156             posx(i,j)=0
157         endif
158        end do
159       end do
160 
161     write(num_debug,*)'Posx grounded -> 0, , grzone ->1  ilemx->2   flot->3'
162     write(num_debug,fmt='(4(i7,8x))') Posx(ii-1:ii+2,jj+2:jj-2:-1)
163     write(num_debug,*)'-----------------------------------------------------------'
164!     write(num_debug,*) 'apres posx', ii,jj
165
166!!$! pour changer de page
167!!$      write(num_debug,*)
168!!$      write(num_debug,*)
169!!$      write(num_debug,*)
170!!$      write(num_debug,*)
171!!$      write(num_debug,*) 
172!!$      write(num_debug,*)
173
174!________________________________________________________ selon y
175!  impression des pentes en surfaces (noeuds mineurs)
176!______________________________________
177
178     write(num_debug,*)'pente y * 1e3'
179     write(num_debug,fmt='(5(f9.3,6x))') Sdy(ii-2:ii+2,jj+2:jj-1:-1)*1e3
180     write(num_debug,*)'-----------------------------------------------------------'
181!     write(num_debug,*) 'apres Sdy', ii,jj
182
183
184
185!  impression des vitesses (noeuds mineurs)
186!______________________________________
187
188     write(num_debug,*)'Uy '
189     write(num_debug,fmt='(5(f8.1,7x))') Uybar(ii-2:ii+2,jj+2:jj-1:-1)
190     write(num_debug,*)'-----------------------------------------------------------'
191
192       do j=jj-1,jj+2
193          do i=ii-2,ii+2
194
195       if (gzmy(i,j)) then
196            if (ilemy(i,j)) then
197              posy(i,j)=2
198            else
199             posy(i,j)=1
200            endif
201         else if (flotmy(i,j)) then
202            if (HMY(i,j).gt.1.) then
203              posy(i,j)=3 
204            else
205              posy(i,j)=4 
206            endif
207         else
208            posy(i,j)=0
209         endif
210
211        end do
212     end do
213
214!  impression des positions (noeuds mineurs)
215!______________________________________
216
217     write(num_debug,*)'Pos y '
218     write(num_debug,fmt='(5(i7,8x))') Posy(ii-2:ii+2,jj+2:jj-1:-1)
219     write(num_debug,*)'-----------------------------------------------------------'
220
221!     write(num_debug,*) 'apres posy', ii,jj
222
223 close(num_debug)
224!     write(num_debug,*) 'apres Sdx', ii,jj
225
226 return
227 end subroutine printdebug
Note: See TracBrowser for help on using the repository browser.