/[lmdze]/trunk/libf/phylmd/Orography/mva9.f90
ViewVC logotype

Annotation of /trunk/libf/phylmd/Orography/mva9.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 47 - (hide annotations)
Fri Jul 1 15:00:48 2011 UTC (12 years, 11 months ago) by guez
File size: 1560 byte(s)
Split "thermcell.f" and "cv3_routines.f".
Removed copies of files that are now in "L_util".
Moved "mva9" and "diagetpq" to their own files.
Unified variable names across procedures.

1 guez 47 module MVA9_m
2    
3     implicit none
4    
5     contains
6    
7     SUBROUTINE MVA9(X)
8    
9     ! From dyn3d/grid_noro.F, version 1.1.1.1 2004/05/19 12:53:06
10    
11     ! Make a moving average over 9 gridpoints of the x fields.
12    
13     REAL, intent(inout):: X(:, :) ! (IMAR, JMAR)
14    
15     ! Local:
16     integer imar, jmar
17     real XF(size(x, 1), size(x, 2))
18     real WEIGHTpb(-1:1, -1:1)
19     real my_sum
20     integer i, is, js, j
21    
22     !---------------------------------------------------------------
23    
24     imar = size(x, 1)
25     jmar = size(x, 2)
26    
27     MY_SUM=0.
28     DO IS=-1, 1
29     DO JS=-1, 1
30     WEIGHTpb(IS, JS) = 1. / REAL((1 + IS**2) * (1 + JS**2))
31     MY_SUM=MY_SUM+WEIGHTpb(IS, JS)
32     ENDDO
33     ENDDO
34    
35     DO IS=-1, 1
36     DO JS=-1, 1
37     WEIGHTpb(IS, JS)=WEIGHTpb(IS, JS)/MY_SUM
38     ENDDO
39     ENDDO
40    
41     DO J=2, JMAR-1
42     DO I=2, IMAR-1
43     XF(I, J)=0.
44     DO IS=-1, 1
45     DO JS=-1, 1
46     XF(I, J)=XF(I, J)+X(I+IS, J+JS)*WEIGHTpb(IS, JS)
47     ENDDO
48     ENDDO
49     ENDDO
50     ENDDO
51    
52     DO J=2, JMAR-1
53     XF(1, J)=0.
54     IS=IMAR-1
55     DO JS=-1, 1
56     XF(1, J)=XF(1, J)+X(IS, J+JS)*WEIGHTpb(-1, JS)
57     ENDDO
58     DO IS=0, 1
59     DO JS=-1, 1
60     XF(1, J)=XF(1, J)+X(1+IS, J+JS)*WEIGHTpb(IS, JS)
61     ENDDO
62     ENDDO
63     XF(IMAR, J)=XF(1, J)
64     ENDDO
65    
66     DO I=1, IMAR
67     XF(I, 1)=XF(I, 2)
68     XF(I, JMAR)=XF(I, JMAR-1)
69     ENDDO
70    
71     DO I=1, IMAR
72     DO J=1, JMAR
73     X(I, J)=XF(I, J)
74     ENDDO
75     ENDDO
76    
77     END SUBROUTINE MVA9
78    
79     end module MVA9_m

  ViewVC Help
Powered by ViewVC 1.1.21