source: trunk/SOURCES/moy_mxmy.f90 @ 4

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

initial import GRISLI trunk

File size: 1.5 KB
Line 
1
2!> \file moy_mxmy.f90
3!!  Fait la moyenne ponderee d'un tableau X2D sur les mailles staggered
4!<
5
6
7!> SUBROUTINE: moy_mxmy()
8!! \author ...
9!! \date ...
10!! @note Cette routine permet de faire  la moyenne ponderee d'un tableau X2D sur les mailles staggered
11!! \param n1   [in]    dimension des tableaux
12!! \param n2   [in]    dimension des tableaux
13!! \param X2D  [in]    tableau sur les noeuds majeurs
14!! \param X_mx [out]  tableau sur les noeuds mineurs x
15!! \param X_my [out]  tableau sur les noeuds mineurs y
16!! \return X_mx, X_my
17!<
18subroutine moy_mxmy(n1,n2,X2D,X_mx,X_my)
19! fait la moyenne ponderee d'un tableau X2D sur les mailles staggered
20
21implicit none
22integer, intent(in) :: n1,n2   !< dimension des tableaux
23real, dimension(n1,n2),intent(in) :: X2D   !< tableau sur les noeuds majeurs
24real, dimension(n1,n2),intent(out) :: X_mx  !< tableau sur les noeuds mineurs x
25real, dimension(n1,n2),intent(out) :: X_my  !< tableau sur les noeuds mineurs y
26
27integer :: i,j
28integer :: i_moins1,j_moins1,i_plus1,j_plus1
29
30
31
32do j=1,n2
33   do i=1,n1
34      i_moins1=max(1,i-1)
35      j_moins1=max(1,j-1)
36      i_plus1=min(n1,i+1)
37      j_plus1=min(n2,j+1)
38
39      X_mx(i,j)=0.25*(X2D(i,j)+X2D(i_moins1,j)) &
40           + 0.125*((X2D(i_moins1,j_plus1)+X2D(i,j_plus1))   &
41           +       (X2D(i_moins1,j_moins1)+X2D(i,j_moins1)))
42
43      X_my(i,j)=0.25*(X2D(i,j)+X2D(i,j_moins1)) &
44           + 0.125*((X2D(i_plus1,j_moins1)+X2D(i_plus1,j))   &
45           +       (X2D(i_moins1,j_moins1)+X2D(i_moins1,j)))
46
47
48   end do
49end do
50
51return
52end subroutine moy_mxmy
53
54
Note: See TracBrowser for help on using the repository browser.