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

Annotation of /trunk/dyn3d/caldyn0.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 78 - (hide 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 guez 23 module caldyn0_m
2 guez 3
3 guez 23 IMPLICIT NONE
4 guez 4
5 guez 23 contains
6 guez 3
7 guez 23 SUBROUTINE caldyn0(ucov, vcov, teta, ps, masse, pk, phis, phi, w, &
8     pbaru, pbarv)
9 guez 3
10 guez 78 ! From dyn3d/caldyn0.F, version 1.1.1.1 2004/05/19 12:53:07
11 guez 23 ! Auteur : P. Le Van
12 guez 78 ! Objet : calcul des tendances dynamiques
13 guez 23 ! Modif 04/93 F.Forget
14 guez 3
15 guez 78 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 guez 67 use massdair_m, only: massdair
21 guez 78 USE paramet_m, ONLY: iip1, ip1jm, ip1jmp1, jjp1, llmp1
22     use sortvarc0_m, only: sortvarc0
23     use tourpot_m, only: tourpot
24 guez 3
25 guez 78 ! Arguments:
26     REAL, INTENT (IN):: ucov(ip1jmp1, llm), vcov(ip1jm, llm)
27 guez 73 REAL, INTENT(IN):: teta(ip1jmp1, llm)
28 guez 78 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 guez 3
36 guez 78 ! Local:
37 guez 3
38 guez 78 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 guez 3
46 guez 78 INTEGER ij, l
47 guez 3
48 guez 23 !-----------------------------------------------------------------------
49 guez 3
50 guez 23 PRINT *, 'Call sequence information: caldyn0'
51 guez 3
52 guez 23 CALL covcont(llm, ucov, vcov, ucont, vcont)
53 guez 37 forall (l = 1: llm + 1) p(:, l) = ap(l) + bp(l) * ps
54 guez 23 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 guez 78 dp = convm(:, 1) / airesurg
60 guez 23 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