/[lmdze]/trunk/dyn3d/groupe.f
ViewVC logotype

Annotation of /trunk/dyn3d/groupe.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (hide annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years, 1 month ago) by guez
Original Path: trunk/Sources/dyn3d/groupe.f
File size: 2376 byte(s)
Sources inside, compilation outside.
1 guez 31 SUBROUTINE groupe(pext, pbaru, pbarv, pbarum, pbarvm, wm)
2 guez 3
3 guez 31 ! From dyn3d/groupe.F, v 1.1.1.1 2004/05/19 12:53:06
4 guez 3
5 guez 31 ! sous-programme servant a fitlrer les champs de flux de masse aux
6     ! poles en "regroupant" les mailles 2 par 2 puis 4 par 4 etc. au fur
7     ! et a mesure qu'on se rapproche du pole.
8 guez 3
9 guez 31 ! en entree: pext, pbaru et pbarv
10     ! en sortie: pbarum, pbarvm et wm.
11 guez 3
12 guez 31 ! remarque, le wm est recalcule a partir des pbaru pbarv et on n'a
13     ! donc pas besoin de w en entree.
14 guez 3
15 guez 31 USE dimens_m
16     USE paramet_m
17     USE comconst
18 guez 66 USE disvert_m
19 guez 31 USE comgeom
20 guez 91 use vitvert_m, only: vitvert
21 guez 3
22 guez 31 IMPLICIT NONE
23 guez 3
24 guez 31 INTEGER, PARAMETER:: ngroup = 3
25 guez 3
26 guez 31 REAL pbaru(iip1, jjp1, llm), pbarv(iip1, jjm, llm)
27     REAL pext(iip1, jjp1, llm)
28 guez 3
29 guez 31 REAL, intent(out):: pbarum(iip1, jjp1, llm)
30     real pbarvm(iip1, jjm, llm)
31     REAL wm(iip1, jjp1, llm)
32 guez 3
33 guez 31 REAL zconvm(iip1, jjp1, llm), zconvmm(iip1, jjp1, llm)
34     REAL uu
35     INTEGER i, j, l
36     LOGICAL:: firstcall = .TRUE.
37 guez 3
38 guez 31 !------------------------------------------------------
39 guez 3
40 guez 31 IF (firstcall) THEN
41     IF (mod(iim, 2**ngroup) /= 0) then
42     print *, 'groupe: bad iim'
43     STOP 1
44     end IF
45     firstcall = .FALSE.
46     END IF
47 guez 3
48 guez 31 ! Champs 1D
49 guez 3
50 guez 31 CALL convflu(pbaru, pbarv, llm, zconvm)
51 guez 3
52 guez 31 CALL scopy(ijp1llm, zconvm, 1, zconvmm, 1)
53     CALL scopy(ijmllm, pbarv, 1, pbarvm, 1)
54 guez 3
55 guez 31 CALL groupeun(jjp1, llm, zconvmm)
56     CALL groupeun(jjm, llm, pbarvm)
57 guez 3
58 guez 31 ! Champs 3D
59 guez 3
60 guez 31 DO l = 1, llm
61     DO j = 2, jjm
62     uu = pbaru(iim, j, l)
63     DO i = 1, iim
64     uu = uu + pbarvm(i, j, l) - pbarvm(i, j-1, l) - zconvmm(i, j, l)
65     pbarum(i, j, l) = uu
66     END DO
67     pbarum(iip1, j, l) = pbarum(1, j, l)
68     END DO
69     END DO
70     pbarum(:, 1, :) = 0
71     pbarum(:, jjm + 1, :) = 0
72 guez 3
73 guez 31 ! integration de la convergence de masse de haut en bas
74     DO l = 1, llm
75     DO j = 1, jjp1
76     DO i = 1, iip1
77     zconvmm(i, j, l) = zconvmm(i, j, l)
78     END DO
79     END DO
80     END DO
81     DO l = llm - 1, 1, -1
82     DO j = 1, jjp1
83     DO i = 1, iip1
84     zconvmm(i, j, l) = zconvmm(i, j, l) + zconvmm(i, j, l+1)
85     END DO
86     END DO
87     END DO
88 guez 3
89 guez 31 CALL vitvert(zconvmm, wm)
90 guez 3
91 guez 31 END SUBROUTINE groupe

  ViewVC Help
Powered by ViewVC 1.1.21