/[lmdze]/trunk/filtrez/filtreg_scal.f
ViewVC logotype

Diff of /trunk/filtrez/filtreg_scal.f

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

trunk/Sources/filtrez/filtreg_scal.f revision 137 by guez, Wed May 6 15:51:03 2015 UTC trunk/filtrez/filtreg_scal.f revision 254 by guez, Mon Feb 5 10:39:38 2018 UTC
# Line 11  contains Line 11  contains
11      ! Objet : filtre matriciel longitudinal, avec les matrices pr\'ecalcul\'ees      ! Objet : filtre matriciel longitudinal, avec les matrices pr\'ecalcul\'ees
12      ! pour l'op\'erateur filtre.      ! pour l'op\'erateur filtre.
13    
     USE coefils, ONLY: sddv, unsddv  
14      USE dimens_m, ONLY: iim, jjm      USE dimens_m, ONLY: iim, jjm
15      use filtreg_hemisph_m, only: filtreg_hemisph      use filtreg_hemisph_m, only: filtreg_hemisph
16        USE inifgn_m, ONLY: sddv, unsddv
17      use inifilr_m, only: jfiltnu, jfiltsu, matriceun, matriceus, matrinvn, &      use inifilr_m, only: jfiltnu, jfiltsu, matriceun, matriceus, matrinvn, &
18           matrinvs           matrinvs
19      use nr_util, only: assert      use nr_util, only: assert
# Line 27  contains Line 27  contains
27      ! champ intensif ou extensif (pond\'er\'e par les aires)      ! champ intensif ou extensif (pond\'er\'e par les aires)
28    
29      ! Local:      ! Local:
30      REAL sdd1(iim), sdd2(iim)      REAL sdd(iim)
31    
32      !-----------------------------------------------------------      !-----------------------------------------------------------
33    
34      call assert(size(champ, 1) == iim + 1, "filtreg_scal iim + 1")      call assert(size(champ, 1) == iim + 1, "filtreg_scal iim + 1")
35      call assert(size(champ, 2) == jjm + 1, "filtreg_scal jjm + 1")      call assert(size(champ, 2) == jjm + 1, "filtreg_scal jjm + 1")
36    
37      IF (intensive) THEN      sdd = merge(sddv, unsddv, intensive)
        sdd1 = sddv  
        sdd2 = unsddv  
     ELSE  
        sdd1 = unsddv  
        sdd2 = sddv  
     END IF  
38    
39      if (direct) then      if (direct) then
40         call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd1, sdd2, matriceun)         call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd, matriceun)
41         call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd1, sdd2, matriceus)         call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd, matriceus)
42      else      else
43         call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd1, sdd2, - matrinvn)         call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd, - matrinvn)
44         call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd1, sdd2, - matrinvs)         call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd, - matrinvs)
45      end if      end if
46    
47    END SUBROUTINE filtreg_scal    END SUBROUTINE filtreg_scal

Legend:
Removed from v.137  
changed lines
  Added in v.254

  ViewVC Help
Powered by ViewVC 1.1.21