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

Annotation of /trunk/filtrez/filtreg_scal.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 143 - (hide annotations)
Tue Jun 9 14:32:46 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/filtrez/filtreg_scal.f
File size: 1498 byte(s)
Removed argument d of procedure acc. Was probably here just because
automatic arrays were unknown.

eigen_sort was eigsrt from Numerical Recipes.

In procedure inifilr, create file "eignvl.txt" instead of writing to
standard output.

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

  ViewVC Help
Powered by ViewVC 1.1.21