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

Annotation of /trunk/dyn3d/groupe.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 82 - (hide annotations)
Wed Mar 5 14:57:53 2014 UTC (10 years, 2 months ago) by guez
File size: 2345 byte(s)
Changed all ".f90" suffixes to ".f".
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 3
21 guez 31 IMPLICIT NONE
22 guez 3
23 guez 31 INTEGER, PARAMETER:: ngroup = 3
24 guez 3
25 guez 31 REAL pbaru(iip1, jjp1, llm), pbarv(iip1, jjm, llm)
26     REAL pext(iip1, jjp1, llm)
27 guez 3
28 guez 31 REAL, intent(out):: pbarum(iip1, jjp1, llm)
29     real pbarvm(iip1, jjm, llm)
30     REAL wm(iip1, jjp1, llm)
31 guez 3
32 guez 31 REAL zconvm(iip1, jjp1, llm), zconvmm(iip1, jjp1, llm)
33     REAL uu
34     INTEGER i, j, l
35     LOGICAL:: firstcall = .TRUE.
36 guez 3
37 guez 31 !------------------------------------------------------
38 guez 3
39 guez 31 IF (firstcall) THEN
40     IF (mod(iim, 2**ngroup) /= 0) then
41     print *, 'groupe: bad iim'
42     STOP 1
43     end IF
44     firstcall = .FALSE.
45     END IF
46 guez 3
47 guez 31 ! Champs 1D
48 guez 3
49 guez 31 CALL convflu(pbaru, pbarv, llm, zconvm)
50 guez 3
51 guez 31 CALL scopy(ijp1llm, zconvm, 1, zconvmm, 1)
52     CALL scopy(ijmllm, pbarv, 1, pbarvm, 1)
53 guez 3
54 guez 31 CALL groupeun(jjp1, llm, zconvmm)
55     CALL groupeun(jjm, llm, pbarvm)
56 guez 3
57 guez 31 ! Champs 3D
58 guez 3
59 guez 31 DO l = 1, llm
60     DO j = 2, jjm
61     uu = pbaru(iim, j, l)
62     DO i = 1, iim
63     uu = uu + pbarvm(i, j, l) - pbarvm(i, j-1, l) - zconvmm(i, j, l)
64     pbarum(i, j, l) = uu
65     END DO
66     pbarum(iip1, j, l) = pbarum(1, j, l)
67     END DO
68     END DO
69     pbarum(:, 1, :) = 0
70     pbarum(:, jjm + 1, :) = 0
71 guez 3
72 guez 31 ! integration de la convergence de masse de haut en bas
73     DO l = 1, llm
74     DO j = 1, jjp1
75     DO i = 1, iip1
76     zconvmm(i, j, l) = zconvmm(i, j, l)
77     END DO
78     END DO
79     END DO
80     DO l = llm - 1, 1, -1
81     DO j = 1, jjp1
82     DO i = 1, iip1
83     zconvmm(i, j, l) = zconvmm(i, j, l) + zconvmm(i, j, l+1)
84     END DO
85     END DO
86     END DO
87 guez 3
88 guez 31 CALL vitvert(zconvmm, wm)
89 guez 3
90 guez 31 END SUBROUTINE groupe

  ViewVC Help
Powered by ViewVC 1.1.21