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

Contents of /trunk/filtrez/filtreg_scal.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 265 - (show annotations)
Tue Mar 20 09:35:59 2018 UTC (6 years, 1 month ago) by guez
File size: 1500 byte(s)
Rename module dimens_m to dimensions.
1 module filtreg_scal_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE filtreg_scal(champ, direct, intensive)
8
9 ! From filtrez/filtreg.F, version 1.1.1.1, 2004/05/19 12:53:09
10 ! Author: P. Le Van
11 ! Objet : filtre matriciel longitudinal, avec les matrices pr\'ecalcul\'ees
12 ! pour l'op\'erateur filtre.
13
14 USE dimensions, ONLY: iim, jjm
15 use filtreg_hemisph_m, only: filtreg_hemisph
16 USE inifgn_m, ONLY: sddv, unsddv
17 use inifilr_m, only: jfiltnu, jfiltsu, matriceun, matriceus, matrinvn, &
18 matrinvs
19 use nr_util, only: assert
20
21 REAL, intent(inout):: champ(:, :, :) ! (iim + 1, jjm + 1, :)
22 ! en entr\'ee : champ \`a filtrer, en sortie : champ filtr\'e
23
24 logical, intent(in):: direct ! filtre direct ou inverse
25
26 logical, intent(in):: intensive
27 ! champ intensif ou extensif (pond\'er\'e par les aires)
28
29 ! Local:
30 REAL sdd(iim)
31
32 !-----------------------------------------------------------
33
34 call assert(size(champ, 1) == iim + 1, "filtreg_scal iim + 1")
35 call assert(size(champ, 2) == jjm + 1, "filtreg_scal jjm + 1")
36
37 sdd = merge(sddv, unsddv, intensive)
38
39 if (direct) then
40 call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd, matriceun)
41 call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd, matriceus)
42 else
43 call filtreg_hemisph(champ(:, 2:jfiltnu, :), sdd, - matrinvn)
44 call filtreg_hemisph(champ(:, jfiltsu:jjm, :), sdd, - matrinvs)
45 end if
46
47 END SUBROUTINE filtreg_scal
48
49 end module filtreg_scal_m

  ViewVC Help
Powered by ViewVC 1.1.21