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

Annotation of /trunk/filtrez/filtreg_v.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 138 - (hide annotations)
Fri May 22 23:13:19 2015 UTC (9 years ago) by guez
Original Path: trunk/Sources/filtrez/filtreg_v.f
File size: 1286 byte(s)
Moved variable nb_files from module histcom_var to module
histbeg_totreg_m.

Removed unused argument q of writehist.

No history file is created in program ce0l so there is no need to call
histclo in etat0.

In phyredem, access variables rlat and rlon directly from module
phyetat0_m instead of having them as arguments. This is clearer for
the program gcm. There are bad side effects for the program ce0l: we
have to modify the module variables rlat and rlon in procedure etat0,
and we need the additional file phyetat0.f to compile ce0l.

1 guez 137 module filtreg_v_m
2    
3     IMPLICIT NONE
4    
5     contains
6    
7     SUBROUTINE filtreg_v(champ, intensive)
8    
9     ! From filtrez/filtreg.F, version 1.1.1.1, 2004/05/19 12:53:09
10     ! Author: P. Le Van
11    
12 guez 138 ! Matrix filter on longitudes. Matrices have already been
13     ! computed. On v grid, direct filter only.
14 guez 137
15     USE coefils, ONLY: sddu, unsddu
16     USE dimens_m, ONLY: iim, jjm
17     use filtreg_hemisph_m, only: filtreg_hemisph
18     use inifilr_m, only: jfiltnv, jfiltsv, matricevn, matricevs
19     use nr_util, only: assert
20    
21     REAL, intent(inout):: champ(:, :, :) ! (iim + 1, jjm, :)
22     ! en entr\'ee : champ \`a filtrer, en sortie : champ filtr\'e
23    
24     logical, intent(in):: intensive
25 guez 138 ! false means the field is weighted by the area of the mesh
26 guez 137
27     ! Local:
28     REAL sdd1(iim), sdd2(iim)
29    
30     !-----------------------------------------------------------
31    
32     call assert(size(champ, 1) == iim + 1, "filtreg_v iim + 1")
33     call assert(size(champ, 2) == jjm, "filtreg_v jjm")
34    
35     IF (intensive) THEN
36     sdd1 = sddu
37     sdd2 = unsddu
38     ELSE
39     sdd1 = unsddu
40     sdd2 = sddu
41     END IF
42    
43     call filtreg_hemisph(champ(:, :jfiltnv, :), sdd1, sdd2, matricevn)
44     call filtreg_hemisph(champ(:, jfiltsv:jjm, :), sdd1, sdd2, matricevs)
45    
46     END SUBROUTINE filtreg_v
47    
48     end module filtreg_v_m

  ViewVC Help
Powered by ViewVC 1.1.21