1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| implicit none
integer,parameter ::n=11
double precision,parameter ::alpha=35.
double precision,parameter ::lx=1.
double precision,parameter ::lyy=1.
double precision ::ly
real ::alph
integer ::mn,ntot,mn2
integer ::i,j,k,na,nh,nh2
double precision ::coef
double precision ::pasx,pasy
double precision ::error
double precision,dimension(m*n) ::x,y
double precision, parameter ::pi = 3.14159265d0
!****************************************************************************
open(5,file='MAILLAGE.dat')
!****************************************************************************
! Construction de noeuds de calcul
!****************************************************************************
alph=(alpha*pi)/180. ! convertir les degrés en radian
ly=lyy*sin(alph) ! ly=lyy*cos(pi/2-alph)=lyy*sin(alph)
pasx=(lx+(cos(alph)*lyy))/real(n-1) ! le pas de calcul suivant x
pasy=ly/real(n-1) ! le pas de calcul suivant y
!****************************************************************************
mn=n*n
do i=1,n
do j=1,n
x(j+(i-1)*n)=(j+1)*pasx
y(j+(i-1)*n)=(i-1)*pasy
enddo
enddo
i=1
do j=1,n
x(j+(i-1)*n)=(j-1)*pasx
y(j+(i-1)*n)=(i-1)*pasy
enddo
do i=2,n
coef=real(pasy/tan(alph))
x(1+(i-1)*n)=(i-1)*coef
y(1+(i-1)*n)=(i-1)*pasy
enddo
i=n
do j=2,n
x(j+(i-1)*n)=x(1+(i-1)*n)+((j-1)*pasx)
y(j+(i-1)*n)=(i-1)*pasy
enddo
j=n
do i=2,n
x(j+(i-1)*n)=x(1+(i-1)*n)+((j-1)*pasx)
y(j+(i-1)*n)=(i-1)*pasy
enddo
!****************************************************************************
do i=1,mn
write(2,*) x(i),y(i)
enddo
end |
Partager