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

Annotation of /trunk/dyn3d/caldyn0.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 161 - (hide annotations)
Fri Jul 24 14:27:59 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/dyn3d/caldyn0.f
File size: 2404 byte(s)
rlon[uv] and rlat[uv] are already in start.nc.

Just encapsulated covcont in a module.

finvmaold was not used in leapfrog. Downgraded it from dummy argument
to local variable of SUBROUTINE integrd.

Simplified handling of mass in integrd: down from five 3-dimensional
arrays (masse, massem1, finvmaold, massescr and finvmasse) to three
(masse, massem1, finvmaold).

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 91 ! From dyn3d/caldyn0.F, version 1.1.1.1, 2004/05/19 12:53:07
11 guez 79 ! Authors: P. Le Van, F. Forget
12 guez 78 ! Objet : calcul des tendances dynamiques
13 guez 3
14 guez 104 use bernoui_m, only: bernoui
15 guez 78 USE comgeom, ONLY: airesurg
16 guez 91 use convmas_m, only: convmas
17 guez 161 use covcont_m, only: covcont
18 guez 79 USE dimens_m, ONLY: iim, jjm, llm
19 guez 78 USE disvert_m, ONLY: ap, bp
20     use flumass_m, only: flumass
21 guez 91 use massbar_m, only: massbar
22 guez 78 use massbarxy_m, only: massbarxy
23 guez 67 use massdair_m, only: massdair
24 guez 79 USE paramet_m, ONLY: iip1, ip1jmp1, jjp1, llmp1
25 guez 104 use sortvarc_m, only: sortvarc
26 guez 78 use tourpot_m, only: tourpot
27 guez 91 use vitvert_m, only: vitvert
28 guez 3
29 guez 79 REAL, INTENT(IN):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm) vent covariant
30     REAL, INTENT(IN):: vcov(:, :, :) ! (iim + 1, jjm, llm) ! vent covariant
31 guez 73 REAL, INTENT(IN):: teta(ip1jmp1, llm)
32 guez 78 REAL, INTENT (IN):: ps(ip1jmp1)
33     real, intent(out):: masse(ip1jmp1, llm)
34     REAL, INTENT (IN):: pk(iip1, jjp1, llm)
35     REAL, INTENT (IN):: phis(ip1jmp1)
36 guez 104 REAL, INTENT (IN):: phi(iim + 1, jjm + 1, llm)
37 guez 91 REAL, INTENT(out):: w(:, :, :) ! (iim + 1, jjm + 1, llm)
38 guez 79 REAL, intent(out):: pbaru(ip1jmp1, llm), pbarv((iim + 1) * jjm, llm)
39 guez 3
40 guez 78 ! Local:
41 guez 79 REAL vcont((iim + 1) * jjm, llm), ucont(ip1jmp1, llm)
42 guez 78 REAL p(ip1jmp1, llmp1)
43 guez 79 REAL massebx(ip1jmp1, llm), masseby((iim + 1) * jjm, llm)
44     REAL vorpot(iim + 1, jjm, llm)
45 guez 104 real ecin(iim + 1, jjm + 1, llm), convm(ip1jmp1, llm)
46 guez 79 REAL massebxy(iim + 1, jjm, llm), dp(ip1jmp1)
47     INTEGER l
48 guez 3
49 guez 23 !-----------------------------------------------------------------------
50 guez 3
51 guez 23 PRINT *, 'Call sequence information: caldyn0'
52 guez 3
53 guez 23 CALL covcont(llm, ucov, vcov, ucont, vcont)
54 guez 37 forall (l = 1: llm + 1) p(:, l) = ap(l) + bp(l) * ps
55 guez 23 CALL massdair(p, masse)
56     CALL massbar(masse, massebx, masseby)
57     CALL massbarxy(masse, massebxy)
58     CALL flumass(massebx, masseby, vcont, ucont, pbaru, pbarv)
59     CALL convmas(pbaru, pbarv, convm)
60 guez 78 dp = convm(:, 1) / airesurg
61 guez 23 CALL vitvert(convm, w)
62     CALL tourpot(vcov, ucov, massebxy, vorpot)
63     CALL enercin(vcov, ucov, vcont, ucont, ecin)
64 guez 133 CALL sortvarc(ucov, teta, ps, masse, pk, phis, vorpot, phi, &
65     bernoui(phi, ecin), dp, resetvarc = .true.)
66 guez 23
67     END SUBROUTINE caldyn0
68    
69     end module caldyn0_m

  ViewVC Help
Powered by ViewVC 1.1.21