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

Contents of /trunk/dyn3d/caldyn0.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 78 - (show annotations)
Wed Feb 5 17:51:07 2014 UTC (10 years, 3 months ago) by guez
Original Path: trunk/dyn3d/caldyn0.f90
File size: 2132 byte(s)
Moved procedure inigeom into module comgeom.

In disvert, renamed s_sampling to vert_sampling, following
LMDZ. Removed choice strato1. In case read, read ap and bp instead of
s (following LMDZ).

Added argument phis to start_init_orog and start_init_dyn, and removed
variable phis of module start_init_orog_m. In etat0 and
start_init_orog, renamed relief to zmea_2d. In start_init_dyn, renamed
psol to ps.

In start_init_orog, renamed relief_hi to relief. No need to set
phis(iim + 1, :) = phis(1, :), already done in grid_noro.

Documentation for massbar out of SVN, in massbar.txt. Documentation
was duplicated in massdair, but not relevant in massdair.

In conflx, no need to initialize pen_[ud] and pde_[ud]. In flxasc,
used intermediary variable fact (following LMDZ).

In grid_noro, added local variable zmea0 for zmea not smoothed and
computed zphi from zmea instead of zmea0 (following LMDZ). This
changes the results of ce0l.

Removed arguments pen_u and pde_d of phytrac and nflxtr, which were
not used.

1 module caldyn0_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE caldyn0(ucov, vcov, teta, ps, masse, pk, phis, phi, w, &
8 pbaru, pbarv)
9
10 ! From dyn3d/caldyn0.F, version 1.1.1.1 2004/05/19 12:53:07
11 ! Auteur : P. Le Van
12 ! Objet : calcul des tendances dynamiques
13 ! Modif 04/93 F.Forget
14
15 USE comgeom, ONLY: airesurg
16 USE dimens_m, ONLY: llm
17 USE disvert_m, ONLY: ap, bp
18 use flumass_m, only: flumass
19 use massbarxy_m, only: massbarxy
20 use massdair_m, only: massdair
21 USE paramet_m, ONLY: iip1, ip1jm, ip1jmp1, jjp1, llmp1
22 use sortvarc0_m, only: sortvarc0
23 use tourpot_m, only: tourpot
24
25 ! Arguments:
26 REAL, INTENT (IN):: ucov(ip1jmp1, llm), vcov(ip1jm, llm)
27 REAL, INTENT(IN):: teta(ip1jmp1, llm)
28 REAL, INTENT (IN):: ps(ip1jmp1)
29 real, intent(out):: masse(ip1jmp1, llm)
30 REAL, INTENT (IN):: pk(iip1, jjp1, llm)
31 REAL, INTENT (IN):: phis(ip1jmp1)
32 REAL, INTENT (IN):: phi(ip1jmp1, llm)
33 REAL, intent(out):: w(ip1jmp1, llm)
34 REAL, intent(out):: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm)
35
36 ! Local:
37
38 REAL vcont(ip1jm, llm), ucont(ip1jmp1, llm)
39 REAL p(ip1jmp1, llmp1)
40 REAL massebx(ip1jmp1, llm), masseby(ip1jm, llm)
41 REAL vorpot(ip1jm, llm)
42 real ecin(ip1jmp1, llm), convm(ip1jmp1, llm)
43 REAL bern(ip1jmp1, llm)
44 REAL massebxy(ip1jm, llm), dp(ip1jmp1)
45
46 INTEGER ij, l
47
48 !-----------------------------------------------------------------------
49
50 PRINT *, 'Call sequence information: caldyn0'
51
52 CALL covcont(llm, ucov, vcov, ucont, vcont)
53 forall (l = 1: llm + 1) p(:, l) = ap(l) + bp(l) * ps
54 CALL massdair(p, masse)
55 CALL massbar(masse, massebx, masseby)
56 CALL massbarxy(masse, massebxy)
57 CALL flumass(massebx, masseby, vcont, ucont, pbaru, pbarv)
58 CALL convmas(pbaru, pbarv, convm)
59 dp = convm(:, 1) / airesurg
60 CALL vitvert(convm, w)
61 CALL tourpot(vcov, ucov, massebxy, vorpot)
62 CALL enercin(vcov, ucov, vcont, ucont, ecin)
63 CALL bernoui(ip1jmp1, llm, phi, ecin, bern)
64 CALL sortvarc0(ucov, teta, ps, masse, pk, phis, vorpot, phi, bern, dp)
65
66 END SUBROUTINE caldyn0
67
68 end module caldyn0_m

  ViewVC Help
Powered by ViewVC 1.1.21