/[lmdze]/trunk/libf/phylmd/Orography/grid_noro_m.f90
ViewVC logotype

Diff of /trunk/libf/phylmd/Orography/grid_noro_m.f90

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 46 by guez, Tue Feb 22 13:49:36 2011 UTC revision 47 by guez, Fri Jul 1 15:00:48 2011 UTC
# Line 4  module grid_noro_m Line 4  module grid_noro_m
4    
5    implicit none    implicit none
6    
   private mva9  
   
7  contains  contains
8    
9    SUBROUTINE grid_noro(xdata, ydata, zdata, x, y, zphi, zmea, zstd, zsig, &    SUBROUTINE grid_noro(xdata, ydata, zdata, x, y, zphi, zmea, zstd, zsig, &
# Line 42  contains Line 40  contains
40    
41      use dimens_m, only: iim, jjm      use dimens_m, only: iim, jjm
42      use nr_util, only: assert, pi      use nr_util, only: assert, pi
43        use mva9_m, only: mva9
44    
45      REAL, intent(in):: xdata(:), ydata(:) ! coordinates of input field      REAL, intent(in):: xdata(:), ydata(:) ! coordinates of input field
46      REAL, intent(in):: zdata(:, :) ! input field      REAL, intent(in):: zdata(:, :) ! input field
# Line 273  contains Line 272  contains
272    
273      !  FIRST FILTER, MOVING AVERAGE OVER 9 POINTS.      !  FIRST FILTER, MOVING AVERAGE OVER 9 POINTS.
274    
275      CALL MVA9(zmea, iim+1, jjm+1)      CALL MVA9(zmea)
276      CALL MVA9(zstd, iim+1, jjm+1)      CALL MVA9(zstd)
277      CALL MVA9(zpic, iim+1, jjm+1)      CALL MVA9(zpic)
278      CALL MVA9(zval, iim+1, jjm+1)      CALL MVA9(zval)
279      CALL MVA9(zxtzx, iim+1, jjm+1)      CALL MVA9(zxtzx)
280      CALL MVA9(zxtzy, iim+1, jjm+1)      CALL MVA9(zxtzy)
281      CALL MVA9(zytzy, iim+1, jjm+1)      CALL MVA9(zytzy)
282    
283      ! Masque prenant en compte maximum de terre      ! Masque prenant en compte maximum de terre
284      ! On seuil a 10% de terre de terre car en dessous les parametres      ! On seuil a 10% de terre de terre car en dessous les parametres
# Line 395  contains Line 394  contains
394    
395    END SUBROUTINE grid_noro    END SUBROUTINE grid_noro
396    
   !******************************************  
   
   SUBROUTINE MVA9(X, IMAR, JMAR)  
   
     ! From dyn3d/grid_noro.F, v 1.1.1.1 2004/05/19 12:53:06  
   
     ! MAKE A MOVING AVERAGE OVER 9 GRIDPOINTS OF THE X FIELDS  
   
     integer, intent(in):: imar, jmar  
     REAL, intent(inout):: X(IMAR, JMAR)  
   
     integer, PARAMETER:: ISMo=300, JSMo=200  
     real XF(ISMo, JSMo)  
     real WEIGHTpb(-1:1, -1:1)  
     real my_sum  
     integer i, is, js, j  
   
     if(imar>ismo) stop 'surdimensionner ismo dans mva9 (grid_noro)'  
     if(jmar>jsmo) stop 'surdimensionner jsmo dans mva9 (grid_noro)'  
   
     MY_SUM=0.  
     DO IS=-1, 1  
        DO JS=-1, 1  
           WEIGHTpb(IS, JS)=1./FLOAT((1+IS**2)*(1+JS**2))  
           MY_SUM=MY_SUM+WEIGHTpb(IS, JS)  
        ENDDO  
     ENDDO  
   
     DO IS=-1, 1  
        DO JS=-1, 1  
           WEIGHTpb(IS, JS)=WEIGHTpb(IS, JS)/MY_SUM  
        ENDDO  
     ENDDO  
   
     DO J=2, JMAR-1  
        DO I=2, IMAR-1  
           XF(I, J)=0.  
           DO IS=-1, 1  
              DO JS=-1, 1  
                 XF(I, J)=XF(I, J)+X(I+IS, J+JS)*WEIGHTpb(IS, JS)  
              ENDDO  
           ENDDO  
        ENDDO  
     ENDDO  
   
     DO J=2, JMAR-1  
        XF(1, J)=0.  
        IS=IMAR-1  
        DO JS=-1, 1  
           XF(1, J)=XF(1, J)+X(IS, J+JS)*WEIGHTpb(-1, JS)  
        ENDDO  
        DO IS=0, 1  
           DO JS=-1, 1  
              XF(1, J)=XF(1, J)+X(1+IS, J+JS)*WEIGHTpb(IS, JS)  
           ENDDO  
        ENDDO  
        XF(IMAR, J)=XF(1, J)  
     ENDDO  
   
     DO I=1, IMAR  
        XF(I, 1)=XF(I, 2)  
        XF(I, JMAR)=XF(I, JMAR-1)  
     ENDDO  
   
     DO I=1, IMAR  
        DO J=1, JMAR  
           X(I, J)=XF(I, J)  
        ENDDO  
     ENDDO  
   
   END SUBROUTINE MVA9  
   
397  end module grid_noro_m  end module grid_noro_m

Legend:
Removed from v.46  
changed lines
  Added in v.47

  ViewVC Help
Powered by ViewVC 1.1.21