/[lmdze]/trunk/libf/dyn3d/caldyn.f90
ViewVC logotype

Annotation of /trunk/libf/dyn3d/caldyn.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (hide annotations)
Fri Mar 5 16:43:45 2010 UTC (14 years, 2 months ago) by guez
File size: 2639 byte(s)
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions
depended on personal arrangements for directories and machines.

Translated included files into modules. Encapsulated procedures into modules.

Moved variables from module "comgeom" to local variables of
"inigeom". Deleted some unused variables in "comgeom".

Moved variable "day_ini" from module "temps" to module "dynetat0_m".

Removed useless test on variable "time" and useless "close" statement
in procedure "leapfrog".

Removed useless call to "inigeom" in procedure "limit".

1 guez 25 SUBROUTINE caldyn(itau, ucov, vcov, teta, ps, masse, pk, pkf, phis, phi, &
2     conser, du, dv, dteta, dp, w, pbaru, pbarv, time)
3 guez 3
4 guez 25 ! From dyn3d/caldyn.F, v 1.1.1.1 2004/05/19 12:53:06
5     ! Auteur : P. Le Van
6     ! Objet:
7     ! Calcul des tendances dynamiques.
8 guez 3
9 guez 25 USE dimens_m
10     USE paramet_m
11     USE comconst
12     USE comvert
13     USE comgeom
14     USE pression_m, ONLY : pression
15 guez 3
16 guez 25 IMPLICIT NONE
17 guez 3
18 guez 25 ! Arguments:
19 guez 3
20 guez 25 LOGICAL, INTENT (IN):: conser
21     INTEGER, INTENT (IN):: itau
22     REAL vcov(ip1jm, llm), ucov(ip1jmp1, llm), teta(ip1jmp1, llm)
23     REAL ps(ip1jmp1), phis(ip1jmp1)
24     REAL, INTENT (IN) :: pk(iip1, jjp1, llm)
25     REAL pkf(ip1jmp1, llm)
26     REAL vcont(ip1jm, llm), ucont(ip1jmp1, llm)
27     REAL phi(ip1jmp1, llm), masse(ip1jmp1, llm)
28     REAL dv(ip1jm, llm), du(ip1jmp1, llm)
29     REAL dteta(ip1jmp1, llm), dp(ip1jmp1)
30     REAL pbaru(ip1jmp1, llm), pbarv(ip1jm, llm)
31     REAL time
32 guez 3
33 guez 25 ! Local:
34 guez 3
35 guez 25 REAL ang(ip1jmp1, llm), p(ip1jmp1, llmp1)
36     REAL massebx(ip1jmp1, llm), masseby(ip1jm, llm), psexbarxy(ip1jm)
37     REAL vorpot(ip1jm, llm)
38     REAL w(ip1jmp1, llm), ecin(ip1jmp1, llm), convm(ip1jmp1, llm)
39     REAL bern(ip1jmp1, llm)
40     REAL massebxy(ip1jm, llm)
41 guez 3
42 guez 25 INTEGER ij, l
43 guez 3
44 guez 25 !-----------------------------------------------------------------------
45     ! Calcul des tendances dynamiques:
46 guez 3
47 guez 25 CALL covcont(llm, ucov, vcov, ucont, vcont)
48     CALL pression(ip1jmp1, ap, bp, ps, p)
49     CALL psextbar(ps, psexbarxy)
50     CALL massdair(p, masse)
51     CALL massbar(masse, massebx, masseby)
52     CALL massbarxy(masse, massebxy)
53     CALL flumass(massebx, masseby, vcont, ucont, pbaru, pbarv)
54     CALL dteta1(teta, pbaru, pbarv, dteta)
55     CALL convmas(pbaru, pbarv, convm)
56 guez 3
57 guez 25 DO ij = 1, ip1jmp1
58     dp(ij) = convm(ij, 1)/airesurg(ij)
59     END DO
60 guez 3
61 guez 25 CALL vitvert(convm, w)
62     CALL tourpot(vcov, ucov, massebxy, vorpot)
63     CALL dudv1(vorpot, pbaru, pbarv, du, dv)
64     CALL enercin(vcov, ucov, vcont, ucont, ecin)
65     CALL bernoui(ip1jmp1, llm, phi, ecin, bern)
66     CALL dudv2(teta, pkf, bern, du, dv)
67 guez 3
68    
69 guez 25 DO l = 1, llm
70     DO ij = 1, ip1jmp1
71     ang(ij, l) = ucov(ij, l) + constang(ij)
72     END DO
73     END DO
74 guez 3
75    
76 guez 25 CALL advect(ang, vcov, teta, w, massebx, masseby, du, dv, dteta, conser)
77 guez 3
78 guez 25 ! WARNING probleme de peridocite de dv sur les PC/linux. Pb d'arrondi
79     ! probablement. Observe sur le code compile avec pgf90 3.0-1
80     DO l = 1, llm
81     DO ij = 1, ip1jm, iip1
82     IF (dv(ij, l)/=dv(ij+iim, l)) THEN
83     dv(ij+iim, l) = dv(ij, l)
84     END IF
85     END DO
86     END DO
87 guez 3
88 guez 25 ! Sorties eventuelles des variables de controle:
89     IF (conser) THEN
90     CALL sortvarc(itau, ucov, teta, ps, masse, pk, phis, vorpot, phi, bern, &
91     dp, time)
92     END IF
93 guez 3
94 guez 25 END SUBROUTINE caldyn

  ViewVC Help
Powered by ViewVC 1.1.21