/[lmdze]/trunk/Sources/filtrez/filtreg_hemisph.f
ViewVC logotype

Diff of /trunk/Sources/filtrez/filtreg_hemisph.f

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

revision 136 by guez, Thu Apr 30 18:35:49 2015 UTC revision 142 by guez, Fri Jun 5 19:31:37 2015 UTC
# Line 4  module filtreg_hemisph_m Line 4  module filtreg_hemisph_m
4    
5  contains  contains
6    
7    subroutine filtreg_hemisph(champ, sdd1, sdd2, matri)    subroutine filtreg_hemisph(champ, sdd, matri)
8    
9      USE dimens_m, ONLY: iim      USE dimens_m, ONLY: iim
10    
11      REAL, intent(inout):: champ(:, :, :) ! (iim + 1, :, :)      REAL, intent(inout):: champ(:, :, :) ! (iim + 1, :, :)
12      REAL, intent(in):: sdd1(:), sdd2(:) ! (iim)      REAL, intent(in):: sdd(:) ! (iim)
13      real, intent(in), dimension(:, :, :):: matri ! (iim, iim, :)      real, intent(in), dimension(:, :, :):: matri ! (iim, iim, :)
14    
15      ! Local:      ! Local:
# Line 17  contains Line 17  contains
17    
18      !-----------------------------------------------------------------      !-----------------------------------------------------------------
19    
20      DO l = 1, size(champ, 3)      forall (j = 1:size(champ, 2), l = 1:size(champ, 3))
21         DO j = 1, size(champ, 2)         champ(:iim, j, l) = champ(:iim, j, l) &
22            champ(:iim, j, l) = champ(:iim, j, l) * sdd1              + matmul(matri(:, :, j), champ(:iim, j, l) * sdd) / sdd
23            champ(:iim, j, l) = (champ(:iim, j, l) &      END forall
24                 + matmul(matri(:, :, j), champ(:iim, j, l))) * sdd2  
25            champ(iim + 1, j, l) = champ(1, j, l)      champ(iim + 1, :, :) = champ(1, :, :)
        END DO  
     END DO  
26    
27    end subroutine filtreg_hemisph    end subroutine filtreg_hemisph
28    

Legend:
Removed from v.136  
changed lines
  Added in v.142

  ViewVC Help
Powered by ViewVC 1.1.21