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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 140 - (hide 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 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 dimens_m, ONLY: iim, jjm
16     use filtreg_hemisph_m, only: filtreg_hemisph
17 guez 140 USE inifgn_m, ONLY: sddu, unsddu
18 guez 137 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