!> \file printdebug.f90 !! Impressions formatee autour d'un point a plusieur pas de temps successifs !< !> SUBROUTINE: printdebug() !! \author ... !! \date ... !! @note Subroutine qui fait des impressions formatee autour d'un point idebug,jdebug !! a plusieurs pas de temps successifs !! @note Used modules: !! @note - use module3D_phy !! \param id position du centre de la sortie !! \param jd position du centre de la sortie !< subroutine printdebug(id,jd) ! Subroutine qui fait des impresions formatee autour d'un point idebug,jdebug ! a plusieurs pas de temps successifs USE module3D_phy implicit none INTEGER :: id ! Position du centre de la sortie INTEGER :: jd ! INTEGER :: ii INTEGER :: jj INTEGER,dimension(nx,ny) :: posx,posy CHARACTER (len=3) :: numdebug CHARACTER (len=12) :: filedebug ! nom du fichier sortie ! nom du fichier de sortie write(numdebug,FMT='(i3)') ndebug numdebug=ADJUSTL(numdebug) ! calage à gauche filedebug='debug'//TRIM(numdebug) open(num_debug,file=filedebug) write(num_debug,*) 'ndebug=',ndebug,' time=',time,' dt=',dt, runname write(num_debug,*)'-----------------------------------------------------------' write(num_debug,*) id,jd,H(id,jd) ! impression des indices (noeuds majeurs) !_____________________________ write(num_debug,*)'(i,j) noeuds majeurs, centre i,j',id,jd jj=jd ii=id write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj-2,ii-1,jj-2,ii,jj-2, & ii+1,jj-2,ii+2,jj-2 write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj-1,ii-1,jj-1,ii,jj-1, & ii+1,jj-1,ii+2,jj-1 write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj,ii-1,jj,ii,jj, & ii+1,jj,ii+2,jj write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj+1,ii-1,jj+1,ii,jj+1, & ii+1,jj+1,ii+2,jj+1 write(num_debug,fmt='(5(i3,",",i3,8x))') ii-2,jj+2,ii-1,jj+2,ii,jj+2, & ii+1,jj+2,ii+2,jj+2 write(num_debug,*) 'apres ij', id,jd 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) ! impression des épaisseurs (noeuds majeurs) !_____________________________ write(num_debug,*)'H' write(num_debug,fmt='(5(f7.1,8x))') H(ii-2:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres H', id,jd ! impression des surfaces (noeuds majeurs) !_____________________________ write(num_debug,*)'S' write(num_debug,fmt='(5(f7.1,8x))') S(ii-2:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres S', ii,jj ! impression des socles (noeuds majeurs) !_____________________________ write(num_debug,*)'bsoc' write(num_debug,fmt='(5(f7.1,8x))') BSOC(ii-2:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres S', ii,jj ! impression des Hdot (noeuds majeurs) !_____________________________ write(num_debug,*)'Hdot' write(num_debug,fmt='(5(f9.3,6x))') hdot(ii-2:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres S', ii,jj ! impression des flot (noeuds majeurs) !_____________________________ write(num_debug,*)'flot' ! write(num_debug,fmt='(5(a9,6x))') hdot(ii-2:ii+2,jj+2:jj-2:-1) write(num_debug,fmt='(5(L6,6x))') hdot(ii-2:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres S', ii,jj ! selon x ---------------------------------------------------------------------- ! impression des pentes en surfaces (noeuds mineurs) !______________________________________ write(num_debug,*)'pente x * 1e3' write(num_debug,fmt='(4(f9.3,6x))') Sdx(ii-1:ii+2,jj+2:jj-2:-1)*1e3 write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres Sdx', ii,jj ! impression des vitesses (noeuds mineurs) !______________________________________ write(num_debug,*)'Ux' write(num_debug,fmt='(4(f8.1,7x))') Uxbar(ii-1:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres Sdx', ii,jj ! impression des posx (noeuds mineurs) !______________________________________ ! grounded -> 0, , grzone ->1 ilemx->2 flot->3 do j=jj-2,jj+2 do i=ii-1,ii+2 if (gzmx(i,j)) then if (ilemx(i,j)) then ! ile posx(i,j)=2 else posx(i,j)=1 ! grounded zone endif else if (flotmx(i,j)) then ! flottant if (HMX(i,j).gt.1.) then posx(i,j)=3 else posx(i,j)=4 endif else ! pose posx(i,j)=0 endif end do end do write(num_debug,*)'Posx grounded -> 0, , grzone ->1 ilemx->2 flot->3' write(num_debug,fmt='(4(i7,8x))') Posx(ii-1:ii+2,jj+2:jj-2:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres posx', ii,jj !!$! pour changer de page !!$ write(num_debug,*) !!$ write(num_debug,*) !!$ write(num_debug,*) !!$ write(num_debug,*) !!$ write(num_debug,*) !!$ write(num_debug,*) !________________________________________________________ selon y ! impression des pentes en surfaces (noeuds mineurs) !______________________________________ write(num_debug,*)'pente y * 1e3' write(num_debug,fmt='(5(f9.3,6x))') Sdy(ii-2:ii+2,jj+2:jj-1:-1)*1e3 write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres Sdy', ii,jj ! impression des vitesses (noeuds mineurs) !______________________________________ write(num_debug,*)'Uy ' write(num_debug,fmt='(5(f8.1,7x))') Uybar(ii-2:ii+2,jj+2:jj-1:-1) write(num_debug,*)'-----------------------------------------------------------' do j=jj-1,jj+2 do i=ii-2,ii+2 if (gzmy(i,j)) then if (ilemy(i,j)) then posy(i,j)=2 else posy(i,j)=1 endif else if (flotmy(i,j)) then if (HMY(i,j).gt.1.) then posy(i,j)=3 else posy(i,j)=4 endif else posy(i,j)=0 endif end do end do ! impression des positions (noeuds mineurs) !______________________________________ write(num_debug,*)'Pos y ' write(num_debug,fmt='(5(i7,8x))') Posy(ii-2:ii+2,jj+2:jj-1:-1) write(num_debug,*)'-----------------------------------------------------------' ! write(num_debug,*) 'apres posy', ii,jj close(num_debug) ! write(num_debug,*) 'apres Sdx', ii,jj return end subroutine printdebug