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

Contents of /trunk/Sources/filtrez/filtreg_v.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 140 - (show annotations)
Fri Jun 5 18:58:06 2015 UTC (8 years, 11 months ago) by guez
File size: 1287 byte(s)
Changed unit of variables lat_min_guide and lat_max_guide from module
conf_guide_m from degrees to rad. Then we do not have to convert the
whole array rlat from rad to degrees in SUBROUTINE tau2alpha.

Removed some useless computations in inigeom.

Removed module coefils. Moved variables sddv, unsddv, sddu, unsddu,
eignfnu, eignfnv of module coefils to module inifgn_m. Downgraded
variables coefilu, coefilu2, coefilv, coefilv2, modfrstu, modfrstv of
module coefils to local variables of SUBROUTINE inifilr.

Write and read a 3-dimensional variable Tsoil in restartphy.nc and
startphy.nc instead of multiple variables for the different
subs-urfaces and soil layers. This does not allow any longer to
provide only the surface value in startphy.nc and spread it to other
layers. Instead, if necessary, pre-process the file startphy.nc to
spread the surface value.

1 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 ! Matrix filter on longitudes. Matrices have already been
13 ! computed. On v grid, direct filter only.
14
15 USE dimens_m, ONLY: iim, jjm
16 use filtreg_hemisph_m, only: filtreg_hemisph
17 USE inifgn_m, ONLY: sddu, unsddu
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 ! false means the field is weighted by the area of the mesh
26
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